INTRODUKTION TILL PROGRAMMERING Frelsning 2 14 11 2005

  • Slides: 16
Download presentation
INTRODUKTION TILL PROGRAMMERING Föreläsning 2 (14. 11. 2005) INNEHÅLL: -Variabler och datatyper -Tilldelning av

INTRODUKTION TILL PROGRAMMERING Föreläsning 2 (14. 11. 2005) INNEHÅLL: -Variabler och datatyper -Tilldelning av variabler -Aritmetiska uttryck -Matematiska standardfunktioner -Utmatning av variabelvärden -Inmatning av data från tangentbordet Jonny Karlsson 14. 10. 2005

Variabler Vad är en variabel? Ett utrymme i datorns arbetsminne som används av ett

Variabler Vad är en variabel? Ett utrymme i datorns arbetsminne som används av ett program under programmets exekvering. Det data som lagras i en variabel kallas för variabelns värde Varje variabel som används i C har ett unikt namn. Jonny Karlsson 14. 10. 2005

Datatyper Varje variabel i C skall vara av en viss datatyp. Nedan en lista

Datatyper Varje variabel i C skall vara av en viss datatyp. Nedan en lista på vanliga datatyper i C: Datatyp Beskrivnig Utrymme i minnet Värden int heltal/integer 4 byte -231 till 231 -1 float decimaltal/flyttal 4 byte -231 till 231 -1 double decimaltal/flyttal 8 byte -263 till 263 -1 long double decimaltal/flyttal 12 byte -295 till 295 -1 1 byte ett ASCII tecken char tecken Jonny Karlsson 14. 10. 2005

Variabeldeklarationer För att kunna använda variabler i C-koden måste man först reservera en plats

Variabeldeklarationer För att kunna använda variabler i C-koden måste man först reservera en plats i minnet för variabeln och ge den ett unikt namn. Detta kallas för en variabeldeklaration. Exempel: Deklarera ett heltal och ge detta namnet ”mitt. Tal”: int mitt. Tal; /* Detta reserverar en plats i minnet (4 byte) för variabeln ”mitt. Tal” */ /* som är av typen integer/heltal */ Variabeldeklarationer placeras i början av huvudfunktionen (main) före utförandet av övriga operationer. Jonny Karlsson 14. 10. 2005

