<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator><link href="/feed.xml" rel="self" type="application/atom+xml" /><link href="/" rel="alternate" type="text/html" /><updated>2026-02-26T07:39:10+00:00</updated><id>/feed.xml</id><title type="html">Insanelogs</title><subtitle>Nothing more than logs of Insane</subtitle><entry><title type="html">Flex direction basics</title><link href="/posts/flex-direction-basics/" rel="alternate" type="text/html" title="Flex direction basics" /><published>2025-09-05T00:00:00+00:00</published><updated>2025-09-05T00:00:00+00:00</updated><id>/posts/flex-direction-basics</id><content type="html" xml:base="/posts/flex-direction-basics/"><![CDATA[<h2 id="normal-behavior">Normal behavior</h2>

<p>Starting code -</p>

<div class="language-html highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt">&lt;html&gt;</span>
<span class="nt">&lt;head&gt;</span>
    <span class="nt">&lt;title&gt;</span>Document<span class="nt">&lt;/title&gt;</span>
    <span class="nt">&lt;style&gt;</span>
         <span class="nc">.container</span> <span class="p">{</span>
            <span class="nl">border</span><span class="p">:</span> <span class="m">1px</span> <span class="nb">solid</span> <span class="nx">black</span><span class="p">;</span>
            <span class="nl">height</span><span class="p">:</span> <span class="m">70vh</span><span class="p">;</span>
            <span class="nl">width</span><span class="p">:</span> <span class="m">80vw</span><span class="p">;</span>
            <span class="nl">margin</span><span class="p">:</span> <span class="m">10vh</span> <span class="nb">auto</span><span class="p">;</span>
        <span class="p">}</span>
        
        <span class="nc">.item</span> <span class="p">{</span>
            <span class="nl">width</span><span class="p">:</span> <span class="m">100px</span><span class="p">;</span>
            <span class="nl">height</span><span class="p">:</span> <span class="m">100px</span><span class="p">;</span>
            <span class="nl">background-color</span><span class="p">:</span> <span class="nx">blueviolet</span><span class="p">;</span>
            <span class="nl">border</span><span class="p">:</span> <span class="m">1px</span> <span class="nb">solid</span> <span class="nx">black</span><span class="p">;</span>
        <span class="p">}</span>
    <span class="nt">&lt;/style&gt;</span>
<span class="nt">&lt;/head&gt;</span>
<span class="nt">&lt;body&gt;</span>
    <span class="nt">&lt;div</span> <span class="na">class=</span><span class="s">"container"</span><span class="nt">&gt;</span>
        <span class="nt">&lt;div</span> <span class="na">class=</span><span class="s">"item"</span><span class="nt">&gt;</span>1<span class="nt">&lt;/div&gt;</span>
        <span class="nt">&lt;div</span> <span class="na">class=</span><span class="s">"item"</span><span class="nt">&gt;</span>2<span class="nt">&lt;/div&gt;</span>
        <span class="nt">&lt;div</span> <span class="na">class=</span><span class="s">"item"</span><span class="nt">&gt;</span>3<span class="nt">&lt;/div&gt;</span>
        <span class="nt">&lt;div</span> <span class="na">class=</span><span class="s">"item"</span><span class="nt">&gt;</span>4<span class="nt">&lt;/div&gt;</span>
        <span class="nt">&lt;div</span> <span class="na">class=</span><span class="s">"item"</span><span class="nt">&gt;</span>5<span class="nt">&lt;/div&gt;</span>
    <span class="nt">&lt;/div&gt;</span> 
<span class="nt">&lt;/body&gt;</span>
<span class="nt">&lt;/html&gt;</span>
</code></pre></div></div>

<p>Their is a simple <code class="language-plaintext highlighter-rouge">container &lt;div&gt;</code> and inside it we have 5 <code class="language-plaintext highlighter-rouge">item &lt;div&gt;s</code>. By default <code class="language-plaintext highlighter-rouge">&lt;div&gt;</code> is a block level element so they all get stacked one after another.</p>

<p><img src="/assets/images/flex-direction-basics/block-div.webp" alt="Simple container div having 5 child item divs" /></p>

<p>Note the <code class="language-plaintext highlighter-rouge">.container</code> and <code class="language-plaintext highlighter-rouge">.item</code> styling. This is base styling used in the pictures below as well. It would be removed from later codes to reduce cluttering.</p>

<p><br /></p>

<hr />

<p><br /></p>

<h2 id="display-flex">Display flex</h2>

<p>Now we can make this <code class="language-plaintext highlighter-rouge">container &lt;div&gt;</code> a flexbox (a type of display like block and inline display). <br />
To do this simply make <code class="language-plaintext highlighter-rouge">display: flex</code> for the <code class="language-plaintext highlighter-rouge">container &lt;div&gt;</code>.</p>

<div class="language-css highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nc">.container</span> <span class="p">{</span>
    <span class="nl">display</span><span class="p">:</span> <span class="nb">flex</span><span class="p">;</span>
<span class="p">}</span>
</code></pre></div></div>

<p><img src="/assets/images/flex-direction-basics/display-flex.webp" alt="Flexbox default behavior" /></p>

<p>Here <code class="language-plaintext highlighter-rouge">container &lt;div&gt;</code> is now called <code class="language-plaintext highlighter-rouge">flex container</code> and <code class="language-plaintext highlighter-rouge">item &lt;div&gt;s</code> inside it are <code class="language-plaintext highlighter-rouge">flex items</code>.</p>

<p><br /></p>

<hr />

<p><br /></p>

<h2 id="why-the-items-align-the-way-they-did">Why the items align the way they did?</h2>

<p>When we do <code class="language-plaintext highlighter-rouge">display: flex</code> we can imagine two axes being created.</p>

<p><img src="/assets/images/flex-direction-basics/main-cross-axis.webp" alt="Flexbox default behavior" /></p>

<p>Flex items are always aligned with respect to <code class="language-plaintext highlighter-rouge">main axis</code>. <br />
Also the <code class="language-plaintext highlighter-rouge">item &lt;divs&gt;</code> are aligned in order they were written, 1 to 5. <br /> 
The axis perpendicular to main axis is <code class="language-plaintext highlighter-rouge">cross axis</code>.</p>

<p>Their are two <strong>flexbox properties</strong> which can be applied on the <code class="language-plaintext highlighter-rouge">flex container</code>.</p>
<ul>
  <li><code class="language-plaintext highlighter-rouge">justify-content</code> which always works on the <code class="language-plaintext highlighter-rouge">main axis</code>.</li>
  <li><code class="language-plaintext highlighter-rouge">align-items</code> which always works on the <code class="language-plaintext highlighter-rouge">cross axis</code>.</li>
</ul>

<p>Now comes <code class="language-plaintext highlighter-rouge">flex-direction</code>. This is also a <code class="language-plaintext highlighter-rouge">flex container</code> property. With it we can change directions of main and cross axis. And that’s it.</p>

<p><br /></p>

<hr />

<p><br /></p>

<h2 id="flex-directions">Flex directions</h2>

<p>We will use <code class="language-plaintext highlighter-rouge">justify-content: center</code> and <code class="language-plaintext highlighter-rouge">align-items: center</code> property for the coming examples.</p>

<p>1. Applying <code class="language-plaintext highlighter-rouge">justify-content: center</code>.</p>
<div class="language-css highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nc">.container</span> <span class="p">{</span>
    <span class="nl">justify-content</span><span class="p">:</span> <span class="nb">center</span><span class="p">;</span>
<span class="p">}</span>
</code></pre></div></div>

<p><img src="/assets/images/flex-direction-basics/justify-content-center.webp" alt="Justify content made center" /></p>

<p>It pushes flex items from left to right in the direction of main axis to make it center in that axis.</p>

<p><br /></p>

<p>2. Applying <code class="language-plaintext highlighter-rouge">align-items: center</code>.</p>

<div class="language-css highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nc">.container</span> <span class="p">{</span>
    <span class="nl">justify-content</span><span class="p">:</span> <span class="nb">center</span><span class="p">;</span>
    <span class="nl">align-items</span><span class="p">:</span> <span class="nb">center</span><span class="p">;</span>
<span class="p">}</span>
</code></pre></div></div>

<p><img src="/assets/images/flex-direction-basics/align-items-center.webp" alt="Justify content and align items made center" /></p>

<p>It now pushes flex items from top to bottom to make it center in the cross axis.</p>

<p><br /></p>

<h3 id="few-examples">Few examples</h3>

<p>1. Flex direction made <strong>row</strong>.</p>
<div class="language-css highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nc">.container</span> <span class="p">{</span>
    <span class="nl">flex-direction</span><span class="p">:</span> <span class="nb">row</span><span class="p">;</span>
    <span class="nl">justify-content</span><span class="p">:</span> <span class="nb">center</span><span class="p">;</span>
    <span class="nl">align-items</span><span class="p">:</span> <span class="nb">center</span><span class="p">;</span>
<span class="p">}</span>
</code></pre></div></div>

<p><img src="/assets/images/flex-direction-basics/flex-direction-row.webp" alt="Flex direction row behavior" /></p>

<p>This is the default <code class="language-plaintext highlighter-rouge">flex-direction</code>. The <code class="language-plaintext highlighter-rouge">item &lt;div&gt;s</code> simply gets aligned on the direction of main axis from 1 to 5.</p>

<p><br /> <br /></p>

<p>2. Flex direction made <strong>column</strong>.</p>

<div class="language-css highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nc">.container</span> <span class="p">{</span>
    <span class="nl">flex-direction</span><span class="p">:</span> <span class="nb">column</span><span class="p">;</span>
    <span class="nl">justify-content</span><span class="p">:</span> <span class="nb">center</span><span class="p">;</span>
    <span class="nl">align-items</span><span class="p">:</span> <span class="nb">center</span><span class="p">;</span>
<span class="p">}</span>
</code></pre></div></div>

<p><img src="/assets/images/flex-direction-basics/flex-direction-column.webp" alt="Flex direction column behavior" /></p>

<p>This changes the direction of main axis and cross axis. And <code class="language-plaintext highlighter-rouge">flex items</code> always gets aligned in the <code class="language-plaintext highlighter-rouge">main axis</code>.</p>

<p><strong>Note:</strong> Any changes made to <code class="language-plaintext highlighter-rouge">justify-content</code> would now take effect in the new main axis. And any changes applied to <code class="language-plaintext highlighter-rouge">align-items</code> would now take effect in the new cross axis.</p>

<p><strong>Example:</strong> Removing <code class="language-plaintext highlighter-rouge">align-items: center</code> would reset flex items to <code class="language-plaintext highlighter-rouge">left</code> instead of <code class="language-plaintext highlighter-rouge">top</code>.</p>

<p><img src="/assets/images/flex-direction-basics/flex-direction-column-reset.webp" alt="Flex direction column and align items flex start behavior" /></p>

<p><br /> <br /></p>

<p>3. Flex direction made <strong>row-reverse</strong>.</p>

<div class="language-css highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nc">.container</span> <span class="p">{</span>
    <span class="nl">flex-direction</span><span class="p">:</span> <span class="nb">row-reverse</span><span class="p">;</span>
    <span class="nl">justify-content</span><span class="p">:</span> <span class="nb">center</span><span class="p">;</span>
    <span class="nl">align-items</span><span class="p">:</span> <span class="nb">center</span><span class="p">;</span>
<span class="p">}</span>
</code></pre></div></div>

<p><img src="/assets/images/flex-direction-basics/flex-direction-row-reverse.webp" alt="Flex direction row reverse behavior" /></p>

<p>This changes the main axis direction as shown. And so <code class="language-plaintext highlighter-rouge">item &lt;div&gt;s</code> aligns from right to left this time from 1 to 5.</p>

<p>Or, the first <code class="language-plaintext highlighter-rouge">item &lt;div&gt;</code> which is <code class="language-plaintext highlighter-rouge">1</code> will start from tail of the <code class="language-plaintext highlighter-rouge">main axis</code> followed by others in order.</p>

<p><br /> <br /></p>

<p>4. Flex direction made <strong>column-reverse</strong>.</p>
<div class="language-css highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nc">.container</span> <span class="p">{</span>
    <span class="nl">flex-direction</span><span class="p">:</span> <span class="nb">column-reverse</span><span class="p">;</span>
    <span class="nl">justify-content</span><span class="p">:</span> <span class="nb">center</span><span class="p">;</span>
    <span class="nl">align-items</span><span class="p">:</span> <span class="nb">center</span><span class="p">;</span>
<span class="p">}</span>
</code></pre></div></div>

<p><img src="/assets/images/flex-direction-basics/flex-direction-column-reverse.webp" alt="Flex direction column reverse behavior" /></p>

<p>The main axis now runs bottom to top and so the <code class="language-plaintext highlighter-rouge">flex-items</code> gets aligned in the same way.</p>

<p>Their are many other options for flex-direction, justify-content and align-items which follows this same principal.</p>

<p><br /></p>

<hr />

<p><br /></p>

<p>End <br />
🦖</p>]]></content><author><name>insane</name></author><category term="flexbox" /><category term="css" /><category term="css" /><category term="flexbox" /><category term="flex direction" /><category term="post-13" /><summary type="html"><![CDATA[Normal behavior]]></summary></entry><entry><title type="html">Pattern problems in C++</title><link href="/posts/pattern-problems-in-cpp/" rel="alternate" type="text/html" title="Pattern problems in C++" /><published>2025-08-13T00:00:00+00:00</published><updated>2025-08-13T00:00:00+00:00</updated><id>/posts/pattern-problems-in-cpp</id><content type="html" xml:base="/posts/pattern-problems-in-cpp/"><![CDATA[<p><img src="/assets/images/pattern-problems-in-cpp/thumbnail.webp" alt="Thumbnail for the post" /></p>

<p><br /></p>

<p>Patterns problems in C++ archive here. I will probably keep on updating it as I solve more similar problems.</p>

<p>Problems found from YT videos, websites, or who knows from where. And yea I really did solve them instead of just copying. Pls trust. Pls. No lie me. Me good.</p>

<p><strong>Read it maybe?</strong> : These are mostly solved just using for loops. Their are many ways to so solve one pattern, for example some will start i from 1 some from 0, some will use &lt;= to end the loop while some &lt;, some will use some other mathematical formula or view the pattern grid differently, etc. Some problems have more than one method to solve it, showcasing my 900+ IQ. Lol.</p>

<p><br /></p>

<hr />

<p><br /></p>

<p>Pattern 1 -</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>* * * *
* * * *
* * * *
* * * *
</code></pre></div></div>

<div class="language-cpp highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">void</span> <span class="nf">print_pattern_01</span><span class="p">(</span><span class="kt">int</span> <span class="n">n</span><span class="p">)</span> <span class="p">{</span>
    <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">n</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
        <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">j</span> <span class="o">&lt;</span> <span class="n">n</span><span class="p">;</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
            <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="s">"* "</span><span class="p">;</span>
        <span class="p">}</span>
        <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">endl</span><span class="p">;</span>
    <span class="p">}</span>
<span class="p">}</span>
</code></pre></div></div>

