Coding Challenge: Print This Pattern

EKGuest

Well-known member
  • Nov 16, 2022
    3,206
    5,703
    113
    මම ඩිවලොපර් කෙනෙක් නෙමෙයි ඒත් විනෝදාංශයක් විදියට Programming කරනවා. (මම IT Degree එකක් තමයි කලේ ඒත් අතරමග නැවතුනා. ඒ අවුරුදු 15 කට කලින්). මේ ෆෝරම් එකේ Professional Developers වගේම IT Students ලත් ඇති. ෆ්‍රී වෙලාවක් තියෙනවනම් මේ පොඩි Coding Puzzle එක හදන්න බලන්න.

    කරන්න තියෙන්නෙ දෙන ලද Size එකකට පහලින් තියෙන පැටර්න් එක ස්ක්‍රීන් එකේ ප්‍රින්ට් කරන එක. (Size එක අවම අගය 4 යි උපරිම අගය 10 යී). උදාහරණ විදියට,

    Size එක 6 නම්:

    6.png



    Size එක 10 නම්:

    10.png



    Size එක 4 නම්:

    4.png



    IT තාමත් ඉගෙනගන්න අයට මේක එකපාරටම කරන්න අමරුයි වගේනම් මුලින්ම පැටර්න් එකේ මුල් කොටස හදාගෙන String Array එකකට දාගන්න පහලින් තියෙනවා වගේ. Size එක 5 යි නම් එක ලයින් එකක් හැදිලා තියෙන්නේ තරු 5 කින්, සහ සම්පූර්ණ රූපය හැදිලා තියෙන්නේ ඔය කොටස 5 පාරක් රීපීට් වෙලා.

    5.png



    තව ඔයාලගේ Coding Puzzles තියෙනවානම් පෝස්ට් කරන්න.
     

    Honey Bunch

    Well-known member
  • Nov 24, 2018
    17,196
    26,655
    113
    Kandy
    ඉස්සර මම ඉගෙනගන්න කාලෙත් සමහරු කැමතියි. සමහරු කැමති නැහැ.
    mata owa tama hena complex ban programming karanna owa danagena inna onida machan
     

    EKGuest

    Well-known member
  • Nov 16, 2022
    3,206
    5,703
    113
    mata owa tama hena complex ban programming karanna owa danagena inna onida machan

    ඒ ගැනනම් හරියට දන්නේ නෑ මචන්. I am not a professional software developer. මම නිකන් ඉන්න වෙලාවට hobby එකක් විදියට කරන්නේ coding puzzles විසඳන එක. මම ක්ලයන්ට් කෙනෙක්ගේ රික්වයමන්ට් වලට සොෆ්ට්වෙයාර් හදලා නැහැ.
     
    • Like
    Reactions: Honey Bunch

    Honda.putha

    Well-known member
  • Dec 26, 2017
    17,242
    29,822
    113
    මම ඩිවලොපර් කෙනෙක් නෙමෙයි ඒත් විනෝදාංශයක් විදියට Programming කරනවා. (මම IT Degree එකක් තමයි කලේ ඒත් අතරමග නැවතුනා. ඒ අවුරුදු 15 කට කලින්). මේ ෆෝරම් එකේ Professional Developers වගේම IT Students ලත් ඇති. ෆ්‍රී වෙලාවක් තියෙනවනම් මේ පොඩි Coding Puzzle එක හදන්න බලන්න.

    කරන්න තියෙන්නෙ දෙන ලද Size එකකට පහලින් තියෙන පැටර්න් එක ස්ක්‍රීන් එකේ ප්‍රින්ට් කරන එක. (Size එක අවම අගය 4 යි උපරිම අගය 10 යී). උදාහරණ විදියට,

    Size එක 6 නම්:

    View attachment 190326


    Size එක 10 නම්:

    View attachment 190327


    Size එක 4 නම්:

    View attachment 190328


    IT තාමත් ඉගෙනගන්න අයට මේක එකපාරටම කරන්න අමරුයි වගේනම් මුලින්ම පැටර්න් එකේ මුල් කොටස හදාගෙන String Array එකකට දාගන්න පහලින් තියෙනවා වගේ. Size එක 5 යි නම් එක ලයින් එකක් හැදිලා තියෙන්නේ තරු 5 කින්, සහ සම්පූර්ණ රූපය හැදිලා තියෙන්නේ ඔය කොටස 5 පාරක් රීපීට් වෙලා.

    View attachment 190329


    තව ඔයාලගේ Coding Puzzles තියෙනවානම් පෝස්ට් කරන්න.
    good one. will solve
     

    EKGuest

    Well-known member
  • Nov 16, 2022
    3,206
    5,703
    113
    For IT Students: මම කලින් කිව්වා වගේ පැටර්න් එකේ මුල් කොටස හදාගෙන string array එකකට දාගත්තම ඉතුරු ටික හදන්න ලේසියි. Code එකේ මුල් කොටස මම පහලින් දැම්මා. C# වලින් තියෙන්නේ.

    C#:
            // සම්පූර්ණ පැටර්න් එක ෆන්ක්ෂන් එකක් ඇතුලේ හදන්න පුලුවන්. සයිස් එක argument එකක්
            // විදියට පාස් කරලා call කරන විදියට:
            static void PrintPattern(int size)
            {
                // / size එකට ගැලපෙන string array එකක් හදාගන්න
                string[] lines = new string[size];
    
                // පැටර්න් එකේ size එකට සමාන පේලි සංඛ්‍යාවක් තියෙන නිසා for loop
                // එකෙන් එක් එක් පේලියේ මුල් කොටස හදාගන්න
                for (int i = 0; i < size; i++)
                {
                    lines[i] = ""; // පේලිය හදන්න පටන් ගන්නකොට පේලියට අදාල string එකේ මුල් අගය "" (empty string)
                    for (int j = 0; j < size; j++)
                    {
                        // තරුවක් ප්‍රින්ට් වෙන්නේ එක්කො වර්ථමාන අකුරේ ස්තානීය අගය (index) size - 1 විය යුතුයි
                        // නැතිනම් size - 1 වලින් වර්තමාන පේලියේ ස්තානීය අගය (index) අඩුකොට ලැබෙන සංක්‍යාව විය යුතුයි.
                        if (j == size - 1 || j == size - 1 - i)
                            lines[i] += '*';
                        else
                            lines[i] += ' ';
                    }
                }
    
                // හරි දැන් මෙතනට එනකොට පැටර්න් එකේ මුල් කොටස හදාගෙන ඉවරයි.
                // දැන් තියෙන්නේ එක් එක් පේලිය සඳහා අපි හදාගත්ත පැටර්න් එකේ මුල් කොටස පාවිච්චි කරලා size වාරයක්
                // රිපීට් කරලා ප්‍රින්ට් කරගෙන යන්න විතරයි.
    
            }

    For professionals: Please post your solution as I like to see different methods of implementation.
    ------ Post added on Nov 25, 2022 at 4:47 PM
     

    EKGuest

    Well-known member
  • Nov 16, 2022
    3,206
    5,703
    113
    In Kotlin

    (iframe එලකිරි එකේ දාන්න දන්නේ නෑ . help)

    Java:
    fun main() {
      
      
        var size:Int = 6
        var vertical:Int =3
        var horizontal:Int=1
      
            for(a in 1..horizontal){
          
            for(b in 1..size){
                println("")
              
                for (e in 1..vertical){
                      for(c in 1..size-b){
                   print(" ")
                }
              
                for(d in 1..b){
                    if(d==1 || d==b){
                        print("*")
                    } else {
                        print(" ") 
                      
                    }
                }
              }
            }
        }
    }

    Thanks for the reply.

    මේකේ මචන් සයිස් එක 6 වෙනකොට ඔය ත්‍රිකොණාකාර කොටස 6 පාරක් රීපීට් වෙන්න ඕනේ. තව එක ත්‍රිකෝණයක් ඉවර වෙන තරුවෙන් අනිත් ත්‍රිකෝණය පටන් ගන්න ඕනෑ.

    desc.png
     
    Last edited:
    • Like
    Reactions: Schrodinger Cat

    EKGuest

    Well-known member
  • Nov 16, 2022
    3,206
    5,703
    113
    මේක හිතන්න ඕනෙ ඔය විදියට නෙවෙයි බන්. screen එක draw වෙන විදිය බලලා. line by line

    Screenshot එක දැම්මේ රූපය හැදෙන්න ඕනෑ විදිය පෙන්නන්න. රූපය හදලා ස්ක්‍රීන් එකේ ප්‍රින්ට් කරන්න ඕනෑ උඩ ඉඳන් පහලට line by line තමයි.
     

    EKGuest

    Well-known member
  • Nov 16, 2022
    3,206
    5,703
    113
    PHP:
    <?php
    $size=5;
    
    
      for($l=0; $l<$size; $l++) {
       
        for($k=0; $k<$size; $k++) {
       
          for($x=$l; $x<$size; $x++) {
            echo " ";
          }
         
          for($x=0; $x<$l; $x++) {
            if($x==0 || $l==5){
              echo "*";
            }else {
              echo " ";
            }
          }
          echo "*";
      }
    
          echo "\n";
      }
     
    ?>

    s1.png


    මේකෙත් මචන් එක ත්‍රිකෝණයක් පටන් ගන්න ඕනෑ කලින් ත්‍රිකෝණය ඉවරවෙන තරුවෙන්. මම කලින් screenshot එකේ මාක් කරලා තියෙනවා වගේ. And thanks for posting your solution.
     

    Amith0424

    Well-known member
  • Oct 27, 2010
    14,023
    23,976
    113
    ℒ𝓸𝓬𝓪𝓽𝓲𝓸𝓷
    View attachment 190372

    මේකෙත් මචන් එක ත්‍රිකෝණයක් පටන් ගන්න ඕනෑ කලින් ත්‍රිකෝණය ඉවරවෙන තරුවෙන්. මම කලින් screenshot එකේ මාක් කරලා තියෙනවා වගේ. And thanks for posting your solution.
    ඒක හැදුව. (y)
     
    • Like
    Reactions: kinkon

    hasithayad

    Well-known member
  • Sep 28, 2011
    30,793
    1
    44,996
    113
    සරලම විදිය

    coding.jpg


    C#:
    Console.Write("Size: ");
    int size = Convert.ToInt32(Console.ReadLine());
    for (int i = size; i >= 1; i += -1)
    {
          string line = "*".PadLeft(i, (char)32).PadRight(size - 1, (char)32).PadRight(size, char.Parse("*"));
          Console.WriteLine(line + string.Concat(Enumerable.Repeat(line.Remove(0, 1), size - 1)));
    }
    Console.ReadKey();
     
    Last edited: