Weblessen.nl - Voor iedereen die wat wil leren..


C

Index
C Index
Voorwoord
De eerste stap
Een inleiding tot C
Programma besturing
Toekennen en Logisch vergelijken
Funkties en Variabelen
Defines en Macros
Strings en Tabellen
Pointers
Standaard Invoer / Uitvoer
Bestands Invoer / Uitvoer
Structuren en Unions
Dynamisch ngeheugen aanvragen
Karakter- en bitmanipulatie

Appendix
Hungarian Notation
Voorbeeldprogramma's
Totaal programma
Scherm- en bestands beschrijvingen
Aanpassingen voor VM/CMS

Voorbeeldprogramma's

 


BITS.C

main () { int index; char masker; char nummer[6]; char and, or, xor, inv; nummer[0] = 0x00; nummer[1] = 0x11; nummer[2] = 0x22; nummer[3] = 0x44; nummer[4] = 0x88; nummer[5] = 0xFF; printf (" Num Msk And Or Xor Inv\n"); printf (" --- --- --- --- --- ---\n"); masker = 0x0F; for (index = 0; index < 6; index++) { and = masker & nummer[index]; or = masker | nummer[index]; xor = masker ª nummer[index]; inv = ~ nummer[index]; printf (" %02X %02X %02X %02X %02X %02X\n", nummer[index], masker, and, or, xor, inv); } /* endfor */ printf ("\n"); masker = 0x22; for (index = 0; index < 6; index++) { and = masker & nummer[index]; or = masker | nummer[index]; xor = masker ª nummer[index]; inv = ~ nummer[index]; printf (" %02X %02X %02X %02X %02X %02X\n", nummer[index], masker, and, or, xor, inv); } /* endfor */ }

BREAKCON.C

main () { int xx; for (xx = 5; xx < 15; xx = xx + 1) { if (xx == 10) break; printf ("In het 'BREAK' deel; xx heeft de waarde %d\n", xx); } for (xx = 5; xx < 15; xx = xx + 1) { if (xx == 10) continue; printf ("In het 'CONTINUE' deel; xx heeft de waarde %d\n", xx); } }

BUBBLE.C

/** BUBBLE.C - Bubble sort programma ******************************/ #include <stdio.h> #include <stdlib.h> #include <string.h> #define RECSIZE 14 typedef struct _lijst { char *prec; struct _lijst *next; } LIJST; int iCnt; FILE *pf; LIJST *plS, *plC, *plH; char szFileID[] = "BUBBLE.DAT"; void DrukAf (); void GeefVrij (); void Lees (); void Sorteer (); /** Hoofdprogramma ************************************************/ int main () { if ((pf = fopen (szFileID, "r")) == NULL) { printf ("Het bestand '%s' is niet gevonden.", szFileID); exit (9); } /* endif */ Lees (); Sorteer (); DrukAf (); GeefVrij (); fclose (pf); return (0); } /** Druk de gesorteerde lijst af **********************************/ void DrukAf () { printf ("Afdruk van de gesorteerde lijst:\n"); plC = plS; for (iCnt = 1; plC; iCnt++) { printf ("Record # %02d: '%s'\n", iCnt, plC->prec); plC = plC->next; } /* endfor */ printf ("\n"); return; } /** Geef het aangevraagde geheugen weer vrij **********************/ void GeefVrij () { printf ("Bezig met opschonen ...\n\n"); while (plS) { plC = plS; plS = plC->next; free (plC->prec); free (plC); } /* endwhile */ return; } /** Lees het Invoer bestand ***************************************/ void Lees () { char szBuf[RECSIZE+1]; iCnt = 0; plS = plC = plH = NULL; while (fgets (szBuf, RECSIZE, pf) != NULL) { iCnt++; plH = (LIJST *) malloc (sizeof (LIJST)); plH->prec = (char *) malloc (RECSIZE); plH->next = NULL; *(plH->prec) = '\0'; strncat (plH->prec, szBuf, (RECSIZE - 2)); if (iCnt == 1) { plS = plH; } else { plC->next = plH; } /* endif */ plC = plH; } /* endwhile */ printf ("Totaal aantal records is %d\n\n", iCnt); return; } /** Sorteer de lijst **********************************************/ void Sorteer () { int iSw = 1; char *pch; printf ("De Invoer wordt gesorteerd ...\n\n"); while (iSw) { iSw = 0; plC = plS; while (plC->next) { plH = plC->next; if (strcmp (plC->prec, plH->prec) > 0) { pch = plC->prec; plC->prec = plH->prec; plH->prec = pch; iSw = 1; } /* endif */ plC = plH; } /* endwhile */ } /* endwhile */ return; } /** End of File ***************************************************/

CHARSTR.C

main () { char titel[8]; titel[0] = 'Y'; titel[1] = 'a'; titel[2] = 'h'; titel[3] = 't'; titel[4] = 'z'; titel[5] = 'e'; titel[6] = 'e'; titel[7] = '\0'; printf ("De naam van het spel is '%s'\n", titel); printf ("Een letter uit de naam is '%c'\n", titel[3]); printf ("Een deel van de naam is '%s'\n", &titel[4]); }

