STRUTTURE DI CONTROLLO

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "STRUTTURE DI CONTROLLO"

Transcript

1 STRUTTURE DI CONTROLLO - Strutture di controllo - 1

2 Algoritmo per il cambio della ruota Inizio chiama il meccanico V ruota di scorta bucata F solleva l auto svita un bullone tutti svitati V togli la ruota F metti la ruota di scorta avvita un bullone tutti avvitati V abbassa l auto F fine - Strutture di controllo - 2

3 Le istruzioni del flow chart togli la ruota : metti la ruota di scorta costituiscono una SEQUENZA DI ISTRUZIONI - Strutture di controllo - 3

4 avvita un bullone tutti avvitati F v costituiscono una STRUTTURA DI ITERAZIONE - Strutture di controllo - 4

5 V chiama il meccanico ruota di scorta bucata F costituiscono una STRUTTURA DI SELEZIONE - Strutture di controllo - 5

6 Le strutture di controllo (o costrutti di controllo) determinano l ordine con cui devono essere eseguite le istruzioni sono indipendenti dalla natura delle istruzioni sono strumenti logici universali utilizzabili in qualunque problema - Strutture di controllo - 6

7 ANALISI DELLE STRUTTURE DI CONTROLLO - Strutture di controllo - 7

8 Algoritmo: massimo tra 2 numeri dati di input: i due numeri (a,b) dati di output: il massimo (max) Flowchart Pascal-like inizio begin massimo var: a,b,max:real a, b read a, b if (a>b) then V a>b F max:=a max a max b else max:=b max fine print max end massimo - Strutture di controllo - 8

9 Struttura di selezione flow chart: V condizione F istruzioni istruzioni Pascal-like: if (condizione) then istruzioni else istruzioni - Strutture di controllo - 9

10 Algoritmo: valore assoluto di un numero reale dati di input: numero dati di output: valore assoluto del numero Flowchart Pascal-like inizio begin val_ass var: num:real num read num num< 0 F if(num<0)then num V - num num := - num num fine print num end val_ass - Strutture di controllo - 10

11 Struttura di selezione flow chart: condizione F V istruzioni Pascal-like if (condizione) then istruzioni - Strutture di controllo - 11

12 Problema: Calcolo della somma di N numeri dati di input: valore di N, numeri dati di output: somma degli N numeri Esempio: dati di input: 4, dati di output: 20 5, 7, 10, -2 - Strutture di controllo - 12

13 Algoritmo: somma di n numeri Flow chart inizio n Pascal like begin somma var:n,i:integer var:sum,numero:real read n sum 0 n volte sum:=0. for i:=1,n do numero read numero sum sum+numero sum:=sum+numero endfor sum print sum fine end somma - Strutture di controllo - 13

14 Struttura di iterazione flow chart: istruzioni n volte Pascal-like for i := 1, n do istruzioni endfor - Strutture di controllo - 14

15 Problema: eseguire una divisione intera tra due numeri naturali con il metodo delle successive sottrazioni Dati di input: due numeri naturali x e y Dati di output: parte intera di x/y Esempio: Dati di input: 26, 7 Dati di output: 3 - Strutture di controllo - 15

16 Strategia: Si sottrae y da x finché il risultato della sottrazione è minore di y. Il numero delle sottrazioni eseguite è la parte intera di x/y = = = 5 3 minore di 7 fine risultato Osservazione Il numero delle sottrazioni da eseguire non è noto a priori ma dipende dai dati di input. In particolare, se x<y non si eseguono sottrazioni. - Strutture di controllo - 16

17 Algoritmo: Divisione intera di due numeri naturali inizio x,y begin divisione var:x,y,q,r:integer read x,y q r 0 x q:=0 r:=x F r>y V while (r > y) do r:= r-y r q r-y q+1 q:= q+1 endwhile q fine print q end divisione - Strutture di controllo - 17

18 Struttura di iterazione flow chart F condizione V istruzioni Pascal-like while (condizione) do istruzioni endwhile - Strutture di controllo - 18

19 Problema: Calcolo del prodotto di N numeri dati di input: N, numeri dati di output: prodotto degli N numeri Esempio: dati di input: 4, 5, 2, 0, 1 dati di output: 0 - Strutture di controllo - 19

