10 STRUTTURE DI CONTROLLO REPEAT E WHILE. Strutture di controllo e variabili strutturate

Documenti analoghi
PIANO LAUREE SCIENTIFICHE. LABORATORIO PLS LOGICA e INFORMATICA

Principali strumenti per lo sviluppo di algoritmi in pascal-like. concetti universali presenti in tutti i linguaggi di programmazione

Dalla prima lezione. LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 7 VARIABILI E COSTANTI 28/02/2016. Concetto di algoritmo

Evoluzione del FORTRAN 14/03/2016. LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 15 IL LINGUAGGIO FORTRAN

STRUTTURE DI CONTROLLO

Introduzione alla programmazione

Fondamenti di Informatica 6. Algoritmi e pseudocodifica

PROGRAMMAZIONE: Le strutture di controllo

Gli errori nella risoluzione di un problema

Fondamenti di Informatica

Matlab. Istruzioni condizionali, cicli for e cicli while.

Programmazione a blocchi. Algobuild Prof. Sergio Roselli

IL TEOREMA DI BOEHM-JACOPINI

Rappresentazione degli algoritmi

Introduzione agli Algoritmi

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

Lez. 8 La Programmazione. Prof. Pasquale De Michele (Gruppo 2) e Raffaele Farina (Gruppo 1) 1

Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura

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.)

Problemi e algoritmi. Il che cosa ed il come. Il che cosa ed il come. Il che cosa e il come

Algoritmo: procedimento non ambiguo che in un numero finito di passi risolve un problema (o una classe di problemi)

Algoritmi e soluzione di problemi

Interazione tra matematica e informatica

Programmazione strutturata IV e Gli array. Dove siamo. Un esercizio. Oggi. Schema 1. Prima idea. 7. Programmazione strutturata 4 & Array

PROGRAMMAZIONE STRUTTURATA

Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software

Scaletta. Cenni di computabilità. Cosa fa un programma? Definizioni (1/2) Definizioni (2/2) Problemi e domande. Stefano Mizzaro 1

Progetto e analisi di algoritmi

Rappresentazione con i diagrammi di flusso (Flow - chart)

Appunti di informatica. Lezione 5 anno accademico Mario Verdicchio

Introduzione agli Algoritmi 4. Problemi. Dal Problema alla Soluzione

Formalismi per la descrizione di algoritmi

osservazione: 1 MCD(m,n) min(m,n) = si provano i numeri compresi tra 1 e min(m,n) conviene iniziare da min(m,n) e scendere verso 1

Dalla precedente lezione: LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 3 LA RAPPRESENTAZIONE DEI DATI (1) 28/02/2016

ELEMENTI DI INFORMATICA L-B. Ing. Claudia Chiusoli

Cognome e Nome : Corso e Anno di Immatricolazione: Modalità di Laboratorio (Progetto/Prova) :

Elementi di Informatica e Programmazione

Programma svolto di INFORMATICA. Classe 3M - indirizzo MERCURIO A.S. 2010/2011

in termini informali: un algoritmo è una sequenza ordinata di operazioni che risolve un problema specifico

PIANO DI LAVORO. a.s / 2016

Programma svolto di INFORMATICA. Classe 3 - indirizzo MERCURIO A.S. 2009/2010

= < < < < < Matematica 1

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

Fondamenti di Informatica

Corso di Informatica

ELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE)

Lez. 5 La Programmazione. Prof. Salvatore CUOMO

Array e Oggetti. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 12. A. Miola Dicembre 2006

Istruzioni Condizionali

COMPLESSITÀ COMPUTAZIONALE DEGLI ALGORITMI

INFORMATICA. Strutture iterative

CORSO DI LABORATORIO DI INFORMATICA

Algebra di Boole: Concetti di base. E un algebra basata su tre operazioni logiche

Appunti di informatica. Lezione 7 anno accademico Mario Verdicchio

Lezione 5. La macchina universale

Informatica/ Ing. Meccanica/ Prof. Verdicchio/ 13/09/2013/ Foglio delle domande/versione 1

RAPPRESENTAZIONE GLI ALGORITMI NOTAZIONE PER LA RAPPRESENTAZIONE DI UN ALGORITMO

Fondamenti di Informatica. Algoritmi di Ricerca e di Ordinamento

STRUTTURE (O COSTRUTTI) DI CONTROLLO

A lezione sono stati presentati i seguenti passi per risolvere un problema:

LA METAFORA DELL UFFICIO

Analisi e Programmazione

Valori Alfanumerici. Informatica di Base -- R.Gaeta 1

Studio degli algoritmi

2.3 Cammini ottimi. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1

Università degli Studi di Brescia INFORMATICA. Dipartimento di Ingegneria Meccanica e Industriale

