Unità di apprendimento 7. Dal problema al programma

Documenti analoghi
L istruzione di iterazione o ciclo

Iterazione A. Ferrari

Prof. Pagani Corrado LINGUAGGIO C: SELEZIONE E CICLI

Corso di Informatica

Unità di apprendimento 6. Dal problema al programma

Diagrammi a blocchi 1

Diagrammi a blocchi 1

Analisi strutturata 1

Diagramma a blocchi per la selezione, in un mazzo di chiavi, di quella che apre un lucchetto

Strutture di Controllo

Fondamenti di Informatica A. A. 2018/19

Algoritmi e soluzione di problemi

Le Strutture di controllo Del Linguaggio C. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

2. Algoritmi e Programmi

Le strutture di controllo

Corso di Informatica di Base

Caratteristiche di un calcolatore elettronico

Introduzione alla programmazione

PROGRAMMAZIONE STRUTTURATA

Linguaggio C - le strutture di controllo: sequenza, selezione, iterazione

Corso di Informatica. Problemi ed algoritmi. Ing Pasquale Rota

MODULO 07. La soluzione dei problemi mediante gli algoritmi

STRUTTURE DI CONTROLLO DEL C++

Algoritmi. Pagina 1 di 5

Appunti di informatica. Lezione 8 anno accademico Mario Verdicchio

IL COSTRUTTO ITERAZIONE

Algoritmi e diagrammi di flusso

Errori frequenti Cicli iterativi Array. Cicli e array. Laboratorio di Programmazione I. Corso di Laurea in Informatica A.A.

Fondamenti di Informatica

Fondamenti di Informatica

Modulo 1 Concetti di base della Tecnologia dell Informazione

Strutture di controllo iterative

Altrimenti, il M.C.D. di a e b è anche divisore di r (e.g. a=15,b=6,r=3 che è il M.C.D.)

6 - Blocchi e cicli. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

Programmazione a blocchi. Algobuild Prof. Sergio Roselli

Algoritmi e diagrammi di flusso versione biennio

LA METAFORA DELL UFFICIO

INFORmazione+autoMATICA. Perché saperne di piu? Le fasi della programmazione. Cosa intendiamo per programmazione

Fondamenti di Informatica 6. Algoritmi e pseudocodifica

(A) CONOSCENZA TERMINOLOGICA (B) CONOSCENZA E COMPETENZA

Introduzione alla programmazione Esercizi risolti

L uomo come esecutore di algoritmi

Strutture di Controllo

Sommario. Problema computazionale Sviluppo software Algoritmi. Istruzioni Sequenziali, Condizionali, Cicliche; Javascript

Appunti di informatica. Lezione 4 anno accademico Mario Verdicchio

Linguaggio Testuale. E un formalismo che consente di rappresentare gli algoritmi mediante semplici istruzioni in linguaggio «parlato»

UTILIZZIAMO GLI OPERATORI MATEMATICI E COMMENTIAMO IL CODICE

Algoritmi. Andrea Passerini Conoscenze informatiche e relazionali Corso di laurea in Scienze dell Ingegneria Edile

INFORMATICA. Strutture iterative

Dall analisi alla codifica (1)

Anno 1. Divisione fra polinomi

Istruzioni di Controllo in C. Emilio Di Giacomo

Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l ambiente e il territorio

COSA SONO I FLOW CHART

1 Esercizi in pseudocodice

Il computer. Il case e l'unità di elaborazione. Il computer, una macchina aggiornabile.

LEZIONE DI MATEMATICA SISTEMI DI NUMERAZIONE. (Prof. Daniele Baldissin)

ALGORITMI. Obiettivo: risolvere problemi mediante l uso di un elaboratore elettronico. Elaboratore elettronico

Paolo Bison. Fondamenti di Informatica A.A. 2006/07 Università di Padova

Istruzioni di Ciclo. Unità 4. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER

Unità di apprendimento 6. Dal problema al programma

Cicli. S i a i = a 1 + a 2 + a a n

Sviluppo di programmi. E ora, finalmente. Si comincia! 1. Analizzare il problema. 2. Progettare una soluzione (1) E necessario capire:

Algoritmi e diagrammi di flusso Classi seconde

Dispensa di Informatica II.1

ALGORITMI 2 FINALITÁ

Lezione 5. La macchina universale

Sommario. Problema computazionale Sviluppo software Algoritmi. Istruzioni Sequenziali, Condizionali, Cicliche; Javascript

La rappresentazione dell algoritmo Diagrammi di flusso

La ripetizione. Cicli ed iterazioni. Flusso di esecuzione ciclico. La ripetizione. Flusso di esecuzione ciclico. Errore frequente

Iterazione determinata e indeterminata

