Operatorer
Operand(er)
Operator och operand 3 + 2
Aritmetiska operatorer i C + addition - subtraktion * multiplikation / division % modulo-operatorn , resten vid positiv heltals-division - negation, unär operator
Aritmetiska operatorer i C exempel negation - 2
Aritmetiska operatorer i C exempel negation, addition - 2 + 4
Aritmetiska operatorer i C exempel negation, addition, division - 2 + 4 / 2
Aritmetiska operatorer i C exempel negation, addition, division, multiplikation - 2 + 4 / 2 * 3
Aritmetiska operatorer i C exempel negation, addition, division, multiplikation, subtraktion - 2 + 4 / 2 * 3 - 1
Aritmetiska operatorer i C exempel negation, addition, division, multiplikation, subtraktion - 2 + 4 / 2 * 3 - 1 detta är ett uttryck
Aritmetiska operatorer i C exempel negation, addition, division, multiplikation, subtraktion - 2 + 4 / 2 * 3 - 1 detta är ett uttryck uttryck i C har ett värde av en viss typ, i detta fall 3 ( int )
Aritmetiska operatorer i C exempel negation, addition, division, multiplikation, subtraktion - 2 + 4 / 2 * 3 - 1 detta är ett uttryck 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; }
Provkörning
Aritmetiska operatorer i C exempel negation, addition, division, multiplikation, subtraktion - 2 + 4 / 2 * 3 - 1 operatorernas prioritet är den vanliga matematiska
Aritmetiska operatorer i C exempel 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
Aritmetiska operatorer i C exempel 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; } OBS! Vid multiplikation måste alltid multiplikationstecknet sättas ut: 5( x+3) fungerar inte! 5*(x+3) fungerar!
Provkörning
Aritmetiska operatorer i C exempel ett varningens ord om division …
Aritmetiska operatorer i C exempel vad tror du 9/2 är?.....
Aritmetiska operatorer i C exempel vad tror du 9/2 är?.....
Aritmetiska operatorer i C exempel hmm, ja det är väl 4,5? vad tror du 9/2 är?.....
Aritmetiska operatorer i C exempel vad tror DU ?
Aritmetiska operatorer i C exempel prova ! #include <stdio.h> int main( void ) { printf( "Uttrycket 9/2 = %f", (double)(9/2) ); return 0; }
Aritmetiska operatorer i C exempel 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; }
Aritmetiska operatorer i C exempel så ja! Testa! #include <stdio.h> int main( void ) { printf( "Uttrycket 9/2. = %f", (double)(9/2.) ); return 0; }
Aritmetiska operatorer i C exempel hmm, men vad gör den där modulo-grejen? %
Aritmetiska operatorer i C exempel den ger resten vid heltalsdivision, kika på nästa sida! hmm, men vad gör den där modulo-grejen? %
Aritmetiska operatorer i C exempel 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 1 Denna 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; }
Minuter och sekunder Hur många minuter är 9631 sekunder? int sek = 9631; printf("%d sekunder är %d minuter och %d sekunder\n", sek, sek/60, sek%60 );
Aritmetiska operatorer i C undrar hur man gör med de där?
Aritmetiska funktioner i C då räcker det inte med operatorer utan man får plocka fram det tunga artilleriet nämligen funktioner !
Aritmetiska funktioner 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 );
Aritmetiska funktioner i C exempel 216 - 1 #include <stdio.h> #include <math.h> int main( void ) { printf( "Uttrycket pow(2,16)-1 = %0.0f", pow(2,16)-1 ); return 0; }
Aritmetiska funktioner i C några funktioner ur stdlib.h int abs(int ); long labs(long );
”Öka eller minska med ett” -operatorn
”Ö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( "Variabelvarden: i = %d \n", i ); printf( "Variabelvarden: j = %d \n", j ); printf( "Uttrycket \t ++i = %d och j++ = %d \n", ++i, 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 att uttrycket beräknats
Provkörning #include <stdio.h> int main( void ) { int i=0, j=5; printf( "Variabelvarden: i = %d \n", i ); printf( "Variabelvarden: j = %d \n", j ); printf( "Uttrycket \t ++i = %d och j++ = %d \n", ++i, j++ ); return 0; }
”Ö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( "Variabelvarden: i = %d \n", i ); printf( "Variabelvarden: j = %d \n", j ); printf( "Uttrycket \t --i * j-- = %d \n", --i * 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 att uttrycket beräknats
Provkörning #include <stdio.h> int main( void ) { int i=0, j=5; printf( "Variabelvarden: i = %d \n", i ); printf( "Variabelvarden: j = %d \n", j ); printf( "Uttrycket \t --i * j-- = %d \n", --i * j--); return 0; }
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örelseoperatorer exempel 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 far vardet %d \n", i == j); printf( "och \t\t i != j far vardet %d \n", i!=j ); return 0; }
Jämförelseoperatorer exempel 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
Tilldelningsoperatorer de 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
Tilldelningsoperatorer de 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 tilldelning sker från höger till vänster , x ¬ 3
Tilldelningsoperatorer de vanligaste #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 far vardet %d \n", i = j = 2 * j ); printf( "och \t\t i = %d och j = %d \n", i, j ); return 0; } eftersom tilldelning betraktas som ett uttryck så har uttrycket ett värde, i detta fall 10. Det går även att göra multipla tilldelningar från höger till vänster .
Villkorsoperatorn den enda operatorn med tre operander
Villkorsoperatorn den enda operatorn med tre operander minns ni det här exemplet? I detta program används villkorsoperatorn.
Villkorsoperatorn den enda operatorn med tre operander om detta uttryck är sant så gör detta annars det här minns ni det här exemplet? I detta program används villkorsoperatorn.
Villkorsoperatorn syntax uttryck 1 ? uttryck 2 : uttryck 3 beräkningen går till så att uttryck 1 beräknas först. Om detta uttryck får ett värde som inte är noll ( sant ) så beräknas därefter uttryck 2 och resultatet av hela villkorsuttrycket blir lika med värdet av uttryck 2. Om å andra sidan uttryck 1 får vardet 0 (falskt) beräknas i stället uttryck 3 och resultatet av hela villkorsuttrycket blir lika med värdet av uttryck 3.
Sant och falskt en kommentar i C finns ingen speciell datatyp ( boolsk ) för att hantera sant resp falskt utan dessa är av typen ”heltal” heltalsvärdet 0 står för falskt i ett relevant sammanhang alla andra heltalsvärden står för sant i ett relevant sammanhang, dvs inte bara heltalsvärdet 1
= *= /= %= += -= <<= >>= &= ~= |= Operatorprioritet högst prioritet har de unära postfixoperatorerna [] () . -> ++ -- sedan kommer de unära prefixoperatorerna ++ -- & * + - ~ ! (typnamn) därefter de aritmetiska ( rikning V till H ) * / % + - skiftoperatorer ( rikning V till H ) << >> jämförelseoperatorerna ( rikning V till H ) < > <= >= == != bit-operatorerna ( rikning V till H ) & ^ | logiska operatorer ( rikning V till H ) && || villkorsoperatorn ( rikning H till V ) ? uttryck : tilldelningsoperatorer ( rikning H till V ) = *= /= %= += -= <<= >>= &= ~= |= kommaoperatorn ( riktning V till höger ) ,
= *= /= %= += -= <<= >>= &= ~= |= Operatorprioritet högst prioritet har de unära postfixoperatorerna [] () . -> ++ -- sedan kommer de unära prefixoperatorerna ++ -- & * + - ~ ! (typnamn) därefter de aritmetiska ( rikning V till H ) * / % + - skiftoperatorer ( rikning V till H ) << >> jämförelseoperatorerna ( rikning V till H ) < > <= >= == != bit-operatorerna ( rikning V till H ) & ^ | logiska operatorer ( rikning V till H ) && || villkorsoperatorn ( rikning H till V ) ? uttryck : tilldelningsoperatorer ( rikning H till V ) = *= /= %= += -= <<= >>= &= ~= |= kommaoperatorn ( riktning V till höger ) , Vad blir värdet av uttrycken nedan? int a=2, b=11, c=5 ; a+=30/-++c-+29%b a+=30/-c++-+29%b #include <stdio.h> int main( void ) { int a=2, b=11, c=5 ; printf( "Uttrycket a+=30/-++c-+29%%b = %d", a+=30/-++c-+29%b ); return 0; } Exekveringsresultat ?? #include <stdio.h> int main( void ) { int a=2, b=11, c=5 ; printf( "Uttrycket a+=30/-c++-+29%%b = %d", a+=30/-c++-+29%b ); return 0; } ??
Facit till operatoruppgiften Vad blir värdet av uttrycket nedan? int a=2, b=11, c=5 ; a+=30/-++c-+29%b a += 30/-++c - +29%b a = 2 + 30/-6 – 29%11 a = 2 –5 – 7 a = -10
Facit till operatoruppgiften Vad blir värdet av uttrycket nedan? int a=2, b=11, c=5 ; a+=30/-c++-+29%b a += 30/-c++ - +29%b a = 2 + 30/-5 – 29%11 a = 2 –6 – 7 a = -11
På web-tentan
Slut