20 Osservazione Se un numero è nullo, il prodotto è nullo Prevedere il caso in cui un dato sia nullo Arrestare il calcolo quando sono stati moltiplicati tutti i numeri oppure quando un dato è nullo - Strutture di controllo - 20

21 Algoritmo: prodotto di n numeri begin prod_n_numeri var:num,prod:real var:i,n:integer read n prod:= 1 i:= 1 read num while num=0 /.and. i< n do prod:= prod*num read num i:=i+1 endwhile print prod end prod_n_numeri Questo algoritmo è errato in quanto: fallisce se un numero è uguale a 0 non esegue l ultimo prodotto - Strutture di controllo - 21

22 inizio n prod 1 i 0 ESEMPIO: prodotto di n numeri begin prod_n_num var:n,i:integer var:num, prod:real read n prod:= 1 i := 0 repeat num prod prod*num i i+1 read num prod:= prod*num i:= i+1 F num=0 or i=n prod fine V until(num=0.or.i=n) print prod end prod_n_num - Strutture di controllo - 22

23 Struttura di iterazione flow chart: istuzioni F condizione V Pascal like repeat istruzioni until (condizione) - Strutture di controllo - 23

24 Differenze tra le tre strutture di iterazione Il for richiede che sia noto a priori il numero di iterazioni da effettuare while e repeat non richiedono tale informazione nel while se la condizione è falsa non si esegue nessuna istruzione del ciclo nel repeat i comandi del ciclo sono eseguiti almeno una volta - Strutture di controllo - 24

25 Le strutture di controllo possono essere innestate l una nell altra while (condizione) do for i =... for j=... for if k end end end endwhile =... (condizione)then istruzioni - Strutture di controllo - 25

26 Problema: calcolo del massimo di N numeri dati di input : N, numeri dati di output: massimo degli N numeri Esempio: dati di input: 4, dati di output: 10 5, 7, 10, -2 - Strutture di controllo - 26

27 Flow chart inizio n num Algoritmo: massimo di n numeri Pascal like begin max_n_numeri var:num,max:real var:i,n:integer read n, num max num max:= num n-1 volte num num > max F max fine max V for i = 1, n-1 do read num if (num>max) then max:= num num endfor print max end max_n_numeri - Strutture di controllo - 27

28 Problema: ricerca di un elemento dato in in un insieme di n numeri dati di input: n, n numeri, dato da cercare dati di output: variabile logica che indica se il dato è stato trovato, posizione del numero Esempio: dati di input : 4, 2, 1, 10, 5, 10 dati di output: vero, 3 - Strutture di controllo - 28

29 Algoritmo: ricerca di un elemento in un insieme inizio n elem trov.false. i 0 num i i+1 begin ricerca var:n,num,elem,i: integer var:trov:logical read n, elem trov:=.false. i:=0 repeat read num i := i+1 num elem = V trov F i=n or trov trov, i.true. if(elem=num)then trov:=.true. until(i=n.or.trov) print trov, i fine end ricerca - Strutture di controllo - 29

30 Esercizi: 1) Nell algoritmo di divisione tra due numeri naturali prevedere anche il caso in cui i dati siano interi con segno.... if (y < > 0) then if (x*y>0) then flag:=1 if (y<0) then y:= - y x:= - x else flag:= - 1 if(y>0) then x:= -x else y:= - y corpo dell algoritmo divisione q:=q*flag print q else print divisione per 0 - Strutture di controllo - 30

31 Esercizi: 1) Nell algoritmo di divisione tra due numeri naturali prevedere anche il caso in cui i dati siano interi con segno.... if (y < > 0) then if (x*y>0) then flag:=1 if (y<0) then y:= - y x:= - x else flag:= - 1 if(y>0) then x:= -x else y:= - y corpo dell algoritmo divisione q:=q*flag print q else print divisione per 0 - Strutture di controllo - 31

32 Esercizi: 1) Nell algoritmo di divisione tra due numeri naturali prevedere anche il caso in cui i dati siano interi con segno.... if (y.ne. 0) then flag:=1 if (y<0) then y:=-y flag:=-1 if (x<0) then flag:=-flag x:=-x corpo dell algoritmo divisione q:=q*flag print q else print divisione per 0 - Strutture di controllo - 32