DATATYPS.C

main () { int a; long int b; short int c; unsigned int d; char e; float f; double g; a = 1023; /* initialisatie */ b = 2222; c = 123; d = 1234; e = 'X'; f = 3.14159; g = 3.1415926535898; printf ("a = %d \n", a); /* decimaal afgedrukt */ printf ("a = %o \n", a); /* octaal afgedrukt */ printf ("a = %x \n", a); /* hexadecimaal afgedrukt */ printf ("b = %ld \n", b); /* decimaal 'long' */ printf ("c = %hd \n", c); /* decimaal 'short' */ printf ("d = %u \n", d); /* 'unsigned' */ printf ("e = %c \n", e); /* character */ printf ("f = %f \n", f); /* floating point */ printf ("g = %g \n", g); /* double float */ printf ("\n"); printf ("a = %d \n", a); /* integer gewoon afgedrukt */ printf ("a = %7d \n", a); /* integer op veldbreedte 7 */ printf ("a = %-7d \n", a); /* links aangesloten, 7 breed */ printf ("\n"); printf ("f = %f \n", f); /* float gewoon afgedrukt */ printf ("f = %12f \n", f); /* float op veldbreedte 12 */ printf ("f = %12.3f \n", f); /* 12 breed met 3 decimalen */ printf ("f = %12.5f \n", f); /* 12 breed met 5 decimalen */ printf ("f = %-12.5f \n", f); /* links aangesloten */ }

DEFINE.C

#define START 0 /* Start waarde voor iteratie */ #define WAARDE 5 /* Waarde voor vergelijking */ #define STOP 9 /* Stop waarde voor iteratie */ #define MAX(a,b) ((a)>(b)?(a):(b)) /* MAX functie als macro */ #define MIN(a,b) ((a)>(b)?(b):(a)) /* MIN functie als macro */ main () { int index, min, max; for (index = START; index <= STOP; index++) { max = MAX(index, WAARDE); min = MIN(index, WAARDE); printf ("Het maximum is %d en het minimum is %d\n", max, min); } }

DOWHILE.C

main () { int punten; punten = 0; do { printf ("Het totaal aantal punten is %d \n", punten); punten = punten + 10; } while (punten < 60); }

DRUKAF.C

main () { printf ("Dit is een regel tekst.\n"); printf ("En dit is nog "); printf ("een regel tekst.\n\n"); printf ("Dit is de laatste regel tekst.\n"); }

DYNVELD.C

typedef struct _field { int sRow; /* field row */ int sColumn; /* field column */ int sLength; /* field length */ } VELD; main () { VELD *pv1, *pv2; pv1 = (VELD *) malloc (sizeof (VELD)); pv1->sRow = 6; pv1->sColumn = 12; pv1->sLength = 20; pv2 = (VELD *) malloc (sizeof (VELD)); pv2->sLength = 32; pv2->sColumn = 12; pv2->sRow = pv1->sRow + 2; printf ("veld1 staat op rij %d, kolom %d en is %d tekens lang\n", pv1->sRow, pv1->sColumn, pv1->sLength); printf ("veld2 staat op rij %d, kolom %d en is %d tekens lang\n", pv2->sRow, pv2->sColumn, pv2->sLength); free (pv1); free (pv2); }

FORLOOP.C

main () { int index; char worp[6][2]; for (index = 1; index < 6; index = index + 1) { strcpy (worp[index], "."); } /* endfor */ }

FOUTJE.C

#include <stdio.h> /* standard Invoer/Uitvoer header file */ main () { int index; for (index = 0; index < 6; index++) { printf ("Deze regel gaat naar de standaard uitvoer.\n"); fprintf (stderr, "Deze regel gaat naar de fout uitgang.\n"); } exit (99); }

GEEFWEER.C

#define GROOTTE 8 /* Aantal elementen van tabel */ main () { int index; int matrix[GROOTTE]; for (index = 0; index < GROOTTE; index++) /* vul de tabel */ matrix[index] = index + 10; for (index = 0; index < GROOTTE; index++) /* druk origineel af */ printf ("Originele tabel (main): element %d is %d\n", index, matrix[index]); verander (matrix); /* verander de tabel via een funktie */ for (index = 0; index < GROOTTE; index++) /* druk veranderde af */ printf ("Veranderde tabel (main): element %d is %d\n", index, matrix[index]); } verander (lijst) int lijst[]; { int i; for (i = 0; i < GROOTTE; i++) /* druk origineel af */ printf ("Originele tabel (verander): element %d is %d\n", i, lijst[i]); for (i = 0; i < GROOTTE; i++) /* tel overal 10 bij op */ lijst[i] += 10; for (i = 0; i < GROOTTE; i++) /* druk veranderde af */ printf ("Veranderde tabel (verander): element %d is %d\n", i, lijst[i]); }

