Anders Sjögren Operatorer. Anders Sjögren Operand(er)

Slides:



Advertisements
Liknande presentationer
Andragradsfunktioner & Andragradsekvationer
Advertisements

INTRODUKTION TILL PROGRAMMERING
void hittaMax(int tal[], int antal, int *pmax) { int i; ??=tal[0]; for(i=1;i??) ??=tal[i]; } int main() { int v[]={1,2,3,4,2}; int.
hej och välkomna EKVATIONER Ta reda på det okända talet.
Anders Sjögren Lagringsklasser •en variabel i C har två attribut –type( int, float, char..... ) –lagringsklass( auto, extern, register, static ) •lagringsklassens.
Funktioner och programorganisation
Vill du lära dig kort division?
Föreläsning 3 Repetition Operatorer Styrstrukturer Deklaration och anrop av metoder.
De fundamentala datatyperna
Datatyper C# C/C++ Java VB Fortran Pascal bool boolean Boolean
Operatorer.
Komplexa tal inför Laborationerna
Tentamensdags och lab 3…. Större program delas normalt upp i flera filer/moduler vilket har flera fördelar:  Programmets logiska struktur när man klumpar.
Arrays Indicerade variabler.
Föreläsning 2. Operatorer Tilldelning Kodblock { } if – satsen Logiska uttryck Att programmera.
Grundläggande programmering
Föreläsning 2 Datalogi för E1 2D1343
Föreläsning 2 Primitiva datatyper Variabler och konstanter Tilldelning Inläsning Operatorer Villkorssatsen if Slingor: while och for.
Flödeskontroll Satser i ett program utförs en och en efter varandra. Detta kallas sekvensiell flödeskontroll. Ofta är det dock nödvändigt att modifiera.
Iteration i C ”upprepa”
Programmering B PHP Lektion 2
INTRODUKTION TILL PROGRAMMERING
Tentamensdags och lab 3…. Större program delas normalt upp i flera filer/moduler vilket har flera fördelar:  Programmets logiska struktur när man klumpar.
Anders Sjögren Selektion i C ”vägval” if och switch - satserna.
Pointers. int a=5; int f(int b) { a--; b++; return b; } int main() { int a=3; printf("%d,",f(a)); printf("%d",a); return 0; }
Programmering B PHP Lektion 2
Föreläsning 2 Kort Översikt Över Javaspråket. Källkodsformat Unicode används åäöμψζ tillåtna Inte alla miljöer klarar av det Källkod Bytekod Java VM för.
Matematik A - Introduktion
Föreläsning 7 Uttryck, Operatorer Och Kontrollflöden.
Internet A Javaskript.
Metoder och slingor Metoder och dess typ Slingor med while och for-satser.
Grundläggande programmering
Problemlösning Veckodagsproblemet Gissa talet Siffersumman.
Anders Sjögren Mer om datatyper. Anders Sjögren const det finns ett elegantare sätt att skapa konstanter i C än sättet med makro som vi använt tidigare.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 3 ( ) INNEHÅLL: -Jämförelseoperatorer -Villkorssatser -Logiska operatorer.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 3 ( ) INNEHÅLL: -Jämförelseoperatorer -Villkorssatser -Logiska operatorer.
Modulär programutveckling
Objektorienterad programmering i Java
Föreläsning 1 Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 2 ( ) INNEHÅLL: -Variabler och datatyper -Tilldelning av variabler -Aritmetiska.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 3 ( ) INNEHÅLL: -Tabeller -Villkorssatser -Repetitionssatser.
15 September, Lexikala element mm Eftersom C är ett språk, har det ett alfabet och regler för hur bokstäverna kan bilda ord och hur olika strukturella.
Anders Sjögren Selektion i C ”vägval” if och switch - satserna.
Ekvationer & Formler Att förenkla uttryck.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 5 ( ) INNEHÅLL: -Repetitionssatser: do-satsen och for-satsen -Operatorer:
Planering av ett större program - Funktioner, moduler, if och Boolean Linda Mannila
1 Mönstermatchning och rekursion Nr 4. 2 Förenklad notation val fnname = fn name => expression Förenklas till fun fnname name = expression Exempel fun.
Anders Sjögren Deklarationsområde och funktioner.
Föreläsning 17 Repetition. Källkodsformat Unicode används åäöμψζ tillåtna i namn på identifierare Inte alla miljöer klarar av det Källkod Bytekod Java.
Progteknik I, vt2011: Lektion 1, del a - Intro till DrJava och Java 1 Lektion 1, del a – Intro till DrJava och Java Målsättning med lektionen: Bekanta.
F2 1 Programmeringsteknik, 4p vt-00 Kommentarer Allt mellan /* och */ Varje kommentar byts ut mot en blank av kompilatorn /* Exempel på uttryck, tilldelningsoperatorn.
Kronljusströmställaren 0, 1, 2, 3
-Repetition -Variabler -Primitiva typer (+ boolean) -Operatörer +, ++, --, -Typ konvertering -Wrapper klasser -Jämförelse operatörer,(==, =,,!=, !) -String.
Mer om operatorer logiska operatorer bit-operatorer adress-operatorn ”komma”-operatorn punkt - operatorn.
-Repetition -Variabler -Primitiva typer (+ boolean) -Operatörer +, ++, --, -Typ konvertering -Wrapper klasser -Jämförelse operatörer,(==, =,,!=, !) -String.
Föreläsning 3 Operatorer Flödeskontroll Primitiva datatyperKlasser i API och egna klasser int double byte float char boolean short long String BufferedReader.
OOP&M - teori1 OOP&M – Föreläsning 5 kap 8-13 Operatorer,typkonvertering, booleska operatorer, if och else.
Anders Sjögren Mer om datatyper. Anders Sjögren const det finns ett elegantare sätt att skapa konstanter i C än sättet med makro som vi använt tidigare.
OOP&M - teori1 OOP – Föreläsning 7 (Sista oop I) Konstruktioner för att hantera upprepningar Kapitel 11.
Selektion jämförande och logiska operatorer
Föreläsning 3 Väsentliga delar i ett Javaprogram Input i paketet extra
Anders Sjögren Minnen, variabler, att lagra i primärminnet forts. Den här bilden känner ni igen sedan tidigare. Vi skall fortsätta att prata variabeltyper.
Anders Sjögren Programmering i ANSI-C Ett första program för att se vart vi ska...
Mer om operatorer logiska operatorer bit-operatorer adress-operatorn ”komma”-operatorn punkt - operatorn.
Att räkna med bokstäver
Aritmetik - tal. Delbarhet Ett tal är delbart med ett annat om kvoten blir ett heltal Alla jämna tal är delbara med 2 Alla tal var siffersumman är delbart.
Aritmetik 6
Föreläsning 3: Booleans, if, switch
Iteration – Repetitionssats - while
Prioriterings regler Matematik 1a.
Presentationens avskrift:

Anders Sjögren Operatorer

Anders Sjögren Operand(er)

Anders Sjögren Operator och operand 3 + 2

Anders Sjögren Aritmetiska operatorer i C

Anders Sjögren Aritmetiska operatorer i C +addition - subtraktion ·multiplikation /division %modulo-operatorn, resten vid positiv heltals-division -negation, unär operator

Anders Sjögren Aritmetiska operatorer i C +addition - subraktion ·multiplikation /division %modulo-operatorn, resten vid positiv heltals-division -negation, unär operator Exempel

Anders Sjögren Aritmetiska operatorer i C exempel

negation - 2

Anders Sjögren Aritmetiska operatorer i C exempel negation, addition

Anders Sjögren Aritmetiska operatorer i C exempel negation, addition, division / 2

Anders Sjögren Aritmetiska operatorer i C exempel negation, addition, division, multiplikation / 2 * 3

Anders Sjögren Aritmetiska operatorer i C exempel negation, addition, division, multiplikation, subtraktion / 2 * 3 - 1

Anders Sjögren Aritmetiska operatorer i C exempel negation, addition, division, multiplikation, subtraktion / 2 * detta är ett uttryck

Anders Sjögren Aritmetiska operatorer i C exempel negation, addition, division, multiplikation, subtraktion / 2 * detta är ett uttryck uttryck i C har ett värde av en viss typ, i detta fall 3 ( int )

Anders Sjögren Aritmetiska operatorer i C exempel negation, addition, division, multiplikation, subtraktion / 2 * detta är ett uttryck uttryck i C har ett värde av en viss typ, i detta fall 3 ( int ) #include int main( void ) { printf( "Uttrycket -2+4/2*3-1 = %d",-2+4/2*3-1 ); return 0; } OP1.EXE

Anders Sjögren Aritmetiska operatorer i C exempel negation, addition, division, multiplikation, subtraktion / 2 * operatorernas prioritet är den vanliga matematiska

Anders Sjögren Aritmetiska operatorer i C exempel negation, addition, division, multiplikation, subtraktion ( ) / 2 * operatorernas prioritet är den vanliga matematiska vill man ändra prioritetsordning så gör man det med parenteser

Anders Sjögren Aritmetiska operatorer i C exempel negation, addition, division, multiplikation, subtraktion ( ) / 2 * operatorernas prioritet är den vanliga matematiska vill man ändra prioritetsordning så gör man det med parenteser #include int main( void ) { printf( "Uttrycket (-2+4)/2*3-1 = %d",(-2+4)/2*3-1 ); return 0; } OP2.EXE

Anders Sjögren Aritmetiska operatorer i C exempel ett varningens ord om division, och som också brukar dyka upp som tentamensfråga.....

Anders Sjögren Aritmetiska operatorer i C exempel vad tror du 9/2 är?.....

Anders Sjögren Aritmetiska operatorer i C exempel vad tror du 9/2 är?.....

Anders Sjögren Aritmetiska operatorer i C exempel vad tror du 9/2 är?..... hmm, ja det är väl 4,5?

Anders Sjögren Aritmetiska operatorer i C exempel vad tror DU ?

Anders Sjögren Aritmetiska operatorer i C exempel prova ! #include int main( void ) { printf( "Uttrycket 9/2 = %f", (double)(9/2) ); return 0; } OP3.EXE

Anders Sjögren 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 int main( void ) { printf( "Uttrycket 9/2 = %f", (double)(9/2) ); return 0; }

Anders Sjögren Aritmetiska operatorer i C exempel så ja! Testa! #include int main( void ) { printf( "Uttrycket 9/2 = %f", (double)(9/2.) ); return 0; } OP4.EXE

Anders Sjögren Aritmetiska operatorer i C exempel hmm, men vad gör den där modulo-grejen? %

Anders Sjögren Aritmetiska operatorer i C exempel hmm, men vad gör den där modulo-grejen? % den ger resten vid heltalsdivision, kika på nästa sida!

Anders Sjögren 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! #include int main( void ) { printf( "Uttrycket 7%3 = %d", 7%3 ); return 0; } OP5.EXE

Anders Sjögren 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! #include int main( void ) { printf( "Uttrycket 7%3 = %d", 7%3 ); return 0; } OP5.EXE OBS! dubbla % !

Anders Sjögren Aritmetiska operatorer i C undrar hur man gör med de där?

Anders Sjögren Aritmetiska funktioner i C då räcker det inte med operatorer utan man får plocka fram det tunga artilleriet nämligen funktioner !

Anders Sjögren Aritmetiska funktioner i C 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 ); några funktioner ur math.h Exempel

Anders Sjögren Aritmetiska funktioner i C exempel #include int main( void ) { printf( "Uttrycket pow(2,16)-1 = %0.0f", pow(2,16)-1 ); return 0; } OP6.EXE

Anders Sjögren Aritmetiska funktioner i C intabs(int ); long labs(long ); några funktioner ur stdlib.h

Anders Sjögren ”Öka eller minska med ett” - operatorn

Anders Sjögren ”Ö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 int main( void ) { inti=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 att uttrycket beräknats OP7.EXE

Anders Sjögren ”Öka eller minska med ett” - operatorn På motsvarande sätt fungerar ”minska med ett”-operatorn #include int main( void ) { inti=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 att uttrycket beräknats OP8.EXE

Anders Sjögren Jämförelseoperatorer

Anders Sjögren 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

Anders Sjögren 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

Anders Sjögren Jämförelseoperatorer exempel #include int main( void ) { inti=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; } OP9.EXE eftersom du gör så här måste det betyda att jämförelseuttrycken har ett heltalsvärde!? provsmaka!

Anders Sjögren 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 Exempel

Anders Sjögren Iteration i C exempel #include #define DELAY L 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; } minns ni det här exemplet? För att få en oändlig loop kan man lika gärna skriva while ( 1 ). 1

Anders Sjögren Tilldelningsoperatorer de vanligaste

Anders Sjögren 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

Anders Sjögren 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 

Anders Sjögren Tilldelningsoperatorer de vanligaste #include int main( void ) { inti=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 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.

Anders Sjögren Villkorsoperatorn den enda operatorn med tre operander

Anders Sjögren Villkorsoperatorn den enda operatorn med tre operander minns ni det här exemplet? I detta program används villkorsoperatorn.

Anders Sjögren Villkorsoperatorn den enda operatorn med tre operander minns ni det här exemplet? I detta program används villkorsoperatorn. om detta uttryck är sant så gör detta annars det här

Anders Sjögren 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.

Anders Sjögren 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

Anders Sjögren 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

Anders Sjögren 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 Vad blir värdet av uttrycket nedan? int a=2, b=11, c=5 ; a+=30/-++c-+29%b a+=30/-c++-+29%b op11.ex e op12.ex e

Anders Sjögren Slut