Tircms02-p les 2 Meer operatoren Arrays en pointers Types en conversie.

Slides:



Advertisements
Verwante presentaties

Advertisements

Inleiding programmeren in C++ Life Science & Technology 26 januari Universiteit Leiden.

Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Operatoren, Arrays, Command-line tools.

Inleiding programmeren in C++ Life Science & Technology 1 maart Universiteit Leiden.
1/1/ /e/e eindhoven university of technology 5JJ20:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 2(1): Inleiding InstructieSetArchitectuur.
Gestructureerd programmeren in C
Practica Computerlinguistiek Tekst en uitleg:
PROS2 Les 11 Programmeren en Software Engineering 2.
GESPRG Les 14 Gestructureerd programmeren in C. 174 Details! The devil is in the details.
‘Inleiding programmeren in Java’ SWI cursus: ‘Inleiding programmeren in Java’ 4e college Woe 19 januari 2000 drs. F. de Vries.
Conditionele expressie

Instructie Programmeren Debuggen 5JJ70. Debuggen: Wat is het probleem Je programma compileert, maar werkt niet zoals verwacht, wat nu? Vraag je af: wat.
1 Tentamen 21 januari 2008 uitleg Algemene kennisvragen a)“Wat verstaan we onder de complexiteit van een algoritme?” –Cruciaal: wat gebeurt er met.
Hoofdstuk 6: Controle structuren
1 SOCS Hoofdstuk 1 Programmeertaal C. 2 Kenmerken van C Hogere programmeertaal  Grote verzameling types, strenge type controle  Zelf nieuwe types definiëren.
1Ben Bruidegom Hoe werkt een rekenmachine? Ben Bruidegom AMSTEL Instituut Universiteit van Amsterdam.
Numerieke Natuurkunde
Flow controle Keuzes maken. Het if-statement Soms moet code alleen in bepaalde situaties uit gevoerd worden Hiervoor heeft C de if-else constructie: if(voorwaarde1){
MICPRG Les 11 Microcontroller Programmeren in C. 112 Datastructuren in C Werkgeheugen (PC en microcontroller): Statische datastructuren (vaste grootte):
GESPRG Les 8 Gestructureerd programmeren in C. 101 Array Meerdere variabelen van hetzelfde type kun je samennemen in één array variabele. Stel in een.
GESPRG Les 7 Gestructureerd programmeren in C. 92 Verwisselen Schrijf een functie waarmee twee int variabelen verwisseld kunnen worden. void wissel(int.
SWI cursus: ‘Inleiding programmeren in Java’
1 Datastructuren Heapsort (2e deel) College 5. 2 Vandaag  Heaps en Heapsort  (eind)  Nog sneller sorteren:  Ondergrenzen  Linair sorteren.
CONTROLESTRUCTUREN (DEEL 1)
Consoletoepassing Variabelen Klassen
Algoritmiek Object-georiënteerd Programmeren
Algoritmiek Dataweergave en bewerking Hoorcollege 2 - Ma. 11 sept L.M. Bosveld-de Smet.
P. 1 Vakgroep Informatietechnologie Scanf voorbeeld #include int main(void) { int i=-1,j=-1,k=-1,l=-1; int b; b=scanf("%d %d %d %d",&i,&j,&k,&l); printf("res=%d.
Deel I: Programmeertaal C 6. Arrays en Pointers
KPRES1 : C vervolg Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology Les 2 sheet 1 Wat gaan we doen:  Een (vaste) melodie.
DU2PRES1 : C vervolg Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Beginselen van C opgaves… volgende week: ARM.
LauwersCollege Buitenpost Java Applet programma dat op een website zichtbaar is Java Application programma dat zelfstandig werkt Javascript Scripttaal.
Inleiding Informatica Prof. Dr. O. De Troyer Hoofdstuk 3: Werken met numerieke gegevens.
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 C programmeren voor niet-C programmeurs les 2 definitie.
Tircms02-p les 4 Preprocessor In- en uitvoer Diversen.
Mail: (of Sheets en verdere info: Onderwerp: vervolg C
Tircms03-p les 7 Standaardfuncties. In header opnemen bijv: using namespace std // C++ // oude C.
Variabelen Part deux.. Variabelen week 3 0. Herhaling 1. De NullPointerException (p101) 2. Primitieven 3. Scope en levensduur van variabelen 4. Meerdere.
DU2PRES1 : C vervolg Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Arrays en pointers lichtkrant op het ARM bordje.
Variabelen en berekeningen
Tircms03-p les 2 Hfdst 3,4 Meer operatoren Functies.
Tircms02-p les 3 Functies Strings Structuren. Functies 1. main() 2. { int k; k = 10 ; printf(“%d\n”,fac(k)); } 3. int fac(n) int n; 4. { int f; f= 1;
tircms02-p les 1 Operating Systems practicum
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 C programmeren voor niet-C programmeurs les 3 redirection,
JAVA: een platformonafhankelijke taal
AWK A Pattern scanning and processing language made by Aho Weinberger Kernighan and explained by Albert Montijn.
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1  Een (vaste) melodie spelen op de PC speaker 
Tircms03-p les 1 C++ voor C-kenners Voor Technische Informatica.
Hoofdstuk 3 Tekenen en rekenen.
Aangepaste timing nTheorie (16 colleges + 2 deeltentamens) nPraktijk (16 keer, 3 inleveropdrachten) college Tent. 1 Tent. 3 college prakt. 1 prakt. 3 prakt.
Welkom! maandag 16 November 2015 Les B-2.
Loops en errors Array's Random try catch for loop while loop do while loop.
Aanroep van een methode voert opdrachten uit in de body daarvan
Gameprogrammeren: Keuzeopdrachten
Hoofdstuk 9.2 Strings.
Gameprogrammeren: Expressies
Tinpro015b-les 1 C++ voor C-kenners Voor Technische Informatica.
Basis Gameprogrammeren
Gameprogrammeren: Afsluiting
Tinpro015b-les5 Invoer en Uitvoer.
Tinpro015b-les3 Hfdst 3,4 Meer operatoren Functies.
Tinpro015b-les6 Templates.
Voorbeeld: Simulatie van bewegende deeltjes
Aanroep van een methode voert opdrachten uit in de body daarvan
C-Programmeren Voor BPE Avionica 20 november 2018.
Binaire getallen 1. binair → decimaal 2. decimaal → binair.
Gameprogrammeren: Arrays
Transcript van de presentatie:

tircms02-p les 2 Meer operatoren Arrays en pointers Types en conversie

Meer operatoren s= s+i; is identiek aan s+=i; i=i+1; is identiek aan i++; (increment) j=j-1; is identiek aan i--; (decrement) eerst i gebruiken,daarna verhogen i=i+1; is identiek aan ++i; (increment) j=j-1; is identiek aan --i; (decrement) eerst i verhogen daarna i gebruiken

Meer Operatoren i=5 ; k=(j=3)+(++i) geeft i=6;j=3;k=9; i=5 ; k=(j=3)+(i++) geeft i=6;j=3;k=8; ++ en -- hebben hoogste prioriteit k=i---j is k=(i--)-j de - is een unaire operator ( de + niet) x=-5; is correct x=+5; is fout

Meer operatoren assignment operatoren: += -= *= /= x = x*3; is identiek aan x*=3; hebben de laagste priotiteit i-=j + k; is identiek aan i-=(j+k); is identiek aan i= i - (j+k);

Bit manipulatie & logische en bitsgewijs | logische of bitsgewijs ^ exclusief of bitsgewijs << schuiven naar links >> schuiven naar rechts ~1-complement (unaire operator

Bitmanipulatie 23 & 26 logisch and binair: = 23 ( 8bit) = 26 ( 8 bit) & = 18 ( 8bit)

Conditionele expressies 1. If ( a< b) z=a+1 ; else z= b-1; Korter: 4. z = a< b ? a+1 : b-1

Komma operator S=0; while ( scanf(“%d”, &n), n> 0 ) s+=n; 3 acties: 1. lezen getal (scanf) 2. de test n>0 in het midden 3. het verhogen van s met n De expressie evalueren van links naar rechts, de laatste bepaalt de waarde

Associativiteit a - b - c = (a -b) -c de binaire operator - associeert van links naar rechts alle andere associeren van rechts naar links a < b ? p : c < d ? q : r is gelijk aan: a < b ? p : ( c< d ? q : r )

Overzicht operatoren

Array Int a[100] declaratie van een array van 100 elementen a[0], a[1] … a[99] De lengte(100) ligt nu vast in het geheugen en is niet te wijzigen tijdens run-time Evt constante declaratie mogelijk met : #define N 100 int a[N]

Pointers Scanf(“%d %d” &a, &b ) Hierin zijn &a en &b pointers. De waarde van &a en &b zijn adressen Een andere unaire operator is *, het tegengestelde van & Als p een pointer is naar de variable v geldt: p = &v p is het adres van v v = *p *p is de inhoud van adres v (is v)

Pointers adresinhoud 2000 …… = p ( &v = adres van v) ……… = v ( *p = inhoud van adres v) 3000 is pointer p 2000 en 3000 zijn willekeurige adressen 123 is de waarde van v

Pointer Declaratie: int *p, v v=123 ; p = &v; *p = het object waar p naar wijst is een integer. De waarde van *p is nu 123 *p = 987 ; printf( “ %d”, v) Nu wordt 987 afgedrukt

Pointer en Array int a[100] *a is a[0] *(a+1) is a[1] *(a+99) is a[99] of a+i = &a[i]

Pointers en parameters 1. main() 2. { int v ; f(&v); 3. printf(“%d\n”, v); 4. } 5. f(p) int *p ; 6. { *p =123;) } C kent alleen value parameters, maar met pointers kunnen we ook adressen overdragen ( call by reference)

Pointers for (i=0 ; i < 10 ; i++ ) printf(“%d”, a[i]); is gelijk aan for (i=0 ; i < 10 ; i++ ) printf(“%d”, *(a+i)); Men kan een integer van een adres aftrekken Bijv: &a[9] – 3 ( = &a[6] = a+6 ) Ook &a[9] - &a[6] levert 3 op. Andere rekenkundige bewerkingen zijn niet toegestaan.

Types C kent de volgende elementaire types char, int, long int (long), short int ( short) unsigned int (unsigned), float,double lengte (short) < lengte (int) < lengte (long) float en double zijn floating point getallen

Typeconversie int i ; float f ; char ch ; long l; double d; f+i  i wordt naar float geconverteerd ch + i is mogelijk, ‘A’ + 2 = = 67 = ‘C’ 65 is de ASCII waarde van ‘A’ f = ‘A’ = = (char  float) f= 5.9 ; i=f  i= 5 ( afgekapt) l=45 ; i= l geeft een fout resultaat

Cast- operator Naast impliciete conversie kennen we expliciete conversie ( Cast operator) int i ; i=12 ; printf(“%5.3f/n”, float(i)); levert: ( totaal 5 karakters, 3 achter de komma) (float) heet een cast operator

Huiswerk les 2 Maak de opgaven uit modulewijzer Maak de opgaven uit modulewijzer Maak de opgaven uit modulewijzer Bestudeer Hfdst 7,8,9 uit C-boek