Lanka Developers Community

    Lanka Developers

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

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

    Blogs
    c programming
    4
    4
    559
    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

      සුබ දවසක් ඔයාලට. කලින් දවසේ මන් ඔයාලට කියලා දුන්නා variables කියන්නේ මොනාද ඒවා වැඩ කරන්නේ කොහොමද කියලා. අද මන් කියලා දෙන්න යන්නේ C programming වල එන operators
      ගැනයි

      Operators

      • operator එකක් කියන්නේ කිසියම් අගයක් හෝ විචල්‍යයක්(variable) හසුරුවන කිසියම් සංකේතයකටයි.
        උදා -: +, -, /, *, =, >, <.......

      • C programming වල අපි ප්‍රධාන වශයෙන් operators වර්ග 4ක් ගැන අධ්‍යනය කරනවා

          1. Arithmetic Operators -: ගණිතමය ක්‍රියාකාරකම් සඳහා මේවා යොදා ගනී. (උදා -: +, -, *, /, %)
          2. Assignment Operators -: යම් කිසි අගයක් variable එකකට assign කරන්න මේවා යොදා ගනී. (උදා -: =, +=, -=, *=, /=, %=)
          3. Relational Operators -: මෙහෙයුම් දෙකක් අතර සම්බන්ධතාවය පරීක්ෂා කිරීමට මේවා යොදා ගනී. (උදා -: ==, >=, <=, !=, >, <)
          4. Logical Operators    -: සරලව කිව්වොත් AND, OR, NOT වලට තමා logical pperators කියන්නේ(උදා -: &&, ||, !)
        

      Arithmetic Operators

      • කලින් කිව්වා වගේ මේවා යොදා ගන්නේ ගණිතමය ක්‍රියාකාරකම් සඳහා වේ.
      	    operator		         meaning			example
      		+			එකතු කිරීම			3 + 2 = 5
      		-			අඩු කිරීම			3 - 2 = 1
      		*			ගුණ කිරීම			3 * 2 = 6
      		/			බෙදීම				4 / 2 = 2
      		%			බෙදීමෙන් පසු ඉතුරු		3 % 2 = 1, 4 % 2 = 0
      
      • අපි දැන් මෙම operators භාවිතා කරලා programm එකක් ලියමු.
      	#include <stdio.h>
      
      	int main()
      	{
      		int num1 = 3, num2 = 2;
      		int ans;
      		
      		ans = num1 + num2;
      		printf("num1 + num2 = %d\n", ans);
      		
      		ans = num1 - num2;
      		printf("num1 - num2 = %d\n", ans);
      		
      		ans = num1 * num2;
      		printf("num1 * num2 = %d\n", ans);
      		
      		ans = num1 / num2;
      		printf("num1 / num2 = %d\n", ans);
      		
      		ans = num1 % num2;
      		printf("reminder    = %d\n", ans);
      		
      		return 0;
      	}
      
      • මෙය run කල පසු output එක වන්නේ
      	num1 + num2 = 5                                                                                                       
      	num1 - num2 = 1                                                                                                       
      	num1 * num2 = 6                                                                                                       
      	num1 / num2 = 1                                                                                                       
      	reminder    = 1 
      

      විශේෂ

      • ඔයාලට මෙතන පේනවා ඇති බෙදීම වෙන තැන උත්තරය 1.5 ලැබිය යුතු වුවත් අපිට ලැබුනේ 1 පමණක් බව. මේකට ප්‍රධාන හේතුව වන්නේ අපේ ans, num1, num2 යන variables සේරම integers
        වීමයි. integers වලින් output කරන්නේ පූර්ණ සංඛ්‍යා විතරයි. මේ ප්‍රශ්නය මඟහැර ගන්න මේ පියවර අනුගමනය කරන්න
      	#include <stdio.h>
      
      	int main()
      	{
      		int num1 = 3, num2 = 2;
      		int ans;
      		float answer;
      		
      		answer = num1 / (float)num2; //මෙහිදී අපි තාවකාලිකව num2 ව float අගයක් බවට පත්කරනවා.
      		printf("num1 / num2 = %.2f\n", answer);
      		
      		answer = (float)num1 / num2; //මෙහිදී අපි තාවකාලිකව num1 ව float අගයක් බවට පත්කරනවා.
      		printf("num1 / num2 = %.2f\n", answer);
      		
      		return 0;
      	}
      
      • මෙය run කල පසු output එක වන්නේ
      	num1 / num2 = 1.50                                                                                                                          
      	num1 / num2 = 1.50 
      
      • තවදුරටත් Arithmetic Operators ගැන කතා කිරීමේදී අපිට හමුවනවා Increment and Decrement Operators යන වර්ග දෙක.
        උදා -: num1 = 5 ලෙස ගනිමු.

      • num++ --> num = num + 1;

      1. ans = num1++ --> මෙහි තේරුම වන්නේ
      ans = num1;
      num1 = num1 + 1;
      
      1. ans = ++num1 --> මෙහි තේරුම වන්නේ
      num1 = num1 + 1;
      ans = num1;
      
      • මෙය භාවිතා කොට programm එකක් ලියමු.
      	#include <stdio.h>
      
      	int main()
      	{
      		int num1 = 3;
      		int num2 = 3;
      		int num3 = 3;
      		int num4 = 3;
      		
      		int ans;
      		
      		ans = num1++;
      		printf("answer = %d\n", ans);
      		
      		ans = ++num2;
      		printf("answer = %d\n", ans);
      		
      		ans = num3--;
      		printf("answer = %d\n", ans);
      		
      		ans = --num4;
      		printf("answer = %d\n", ans);
      	   
      		return 0;
      	}
      
      • මෙය run කල පසු output එක වන්නේ
      	answer = 3                                                                                                                                  
      	answer = 4                                                                                                                                  
      	answer = 3                                                                                                                                  
      	answer = 2 
      

      Assignment Operators

      • යම් කිසි අගයක් variable එකකට assign කරන්න මේවා යොදා ගනී
          Operator	       Example		Meaning
      	=		a = b		a = b
      	+=		a += b		a = a +	b
      	-+		a -= b		a = a - b
      	*=		a *= b		a = a * b
      	/=		a /= b		a = a / b
      	%=		a %= b		a = a % b
      
      • අපි දැන් මෙම operators භාවිතා කරලා programm එකක් ලියමු.
      	#include <stdio.h>
      
      	int main()
      	{
      		int ans;
      		int num1 = 4;
      		
      		ans = num1; 	// ans = 4
      		printf("answer = %d\n", ans);
      		
      		ans += num1; 	//ans = 4 + 4 = 8
      		printf("answer = %d\n", ans);
      		
      		ans -= num1; 	//ans = 8 - 4 = 4
      		printf("answer = %d\n", ans);
      		
      		ans *= num1; 	// ans = 4 * 4 = 16
      		printf("answer = %d\n", ans);
      		
      		ans /= num1; 	// ans = 16 / 4 = 4
      		printf("answer = %d\n", ans);
      		
      		ans %= num1; 	// ans = 4 % 4 = 0
      		printf("answer = %d\n", ans);
      	   
      		return 0;
      	}
      
      • මෙය run කල පසු output එක වන්නේ
      	answer = 4                                                                                                                                    
      	answer = 8                                                                                                                                    
      	answer = 4                                                                                                                                    
      	answer = 16                                                                                                                                   
      	answer = 4                                                                                                                                    
      	answer = 0  
      

      Relational Operators

      • මෙහෙයුම් දෙකක් අතර සම්බන්ධතාවය පරීක්ෂා කිරීමට මේවා යොදා ගනී.

      • සම්බන්ධතාවය සත්‍ය නම් output ලෙස 1 ලැබේ.(එනම් එම condition එක true වේ)

      • සම්බන්ධතාවය අසත්‍ය නම් output ලෙස 0 ලැබේ.(එනම් එම condition එක false වේ)

           Operator	         Meaning								Example
      	==		සමාන වේද			5 == 3 පහ කිසිසේත්ම තුනට සමාන නොවේ, එනම් මෙය false වේ. එබැවින් output එක 0 වේ.
      							5 == 5 පහ හැමවිටම පහට සමාන වේ. මෙය true වේ. එබැවින් output එක 1 වේ.
      							
      	>		විශාල වේද			5 > 3 පහ හැමවිටම තුනට වඩා විශාල වේ. එබැවින් output එක 1 වේ.
      							5 > 7 පහ කිසිවිටකත් හතට වඩා විශාල නොවේ. එබැවින් output එක 0 වේ.
      							
      	<		කුඩා වේද			5 < 7 පහ හැමවිටම හතට වඩා කුඩා වේ. output = 1
      							5 < 3 පහ කිසිවිටකත් තුනට වඩා කුඩා නොවේ. output = 0
      							
      	!=		අසමාන වේද			5 != 3 පහ සෑම විටම තුනට අසමාන වේ. එබැවින් මෙය සත්‍ය වේ. output = 1
      							5 != 5 පහ සෑම විටම පහට සමාන වේ. එබැවින් මෙය අසත්‍ය වේ. output = 0
      							
      	>=		විශාල හෝ සමාන වේද	        5 >= 3 පහ තුනට සමාන නොවුනත් තුනට වඩා විශාල වේ. එබැවින් මෙය සත්‍ය වේ. output = 1
      							5 >= 5 පහ පහට වඩා විශාල නොවුනත් පහට සමාන වේ. එබැවින් මෙය සත්‍ය වේ. output = 1
      							5 >= 7 පහ හතට වඩා විශාලවත් සමානවත් වන්නේ නැත. එබැවින් මෙය අසත්‍ය වේ. output = 0
      							
      	<=		කුඩා හෝ සමාන වේද	        5 <= 7 පහ හතට සමාන නොවුනත් හතට වඩා කුඩා වේ. එබැවින් මෙය සත්‍ය වේ. output = 1
      							5 <= 5 පහ පහට වඩා කුඩා නොවුනත් පහට සමාන වේ. එබැවින් මෙය සත්‍ය වේ. output = 1
      							5 <= 3 පහ තුනට වඩා කුඩාවත් සමානවත් වන්නේ නැත. එබැවින් මෙය අසත්‍ය වේ. output = 0
      
      • අපි දැන් මෙම operators භාවිතා කරලා programm එකක් ලියමු.
      	#include <stdio.h>
      
      	int main()
      	{
      		int ans;
      		
      		ans = (5 == 5);
      		printf("(5 == 5)answer = %d\n", ans);
      		
      		ans = (5 == 3);
      		printf("(5 == 3)answer = %d\n\n", ans);
      		
      		ans = (5 > 3);
      		printf("(5 > 3)answer = %d\n", ans);
      		
      		ans = (5 > 7);
      		printf("(5 > 7)answer = %d\n\n", ans);
      		
      		ans = (5 != 3);
      		printf("(5 != 3)answer = %d\n", ans);
      		
      		ans = (5 != 5);
      		printf("(5 != 5)answer = %d\n\n", ans);
      		
      		ans = (5 >= 3);
      		printf("(5 >= 3)answer = %d\n", ans);
      		
      		ans = (5 >= 5);
      		printf("(5 >= 5)answer = %d\n", ans);
      		
      		ans = (5 >= 7);
      		printf("(5 >= 7)answer = %d\n\n", ans);
      		
      		ans = (5 <= 5);
      		printf("(5 <= 5)answer = %d\n", ans);
      		
      		ans = (5 <= 7);
      		printf("(5 <= 7)answer = %d\n", ans);
      		
      		ans = (5 <= 3);
      		printf("(5 <= 3)answer = %d\n", ans);
      	   
      		return 0;
      	}
      
      • මෙය run කල පසු output එක වන්නේ
      (5 == 5)answer = 1                                                                                                                            
      (5 == 3)answer = 0                                                                                                                            
                                                                                                                                                    
      (5 > 3)answer = 1                                                                                                                             
      (5 > 7)answer = 0                                                                                                                             
                                                                                                                                                    
      (5 != 3)answer = 1                                                                                                                            
      (5 != 5)answer = 0                                                                                                                            
                                                                                                                                                    
      (5 >= 3)answer = 1                                                                                                                            
      (5 >= 5)answer = 1                                                                                                                            
      (5 >= 7)answer = 0                                                                                                                            
                                                                                                                                                    
      (5 <= 5)answer = 1                                                                                                                            
      (5 <= 7)answer = 1                                                                                                                            
      (5 <= 3)answer = 0 
      

      Logical Operators

      • සරලව කිව්වොත් AND, OR, NOT වලට තමා logical pperators කියන්නේ

      • AND(ගුණ කිරීම)

      	x		y		output
      	0		0		  0
      	0		1		  0
      	1		0		  0
      	1		1		  1
      
      • OR(එකතු කිරීම)
      	x		y		output
      	0		0		  0
      	0		1		  1
      	1		0		  1
      	1		1		  1
      
      • NOT(ප්‍රතිවිරුද්ධ binary number එක)
      	x		output
      	0		  1
      	1		  0
      
      • මෙම operators C programming වල භාවිතා වන්නේ මේ ආකාරයෙනි.
            Operator		                        Meaning													Example
      	&&			සියලු කාරණා සත්‍ය නම් සත්‍ය වේනම්			((5 > 3) && (5 < 7)). (5 > 3) හා (5 < 7) යන කාරණා දෙකම සත්‍ය වේ. එබැවින් output එක 1 වේ.
      										          ((5 == 3) && (5 < 7)). (5 < 7) සත්‍ය වුවත් (5 == 3) සත්‍ය නොවේ. එබැවින් output එක 0 වේ.
      										          ((5 == 3) && (5 < 3)). (5 == 3) හා (5 < 3) යන දෙකම අස්ත්‍ය වේ. එබැවින් output එක 0 වේ.
      										
      	||			සියලු කාරණා වලින් එකක් හෝ සත්‍ය වේනම්		((5 > 3) && (5 < 7)). (5 > 3) හා (5 < 7) යන කාරණා දෙකම සත්‍ය වේ. එබැවින් output එක 1 වේ.
      										         ((5 == 3) && (5 < 7)). (5 == 3) අසත්‍ය වුවත් (5 < 7) සත්‍ය වේ. එබැවින් output එක 1 වේ.
      										          ((5 == 3) && (5 < 3)). (5 == 3) හා (5 < 3) යන දෙකම අස්ත්‍ය වේ. එබැවින් output එක 0 වේ.
      											
      	!			දී ඇති කාරණය සත්‍ය නම් එය අසත්‍යක් ලෙස ගනී	(!(5 == 3)). පහට තුන අසමාන හා කාරණය අසත්‍ය නමුත් එය සත්‍යක් ලෙස සලකයි. එබැවින් output එක 1 වේ.
      												        (!(5 == 5)). පහට පහ සමාන හා කාරණය සත්‍ය නමුත් එය අසත්‍යක් ලෙස සලකයි. එබැවින් output එක 0 වේ.
      
      • අපි දැන් logical operators භාවිතා කරලා programm එකක් ලියමු.
      	#include <stdio.h>
      
      	int main()
      	{
      		int ans;
      		
      		ans = (5 > 3) && (5 < 7);
      		printf("(5 > 3) && (5 < 7)answer  = %d\n", ans);
      		
      		ans = (5 == 3) && (5 < 7);
      		printf("(5 == 3) && (5 < 7)answer = %d\n", ans);
      		
      		ans = (5 == 3) && (5 < 3);
      		printf("(5 == 3) && (5 < 3)answer = %d\n\n", ans);
      		
      		ans = (5 > 3) || (5 < 7);
      		printf("(5 > 3) || (5 < 7)answer   = %d\n", ans);
      		
      		ans = (5 == 3) || (5 < 7);
      		printf("(5 == 3) || (5 < 7)answer  = %d\n", ans);
      		
      		ans = (5 == 3) || (5 < 3);
      		printf("(5 == 3) || (5 < 3)answer  = %d\n\n", ans);
      		
      		ans = !(5 == 3);
      		printf("!(5 == 3)answer  = %d\n", ans);
      		
      		ans = !(5 == 5);
      		printf("!(5 == 5)answer  = %d\n", ans);
      	   
      		return 0;
      	}
      
      • මෙය run කල පසු output එක වන්නේ
      (5 > 3) && (5 < 7)answer  = 1                                                                                                                
      (5 == 3) && (5 < 7)answer = 0                                                                                                                
      (5 == 3) && (5 < 3)answer = 0                                                                                                                
                                                                                                                                                   
      (5 > 3) || (5 < 7)answer   = 1                                                                                                               
      (5 == 3) || (5 < 7)answer  = 1                                                                                                               
      (5 == 3) || (5 < 3)answer  = 0                                                                                                               
                                                                                                                                                   
      !(5 == 3)answer  = 1                                                                                                                         
      !(5 == 5)answer  = 0
      
      • මූලාශ්‍ර -: https://www.programiz.com/c-programming/c-operators

      • 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

      කලින් ලිපි වල වගේ මේ ලිපියෙත් ඉල්ලනවා අඩු පාඩු තිබ්බොත් පහලින් කමෙන්ට් එකක් දාන්න. තව වැඩි දියුණු වෙන්න ඕන ඒවා තියෙනවනම් ඒවත් දාන්න.

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

        Niyamai bro. Digatama karamu wade . Supiri

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

          supiri bro

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

            Keep it up bro

            1 Reply Last reply Reply Quote 1
            • 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

            | |