1 / 26

C-kursus 6. Lektion

C-kursus 6. Lektion. Repetition af 5. Lektion Vi mødes igen kl. 11.00 til gennemgang af 6. Lektion. Arrays og strenge. Et array svarer til det, man i matematik kalder en matrix Et array er en navngiven samling af variabler af samme type En streng er en tekst

Download Presentation

C-kursus 6. Lektion

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. C-kursus 6. Lektion Repetition af 5. Lektion Vi mødes igen kl. 11.00 til gennemgang af 6. Lektion

  2. Arrays og strenge • Et array svarer til det, man i matematik kalder en matrix • Et array er en navngiven samling af variabler af samme type • En streng er en tekst • En tekst er et array af bogstaver • Variablerne i et array er nummereret fra 0 til n. • Antallet af variabler i et array er n+1

  3. Type cast 1 void main(void) { float tabel[LIM] = { 20, 10, 5, 2, 1, .50, .25 }; int tal, antal; float amount; printf("\nProgram som beregner, hvor mange mønter et indtaste beløb kan opdeles i\n"); printf("\nIndtast beløbet i kr. (f.eks. 54.25): "); scanf("%f", &amount);

  4. Type cast 2 float tabel[LIM] int tal, antal; float amount; for (tal=0; tal<LIM; tal++) { antal = ((int)(amount*100)) / ((int)(tabel[tal]*100)); printf("Mønter med værdien=%6.2f kr, ", tabel[tal] ); printf("udgør %2d af beløbet!\n", antal ); amount = ((amount / tabel[tal]) - (float)antal) * tabel[tal]; } } // Slut på main

  5. Konstanter og biblioteker #include <stdio.h> // De eneste der er brug for er printf // og scanf #define MAXSIZE 20 // Der skal højest arbejdes med 20 // tal i array’et

  6. Sortering af data i et array void main(void) { int list[MAXSIZE]; int ant = 0; int tal; printf("\nIndtast et tal, 0 afslutter\n"); do { printf(”Indtast et tal: "); scanf("%d", &list[ant]); } while ( list[ant++] != 0 ); sort(list,--ant); for (tal=0; tal<ant; tal++) printf("%d\n", list[tal]); }

  7. Sortering af data i et array void sort(int liste[], int antal) { int out, in, temp; for (out=0; out<antal-1; out++) for (in=out+1; in<antal; in++) if (liste[out] > liste[in]) { temp = liste[in]; liste[in] = liste[out]; liste[out] = temp; } } sort(list,--ant);

  8. Eksempel for (out=0; out<antal-1; out++) for (in=out+1; in<antal; in++) if (liste[out] > liste[in]) { temp = liste[in]; liste[in] = liste[out]; liste[out] = temp; } list[0] = 45 list[1] = 32 list[2] = 37 list[3] = 24 list[4] = 42 out = 0 => in = 1 liste[0] = 45 > liste[1] = 32 temp = 32 => liste[1] = 45 => liste[0] = 32 for (in fortsætter så længe in<antal) out = 0 => in = 2 => liste[0] > liste[2] NEJ out = 0 => in = 3 => liste[0] > liste[3] JA Byt igen => liste[0] = 24 og liste[3] = 32 24 ender som liste[0], ved næste gennemløb ender 32 i liste[1] osv.

  9. Hovedprogrammet void main(void) { int list[MAXSIZE]; int ant = 0; int tal; printf("\nIndtast et tal, 0 afslutter\n"); do { printf(”Indtast et tal: "); scanf("%d", &list[ant]); } while ( list[ant++] != 0 ); sort(list,--ant); for (tal=0; tal<ant; tal++) printf("%d\n", list[tal]); }

  10. Øvetid Vi mødes igen kl. 11.00

  11. 6. Lektion, pointere • Pointerkonstanter • Pointervariabler

  12. Pointerkonstanter • En pointerkonstant er adressen på en variabel • int x - erklærer en variabel (x), som indeholder et heltal • &x er adressen til variablen x

  13. Et programeksempel void main(void) { int x = 4, y = 7; printf("\nFørste udskrift: x = %d og y = %d ", x, y); get2tal(x, y); printf("\nFjerde udskrift: x = %d og y = %d ", x, y); }

  14. Proceduren - get2tal() void get2tal(int xx, int yy) { int temp; printf("\nAnden udskrift: xx = %d og yy = %d ", xx, yy); temp = xx; xx = yy; yy = temp; printf("\nTredie udskrift: xx = %d og yy = %d ", xx, yy); }

  15. Programeksemplet igen void main(void) { int x = 4, y = 7; printf("\nFørste udskrift: x = %d og y = %d ", x, y); get2tal(x, y); printf("\nFjerde udskrift: x = %d og y = %d ", x, y); }

  16. Pointervariabler • En pointervariabel er en variabel, som indeholder en adresse • Int *x - erklærer en variabel (*x), som kan indeholde et heltal • x indeholder adressen til variablen *x

  17. Et programeksempel void main(void) { int x = 4, y = 7; printf("\nFørste udskrift: x = %d og y = %d ", x, y); get2tal(&x, &y); printf("\nFjerde udskrift: x = %d og y = %d ", x, y); }

  18. Proceduren - get2tal() void get2tal(int *xx, int *yy) { int *temp; printf("\nAnden udskrift: xx = %d og yy = %d ", xx, yy); *temp = *xx; *xx = *yy; *yy = *temp; printf("\nTredie udskrift: xx = %d og yy = %d ", xx, yy); }

  19. int *px => px = &x ?? void main(void) { int x = 4, y = 7; int *px, *py; printf("\nx = %d, y = %d", x, y); px = &x; py = &y; *px = *px + 10; *py = *py + 10; printf("\nx = %d, y = %d", x, y); }

  20. Et eksempel med et array void main(void) { int numre[] = { 92, 81, 70, 69, 58 }; int tal; printf("\n"); for (tal = 0; tal<5; tal++) printf("\nNummer[%d] = %d", tal, numre[tal] ); }

  21. Nu med anvendelse af pointer void main(void) { int numre[] = { 92, 81, 70, 69, 58 }; int tal; printf("\n"); for (tal = 0; tal<5; tal++) printf("\nNummer[%d] =%d", tal, *(numre+tal) ); } numre er adressen på array’et første element tal er en heltalsvariabel

  22. 2-dimensionalt array uden pointer #define MAX 5 #define LEN 40 char liste[MAX] [LEN] = { "Katrine", ”Christian", ”Poul", ”Lotte", ”Henning" };

  23. 2-dimensionalt array med pointer #define MAX 5 #define LEN 40 char *liste[MAX] = { "Katrine", ”Christian", ”Poul", ”Lotte", ”Henning" };

  24. Forskellen i hukommelsen

  25. Slut Nogen spørgsmål til dagens tekst

  26. list[0] = 45 Her er et andet eksempel En tredje tekst Her sker lidt andet

More Related