Lanka Developers Community

    Lanka Developers

    • Register
    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Shop

    C Programming මුල සිට ඉගෙනගනිමු (part 16 - C functions)

    Blogs
    c programming
    7
    11
    912
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Kalana
      Kalana last edited by Kalana

      සුබ දවසක් වේවා ඔයාලට. අද මන් කතා කිරීමට බලාපොරොත්තු වන්නේ C programming වල එන ඉතා වැදගත් අංගයක් වන functions ගැනයි. අපි බලමු මොනාද මේ functions කියන්නේ කියලා.

      ඔයාලා හිතන්න මෙහෙම ඔයාලගේ ගෙදර සේරම බල්බ් ටික පත්තු වෙන්නේ එක ස්විච් එකකින් කියලා. බැලූ බැල්මට වැඩේ ලේසියි වගේ පෙනුනට එක ස්විච් එකකින් බල්බ් එකක් පත්තු කරනවා කියන්නේ ප්‍රශ්න රැසකට මුහුණ දෙන වැඩක් එක බල්බ් එක කැඩුනොත් සේරම වයර් චෙක් කරන්න ඕනා. අනෙක් අතට බල්බ් ගොඩක් වැඩ කරන්නෙත් නැතුව යනවා මේ වැඩේ නිසා.

      නමුත් හිතන්න හැම බල්බ් එකකටම එක ස්විච් එක ගානේ තියෙනවා කියලා. මෙහෙම උනොත් බල්බ් එකක් වැඩ කරන්නේ නැතිව ගියොත් අනිත් බල්බ් වලට ප්‍රශ්නයක් නෑ. ඒ වගේම මොන බල්බ් එකද වැඩ කරන්නේ නැත්තේ කියලා අපිට කෙලින්ම කියන්න පුලුවන්.

      අපි මේ දක්වා අපේ program කරන් ආවේ ඔය මන් කිව්ව පලවෙනි ක්‍රමේට. සේරම වැඩ කරන්නේ එක ස්විච් එකකින් එනම් සේරම තියෙන්නේ int main() එක ඇතුලේ. එක පේලියක් වැඩ කලේ නැත්තම් සේරම අවුල් යනවා ඒ හින්දා එම අවුල් ජාලය වලක්වන්න තමා අපි functions ඔයාලට හදුන්වා දෙන්නේ. int main() එකේ run වෙන්න ඕන ගොඩක් codes අපි ලබා දෙන functions ඔස්සේ run අවසන් පිලිතුර int main() එකට ලබා දීම මෙම functions සිදු කරයි.

      සරලව කිව්වොත් functions වලින් කරන්නේ අපිට ලබා දුන්නු වැඩ ප්‍රමාණය කොටස් වලට බෙදාගෙන එම භාරගත් කොටස් ඉවර කොට නැවතත් main() එකට ලබා දෙන එකයි.

      අපි බලමු functions වල අකෘතිය කොයි වගේද කියලා

      #include <stdio.h>
      
      <return_type> <function_name>;
      
      int main()
      {
          printf("Hello World");
          return 0;
      }
      
      <return_type> <function_name> (<argument list>)
      {
          //Set of statements – Block of code
      }
      
      • <return_type> -: return_type කියලා කියන්නේ අපි variables හඳුන්වන්න ගන්න data type වලටයි. එනම්
        int, float, char, short,..., etc -: return එකක් අනිවාර්යයෙන් තිබිය යුතුය.
        void -: return එකක් නොතිබිය යුතුය.

      • <function_name> -: function name සඳහා අපිට කැමති නමක් භාවිතා කල හැකිය හරියට variable name එකක් භාවිතා කරනවා වගේ.

      • <argument list> -: argument list වලදී අපි අපේ variable එකත් එක්ක එයට අදාල data type එකත් දැක්විය යුතුය.
        int, float, char, short,..., etc වලදී argument list අනිවාර්‍යයෙන් තිබිය යුතු අතර
        void වලදී argument list අනිවාර්‍යය නොවේ.

      උදාහරණ -:

      int sum(int num1, int num2)
      {
          //codes
      	return;
      }
      
      void sum()
      {
           //codes
      }
      

      මන් දැන් සරල C program එකක් function එකක් යොදගෙන කරන්නම්. එතකොට ඔයාලට තේරෙයි මන් කිව්වේ මොනාද කියලා.

      1. write a c program to input two numbers from key board and get sum of them using function.

      මෙහිදී කියන්නේ function භාවිතා කර ඉලක්කම් දෙකක එකතුවක් ලබා ගන්නා ලෙසයි.

      #include <stdio.h>
      
      int sum(int, int); //sum කියන function එක තුල ඇත්තේ int වර්ගයේ variable බව මෙතනින් පැහැදිලි කරයි.
      
      int main()
      {
          int num1 = 5;
          int num2 = 6;
          int total = 0;
          
          total = sum(num1, num2); //මෙතන සත්‍ය වශයෙන්ම් ඇත්තේ sum(5, 6) යන්නයි. මෙම අගයන් දෙක int sum(int number1, int number2) වලට ලබා දී එහි ඇති return මඟින් පිලිතුර මෙයට නැවත ලබා ගනී.
          
          printf("Total is = %d", total); අවසන් පිලිතුර output වේ.
      	
      	return 0;
      }
      
      int sum(int number1, int number2)// sum(num1, num2) හි ඇති සංඛ්‍යා දෙක වන 5 සහ 6 මෙතනට පැමිණ number1ට හා number2ට ආදේශ වේ.
      {
          return (number1 + number2); //ආදේශ වූ පසු 5 හ 6 එකට එකතු වී එකතුව වන 11 කියන අගය sum(num1, num2); දක්වා ගෙන ගොස් එයට ලබා දේ.
      }
      

      Output -:

      Total is = 11
      

      මෙම ගැටළුව කල හැකි තව ආකාරයක් බලමු.

      #include <stdio.h>
      
      int sum(); //int sum() එක තුල  argument කිසිවක් නොමැති නිසා මේ ආකාරයෙන් ලියයි.
      
      int main()
      {
          int total = 0;
          
          total = sum(); //මෙහිදී sum() මඟින් int sum() function එක ක්‍රියාකරවන් අතර අවසන් පිලිතුර return එකක් මඟින් පිලිතුර ලබාගෙන එය total එකට ලබා දේ.
          
          printf("Total is = %d", total);
      	
      	return 0;
      }
      
      int sum()
      {
          int num1 = 5;
          int num2 = 6;
          
          return (num1 + num2);
      }
      

      Output -:

      Total is = 11
      

      අපි දැන් void යොදා ගෙන මෙම ගැටළුව විසදමු.

      #include <stdio.h>
      
      void sum(int, int); 
      
      int main()
      {
          int num1 = 5;
          int num2 = 6;
          
          sum(num1, num2); // මෙහිදී 5 හා 6 කියන ඉලක්කම් num1හා num2 වලට ආදේශ වී void sum(int number1, int number2) කියන function එක ක්‍රියාකරවා අවසන් පිලිතුර අපට ලබා දේ.
      	
      	return 0;
      }
      
      void sum(int number1, int number2)
      {
          int total = 0;
          
          total = number1 + number2; 
          
          printf("Total is = %d", total); //ඔබට පෙනෙනවා ඇති void සඳහා return අවස්තාවක් නොමැති බව.
      }
      

      Output -:

      Total is = 11
      

      අපි දැන් void යොදාගෙන තව ආකාරයකට මෙය විසඳමු.

      #include <stdio.h>
      
      void sum(); 
      
      int main()
      {
          sum(); //main() එකේ තිබිය යුතු සියල්ල function එකකට පවරා අපට main() එක මේ ආකාරයෙන් කෙටි කර ගත හැකිය.
          
          return 0;
      }
      
      void sum()
      {
          int num1 = 5;
          int num2 = 6;
          int total = 0;
          
          total = num1 + num2; 
          
          printf("Total is = %d", total);
      }
      

      Output -:

      Total is = 11
      

      ඉහත මන් සාකච්ජා කලා ගැටලුවක් function මඟින් විසඳිය හැකි ආකාර 4ක්. ඔයාලට කැමති ආකාරයකින්, ඔයාලට ලේසි කියලා හිතන ආකාරයකින් ගැටළු විසදන්න පුලුවන්.

      අපි දැන් බලමු function භාවිතයෙදී අපට වැදගත් වෙන කරුණු පිලිබඳව

      • int main() යනුත් function එකකි. එය අපේ ප්‍රධාන function එක වේ.

      • Program එකක function එකකට වඩා කැමති ගණනක් තිබිය හැකිය.

      • function එකක් ලියන විට එය තුල ඕනෑ තරම් argument තිබිය හැකිය.
        උදා -: int sum(int num1, int num2, int num3,int num4)

      • function එකක් int වලින් හඳුන්වාදෙන්නේ නම් එම function එක තුල තිබිය හැක්කේ int argument පමණි. float, char, ..., etc තිබිය නොහැක.

      උදා -:
      int sum(int num1, int num2)
      float subject(float mark1, float mark2)
      char words(char name1, char name2)

      • function එකක් void වලින් හඳුන්වාදෙන්නේ නම් එම function එක තුල ඕනෑම වර්ගයක argument තිබිය හැකිය.
        උදා -: void sum(int num, float mark, char name)

      අපි දැන් බලමු function භාවිතා කිරීමෙන් අපට ලැබෙන වාසි මොනාද කියලා

      • code එක වටහා ගැනීමේ පහසුව සඳහා.

      • විවිධ අවස්තා වලදී එකම function එක නැවත නැවත පාවිච්චි කල හැකි වීම.

      • Errors පහසුවෙන් සොයා ගැනීමට හැකි වීම.

      • අපගේ code එකේ දිග අඩු වීම. එමගින් program එකක් කාර්යක්ෂමව භාවිතා කල හැකි වීම.


      • C programm එකක් windows වල run කරන විදිහ --> https://bit.ly/2O6rLXR

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

      • https://www.onlinegdb.com/online_c_compiler
      • https://www.tutorialspoint.com/compile_c_online.php
      • https://repl.it/languages/c

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

      • https://www.geeksforgeeks.org/c-programming-language/
      • https://www.tutorialspoint.com/cprogramming/index.htm
      • https://beginnersbook.com/2014/01/c-tutorial-for-beginners-with-examples/

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

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

      • C Programming මුල සිට ඉගෙනගනිමු(part 1 - Introduction) -: https://link.lankadevelopers.com/4WpH
      • C Programming මුල සිට ඉගෙනගනිමු (part 2 - Variables) -: https://link.lankadevelopers.com/mXio
      • C Programming මුල සිට ඉගෙනගනිමු (part 3 - Operators) -: https://link.lankadevelopers.com/SHNt
      • C Programming මුල සිට ඉගෙනගනිමු (part 4 - Input & Output functions) -: https://link.lankadevelopers.com/2MNku
      • C Programming මුල සිට ඉගෙනගනිමු (part 5 - create simple applications) -: https://link.lankadevelopers.com/KUF6
      • C Programming මුල සිට ඉගෙනගනිමු (part 6 - Decision making(if-else statement - part 1)) -: https://link.lankadevelopers.com/8Xe71
      • C Programming මුල සිට ඉගෙනගනිමු (part 6 - Decision making(if-else statement - part 2)) -:https://link.lankadevelopers.com/9drmY
      • C Programming මුල සිට ඉගෙනගනිමු (part 7 - Format Specifiers in C) -: https://link.lankadevelopers.com/761PT
      • C Programming මුල සිට ඉගෙනගනිමු (part 8 - Switch Statement) -: https://link.lankadevelopers.com/7jncK
      • C Programming මුල සිට ඉගෙනගනිමු (part 9 - While loop) -: https://link.lankadevelopers.com/4TBV5
      • C Programming මුල සිට ඉගෙනගනිමු (part 10 - do-while loop) -: https://link.lankadevelopers.com/4WcNd
      • C Programming මුල සිට ඉගෙනගනිමු (part 11 - for loop) -: https://link.lankadevelopers.com/8utoa
      • C Programming මුල සිට ඉගෙනගනිමු (part 12 - arrays) -: https://link.lankadevelopers.com/46cyf
      • C Programming මුල සිට ඉගෙනගනිමු (part 13 - 2D-arrays) -: https://link.lankadevelopers.com/4Q9Gt
      • C Programming මුල සිට ඉගෙනගනිමු (part 14 - Strings) -: https://link.lankadevelopers.com/58zWd
      • C Programming මුල සිට ඉගෙනගනිමු (part 15 - Strings Q&A) -: https://link.lankadevelopers.com/7RuFa

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

      තව ලිපියකින් හම්බෙමු ජය වේවා.

      root 1 Reply Last reply Reply Quote 2
      • root
        root Linux Help last edited by

        Great bro

        1 Reply Last reply Reply Quote 1
        • ciaompe
          ciaompe last edited by

          good work bro

          1 Reply Last reply Reply Quote 1
          • dev_lak
            dev_lak last edited by

            thanks bro

            1 Reply Last reply Reply Quote 1
            • Nubelle
              Nubelle Web Development last edited by

              Thanks bro

              1 Reply Last reply Reply Quote 0
              • Kalana
                Kalana last edited by

                Welcome all

                1 Reply Last reply Reply Quote 0
                • Dinuwan Kalubowila
                  Dinuwan Kalubowila last edited by

                  Supper...

                  1 Reply Last reply Reply Quote 1
                  • imadusanka
                    imadusanka last edited by

                    නියමයි බ්‍රෝ

                    1 Reply Last reply Reply Quote 0
                    • root
                      root Linux Help @Kalana last edited by

                      @Kalana

                      Bro anith tikath one ikmanata

                      Kalana 1 Reply Last reply Reply Quote 0
                      • Kalana
                        Kalana @root last edited by

                        @root mee dawas tike assignments tikk watuna. Mn free una gmn danm.

                        root 1 Reply Last reply Reply Quote 1
                        • root
                          root Linux Help @Kalana last edited by

                          @Kalana
                          Elama api balan innawa

                          1 Reply Last reply Reply Quote 0
                          • 1 / 1
                          • First post
                            Last post

                          0
                          Online

                          3.7k
                          Users

                          1.3k
                          Topics

                          5.3k
                          Posts

                          • Privacy
                          • Terms & Conditions
                          • Donate

                          © Copyrights and All right reserved Lanka Developers Community

                          Powered by Axis Technologies (PVT) Ltd

                          Made with in Sri Lanka

                          | |