<p><br /></p>

<hr />

<p><br /></p>

<p>Pattern 2 -</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>*
* *
* * *
* * * *
* * * * *
</code></pre></div></div>

<div class="language-cpp highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">void</span> <span class="nf">print_pattern_02</span><span class="p">(</span><span class="kt">int</span> <span class="n">n</span><span class="p">)</span> <span class="p">{</span>
    <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">n</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
        <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">j</span> <span class="o">&lt;</span> <span class="n">i</span> <span class="o">+</span> <span class="mi">1</span><span class="p">;</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
            <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="s">"* "</span><span class="p">;</span>
        <span class="p">}</span>
        <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">endl</span><span class="p">;</span>
    <span class="p">}</span>
<span class="p">}</span>
</code></pre></div></div>

<p><br /></p>

<hr />

<p><br /></p>

<p>Pattern 3 -</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>1
1 2
1 2 3
1 2 3 4
1 2 3 4 5
</code></pre></div></div>

<div class="language-cpp highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">void</span> <span class="nf">print_pattern_03</span><span class="p">(</span><span class="kt">int</span> <span class="n">n</span><span class="p">)</span> <span class="p">{</span>
    <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">n</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
        <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="n">j</span> <span class="o">&lt;</span> <span class="n">i</span> <span class="o">+</span> <span class="mi">1</span><span class="p">;</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
            <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">j</span> <span class="o">&lt;&lt;</span> <span class="s">" "</span><span class="p">;</span>
        <span class="p">}</span>
        <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">endl</span><span class="p">;</span>
    <span class="p">}</span>
<span class="p">}</span>
</code></pre></div></div>

<p><br /></p>

<hr />

<p><br /></p>

<p>Pattern 4 -</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>1
2 2
3 3 3
4 4 4 4
5 5 5 5 5
</code></pre></div></div>

<div class="language-cpp highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">void</span> <span class="nf">print_pattern_04</span><span class="p">(</span><span class="kt">int</span> <span class="n">n</span><span class="p">)</span> <span class="p">{</span>
    <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">n</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
        <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="n">j</span> <span class="o">&lt;</span> <span class="n">i</span> <span class="o">+</span> <span class="mi">1</span><span class="p">;</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
            <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">i</span> <span class="o">+</span> <span class="mi">1</span>  <span class="o">&lt;&lt;</span> <span class="s">" "</span><span class="p">;</span>
        <span class="p">}</span>
        <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">endl</span><span class="p">;</span>
    <span class="p">}</span>
<span class="p">}</span>
</code></pre></div></div>

<p><br /></p>

<hr />

<p><br /></p>

<p>Pattern 5 -</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>* * * *
* * *
* *
*
</code></pre></div></div>

<div class="language-cpp highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">void</span> <span class="nf">print_pattern_05</span><span class="p">(</span><span class="kt">int</span> <span class="n">n</span><span class="p">)</span> <span class="p">{</span>
    <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">n</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
        <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">j</span> <span class="o">&lt;</span> <span class="n">n</span> <span class="o">-</span> <span class="n">i</span><span class="p">;</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
            <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="s">"* "</span><span class="p">;</span>
        <span class="p">}</span>
        <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">endl</span><span class="p">;</span>
    <span class="p">}</span>
<span class="p">}</span>
</code></pre></div></div>

<p><br /></p>

<hr />

<p><br /></p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>1 2 3 4 5
1 2 3 4
1 2 3
1 2
1
</code></pre></div></div>

<div class="language-cpp highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">void</span> <span class="nf">print_pattern_06</span><span class="p">(</span><span class="kt">int</span> <span class="n">n</span><span class="p">)</span> <span class="p">{</span>
    <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">n</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
        <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="n">j</span> <span class="o">&lt;</span> <span class="n">n</span> <span class="o">+</span> <span class="mi">1</span> <span class="o">-</span> <span class="n">i</span><span class="p">;</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
            <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">j</span> <span class="o">&lt;&lt;</span> <span class="s">" "</span><span class="p">;</span>
        <span class="p">}</span>
        <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">endl</span><span class="p">;</span>
    <span class="p">}</span>
<span class="p">}</span>
</code></pre></div></div>

<p><br /></p>

<hr />

<p><br /></p>

<p>Pattern 7 -</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>    *
   ***
  *****
 *******
*********
</code></pre></div></div>

<div class="language-cpp highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">void</span> <span class="nf">print_pattern_07</span><span class="p">(</span><span class="kt">int</span> <span class="n">n</span><span class="p">)</span> <span class="p">{</span>
    <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">n</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
    
        <span class="c1">// Prints first half</span>
        <span class="c1">//     *</span>
        <span class="c1">//    **</span>
        <span class="c1">//   ***</span>
        <span class="c1">//  ****</span>
        <span class="c1">// *****</span>
        <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">j</span> <span class="o">&lt;</span> <span class="n">n</span><span class="p">;</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
            <span class="k">if</span> <span class="p">(</span><span class="n">j</span> <span class="o">&lt;</span> <span class="n">n</span> <span class="o">-</span> <span class="n">i</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span>
                <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="s">" "</span><span class="p">;</span>
            <span class="k">else</span>
                <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="s">"*"</span><span class="p">;</span>
        <span class="p">}</span>
        
        <span class="c1">// Prints second half -</span>
        <span class="c1">//</span>
        <span class="c1">//      *</span>
        <span class="c1">//      **</span>
        <span class="c1">//      ***</span>
        <span class="c1">//      ****</span>
        <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">k</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">k</span> <span class="o">&lt;</span> <span class="n">i</span><span class="p">;</span> <span class="n">k</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
            <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="s">"*"</span><span class="p">;</span>
        <span class="p">}</span>
        <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">endl</span><span class="p">;</span>
    <span class="p">}</span>
<span class="p">}</span>
</code></pre></div></div>

<div class="language-cpp highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">void</span> <span class="nf">print_pattern_07</span><span class="p">(</span><span class="kt">int</span> <span class="n">n</span><span class="p">)</span> <span class="p">{</span>
    <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">n</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
        <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">j</span> <span class="o">&lt;</span> <span class="n">n</span> <span class="o">-</span> <span class="n">i</span> <span class="o">-</span> <span class="mi">1</span><span class="p">;</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
            <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="s">" "</span><span class="p">;</span>
        <span class="p">}</span>
        
        <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">j</span> <span class="o">&lt;</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">i</span> <span class="o">+</span> <span class="mi">1</span><span class="p">;</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
            <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="s">"*"</span><span class="p">;</span>
        <span class="p">}</span>
        <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">endl</span><span class="p">;</span>
    <span class="p">}</span>
<span class="p">}</span>
</code></pre></div></div>

<p><br /></p>

<hr />

<p><br /></p>

<p>Pattern 8 -</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>*********
 *******
  *****
   ***
    *
</code></pre></div></div>

<div class="language-cpp highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">void</span> <span class="nf">print_pattern_08</span><span class="p">(</span><span class="kt">int</span> <span class="n">n</span><span class="p">)</span> <span class="p">{</span>
    <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">n</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
        <span class="c1">// Prints first half -</span>
        <span class="c1">// *****</span>
        <span class="c1">//  ****</span>
        <span class="c1">//   ***</span>
        <span class="c1">//    **</span>
        <span class="c1">//     *</span>
        <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">j</span> <span class="o">&lt;</span> <span class="n">n</span><span class="p">;</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
            <span class="k">if</span> <span class="p">(</span><span class="n">j</span> <span class="o">&lt;</span> <span class="n">i</span><span class="p">)</span>
                <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="s">" "</span><span class="p">;</span>
            <span class="k">else</span>
                <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="s">"*"</span><span class="p">;</span>
        <span class="p">}</span>
        
        <span class="c1">// Prints second half -</span>
        <span class="c1">//      ****</span>
        <span class="c1">//      ***</span>
        <span class="c1">//      **</span>
        <span class="c1">//      *</span>
        <span class="c1">//</span>
        <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">k</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">k</span> <span class="o">&lt;</span> <span class="n">n</span> <span class="o">-</span> <span class="n">i</span> <span class="o">-</span> <span class="mi">1</span><span class="p">;</span> <span class="n">k</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
            <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="s">"*"</span><span class="p">;</span>
        <span class="p">}</span>
        <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">endl</span><span class="p">;</span>
    <span class="p">}</span>
<span class="p">}</span>
</code></pre></div></div>

<div class="language-cpp highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">void</span> <span class="nf">print_pattern_08</span><span class="p">(</span><span class="kt">int</span> <span class="n">n</span><span class="p">)</span> <span class="p">{</span>
    <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">n</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
        <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">j</span> <span class="o">&lt;</span> <span class="n">i</span><span class="p">;</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
            <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="s">" "</span><span class="p">;</span>
        <span class="p">}</span>
        
        <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">j</span> <span class="o">&lt;</span> <span class="mi">2</span> <span class="o">*</span> <span class="p">(</span><span class="n">n</span> <span class="o">-</span> <span class="n">i</span><span class="p">)</span> <span class="o">-</span> <span class="mi">1</span><span class="p">;</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
            <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="s">"*"</span><span class="p">;</span>
        <span class="p">}</span>
        <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">endl</span><span class="p">;</span>
    <span class="p">}</span>
<span class="p">}</span>
</code></pre></div></div>

<p><br /></p>

<hr />

<p><br /></p>

<p>Pattern 9 -</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>    *
   ***
  *****
 *******
*********
 *******
  *****
   ***
    *
</code></pre></div></div>

<div class="language-cpp highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">void</span> <span class="nf">print_pattern_09</span><span class="p">(</span><span class="kt">int</span> <span class="n">n</span><span class="p">)</span>
<span class="p">{</span>
    <span class="c1">// For n = 5</span>
    
    <span class="c1">// Prints first part -</span>
    <span class="c1">//     *</span>
    <span class="c1">//    ***</span>
    <span class="c1">//   *****</span>
    <span class="c1">//  *******</span>
    <span class="c1">// *********</span>
    <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">n</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
        <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">j</span> <span class="o">&lt;</span> <span class="n">n</span> <span class="o">-</span> <span class="n">i</span> <span class="o">-</span> <span class="mi">1</span><span class="p">;</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
            <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="s">" "</span><span class="p">;</span>
        <span class="p">}</span>
        
        <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">j</span> <span class="o">&lt;</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">i</span> <span class="o">+</span> <span class="mi">1</span><span class="p">;</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
            <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="s">"*"</span><span class="p">;</span>
        <span class="p">}</span>
        <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">endl</span><span class="p">;</span>
    <span class="p">}</span>
    
    <span class="c1">// Prints second half -</span>
    <span class="c1">// *******</span>
    <span class="c1">//  *****</span>
    <span class="c1">//   ***</span>
    <span class="c1">//    *</span>
    <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">n</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
        <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">j</span> <span class="o">&lt;</span> <span class="n">i</span><span class="p">;</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
            <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="s">" "</span><span class="p">;</span>
        <span class="p">}</span>
        
        <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">j</span> <span class="o">&lt;</span> <span class="mi">2</span> <span class="o">*</span> <span class="p">(</span><span class="n">n</span> <span class="o">-</span> <span class="n">i</span><span class="p">)</span> <span class="o">-</span> <span class="mi">1</span><span class="p">;</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
            <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="s">"*"</span><span class="p">;</span>
        <span class="p">}</span>
        <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">endl</span><span class="p">;</span>
    <span class="p">}</span>
<span class="p">}</span>

</code></pre></div></div>

<p><br /></p>

<hr />

<p><br /></p>

<p>Pattern 10 -</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>*
**
***
****
*****
****
***
**
*
</code></pre></div></div>

<div class="language-cpp highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">void</span> <span class="nf">print_pattern_10</span><span class="p">(</span><span class="kt">int</span> <span class="n">n</span><span class="p">)</span> <span class="p">{</span>
    <span class="c1">// Considering n as till the row with maximum stars</span>
    <span class="c1">// Therefore n = 5</span>

    <span class="c1">// Prints first half -</span>
    <span class="c1">// *</span>
    <span class="c1">// **</span>
    <span class="c1">// ***</span>
    <span class="c1">// ****</span>
    <span class="c1">// *****</span>
    <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">n</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
        <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">j</span> <span class="o">&lt;</span> <span class="n">i</span> <span class="o">+</span> <span class="mi">1</span><span class="p">;</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
            <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="s">"*"</span><span class="p">;</span>
        <span class="p">}</span>
        <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">endl</span><span class="p">;</span>
    <span class="p">}</span>

    <span class="c1">// Prints second half -</span>
    <span class="c1">// ****</span>
    <span class="c1">// ***</span>
    <span class="c1">// **</span>
    <span class="c1">// *</span>
    <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">n</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
        <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">j</span> <span class="o">&lt;</span> <span class="n">n</span> <span class="o">-</span> <span class="n">i</span><span class="p">;</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
            <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="s">"*"</span><span class="p">;</span>
        <span class="p">}</span>
        <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">endl</span><span class="p">;</span>
    <span class="p">}</span>
<span class="p">}</span>
</code></pre></div></div>

<div class="language-cpp highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">void</span> <span class="nf">print_pattern_10</span><span class="p">(</span><span class="kt">int</span> <span class="n">n</span><span class="p">)</span> <span class="p">{</span>
    <span class="c1">// Here we consider n = total number of rows</span>
    <span class="c1">// Therefore n = 9</span>
    
    <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">n</span> <span class="o">-</span> <span class="mi">1</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
        <span class="kt">int</span> <span class="n">stars</span> <span class="o">=</span> <span class="n">i</span> <span class="o">+</span> <span class="mi">1</span><span class="p">;</span>
        <span class="k">if</span> <span class="p">(</span><span class="n">i</span> <span class="o">&gt;</span> <span class="n">n</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span> <span class="n">stars</span> <span class="o">=</span> <span class="p">((</span><span class="mi">2</span> <span class="o">*</span> <span class="n">n</span><span class="p">)</span> <span class="o">-</span> <span class="p">(</span><span class="n">i</span> <span class="o">+</span> <span class="mi">1</span><span class="p">));</span>
        <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">j</span> <span class="o">&lt;</span> <span class="n">stars</span><span class="p">;</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
            <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="s">"*"</span><span class="p">;</span>
        <span class="p">}</span>
        <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">endl</span><span class="p">;</span>
    <span class="p">}</span>
