comprensione e modifica di codice Esercitazione: comprensione e modifica di codice Dato un codice, bisogna comprendere cosa fa modificare tale codice secondo certe condizioni
comprensione e modifica di codice Esercitazione: comprensione e modifica di codice int f1(int N1, int N2){ int x = N1; N1++; while (N2 >= N1) { x += N1; } return x;
comprensione e modifica di codice Esercitazione: comprensione e modifica di codice Dato un codice, bisogna comprendere cosa fa assegnati due interi N1 e N2, f1 restituisce la somma di tutti gli interi compresi tra N1 e N2 (compresi) modificare tale codice secondo certe condizioni scrivere la versione ricorsiva f1_r di f1
comprensione e modifica di codice Esercitazione: comprensione e modifica di codice int f1_r(int N1, int N2){ if (N2 == N1) return N2; else { int x = N1; N1++; return x + f1_r(N1,N2); }
comprensione e modifica di codice Esercitazione: comprensione e modifica di codice int f2(int a[], int N){ int x = a[0]; int i = 1; for (i = 1; i < N; i++) if (a[i] > x) x = a[i]; return x; }
comprensione e modifica di codice Esercitazione: comprensione e modifica di codice Dato un codice, bisogna comprendere cosa fa Dato un vettore A di interi di dimensione N, f2 calcola il massimo valore degli elementi di A modificare tale codice secondo certe condizioni scrivere la versione ricorsiva f2_r di f2
comprensione e modifica di codice Esercitazione: comprensione e modifica di codice int f2_rr(int a[], int x, int N){ if (N == 0) return x; else {if (a[N] > x) x = a[N]; return f2_rr(a,x,N-1);} } int f2_r(int a[], int N) { int x = a[0]; return f2_rr(a,x,N-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;
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
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);