GENEST.C

main () { int index; struct _field { int sRow; /* field row */ int sColumn; /* field column */ int sLength; /* field length */ }; struct _screen { int sRows; /* number of rows on screen */ int sColumns; /* number of cols on screen */ struct _field veld[8]; } scherm; scherm.sRows = 24; scherm.sColumns = 80; for (index = 0; index < 8; index++) { scherm.veld[index].sRow = index + 4; scherm.veld[index].sColumn = 12; scherm.veld[index].sLength = 20; } /* endfor */ printf ("Het scherm heeft %d regels van %d tekens\n\n", scherm.sRows, scherm.sColumns); for (index = 0; index < 8; index++) { printf ("veld %d: rij %2d, kolom %2d, %2d tekens\n", index+1, scherm.veld[index].sRow, scherm.veld[index].sColumn, scherm.veld[index].sLength); } /* endfor */ }

GETALIN.C

#include <stdio.h> /* standard Invoer/Uitvoer header file */ main () { int getal; printf ("Tik een getal in (100 stopt het programma):\n"); do { scanf ("%d", &getal); /* lees een getal in */ printf ("Het getal is %d\n", getal); /* en druk hem af ... */ } while (getal != 100); printf ("Einde programma.\n"); }

HELLO.C

main () { printf ("Hello, world ..."); }

IFELSE.C

main () { int score = 100; int persrec = 200; if (score > persrec) printf ("Je hebt je persoonlijk record verbeterd !!!\n", score); if (score > persrec) printf ("Score: *** %04d *** \n", score); else printf ("Score: %04d \n", score); }

INMEM.C

main () { int DS1, DS2, DS3, DS4, DS5; /* vijf dobbelstenen */ char regel[8]; DS1 = 2; DS2 = 3; DS3 = 4; DS4 = 5; DS5 = 6; /* initialiseer */ sprintf (regel, "%d %d %d %d %d\n", DS1, DS2, DS3, DS4, DS5); printf ("1: %s", regel); sscanf (regel, "%d %d %d %d %d\n", &DS5, &DS4, &DS3, &DS2, &DS1); printf ("2: %d %d %d %d %d\n", DS1, DS2, DS3, DS4, DS5); }

INVUITV.C

#include <stdio.h> /* standard Invoer/Uitvoer header file */ main () { char letter; printf ("Tik een letter in (X stopt het programma):\n"); do { letter = getchar (); /* haal een letter op */ putchar (letter); /* en druk hem af ... */ } while ((letter != 'x') && (letter != 'X')); printf ("\nEinde programma.\n"); }

KWADRAAT.C

main () { int x, y; for (x = 0; x <= 7; x++) { y = kwadr (x); /* Haal het kwadraat van x */ printf ("Het kwadraat van %d is %d\n", x, y); } for (x = 0; x <= 7; ++x) { printf ("Het kwadraat van %d is %d\n", x, kwadr (x)); } } kwadr (invoer) /* Deze funktie geeft het kwadraat van een getal */ int invoer; { int kwadraat; kwadraat = invoer * invoer; return (invoer); }

KWADRFLT.C

float z; /* Dit is een globale variabele */ main () { int index; float x, y, sqr(), glsqr(); for (index = 0; index <= 7; index++) { x = index; /* Converteer int naar float */ y = sqr (x); /* Kwadrateer x */ printf ("Het kwadraat van %d is %10.4f\n", index, y); } for (index = 0; index <= 7; index++) { z = index; y = glsqr (); printf ("Het kwadraat van %d is %10.4f\n", index, y); } } float sqr (invoer) /* Kwadrateer een float, return een float */ float invoer; { float kwadraat; kwadraat = invoer * invoer; return (kwadraat); } float glsqr () /* Kwadrateer een float, return een float */ { return (z * z); }

KWADRSOM.C

int som; /* Dit is een globale variabele */ main () { int index; kop (); /* Roep kop aan */ for (index = 1; index <= 7; index++) kwadr (index); /* Kwadraat funktie */ voet (); /* Roep voet aan */ } kop () /* Dit is de 'kop' funktie */ { som = 0; /* Initialisatie */ printf ("Getallen kwadrateren en optellen ...\n\n"); } kwadr (invoer) /* Deze funktie geeft het kwadraat van een getal */ int invoer; { int kwadraat; kwadraat = invoer * invoer; som += kwadraat; printf ("Het kwadraat van %d is %d\n", invoer, kwadraat); } voet () /* Dit is de 'voet' funktie */ { printf ("\nDe som der kwadraten is %d\n", som); }

LEESBEST.C

#include <stdio.h> /* standard Invoer/Uitvoer header file */ main () { char best_naam[32]; /* bestandsnaam */ char regel[81]; /* gelezen regel */ FILE *pf; /* pointer naar FILE */ printf ("Tik de naam van een bestand in:\n"); scanf ("%s", best_naam); /* lees bestandsnaam */ pf = fopen (best_naam, "r"); /* open voor lezen */ while ((fgets (regel, 100, pf)) != NULL) /* lees een regel */ printf ("%s", regel); /* druk de regel af */ fclose (pf); /* sluit het bestand weer af */ }

