C-taal voor beginners - inleiding

voor we beginnen


[i1 inleiding] [i2 wat hebt u nodig?] [i3 wat is de ANSI-C standaard?] [i4 deze gids is ANSI-gericht] [i5 extra] [i6 niet mijn schuld!] [i7 hoe kan u mij contacteren?] [i8 algemeen] [i9 versie info] [i10 hoe gaat u het best te werk?] [i11 inhoudstafel]


i1 inleiding

De programmeertaal C werd oorspronkelijk ontwikkeld door Dennis Ritchie van Bell Laboratories en was ontworpen om op een PDP-11 te lopen met een UNIX besturingssysteem. Alhoewel het in den beginne enkel bedoeld was om onder UNIX te programmeren, kwam er al vlug interesse in een MS-DOS versie voor de IBM-compatibele PC. Het is een uitstekende taal voor die omgeving vanwege de simpele structuur, wat betreft uitdrukkingen en de compactheid van de code. Door de eenvoudigheid van het schrijven van een C compiler, is C gewoonlijk de eerste hoge programmeertaal die op een nieuwe computer te vinden is.

i2 wat hebt u nodig?

Om in C te programmeren heeft u natuurlijk een compiler nodig. Tegenwoordig kan u er van uitgaan dat de compilers zeer degelijk zijn en goed functioneren. Oudere versies kunnen echter nogal omslachtig te werk gaan. Er zijn ontelbare fabricanten van de C-programmatuur en de keuze is dan ook geheel aan u. Ik gebruik Borland C/C++ 5.0, een ruim verspreide, maar niet meteen de goedkoopste versie. Er zijn enkele zeer degelijke C/C++ compilers voor Windows en Dos, gratis beschikbaar op het net. De alom bekende DJGPP (gcc) compiler kan u op http://www.delorie.com downloaden. Neem ook eens een kijkje op http://egcs.cygnus.com en nieuwsgroep comp.compilers.

i3 wat is de ANSI-C standaard?

Toen het duidelijk werd dat C een zeer populaire taal aan het worden was, beschikbaar op verschillende systemen, kwam een groep mensen bijeen om een standaard set van regels af te spreken voor het gebruik van de C-taal. De groep vertegenwoordigde alle sectors van de software industrie en na vele ontmoetingen kwamen ze eindelijk tot een gezamenlijk akkoord. Deze werd aanvaard door het American National Standards Institute (ANSI) en de International Standards Organization (ISO). De standaard wordt niet opgedrongen, maar ze worden wel wereldwijd aanvaard.

i4 deze gids is ANSI-gericht

Deze C gids werd geschreven om zo veel mogelijk compatibel te zijn met de ANSI-standaard. De voorbeelden die in de hoofdstukken voorkomen zijn zo opgesteld om gemakkelijk gekopiëerd te kunnen worden. Selecteer met de muis het voorbeeld, druk op CTRL+C, open uw compiler en een leeg blad en druk op CTRL+V om het programma te plakken. Dan kunt u het zelf compileren en uittesten.

De layout van de gids werd geoptimaliseerd voor Microsoft Internet Explorer 4.00 en hoger. Netscape geeft de pagina's niet zo verzorgd weer, wat betreft titels en dergelijke, maar is niettemin geschikt. De cursus is, op A4 formaat afgedrukt en inclusief oefeningen, zo'n 120-130 pagina's lang.

Alhoewel deze cursus op zichzelf staat, raad ik u aan om de FAQ te downloaden. Iedereen die een serieuze kennis wil opdoen over de C-taal heeft een versie van het betreffende document: http://www.eskimo.com/~scs/C-faq.top.html.

i5 extra

Aan het einde van sommige hoofdstukken zijn er opdrachten en voorbeeldprogramma's voorzien. Bij deze gids zitten geen oplossingen, omdat dat anders uw denken zou kunnen beïnvloeden. De programma's zijn enkel bedoeld als richtlijnen, aangezien een programma op vele manieren kan opgelost worden.

i6 niet mijn schuld!