Variabeldeklarationer. . . main() { int heltal; /* deklarerar ett heltal */ float flyttal;

Variabeldeklarationer. . . main() { int heltal; /* deklarerar ett heltal */ float flyttal; /* deklarerar ett flyttal/decimaltal */ char tecken; /* deklarerar ett tecken */. . . . } Jonny Karlsson 14. 10. 2005

Tilldelningssatser I en tilldelningssats ger man ett värde åt en variabel. En tilldelningssats på

Tilldelningssatser I en tilldelningssats ger man ett värde åt en variabel. En tilldelningssats på en variabel kan utföras först efter att variabeln är deklarerad, ex: float flyttal; flyttal = 5. 5; /* deklarerar en flyttalsvariabel */ /* tilldelar flyttalsvariabeln ”flyttal” värdet 5. 5 */ OBS! i C använder man ”. ” för kommatecken, inte ”, ”. En tilldelning kan även utföras i samband med variabeldeklarationen. Detta kallas för att initialisera en variabel, ex: int heltal = 5. 5; /* deklarerar en flyttalsvariabel och initialiserar den till */ /* 0 /* Jonny Karlsson 14. 10. 2005

Aritmetiska uttryck Med aritmetiska uttryck menas uttryck som har operander av aritmetisk typ och

Aritmetiska uttryck Med aritmetiska uttryck menas uttryck som har operander av aritmetisk typ och som ger ett resultat av aritmetisk typ. Exempel på operander är: + * / addition subtraktion mutiplikation division Exempel på aritmetiska uttryck: int heltal. A = 2; int heltal. B = 3; /* deklarerar ett heltal som initialiseras till 2 */ /* deklarerar ett heltal som initialiseras till 4 */ heltal. A + heltal. B /* utför ett aritmetiskt uttryck/aritmetisk operation */ /* som beräknar summan av värdena i heltal. A och heltal. B */ Jonny Karlsson 14. 10. 2005

Aritmetiska uttryck Operatorprioriteten är lika som i matematiken, dvs. * / % har högre

Aritmetiska uttryck Operatorprioriteten är lika som i matematiken, dvs. * / % har högre prioritet än + Detta betyder att om man vill utföra t. ex. addition före multiplikation måste man använda parenteser. Exempel: (heltal. A + heltal. B) * (heltal. A – heltal. B) /* beräknar summan av heltal. A och */ /* heltal. B multiplicerat med */ /* subtratktionen av heltal. A */ /* och heltal. B */ Resultatet av ett aritmetiskt uttryck kan användas för att tilldela en operator. Exempel: int tal = heltal. A – heltal. B; Jonny Karlsson 14. 10. 2005

Sammansatta tilldelningsoperationer Exempel: int tal = 0; tal = tal + 5; /* deklarerar

Sammansatta tilldelningsoperationer Exempel: int tal = 0; tal = tal + 5; /* deklarerar ett heltal som initialiseras till 0 */ /* ökar värdet i variabeln tal med 5 */ Ovanstående exempel kan också skrivas om på följande sätt: int tal = 0; tal += 5; Jonny Karlsson 14. 10. 2005

Matematiska standardfunktioner kan användas i aritmetiska uttryck för att utföra matematiska beräkningar. Inkluderingsfilen math.

Matematiska standardfunktioner kan användas i aritmetiska uttryck för att utföra matematiska beräkningar. Inkluderingsfilen math. h innehåller bl. a. följande matematiska standardfunktioner: sin(x) cos(x) tan(x) sqrt(x) pow(x, y) Beräknar sinusvärdet av variabeln x som är ett flyttal angett i radianer Beräknar cosinusvärdet av variabeln x som är ett flyttal angett i radianer Beräknar tangenten av variableln x som. . . Beräknar kvadratroten av variabeln x Beräknar variabeln x upphöjt i variabeln y För mera information om funktionerna i math. h se t. ex: http: //www. cs. cf. ac. uk/Dave/C/node 17. html Jonny Karlsson 14. 10. 2005

Matematiska standardfunktioner Exempel på användning av matematiska standardfunktioner: #include <stdio. h> #include <math. h>

Matematiska standardfunktioner Exempel på användning av matematiska standardfunktioner: #include <stdio. h> #include <math. h> main() { int heltal. A = 4; int heltal. B = 2; double resultat = 0; resultat = pow(heltal. A, heltal. B); /* beräknar heltal. A upphöjt i heltal. B och */ /* resultat tilldelas variabeln resultat */ } Jonny Karlsson 14. 10. 2005

Utmatning av variabelvärden Datavärden som finns lagrade i olika variabler kan skrivas ut på

Utmatning av variabelvärden Datavärden som finns lagrade i olika variabler kan skrivas ut på bildskärmen bl. a. med funktionen printf-funktionen kan användas i två olika former: printf(”teckensträng”) skriver ut den teckensträng som finns mellan ”” på bildskärmen eller printf(”formatsträng”, uttryck 1, uttryck 2, . . . , uttryck. N); där formatsträng = Vilka/vilken datatyper/datatyp som kommer att visas på skärmen och i vilken ordning Utrryck Den variabel vars värde skall visas på skärmen. Uttrycken sätts i samma ordning som formatsträngen. = Jonny Karlsson 14. 10. 2005

Utmatning av variabelvärden I formatsträngen kan man bl. a. använda följande betäckningar för att

Utmatning av variabelvärden I formatsträngen kan man bl. a. använda följande betäckningar för att ange vilken datatyp som skall skrivas ut på bildskärmen: %d %f heltal (int) flyttal (float) Exempel: int heltal = 3; float flyttal = 5. 56; printf(”Heltalet är: %d och flyttalet är: %f”, heltal, flyttal); Kodexemplet ovan skulle resultera i följande skärmutskrift: Heltalet är: 3 och flyttalet är: 5. 56 Jonny Karlsson 14. 10. 2005

Inmatning av data Funktionen scanf kan användas föra att läsa in data som skrivs

Inmatning av data Funktionen scanf kan användas föra att läsa in data som skrivs från tangentbordet och spara det inlästa datat i en variabel. Denna funktion finns, liksom printf, i inkluderingsfilen stdio. h. Funktionen scanf används enligt följande: scanf(”formatsträng”, &variabel 1, &variabel 2, . . &variabel. N); formatsträng = Vilka/vilken datatyper/datatyp som skall läsas in från tangentbordet och i vilken ordning variabel = Den variabeln dit man vill spara det data som lästs in från tangentbordet. Vid inläsning av flera datavärden med samma scanfsats anges variablerna i den ordning man vill läsa in dem från tangentbordet och i samma ordning som de angetts i formatsträngen. OBS! vid inläsning av tal bör tecknet ’&’ alltid sättas framför variabelnamnet i scanfsatsen. Tecknet ’&’ betyder här att man läser in till minnesadressen för angiven variabel. Jonny Karlsson 14. 10. 2005

Inmatning av data Exempel: int heltal; float flyttal; scanf(”%d”, &heltal); /*läser in ett heltal

Inmatning av data Exempel: int heltal; float flyttal; scanf(”%d”, &heltal); /*läser in ett heltal från tangentbordet och*/ /*sparar detta heltalsvärde i heltalsvariabeln tal*/ scanf(”%f”, &flyttal); /*läser in ett flyttal från tangentbordet och */ /*sparar detta flyttalsvärde i variabeln flyttal*/ Exemplet ovan kan skrivas om på följande sätt: int tal; float flyttal; scanf(”%d %f”, &heltal, &flyttal); /*läser frånt tangentbordet först ett heltal, sedan ett flyttal och dessa värden */ /* lagras i variabeln tal och i variabeln flyttal*/ Jonny Karlsson 14. 10. 2005

Inmatning av data scanf-satsen läser in data från tangentbordet ända tills man trycker på

Inmatning av data scanf-satsen läser in data från tangentbordet ända tills man trycker på ”enter” tangenten eller ”space” tangenten. Exempel: Om man kör ett program som innehåller följande kodrad: scanf(”%d %f”, &heltal, &flyttal); och trycker på följande tangeter på tangentbordet: 4 4 5 <space> 4. 5 <enter> tilldelas variabeln ’heltal’ heltalet 445 och varabeln ’flyttal’ flyttalet 4. 5 Jonny Karlsson 14. 10. 2005