LEESCHAR.C

#include <stdio.h> /* standard Invoer/Uitvoer header file */ main () { int letter; /* gelezen letter */ FILE *pf; /* pointer naar FILE */ pf = fopen ("CURSUS.DAT", "r"); /* open voor lezen */ if (pf == NULL) printf ("Het bestand 'CURSUS.DAT' is niet gevonden\n"); else do { letter = getc (pf); /* lees een letter */ putchar (letter); /* druk de letter af */ } while (letter != EOF); /* tot einde bestand */ fclose (pf); /* sluit het bestand weer af */ }

LEESGOED.C

#include <stdio.h> /* standard Invoer/Uitvoer header file */ main () { char woord[81]; /* gelezen woord */ FILE *pf; /* pointer naar FILE */ pf = fopen ("CURSUS.DAT", "r"); /* open voor lezen */ while ((fscanf (pf, "%s", woord)) != EOF) /* lees een woord */ printf ("%s\n", woord); /* druk het woord af */ fclose (pf); /* sluit het bestand weer af */ }

LEESLIJN.C

#include <stdio.h> /* standard Invoer/Uitvoer header file */ main () { char regel[81]; /* gelezen regel */ FILE *pf; /* pointer naar FILE */ pf = fopen ("CURSUS.DAT", "r"); /* open voor lezen */ while ((fgets (regel, 100, pf)) != NULL) /* lees een regel */ printf ("%s", regel); /* druk de regel af */ fclose (pf); /* sluit het bestand weer af */ }

LEESTEXT.C

#include <stdio.h> /* standard Invoer/Uitvoer header file */ main () { int rc; /* return code */ char woord[81]; /* gelezen woord */ FILE *pf; /* pointer naar FILE */ pf = fopen ("CURSUS.DAT", "r"); /* open voor lezen */ do { rc = fscanf (pf, "%s ", woord); /* lees een woord */ printf ("%s\n", woord); /* druk het woord af */ } while (rc != EOF); /* tot einde bestand */ fclose (pf); /* sluit het bestand weer af */ }

MACRO.C

#define START 1 /* Start waarde voor iteratie */ #define OFFSET 5 /* Offset */ #define STOP 9 /* Stop waarde voor iteratie */ #define KWADRAAT(a) (a)*(a) /* Kwadraat berekenen */ #define INHOUD(a) (a)*(a)*(a) /* Macro voor berekenen inhoud */ #define FOUTIEF(a) a*a*a /* Foutieve inhouds macro */ main () { int index; for (index = START; index <= STOP; index++) { printf ("Het kwadraat van %d is %d\n", index + OFFSET, KWADRAAT (index + OFFSET)); printf ("De inhoud van %d is %d\n", index + OFFSET, INHOUD (index + OFFSET)); printf ("De foutieve inhoud van %d is %d\n", index + OFFSET, FOUTIEF (index + OFFSET)); } }

NUMMERS.C

main () { int getal; getal = 13; printf ("De waarde van het getal is %d \n", getal); getal = 27; printf ("De waarde van het getal is %d \n", getal); getal = 10; printf ("De waarde van het getal is %d \n", getal); }

OMWISSEL.C

#include <stdio.h> /* standard Invoer/Uitvoer header file */ #include <ctype.h> /* standard C datatypes header file */ main () { char best_naam[32]; /* bestandsnaam */ char regel[81]; /* gelezen regel */ FILE *pf; /* pointer naar FILE */ printf ("Tik de naam van een bestand in:\n"); scanf ("%s", best_naam); /* lees bestandsnaam */ pf = fopen (best_naam, "r"); /* open voor lezen */ while ((fgets (regel, 100, pf)) != NULL) { WisselLettersOm (regel); printf ("%s", regel); } fclose (pf); /* sluit het bestand weer af */ } WisselLettersOm (ptr) /* Deze funktie maakt van kleine */ char *ptr; /* letters hoofdletters en andersom */ { while (*ptr) { if (islower (*ptr)) *ptr = toupper (*ptr); else if (isupper (*ptr)) *ptr = tolower (*ptr); ptr++; } /* endwhile */ }

PLUSMIN.C

main () { int x = 0, y = 2, z = 1025; float a = 0.0, b = 3.14159, c = -37.234; /* Ophogen */ x = x + 1; /* x wordt 1 hoger */ x++; /* x wordt 1 hoger */ ++x; /* x wordt 1 hoger */ z = y++; /* z wordt 2, y wordt 3 */ z = ++y; /* z wordt 4, y wordt 4 */ /* Aflagen */ y = y - 1; /* x wordt 1 lager */ y--; /* x wordt 1 lager */ --y; /* x wordt 1 lager */ y = 3; /* y wordt 3 gemaakt */ z = y--; /* z wordt 3, y wordt 2 */ z = --y; /* z wordt 1, y wordt 1 */ /* Rekenkundige bewerkingen */ a = a + 12; /* a wordt 12 hoger */ a += 12; /* a wordt weer 12 hoger */ a *= 3.2; /* a vermenigvuldigd met 3.2 */ a -= b; /* b wordt afgetrokken van a */ a /= 10.0; /* a wordt gedeeld door 10 */ /* Conditional expression */ a = (b >= 3.0 ? 2.0 : 10.5); /* Deze constructie is */ /* identiek aan: */ if (b >= 3.0) a = 2.0; else a = 10.5; c = (a > b ? a : b); /* c wordt maximum van a en b */ c = (a > b ? b : a); /* c wordt minimum van a en b */ }