Naar mijn kennis is alles in deze 'C-taal voor beginners' cursus juist en accuraat. Ik kan echter niet verantwoordelijk zijn voor foutieve datails of onnauwkeurigheden, aangezien er altijd fouten kunnen insluipen. De programma's en voorbeelden die meegeleverd zijn mag u gebruiken en compileren op uw eigen verantwoordelijkheid. Ik gebruikte geen spellingstest bij het schrijven van dit werk, dus u zal ongetwijfeld fouten tegen de Nederlandse taal tegenkomen. Ik heb graag dat u mij dat laat weten.

i7 hoe kan u mij contacteren?

Deze dienst kan u spijtig genoeg niet (meer) worden aangeboden.

Er bestaat nieuwsgroep over de C-taal, zoals comp.lang.c.

i8 algemeen

i9 versie info

Deze versie van de cursus is een overgangsversie tussen v1.01 en v1.02. In v1.01 kwamen een aantal onregelmatigheden en fouten voor, die nu allemaal verbeterd zouden moeten zijn.

i10 hoe gaat u het best te werk?

U kan deze cursus met uw internetbrowser bekijken. Ik raad u echter aan om telkens één hoofdstuk af te drukken en ermee aan uw computer te gaan zitten. Zo kan u de tekst volgen en tegelijkertijd de oefeningen proberen in uw compiler. Alle voorbeelden op de .htm pagina's staan in preformatted formaat, om meer op echte C-code te lijken. Hier zal u vooral voordeel uithalen als u de cursus afdrukt, waardoor het onderscheid tussen gewone tekst en code zeer duidelijk wordt.

i11 inhoudstafel

Hoofdstuk 1: identifiers, declaraties, types, scherminput/output

1.1 identifiers

1.2 standaardwoorden in C

1.3 een eerste programma

1.4 variabelen definiëren

1.5 qualificators

1.6 geheugengebruik: bits en bytes

1.7 standaard invoer- en uitvoer

 

Hoofdstuk 2: programmacontrole

2.1 operatoren

2.2 conditionele statements

2.3 de conditionele operator

2.4 bit operatoren

 

Hoofdstuk 3: strings en arrays

3.1 strings

3.2 arrays

3.3 het gebruik van een string

3.4 een deel van een string outputten

3.5 stringfuncties

3.6 een array van integers

3.7 strings als input

3.8 multi-dimensionele arrays

 

Hoofdstuk 4: functies, prototypes en geheugenklassen

4.1 functies

4.2 pointers

4.3 call by reference

4.4 geheugenklassen

4.5 enkele begrippen i.v.m. het geheugen

4.6 optimalisatie

 

Hoofdstuk 5: pointers en geheugenmanipulatie

5.1 wat is een pointer?

5.2 pointertypes en arrays

5.3 pointers en strings

5.4 pointers naar arrays

 

Hoofdstuk 6: de preprocessor

6.1 wat is een preprocessor?

6.2 macro's

6.3 voorwaardelijke compilatie

6.4 performance consequenties van macro's

6.5 enumeratie

6.6 pragma

 

Hoofdstuk 7: bestandsinput/output

7.1 een bestand openen

7.2 een bestand sluiten

7.3 uitvoer naar een bestand

7.4 een bestand lezen

7.5 een bestandsnaam als variabele

7.6 afdrukken naar de printer

 

Hoofdstuk 8: extra functies en handigheden voor C

8.1 inleiding

8.2 system()

8.3 clrscr()

8.4 kbhit()

8.5 random()

8.6 chmod()

8.7 isalpha()

8.8 sleep()

 

Hoofdstuk 9: wiskundig

9.1 talstelsels

9.2 machten

9.3 converties

9.4 opgaven en oplossingen

 

Hoofdstuk 10: aanbevolen C stijl- en coderingsnormen

10.1 inleiding

10.2 bestandsorganisatie

10.3 bestandsnamen

10.4 programmabestanden

10.5 header bestanden

10.6 commentaar

10.7 declaraties

10.8 witruimte

10.9 compound statements

10.10 operators

10.11 tabs

10.12 conclusie

10.13 tenslotte

 

Samenvatting: een laatste beschouwing

s1 wat doe ik nu?

s2 verklarende woordenlijst

s3 herhaling van de leerstof

 

Referenties en dankbetuigingen

rd1 referenties

rd2 dankbetuigingen

rd3 personen

 

Copyright en disclaimer