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;

Slides:



Advertisements
Verwante presentaties

Advertisements

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



Instructie Programmeren Task 1 5JJ70. Task 1.1: Hello World •Klik naast de laatste accolade in de grijze kantlijn om een breakpoint neer te zetten, anders.
Inleiding programmeren in C++ Life Science & Technology 1 maart Universiteit Leiden.
Instructie Programmeren Task 8 5JJ70. PAGE 2 Task 8: Double Linked List Het doel van deze opdracht is: Het opbouwen van een tweetal klassen, die samen.
PROS2 Les 11 Programmeren en Software Engineering 2.
Hoofdstuk 4: Klassen definiëren
1 SOCS Hoofdstuk 1 Programmeertaal C. 2 Kenmerken van C Hogere programmeertaal  Grote verzameling types, strenge type controle  Zelf nieuwe types definiëren.
VHDL Peter Slaets KHLim Functies en procedures Functies –type conversie functies »bit vector to integer en omgekeerd –verkorte componenten met maar 1 output.
Les 2 Basisbouwstenen (deel 1)
Numerieke Natuurkunde
MICPRG Les 11 Microcontroller Programmeren in C. 112 Datastructuren in C Werkgeheugen (PC en microcontroller): Statische datastructuren (vaste grootte):
GESPRG Les 9 Gestructureerd programmeren in C dimensionale array Array van array’s int i = 31; int a[4] = {7, 23, 6, 2}; int m[2][4] = { {1, 1,
GESPRG Les 7 Gestructureerd programmeren in C. 92 Verwisselen Schrijf een functie waarmee twee int variabelen verwisseld kunnen worden. void wissel(int.
Opg.1a: substring } String substring(int a) { int t; for (t=a; t
Opgave 1a: afronden int n=5; double a, b, c, d; a = n * 1.5; b = n * 3 / 2; c = n / 2 * 3; d = 3 / 2 * n; a b c d
Static Keyword static voor functieleden functie niet voor een object aangeroepen class K {... static int minimum( int i, int j); } aanroep: K::minimum(
PHP functies.
Algoritmiek Object-georiënteerd Programmeren
1 Datastructuren Introductie tot de programmeeropgaven in C++ Jan van Rijn
6.1 Inleiding HOOFDSTUK 6 METHODEN
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.
Vakgroep Informatietechnologie – SoftwareOntwikkeling 1 SoftwareOntwikkeling 1 Conditionele compilatie in C met de macropreprocessor.
Deel I: Programmeertaal C 6. Arrays en Pointers
P. 1 Vakgroep Informatietechnologie Structuur Deel II C++ Classes Namespaces Type casting Reference types Constructors en Destructors Memory Management.
P. 1 Deel I: Programmeertaal C 4. Functies en Macro’s Prof.Dr.Ir. Filip De Turck.
PHP & MYSQL LES 02 PHP & FORMULIEREN. PHP & MYSQL 01 PHP BASICS 02 PHP & FORMULIEREN 03 PHP & DATABASES 04 CMS: BEST PRACTICE.
Inleiding Informatica Prof. Dr. O. De Troyer Hoofdstuk 3: Werken met numerieke gegevens.
Tircms02-p les 4 Preprocessor In- en uitvoer Diversen.
Tircms03-p les 6 Templates. Functietemplates void verwissel(int &x, int &y); { int w=x;x=y;y=w;} Dezelfde functie voor meerdere types heet een functietemplate.
Tircms03-p les 2 Hfdst 3,4 Meer operatoren Functies.
PEMSY1http:// 1  Herhaling: combineren van assembler en C  Herhaling: subroutine  Oefening: melodie Klas EV2B: week.
Tircms02-p les 2 Meer operatoren Arrays en pointers Types en conversie.
tircms02-p les 1 Operating Systems practicum
Tircms03-p les 4 Klassen. Abstracte datatypes in C struct stack { char info[100]; int top; }; void reset(stack *s) { s->top = -1; } void push(stack *s,
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
Functioneel programmeren Een snelle herhaling…. Functie-definitie static int kwad (int x) { return x*x ; } kwad x = x * x Haskell kwad :: Int  Int.
PEMSY1http:// 1  Herhaling nieuwe instructies van vorige week  nieuw: combineren van assembler en C  oefeningen: assembler.
Vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Onderwerpen voor vandaag top-down decompositie Opdrachten:
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.
Vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Onderwerpen voor vandaag Een embedded systeem: ARM bord.
Java Objectgeoriënteerd Programmeren in Java met BlueJ Hoofdstuk 7 Polymorfie en overerving © 2014, Gertjan Laan, versie 2.
 C++ heeft een inheritance mechanisme  Manier om functionaliteit te ‘erfen’ van een parrent class ◦ Polymorphisme ◦ Zoals we het ook in C# kennen.
Welkom! maandag 16 November 2015 Les B-2.
Les 3 - Operators Workshop Php Basic. ICT Academy Php Basic Content Operators Wiskundig Toewijzing Vergelijking.
Loops en errors Array's Random try catch for loop while loop do while loop.
Na de praktijk, de theorie.. Zoals een gehaktmolen 1.Je stopt er iets in. 2.Je hoeft niet te weten wat er binnenin gebeurt. 3.Het resultaat verschijnt.
De definitie van een object. Een object is een verzameling van eigenschappen en bewerkingen. Veel voorkomende objecten zijn: D (display) Gui (user interface)
Aanroep van een methode voert opdrachten uit in de body daarvan
Gameprogrammeren: Objecten en geheugen
Hoofdstuk 9.2 Strings.
Windows-applicatie using System.Windows.Forms; using System.Drawing;
Tinpro015b-les 1 C++ voor C-kenners Voor Technische Informatica.
Basis Gameprogrammeren
Tinpro015b-les5 Invoer en Uitvoer.
Gameprogrammeren: Herhalingen
Tinpro015b-les3 Hfdst 3,4 Meer operatoren Functies.
C++ • C++ als een verbetering van C • Abstracte datatypen met classes • Constructoren en destructoren • Subklassen • binding van functies 1.
Tinpro015b-les6 Templates.
Syntax van opdracht opdracht naam naam ( expressie ) ; . , expressie
Tinpro015b-les4 Klassen.
Voorbeeld: Simulatie van bewegende deeltjes
Software Development fundamentals
Gameprogrammeren: Arrays
Python – For loop + strings
Transcript van de presentatie:

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; 5. while ( n>1) { f=f*n ; n=n-1;} 6. return f; 7. }

Functies In regel 2 wordt de functie fac(k) aangeroepen k= parameter ( value) functies zijn altijd extern functies binnen functies mag niet In regel 3 wordt de functie gedefinieerd De functie waarde is integer Het argument n is integer

Functies Het voorbeeld berekent n! = 1*2*3*....*n Moderne notatie: int fac( int n) Het argument moet van het zelfde type zijn als de formele parameter.  Vb: schrijf(x) float x; { printf(“%f”, x);}  Dan moet de aanroep zijn schrijf(123,0)  En niet schrijf(123)

Externe variabelen Een automatische variabele wordt gereserveerd als de functie wordt aangeroepen Men kan ook externe variabelen declareren, die worden buiten de functie gedeclareerd Kunnen in meerdere functies worden gebruikt 1. int i; /* definitie van i */ 2. main() { f(); printf(“%d\n”, i);} 3. int f() { i=123;} De functies f en main gebruiken de variable i

Externe variabele definitie = declaratie en ruimtereservering je kunt i buiten de file declareren, dan spreekt men van externe variabele in file2 : extern int i /* declaratie */  Er wordt geen ruimte gereserveerd, alleen het type wordt nu bekend bij andere files

Statische variabelen keyword static kunnen intern en extern zijn alleen binnen functies zijn permanent i.t.t. automatische variabelen bij beëindigen van de functie blijft de waarde bestaan. bij opnieuw aanroepen wordt de waarde weer gebruikt

Statische variabelen 1. main() 2. { int i ; 3. for (i=1; i <=5 ; i++ ) printf(“%3d %3d\n”, i, f(i)); 4. } 5. int f(i) int i 6. { static int s=100; 7. return s+=i; 8. }

Statische variabelen Dit programma drukt af: De statische variabele s krijgt een vaste geheugenplek

Statische variabelen s wordt geinitialiseerd met 100 en blijft bestaan De functie f = eigenaar bij een automatische variable zou de plaats verdwijnen bij een externe statische variabele wordt er een plaats gereserveerd in de file waar het programma zich bevindt Dit is handig om systeemvariabelen te beschermen in een file

Initialiseren 1. int week = 7 *24; 2. int i =12 ; /* i = extern */ 3. main() 4. { int a=i+1, b=f(i) /* a en b zijn automatisch */ 5. printf(“%d %d\n”, a,b); 6. } 7. int f(x) int x; 8. { static int s=6; return x*x+s;} /* s = statisch*/

Initialiseren Afgedrukt wordt 13, 150 Statische en externe variabelen krijgen de beginwaarde 0 Bij automatische en register variabelen is de beginwaarde onbepaald

Initialiseren array int a[5] = {10,20,30,40,50}; /*extern */ 1. f() 2. { static float b[3] = {5,13,8}; /* statisch */ 3. char c[6] ; /* automatisch */ 4. } int a[]={ 5,6,2}; /*array grens is 3 */

Strings static char str[] = { ‘J’, ‘a’,’n’,’\0’}; /* initialiseren, dit is gelijk aan de string static char str[] = “Jan”; /* initialiseren */ toekennen aan een variable str : strcpy( str, “Jan”) str =“Jan” is fout, de functie strcpy moet gebruikt worden Opnemen #include string.h

Stringcopy functie 1. strcpy(p,q) char *p, * q; /* (q)  (p) */ 2. { while ( *p++ = *q++) ;} leesbare versie 1. strcpy(p,q) char *p, * q; 2. { int i=0; 3. while ( p[i] = q[i], p[i] =‘\0’ ) i++; 4. }

Structures Een structure is een samenhangende collectie variabelen, die van verschillend type kunnen zijn ( een record) 1. struct 2. { int nummer; 3. int aantal ; 4. char naam[10]; 5. } s,t ; /* s en t structures

Structures 1. struct artikel // type definitie 2. { int nummer; 3. int aantal ; 4. char naam[10]; 5. } 6. struct artikel s= {1234, 5, “Jan”}, 7. t = {5678, 6, “Piet”}; // declaratie

Structures De componenten van de structure zijn variabelen, notatie: s.nummer s.aantal s.naam t.nummer t.aantal t.naam s.aantal = t.aantal +100; Net als bij strings is s=t of s==t niet mogelijk

Dynamische geheugen allocatie De functie malloc(n) reserveert n geheugenplaatsen van 1 byte (8bit) declaratie char *malloc() ; afgeleverde waarde is een pointer een voorbeeld met karakters inlezen en in omgekeerde volgorde wegschrijven naar beeldscherm

Dynamische geheugen allocatie 1. main() 2. { int i,n; char *malloc(), *p; 3. n=6; 4. p =malloc(n); 5. for ( i=0; i < n ; i++) *(p+i)=getchar(); 6. for ( i=0; i < n ; i++) putchar(*(p+n-i-1)); 7. free(p); 8. }

Sizeof sizeof is een unaire operator om te bepalen hoeveel bytes een bepaald type bevat Dit is nodig om machine onafhankelijk te kunnen programmeren ( portabiliteit) vb sizeof(int) geeft als resultaat bij deze machine 4

Typedef Hiermee kunnen we een type een ander naam geven Voorbeeld: typedef double REAL declaratie: REAL x,y,z ipv double x,y,z

Typedef typedef struct { int nummer; int aantal; char naam[20]; } ART; declaratie: ART s,t;

Huiswerk les 3 Maak de opgaven uit modulewijzer Maak de opgaven 8.1 uit modulewijzer Maak de opgaven uit modulewijzer Bestudeer Hfdst 10,11,12 uit C-boek