33 2) I primi due termini della successione di Fibonacci sono uguali ad 1 e i successivi si ottengono dalla somma dei due precedenti cioè sono: 1, 1, 2, 3, 5, 8,... Costruire: un algoritmo che genera i primi N termini della successione un algoritmo che costruisce i primi termini minori di M - Strutture di controllo - 33

34 begin Fibonacci1 var:a,b,c,n,i:integer read n a:=1 b:=1 print a,b for i=3,n do c:=a+b print c a:=b b:=c endfor end Fibonacci1 - Strutture di controllo - 34

35 begin Fibonacci2 var:a,b,c,m,i:integer read m a:=1 b:=1 print a,b c:=a+b while c<= m do print c c:=a+b a:=b b:=c endwhile end Fibonacci2 - Strutture di controllo - 35

36 3) Calcolare il MCD di due numeri assegnati Esempio: MCD(24,15) begin MCD var:x,y,r,q,t:integer read x,y repeat q:=x/y r:=x-q*y x:=y y:=r until r=0 print q end MCD MCD - Strutture di controllo - 36

37 4) Calcolare n! begin fattoriale var: n,i,fatt:integer read n fatt:=1 for i=1,n do fatt:=fatt*i endfor print fatt end fattoriale - Strutture di controllo - 37

STRUTTURE (O COSTRUTTI) DI CONTROLLO

STRUTTURE (O COSTRUTTI) DI CONTROLLO Le strutture di controllo Le strutture di controllo STRUTTURE (O COSTRUTTI) DI CONTROLLO determinano l ordine con cui devono essere eseguite le istruzioni sono indipendenti dalla natura delle istruzioni

Dettagli

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

10 STRUTTURE DI CONTROLLO REPEAT E WHILE. Strutture di controllo e variabili strutturate 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

Dettagli

IL TEOREMA DI BOEHM-JACOPINI

IL TEOREMA DI BOEHM-JACOPINI IL TEOREMA DI BOEHM-JACOPINI Un qualunque algoritmo può essere descritto unicamente attraverso le tre strutture: Sequenza Diramazione Ciclo o iterazione Le tre strutture sono complete. Un qualunque linguaggio

Dettagli

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

Diagramma a blocchi per la selezione, in un mazzo di chiavi, di quella che apre un lucchetto Diagramma a blocchi per la selezione, in un mazzo di chiavi, di quella che apre un lucchetto 14 1. Dato un numero dire se è positivo o negativo 2. e se il numero fosse nullo? 3. Eseguire il prodotto tra

Dettagli

Risoluzione di un problema

Risoluzione di un problema Algoritmi Risoluzione di un problema Descrizione di un problema! Individuazione di un ALGORITMO! Metodo risolutivo (progetto) Introduzione 2 Algoritmo Sequenza finita di mosse che risolve in un tempo finito

Dettagli

Rappresentazione degli algoritmi

Rappresentazione degli algoritmi Rappresentazione degli algoritmi Universitá di Ferrara Ultima Modifica: 21 ottobre 2014 1 1 Diagramma di flusso Utilizzare il diagramma di flusso per rappresentare gli algoritmi che risolvono i seguenti

Dettagli

Rappresentazione degli algoritmi

Rappresentazione degli algoritmi Rappresentazione degli algoritmi Universitá di Ferrara Ultima Modifica: 21 ottobre 2014 1 1 Diagramma di flusso Utilizzare il diagramma di flusso per rappresentare gli algoritmi che risolvono i seguenti

Dettagli

Esempio: somma di due numeri

Esempio: somma di due numeri Esempio: somma di due numeri Scrivere l algoritmo che esegue la somma di due numeri ESEMPIO: somma di due numeri

Dettagli

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

I costrutti forniti dal linguaggio si dividono in corrispondenti classi di istruzioni Classi di istruzioni In maniera simile a quanto fatto per i dati, un linguaggio mette a disposizione dei costrutti per realizzare la parte esecutiva dell algoritmo. Questa consiste di: Leggi i valori di