Il computer. Il case e l'unità di elaborazione. Il computer, una macchina aggiornabile.

Diagrammi di flusso - Flowcharts. E un formalismo che consente di rappresentare graficamente gli algoritmi

print((math.floor(1345/10)%10); print (Math.floor(1345/100)%10); Le funzioni in JavaScript

Università degli Studi di Verona. Algoritmie Diagrammidiflusso. Gennaio Sergio Marin Vargas. Dipartimento di Biotecnologie

Appunti del corso di Informatica 1 (IN110 Fondamenti) 2 Algoritmi e diagrammi di flusso

Fondamenti di Informatica

Introduzione agli Algoritmi. Prof. Francesco Pappalardo

Sommario. Tecniche di Decomposizione dei Problemi. Algoritmi: Costruzione. Tipi di problemi

ELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE)

Le istruzioni cicliche o iterative: for e while

Rappresentazione con i diagrammi di flusso (Flow - chart)

6) Descrivere con un diagramma a blocchi un algoritmo che legga da input due numeri ne calcoli il prodotto in termini di somme ripetute.

Fabrizio Messina, Marzio Pennisi

Implementazione di DFA in C

Programmazione Procedurale in Linguaggio C++

Blocchi di base. Schemi: Sequenza Selezione Iterazione. Flow chart strutturati Sequenza Selezione Iterazione. Teorema di Bohm e Jacopini

ALGORITMI E SOLUZIONI DI PROBLEMI

La formalizzazione dell informazione: Dati e Diagrammi di Flusso

Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Fondamenti di Informatica.

Dopo output: risposta

Casting, operatori matematici e commento del codice

Liceo Marie Curie (Meda) Scientifico Classico Linguistico PROGRAMMAZIONE DISCIPLINARE PER COMPETENZE

Il concetto di calcolatore e di algoritmo

Introduzione agli Algoritmi

Ancora sui criteri di divisibilità di Marco Bono

Rappresentazione degli algoritmi

Transcript:

Unità di apprendimento 7 Dal problema al programma

Unità di apprendimento 7 Lezione 5 Conosciamo l iterazione definita e indefinita

In questa lezione impareremo: che cos è l istruzione di iterazione come descriverla utilizzando i diagrammi a blocchi il linguaggio di progetto In linguaggio BYOB

L istruzione di iterazione o ciclo Negli algoritmi può capitare che alcune operazioni debbano essere eseguite più di una volta. Alcune istruzioni potrebbero dover essere ripetute in modo identico. Se ad esempio dobbiamo effettuare il conto alla rovescia da 10 a 1, + necessario ripetere per 10 volte l operazione sottrai 1.

L istruzione di iterazione o ciclo Oppure se dobbiamo riempire d acqua una vasca da bagno utilizzando un bicchiere è necessario versare ripetutamente il contenuto del bicchiere finché la vasca non risulti piena. La ripetizione di un insieme di istruzioni prende il nome di iterazione o ciclo (in inglese, loop).

L istruzione di iterazione o ciclo con l istruzione di ciclo indichiamo al calcolatore che deve ripetere un gruppo di istruzioni: un numero di volte ben determinato, come nel caso del conteggio; finché non si verifica una situazione, come nel caso della vasca.

L istruzione di iterazione o ciclo Quando il numero di ripetizioni è noto a priori, cioè sappiamo quante volte le istruzioni devono essere ripetute, il ciclo prende il nome di iterazione definita. Quando invece il ciclo viene ripetuto un numero di volte sconosciuto a priori prende il nome di l iterazione indefinita.

L istruzione di iterazione o ciclo Di seguito riportiamo alcuni esempi dei due diversi tipi di istruzioni.

L istruzione di iterazione o ciclo Nelle iterazioni definite è sempre presente un numero. viene sempre indicato chiaramente quante volte deve essere eseguita una operazione. Nelle iterazioni indefinite non si sa per quante volte questa debba essere ripetuta.

L istruzione di iterazione o ciclo Esempio: conto alla rovescia Un missile è in partenza dalla base spaziale Venere1: mancano 20 secondi al lancio e deve essere effettuato il conto alla rovescia. Il diagramma di flusso viene realizzato utilizzando i blocchi già conosciuti. Per ottenere la ripetizione ciclica combiniamo un istruzione di test con una (o più) istruzioni di esecuzione.

L istruzione di iterazione o ciclo

Codifichiamo l iterazione Lo schema generale di una istruzione iterativa è: Possiamo osservare come il percorso di un ramo formi un anello con l istruzione di test.

Codifichiamo l iterazione Esistono diversi tipi di ciclo Una scrittura in linguaggio di progetto che permette di descrivere tutti i tipi di ciclo è la seguente:

Codifichiamo l iterazione Codifichiamo l esempio precedente in linguaggio di progetto:

Realizziamo lo stesso algoritmo con Algo-Build

La tabella di traccia o trace table Uno strumento molto utile che ci permette di seguire passo passo il funzionamento del programma è la tabella di traccia (o trace table). In questa tabella sono presenti tante colonne quante sono le istruzioni da controllare.

La tabella di traccia o trace table Riprendiamo l esempio del missile: la tabella ha le seguenti colonne: La tabella viene realizzata aggiungendo una riga per ogni istruzione eseguita e riportando in ogni colonna l esito che questa istruzione ha avuto nel programma.

La tabella di traccia o trace table

La tabella di traccia o trace table Vediamo un secondo esempio Dobbiamo visualizzare sullo schermo i multipli di 7 che hanno valore inferiore al numero 50. Descriviamo innanzitutto a parole il procedimento che intendiamo utilizzare.

La tabella di traccia o trace table incominciamo con il numero 7 continuiamo a sommare a questo il numero 7 ripetiamo queste operazioni finché non otteniamo un numero > di 50 a questo punto ci fermiamo uscendo dal ciclo scriviamo che l elaborazione è terminata

La tabella di traccia o trace table Il diagramma di flusso è il seguente:

La tabella di traccia o trace table Traducendolo in pseudocodifica avremo

La tabella di traccia o trace table Osservazione Poiché all interno del ciclo dobbiamo eseguire due istruzioni, è necessario racchiuderle tra una istruzione di inizio e una di fine, in modo da non confonderle con le istruzioni di inizio e fine esterne al ciclo.

La tabella di traccia o trace table

La tabella di traccia o trace table Nella tabella sono indicate con lo stesso sfondo le operazioni presenti nel blocco di iterazione Quelle cioè racchiuse tra una istruzione di inizio e una di fine

Realizziamo ora lo stesso algoritmo con AlgoBuild

L iterazione definita Negli esempi visti non conoscevamo mai in anticipo il numero delle volte che doveva essere ripetuto il ciclo. Un insieme di problemi sono invece caratterizzati dal fatto di avere come dato iniziale proprio il numero di volte che un compito deve essere eseguito.

L iterazione definita Alcune situazioni sono le seguenti:

L iterazione definita In tutte queste situazioni il numero delle iterazioni è noto a priori, quindi definito. Nei linguaggi di programmazione esiste una istruzione che permette di codificare questo tipo di ciclo: il ciclo a conteggio, o ciclo for. Il suo nome deriva dal fatto che viene realizzato mediante un contatore che, per ogni volta che viene eseguito il corpo del ciclo, automaticamente viene aggiornato (incrementato).

L iterazione definita Il ciclo a conteggio prende anche il nome di ciclo enumerativo, in quanto il suo principio di funzionamento è quello di enumerare, cioè contare, la sequenza delle ripetizioni. A tal fine si utilizza un contatore che ad ogni iterazione viene incrementato di un valore costante che prende il nome di passo del contatore (o passo del ciclo).

L iterazione definita Esempio: prepara un budino per ogni compagno di classe Per prima cosa è necessario sapere il numero dei compagni di classe. Successivamente ripeteremo per tante volte la stessa operazione di preparare un budino quanti sono i compagni. Useremo proprio il numero_di_compagni come contatore delle ripetizioni del nostro ciclo a conteggio.

L iterazione definita La codifica in pseudolinguaggio è molto semplice:

L iterazione definita Il corrispondente diagramma di flusso è:

Leggi un numero e visualizza sullo schermo la tabellina dei suoi primi 10 multipli

Equivalenza con i blocchi BYOB

Codifica esercizio «conto alla rovescia» Linguaggio di progetto dell algoritmo

Codifica esercizio «costo per andare a scuola» Per realizzare questo Script basta definire una sola Variabile e la chiamiamo numero che inizializziamo ad un valore predefinito(20):

Codifica esercizio «costo per andare a scuola» Come variante leggiamo in input il valore della variabile numero ed effettuiamo il conto alla rovescia a partire del numero inserito.

Codifica esercizio «multipli di 7» Linguaggio di progetto dell algoritmo

Codifica esercizio «multipli di 7» Codifica in BYOB Definiamo due Variabili numero e multiplo: la prima inizializzata a 50 e la seconda a 7.

Codifica esercizio «multipli di 7» Modifichiamo ora lo Script leggendo in input il numero finale

Codifica esercizio «prepara i budini per la classe» Linguaggio di progetto dell algoritmo

Codifica esercizio «prepara i budini per la classe» Codifica in BYOB:

Codifica esercizio «costo per andare a scuola» Miglioriamo lo Script rendendolo più comprensibile: contiamo i budini prodotti:

ABBIAMO IMPARATO CHE...