C Programming මුල සිට ඉගෙනගනිමු (part 6 - Decision making(if-else statement - part 1))



  • Decision making පිලිබද සරල හැදින්වීමක් කලොත් එයින් අදහස් වන්නේ යම් කිසි තීරණයක් ගැනීමයි. එනම් යම් කිසි නිර්ණායකයක් මත ගැලපෙන හොදම තීරණය ගැනීමයි. මෙය සංකීර්ණ වගේ පෙනුනට හරිම
    සරලයි. මන් පොඩි උදාහරණයක් අරගෙන මේ දේ පැහැදිලි කරන්නම්.

    උදා -: මන් වර්ණ කිහිපයකින් සමන්විත බෝල මල්ලක් ඔයාට දෙනවා දීලා කියනවා රතු පාට බෝලයි නිල් පාට බෝලයි ඉතුරු වෙන අනිත් පට බෝලයි වෙන වෙනම පෙට්ටි තුනකට දාන්න කියලා. ඔයා ඊට පස්සේ මේ බෝල
    විශ්ලේශණය කරලා පාට අනූව ගොඩවල් තුනට වෙන් කරනවා.

    • පලමුව ලබා ගන්නා බෝලය නිල් පාටනම් එය පලමු පෙට්ටියට දානවා.
    • එසේ නොවේනම් පලමුව ලබා ගන්නා බෝලය රතු වේ නම් එය දෙවන පෙට්ටියට දානවා.
    • ඉහත කී පාටවල් දෙකම නොවී වෙන පාටක් ලැබුනේ නම් එය තුන්වන පෙට්ටියට දානවා.

    ඉහත මන් සදහන් කලේ ඔබට ගත හැකි තීරණ(Decision) ගණනයි.

    C Programming වල Decision making(තීරණ ගතහැකි) නිර්ණායක 4ක් තිබේ.
    1. if statement.
    2. switch statement.
    3. ? : operator.
    4. goto statement.

    C Programming වල අප වැඩි වශයෙන් භාවිතා කරන්නේ පලමු කාරණා දෙක පමණි.

    if statement

    • if යන්නේ සරල අදහස වන්නේ එනම් යන්නයි. මෙය C Program වල පවතින ආකෘතිය වන්නේ
    if(expression) //expression යනු අපගේ නිර්ණායකයයි
    {
    	statement; //statement යනු අපගේ නිර්ණායකය සත්‍ය වුවහොත් run වෙන අපගේ code එකයි.
    }
    

    අපි දැන් if පාවිච්චි කරලා සරල c code එකක් ලියමු. මෙහිදී අප කරන්නේ ඉලක්කම් දෙකක් ගෙන පලමු ඉලක්කම දෙවන ඉලක්කමට වඩා වැඩිනම් message එකක් පරිගණක තිරයේ display කරන එකයි.
    මගේ කලින් ලියපු C Programming මුල සිට ඉගෙනගනිමු (part 3 - Operators) -: https://bit.ly/2ruMH22 කියවලා තිබ්බනම් දැන් කියන් දේ ගොඩක් පැහැදිලි වෙයි.

    #include <stdio.h>
    
    int main()
    {
        int num1 = 10; 
        int num2 = 5;
        
        if(num1 > num2) //10 සෑම විටම 5 ට වඩා විශාල වන නිසා මෙම නිර්ණායකය සත්‍ය වේ. එම නිසා if එක ඇතුලේ ඇති printf එක run වේ.
        {
            printf("Number1 is greater than Number2");
        }
    
        return 0;
    }
    
    output -: Number1 is greater than Number2
    

    else
    නමුත් මොකද වෙන්නේ Number1 වලට වඩා Number2 විශාල උනොත්. ඔබට පේනව ඇති හැම විටම අපිට if වලින් විතරක් සෑහීමකට පත්වීමට බැරි බව. එබැවින් අපි if සමග else භාවිතා
    කල යුතු වේ.

    else යන්නේ සරල අදහස වන්නේ එසේ නොවේනම් යන්නයි. else statement කිසිවිටකත් තනිව යෙදිය නොහැකිය. එය සෑම විටම if එකක් සමග යෙදිය යුතු වේ. එමෙන්ම if වල
    ආකාරයට වරහන් තුල නිර්ණායක ලිවීම සිදු නොකරයි.

    if(expression) 
    {
    	statement;
    }
    else //මෙහි නිර්ණායක ලිවීමක් සිදු නොකරයි.
    {
    	statement; //if තුල ඇතු නිර්ණායකය(expression එක) වැරදි නම්  මෙය run වේ.
    }
    

    අපි මෙය scanf යොදා ගනිමින් පරික්ෂා කරමු.

    #include <stdio.h>
    
    int main()
    {
        int num1;
        int num2;
        
        printf("Enter number1 = ");
        scanf("%d", &num1); //number1 හි අගය ඇතුලත් කිරීම.
        
        printf("Enter number2 = ");
        scanf("%d", &num2); //number2 හි අගය ඇතුලත් කිරීම.
        
        if(num1 > num2) //number1 හි අගය number2 හි අගයට වඩා විශාලනම් මෙය run වේ.
        {
            printf("Number1 is greater than Number2");
        }
        else //number2 හි අගය number1 හි අගයට වඩා විශාලනම් මෙය run වේ.
        {
            printf("Number2 is greater than Number1");
        }
    
        return 0;
    }
    
    First run -: Enter number1 = 10                                                                                                  
                 Enter number2 = 5                                                                                                   
                 Number1 is greater than Number2
    
    Second run-: Enter number1 = 5                                                                                                   
                 Enter number2 = 10                                                                                                  
                 Number2 is greater than Number1   
    

    අපි දැන් if-else භාවිතා කරමින් සරල c application එකක් හදමු.

    Question 1 -: When you enter a number from keyboard that number should be categorized into positive and negative.
    Write a C program to fulfill this.

    මෙයින් කියවෙන්නේ ඔබ යම්කිසි සංඛ්‍යාවක් input කල විට එම සංඛ්‍යාව ධන සංඛ්‍යාවක්ද සෘණ සංඛ්‍යාවක්ද යන්න නිර්ණය කරන්න යන්නයි.

    • ධන සංඛ්‍යා(possitive numbers) -: 0 ට වඩා වැඩි සංඛ්‍යා
    • සෘණ සංඛ්‍යා(negative numbers) -: 0 ට වඩා අඩු සංඛ්‍යා
    #include <stdio.h>
    
    int main()
    {
        int number;
        
        printf("Enter a number = ");
        scanf("%d", &number); //යම්කිසි සංඛ්‍යාවක් ඇතුලත් කිරීම
        
        if(number > 0)  //ඇතුලත් කල සංඛ්‍යාව 0ට වඩා විශාලනම්
        {
            printf("Positive number");
        }
        else // ඇතුලත් කල සංඛ්‍යාව 0ට වඩා කුඩානම්
        {
            printf("Negative number");
        }
    
        return 0;
    }
    
    First run -: Enter a number = 3                                                                                                  
                 Positive number  
    
    Second run-: Enter a number = 3                                                                                                  
                 Positive number     
    

    Question 2 -: Improve above code to check whether entered number is odd or even.

    මෙහි සඳහන් වන්නේ අපි ඇතුලත් කරන සංඛ්‍යාව ඔත්තේ(odd) ද ඉරට්ටේද(even) යන්න නිර්ණය කරන ලෙසයි. ප්‍රශ්නය සදහන් කර ඇති පරිදි කලින් අපි run කල code එක වැඩි දියුනු කරන්න කියලා තමා
    ප්‍රශ්නයේ සඳහන් කරන්නේ. මෙය කරන විදිහ පියවර ආකාරයෙන් මන් පැහැදිලි කරන්නම්.

    • අපි සංඛ්‍යාවක් ධනද සෘණද යන්න වෙන් කර අවසන් දැන් තිබෙන්නේ එය

      1. ධන ඔත්තේද(possitive odd)
      2. ධන ඉරට්ටේද(possitive even)
      3. සෘණ ඔත්තේද(negative odd)
      4. සෘණ ඉරට්ටේද(negative even)
    • කොහොමද අපි සංඛ්‍යාවක් ඔත්තේද ඉරට්ටේද යන්න සොයා බලන්නේ. මන් ඔයාලට කියලා දෙන්නම් සරල ක්‍රමයක්.

      1. යම් කිසි සංඛ්‍යාවක් 2න් ඉතුරු නැතුව බෙදේ නම් එය ඉරට්ටේ සංඛ්‍යාවක් වේ. C program වල ගත්තොත් number % 2 == 0(2න් බෙදූ විට ඉතුරු බිංදුවට සමාන නම්).
      2. යම් කිසි සංඛ්‍යාවක් 2න් බෙදූ විට ඉතුරු 1ක් ලැබේ නම් එය ඔත්තේ සංඛ්‍යාවකි. C program වල ගත්තොත් number % 2 == 1(2න් බෙදූ විට ඉතුරු එකට සමාන නම්).
    • ඔබ දන්නවාද අපිට if-else ඇතුලේ තවත් if-else ලිවිය හැකි බව. ඒ if-else තුලත් තවත් if-else ලිවිය හැකි බව. මෙය අනන්තය දක්වා ලිවිය හැක.
      උදා -:

    if(expression)
    {
    	if(expression)
    	{
    		statement; 
    	}
    	else
    	{
    		statement; 
    	}
    }
    else
    {
    	if(expression)
    	{
    		statement; 
    	}
    	else
    	{
    		statement; 
    	}
    }
    

    මෙම ආකෘතිය යොදා ගනිමින් Question 2 එක විසදමු.

    #include <stdio.h>
    
    int main()
    {
        int number;
        
        printf("Enter a number = ");
        scanf("%d", &number); //යම්කිසි සංඛ්‍යාවක් ඇතුලත් කිරීම
        
        if(number > 0) //සංඛ්‍යාව 0ට වඩා විශාලදැයි බැලීම
        {
            if(number % 2 == 0) //සංඛ්‍යාව 2න් ඉතුරු නැතිව බෙදේදැයි බැලීම. එනම් ඉතුරි 0 ට සමාන වේදැයි බැලීම.
            {
                printf("Positive even number");
            }
            else
            {
                printf("Positive odd number");
            }
           
        }
        else //ඇතුලත් කල සංඛ්‍යාව 0ට වඩා කුඩානම්
        {
             if(number % 2 == 1) //සංඛ්‍යාව 2න් බෙදූවිට ඉතුරු 1ක් ලැබේදැයි බැලීම
            {
                printf("Negative even number");
            }
            else
            {
                printf("Negative odd number");
            }
        }
    
        return 0;
    }
    
    First run -: Enter a number = 4                                                                                                  
                 Positive even number
    
    Second run-: Enter a number = 3                                                                                                  
                 Positive odd number    
    
    Third run -: Enter a number = -4                                                                                                 
                 Negative even number 
    
    Forth run -: Enter a number = -3                                                                                                  
                 Negative odd number
    

    else if
    කලින් ප්‍රශ්න වලදි ඔයාට කිව්වා සංඛ්‍යාවක් input කල විට එය ධනද සෘණද යන්න සොයා බලන විට. නමුත් අපි 0 ඇතුලත් කලොත් එයට කුමක් සිදු වේද. 0 යනු ධනත් නොවේ සෘණත් නොවේ. එමනිස ඔබට පේනවා ඇති
    if-else පමණක් අපට සෑහීමකට පත්විය නොහැකි බව. එම නිසා අපිට else if මෙහිදී භාවිතා කිරීමට සිදු වනවා.

    • else if සරල අදහස වන්නේ එසේත් නැතිනම් යන්නයි.
    • else if භාවිතා කල හැක්කේ if තිබ්බොත් පමණි. if වලට පසුවත් else වලට කලිනුත් else if යොදා භාවිතා කරයි.
    • මෙහි ඇති තවත් විශේශත්වයක් වන්නේ අපිට කැමති ප්‍රමාණයක් else if භාවිතා කල හැකි වීමයි.

    උදා-:

    if(expression) 
    {
    	statement;
    }
    else if(expression)
    {
    	statement;
    }
    else 
    {
    	statement;
    }
    

    Question 3 -: When you enter a number from keyboard that number should be categorized into positive and negative.
    And also if you enter 0(zero) program should display a message. Write a C program to fulfill this.

    මෙහි පවසන ආකාරයට කලින් පරිදි සංඛ්‍යාවක් ධනද සෘණද යන්න නිර්ණය කල යුතු අතර. 0 ඇතුලත් කරොත් එය මෙනම display කල යුතු වේ.

    #include <stdio.h>
    
    int main()
    {
        int number;
        
        printf("Enter a number = ");
        scanf("%d", &number); //යම්කිසි සංඛ්‍යාවක් ඇතුලත් කිරීම
        
        if(number > 0)  //සංඛ්‍යාව 0ට වඩා විශාලදැයි බැලීම
        {
            printf("Positive number");
        }
        else if(number < 0)  //සංඛ්‍යාව 0ට වඩා කුඩාදැයි බැලීම
        {
            printf("Negative number");
        }
        else //සංඛ්‍යාව ධන හෝ සෘණ යන දෙකම නොවේනම්
        {
            printf("Zero");
        }
    
        return 0;
    }
    
    First run -: Enter a number = 4                                                                                                  
                 Positive number
    
    Second run-: Enter a number = -4                                                                                                  
                 Negative number    
    
    Third run -: Enter a number = 0                                                                                                 
                 Zero 
    

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

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

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

    • C Programming මුල සිට ඉගෙනගනිමු(part 1 - Introduction) -: https://bit.ly/2O6rLXR
    • C Programming මුල සිට ඉගෙනගනිමු (part 2 - Variables) -: https://bit.ly/2spD6Kn
    • C Programming මුල සිට ඉගෙනගනිමු (part 3 - Operators) -: https://bit.ly/2ruMH22
    • C Programming මුල සිට ඉගෙනගනිමු (part 4 - Input & Output functions) -: https://bit.ly/2qU8IaK
    • C Programming මුල සිට ඉගෙනගනිමු (part 5 - create simple applications) -: https://bit.ly/2DDfy7b

    මන් ඊළග ලිපියෙන් කියලා දෙන්නම් &&, ||, != භාවිතා කරලා if-else statement ලියන විදිහ . මගේ ලිපි වල අඩුපාඩු තියෙනවනම් දන්නේ නැති දේවල් තියෙනවනම් පහලින් කමෙන්ට් එකක් දාන්න.
    තව ලිපියකින් හම්බෙමු ජය වේවා.


  • Linux Help

    Niyamai bro. @ciaompe meke parts tika ookoma FB page eke danna



  • @root oyalage fb page eke nama mokkda?


  • Linux Help



  • @root ow okkoma page eken publish karannam


Log in to reply