560 likes | 719 Views
Operatorer. Operand(er). Operator och operand. 3 + 2. Aritmetiska operatorer i C. Aritmetiska operatorer i C. + addition - subtraktion · multiplikation / division % modulo-operatorn , resten vid positiv heltals-division - negation, unär operator. Exempel.
E N D
Operator och operand 3 + 2
Aritmetiskaoperatorer i C + addition - subtraktion · multiplikation / division % modulo-operatorn , resten vid positiv heltals-division - negation, unär operator
Exempel Aritmetiskaoperatorer i C + addition - subraktion · multiplikation / division % modulo-operatorn , resten vid positiv heltals-division - negation, unär operator
Aritmetiskaoperatorer i Cexempel negation -2
Aritmetiskaoperatorer i Cexempel negation, addition -2+4
Aritmetiskaoperatorer i Cexempel negation, addition, division -2+4 / 2
Aritmetiskaoperatorer i Cexempel negation, addition, division, multiplikation -2+4 / 2*3
Aritmetiskaoperatorer i Cexempel negation, addition, division, multiplikation, subtraktion -2+4 / 2*3- 1
detta är ett uttryck Aritmetiskaoperatorer i Cexempel negation, addition, division, multiplikation, subtraktion -2+4 / 2*3- 1
detta är ett uttryck Aritmetiskaoperatorer i Cexempel negation, addition, division, multiplikation, subtraktion -2+4 / 2*3- 1 uttryck i C har ett värde av en viss typ, i detta fall 3 ( int )
detta är ett uttryck Aritmetiskaoperatorer i Cexempel negation, addition, division, multiplikation, subtraktion -2+4 / 2*3- 1 uttryck i C har ett värde av en viss typ, i detta fall 3 ( int ) #include <stdio.h> int main( void ) { printf( "Uttrycket -2+4/2*3-1 = %d",-2+4/2*3-1 ); return 0; } OP1.EXE
Aritmetiskaoperatorer i Cexempel negation, addition, division, multiplikation, subtraktion -2+4 / 2*3- 1 operatorernas prioritet är den vanliga matematiska
Aritmetiskaoperatorer i Cexempel vill man ändra prioritetsordning så gör man det med parenteser negation, addition, division, multiplikation, subtraktion (-2+4 ) / 2*3- 1 operatorernas prioritet är den vanliga matematiska
Aritmetiskaoperatorer i Cexempel vill man ändra prioritetsordning så gör man det med parenteser negation, addition, division, multiplikation, subtraktion (-2+4 ) / 2*3- 1 operatorernas prioritet är den vanliga matematiska #include <stdio.h> int main( void ) { printf( "Uttrycket (-2+4)/2*3-1 = %d",(-2+4)/2*3-1 ); return 0; } OP2.EXE
Aritmetiskaoperatorer i Cexempel ett varningens ord om division, och som också brukar dyka upp som tentamensfråga .....
Aritmetiskaoperatorer i Cexempel vad tror du 9/2 är?.....
Aritmetiskaoperatorer i Cexempel vad tror du 9/2 är?.....
Aritmetiskaoperatorer i Cexempel hmm, ja det är väl 4,5? vad tror du 9/2 är?.....
Aritmetiskaoperatorer i Cexempel vad tror DU ?
Aritmetiskaoperatorer i Cexempel prova ! OP3.EXE #include <stdio.h> int main( void ) { printf( "Uttrycket 9/2 = %f", (double)(9/2) ); return 0; }
Aritmetiskaoperatorer i Cexempel division av två heltal (int) i C ger ett heltal som svar. Om man vill ha ett flyttal (double ) som svar så ordnas detta genom att göra antingen divisor eller dividend till en double. Sätt till en decimalpunkt, här! #include <stdio.h> int main( void ) { printf( "Uttrycket 9/2 = %f", (double)(9/2) ); return 0; }
Aritmetiskaoperatorer i Cexempel så ja!Testa! #include <stdio.h> int main( void ) { printf( "Uttrycket 9/2 = %f", (double)(9/2.) ); return 0; } OP4.EXE
Aritmetiskaoperatorer i Cexempel hmm, men vad gör den där modulo-grejen? %
Aritmetiskaoperatorer i Cexempel den ger resten vid heltalsdivision, kika på nästa sida! hmm, men vad gör den där modulo-grejen? %
Aritmetiskaoperatorer i Cexempel multiplikation t ex 7*3 är ju detsamma som att addera 7 3 ggr (7+7+7).På motsvarande sätt betyder 7/3 ”hur många ggr går det att subtrahera 3 från 7” (7-3-3). Det går två hela ggr och så får man resten 1Denna rest får man fram med %. Provkör exemplet! #include <stdio.h> int main( void ) { printf( "Uttrycket 7%%3 = %d", 7%3 ); return 0; } OP5.EXE
Aritmetiskaoperatorer i Cexempel multiplikation t ex 7*3 är ju detsamma som att addera 7 3 ggr (7+7+7).På motsvarande sätt betyder 7/3 ”hur många ggr går det att subtrahera 3 från 7” (7-3-3). Det går två hela ggr och så får man resten 1Denna rest får man fram med %. Provkör exemplet! OBS! dubbla % ! #include <stdio.h> int main( void ) { printf( "Uttrycket 7%%3 = %d", 7%3 ); return 0; } OP5.EXE
Aritmetiskaoperatorer i C undrar hur man gör med de där?
Aritmetiskafunktioner i C då räcker det inte med operatorer utan man får plocka fram det tunga artilleriet nämligen funktioner !
Exempel Aritmetiskafunktioner i C några funktioner ur math.h double acos (double ); double asin (double ); double atan (double ); double ceil (double ); double cos (double ); double cosh (double ); double exp (double ); double fabs (double ); double floor (double ); double log (double ); double log10 (double ); double pow (double , double ); double sin (double ); double sinh (double ); double sqrt (double ); double tan (double ); double tanh (double );
Aritmetiskafunktioner i Cexempel #include <stdio.h> #include <math.h> int main( void ) { printf( "Uttrycket pow(2,16)-1 = %0.0f", pow(2,16)-1 ); return 0; } OP6.EXE
Aritmetiskafunktioner i C några funktioner ur stdlib.h int abs(int ); long labs(long );
”Öka eller minska med ett” -operatorn I C ökas (eng.increment) resp minskas (eng. decrement) en heltalsvariabel med värdet 1 på följande sätt, #include <stdio.h> int main( void ) { int i=0, j=5; printf( "Variabelvärden: i = %d \n", i ); printf( "Variabelvärden: j = %d \n", j ); printf( "Uttrycket \t ++i = %d och j++ = %d \n", ++i, j++ ); printf( "Variabelvärden: i = %d \n", i ); printf( "Variabelvärden: j = %d \n", j ); return 0; } operatorn ++ som prefix-operator som innebär att i:s värde ökas med ett innan uttrycket beräknas ++ som postfix-operator, j:s värde ökas med ett efter det attuttrycket beräknats OP7.EXE
”Öka eller minska med ett” -operatorn På motsvarande sätt fungerar ”minska med ett”-operatorn #include <stdio.h> int main( void ) { int i=0, j=5; printf( "Variabelvärden: n = %d \n", i ); printf( "Variabelvärden: i = %d \n", j ); printf( "Uttrycket \t --i * j-- = %d \n", --i * j--); printf( "Variabelvärden: n = %d \n", i ); printf( "Variabelvärden: i = %d \n", j ); return 0; } operatorn -- som prefix-operator som innebär att i:s värde minskas med ett innan uttrycket beräknas -- som postfix-operator, j:s värde minskas med ett efter det attuttrycket beräknats OP8.EXE
Jämförelseoperatorer < ”mindre än” - operatorn > ”större än” - operatorn <= ”mindre än eller lika med” - operatorn >= ”större än eller lika med” - operatorn == ” lika med” - operatorn ( OBS! dubbelt = ) != ” skilt från” - operatorn
Exempel Jämförelseoperatorer < ”mindre än” - operatorn > ”större än” - operatorn <= ”mindre än eller lika med” - operatorn >= ”större än eller lika med” - operatorn == ” lika med” - operatorn ( OBS! dubbelt = ) != ” skilt från” - operatorn
Jämförelseoperatorerexempel eftersom du gör så här måste det betyda att jämförelseuttrycken har ett heltalsvärde!? #include <stdio.h> int main( void ) { int i=0, j=5; printf( "Variabel i = %d och j = %d \n\n", i, j ); printf( "Uttrycket: \t i == j får vördet %d \n", i == j); printf( "och \t\t i != j får värdet %d \n", i!=j ); return 0; } provsmaka! OP9.EXE
Exempel Jämförelseoperatorerexempel • detta betyder att ett falskt villkorsuttryck har värdet 0 , • i detta fall har ( i == j ) värdet 0 • och ett sant värdet 1, • i detta fall har ( i!=j ) värdet 1
#include <stdio.h> #define DELAY 1000000L int main( void ){ long i; while ( 1==1 ) { printf("A"); for ( i=1; i < DELAY ; i++ ) ; printf("\tn"); for ( i=1; i < DELAY ; i++ ) ; printf("\td"); for ( i=1; i < DELAY ; i++ ) ; printf("\te"); for ( i=1; i < DELAY ; i++ ) ; printf("\tr"); for ( i=1; i < DELAY ; i++ ) ; printf("\ts"); for ( i=1; i < DELAY ; i++ ) ; printf("\r \t \t \t \t \t \r"); for ( i=1; i < DELAY ; i++ ) ; } return 0; } Iteration i Cexempel 1 minns ni det här exemplet?För att få en oändlig loopkan man lika gärna skriva while ( 1 ).
Tilldelningsoperatorerde vanligaste enkel tilldelning =x = y *3 sammansatt tilldelning, två blir en += x += 3 är detsamma som x = x + 3 -= x -= 3 är detsamma som x = x - 3 *=x *= 3 är detsamma som x = x * 3 /= x /= 3 är detsamma som x = x / 3 %=x %= 3 är detsamma som x = x % 3
Tilldelningsoperatorerde vanligaste tilldelning sker från höger till vänster , x ¬ 3 enkel tilldelning =x = y *3 sammansatt tilldelning, två blir en += x += 3 är detsamma som x = x + 3 -= x -= 3 är detsamma som x = x - 3 *=x *= 3 är detsamma som x = x * 3 /= x /= 3 är detsamma som x = x / 3 %=x %= 3 är detsamma som x = x % 3
Tilldelningsoperatorerde vanligaste eftersom tilldelning betraktas som ett uttryck så har uttrycket ett värde, i detta fall 10. Det går även att göra multiplatilldelningar från höger till vänster . #include <stdio.h> int main( void ) { int i=0, j=5; printf( "Variabel i = %d och j = %d \n\n", i, j ); printf( "Uttrycket: \t i = j = 2 * j får vördet %d \n", i = j = 2 * j ); printf( "och \t\t i = %d och j = %d \n", i, j); return 0; } OP10.EXE
Villkorsoperatornden enda operatorn med tre operander minns ni det här exemplet?I detta program användsvillkorsoperatorn.