Dettagli

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

Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software Introduzione alla programmazione Algoritmi e diagrammi di flusso F. Corno, A. Lioy, M. Rebaudengo Sviluppo del software problema idea (soluzione) algoritmo (soluzione formale) programma (traduzione dell

Dettagli

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

Cognome e Nome : Corso e Anno di Immatricolazione: Modalità di Laboratorio (Progetto/Prova) : PROGRAMMAZIONE (Corsi B e C) Pre-appello di Gennaio 2004 (A.A. 2003/2004) PROGRAMMAZIONE (B e C) S. Straordinaria - Appello di Gennaio (A.A. 2002/2003) 22 Gennaio 2004 ore 11 Aula II di Facoltà (Durata:

Dettagli

INFORMATICA. Strutture iterative

INFORMATICA. Strutture iterative INFORMATICA Strutture iterative Strutture iterative Si dice ciclo (loop) una sequenza di istruzioni che deve essere ripetuta più volte consecutivamente. Si consideri ad esempio il calcolo del fattoriale

Dettagli

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

Evoluzione del FORTRAN 14/03/2016. LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 15 IL LINGUAGGIO FORTRAN LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 15 IL LINGUAGGIO FORTRAN Marco Lapegna Dipartimento di Matematica e Applicazioni Universita degli Studi di Napoli Federico II wpage.unina.it/lapegna

Dettagli

Rappresentazione con i diagrammi di flusso (Flow - chart)

Rappresentazione con i diagrammi di flusso (Flow - chart) Rappresentazione con i diagrammi di flusso (Flow - chart) Questo tipo di rappresentazione grafica degli algoritmi, sviluppato negli anni 50, utilizza una serie di simboli grafici dal contenuto evocativo

Dettagli

PROGRAMMAZIONE STRUTTURATA

PROGRAMMAZIONE STRUTTURATA PROGRAMMAZIONE STRUTTURATA Programmazione strutturata 2 La programmazione strutturata nasce come proposta per regolamentare e standardizzare le metodologie di programmazione (Dijkstra, 1965) Obiettivo:

Dettagli

Introduzione alla programmazione

Introduzione alla programmazione Introduzione alla programmazione Risolvere un problema Per risolvere un problema si procede innanzitutto all individuazione Delle informazioni, dei dati noti Dei risultati desiderati Il secondo passo consiste

Dettagli

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

Lezione 7: La Formalizzazione degli Algoritmi - Strutture di Controllo e Selettive La Programmazione Strutturata (3 p) Giovedì 21 Ottobre 2010 Università di Salerno Corso di FONDAMENTI DI INFORMATICA Corso di Laurea Ingegneria Corso B Docente : Ing. Anno Accademico 2010-2011 Lezione 7: La Formalizzazione degli Algoritmi - Strutture di Controllo

Dettagli

Formalismi per la descrizione di algoritmi

Formalismi per la descrizione di algoritmi Formalismi per la descrizione di algoritmi Per descrivere in passi di un algoritmo bisogna essere precisi e non ambigui Il linguaggio naturale degli esseri umani si presta a interpret non univoche Si usano

Dettagli

Almerico Murli - Le variabili strutturate (array) VARIABILI STRUTTURATE (ARRAY)

Almerico Murli - Le variabili strutturate (array) VARIABILI STRUTTURATE (ARRAY) VARIABILI STRUTTURATE (ARRAY) 1 successione (di numeri reali): i ℵ a R i vettore (di numeri reali): i I a i R con I ℵ sottoinsieme finito ogni componente del vettore e univocamente determinata dall indice

Dettagli

PROGRAMMAZIONE: Le strutture di controllo

PROGRAMMAZIONE: Le strutture di controllo PROGRAMMAZIONE: Le strutture di controllo Prof. Enrico Terrone A. S: 2008/09 Le tre modalità La modalità basilare di esecuzione di un programma è la sequenza: le istruzioni vengono eseguite una dopo l

Dettagli

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

Algoritmi, Strutture Dati e Programmi. UD 2.b: Programmazione in Pascal Algoritmi, Strutture Dati e Programmi : Programmazione in Pascal Prof. Alberto Postiglione AA 2007-2008 Università degli Studi di Salerno Il Linguaggio di Programmazione Pascal Esistono molti linguaggi

Dettagli

Laboratorio di Calcolo Numerico

Laboratorio di Calcolo Numerico Laboratorio di Calcolo Numerico Lezione 3 Padova, April 4th 2016 F. Piazzon Department of Mathematics. Doctoral School in Mathematical Sciences, Applied Mathematics Area Outline Lab. 3-2 of 16 1 Costrutti

Dettagli

Informatica (A-K) 5. Algoritmi e pseudocodifica

Informatica (A-K) 5. Algoritmi e pseudocodifica Vettori e matrici #1 Informatica (A-K) 5. Algoritmi e pseudocodifica Corso di Laurea in Ingegneria Civile & Ambientale A.A. 2011-2012 2 Semestre Prof. Giovanni Pascoschi Le variabili definite come coppie

Dettagli

= < < < < < Matematica 1

= < < < < < Matematica  1 NUMERI NATURALI N I numeri naturali sono: 0,1,2,3,4,5,6,7,8,9,10,11,12,13,... L insieme dei numeri naturali è indicato con la lettera. Si ha cioè: N= 0,1,2,3,4,5,6,7,.... L insieme dei naturali privato

Dettagli

Fondamenti di Informatica 6. Algoritmi e pseudocodifica

Fondamenti di Informatica 6. Algoritmi e pseudocodifica Vettori e matrici #1 Fondamenti di Informatica 6. Algoritmi e pseudocodifica Corso di Laurea in Ingegneria Civile A.A. 2010-2011 1 Semestre Prof. Giovanni Pascoschi Le variabili definite come coppie

Dettagli

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

Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE Francesco Tura [email protected] 1 Lo strumento dell informatico: ELABORATORE ELETTRONICO [= calcolatore = computer] Macchina multifunzionale Macchina

Dettagli

Introduzione agli Algoritmi

Introduzione agli Algoritmi Introduzione agli Algoritmi Informatica Sara Zuppiroli A.A. 2012-2013 Informatica () Introduzione agli Algoritmi A.A. 2012-2013 1 / 25 Risoluzione dei problemi Dalla descrizione del problema all individuazione

Dettagli

Costrutti condizionali e iterativi

Costrutti condizionali e iterativi Costrutti condizionali e iterativi Introduction to Fortran 90 Paolo Ramieri, CINECA Aprile 2014 Strutture di controllo Le strutture di controllo permettono di alterare la sequenza di esecuzione delle istruzioni

Dettagli

Istruzioni per il controllo di ciclo - ciclo a condizione generica

Istruzioni per il controllo di ciclo - ciclo a condizione generica Istruzioni per il controllo di ciclo - ciclo a condizione generica Permette di ripetere l esecuzione di un blocco di istruzioni finchè non viene verificata una condizione logica. Sintassi istruzione_1...

Dettagli

Fondamenti di Informatica

Fondamenti di Informatica Vettori e matrici #1 Le variabili definite come coppie sono dette variabili scalari Fondamenti di Informatica 5. Algoritmi e pseudocodifica Una coppia è una variabile

Dettagli

Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe.

Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe. Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe. 1) Comprendere il problema 2) Stabilire quali sono le azioni da eseguire per risolverlo 3) Stabilire la