POINTER1.C

main () { int index, *pt1, *pt2; index = 23; /* willekeurige waarde */ pt1 = &index; /* het adres van index */ pt2 = pt1; printf ("De waarden zijn: %d, %d en %d\n", index, *pt1, *pt2); *pt1 = 77; /* verander index */ printf ("De waarden zijn: %d, %d en %d\n", index, *pt1, *pt2); }

POINTER2.C

main () { char een, twee, *ernaar, string[40]; int *pt, lijst[100], index; strcpy (string, "Dit is een string van karakters\n"); een = string[0]; twee = *string; /* een en twee zijn identiek */ printf ("1: een is %c en twee is %c\n", een, twee); een = string[11]; twee = *(string+11); /* een en twee zijn identiek */ printf ("2: een is %c en twee is %c\n", een, twee); ernaar = string + 11; printf ("3: element 12 is %c\n", string[11]); printf ("4: element 12 via pointer is %c\n", *ernaar); for (index = 0; index < 100; index++) lijst[index] = index + 100; pt = lijst + 23; printf ("5: element 24 is %d\n", lijst[23]); printf ("6: element 24 via pointer is %d\n", *pt); }

PVK.C

main () { int paard, varken, kip, beesten; float bedrag, subtot; printf ("PAARDEN VARKENS KIPPEN BEDRAG \n"); printf ("------- ------- ------- ------- \n"); /* Ga uit van het duurste beest, het paard ... */ for (paard = 1; paard <= (100.00 / 15.00); paard++) { subtot = paard * 15.00; /* Varieer dan met het aantal mogelijke varkens ... */ for (varken = 1; varken <= ((100.00 - subtot) / 1.00); varken++) { kip = 100 - paard - varken; /* Wat is nu het totaal bedrag aan beesten ... */ bedrag = subtot + varken * 1.00 + kip * 0.25; /* Indien buiten de grenswaarden, dan het volgende varken ... */ if (((100.00 - 0.50) > bedrag) || (bedrag > (100.00 + 0.50))) continue; /* Indien tussen de grenswaarden, druk dan af ... */ printf ("%6d %6d %6d %6.2f", paard, varken, kip, bedrag); /* BINGO !!! */ if (bedrag == 100.00) printf (" <===="); /* Sluit de print-regel af */ printf ("\n"); } /* endfor */ } /* endfor */ }

RECURSIE.C

main () { int index = 0; index = 8; tel_af (index); } tel_af (telling) int telling; { telling--; printf ("De waarde van de telling is %d\n", telling); if (telling > 0) tel_af (telling); printf ("De telling is nu %d\n", telling); }

SCHRCHAR.C

#include <stdio.h> /* standard Invoer/Uitvoer header file */ main () { int index; char *pch; /* pointer naar char */ char regel[81] = "Tripple Yahtzee - pc3270"; /* regel met tekst */ FILE *pf; /* pointer naar FILE */ pf = fopen ("CURSUS.DAT", "a"); /* open voor toevoegen */ for (index = 1; index <= 10; index ++) { for (pch = regel; *pch; pch++) putc (*pch, pf); putc ('\n', pf); } fclose (pf); /* sluit het bestand weer af */ }

SCHRLIJN.C

#include <stdio.h> /* standard Invoer/Uitvoer header file */ main () { int DS1, DS2, DS3, DS4, DS5; /* vijf dobbelstenen */ int index; FILE *pf; /* pointer naar FILE */ DS1 = 2; DS2 = 3; DS3 = 4; DS4 = 5; DS5 = 6; /* initialiseer */ pf = fopen ("CURSUS.DAT", "w"); /* open voor schrijven */ for (index = 1; index <= 10; index ++) { fprintf (pf, "Regel nummer %02d: %d %d %d %d %d\n", index, DS1, DS2, DS3, DS4, DS5); } fclose (pf); /* sluit het bestand weer af */ }

SCHUIF.C

main () { int klein, groot, index, aantal; printf (" Schuif Links Schuif Rechts\n"); printf (" ------------- --------------\n"); for (klein = 1, groot = 0x8000, index = 0; index < 16; index++) { printf ("%8d %8d %8d %8d\n", klein, klein << 1, groot, groot >> 1); klein <<= 1; groot >>= 1; } /* endfor */ printf ("\n\n\n"); printf (" Schuif Links Schuif Rechts\n"); printf (" ------------- --------------\n"); aantal = 2; for (klein = 1, groot = 0x8000, index = 0; index < 8; index++) { printf ("%8d %8d %8d %8d\n", klein, klein << aantal, groot, groot >> aantal); klein <<= aantal; groot >>= aantal; } /* endfor */ }

