Esercitazione 1, esercizi svolti su comprensione e modifica del codice - algoritmi e strutture dati - a.a. 2013/2014 PDF

Title Esercitazione 1, esercizi svolti su comprensione e modifica del codice - algoritmi e strutture dati - a.a. 2013/2014
Course Algoritmi e strutture di dati
Institution Università degli Studi Roma Tre
Pages 3
File Size 20.9 KB
File Type PDF
Total Downloads 45
Total Views 125

Summary

Esercitazione 1, esercizi svolti su comprensione e modifica del codice - algoritmi e strutture dati - a.a. 2013/2014...


Description

/* 1) Spiegare cosa fa la funzione f1 e dafinirne una versione ricorsiva f1_r: int f1(int N1, int N2) { int x = N1; N1++; while( N2 >= N1 ) { x += N1; N1++; } return x; } La funzione f1, ricevuti due interi N1 ed N2, calcola e restituisce la somma di tutti gli interi appartenenti all'intervallo [N1, N2]. Una versione ricorsiva di f1 è la seguente: int f1_r(int N1, N2) { if( N1 == N2 ) return N1; return ( N1 + f1_r(N1 + 1, N2) ); }

2) Spiegare cosa fa la funzione f2 e dafinirne una versione ricorsiva f2_r: 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; } La funzione f2, ricevuti un array di interi a ed un numero intero N, calcola e restituisce il massimo tra i primi N elementi di a. Una versione ricorsiva di f1 è la seguente: int f2_r(int a[], int N) {

int x = a[0]; return f2_rr(int a[], x, N); } 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); } }

3) Spiegare cosa fa la funzione f3 e dafinirne una versione ricorsiva f3_r: int f3(char[] a, char c) { int i = 0; int x = 0; while( a[i] != '\0' ) { if ( a[i] == c ) x++; i++; } return x; } La funzione f3, ricevuti in input un array di caratteri a ed un carattere c, conta e restituisce il numero di occorrenze di c in a. Una versione ricorsiva di f1 è la seguente: int f3_r(char a[], char c) { return f3_rr(a[], 0, c); } int f3_rr(char a[], int i, char c) {

if( a[i] == '\0' ) return 0; if( a[i] == c ) return ( 1 + f3_rr(a[], i + 1, c) ); return f3(a[], i + 1, c); } */...


Similar Free PDFs