Dettagli

DAL DIAGRAMMA AL CODICE

DAL DIAGRAMMA AL CODICE DAL DIAGRAMMA AL CODICE Un diagramma di flusso Appare, come un insieme di blocchi di forme diverse che contengono le istruzioni da eseguire, collegati fra loro da linee orientate che specificano la sequenza

Dettagli

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

Cicli. S i a i = a 1 + a 2 + a a n Cicli Esprimono in modo compatto e generali l'esecuzione di uno stesso blocco di codice per più volte Anche in matematica sono presenti operatori che eseguono di fatto un ciclo (ad es. sommatoria e produttoria)

Dettagli

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Reti di Calcolatori

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Reti di Calcolatori Programma del corso Introduzione agli algoritmi Rappresentazione delle Informazioni Reti di Calcolatori Architettura del calcolatore Elementi di Programmazione Esempi di algoritmi e programmi Conversione

Dettagli

VARIABILI E COSTANTI

VARIABILI E COSTANTI VARIABILI E COSTANTI - Variabili e costanti - 1 PROBLEMA: Calcolo dell area di un triangolo di base b e altezza h. area = b ------------ h 2 ESEMPIO: b = 2,4 h = 1,5 area = 2,4 -------------------- 1,5

Dettagli

Fondamenti di Informatica

Fondamenti di Informatica Fondamenti di Informatica AlgoBuild: Strutture iterative e selettive Prof. Christian Esposito Corso di Laurea in Ingegneria Meccanica e Gestionale (Classe I) A.A. 2016/17 AlgoBuild: Strutture iterative

Dettagli