SCOPE.C

int telling; /* Dit is een globale variabele */ main () { register int index; /* Deze variabele is lokaal voor main */ head1 (); /* Funktie aanroep */ head2 (); /* Funktie aanroep */ head3 (); /* Funktie aanroep */ } int teller; /* Deze variabele is beschikbaar vanaf hier */ head1 () { int index; /* Deze variabele is lokaal voor head1 */ index = 23; printf ("De waarde van index in 'head1' is %d\n", index); } head2 () { int telling; /* Deze variabele is lokaal voor head2 */ telling = 53; printf ("De waarde van telling in 'head2' is %d\n", telling); teller = 77; } head3 () { printf ("De waarde van teller in 'head3' is %d\n", teller); }

SOORT.C

#include <stdio.h> /* standard Invoer/Uitvoer header file */ #include <ctype.h> /* standard C datatypes header file */ main () { char best_naam[32]; /* bestandsnaam */ char regel[81]; /* gelezen regel */ FILE *pf; /* pointer naar FILE */ printf ("Tik de naam van een bestand in:\n"); scanf ("%s", best_naam); /* lees bestandsnaam */ pf = fopen (best_naam, "r"); /* open voor lezen */ while ((fgets (regel, 100, pf)) != NULL) tel_soorten (regel); fclose (pf); /* sluit het bestand weer af */ } tel_soorten (ptr) char *ptr; { static int regelteller = 0; int spaties, letters, cijfers; char teken; letters = cijfers = spaties = 0; while (*ptr) { teken = *ptr++; putchar (teken); if (isalpha (teken)) letters++; if (isdigit (teken)) cijfers++; if (isspace (teken)) spaties++; } /* endwhile */ printf (" # %04d --- Lt: %d Cf: %d Sp: %d ---\n", ++regelteller, letters, cijfers, spaties-1); }

STRINGS.C

main () { char spel1[20], spel2[20]; strcpy (spel1, "E N E N"); strcpy (spel2, "T W E E E N"); printf ("De naam van het eerste spel is: %s\n", spel1); printf ("De naam van het tweede spel is: %s\n", spel2); printf ("Bij vergelijking van de namen is de grootste: %s\n", (strcmp (spel1, spel2) > 0 ? spel1 : spel2)); strcpy (spel1, "THREE "); strcat (spel1, "OF A "); strcat (spel1, "KIND"); printf ("De naam van een spel is: %s\n", spel1); }

STRUCT1.C

main () { struct _field { int sRow; /* field row */ int sColumn; /* field column */ int sLength; /* field length */ } veld1, veld2; veld1.sRow = 6; veld1.sColumn = 12; veld1.sLength = 20; veld2.sLength = 32; veld2.sColumn = 12; veld2.sRow = veld1.sRow + 2; printf ("veld1 staat op rij %d, kolom %d en is %d tekens lang\n", veld1.sRow, veld1.sColumn, veld1.sLength); printf ("veld2 staat op rij %d, kolom %d en is %d tekens lang\n", veld2.sRow, veld2.sColumn, veld2.sLength); }

STRUCT2.C

main () { int index; struct _field { int sRow; /* field row */ int sColumn; /* field column */ int sLength; /* field length */ } veld[8]; for (index = 0; index < 8; index++) { veld[index].sRow = index + 4; veld[index].sColumn = 12; veld[index].sLength = 20; } /* endfor */ veld[1].sLength = 32; /* verander veld 2 */ veld[3].sLength = 32; /* verander veld 4 */ veld[5].sLength = 32; /* verander veld 6 */ for (index = 0; index < 8; index++) { printf ("veld %d: rij %2d, kolom %2d, %2d tekens\n", index+1, veld[index].sRow, veld[index].sColumn, veld[index].sLength); } /* endfor */ }

STRUCT3.C

main () { int index; struct _field { int sRow; /* field row */ int sColumn; /* field column */ int sLength; /* field length */ } veld[8], *ptr; for (index = 0; index < 8; index++) { ptr = veld + index; ptr->sRow = index + 4; ptr->sColumn = 12; ptr->sLength = 20; } /* endfor */ veld[1].sLength = 32; /* verander veld 2 */ veld[3].sLength = 32; /* verander veld 4 */ veld[5].sLength = 32; /* verander veld 6 */ for (ptr = veld; ptr < veld+8; ptr++) printf ("veld %d: rij %2d, kolom %2d, %2d tekens\n", (ptr-veld)+1, ptr->sRow, ptr->sColumn, ptr->sLength); }

SWITCH.C

