STRUTTURE DI CONTROLLO
|
|
|
- Dario Marino
- 9 anni fa
- Visualizzazioni
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
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
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
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
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
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
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
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
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
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
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
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:
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
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
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
PROGRAMMAZIONE STRUTTURATA
PROGRAMMAZIONE STRUTTURATA Programmazione strutturata 2 La programmazione strutturata nasce come proposta per regolamentare e standardizzare le metodologie di programmazione (Dijkstra, 1965) Obiettivo:
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
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
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
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
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
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
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
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
= < < < < < 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
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
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
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
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
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...
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
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
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
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)
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
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
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
