Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 4 ( ) INNEHÅLL: -Logiska opertorer -Poster
Jonny Karlsson Logiska operatorer Det finns tre logiska opertorer i C: &&och ||eller !icke Logiska opetorer kan bl.a. utnyttjas i villkors- och repetitionssatser för att kunna ställa flera olika ”krav” (logiska uttryck): if(i 20) { //if-satsen blir ”true” om variabeln i är mindre än 1 eller större än 20 }
Jonny Karlsson Logiska operatorer while(i != 0) { //upprepar så länge som i inte är 0 }do{ scanf(”%d”, &tal1); scanf(”%d”, &tal2 //ber användaren mata in tal1 och tal2 från tangentbordet så länge som båda är //mindre än 0 } while(tal1 > 0 && tal2 > 0);
Jonny Karlsson Deklaration av poster Poster används för slå ihop ett antal värden av OLIKA typ till en enhet. (Jämör med tabeller, där man slår ihop flera värden av SAMMA typ). Exempel på deklaration av en post: struct bok { char titel[50]; char forfattare[50]; float pris; }; Det vad man egentligen gjort ovan är att man definierat en ny data typ ”struct bok”
Jonny Karlsson Deklaration av poster En post deklareras alltid i början av c-programmet utanför huvudfunktionen main. För att kunna hantera posten måste man sedan i main funktionen (eller någon annan funktion) deklarera en datatyp av typen den post man deklarerat via vilken man sedan kommer åt postens olika komponenter: struct bok { char titel[50]; char forfattare[50]; float pris; };main(){ struct bok bokpost;...}
Jonny Karlsson Hantering av poster I exemplet på förgående sida hade vi deklarerat en post struct bok och i huvudprogrammet deklarerat en variabel med namnet bokpost av typen struct bok. Postens komponenter är nu åtkomliga via variabeln bokpost och m.h.a. punktnotation: bokpost.pris = 44.99; scanf(”%s”, bokpost.titel);
Jonny Karlsson Tabeller av poster Ofta behövs i C-program flera olika poster av samma typ. I detta fall kan man deklarera en ”post”-variablen på samma sätt som en tabell: struct veckodag { char dagnamn[10]; float temperatur[50]; };main(){ struct veckodag dag[7];...} I exemplet ovan har i huvudprogrammet deklarerats en variabel, dag, av typen struct veckodag som är en tabell bestående av 7 element.
Jonny Karlsson Tabeller av poster Komponenterna i en post-tabell är åtkomliga med indexering på samma sätt som vanliga tabeller. Exempel, inläsning av temperaturer för veckans alla dagar:main(){ struct veckodag dag[7]; int i; for(i = 0; i < 7; i++) { scanf(”%s”, dag[i].dagnamn); scanf(”%f”, &dag[i].temperatur); }} Se exempelkoder på kursens hemsida: