Iterazioni controllo in testa algoritmi notevoli ed esercizi

  • Slides: 15
Download presentation
Iterazioni controllo in testa: algoritmi notevoli ed esercizi classici

Iterazioni controllo in testa: algoritmi notevoli ed esercizi classici

Esercizio Dati due valori interi positivi calcolarne il prodotto supponendo che l’esecutore non abbia

Esercizio Dati due valori interi positivi calcolarne il prodotto supponendo che l’esecutore non abbia a disposizione l’operatore di moltiplicazione né quello per effettuare la divisione

esercizio: Prodotto di due interi positivi Analisi del problema: DATI DI INPUT due valori

esercizio: Prodotto di due interi positivi Analisi del problema: DATI DI INPUT due valori interi positivi DATI DI OUTPUT prodotto

esercizio: Prodotto di due interi positivi Analisi del problema: Schema dati Identificatore Descrizione Var/Cost

esercizio: Prodotto di due interi positivi Analisi del problema: Schema dati Identificatore Descrizione Var/Cost Tipo a Primo fattore VAR Num b Secondo fattore VAR Num prodotto Prodotto di a e b VAR Num contatore VAR Num cont Schema variabili Identificatore input a X b X prodotto cont output lavoro X X

esercizio: Prodotto di due interi positivi Algoritmo risolutivo: Inizio a I b int cont;

esercizio: Prodotto di due interi positivi Algoritmo risolutivo: Inizio a I b int cont; // contatore prodotto 0 int prodotto; // Var output cin>>a; cont 0 cin>>b; F V prodotto + a cont + 1 prodotto O Fine int main() { int a, b; // fattori VAR Input I cont < b #include <iostream. h> prodotto=0; cont=0; while (cont<b) { prodotto=prodotto+a; cont=cont+1; } cout<<prodotto; return 0; }

esercizio: Prodotto di due interi positivi Fate la tabella di traccia!!!

esercizio: Prodotto di due interi positivi Fate la tabella di traccia!!!

esercizio: Prodotto di due interi positivi: TRACE { int a, b; // fattori VAR

esercizio: Prodotto di due interi positivi: TRACE { int a, b; // fattori VAR Input int cont; // contatore int prodotto; // Var output N° istr 1 1 cin>>a; 2 2 cin>>b; 3 3 prodotto=0; 4 4 cont=0; 5 5 while (cont<b) 6 { 6 prodotto=prodotto+a; 7 cont=cont+1; } 8 cout<<prodotto; 9 return 0; } 7 a b cont prodot 2 0 0 V 3 1 V 6 5 8 9 video 3 5 7 ? 6 2 F 6

esercizio: Prodotto di due interi positivi Altra soluzione equivalente: Decrementiamo il contatore!

esercizio: Prodotto di due interi positivi Altra soluzione equivalente: Decrementiamo il contatore!

esercizio: Prodotto di due interi positivi Algoritmo risolutivo: Inizio a I b int cont;

esercizio: Prodotto di due interi positivi Algoritmo risolutivo: Inizio a I b int cont; // contatore prodotto 0 int prodotto; // Var output cin>>a; cont b cin>>b; F V prodotto + a cont - 1 prodotto O Fine int main() { int a, b; // fattori VAR Input I cont > 0 #include <iostream. h> prodotto=0; cont=b; while (cont>0) { prodotto=prodotto+a; cont=cont-1; } cout<<prodotto; return 0; }

esercizio: Prodotto di due interi positivi E se fosse a=0? E se fosse b=0?

esercizio: Prodotto di due interi positivi E se fosse a=0? E se fosse b=0?

Esercizio Dati due valori interi positivi calcolarne il quoziente ed il resto supponendo che

Esercizio Dati due valori interi positivi calcolarne il quoziente ed il resto supponendo che l’esecutore non abbia a disposizione l’operatore di moltiplicazione né quello per effettuare la divisione

esercizio: Divisione fra due interi positivi Analisi del problema: DATI DI INPUT due valori

esercizio: Divisione fra due interi positivi Analisi del problema: DATI DI INPUT due valori interi positivi DATI DI OUTPUT quoziente, resto

esercizio: Prodotto di due interi positivi Analisi del problema: Schema dati Identificatore Descrizione Var/Cost

esercizio: Prodotto di due interi positivi Analisi del problema: Schema dati Identificatore Descrizione Var/Cost Tipo a dividendo VAR Num b divisore VAR Num quoziente di a e b (contatore) VAR Num resto Resto della divisione VAR Num Schema variabili Identificatore input a X b X output quoz X resto X lavoro

esercizio: Divisione fra due interi positivi Inizio Leggi(a) Leggi(b) I Algoritmo risolutivo: #include <iostream.

esercizio: Divisione fra due interi positivi Inizio Leggi(a) Leggi(b) I Algoritmo risolutivo: #include <iostream. h> I resto a quoz 0 resto >= b F V resto - b quoz +1 Scrivi(quoz) O Scrivi(resto) Fine O int main() { int a, b; // VAR Input int quoz; // contatore var out int resto; // Var output cin>>a; cin>>b; resto=a; quoz=0; while (resto>=b) { resto = resto - b; quoz = quoz + 1; } cout<<quoz; cout<<resto; return 0; }

esercizio: Prodotto di due interi positivi Fate la tabella di traccia!!!

esercizio: Prodotto di due interi positivi Fate la tabella di traccia!!!