main () { int opdracht; switch (opdracht) { case 1: printf ("Verwerk 'vooruit bladeren' opdracht ...\n"); break; case 2: printf ("Verwerk 'achteruit bladeren' opdracht ...\n"); break; case 3: case 4: case 9: printf ("Stop de verwerking.\n"); break; default: printf ("Dit is een onbekende opdracht !!!\n"); break; } }

TABEL.C

main () { int index; int punten[12]; float zomaar[12]; char titel[] = "Yahtzee - pc3270"; for (index = 0; index < 12; index++) { punten[index] = index * 30; zomaar[index] = 12.345 * (index + 23); } printf ("%s:\n\n", titel); for (index = 0; index < 12; index++) { printf ("Spel %2d: %4d punten (%7.3f)\n", index, punten[index], zomaar[index]); } }

TABELINT.C

main () { int waarde[12]; int index; for (index = 0; index < 12; index++) waarde[index] = (3 * index + 5); for (index = 0; index < 12; index++) printf ("De waarde van element %2d is %3d\n", index, waarde[index]); }

TEKSTIN.C

#include <stdio.h> /* standard Invoer/Uitvoer header file */ main () { char tekst[81]; printf ("Tik een tekst in, niet meer dan 80 tekens.\n"); printf ("Als de eerste letter een X is, stopt het programma.\n"); do { scanf ("%s", tekst); /* lees een tekst in */ printf ("De tekst is '%s'\n", tekst); /* en druk die af ... */ } while ((*tekst != 'x') && (*tekst != 'X')); printf ("Einde programma.\n"); }

TERUG.C

main () { char regel[80]; int index = 0; strcpy (regel, "Dit is een string.\n"); heenweer (regel, index); } heenweer (regel, index) char regel[]; int index; { if (regel[index]) { printf ("%c", regel[index]); heenweer (regel, index+1); } printf ("%c", regel[index]); }

TKANDER.C

main () { int a, b, c; /* -32768 tot 32767 zonder komma */ char x ,y, z; /* 0 tot 255 zonder komma */ float jan, piet, klaas; /* 10E-38 tot 10E+38 met momma */ a = b = c = -27; /* initialisatie */ x = y = z = 'A'; jan = piet = klaas = 9.7531; a = y; /* a wordt 65 (karakter A) */ x = b; /* x wordt een vreemd karakter */ jan = b; /* jan wordt -27.00 */ a = piet; /* a wordt 9 */ }

TOEKENN.C

main () { int a, b, c; /* integer variabelen t.b.v. voorbeelden */ a = 12; /* initialisatie */ b = 3; c = a + b; /* 1 */ c = a - b; /* 1 */ c = a * b; /* 1 */ c = a / b; /* 1 */ c = a % b; /* 1 */ c = 12 * a + b / 2 - a * b * 2 / (a * c + b * 2); /* 2 */ c = c / 4 + 13 * (a + b) / 3 - a * b + 2 * a * a; /* 2 */ a = a + 1; /* 3 */ b = b * 5; /* 3 */ a = b = c = 20; /* 4 */ a = b = c = 12 * 13 / 4; /* 4 */ }

TWEEKANT.C

main () { int pindas = 100; int appels = 101; printf ("main: De startwaarden zijn %d en %d\n", pindas, appels); doewat (pindas, &appels); printf ("main: De eindwaarden zijn %d en %d\n", pindas, appels); } doewat (noten, fruit) int noten; /* noten is een integer */ int *fruit; /* fruit is een pointer naar een integer */ { printf ("doewat: De startwaarden zijn %d en %d\n", noten, *fruit); noten = 135; *fruit = 975; printf ("doewat: De eindwaarden zijn %d en %d\n", noten, *fruit); }

UNION1.C

main () { union { int waarde; struct { char eerste; char tweede; char derde; char vierde; } deel; } nummer; long index; for (index = 753; index < 0x0FFFFFFF; index *= 4) { nummer.waarde = index; printf ("%08X - %02X %02X %02X %02X\n", nummer.waarde, nummer.deel.eerste, nummer.deel.tweede, nummer.deel.derde, nummer.deel.vierde); } /* endfor */ }

VAKJES.C

main () { int kolom, spel; int vakje[4][14]; for (kolom = 1; kolom < 4; kolom++) /* vul de tabel */ for (spel = 1; spel < 14; spel++) vakje[kolom][spel] = kolom * 100 + spel; vakje[2][6] = -1; /* verander een specifieke */ vakje[2][2] = vakje[2][6]; /* kopieeer een vakje */ for (spel = 1; spel < 14; spel++) { /* druk tabel af */ printf ("Spel %2d:", spel); for (kolom = 1; kolom < 4; kolom++) printf ("%8d", vakje[kolom][spel]); printf ("\n"); } }

VELDEN.C

typedef struct _field { int sRow; /* field row */ int sColumn; /* field column */ int sLength; /* field length */ } VELD; main () { int index; VELD *ptr[8]; for (index = 0; index < 8; index++) { ptr[index] = (VELD *) malloc (sizeof (VELD)); ptr[index]->sRow = index + 4; ptr[index]->sColumn = 12; ptr[index]->sLength = 20; } /* endfor */ ptr[1]->sLength = 32; /* verander veld 2 */ ptr[3]->sLength = 32; /* verander veld 4 */ ptr[5]->sLength = 32; /* verander veld 6 */ for (index = 0; index < 8; index++) { printf ("veld %d: rij %2d, kolom %2d, %2d tekens\n", index+1, ptr[index]->sRow, ptr[index]->sColumn, ptr[index]->sLength); free (ptr[index]); } /* endfor */ }

VERGELYK.C

main () { int x = 11, y = 11, z = 11; char a = 40, b = 40, c = 40; float r = 12.987, s = 12.987, t = 12.987; /* Eerste groep */ if (x == y) z = -13; /* z wordt -13 */ if (x > z) a = 'A'; /* a wordt 65 */ if (!(x > z)) a = 'B'; /* er verandert niets */ if (b <= c) r = 0.0; /* r wordt 0.0 */ if (r != s) t = c / 2; /* t wordt 20 */ /* Tweede groep */ if (x = (r != s)) z = 1000; /* x wordt WAAR, z wordt 1000 */ if (x = y) z = 222; /* x wordt y, z wordt 222 */ if (x != 0) z = 333; /* z wordt 333 */ if (x) z = 444; /* z wordt 444 */ /* Derde groep */ x = y = z = 77; /* initialisatie */ if ((x == y) && (x == 77)) z = 33; /* z wordt 33 */ if ((x > y) || (z > 12)) z = 22; /* z wordt 22 */ if (x && y && z) z = 11; /* z wordt 11 */ if ((x = 1) && (y = 2) && (z = 3)) r = 12.00; /* x wordt 1, y wordt 2, z wordt 3, r wordt 12.00 */ if ((x == 2) && (y = 3) && (z = 4)) r = 14.56; /* er verandert niets */ /* Vierde groep */ if (x == x); z = 27.345; /* z veranderd altijd ! */ if (x != x) z = 27.345; /* z veranderd niet */ if (x = 0) z = 27.345; /* x wordt 0, z veranderd niet */ }

WHILE.C

main () { int punten; punten = 0; while (punten < 60) { printf ("Het totaal aantal punten is %d \n", punten); punten = punten + 10; } }

ZEGTYD.C

#include <stdio.h> /* standard Invoer/Uitvoer header file */ #include <time.h> /* datum/tijd funkties header file */ char wrd[15][10] = { "twaalf", "een", "twee", "drie", "vier", "vijf", "zes", "zeven", "acht", "negen", "tien", "elf", "twaalf", "dertien", "veertien" }; main () { int hh, mm; time_t tijd; struct tm *t; tijd = time (NULL); t = localtime (&tijd); hh = t->tm_hour; mm = t->tm_min; printf ("Het is "); if (mm < 1) printf ("precies %s uur ", wrd[hh%12]); else if (mm < 2) printf ("een minuut over %s ", wrd[hh%12]); else if (mm < 15) printf ("%s minuten over %s ", wrd[mm], wrd[hh%12]); else if (mm < 16) printf ("kwart over %s ", wrd[hh%12]); else if (mm < 29) printf ("%s minuten voor half %s ", wrd[30-mm], wrd[hh%12+1]); else if (mm < 30) printf ("een minuut voor half %s ", wrd[hh%12+1]); else if (mm < 31) printf ("half %s ", wrd[hh%12+1]); else if (mm < 32) printf ("een minuut over half %s ", wrd[hh%12+1]); else if (mm < 45) printf ("%s minuten over half %s ", wrd[mm-30], wrd[hh%12+1]); else if (mm < 46) printf ("kwart voor %s ", wrd[hh%12+1]); else if (mm < 59) printf ("%s minuten voor %s ", wrd[60-mm], wrd[hh%12+1]); else printf ("een minuut voor %s ", wrd[hh%12+1]); printf ("... \n"); }


Webdesign

Maak van Weblessen.nl uw startpagina!
Plaats Weblessen.nl bij uw favorieten. Neem contact met me op.
Heb je een Hosting?
Geef hier jouw mening over jouw web hosting

Webadres.info: Goede domeinnaam kiezen

Gesponsorde links:
Budget Webhosting
Web2host.nl
10eurohost.nl
Denit Hosting Solutions
YourHosting.nl
Starthosting.nl
Eduvision.nl
Educruitment.nl
Webadres.info


De link top 5:
Gratis Computercursussen
WebmasterStartpagina
MijnStartpagina.nu
Bluebird Animatie
Anouksweb
Link aanmelden
Alle Partners

Webmasterwoordenboek
A | B | C | D | E | F
G
| H | I | J | K | L | M
N
| O | P | Q | R | S | T
U | V | W | X | Y | Z

Films vanavond op Tv:

De klok:

(advertentie)

HTML leren
PHP cursus
XML lessen
XHTML les
CSS leer
leer C
REXX online
Red Hat Linux cursus