Corso di Fondamenti di Informatica

Esercitazione 6. Array

Laboratorio di Python

Corso di Fondamenti di Informatica Classi di istruzioni 2

ALGORITMI: PROPRIETÀ FONDAMENTALI

Diagrammi a blocchi 1

Diagrammi a blocchi 1

unità didattica 3 Le strutture condizionali e le strutture iterative

Introduzione alla programmazione strutturata

Informatica. Informatica. Problema - soluzione. Algoritmi, dati e programmi. Introduzione ai concetti di: Distinguiamo tra: problema

Algoritmi di Ricerca. Esempi di programmi Java

Algoritmi, Strutture Dati e Programmi. UD 2.b: Programmazione in Pascal

PREPARAZIONE ALLE GARE DI MATEMATICA - CORSO BASE

I costrutti forniti dal linguaggio si dividono in corrispondenti classi di istruzioni

Laboratorio di Calcolo Numerico

CORSO DI PROGRAMMAZIONE

Programmazione I. Fondamenti di programmazione. Problemi, Algoritmi, Diagrammi di flusso

Lezione 4. Problemi trattabili e soluzioni sempre più efficienti. Gianluca Rossi

Algoritmi di Ricerca. Esempi di programmi Java

PROGRAMMAZIONE (Corso A)

Il Concetto di Algoritmo Corso di Informatica Laurea in Fisica

PROBLEMI ALGORITMI E PROGRAMMAZIONE

Dispensa di Informatica II.1

LABORATORIO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO III Indice

Strutture di controllo iterative

Strutture di Controllo

Informatica Generale Andrea Corradini Gli algoritmi e la risoluzione di problemi

Sistemi Web per il turismo - lezione 3 -

Scrivere il software. Scrivere il software. Interprete. Compilatore e linker. Fondamenti di Informatica

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

Dal Problema all Algoritmo. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Lezione 7: La Formalizzazione degli Algoritmi - Strutture di Controllo e Selettive La Programmazione Strutturata (3 p) Giovedì 21 Ottobre 2010

Metodo di Euclide delle sottrazioni successive per il calcolo del M.C.D.

Chi sono? Come contattarmi? Introduzione ai Diagrammi di Flusso

Transcript:

LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 10 STRUTTURE DI CONTROLLO REPEAT E WHILE Marco Lapegna Dipartimento di Matematica e Applicazioni Universita degli Studi di Napoli Federico II wpage.unina.it/lapegna Dalla precedente lezione Strutture di controllo e variabili strutturate Struttura di selezione if-then-else-endif Struttura di iterazione for-endfor Definiscono l ordine con cui vengono eseguite le istruzioni di un algoritmo Variabili strutturate (array) Permettono l accesso a dati organizzati in vettori o matrici attraverso un indice Sono concetti universali presenti in ogni linguaggio di programmazione 1

Esempio Dato un array di nomi (un elenco) di lunghezza N determinare la posizione nell array di un nome da cercare Dati di input: N (lunghezza dell elenco) Elenco(1),..,Elenco(N) (l elenco) NOME (nome da cercare) Dati di output Pos (la posizione di NOME in Elenco) Ricerca di maria nell array Elenco IDEA Esaminare uno alla volta gli elementi di Elenco, e confrontarli con il NOME RICERCA SEQUENZIALE Problema: quando terminare? Ci si deve arrestare quando: Si trova il NOME nell Elenco oppure Si scorre tutto l Elenco ma NOME non e presente (si assume Pos=0) Esempio1: N = 5; NOME = maria ; Elenco=( anna, ciro, bruno, maria, dario ) Pos = 4 (i=4 iterazioni) Esempio2: N = 5; NOME = giacomo; Elenco=( anna, ciro, bruno, maria, dario ) Pos = 0 (i=5 iterazioni) Flow chart della ricerca sequenziale 2

La struttura repeat-until in pascal like In pascal-like una tale struttura di iterazione e realizzata con la struttura repeat-until In generale Flow chart della struttura repeat-until Vengono eseguite ripetutamente le Istruzioni comprese tra repeat e until Ci si arresta quando la condizione posta alla fine della struttura risulta vera La struttura repeat-until in pascal-like Ricerca sequenziale in pascal-like Osservazione: In generale la condizione di arresto puo essere la combinazione di piu operazioni logiche legate dagli operatori OR, AND e NOT L algoritmo per la ricerca sequenziale in pascal like e allora Ricerca squenziale in pascal-like 3

