tircms02-p les 1 Operating Systems practicum Voor Technische Informatica
Wat heb ik nodig USB harddisk Linux installatie (les 5) C Compiler onder windows Toegang tot internet. http://med.hro.nl/padta/lessen/cms02
Overzicht Practicum Les1 Inleiding C , expressies,statements Les2 Operatoren, arrays. pointers, types Les3 Functies, programmastructuur, structures Les4 Preprocessor, I/O , argumenten Les5 Installeren linux Les6 System calls (time), Les7 System calls (cdrom),
Inleiding C lijkt op java (80%) is niet object georienteerd procedurele taal dicht bij de machine Kent pointers C++ is object georienteerd
Compileren en linken Een C programma is meestal opgebouwd uit meerdere source (.c) bestanden. Source files met een compiler tot object (machine code) bestanden gecompileerd worden. Alle object files plus de gebruikte code uit externe bibliotheken tot een executable gelinkt
Compileer en Link proces #include <stdio.h> int main() { printf (” hello world\n”); return 0; } Compiler machinecode hello.o source code hello.c Linker code printf libc programma hello.exe
Inleiding C Voorbeeldprogramma main() { int a, b; printf(“Geef twee gehele getallen: “); scanf(“%d”,&a); scanf(“%d”,&b); printf(“Som:%d\n”,a+b); }
Inleiding C Standaard functies printf, scanf %d = format specifier &a, &b zijn adressen waar de getallen staan Bij printf a+b is het de waarde &a,&b zijn pointers
Identifiers (namen) Letters of cijfers : ab1234 Gereserveerde woorden: auto, break, enz Constanten: Integer: 123 , O777 (octaal) , 0XFF3A (hexadecimaal) , 123L (decimaal) Karakter: ‘x’ , ‘\n’ (newline) ,’\r’ ( carriage return) Floating: 123.45 , 36e-3 , 3.e+4 Strings: “Hoeveel getallen”
Commentaar /* Dit is commentaar */ Dit wordt door de compiler genegeerd maar wel in de tekst weergegeven
Expressies ( Optellen,..) X =a-(b-c*d) +e Prioriteit van */( is hoger dan van +- Integer delingen 17/3 = 5 de rest is 2 17%3 = 2 hiermee wordt de rest bepaald
Declareren Main() { int i,j,k; float x,temp; char ch; i=38; j=35 ; k=i%j+1; x=37.7; ch=‘?’; temp=i; /*conversie van int naar float*/ j=x; /* j wordt 37 */ }
Relationele en logische operatoren < kleiner dan , > groter dan == gelijk aan , != ongelijk aan && logisch en , || logisch of ! Logisch niet true = 1 ; false = 0 ; 2*2 == 3 +1 geeft 1 37 < 5 geeft 0
Conditionele statements if (expressie) statement1 else statement2 If ( x<0) y=-x ; else y=x; /* absolute waarde */ Compound statement If ( x==y) { p=q+1; r = q-1;}
Stroomschema if then else true false cond statement1 statement2
Herhalingsstatement While (expressie) statement While ( b != 0) { p=p+a; b= b-1;} Zodra b =0 wordt de loop onderbroken For (expr1; expr2 ; expr3) statement For ( i=1; i<=n; i=i+1 ) s=s+1 ; Als n =10 wordt de for loop 10 keer doorlopen
Stroomschema while loop ( for loop) initialisatie true conditie statement increment false
Herhalingsstatement Do statement while (expression) S=0; Do { scanf(“%d”, &x ) ; s=s+x; } while ( x !=0) ; Na afloop is s gelijk aan de som van de ingelezen getallen ,als x <0 wordt gestopt
Stroomschema do loop initialisatie statement increment true conditie false true
Switch , break statement switch ( letter) { case ‘A’: printf (“ Amsterdam\n”); break; case ‘R’: printf (“ Rotterdam\n”); break; case ‘H’: printf (“ Hilversum\n”); break; default : printf(“ elders\n”); break ; }
Stroomschema Case statement Hilversum Letter R false true Letter H Letter A Rotterdam Elders Amsterdam
Continue statement Som= 0; Do { scanf(“%d” , &x); if ( x< 0) continue; Som=som+x } while ( x !=0) ; Er wordt direct na de test uit de loop gegaan
Getchar , Putchar Char ch; Ch=getchar(); Leest 1 karakter ipv een string als bij scanf Putchar(ch) schrijft 1 karakter naar scherm Nodig is de headerfile #include <stdio.h> Dit wordt vooraan in het programma opgenomen
Installeren C-compiler Maak in de les het voorbeeldprogramma om 2 getallen op te tellen en uit te printen Installeer de C-compiler onder windows: http://med.hro.nl/padta/lessen/cms02/ De compiler heet: devcpp4990setup.exe Na installatie het programma intypen , compileren en uitvoeren Bij juiste uitvoering wordt de opdracht afgetekend voor les 1
Huiswerk les 1 Maak de opgaven 1.1-1.2 uit modulewijzer Bestudeer Hfdst 4,5,6 uit C-boek