<span class="p">}</span>
</code></pre></div></div>

<p><br /></p>

<hr />

<p><br /></p>

<p>Pattern 11 -</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>1
0 1
1 0 1
0 1 0 1
1 0 1 0 1
</code></pre></div></div>

<div class="language-cpp highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">void</span> <span class="nf">print_pattern_11</span><span class="p">(</span><span class="kt">int</span> <span class="n">n</span><span class="p">)</span> <span class="p">{</span>
    <span class="kt">short</span> <span class="n">flip</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span>
    <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">n</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
        <span class="k">if</span> <span class="p">(</span><span class="n">i</span> <span class="o">%</span> <span class="mi">2</span> <span class="o">==</span> <span class="mi">0</span><span class="p">)</span> <span class="n">flip</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span>
        <span class="k">else</span> <span class="n">flip</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
        <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">j</span> <span class="o">&lt;</span> <span class="n">i</span> <span class="o">+</span> <span class="mi">1</span><span class="p">;</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
            <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">flip</span> <span class="o">&lt;&lt;</span> <span class="s">" "</span><span class="p">;</span>
            <span class="n">flip</span> <span class="o">=</span> <span class="mi">1</span> <span class="o">-</span> <span class="n">flip</span><span class="p">;</span>
        <span class="p">}</span>
        <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">endl</span><span class="p">;</span>
    <span class="p">}</span>
<span class="p">}</span>

</code></pre></div></div>

<p><br /></p>

<hr />

<p><br /></p>

<p>Pattern 12 -</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>1        1
12      21
123    321
1234  4321
1234554321
</code></pre></div></div>

<div class="language-cpp highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">void</span> <span class="nf">print_pattern_12</span><span class="p">(</span><span class="kt">int</span> <span class="n">n</span><span class="p">)</span> <span class="p">{</span>
    <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">n</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
        <span class="c1">// first half</span>
        <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">j</span> <span class="o">&lt;</span> <span class="n">i</span> <span class="o">+</span> <span class="mi">1</span><span class="p">;</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
            <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">j</span> <span class="o">+</span> <span class="mi">1</span><span class="p">;</span>
        <span class="p">}</span>
        
        <span class="c1">// spaces</span>
        <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">j</span> <span class="o">&lt;</span> <span class="mi">2</span> <span class="o">*</span> <span class="p">(</span><span class="n">n</span> <span class="o">-</span> <span class="n">i</span> <span class="o">-</span> <span class="mi">1</span><span class="p">);</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
            <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="s">" "</span><span class="p">;</span>
        <span class="p">}</span>
        
        <span class="c1">// second half</span>
        <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="n">i</span> <span class="o">+</span> <span class="mi">1</span><span class="p">;</span> <span class="n">j</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">;</span> <span class="n">j</span><span class="o">--</span><span class="p">)</span> <span class="p">{</span>
            <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">j</span><span class="p">;</span>
        <span class="p">}</span>
        
        <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">endl</span><span class="p">;</span>
    <span class="p">}</span>
<span class="p">}</span>
</code></pre></div></div>

<p><br /></p>

<hr />

<p><br /></p>

<p>Pattern 13 -</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>1
2 3
4 5 6
7 8 9 10
11 12 13 14 15
</code></pre></div></div>

<div class="language-cpp highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">void</span> <span class="nf">print_pattern_13</span><span class="p">(</span><span class="kt">int</span> <span class="n">n</span><span class="p">)</span> <span class="p">{</span>
    <span class="kt">int</span> <span class="n">x</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span>
    <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">n</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
        <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">j</span> <span class="o">&lt;</span> <span class="n">i</span> <span class="o">+</span> <span class="mi">1</span><span class="p">;</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
            <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">x</span><span class="o">++</span> <span class="o">&lt;&lt;</span> <span class="s">" "</span><span class="p">;</span>
        <span class="p">}</span>
        <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">endl</span><span class="p">;</span>
    <span class="p">}</span>
<span class="p">}</span>

</code></pre></div></div>

<p><br /></p>

<hr />

<p><br /></p>

<p>Pattern 14 -</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>A
AB
ABC
ABCD
ABCDE
</code></pre></div></div>

<div class="language-cpp highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">void</span> <span class="nf">print_pattern_14</span><span class="p">(</span><span class="kt">int</span> <span class="n">n</span><span class="p">)</span> <span class="p">{</span>
    <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">n</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
        <span class="kt">char</span> <span class="n">x</span> <span class="o">=</span> <span class="sc">'A'</span><span class="p">;</span>
        <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">j</span> <span class="o">&lt;</span> <span class="n">i</span> <span class="o">+</span> <span class="mi">1</span><span class="p">;</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
            <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">x</span><span class="p">;</span>
            <span class="n">x</span> <span class="o">=</span> <span class="n">x</span> <span class="o">+</span> <span class="mi">1</span><span class="p">;</span>
        <span class="p">}</span>
        <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">endl</span><span class="p">;</span>
    <span class="p">}</span>
<span class="p">}</span>
</code></pre></div></div>

<div class="language-cpp highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">void</span> <span class="nf">print_pattern_14</span><span class="p">(</span><span class="kt">int</span> <span class="n">n</span><span class="p">)</span> <span class="p">{</span>
    <span class="k">for</span> <span class="p">(</span><span class="kt">char</span> <span class="n">i</span> <span class="o">=</span> <span class="sc">'A'</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="sc">'A'</span> <span class="o">+</span> <span class="n">n</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
        <span class="k">for</span> <span class="p">(</span><span class="kt">char</span> <span class="n">j</span> <span class="o">=</span> <span class="sc">'A'</span><span class="p">;</span> <span class="n">j</span> <span class="o">&lt;</span> <span class="n">i</span> <span class="o">+</span> <span class="mi">1</span><span class="p">;</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
            <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">j</span><span class="p">;</span>
        <span class="p">}</span>
        <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">endl</span><span class="p">;</span>
    <span class="p">}</span>
<span class="p">}</span>
</code></pre></div></div>

<div class="language-cpp highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">void</span> <span class="nf">print_pattern_14</span><span class="p">(</span><span class="kt">int</span> <span class="n">n</span><span class="p">)</span> <span class="p">{</span>
    <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">n</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
        <span class="k">for</span> <span class="p">(</span><span class="kt">char</span> <span class="n">j</span> <span class="o">=</span> <span class="sc">'A'</span><span class="p">;</span> <span class="n">j</span> <span class="o">&lt;</span> <span class="sc">'A'</span> <span class="o">+</span> <span class="n">i</span> <span class="o">+</span> <span class="mi">1</span><span class="p">;</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
            <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">j</span><span class="p">;</span>
        <span class="p">}</span>
        <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">endl</span><span class="p">;</span>
    <span class="p">}</span>
<span class="p">}</span>
</code></pre></div></div>

<p><br /></p>

<hr />

<p><br /></p>

<p>Pattern 15 -</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>ABCDE
ABCD
ABC
AB
A
</code></pre></div></div>

<div class="language-cpp highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">void</span> <span class="nf">print_pattern_15</span><span class="p">(</span><span class="kt">int</span> <span class="n">n</span><span class="p">)</span> <span class="p">{</span>
    <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">n</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
        <span class="kt">char</span> <span class="n">x</span> <span class="o">=</span> <span class="sc">'A'</span><span class="p">;</span>
        <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">j</span> <span class="o">&lt;</span> <span class="n">n</span> <span class="o">-</span> <span class="n">i</span><span class="p">;</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
            <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">x</span><span class="p">;</span>
            <span class="n">x</span> <span class="o">=</span> <span class="n">x</span> <span class="o">+</span> <span class="mi">1</span><span class="p">;</span>
        <span class="p">}</span>
        <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">endl</span><span class="p">;</span>
    <span class="p">}</span>
<span class="p">}</span>
</code></pre></div></div>

<div class="language-cpp highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">void</span> <span class="nf">print_pattern_15</span><span class="p">(</span><span class="kt">int</span> <span class="n">n</span><span class="p">)</span> <span class="p">{</span>
    <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">n</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
        <span class="k">for</span> <span class="p">(</span><span class="kt">char</span> <span class="n">j</span> <span class="o">=</span> <span class="sc">'A'</span><span class="p">;</span> <span class="n">j</span> <span class="o">&lt;</span> <span class="sc">'A'</span> <span class="o">+</span> <span class="p">(</span><span class="n">n</span> <span class="o">-</span> <span class="n">i</span><span class="p">);</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
            <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">j</span><span class="p">;</span>
        <span class="p">}</span>
        <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">endl</span><span class="p">;</span>
    <span class="p">}</span>
<span class="p">}</span>
</code></pre></div></div>

<p><br /></p>

<hr />

<p><br /></p>

<p>Pattern 16 -</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>A
BB
CCC
DDDD
EEEEE
</code></pre></div></div>

<div class="language-cpp highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">void</span> <span class="nf">print_pattern_16</span><span class="p">(</span><span class="kt">int</span> <span class="n">n</span><span class="p">)</span> <span class="p">{</span>
    <span class="kt">char</span> <span class="n">ch</span> <span class="o">=</span> <span class="sc">'A'</span><span class="p">;</span>
    <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">n</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
        <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">j</span> <span class="o">&lt;</span> <span class="n">i</span> <span class="o">+</span> <span class="mi">1</span><span class="p">;</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
            <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">ch</span><span class="p">;</span>
        <span class="p">}</span>
        <span class="n">ch</span><span class="o">++</span><span class="p">;</span>
        <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">endl</span><span class="p">;</span>
    <span class="p">}</span>
<span class="p">}</span>
</code></pre></div></div>

<p><br /></p>

<hr />

<p><br /></p>

<p>Pattern 17 -</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>   A
  ABA
 ABCBA
ABCDCBA
</code></pre></div></div>

<div class="language-cpp highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">void</span> <span class="nf">print_pattern_17</span><span class="p">(</span><span class="kt">int</span> <span class="n">n</span><span class="p">)</span> <span class="p">{</span>
    <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">n</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
        <span class="c1">// space</span>
        <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">j</span> <span class="o">&lt;</span> <span class="p">(</span><span class="n">n</span> <span class="o">-</span> <span class="n">i</span> <span class="o">-</span> <span class="mi">1</span><span class="p">);</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
            <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="sc">' '</span><span class="p">;</span>
        <span class="p">}</span>
        
        <span class="c1">// chars</span>
        <span class="kt">char</span> <span class="n">ch</span> <span class="o">=</span> <span class="sc">'A'</span><span class="p">;</span>
        <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">j</span> <span class="o">&lt;</span> <span class="n">i</span> <span class="o">+</span> <span class="mi">1</span><span class="p">;</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
            <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">ch</span><span class="o">++</span><span class="p">;</span>
        <span class="p">}</span>
        
        <span class="n">ch</span> <span class="o">=</span> <span class="n">ch</span> <span class="o">-</span> <span class="mi">2</span><span class="p">;</span>
        <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">j</span> <span class="o">&lt;</span> <span class="n">i</span><span class="p">;</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
            <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">ch</span><span class="o">--</span><span class="p">;</span>
        <span class="p">}</span>
        
        <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">endl</span><span class="p">;</span>
    <span class="p">}</span>
    <span class="c1">// No need to print the end spaces for each row.</span>
    <span class="c1">// Save computation yay!</span>
<span class="p">}</span>

</code></pre></div></div>

<div class="language-cpp highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">void</span> <span class="nf">print_pattern_17</span><span class="p">(</span><span class="kt">int</span> <span class="n">n</span><span class="p">)</span> <span class="p">{</span>
    <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">n</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
        <span class="c1">// space</span>
        <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">j</span> <span class="o">&lt;</span> <span class="p">(</span><span class="n">n</span> <span class="o">-</span> <span class="n">i</span> <span class="o">-</span> <span class="mi">1</span><span class="p">);</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
            <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="sc">' '</span><span class="p">;</span>
        <span class="p">}</span>
        
        <span class="c1">// chars</span>
        <span class="kt">char</span> <span class="n">ch</span> <span class="o">=</span> <span class="sc">'A'</span><span class="p">;</span>
        <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">j</span> <span class="o">&lt;</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">i</span> <span class="o">+</span> <span class="mi">1</span><span class="p">;</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
            <span class="k">if</span> <span class="p">(</span><span class="n">j</span> <span class="o">&lt;</span> <span class="n">i</span><span class="p">)</span> <span class="p">{</span>
                <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">ch</span><span class="o">++</span><span class="p">;</span>
            <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
                <span class="n">cout</span> <span class="o">&lt;&lt;</span>  <span class="n">ch</span><span class="o">--</span><span class="p">;</span>
            <span class="p">}</span>
        <span class="p">}</span>
        
        <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">endl</span><span class="p">;</span>
    <span class="p">}</span>
<span class="p">}</span>
</code></pre></div></div>

<p><br /></p>

<hr />

<p><br /></p>

<p>Pattern 18 -</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>E
D E
C D E
B C D E
A B C D E
</code></pre></div></div>

<div class="language-cpp highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">void</span> <span class="nf">print_pattern_18</span><span class="p">(</span><span class="kt">int</span> <span class="n">n</span><span class="p">)</span> <span class="p">{</span>
    <span class="kt">char</span> <span class="n">ch</span> <span class="o">=</span> <span class="sc">'E'</span><span class="p">;</span>
    <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">n</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
        <span class="kt">char</span> <span class="n">start_char</span> <span class="o">=</span> <span class="n">ch</span><span class="p">;</span>
        <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">j</span> <span class="o">&lt;</span> <span class="n">i</span> <span class="o">+</span> <span class="mi">1</span><span class="p">;</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
            <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">ch</span><span class="o">++</span> <span class="o">&lt;&lt;</span> <span class="s">" "</span><span class="p">;</span>
        <span class="p">}</span>
        <span class="n">ch</span> <span class="o">=</span> <span class="n">start_char</span> <span class="o">-</span> <span class="mi">1</span><span class="p">;</span>
        <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">endl</span><span class="p">;</span>
    <span class="p">}</span>
<span class="p">}</span>

</code></pre></div></div>

<div class="language-cpp highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">void</span> <span class="nf">print_pattern_18</span><span class="p">(</span><span class="kt">int</span> <span class="n">n</span><span class="p">)</span> <span class="p">{</span>
    <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">n</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
        <span class="k">for</span> <span class="p">(</span><span class="kt">char</span> <span class="n">ch</span> <span class="o">=</span> <span class="sc">'E'</span> <span class="o">-</span> <span class="n">i</span><span class="p">;</span> <span class="n">ch</span> <span class="o">&lt;</span> <span class="sc">'E'</span> <span class="o">+</span> <span class="mi">1</span><span class="p">;</span> <span class="n">ch</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
            <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">ch</span> <span class="o">&lt;&lt;</span> <span class="s">" "</span><span class="p">;</span>
        <span class="p">}</span>
        <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">endl</span><span class="p">;</span>
    <span class="p">}</span>