for-endfor e repeat-until Osservazione: In generale la condizione di arresto puo essere la combinazione di piu operazioni logiche legate dagli operatori OR, AND e NOT La struttura repeat-until e piu flessibile e generale della struttura for-endfor Una struttura repeat-until con una condizione di arresto solo sul numero di passi e equivalente ad una struttura for-endfor Equivalenza tra for-endfor e repeat-until L indice i va gestito esplicitamente esempio La struttura repeat-until e utile per far si che un dato di input sia corretto Esempio: Leggere un array di lunghezza N, assicurandosi prima che N > 0 Idea : Leggere ripetutamente N fino a che N>0 Lettura con controllo di un dato di input 4

Esempio: calcolo del M.C.D. M.C.D. tra A e B (non entrambi nulli) Metodo delle divisioni successive (o di Euclide) Si DIVIDE il MAGGIORE di essi per il MINORE; Se il RESTO della divisione è ZERO, il M.C.D. è il numero MINORE (ovvero il divisore); Se il RESTO della divisione è DIVERSO da ZERO si DIVIDE il numero MINORE per tale RESTO. Si continua così fino ad ottenere una divisione per ZERO. Il M.C.D. cercato è il DIVIDENDO dell'ultima divisione. Esempio: M.C.D.(57,45) = 3 Il metodo delle divisioni successive per il MCD Un possibile algoritmo E necessario effettuare la divisione (intera) tra A e B Calcolare Il quoziente Q Il resto R Rinominare A e B per la successiva divisione Ripetere finche B==0 PROBLEMA Cosa accade se il dato di input B=0? Un possibile algoritmo in pascal like per il MCD tra A e B 5

Problema Se il minore dei due numeri (cioe B) e uguale a zero, non e possibile eseguire l algoritmo Ma il MCD con B=0 e definito! Es. M.C.D. (5,0) = 5 (cioe A) Soluzione: Eseguire il test su B PRIMA della divisione Flow chart per il MCD (seconda versione) La struttura iterativa while-endwhile La struttura di iterazione while-endwhile Esegue ripetutamente le istruzioni comprese tra while e endwhile, ma a differenza del repeat-until PRIMA valuta la condizione DOPO esegue le istruzioni Flow chart della struttura while-endwhile Le istruzioni vengono eseguite se la condizione risulta VERA La struttura while-endwhile in pascal like 6

Algoritmo del MCD in pascal like L algoritmo del MCD puo allora essere riscritto utilizzando la struttura while-endwhile In questo modo l algoritmo puo essere utilizzato anche quando il dato di input B=0 Algoritmo del MCD in pascal like (seconda versione, con struttura while-endwhile) Esecuzione dell algoritmo Esempio: A = 57 B = 45 Dopo 4 iterazioni del ciclo while il MCD si trova nella variabile A Esempio: Evoluzione dei dati in memoria nel corso dell algoritmo A = 57 B = 0 Il ciclo while non viene eseguito e il MCD si trova nella variabile A 7

Strutture di iterazione in pascal like Quando utilizzare le tre strutture di iterazione for-endfor repeat-until while-endwhile La scelta dipende da Numero di iterazioni noto a priori Necessita di verificare la condizione prima o dopo le istruzioni da ripetere Diagramma di scelta della struttura di iterazione piu opportuna Esempio: Problema: confronto tra stringhe di caratteri Dati di input: N (intero) A e B ( due array di caratteri di lunghezza N) Dati di output: test (intero) che vale test = 1 se i due array sono uguali test = 0 se sono diversi N.B. ogni componente contiene un solo carattere 8

Algoritmo di confronto tra stringhe Idea: Partendo dalla prima componente, confrontare coppie corrispondenti di componenti, fino a trovare una coppia diversa oppure fino alla fine degli array Se dopo la serie di confronti anche le ultime due componenti sono uguali, allora le due stringhe sono uguali Algoritmo in pascal like per il confronto tra stringhe di caratteri riassumendo Strutture di iterazione in pascal-like for-endfor repeat-until while-endwhile Strutture universali disponibili in tutti i linguaggi di programmazione 9

Un po di storia (10) Federico Faggin (1941) Italiano, laureato in fisica a Padova, lavora alla STMicroelettronic dove collabora alla definizione di tecnologie per circuiti integrati Nel 1970 si stabilisce negli Stati Uniti e lavora alla Intel dove dirige il progetto per lo sviluppo del 4004 primo esempio di moderna CPU (1971) L intel 4004 e stato il primo microprocessore che integra in un solo chip ALU e CU, lavorava a 0.1 MHz e conteneva 2300 transistor. Apre le porte all elettronica e all informatica di massa F. Faggin nel 2009 (courtesy of Computer History Museum) Con la stessa tecnologia (MOS) dirige lo sviluppo di altre generazioni di processori e di memorie alla Intel. Fonda altre aziende di microprocessori: Zilog e Synaptic e riceve prestigiosi premi internazionali (Kioto Prize e National Medal of Technology) L Intel 4004 10