C Programming මුල සිට ඉගෙනගනිමු (part 11 - for loop)



  • සුබ දවසක් වේවා ඔයාලට. කලින් ලිපියේ මන් do-while loop එක ගැන කතා කලා. අද මන් කතා කිරීමට බලාපොරොත්තු වෙන්නේ for loop එක ගැන. මෙම loop එකෙන් කරන්නේද් අනිත් loop වර්ග දෙකෙන් කරන කාර්යයම වේ. මෙහි ක්‍රියාකාරිත්වය වැඩි වශ්‍යෙන් සමාන වන්නේ while loop එකේ ක්‍රියාකාරිත්වයටයි. සාමාන්‍යයෙන් loop වලින් වැඩි වශයෙන් අප භාවිතා කරන loop එක වන්නේද for loop එකයි. පලමුව මන් මෙහි ආකෘතිය ගෙනහැර දක්වන්නම්.

    for (initialization; condition test; increment or decrement)
    {
        //Statements to be executed repeatedly
    }
    

    මන් ඉහත ආකෘතිය උදාහරණයක් මගින් පැහැදිලි කරන්නම්. අපි මේ ආකෘතිය යොදා ගනිමින් 1 සිට 10 ට දක්වා ඇති සංඛ්‍යා diplay කරමු.

    #include <stdio.h>
    
    int main()
    {
       int i;
       
       for (i = 1 ; i <= 10 ; i++)
       {
           printf("%d ", i);
       }
       
       return 0;
    }
    
    Output -: 1 2 3 4 5 6 7 8 9 10
    

    ඉහත උදාහරණයෙන් ඔබට පෙනෙනවා ඇති while loop එකේදී අපි තැන තැන භාවිතා කල සියලු loop එකට අදාල කොටස් for loop එකේදී එක තැනකට ඇවිත් ඇති බව. මෙය මූලික ආකෘතිය වුවත් මෙය භාවිතා කල හැකි අනු ආකෘති කිහිපයක් පවතිනවා. එනම්

    1. i++ වෙනුවට i = i + 1 භාවිතා කල හැකිය.
    for (i = 1 ; i <= 10 ; i = i + 1)
    {
        printf("%d ", i);
    }
    
    1. for loop එකේ i වල අගය විශේෂණය කර ඇති කොටස එනම් i = 1 කියන කොටස for loop එක එලියෙන් මෙසේ ලිවිය හැකිය. නමුත් ; ලකුණ තිබෙන පරිදි තිබීමට දිය යුතුය.
    int i = 1;
    
    for ( ; i <= 10 ; i++)
    {
        printf("%d ", i);
    }
    
    1. i++ හෙවත් i වල අගය ඉදිරියට ගෙනියන code එක අපට for loop එක ඇතුලත් ඕනෑම තැනක යෙදීමට පුලුවන් වේ. මෙහිද ; ලකුණ තිබෙන පරිදි තිබීමට දිය යුතුය.
    for (i = 1 ; i <= 10 ; )
    {
        printf("%d ", i);
    	i++;
    }
    
    1. i = 1 කොටස හා i++ යන කොටස් දෙකම for එක තුලින් ඉවත් කොට while loop ආකෘතිය මෙන් ලිවීමට හැකියාව ඇත.
    int i = 1;
    
    for ( ; i <= 10 ; )
    {
        printf("%d ", i);
    	i++;
    }
    
    1. i++ විතරක් නොව i වල අගය අඩු කල හැකි i-- ද අපට for loop එකක භාවිතා කල හැකිය.
    for (i = 10 ; i >= 1 ; i--)
    {
        printf("%d ", i);
    }
    
    Output -: 10 9 8 7 6 5 4 3 2 1
    

    මේකෙදිත් මන් ඔයාලට ප්‍රශ්න දීමට බලාපොරොත්තු වෙන්නේ නෑ. මොකද while loop ලිපියේ දීපු ප්‍රශ්න මේකෙදිත් ඔයාලට කරන්න පුලුවන් නිසා. ඒ උණත් මන් for loop එකට ආවේණික ප්‍රශ්න කිහිපයක් කරන්නම්.

    Question -: Write a C program to print below format using for loops.

    *******
    *******
    *******
    *******
    

    for loop කිහිපයක් යොදා ගනිමින් ඉහත හැඩතලය නිරූපණය කරන program එකක් code කරන්න කියලා අපට කියනවා. අපි මෙය පියවර වශයෙන් පැහැදිලි කරගම්මු.

    • අපි පලමුව මෙම මුළු හැඩතලයෙන් කොටසක් එනම් පලමු පේලිය(*******) පමණක් for loop එකක් මගින් output කරමු .
    #include <stdio.h>
    
    int main()
    {
        int i;
        
        for(i = 1 ; i <= 7 ; i++)
        {
            printf("*");
        }
        return 0;
    }
    
    Output -: *******
    
    • ඔබට පෙනෙනවා ඇති එක for loop එකක් මගින් එක් පේලියක් කැමති තරු ගණනකින් පිරවිය හැකි බව. නමුත් අපට අවශ්‍ය වන්නේ ඒ වගේ පේලි 4ක් වේ. තරු 7ක් Output කරන්න එක් for loop
      එකක් අවශ්‍ය නම් ඒ වගේ තරු 7 පේලි 4 ගැනීමට අවශ්‍යනම් තව for loop එකක් අව්ශ්‍ය බව ඔබට පෙනෙනවා ඇති. අපි එය මේ විදිහට කරමු.
         තීරු තීරු
    පේලි  *    *    
    පේලි  *    *
    පේලි  *    *
    

    තීරු ගණන වන තීරු 7 ඉහත for loop එක මගින් අප අරගෙන ඉවර නිසා පේලි 4 ගන්න විදිහ දැන් බලමු.

    • තීරු -: columns
    • පේලි -: raws
    #include <stdio.h>
    
    int main()
    {
        int raw; //පේලි ගණන නිරූපණය කරන variable එක
        int col; //තීරු ගණන නිරූපණය කරන variable එක
        
        for(raw = 1 ; raw <= 4 ; raw++) //පේලි 4ක් print කිරීමට යොදා ගනී.
        {
            for(col = 1 ; col <= 7 ; col++) // තීරු 7ක් එනම් තරු 7 print කිරීමට යොදා ගනී
            {
                printf("*");
            }
            printf("\n"); //තීරු 7ක් එනම් තරු 7ක් print වීමෙන් අනතුරුව ඉතුරු තරු 7 ඒවා පහලින් පහලට print කිරීමට මෙය යොදා ගනී.
        }
        return 0;
    }
    
    Output -:*******
             *******
             *******
             *******
    

    ඔයාලට තරු රටා පිලිබද වැඩි දුරටත් ඉගෙන ගන්න ඕනනම් මන් ලින්ක් කිහිපයක් දාන්නම් නැත්තම් Google search bar එකට ගිහින් star patterns in C කියලා search කරන්න.
    Link1 -: https://codeforwin.org/2015/07/star-patterns-program-in-c.html
    Link2 -: https://www.programiz.com/c-programming/examples/pyramid-pattern
    Link3 -: https://www.programmingsimplified.com/c-program-print-stars-pyramid

    මන් ඔයාලට සරල වගේම ටිකක් සංකීර්ණ ගැටලු කිහිපයක් දෙන්නම්, නිකන් ඉන්න වෙලාවට කරලා බලන්න.

    Question 1 -: Write for statements that print the following sequence of values:

    a) 3, 8, 13, 18, 23
    b) 20, 14, 8, 2, -4, -10
    c) 19, 27, 35, 43, 51
    

    answer for a -: https://drive.google.com/open?id=1hT_MzDFb7UBIscO1UpGnFXtPbykzjHH2
    answer for b -: https://drive.google.com/open?id=1PAuJdwDuWA1_VflDKTaNLW_hLax-Poeg
    answer for c -: https://drive.google.com/open?id=1HpibNCAQ7lV-Ed-OAt8pm_ktvGjWLIxl


    Question 2 -: Write a C program using for loops to display the following pattern on the screen

    *
    **
    ***
    ****
    *****
    ******
    *******
    *******
    *****
    ***
    *
    

    answer -: https://drive.google.com/open?id=147j8QuV7y-tSYNKTsRGkSoIq1ADAvWgU


    Question 3 -: Calculate the value of pie(3.14) from the infinite series

    = 4 − 4/3 + 4/5 - 4/7 + 4/9 - 4/11 + ....
    

    Print a table that shows the value of pie approximated by one term of this series, by two terms, by
    three terms, and so on. How many terms of this series do you have to use to get 3.14159?

    answer -: https://drive.google.com/open?id=1AC1XYfbCRTj3PU5NPZjkiDC1MUj5mNmZ


    Question 4 -: The factorial of a nonnegative integer n is written n! and is defined as follows:

    n! = n * (n-1) * (n-2) * ……1
    

    and

    n! = 1 (for n =0)
    

    For example, 5! = 5 * 4 * 3 * 2 * 1, which is 120
    Write a C program that reads a nonnegative integer and computes and print its factorial using a
    for loop.

    answer -: https://drive.google.com/open?id=1Pjo-p8CKhgnJ5WxuM6naT2El-mJ3pjpX


    ඔබට අවශ්‍යනම් ඔබේ බ්‍රව්සර් එක හරහා online C programms run කරන්න පුලුවන්. එහෙම කරන්න පුලුවන් ලින්ක්ස් මන් පහතින් දාන්නම්

    සරලව මුල ඉදන් C programming ඉගෙන ගන්න පුලුවන් හොදම site කිහිපයක් මන් දාන්නම්

    web url කෙටි කරන්න lankadevelopers ලා හදපු එයාලගෙම සයිට් එකක් තියෙනවා. -> https://link.lankadevelopers.com/

    මගේ කලින් ලිපි

    මන් ඊළග ලිපියෙන් කියලා දෙන්නම් arrays ගැන . මගේ ලිපි වල අඩුපාඩු තියෙනවනම් දන්නේ නැති දේවල් තියෙනවනම් පහලින් කමෙන්ට් එකක් දාන්න.
    තව ලිපියකින් හම්බෙමු ජය වේවා.


  • Linux Help

    Niyamai bro



  • niyamai bro



  • Thank you so much. Great post! Here are some new pattern programs in C
    https://techstudy.org/cLanguage/starPattern


Log in to reply