La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

comprensione e modifica di codice

Presentazioni simili


Presentazione sul tema: "comprensione e modifica di codice"— Transcript della presentazione:

1 comprensione e modifica di codice
Esercitazione: comprensione e modifica di codice int f3(char a[], char c){ int i = 0; int x = 0; while (a[i] != '\0'){ if (a[i] == c) x++; i++; } return x;

2 comprensione e modifica di codice
Esercitazione: comprensione e modifica di codice Dato un codice, bisogna comprendere cosa fa Data una stringa A ed un carattere c, f3 calcola le occorrenze di c in A modificare tale codice secondo certe condizioni scrivere la versione ricorsiva f3_r di f3

3 comprensione e modifica di codice
Esercitazione: comprensione e modifica di codice int f3_rr(char a[], int i, char c){ if (a[i] == '\0') return 0; else if (a[i] == c) return 1 + f3_rr(a,i+1,c); else return f3_rr(a,i+1,c); } int f3_r(char a[], char c){ return f3_rr(a,0,c);

4 comprensione e modifica di codice
Esercitazione: comprensione e modifica di codice Dato un codice, bisogna comprendere cosa fa ottimizzare tale codice secondo certe condizioni

5 comprensione e modifica di codice
Esercitazione: comprensione e modifica di codice int f4(int a[], int n){ int x = 0; int y = 0; int e; int i,j; for (i = 0; i < n; i++){ e = a[i]; y = 0; if (e>= 0 && e <= 9) { y = 1; for (j = i+1; j < n; j++) if (e == a[j]) y++; } if (x < y) x = y; return x;

6 comprensione e modifica di codice
Esercitazione: comprensione e modifica di codice Dato un codice, bisogna comprendere cosa fa dato un array di interi A, restituisce il massimo numero di occorrenze con cui si ripete un numero (il cui valore è compreso tra 0 e 9) in A

7 comprensione e modifica di codice
Esercitazione: comprensione e modifica di codice 2 2 13 2 5 2 2 13 2 5 2 2 13 2 5 2 2 13 2 5 2 2 13 2 5

8 comprensione e modifica di codice
Esercitazione: comprensione e modifica di codice Dato un codice, bisogna comprendere cosa fa dato un array di interi A, restituisce il massimo numero di occorrenze con cui si ripete un numero (il cui valore è compreso tra 0 e 9) in A ottimizzare tale codice scrivere la versione f4_o di f4 tale per cui l’array sia visitato una sola volta.

9 comprensione e modifica di codice
Esercitazione: comprensione e modifica di codice 2 2 13 2 5 [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] 3 1 3

10 comprensione e modifica di codice
Esercitazione: comprensione e modifica di codice int f4_o(int a[], int n) { int b[10] = {0,0,0,0,0,0,0,0,0,0}; int x = 0; int i = 0; for (i = 0; i < n; i++) if (a[i] >= 0 && a[i] <= 9) { b[a[i]]++; if (b[a[i]] > x) x = b[a[i]]; } return x;

11 comprensione e modifica di codice
Esercitazione: comprensione e modifica di codice typedef struct elem{ int info; struct elem* next; } elist; typedef elist* plist; int lungLista(plist L){ int cont = 0; while (L != NULL) { cont++; L = L->next; } return cont;

12 comprensione e modifica di codice
Esercitazione: comprensione e modifica di codice int f5(plist L, int k){ int x = lungLista(L); int i = x - k; while (i > 1) { L = L->next; i--; } return L->info;

13 comprensione e modifica di codice
Esercitazione: comprensione e modifica di codice Dato un codice, bisogna comprendere cosa fa data una lista L di interi e un numero K, restituisce il valore del campo info dell’elemento in L posto a distanza K dall’ultimo nodo.

14 comprensione e modifica di codice elemento in posizione x - k
Esercitazione: comprensione e modifica di codice 2 2 13 2 5 distanza k lunghezza x 2 2 13 2 5 elemento in posizione x - k

15 comprensione e modifica di codice
Esercitazione: comprensione e modifica di codice Dato un codice, bisogna comprendere cosa fa data una lista L di interi e un numero K, restituisce il valore del campo info dell’elemento in L posto a distanza K dall’ultimo nodo. ottimizzare tale codice scrivere la versione f5_o di f5 tale per cui la lista sia visitata una sola volta, non si usino strutture dati di supporto e siano considerate anche eccezioni sugli input.

16 comprensione e modifica di codice
Esercitazione: comprensione e modifica di codice 2 2 13 2 5 p1 p2 distanza k

17 comprensione e modifica di codice
Esercitazione: comprensione e modifica di codice 2 2 13 2 5 p2 p1 distanza k

18 comprensione e modifica di codice
Esercitazione: comprensione e modifica di codice 2 2 13 2 5 distanza k p2 p1

19 comprensione e modifica di codice
Esercitazione: comprensione e modifica di codice 2 2 13 2 5 distanza k p2 p1

20 comprensione e modifica di codice
Esercitazione: comprensione e modifica di codice int f5_o(plist L, int k){ plist p1 = L; plist p2 = L; while ((k >= 1) && (p2 != NULL)) { p2 = p2->next; k--; } if (p2 == NULL) return; while (p2->next != NULL){ p1 = p1->next; return p1->info;


Scaricare ppt "comprensione e modifica di codice"

Presentazioni simili


Annunci Google