<span class="p">}</span>
</code></pre></div></div>

<p><br /></p>

<hr />

<p><br /></p>

<p>Pattern 19 -</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>**********
****  ****
***    ***
**      **
*        *
*        *
**      **
***    ***
****  ****
**********
</code></pre></div></div>

<p><strong>An attempt to explain my approach to solve these problems through this pattern 19</strong></p>

<p>Method 1 approach -</p>

<p>Idea is to first divide entire pattern into two halves A and B -
<img src="/assets/images/pattern-problems-in-cpp/first-half-second-half.webp" alt="Pattern problems in C++ illustration for pattern 19 method 1" /></p>

<p>Then subdivide the halves A and B into its quadrants (I, II, III, IV) -
<img src="/assets/images/pattern-problems-in-cpp/quadrants.webp" alt="Pattern problems in C++ illustration for pattern 19 method 1" /></p>

<p>Take half A and print its two quadrants (I and II) lines simultaneously -
<img src="/assets/images/pattern-problems-in-cpp/print-simul.webp" alt="Pattern problems in C++ illustration for pattern 19 method 1" /></p>

<p>For this just write the code to print pattern in quadrant II, then write the code to print pattern in quadrant I and then put a <code class="language-plaintext highlighter-rouge">cout &lt;&lt; endl</code> in the end.</p>

<p>Do the same for second half B.</p>

<div class="language-cpp highlighter-rouge"><div class="highlight"><pre class="highlight"><code>
<span class="kt">void</span> <span class="nf">print_pattern_19</span><span class="p">(</span><span class="kt">int</span> <span class="n">n</span><span class="p">)</span> <span class="p">{</span>

    <span class="c1">// First half</span>
    <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">n</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
    
        <span class="c1">/////////////////////</span>
        <span class="c1">// Second quadrant //</span>
        <span class="c1">/////////////////////</span>
        <span class="c1">// stars</span>
        <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">j</span> <span class="o">&lt;</span> <span class="n">n</span> <span class="o">-</span> <span class="n">i</span><span class="p">;</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
            <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="s">"*"</span><span class="p">;</span>
        <span class="p">}</span>
        
        <span class="c1">// spaces</span>
        <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">j</span> <span class="o">&lt;</span> <span class="n">i</span><span class="p">;</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
            <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="s">" "</span><span class="p">;</span>
        <span class="p">}</span>
        
        <span class="c1">////////////////////</span>
        <span class="c1">// First quadrant //</span>
        <span class="c1">////////////////////</span>
        <span class="c1">// spaces</span>
        <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">j</span> <span class="o">&lt;</span> <span class="n">i</span><span class="p">;</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
            <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="s">" "</span><span class="p">;</span>
        <span class="p">}</span>
        
        <span class="c1">// stars</span>
        <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">j</span> <span class="o">&lt;</span> <span class="n">n</span> <span class="o">-</span> <span class="n">i</span><span class="p">;</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
            <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="s">"*"</span><span class="p">;</span>
        <span class="p">}</span>
        
        <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">endl</span><span class="p">;</span>
    <span class="p">}</span>
    
    <span class="c1">// Second half</span>
    <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">n</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
    
        <span class="c1">////////////////////</span>
        <span class="c1">// Third quadrant //</span>
        <span class="c1">////////////////////</span>
        
        <span class="c1">// stars</span>
        <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">j</span> <span class="o">&lt;</span> <span class="n">i</span> <span class="o">+</span> <span class="mi">1</span><span class="p">;</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
            <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="s">"*"</span><span class="p">;</span>
        <span class="p">}</span>
        
        <span class="c1">// spaces</span>
        <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">j</span> <span class="o">&lt;</span> <span class="n">n</span> <span class="o">-</span> <span class="n">i</span> <span class="o">-</span> <span class="mi">1</span><span class="p">;</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
            <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="s">" "</span><span class="p">;</span>
        <span class="p">}</span>
        
        <span class="c1">/////////////////////</span>
        <span class="c1">// Fourth quadrant //</span>
        <span class="c1">/////////////////////</span>
        
        <span class="c1">// spaces</span>
        <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">j</span> <span class="o">&lt;</span> <span class="n">n</span> <span class="o">-</span> <span class="n">i</span> <span class="o">-</span> <span class="mi">1</span><span class="p">;</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
            <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="s">" "</span><span class="p">;</span>
        <span class="p">}</span>
        
        <span class="c1">// stars</span>
        <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">j</span> <span class="o">&lt;</span> <span class="n">i</span> <span class="o">+</span> <span class="mi">1</span><span class="p">;</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
            <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="s">"*"</span><span class="p">;</span>
        <span class="p">}</span>
        
        <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">endl</span><span class="p">;</span>
    <span class="p">}</span>
<span class="p">}</span>
</code></pre></div></div>

<p><br /></p>

<p>Method 2 approach -</p>

<p>Divide the pattern into two halves A and B -
<img src="/assets/images/pattern-problems-in-cpp/first-half-second-half-02.webp" alt="Pattern problems in C++ illustration for pattern 19 method 2" /></p>

<p>See the following pattern and then simply write the code for stars, then spaces and then again stars for both halves (first half shown here)
<img src="/assets/images/pattern-problems-in-cpp/method-02.webp" alt="Pattern problems in C++ illustration for pattern 19 method 2" /></p>

<p>Another way to visualize (left side is code from method 1 and right side is code from method 2) -
<img src="/assets/images/pattern-problems-in-cpp/first-half-spaces-combined.webp" alt="Pattern problems in C++ illustration for pattern 19 method 2" /></p>

<p><img src="/assets/images/pattern-problems-in-cpp/second-half-spaces-combined.webp" alt="Pattern problems in C++ illustration for pattern 19 method 2" /></p>

<p>See how <code class="language-plaintext highlighter-rouge">j &lt; i condition was written two times in half A</code> which got combined to <code class="language-plaintext highlighter-rouge">j &lt; 2 * i</code>. Same for half B.</p>

<div class="language-cpp highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">void</span> <span class="nf">print_pattern_19</span><span class="p">(</span><span class="kt">int</span> <span class="n">n</span><span class="p">)</span> <span class="p">{</span>
    <span class="c1">// First half</span>
    <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">n</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
        <span class="c1">// stars</span>
        <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">j</span> <span class="o">&lt;</span> <span class="n">n</span> <span class="o">-</span> <span class="n">i</span><span class="p">;</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
            <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="s">"*"</span><span class="p">;</span>
        <span class="p">}</span>
        
        <span class="c1">// spaces</span>
        <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">j</span> <span class="o">&lt;</span> <span class="mi">2</span><span class="o">*</span><span class="n">i</span><span class="p">;</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
            <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="s">" "</span><span class="p">;</span>
        <span class="p">}</span>
        
        <span class="c1">// stars</span>
        <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">j</span> <span class="o">&lt;</span> <span class="n">n</span> <span class="o">-</span> <span class="n">i</span><span class="p">;</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
            <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="s">"*"</span><span class="p">;</span>
        <span class="p">}</span>
        
        <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">endl</span><span class="p">;</span>
    <span class="p">}</span>
    
    <span class="c1">// Second half</span>
    <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">n</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
        <span class="c1">// stars</span>
        <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">j</span> <span class="o">&lt;</span> <span class="n">i</span> <span class="o">+</span> <span class="mi">1</span><span class="p">;</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
             <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="s">"*"</span><span class="p">;</span>
        <span class="p">}</span>
        
        <span class="c1">// spaces</span>
        <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">j</span> <span class="o">&lt;</span> <span class="mi">2</span> <span class="o">*</span> <span class="p">(</span><span class="n">n</span> <span class="o">-</span> <span class="n">i</span> <span class="o">-</span> <span class="mi">1</span><span class="p">);</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
            <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="s">" "</span><span class="p">;</span>
        <span class="p">}</span>
        
        <span class="c1">// stars</span>
        <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">j</span> <span class="o">&lt;</span> <span class="n">i</span> <span class="o">+</span> <span class="mi">1</span><span class="p">;</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
             <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="s">"*"</span><span class="p">;</span>
        <span class="p">}</span>
        
        <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">endl</span><span class="p">;</span>
    <span class="p">}</span>
<span class="p">}</span>
</code></pre></div></div>

<p><br /></p>

<hr />

<p><br /></p>

<p>Pattern 20 -</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>*        *
**      **
***    ***
****  ****
**********
****  ****
***    ***
**      **
*        *
</code></pre></div></div>

<div class="language-cpp highlighter-rouge"><div class="highlight"><pre class="highlight"><code>
<span class="kt">void</span> <span class="nf">print_pattern_20</span><span class="p">(</span><span class="kt">int</span> <span class="n">n</span><span class="p">)</span> <span class="p">{</span>
    <span class="c1">// First half</span>
    <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">n</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
        <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">j</span> <span class="o">&lt;</span> <span class="n">i</span> <span class="o">+</span> <span class="mi">1</span><span class="p">;</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
            <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="s">"*"</span><span class="p">;</span>
        <span class="p">}</span>
        
        <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">j</span> <span class="o">&lt;</span> <span class="mi">2</span> <span class="o">*</span> <span class="p">(</span><span class="n">n</span> <span class="o">-</span> <span class="n">i</span> <span class="o">-</span> <span class="mi">1</span><span class="p">);</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
            <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="s">" "</span><span class="p">;</span>
        <span class="p">}</span>
        
        <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">j</span> <span class="o">&lt;</span> <span class="n">i</span> <span class="o">+</span> <span class="mi">1</span><span class="p">;</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
            <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="s">"*"</span><span class="p">;</span>
        <span class="p">}</span>
        
        <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">endl</span><span class="p">;</span>
    <span class="p">}</span>
    
    <span class="c1">// Second half</span>
    <span class="c1">// i = 1 so we can skip i = 0 line printing twice</span>
    <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">n</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
        <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">j</span> <span class="o">&lt;</span> <span class="n">n</span> <span class="o">-</span> <span class="n">i</span><span class="p">;</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
            <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="s">"*"</span><span class="p">;</span>
        <span class="p">}</span>
        
        <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">j</span> <span class="o">&lt;</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">i</span><span class="p">;</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
            <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="s">" "</span><span class="p">;</span>
        <span class="p">}</span>
        
        <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">j</span> <span class="o">&lt;</span> <span class="n">n</span> <span class="o">-</span> <span class="n">i</span><span class="p">;</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
            <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="s">"*"</span><span class="p">;</span>
        <span class="p">}</span>
        
        <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">endl</span><span class="p">;</span>
    <span class="p">}</span>
<span class="p">}</span>
</code></pre></div></div>

<div class="language-cpp highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">void</span> <span class="nf">print_pattern_20</span><span class="p">(</span><span class="kt">int</span> <span class="n">n</span><span class="p">)</span> <span class="p">{</span>
    <span class="kt">int</span> <span class="n">spaces</span> <span class="o">=</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">n</span><span class="p">;</span>
    <span class="kt">int</span> <span class="n">stars</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
    <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">n</span> <span class="o">-</span> <span class="mi">1</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
    
        <span class="k">if</span> <span class="p">(</span><span class="n">i</span> <span class="o">&gt;=</span> <span class="n">n</span><span class="p">)</span> <span class="p">{</span>
            <span class="n">stars</span> <span class="o">=</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">n</span> <span class="o">-</span> <span class="n">i</span> <span class="o">-</span> <span class="mi">1</span><span class="p">;</span>
            <span class="n">spaces</span> <span class="o">+=</span> <span class="mi">2</span><span class="p">;</span>
        <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
            <span class="n">stars</span> <span class="o">=</span> <span class="n">i</span> <span class="o">+</span> <span class="mi">1</span><span class="p">;</span>
            <span class="n">spaces</span> <span class="o">-=</span> <span class="mi">2</span><span class="p">;</span>
        <span class="p">}</span>
        
        <span class="c1">// Stars</span>
        <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">j</span> <span class="o">&lt;</span> <span class="n">stars</span><span class="p">;</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
            <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="s">"*"</span><span class="p">;</span>
        <span class="p">}</span>
        
        <span class="c1">// Spaces</span>
        <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">j</span> <span class="o">&lt;</span> <span class="n">spaces</span><span class="p">;</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
            <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="s">" "</span><span class="p">;</span>
        <span class="p">}</span>
        
        <span class="c1">// Stars</span>
        <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">j</span> <span class="o">&lt;</span> <span class="n">stars</span><span class="p">;</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
            <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="s">"*"</span><span class="p">;</span>
        <span class="p">}</span>
        
        <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">endl</span><span class="p">;</span>
    <span class="p">}</span>
<span class="p">}</span>

</code></pre></div></div>

<p><br /></p>

<hr />

<p><br /></p>

<p>Pattern 21 -</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>* * * * *
*       *
*       *
*       *
* * * * *
</code></pre></div></div>

<div class="language-cpp highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">void</span> <span class="nf">print_pattern_21</span><span class="p">(</span><span class="kt">int</span> <span class="n">n</span><span class="p">)</span> <span class="p">{</span>
    <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">n</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
        <span class="c1">// First and last row</span>
        <span class="k">if</span> <span class="p">((</span><span class="n">i</span> <span class="o">==</span> <span class="mi">0</span><span class="p">)</span> <span class="o">||</span> <span class="p">(</span><span class="n">i</span> <span class="o">==</span> <span class="n">n</span> <span class="o">-</span> <span class="mi">1</span><span class="p">))</span> <span class="p">{</span>
            <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">j</span> <span class="o">&lt;</span> <span class="n">n</span><span class="p">;</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
                <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="s">"* "</span><span class="p">;</span>
            <span class="p">}</span>
            <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">endl</span><span class="p">;</span>
        <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
            <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="s">"* "</span><span class="p">;</span>
            <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">j</span> <span class="o">&lt;</span> <span class="n">n</span> <span class="o">-</span> <span class="mi">2</span><span class="p">;</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
                <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="s">"  "</span><span class="p">;</span>
            <span class="p">}</span>
            <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="s">"*"</span> <span class="o">&lt;&lt;</span> <span class="n">endl</span><span class="p">;</span>
        <span class="p">}</span>
    <span class="p">}</span>
<span class="p">}</span>
</code></pre></div></div>

