Iterazioni con controllo in testa:

Slides:



Advertisements
Presentazioni simili
Fondamenti di Informatica
Advertisements

Introduzione al linguaggio C++
Funzioni e procedure Ogni linguaggio di programmazione ad alto livello mette a disposizione del programmatore questi strumenti, ed il C non è da meno!
Preincremento e PostIncremento in C++
Iterazione A. Ferrari.
Linguaggio C++ Selezione.
Procedure e funzioni ricorsive
3TC – 5/11/2010 Cicli while e do.. While Contatori e Totalizzatori.
Lez. 121 Universita' di Ferrara Facolta' di Scienze Matematiche, Fisiche e Naturali Laurea Specialistica in Informatica Algoritmi Avanzati Progettazione.
2ab2 2b4 4x − 2y a 3b2y3 3b2y3b Definizione e caratteristiche
Anno accademico Array e puntatori in C.
Esempio 1: Calcolo del M.C.D.
ESERCITAZIONE N. 5 ESERCIZIO N. 1 Autore: Biagio Brattoli S I Corso.
INFORMATICA Strutture iterative
Introduzione agli algoritmi. Definizione Sistema di regole e procedure di calcolo ben definite che portano alla soluzione di un problema con un numero.
Iterazione enumerativa (for)
Corso di Fondamenti di programmazione a.a.2009/2010
Prof.ssa Chiara Petrioli -- corso di programmazione 1, a.a. 2007/2008 Corso di Programmazione 1 a.a.2007/2008 Prof.ssa Chiara Petrioli Corso di Laurea.
Prof.ssa Chiara Petrioli -- corso di programmazione 1, a.a. 2006/2007 Corso di Programmazione 1 a.a.2006/2007 Prof.ssa Chiara Petrioli Corso di Laurea.
Algoritmi Politecnico di Milano C Primi programmi Politecnico di Milano.
Informatica 2. Concetti fondamentali di programmazione Programmare vuol dire scrivere un algoritmo in un linguaggio che faccia funzionare un calcolatore.
1 Corso di Informatica (Programmazione) Esercitazione 1 (26 novembre 2008)
INTRODUZIONE ALLA PROGRAMMAZIONE STRUTTURATA
DefinizioneUn polinomio si dice…. Operazioni con i polinomi Prodotti notevoli Regola di RuffiniTeorema del resto di Ruffini fine Mammana Achille Patrizio.
APPUNTI SUL LINGUAGGIO C
ITERAZIONE e RICORSIONE (eseguire uno stesso calcolo ripetutamente) ITERAZIONE: ripetere piu volte una sequenza di operazioni istruzioni: for, while, do.
DAL PROBLEMA ALL'ALGORITMO Problemi e Programmi Paolo Amico
ITERAZIONE e RICORSIONE (eseguire uno stesso calcolo ripetutamente)
Procedure e funzioni nei linguaggi di alto livello Lab Programmazione - turno /2006.
Esempi di riuso del codice nei linguaggi di alto livello Lab Programmazione - turno /2006.
Struct, enum, Puntatori e Array dinamici
Strutture di controllo nel C
Esercizi FUNZIONI Passaggio di parametri per valore, variabili e tipi locali e globali, prototipo.
Strutture di controllo in C -- Flow Chart --
Le liste dinamiche La ricorsione
AN FI Iterazione&Invarianti Il ragionamento iterativo Gli invarianti di ciclo.
Programmazione in Java Claudia Raibulet
Calcolo del Massimo Comun Divisore
LA SCOMPOSIZIONE DI POLINOMI IN FATTORI
Algoritmi proprietà e caratteristiche. ottobre 2002(c) Fabrizio d'Amore, IGEA descrizione degli algoritmi codice e pseudo-codice codice e pseudo-codice.
Creazione progetto in C++/DEV
Massimo Comun Divisore
Passaggio di parametri per indirizzo
14 marzo 2002 Avvisi:.
Esercizi su File.
Università degli Studi di BresciaA.A. 2012/2013 Fondamenti di Programmazione Docente: Alessandro SaettiA.A. 2012/2013 Università degli Studi di Brescia.
Università degli Studi di BresciaA.A. 2012/2013 Fondamenti di Programmazione Docente: Alessandro SaettiA.A. 2012/2013 Università degli Studi di Brescia.
Soluzioni e commenti esercizi 1 e 2
Conversione da base 10 a base X (Utilizzo della pila)
Corso di Programmazione in Java – Esercizio n° 001
Ripasso : Algoritmi.
ND-partizione (A) n   A  somma  0 M  1/2 (  a i ) for i  1 to n do S[i]  choice ({true, false}) if S[i] then somma  somma + a i if somma > M then.
Ugo de'Liguoro - Informatica 2 a.a. 03/04 Lez. 1 Cicli ed asserzioni Corso di Informatica 2 a.a. 2003/04 Lezione 1.
Algoritmo per la generazione dei primi 20 numeri dispari Autore: Francesco Russo matr
Una "vera" classe.. ..un esempio pratico: la calcolatrice
Algebra di Boole.
Calcolo letterale.
Informatica B Allievi Elettrici - AA Fondamenti della programmazione in linguaggio C (II) Istruzioni e strutture di controllo.
Algoritmi e basi del C Struttura di un programma
Algoritmi e basi del C Struttura di un programma
PRIMI ELEMENTI DI PROGRAMMAZIONE
1 Sommario lez 1 Concetti principali, domande ed esercizi Concetti principali –algoritmo, programma –struttura di controllo: condizionale (if …), iterativa.
Linguaggio C: Le basi Stefano Cagnoni e Monica Mordonini
C++:Strutture di Controllo
Strutture di controllo
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algoritmi e basi del C Marco D. Santambrogio – Ver. aggiornata al 24 Agosto 2015.
MASSIMO COMUNE DENOMINATORE (M.C.D)
Dal PROBLEMA all’ALGORITMO
Esercizio fatture.
Linguaggio C++ Selezione.
Transcript della presentazione:

Iterazioni con controllo in testa: algoritmi notevoli ed esercizi classici

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

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

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

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

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

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

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

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

Prodotto di due interi positivi 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 l’esecutore non abbia a disposizione l’operatore di moltiplicazione né quello per effettuare la divisione

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

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

Divisione fra due interi positivi Algoritmo risolutivo: esercizio: Divisione fra due interi positivi Inizio Algoritmo risolutivo: #include <iostream.h> 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; } I Leggi(a) I Leggi(b) resto  a quoz  0 resto >= b F V restoresto - b quoz  quoz +1 O Scrivi(quoz) O Scrivi(resto) Fine

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