F2 1 Programmeringsteknik, 4p vt-00 Kommentarer Allt mellan /* och */ Varje kommentar byts ut mot en blank av kompilatorn /* Exempel på uttryck, tilldelningsoperatorn och kommentarer*/ #include int main(void) { int x,y; x = 7; /* x får värdet 7 */ y = 3; /* y får värdet 3 */ x = 2*y; /* x får värdet 6 */ y = 5; /* y får värdet 5, x påverkas ej */... }
F2 2 Programmeringsteknik, 4p vt-00 Identifierare Får innehålla siffror, bokstäver (A..Z, a..z) och _ Måste inledas med bokstav (A..Z, a..z) eller _ Antalet särskiljande tecken varierar, i ANSI-C minst de 31 första Identifierare som inleds med _ används i stort sett uteslutande för systemprogramändamål Nyckelorden reserverade identifierare som ej kan omdefinieras.
F2 3 Programmeringsteknik, 4p vt-00 Strängkonstanter Omges av dubbelsnuttar ”hejsan” ’a’ ≠ ”a”
F2 4 Programmeringsteknik, 4p vt-00 Operatorer & skiljetecken Aritmetiska operatorer (% resten vid heltalsdivision) % kontextberoende int a=0;b=7; printf(”a=%i och b=%i”,a,b); a = b%3; Operatorer, skiljetecken och blanktecken separerar element i språket
F2 5 Programmeringsteknik, 4p vt-00 Prioritetsordning I vilken ordning ett uttryck evalueras Parenteser bryter denna ordning Associativiteten avgör ordningen vid lika prioritet
F2 6 Programmeringsteknik, 4p vt & -- Unära operatorer för att öka resp. minska med ett Både post- och prefix (ex. sid 85) Bör användas mycket försiktigt!
F2 7 Programmeringsteknik, 4p vt-00 Tilldelningsoperatorn Lägst prioritet Associerar höger-vänster Variabel på vänster sida Uttryck på höger sida (Obs! typerna)
F2 8 Programmeringsteknik, 4p vt-00 #include alla rader som inleds med # är direktiv till preprocessorn include fungerar som ”klistra in”/paste i ett ordbehandlingsprogram Primära syftet är att tillhandahålla funktionsprototyper i t.ex. stdio.h finns bl.a. följande prototyper : extern int printf (const char *format,...); extern int scanf (const char *format,...); Koden för dessa funktioner är redan kompilerad och läggs till i ett senare skede
F2 9 Programmeringsteknik, 4p vt-00 Datatyper Värdemängd [-128,…,127] (konstanter) Operationer [+,- *,/,%….] Relationer [,<=,….] Egenskaper [udda,jämna]
F2 10 Programmeringsteknik, 4p vt-00 Datatyper Minnet uppbyggt av bytes (8 informationsbitar) Varje byte finns i en minnesadress I en byte lagras ett bitmönster Hur skall ett bitmönster tolkas? Positivt binärt tal (0..255) Binärt tal med tecken ( )
F2 11 Programmeringsteknik, 4p vt-00 Datatyper i C
F2 12 Programmeringsteknik, 4p vt-00 forts. datatyper
F2 13 Programmeringsteknik, 4p vt-00 Mer än en byte unsigned måste anges, men signed är automatisk Flyttal –float –double –long double Tecken –Char
F2 14 Programmeringsteknik, 4p vt-00 Tecken & typen char Alla uppräkningsbara typer (integral type) är heltal Alla sådana kan anv. för att representera tecken ’4’, ’.’, ’ä’… En variabel av typen char kan lagra ett litet heltal (1 byte - men längden odef. I C) Oftast 8 bitar ->256 distinkta värden ASCII - numrering av teckenuppsättningen (app. D s.703)
F2 15 Programmeringsteknik, 4p vt & typen char Variabler av typen char, kan delta i aritmetiska ber. char c; c = ’5’; printf(”%i %i %i”,c,c+1,c+2); I utskrifter kan man välja format, och få antingen ASCII- värdet eller tecknet
F2 16 Programmeringsteknik, 4p vt-00 exempel /* * testar fenomenet med tecken som heltal */ #include int main(void) { unsigned char c = 'z'; /* med unsigned fungerar det!! */ printf(”I ASCII-tabellen ? z -> %c %c %c \n\n",c+1,c+2,c+3); c = ’å’; printf("ord('å')=%u ",c); c = ’ä’; printf("ord(’ä')=%u ",c); c = ’ö’; printf("ord(’ö')=%u ",c); return 0; } På min Mac!
F2 17 Programmeringsteknik, 4p vt-00 Heltal & flyttal int är den ”normala” heltalstypen (char, short, long, unsigned) Suffix används för att ange heltalstypen för en konstant (u,l,ul) Flyttalstyperna: float, double, long double (double default för konstanter)
F2 18 Programmeringsteknik, 4p vt-00 Representation av flyttal Normaliserat Signifikanta siffror Exponentdel
F2 19 Programmeringsteknik, 4p vt-00 Operatorn sizeof För att ta reda på hur många bytes som reserverats för ett objekt –typer –variabler –uttryck Garanterat att char ≤ short ≤ int ≤ long float ≤ double ≤ long double
F2 20 Programmeringsteknik, 4p vt-00 getchar & putchar Används för att läsa resp. skriva ett tecken i taget EOF definieras i stdio se ex. s.124
F2 21 Programmeringsteknik, 4p vt-00 Matematiska funktioner Finns i bibliotek Inkluderas med #include math.h Argumentet & resultatet av typen double int abs(int) (i stdlib.h) double fabs(double) (i math.h)
F2 22 Programmeringsteknik, 4p vt-00 Typkonvertering Flera slag av implicit konv. i uttryck cast - explicit konvertering (typ) Obs! cast operatorn är unär och har samma prioritet som övriga unära op.