<div class="language-cpp highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">void</span> <span class="nf">print_pattern_21</span><span class="p">(</span><span class="kt">int</span> <span class="n">n</span><span class="p">)</span> <span class="p">{</span>
    <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">n</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
        <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">j</span> <span class="o">&lt;</span> <span class="n">n</span><span class="p">;</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
            <span class="c1">// Fill with stars only if i or j is in boundary</span>
            <span class="k">if</span> <span class="p">(</span><span class="n">i</span> <span class="o">==</span> <span class="mi">0</span> <span class="o">||</span> <span class="n">i</span> <span class="o">==</span> <span class="n">n</span> <span class="o">-</span> <span class="mi">1</span> <span class="o">||</span> <span class="n">j</span> <span class="o">==</span> <span class="mi">0</span> <span class="o">||</span> <span class="n">j</span> <span class="o">==</span> <span class="n">n</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span> <span class="p">{</span>
                <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="s">"* "</span><span class="p">;</span>
            <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
                <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="s">"  "</span><span class="p">;</span>
            <span class="p">}</span>
        <span class="p">}</span>
        <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">endl</span><span class="p">;</span>
    <span class="p">}</span>
<span class="p">}</span>
</code></pre></div></div>

<p><br /></p>

<hr />

<p><br /></p>

<p>Pattern 22 -</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>5 5 5 5 5 5 5 5 5
5 4 4 4 4 4 4 4 5
5 4 3 3 3 3 3 4 5
5 4 3 2 2 2 3 4 5
5 4 3 2 1 2 3 4 5
5 4 3 2 2 2 3 4 5
5 4 3 3 3 3 3 4 5
5 4 4 4 4 4 4 4 5
5 5 5 5 5 5 5 5 5
</code></pre></div></div>

<div class="language-cpp highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">void</span> <span class="nf">print_pattern_22</span><span class="p">(</span><span class="kt">int</span> <span class="n">n</span><span class="p">)</span> <span class="p">{</span>
    <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">n</span> <span class="o">-</span> <span class="mi">1</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
        <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">j</span> <span class="o">&lt;</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">n</span> <span class="o">-</span> <span class="mi">1</span><span class="p">;</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
            <span class="c1">// Calculate distances</span>
            <span class="kt">int</span> <span class="n">top_dist</span> <span class="o">=</span> <span class="n">i</span><span class="p">;</span>
            <span class="kt">int</span> <span class="n">bottom_dist</span> <span class="o">=</span> <span class="p">(</span><span class="mi">2</span> <span class="o">*</span> <span class="n">n</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span> <span class="o">-</span> <span class="n">i</span> <span class="o">-</span> <span class="mi">1</span><span class="p">;</span>
            <span class="kt">int</span> <span class="n">left_dist</span> <span class="o">=</span> <span class="n">j</span><span class="p">;</span>
            <span class="kt">int</span> <span class="n">right_dist</span> <span class="o">=</span> <span class="p">(</span><span class="mi">2</span> <span class="o">*</span> <span class="n">n</span>  <span class="o">-</span> <span class="mi">1</span><span class="p">)</span> <span class="o">-</span> <span class="n">j</span> <span class="o">-</span> <span class="mi">1</span><span class="p">;</span>
            
            <span class="c1">// For</span>
            <span class="c1">// n = 2 -&gt; max dist - 0</span>
            <span class="c1">// n = 3 -&gt; max dist - 1</span>
            <span class="c1">// n = 4 -&gt; max dist - 2</span>
            <span class="c1">// n = 5 -&gt; max dist - 3</span>
            <span class="c1">// n = n -&gt; max dist - (n - 2)</span>
            <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">max</span><span class="p">(</span><span class="n">max</span><span class="p">(</span><span class="n">top_dist</span><span class="p">,</span> <span class="n">bottom_dist</span><span class="p">),</span> <span class="n">max</span><span class="p">(</span><span class="n">left_dist</span><span class="p">,</span> <span class="n">right_dist</span><span class="p">))</span> <span class="o">-</span> <span class="p">(</span><span class="n">n</span> <span class="o">-</span> <span class="mi">2</span><span class="p">)</span> <span class="o">&lt;&lt;</span> <span class="s">" "</span><span class="p">;</span>
        <span class="p">}</span>
        <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">endl</span><span class="p">;</span>
    <span class="p">}</span>
<span class="p">}</span>
</code></pre></div></div>

<div class="language-cpp highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">void</span> <span class="nf">print_pattern_22</span><span class="p">(</span><span class="kt">int</span> <span class="n">n</span><span class="p">)</span> <span class="p">{</span>
    <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">n</span> <span class="o">-</span> <span class="mi">1</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
        <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">j</span> <span class="o">&lt;</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">n</span> <span class="o">-</span> <span class="mi">1</span><span class="p">;</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
            <span class="kt">int</span> <span class="n">top_dist</span> <span class="o">=</span> <span class="n">i</span><span class="p">;</span>
            <span class="kt">int</span> <span class="n">bottom_dist</span> <span class="o">=</span> <span class="p">(</span><span class="mi">2</span> <span class="o">*</span> <span class="n">n</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span> <span class="o">-</span> <span class="n">i</span> <span class="o">-</span> <span class="mi">1</span><span class="p">;</span>
            <span class="kt">int</span> <span class="n">left_dist</span> <span class="o">=</span> <span class="n">j</span><span class="p">;</span>
            <span class="kt">int</span> <span class="n">right_dist</span> <span class="o">=</span> <span class="p">(</span><span class="mi">2</span> <span class="o">*</span> <span class="n">n</span>  <span class="o">-</span> <span class="mi">1</span><span class="p">)</span> <span class="o">-</span> <span class="n">j</span> <span class="o">-</span> <span class="mi">1</span><span class="p">;</span>
            
            <span class="c1">// Before subtracting n</span>
            <span class="c1">// 0 0 0 0 0 0 0 0 0</span>
            <span class="c1">// 0 1 1 1 1 1 1 1 0</span>
            <span class="c1">// 0 1 2 2 2 2 2 1 0</span>
            <span class="c1">// 0 1 2 3 3 3 2 1 0</span>
            <span class="c1">// 0 1 2 3 4 3 2 1 0</span>
            <span class="c1">// 0 1 2 3 3 3 2 1 0</span>
            <span class="c1">// 0 1 2 2 2 2 2 1 0</span>
            <span class="c1">// 0 1 1 1 1 1 1 1 0</span>
            <span class="c1">// 0 0 0 0 0 0 0 0 0</span>
            <span class="c1">// So if we subtract n from each cell we get the desired pattern</span>
                
            <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">n</span> <span class="o">-</span> <span class="n">min</span><span class="p">(</span><span class="n">min</span><span class="p">(</span><span class="n">top_dist</span><span class="p">,</span> <span class="n">bottom_dist</span><span class="p">),</span> <span class="n">min</span><span class="p">(</span><span class="n">left_dist</span><span class="p">,</span> <span class="n">right_dist</span><span class="p">))</span><span class="o">&lt;&lt;</span> <span class="s">" "</span><span class="p">;</span>
        <span class="p">}</span>
        <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">endl</span><span class="p">;</span>
    <span class="p">}</span>
<span class="p">}</span>
</code></pre></div></div>

<p><br /></p>

<hr />

<p><br /></p>

<p>Pattern 23 -</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>    *
   * *
  * * *
 * * * *
* * * * *
</code></pre></div></div>

<div class="language-cpp highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">void</span> <span class="nf">print_pattern_23</span><span class="p">(</span><span class="kt">int</span> <span class="n">n</span><span class="p">)</span> <span class="p">{</span>
    <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">n</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
        <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">j</span> <span class="o">&lt;</span> <span class="n">n</span><span class="p">;</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
            <span class="k">if</span> <span class="p">(</span><span class="n">j</span> <span class="o">&lt;</span> <span class="n">n</span> <span class="o">-</span> <span class="n">i</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span>
                <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="s">" "</span><span class="p">;</span>
            <span class="k">else</span>
                <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="s">"* "</span><span class="p">;</span>
        <span class="p">}</span>
        <span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="n">endl</span><span class="p">;</span>
    <span class="p">}</span>
<span class="p">}</span>
</code></pre></div></div>]]></content><author><name>insane</name></author><category term="cpp" /><category term="patterns" /><category term="cpp" /><category term="patterns" /><category term="algorithms" /><category term="dsa" /><category term="post-12" /><summary type="html"><![CDATA[]]></summary></entry><entry><title type="html">Basic git commands</title><link href="/posts/basic-git-commands/" rel="alternate" type="text/html" title="Basic git commands" /><published>2025-08-09T00:00:00+00:00</published><updated>2025-08-09T00:00:00+00:00</updated><id>/posts/basic-git-commands</id><content type="html" xml:base="/posts/basic-git-commands/"><![CDATA[<p><img src="/assets/images/basic-git-commands/thumbnail.webp" alt="Thumbnail for the post" /></p>

<p><br /></p>

<p>Simple git commands you would use everyday, nothing else. Best to use as a cheatsheet sort of idk. Enjoy.</p>

<p><br /></p>

<p>1. Set username and email. These credentials are used to tell who committed a particular commit.</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c"># Set it globally.</span>
git config <span class="nt">--global</span> user.name <span class="s2">"Your Name"</span>
git config <span class="nt">--global</span> user.email <span class="s2">"your_email@example.com"</span>

<span class="c"># Set for a particular repository.</span>
<span class="nb">cd </span>repo
git config user.name <span class="s2">"Your Name"</span>
git config user.email <span class="s2">"your_email@example.com"</span>
</code></pre></div></div>

<p><br /></p>

<p>2. Get status of which files are untracked, which are in staging area and which are modfiied.</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git status
git status <span class="nt">-s</span> <span class="c"># shorter version of "git status".</span>
			  <span class="c"># red M means changes made in file but not staged.</span>
			  <span class="c"># green M means file is staged but not commited.</span>
</code></pre></div></div>

<p><br /></p>

<p>3. Add files to staging area.</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git add file1 file2
git add <span class="nt">-A</span> <span class="o">(</span>Add all untracked files<span class="o">)</span>
</code></pre></div></div>

<p><br /></p>

<p>4. Commit files from staging area.</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git commit <span class="nt">-m</span> <span class="s2">"Commit message"</span>
</code></pre></div></div>

<p><br /></p>

<p>5. Match working directory with its last commit version. If the file is staged and you modify it, then running this command will restore it to the staged version instead.</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git checkout path/filename <span class="c"># To match the contents of the file/ files with their last commit verison.</span>
git checkout <span class="nt">-f</span> <span class="c"># To match the contents of all modified files to their last commit version.</span>

<span class="c"># git restore is the new version.</span>
</code></pre></div></div>

<p><br /></p>

<p>6.  Show history of commits.</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git log

<span class="c"># Show upto n (here 1) commit(s). It will show a detailed overview of the commit(s).</span>
git log <span class="nt">-p</span> <span class="nt">-1</span>
</code></pre></div></div>

<p><br /></p>

<p>7. Compares working directory with the staging area. If the file isn’t in staging area then it will compare it with the version last committed version (as that is in the staging area by default).</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git diff
</code></pre></div></div>

<p><br /></p>

<p>8. Compare files in staging area with their last commit version.</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git diff <span class="nt">--staged</span>
</code></pre></div></div>

<p><br /></p>

<p>9. Add/ Stage and commit tracked files in a single command.</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git commit <span class="nt">-am</span> <span class="s2">"Commit message"</span>
</code></pre></div></div>

<p>Only works for files that are already tracked. Untracked files won’t be added. Use <code class="language-plaintext highlighter-rouge">git add -A</code> or <code class="language-plaintext highlighter-rouge">git add untracked-file-name</code> for that.</p>

<p><br /></p>

<p>10. Remove a file from both <strong>working directory</strong> and from <strong>being tracked</strong>.</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git <span class="nb">rm </span>filename

<span class="c"># then commit the changes.</span>
git commit <span class="nt">-m</span> <span class="s2">"remove filename"</span>
</code></pre></div></div>

<p><br /></p>

<p>11. Remove a file <strong>from being tracked</strong> but <strong>not from the working directory</strong>.</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git <span class="nb">rm</span> <span class="nt">--cached</span> &lt;filename&gt;

<span class="c"># then commit the changes.</span>
git commit <span class="nt">-m</span> <span class="s2">"remove filename from being tracked"</span>
</code></pre></div></div>

<p><br /></p>

<p>12. Example .gitignore. The effects of gitignore file is immediate.
    If the file you want to ignore is already being tracked then writing it down in gitignore won’t work. Simply <code class="language-plaintext highlighter-rouge">git rm --cache</code> the file and then it will be ignored by the git.</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">*</span>.log       <span class="c"># ignore log files present in any subdir.</span>
/<span class="k">*</span>.log      <span class="c"># ignore log files present in root of the working directory.</span>
somefolder/ <span class="c"># to ignore some folder.</span>
</code></pre></div></div>

<p><br /></p>

<p>13. View all branches.</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git branch <span class="c"># By default their will be a master or main branch depening on your git global configs.</span>
</code></pre></div></div>

<p><br /></p>

<p>14. Create a branch. When you create a new branch, it starts with the exact state (commits and files) of the branch you created it from.</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git branch branchname
</code></pre></div></div>

<p>If you created it from <code class="language-plaintext highlighter-rouge">main</code> branch and it had 5 commits. Then this new branch will also have 5 commits and start from their.</p>

<p><br /></p>

<p>15. Switch branch.</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git checkout &lt;branch-name&gt;
</code></pre></div></div>

<p><br /></p>

<p>16. Create and switch to that branch in one command.</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git checkout <span class="nt">-b</span> branchmain
</code></pre></div></div>

<p><br /></p>

<p>17. Merge <code class="language-plaintext highlighter-rouge">branch2</code> with <code class="language-plaintext highlighter-rouge">branch1</code>.</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git checkout &lt;branch2&gt;
git merge &lt;branch1&gt;
</code></pre></div></div>

<p>Now <code class="language-plaintext highlighter-rouge">branch2</code> has the changes made in <code class="language-plaintext highlighter-rouge">branch1</code>.</p>

<p><br /></p>

<p>18. Connect GitHub repo (called as remote repo) with your local git repo. Then you can push and pull from this remote repo.</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git remote add origin git-repo-url 

<span class="c"># It will add the repo url under the name origin. So next time whole url can be referred as "origin". Also we can say origin as the remote now.</span>
</code></pre></div></div>

<p>Its basically like <code class="language-plaintext highlighter-rouge">origin = url</code> in terms of programming.</p>

<p><br /></p>

<p>19. See what remote repo have been added.</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git remote <span class="nt">-v</span>
</code></pre></div></div>

<p><br /></p>

<p>20. Change url a remote (like origin) points to. <code class="language-plaintext highlighter-rouge">Remote name</code> is simply the name you associated your remote url with like <code class="language-plaintext highlighter-rouge">origin</code>.</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git remote set-url &lt;remote-name&gt; &lt;new-url&gt;
</code></pre></div></div>

<p><br /></p>

<p>21. Remove a remote repo link like <code class="language-plaintext highlighter-rouge">origin</code>.</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git remote remove origin <span class="c"># Replace origin with whatever you named your remote repo.</span>
</code></pre></div></div>

<p><br /></p>

<p>22. Rename a branch.</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c"># Switch to the branch you want to rename.</span>
git branch &lt;branch-to-rename&gt;

<span class="c"># Rename the branch.</span>
git branch <span class="nt">-M</span> &lt;new-branch-name&gt;
</code></pre></div></div>

<p><br /></p>

<p>23. Set upstream for a branch.</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git push <span class="nt">-u</span> origin main
<span class="c"># Now if you are on main branch, just writing git push would push main branch to origin.</span>
<span class="c"># Won't work if you change branch.</span>
</code></pre></div></div>

<p><br /></p>

<p>24. How to push some other branch than <code class="language-plaintext highlighter-rouge">main</code>.</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git push origin &lt;desired-branch-to-push&gt;
</code></pre></div></div>

<p><br /></p>

<p>25. Clone a remote repo.</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git clone &lt;repo-url&gt; <span class="c"># Will clone the repo contents into a folder named after the repo name.</span>
git clone &lt;repo-url&gt; &lt;folder-name&gt; <span class="c"># Will clone the repo contents into &lt;folder-name&gt; folder.</span>
</code></pre></div></div>

<p><br /></p>

<p>26. Set default branch as <code class="language-plaintext highlighter-rouge">main</code> globally.</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git config <span class="nt">--global</span> init.defaultBranch main
</code></pre></div></div>

<p><br /></p>

<hr />

<p><br /></p>

<h3 id="notes">Notes</h3>
<ol>
  <li>Tracking a file starts right after you add it to staging area.</li>
  <li>Committing the file means you tell git to save these as the latest changes to my files.</li>
  <li>A modified file it git means a tracked file whose content is changed. And that change in file hasn’t yet been staged.</li>
  <li>Working directory simply means your local git repo. Or, the directory in which <code class="language-plaintext highlighter-rouge">git init .</code> was run</li>
  <li>The staging area if empty then it contains the last commit files.</li>
  <li>Adding a file in git simply means putting it to staging area.</li>
  <li>Local git repo can be hosted on platforms like GitHub, bitbucket, gitlabs, etc.</li>
  <li>Remote repo mean a repo in some remote place (other than your local machine). Somewhere in cloud like GitHub. Then you link it with your local repo to contain the same things.</li>
  <li>Repo = Repository.</li>
</ol>

<p><br /></p>

<hr />

<p><br /></p>

<h3 id="lol-diagrams-xd">Lol diagrams xD?</h3>

<h4 id="git-workflow">Git workflow</h4>
<p><img src="/assets/images/images/basic-git-commands/git-diagram.webp" alt="Git workflow diagram" /></p>

<h4 id="git-status">Git status</h4>
<p><img src="/assets/images/basic-git-commands/git-status-01.webp" alt="Git status" /></p>

<p><br /></p>

<p>🕊️ (don’t mind me, I am just a bird)</p>]]></content><author><name>insane</name></author><category term="git" /><category term="git" /><category term="cli" /><category term="github" /><category term="post-11" /><summary type="html"><![CDATA[]]></summary></entry><entry><title type="html">Simple profile card using basic CSS</title><link href="/posts/simple-profile-card-using-basic-css/" rel="alternate" type="text/html" title="Simple profile card using basic CSS" /><published>2025-08-07T00:00:00+00:00</published><updated>2025-08-07T00:00:00+00:00</updated><id>/posts/simple-profile-card-using-basic-css</id><content type="html" xml:base="/posts/simple-profile-card-using-basic-css/"><![CDATA[<p><img src="/assets/images/simple-profile-card-using-basic-css/thumbnail.webp" alt="Thumbnail for the post" /></p>

<p><br /></p>

<p>Code -</p>
<div class="language-html highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="cp">&lt;!doctype html&gt;</span>
<span class="nt">&lt;html</span> <span class="na">lang=</span><span class="s">"en"</span><span class="nt">&gt;</span>
    <span class="nt">&lt;head&gt;</span>
        <span class="nt">&lt;meta</span> <span class="na">charset=</span><span class="s">"UTF-8"</span> <span class="nt">/&gt;</span>
        <span class="nt">&lt;meta</span> <span class="na">name=</span><span class="s">"viewport"</span> <span class="na">content=</span><span class="s">"width=device-width, initial-scale=1.0"</span> <span class="nt">/&gt;</span>
        <span class="nt">&lt;title&gt;</span>Document<span class="nt">&lt;/title&gt;</span>
        <span class="nt">&lt;style&gt;</span>
            <span class="k">@import</span> <span class="nf">url</span><span class="p">(</span><span class="s1">"https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&amp;display=swap"</span><span class="p">);</span>

            <span class="o">*</span> <span class="p">{</span>
                <span class="nl">margin</span><span class="p">:</span> <span class="m">0</span><span class="p">;</span>
                <span class="nl">padding</span><span class="p">:</span> <span class="m">0</span><span class="p">;</span>
            <span class="p">}</span>

            <span class="nc">.card</span> <span class="o">*</span> <span class="p">{</span>
                <span class="nl">margin-bottom</span><span class="p">:</span> <span class="m">10px</span><span class="p">;</span>
            <span class="p">}</span>

            <span class="nc">.card</span> <span class="p">{</span>
                <span class="nl">font-family</span><span class="p">:</span> <span class="s1">"Poppins"</span><span class="p">,</span> <span class="nb">sans-serif</span><span class="p">;</span>
                <span class="nl">font-weight</span><span class="p">:</span> <span class="m">400</span><span class="p">;</span>
                <span class="nl">font-style</span><span class="p">:</span> <span class="nb">normal</span><span class="p">;</span>
                <span class="nl">font-size</span><span class="p">:</span> <span class="m">10px</span><span class="p">;</span>
                <span class="nl">background-color</span><span class="p">:</span> <span class="nx">white</span><span class="p">;</span>
                <span class="nl">border-radius</span><span class="p">:</span> <span class="m">10px</span><span class="p">;</span>
                <span class="nl">width</span><span class="p">:</span> <span class="m">350px</span><span class="p">;</span>
                <span class="nl">padding</span><span class="p">:</span> <span class="m">10px</span><span class="p">;</span>
                <span class="nl">box-shadow</span><span class="p">:</span> <span class="m">0px</span> <span class="m">0px</span> <span class="m">10px</span> <span class="m">0px</span> <span class="n">grey</span><span class="p">;</span>
                <span class="nl">margin</span><span class="p">:</span> <span class="m">50px</span> <span class="nb">auto</span><span class="p">;</span>
            <span class="p">}</span>

            <span class="nt">img</span> <span class="p">{</span>
                <span class="nl">border-radius</span><span class="p">:</span> <span class="m">10px</span><span class="p">;</span>
                <span class="nl">height</span><span class="p">:</span> <span class="m">300px</span><span class="p">;</span>
                <span class="nl">width</span><span class="p">:</span> <span class="m">350px</span><span class="p">;</span>
            <span class="p">}</span>

            <span class="nc">.tag</span> <span class="p">{</span>
                <span class="nl">margin-left</span><span class="p">:</span> <span class="m">5px</span><span class="p">;</span>
                <span class="nl">margin-bottom</span><span class="p">:</span> <span class="m">30px</span><span class="p">;</span>
            <span class="p">}</span>

            <span class="nc">.tag</span> <span class="nt">span</span> <span class="p">{</span>
                <span class="nl">box-shadow</span><span class="p">:</span> <span class="m">0px</span> <span class="m">0px</span> <span class="m">5px</span> <span class="m">0px</span> <span class="n">grey</span><span class="p">;</span>
                <span class="nl">padding</span><span class="p">:</span> <span class="m">5px</span><span class="p">;</span>
                <span class="nl">border-radius</span><span class="p">:</span> <span class="m">10px</span><span class="p">;</span>
                <span class="nl">font-size</span><span class="p">:</span> <span class="m">1.2em</span><span class="p">;</span>
            <span class="p">}</span>

            <span class="nc">.tag</span> <span class="nt">span</span><span class="nd">:nth-child</span><span class="o">(</span><span class="err">2</span><span class="o">)</span> <span class="p">{</span>
                <span class="nl">margin-left</span><span class="p">:</span> <span class="m">5px</span><span class="p">;</span>
            <span class="p">}</span>

            <span class="nc">.card</span> <span class="nt">h1</span> <span class="p">{</span>
                <span class="nl">margin-bottom</span><span class="p">:</span> <span class="m">15px</span><span class="p">;</span>
                <span class="nl">font-size</span><span class="p">:</span> <span class="m">3.5em</span><span class="p">;</span>
            <span class="p">}</span>

            <span class="nc">.card</span> <span class="nc">.content</span> <span class="nt">p</span> <span class="p">{</span>
                <span class="nl">font-size</span><span class="p">:</span> <span class="m">1.5em</span><span class="p">;</span>
            <span class="p">}</span>

            <span class="nc">.card</span> <span class="nt">a</span> <span class="p">{</span>
                <span class="nl">text-decoration</span><span class="p">:</span> <span class="nb">none</span><span class="p">;</span>
                <span class="nl">box-shadow</span><span class="p">:</span> <span class="m">0px</span> <span class="m">0px</span> <span class="m">2px</span> <span class="m">0px</span> <span class="n">grey</span><span class="p">;</span>
                <span class="nl">border-radius</span><span class="p">:</span> <span class="m">25px</span><span class="p">;</span>
                <span class="nl">display</span><span class="p">:</span> <span class="nb">block</span><span class="p">;</span>
                <span class="nl">width</span><span class="p">:</span> <span class="n">max-content</span><span class="p">;</span>
                <span class="nl">margin</span><span class="p">:</span> <span class="m">0</span> <span class="nb">auto</span><span class="p">;</span>
                <span class="nl">margin-top</span><span class="p">:</span> <span class="m">30px</span><span class="p">;</span>
                <span class="nl">padding</span><span class="p">:</span> <span class="m">10px</span><span class="p">;</span>
                <span class="nl">background-color</span><span class="p">:</span> <span class="nx">lightcyan</span><span class="p">;</span>
                <span class="nl">color</span><span class="p">:</span> <span class="nx">blue</span><span class="p">;</span>
                <span class="nl">font-size</span><span class="p">:</span> <span class="m">1.2em</span><span class="p">;</span>
                <span class="nl">cursor</span><span class="p">:</span> <span class="nb">pointer</span><span class="p">;</span>
            <span class="p">}</span>

            <span class="nc">.card</span> <span class="nt">a</span><span class="nd">:hover</span> <span class="p">{</span>
                <span class="nl">background-color</span><span class="p">:</span> <span class="nx">lightblue</span><span class="p">;</span>
            <span class="p">}</span>
        <span class="nt">&lt;/style&gt;</span>
    <span class="nt">&lt;/head&gt;</span>
    <span class="nt">&lt;body&gt;</span>
        <span class="nt">&lt;div</span> <span class="na">class=</span><span class="s">"card"</span><span class="nt">&gt;</span>
            <span class="nt">&lt;div</span> <span class="na">class=</span><span class="s">"image"</span><span class="nt">&gt;</span>
                <span class="nt">&lt;img</span> <span class="na">src=</span><span class="s">"image.jpg"</span>
                    <span class="na">alt=</span><span class="s">"cover image"</span>
                <span class="nt">/&gt;</span>
            <span class="nt">&lt;/div&gt;</span>

            <span class="nt">&lt;div</span> <span class="na">class=</span><span class="s">"tag"</span><span class="nt">&gt;</span>
                <span class="nt">&lt;span&gt;</span>Coder<span class="nt">&lt;/span&gt;</span>
                <span class="nt">&lt;span&gt;</span>Coder<span class="nt">&lt;/span&gt;</span>
            <span class="nt">&lt;/div&gt;</span>

            <span class="nt">&lt;div</span> <span class="na">class=</span><span class="s">"content"</span><span class="nt">&gt;</span>
                <span class="nt">&lt;h1&gt;</span>About me<span class="nt">&lt;/h1&gt;</span>
                <span class="nt">&lt;p&gt;</span>
                    Lorem ipsum dolor sit amet consectetur, adipisicing elit.
                    Laborum, dolores error fuga autem voluptatum nam? Unde illum
                    veritatis consequuntur quo est a similique quibusdam, iure,
                    error ducimus, delectus sint sed?
                <span class="nt">&lt;/p&gt;</span>
            <span class="nt">&lt;/div&gt;</span>

            <span class="nt">&lt;a</span> <span class="na">href=</span><span class="s">"#"</span><span class="nt">&gt;</span>Read more<span class="nt">&lt;/a&gt;</span>
        <span class="nt">&lt;/div&gt;</span>
    <span class="nt">&lt;/body&gt;</span>
<span class="nt">&lt;/html&gt;</span>
</code></pre></div></div>

<p><img src="/assets/images/simple-profile-card-using-basic-css/profile-card.webp" alt="" /></p>]]></content><author><name>insane</name></author><category term="css" /><category term="css" /><category term="html" /><category term="webdev" /><category term="profile-card" /><category term="post-10" /><summary type="html"><![CDATA[]]></summary></entry><entry><title type="html">Wrap text around image using CSS Float</title><link href="/posts/wrap-text-around-image-using-css-float/" rel="alternate" type="text/html" title="Wrap text around image using CSS Float" /><published>2025-08-06T00:00:00+00:00</published><updated>2025-08-06T00:00:00+00:00</updated><id>/posts/wrap-text-around-image-using-css-float</id><content type="html" xml:base="/posts/wrap-text-around-image-using-css-float/"><![CDATA[<p><img src="/assets/images/wrap-text-around-image-using-css-float/thumbnail.webp" alt="Thumbnail for the post" /></p>

<p>I have made made a <code class="language-plaintext highlighter-rouge">&lt;div class='box'&gt;</code> and inside it is a <code class="language-plaintext highlighter-rouge">&lt;img&gt;</code> element and <code class="language-plaintext highlighter-rouge">&lt;p&gt;</code> element with some text. <code class="language-plaintext highlighter-rouge">&lt;div class='box'&gt;</code> as a black border with 10px padding, <code class="language-plaintext highlighter-rouge">&lt;img&gt;</code> has a red border and <code class="language-plaintext highlighter-rouge">&lt;p&gt;</code> has a green border. I have also reset global <code class="language-plaintext highlighter-rouge">(*)</code> css margin and padding to 0.</p>

<p>Currently the text simply goes below the image. Default behavior of block level elements.</p>

<div class="language-html highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt">&lt;html&gt;</span>
    <span class="nt">&lt;head&gt;</span>
        <span class="nt">&lt;title&gt;</span>CSS Float<span class="nt">&lt;/title&gt;</span>
        <span class="nt">&lt;style&gt;</span>
          <span class="o">&lt;!</span><span class="nt">--</span> 
            <span class="nt">I</span> <span class="nt">have</span> <span class="nt">not</span> <span class="nt">added</span> <span class="nt">the</span> <span class="nt">css</span> <span class="nt">for</span> <span class="nt">adding</span> <span class="nt">borders</span> <span class="nt">and</span> <span class="nt">all</span> <span class="nt">as</span> <span class="nt">it</span> <span class="nt">is</span> <span class="nt">very</span> 
            <span class="nt">simple</span> <span class="nt">to</span> <span class="nt">implement</span><span class="o">,</span> <span class="nt">and</span> <span class="nt">will</span> <span class="nt">make</span> <span class="nt">the</span> <span class="nt">code</span> <span class="nt">long</span> <span class="nt">for</span> <span class="nt">no</span> <span class="nt">reason</span><span class="o">.</span>
          <span class="nt">--</span><span class="o">&gt;</span>
        <span class="o">&lt;</span><span class="nt">style</span><span class="o">&gt;</span>
    <span class="o">&lt;/</span><span class="nt">head</span><span class="o">&gt;</span>
    <span class="o">&lt;</span><span class="nt">body</span><span class="o">&gt;</span>
        <span class="o">&lt;</span><span class="nt">div</span> <span class="nt">class</span><span class="o">=</span><span class="s1">"box"</span><span class="o">&gt;</span>
            <span class="o">&lt;</span><span class="nt">img</span> <span class="nt">src</span><span class="o">=</span><span class="s1">"guts.jpg"</span> <span class="nt">width</span><span class="o">=</span><span class="s1">"230px"</span> <span class="o">/&gt;</span>
            <span class="o">&lt;</span><span class="nt">p</span><span class="o">&gt;</span> <span class="o">...</span> <span class="o">&lt;/</span><span class="nt">p</span><span class="o">&gt;</span>
        <span class="o">&lt;/</span><span class="nt">div</span><span class="o">&gt;</span>
    <span class="o">&lt;/</span><span class="nt">body</span><span class="o">&gt;</span>
<span class="o">&lt;/</span><span class="nt">html</span><span class="o">&gt;</span>
</code></pre></div></div>

<p><img src="/assets/images/wrap-text-around-image-using-css-float/css-no-float.webp" alt="A main div with class=box with a image element and paragraph element inside it. No css float is applied to the image so the paragraph element simply goes below the image." /></p>

<p>Now to make the text wrap around the image, add <code class="language-plaintext highlighter-rouge">float: left</code> to <code class="language-plaintext highlighter-rouge">&lt;img&gt;</code>. The image will then floats on the left, and text wraps around it.</p>

<div class="language-html highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt">&lt;html&gt;</span>
    <span class="nt">&lt;head&gt;</span>
        <span class="nt">&lt;title&gt;</span>CSS Float<span class="nt">&lt;/title&gt;</span>
        <span class="nt">&lt;style&gt;</span>
            <span class="nc">.box</span> <span class="nt">img</span> <span class="p">{</span>
                <span class="nl">float</span><span class="p">:</span> <span class="nb">left</span>
            <span class="p">}</span>
        <span class="o">&lt;</span><span class="nt">style</span><span class="o">&gt;</span>
    <span class="o">&lt;/</span><span class="nt">head</span><span class="o">&gt;</span>
    <span class="o">&lt;</span><span class="nt">body</span><span class="o">&gt;</span>
        <span class="o">&lt;</span><span class="nt">div</span> <span class="nt">class</span><span class="o">=</span><span class="s1">"box"</span><span class="o">&gt;</span>
	        <span class="o">&lt;</span><span class="nt">img</span> <span class="nt">src</span><span class="o">=</span><span class="s1">"guts.jpg"</span> <span class="nt">width</span><span class="o">=</span><span class="s1">"230px"</span> <span class="o">/&gt;</span>
            <span class="o">&lt;</span><span class="nt">p</span><span class="o">&gt;</span> <span class="o">...</span> <span class="o">&lt;/</span><span class="nt">p</span><span class="o">&gt;</span>
        <span class="o">&lt;/</span><span class="nt">div</span><span class="o">&gt;</span>
    <span class="o">&lt;/</span><span class="nt">body</span><span class="o">&gt;</span>
<span class="o">&lt;/</span><span class="nt">html</span><span class="o">&gt;</span>
</code></pre></div></div>

<p><img src="/assets/images/wrap-text-around-image-using-css-float/css-float-with-no-padding-no-margin.webp" alt="CSS float applied to the image so the paragraph element's text wraps around the image." /></p>

<p>You will notice that image is actually floating inside <code class="language-plaintext highlighter-rouge">&lt;p&gt;</code>’s border. Add some margin to <code class="language-plaintext highlighter-rouge">&lt;img&gt;</code> to notice it.</p>

<div class="language-html highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt">&lt;html&gt;</span>
    <span class="nt">&lt;head&gt;</span>
        <span class="nt">&lt;title&gt;</span>CSS Float<span class="nt">&lt;/title&gt;</span>
        <span class="nt">&lt;style&gt;</span>
            <span class="nc">.box</span> <span class="nt">img</span> <span class="p">{</span>
                <span class="nl">float</span><span class="p">:</span> <span class="nb">left</span><span class="p">;</span>
                <span class="nl">margin</span><span class="p">:</span> <span class="m">10px</span><span class="p">;</span>
            <span class="p">}</span>
        <span class="o">&lt;</span><span class="nt">style</span><span class="o">&gt;</span>
    <span class="o">&lt;/</span><span class="nt">head</span><span class="o">&gt;</span>
    <span class="o">&lt;</span><span class="nt">body</span><span class="o">&gt;</span>
        <span class="o">&lt;</span><span class="nt">div</span> <span class="nt">class</span><span class="o">=</span><span class="s1">"box"</span><span class="o">&gt;</span>
            <span class="o">&lt;</span><span class="nt">img</span> <span class="nt">src</span><span class="o">=</span><span class="s1">"guts.jpg"</span> <span class="nt">width</span><span class="o">=</span><span class="s1">"230px"</span> <span class="o">/&gt;</span>
            <span class="o">&lt;</span><span class="nt">p</span><span class="o">&gt;</span> <span class="o">...</span> <span class="o">&lt;/</span><span class="nt">p</span><span class="o">&gt;</span>
        <span class="o">&lt;/</span><span class="nt">div</span><span class="o">&gt;</span>
    <span class="o">&lt;/</span><span class="nt">body</span><span class="o">&gt;</span>
<span class="o">&lt;/</span><span class="nt">html</span><span class="o">&gt;</span>
</code></pre></div></div>

<p><img src="/assets/images/wrap-text-around-image-using-css-float/css-float.webp" alt="Margin of 10px is added to the image element to depict it is floating inside paragraph element's border." /></p>

<p>The image being big overflows <code class="language-plaintext highlighter-rouge">&lt;div class='box'&gt;</code>  border. One simple way to fix it is to add <code class="language-plaintext highlighter-rouge">display: flow-root</code> to the <code class="language-plaintext highlighter-rouge">&lt;div class='box'&gt;</code> .</p>

<div class="language-html highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt">&lt;html&gt;</span>
    <span class="nt">&lt;head&gt;</span>
        <span class="nt">&lt;title&gt;</span>CSS Float<span class="nt">&lt;/title&gt;</span>
        <span class="nt">&lt;style&gt;</span>
            <span class="nc">.box</span> <span class="nt">img</span> <span class="p">{</span>
    			<span class="nl">float</span><span class="p">:</span> <span class="nb">left</span><span class="p">;</span>
    			<span class="nl">margin</span><span class="p">:</span> <span class="m">10px</span><span class="p">;</span>
    		<span class="p">}</span>
    		
            <span class="nc">.box</span> <span class="p">{</span>
                <span class="nl">display</span><span class="p">:</span> <span class="n">flow-root</span><span class="p">;</span>
            <span class="p">}</span>
        <span class="o">&lt;</span><span class="nt">style</span><span class="o">&gt;</span>
    <span class="o">&lt;/</span><span class="nt">head</span><span class="o">&gt;</span>
    <span class="o">&lt;</span><span class="nt">body</span><span class="o">&gt;</span>
        <span class="o">&lt;</span><span class="nt">div</span> <span class="nt">class</span><span class="o">=</span><span class="s1">"box"</span><span class="o">&gt;</span>
            <span class="o">&lt;</span><span class="nt">img</span> <span class="nt">src</span><span class="o">=</span><span class="s1">"guts.jpg"</span> <span class="nt">width</span><span class="o">=</span><span class="s1">"230px"</span> <span class="o">/&gt;</span>
            <span class="o">&lt;</span><span class="nt">p</span><span class="o">&gt;</span> <span class="o">...</span> <span class="o">&lt;/</span><span class="nt">p</span><span class="o">&gt;</span>
        <span class="o">&lt;/</span><span class="nt">div</span><span class="o">&gt;</span>
    <span class="o">&lt;/</span><span class="nt">body</span><span class="o">&gt;</span>
<span class="o">&lt;/</span><span class="nt">html</span><span class="o">&gt;</span>
</code></pre></div></div>
<p><img src="/assets/images/wrap-text-around-image-using-css-float/flow-root-applied.webp" alt="display: flow-root applied to div with class=box so image doesn't overflow it." /></p>

<p>Now add some more text to <code class="language-plaintext highlighter-rouge">&lt;p&gt;</code> to see more wrapping.
<img src="/assets/images/wrap-text-around-image-using-css-float/more-text.webp" alt="More text added to the paragraph element to show proper wrapping of its text around the image." /></p>

<p>Now a days we use grid or flexbox to achieve the same.</p>

<p>:p</p>]]></content><author><name>insane</name></author><category term="css" /><category term="css" /><category term="float" /><category term="html" /><category term="webdev" /><category term="post-09" /><summary type="html"><![CDATA[]]></summary></entry><entry><title type="html">Insane Hugo Pipeline for Arch Linux</title><link href="/posts/setup-hugo-obsidian-git-pipeline/" rel="alternate" type="text/html" title="Insane Hugo Pipeline for Arch Linux" /><published>2025-07-27T00:00:00+00:00</published><updated>2025-07-27T00:00:00+00:00</updated><id>/posts/setup-hugo-obsidian-git-blog-pipeline-in-arch-linux</id><content type="html" xml:base="/posts/setup-hugo-obsidian-git-pipeline/"><![CDATA[<p><img src="/assets/images/setup-hugo-obsidian-git-blog-pipeline-in-arch-linux/thumbnail.webp" alt="Thumbnail for the post" /></p>

<h2 id="insane-hugo-pipeline-for-arch-linux">Insane Hugo Pipeline for Arch Linux</h2>

<blockquote>
  <p><em>Inspired by NetworkChuck’s <a href="https://youtu.be/dnE7c0ELEH8?si=3E6JENc2fJGbbgVT">I started a blog…..in 2024 (why you should too)</a> video.</em></p>
</blockquote>

<p>The guide is here: <a href="https://hugo.insanelogs.xyz/posts/hugo-pipeline/">https://hugo.insanelogs.xyz/posts/hugo-pipeline/</a></p>

<p>I made a test Hugo website myself and then wrote a guide for the steps I did. And, I decided to put the guide in the test Hugo website itself.</p>

<p>🦖</p>]]></content><author><name>insane</name></author><category term="hugo" /><category term="hugo" /><category term="blog" /><category term="ssg" /><category term="static-site" /><category term="go" /><category term="post-8" /><summary type="html"><![CDATA[]]></summary></entry><entry><title type="html">Linux CLI - System information commands</title><link href="/posts/linux-cli-system-information-commands-1/" rel="alternate" type="text/html" title="Linux CLI - System information commands" /><published>2025-07-20T00:00:00+00:00</published><updated>2025-07-20T00:00:00+00:00</updated><id>/posts/linux-cli-system-information-commands-1</id><content type="html" xml:base="/posts/linux-cli-system-information-commands-1/"><![CDATA[<p><img src="/assets/images/linux-cli/linux-cli-system-information-commands-1/thumbnail.webp" alt="Thumbnail for the post" /></p>

<p><br /></p>

<blockquote>
  <p><em>Inspired from hack the box academy linux tutorials</em></p>
</blockquote>

<p><br /></p>

<p>These are some commands which can help you get information about your system. Knowing them might come handy in times of troubleshooting.</p>

<p><br /></p>

<p><strong>1. hostname</strong> – Prints the name that you named your linux system while installing it.</p>

<p><img src="/assets/images/linux-cli/linux-cli-system-information-commands-1/hostname-cmd.webp" alt="Output of hostname command" /></p>

<p>The hostname (or simply name) of this system is <strong>ubuntuServer</strong>.</p>

<p><br /></p>

<hr />

<p><br /></p>

<p><strong>2. whoami</strong> – Prints the name of the user currently using the terminal.</p>

<p><strong>Note:</strong> You might login into the system via different user and then switch to a different user. It will show the most recent user you switched to.</p>

<p><img src="/assets/images/linux-cli/linux-cli-system-information-commands-1/whoami-cmd.webp" alt="Output of whoami command" /></p>

<p>Currently a user called <strong>insane</strong> is using the terminal.</p>

<p><br /></p>

<hr />

<p><br /></p>

<p><strong>3. id</strong> – This command simply commands expands on the whoami commands and provides more information like groups the user is into, their respective group ids and userid of the user.</p>

<p><img src="/assets/images/linux-cli/linux-cli-system-information-commands-1/id-cmd.webp" alt="Output of id command" /></p>

<p>User <strong>insane’s</strong> userid is <strong>1000</strong>. His primary group is also called <strong>insane</strong> with group id being <strong>1000</strong> (same as userid). Apart from that he is in <strong>groups</strong> – <strong>user</strong> (group id: <strong>100</strong>), <strong>developers</strong> (group id: <strong>1001</strong>), <strong>docker</strong> (group id: <strong>1002</strong>).</p>

<p><br /></p>

<hr />

<p><br /></p>

<p><strong>4. uname</strong> – Prints basic information about the system.</p>

<p><img src="/assets/images/linux-cli/linux-cli-system-information-commands-1/uname-cmd.webp" alt="Output of uname command" /></p>

<p>It simply returns name of the <strong>kernel</strong> which is <strong>linux</strong>.<br />
<strong>Uname</strong> command combined with some flags becomes very powerful and handy, but its a topic for some other time.</p>

<p><br /></p>

<hr />

<p><br /></p>

<p><strong>5. who</strong> – Prints who is currently logged in (like whoami) with some little bit of extra information. It also shows from which virtual terminal user logged in, when did he logged in and ipv4 address of the system.</p>

<p><img src="/assets/images/linux-cli/linux-cli-system-information-commands-1/who-cmd.webp" alt="Output of who command" /></p>

<p>I logged into this system/ server via <strong>root</strong> user (later I changed to a user called <strong>insane</strong> to run all the commands including this one). I logged in via <strong>virtual terminal 0</strong>. It also shows <strong>date and time</strong> of login and <strong>ipv4</strong> <strong>address</strong> of this system .</p>

<p><strong>Virtual terminal</strong> can be thought of as <strong>independent sessions</strong> or <strong>workspaces</strong> for simplicity but it has some quirks. Its not your typical workspaces. In any linux system their are like 6-7 virtual terminals which can be switched via ctrl+alt+f2/f3/etc.</p>

<hr />

<p><br /></p>

<p>That’s it for this post. <br />
Hope you like it :] . <br />
Give 10000 dollars for #2 :p <br />
🦖</p>]]></content><author><name>insane</name></author><category term="linux" /><category term="cli" /><category term="linux" /><category term="cli" /><category term="system" /><category term="commands" /><category term="post-07" /><summary type="html"><![CDATA[]]></summary></entry><entry><title type="html">Process synchronization - An easy explanation</title><link href="/posts/process-synchronization-an-easy-explanation/" rel="alternate" type="text/html" title="Process synchronization - An easy explanation" /><published>2025-07-10T00:00:00+00:00</published><updated>2025-07-10T00:00:00+00:00</updated><id>/posts/process-synchronization-an-easy-explanation</id><content type="html" xml:base="/posts/process-synchronization-an-easy-explanation/"><![CDATA[<p><img src="/assets/images/process-synchronization-an-easy-explanation/thumbnail.webp" alt="Thumbnail for the post" /></p>

<p><strong>Process Synchronization</strong> is simply about running multiple processes that are accessing the same common resource (or resources) in a specific, controlled order so that everything goes smoothly and there’s no conflict.</p>

<p>Here, multiple processes (or even threads) could be sharing resources like a file, a database, or some part of the memory — and synchronization ensures that they don’t mess things up for each other.</p>

<p>A simple example:<br />
Imagine we have a database and two programs – Program A and Program B.</p>

<ul>
  <li>Program A is responsible for adding/ updating (writing) a record to the database.</li>
  <li>Program B is responsible for reading a record from the database.</li>
</ul>

<p><img src="/assets/images/process-synchronization-an-easy-explanation/diagram.webp" alt="Diagram illustrating a database with 5 rows and two process A and B. Process A wants to update record 5 while at the same time process B wants to read record 5. This makes the database sad as these are two conflicting types of operations being performed at the same time" /></p>

<p>Now, there are 5 records in the database. Program B wants to read record 5, while Program A wants to edit and update record 5. If both programs attempt to access the record simultaneously, it could lead to problems, such as Program B reading a half-updated record.</p>

<p>To avoid this, <strong>synchronization</strong> is essential. The solution here is to lock the resource while either program is using it. If Program B decides to read record 5, the database should be locked from Program A’s access. This ensures that Program B reads the complete, unaltered data. (However program B here would be reading old data which is later updated)</p>

<p>Similarly, when Program A is updating the record, the database should be locked for Program B’s access. Once Program A has finished updating this lock is released.</p>

<p><strong>Note:</strong> Multiple programs that only want to read from the same database can do so simultaneously without locking each other out. This is because reading data doesn’t change anything, so one program’s reading doesn’t affect another’s.</p>

<p>End. <br />
🦖</p>]]></content><author><name>insane</name></author><category term="os" /><category term="os" /><category term="processes" /><category term="synchronization" /><category term="post-06" /><summary type="html"><![CDATA[]]></summary></entry><entry><title type="html">Memory effect in batteries</title><link href="/posts/memory-effect-in-batteries/" rel="alternate" type="text/html" title="Memory effect in batteries" /><published>2025-07-06T00:00:00+00:00</published><updated>2025-07-06T00:00:00+00:00</updated><id>/posts/memory-effect-in-batteries</id><content type="html" xml:base="/posts/memory-effect-in-batteries/"><![CDATA[<p><img src="/assets/images/memory-effect-in-batteries/thumbnail.webp" alt="Thumbnail for the post" /></p>

<p><strong>Memory effect</strong> is also known as <strong>battery effect</strong>, <strong>lazy battery effect</strong>, or <strong>battery memory</strong>. It an issue observed mostly in nickel-cadmium batteries (Ni-Cd) and to some extent Nickel-Metal Hydride (NiMH) batteries.</p>

<p>It is condition where a battery forgets its maximum capacity and instead remembers a smaller one. Thus it shows full even though its not.</p>

<p><br /></p>

<h4 id="why-it-happens">Why it happens?</h4>
<p>This usually happens if we <strong>charge the batteries very frequently</strong>, like plugging it every time it drops to 50 or 40 percent. This is also called <strong>partial charging</strong>.</p>

<p>In reality it is not so simple to understand as to what really happens, but we can get an idea of what it is with a simple analogy. You can always dive deeper on your own if you got the curiosity ;] !</p>

<p><br /></p>

<h4 id="simple-analogy">Simple analogy</h4>
<p>Let us understand it with a <strong>liters analogy</strong>.</p>

<p>Suppose a battery has a capacity of <strong>1 lite</strong>r. When you fill all <strong>1 liter</strong> it gets fully charged and shows <strong>100%</strong>. But over time due to partial charging the battery forgets this capacity and thinks <strong>500ml</strong> is its full capacity. So next time when you fill it up to <strong>500ml</strong> only, the battery will think it has reached its full capacity. It won’t accept any more water (charge). It will thus show <strong>100%</strong> even though it actually isn’t.</p>

<p><img src="/assets/images/memory-effect-in-batteries/diagram.webp" alt="Diagram illustrating my simple analogy" /></p>

<p><strong>Please note</strong> this is a very simplified analogy just to get the gist of the concept.</p>

<p><br /></p>

<h4 id="the-most-common-fix">The most common fix</h4>
<p>It is often fixable by completely draining the battery to 0% and recharging it back to 100%. It is known as re calibrating the battery.</p>

<p><br /></p>

<h4 id="what-about-modern-batteries">What about modern batteries?</h4>
<p>Today, most devices use <strong>Lithium-ion (Li-Ion)</strong> or <strong>Lithium Polymer (Li-Po)</strong> batteries. These <strong>don’t suffer from memory effect</strong>, and <strong>partial charging is fine</strong> for them.</p>

<p>However, since they’re still made of chemical compounds, <strong>they will naturally wear down over time</strong>, and their <strong>maximum capacity will reduce</strong>. This isn’t the memory effect — it’s just normal aging.</p>

<p><br /></p>

<p>🦖</p>]]></content><author><name>insane</name></author><category term="comptia" /><category term="batteries" /><category term="comptia" /><category term="batteries" /><category term="memory-effect" /><category term="lazy-effect" /><category term="battery-effect" /><category term="post-05" /><summary type="html"><![CDATA[]]></summary></entry><entry><title type="html">Detect datatype of variables in C</title><link href="/posts/detect-datatype-of-variables-using-generics/" rel="alternate" type="text/html" title="Detect datatype of variables in C" /><published>2025-06-22T00:00:00+00:00</published><updated>2025-06-22T00:00:00+00:00</updated><id>/posts/detect-datatype-of-variables-in-c-using-generics</id><content type="html" xml:base="/posts/detect-datatype-of-variables-using-generics/"><![CDATA[<p><img src="/assets/images/detect-datatype-of-variables-in-c-using-generics/thumbnail.webp" alt="Thumbnail for the post" /></p>

<p>A simple Marco which uses <strong>generics</strong> in C to help you detect data type of any variable like you do with type() function in python :] .</p>

<p>The code snippet contains examples on how to use it.<br />
This can obviously be extended to include more types.</p>

<div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="cp">#include</span> <span class="cpf">&lt;stdio.h&gt;</span><span class="cp">
#include</span> <span class="cpf">&lt;stdlib.h&gt;</span><span class="cp">
</span>
<span class="cp">#define TYPE_CHECK(var) _Generic((var),     \
    int             : "int",                \
    float           : "float",              \
    double          : "double",             \
    char            : "char",               \
    char*           : "string",             \
    int*            : "int pointer",        \
    float*          : "float pointer",      \
    double*         : "double pointer",     \
    char**          : "string pointer",     \
    void*           : "void pointer",       \
    short           : "short",              \
    long            : "long",               \
    unsigned int    : "unsigned int",       \
    unsigned long   : "unsigned long",      \
    unsigned short  : "unsigned short",     \
    default         : "unknown type"        \
)
</span>
<span class="kt">int</span> <span class="nf">main</span><span class="p">(</span><span class="kt">void</span><span class="p">)</span> <span class="p">{</span>
    <span class="c1">// Basic types</span>
    <span class="kt">int</span> <span class="n">a</span> <span class="o">=</span> <span class="mi">10</span><span class="p">;</span>
    <span class="kt">float</span> <span class="n">b</span> <span class="o">=</span> <span class="mi">5</span><span class="p">.</span><span class="mi">5</span><span class="n">f</span><span class="p">;</span>
    <span class="kt">double</span> <span class="n">c</span> <span class="o">=</span> <span class="mi">3</span><span class="p">.</span><span class="mi">14159</span><span class="p">;</span>
    <span class="kt">char</span> <span class="n">d</span> <span class="o">=</span> <span class="sc">'A'</span><span class="p">;</span>
    <span class="kt">char</span><span class="o">*</span> <span class="n">str</span> <span class="o">=</span> <span class="s">"Hello, World!"</span><span class="p">;</span>
    
    <span class="c1">// Pointer types</span>
    <span class="kt">int</span><span class="o">*</span> <span class="n">p_a</span> <span class="o">=</span> <span class="o">&amp;</span><span class="n">a</span><span class="p">;</span>
    <span class="kt">float</span><span class="o">*</span> <span class="n">p_b</span> <span class="o">=</span> <span class="o">&amp;</span><span class="n">b</span><span class="p">;</span>
    <span class="kt">double</span><span class="o">*</span> <span class="n">p_c</span> <span class="o">=</span> <span class="o">&amp;</span><span class="n">c</span><span class="p">;</span>
    <span class="kt">char</span><span class="o">**</span> <span class="n">p_str</span> <span class="o">=</span> <span class="o">&amp;</span><span class="n">str</span><span class="p">;</span>
    <span class="kt">void</span><span class="o">*</span> <span class="n">p_void</span><span class="p">;</span>

    <span class="c1">// Print types using TYPE_CHECK</span>
    <span class="n">printf</span><span class="p">(</span><span class="s">"Type of a: %s</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span>       <span class="n">TYPE_CHECK</span><span class="p">(</span><span class="n">a</span><span class="p">));</span>         <span class="c1">// Outputs "int"</span>
    <span class="n">printf</span><span class="p">(</span><span class="s">"Type of b: %s</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span>       <span class="n">TYPE_CHECK</span><span class="p">(</span><span class="n">b</span><span class="p">));</span>         <span class="c1">// Outputs "float"</span>
    <span class="n">printf</span><span class="p">(</span><span class="s">"Type of c: %s</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span>       <span class="n">TYPE_CHECK</span><span class="p">(</span><span class="n">c</span><span class="p">));</span>         <span class="c1">// Outputs "double"</span>
    <span class="n">printf</span><span class="p">(</span><span class="s">"Type of d: %s</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span>       <span class="n">TYPE_CHECK</span><span class="p">(</span><span class="n">d</span><span class="p">));</span>         <span class="c1">// Outputs "char"</span>
    <span class="n">printf</span><span class="p">(</span><span class="s">"Type of str: %s</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span>     <span class="n">TYPE_CHECK</span><span class="p">(</span><span class="n">str</span><span class="p">));</span>       <span class="c1">// Outputs "string"</span>
    <span class="n">printf</span><span class="p">(</span><span class="s">"Type of p_a: %s</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span>     <span class="n">TYPE_CHECK</span><span class="p">(</span><span class="n">p_a</span><span class="p">));</span>       <span class="c1">// Outputs "int pointer"</span>
    <span class="n">printf</span><span class="p">(</span><span class="s">"Type of p_b: %s</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span>     <span class="n">TYPE_CHECK</span><span class="p">(</span><span class="n">p_b</span><span class="p">));</span>       <span class="c1">// Outputs "float pointer"</span>
    <span class="n">printf</span><span class="p">(</span><span class="s">"Type of p_c: %s</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span>     <span class="n">TYPE_CHECK</span><span class="p">(</span><span class="n">p_c</span><span class="p">));</span>       <span class="c1">// Outputs "double pointer"</span>
    <span class="n">printf</span><span class="p">(</span><span class="s">"Type of p_str: %s</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span>   <span class="n">TYPE_CHECK</span><span class="p">(</span><span class="n">p_str</span><span class="p">));</span>     <span class="c1">// Outputs "string pointer"</span>
    <span class="n">printf</span><span class="p">(</span><span class="s">"Type of p_void: %s</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span>  <span class="n">TYPE_CHECK</span><span class="p">(</span><span class="n">p_void</span><span class="p">));</span>    <span class="c1">// Outputs "void pointer"</span>

    <span class="c1">// Example of using malloc</span>
    <span class="kt">void</span><span class="o">*</span> <span class="n">ptr</span> <span class="o">=</span> <span class="n">malloc</span><span class="p">(</span><span class="k">sizeof</span><span class="p">(</span><span class="kt">int</span><span class="p">));</span>
    <span class="n">printf</span><span class="p">(</span><span class="s">"Type of ptr: %s</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span>     <span class="n">TYPE_CHECK</span><span class="p">(</span><span class="n">ptr</span><span class="p">));</span>       <span class="c1">// Outputs "void pointer"</span>

    <span class="c1">// Good practice :)</span>
    <span class="n">free</span><span class="p">(</span><span class="n">ptr</span><span class="p">);</span>
    
    <span class="k">return</span> <span class="mi">0</span><span class="p">;</span>
<span class="p">}</span>
</code></pre></div></div>

<p>🦖</p>]]></content><author><name>insane</name></author><category term="C" /><category term="c" /><category term="programming" /><category term="typeof" /><category term="generics" /><category term="post-04" /><summary type="html"><![CDATA[]]></summary></entry></feed>