Operatorer.

Slides:



Advertisements
Liknande presentationer
Talföljder formler och summor
Advertisements

Andragradsfunktioner & Andragradsekvationer
INTRODUKTION TILL PROGRAMMERING
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
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.
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.
Programmering B PHP Lektion 3
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.
Beräkna en ekvation (metod 1)
Beräkna en ekvation (metod 1)
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.
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
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.
F4 - Funktioner & parametrar 1 Programmeringsteknik, 4p vt-00 Modularisering ”svarta lådor” Väl definierade arbetsuppgifter Enklare validering Enklare.
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.
Logikprogrammering 16/ : operatorer Staffan Larsson.
Anders Sjögren Selektion i C ”vägval” if och switch - satserna.
ITK:P1 Föreläsning 2 Introduktion till objektorientering DSV Marie Olsson.
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 2 programmeringsteknik och Matlab 2D1312/ 2D1305
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.
Selektion jämförande och logiska operatorer
Anders Sjögren Operatorer. Anders Sjögren Operand(er)
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
Prioriterings regler Matematik 1a.
Presentationens avskrift:

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