struttura di selezione multipla - Dipartimento di Matematica e

Fondamenti di Informatica
Prof. D. Cantone
Modulo
LeTecniche della Programmazione:
Strutture di controllo e strutture dati
Walter Fiorio
Terza classe di un Istituto Tecnico
Industriale ad Indirizzo Informatico

Modulo 1: Premesse iniziali e
formalizzazione dei problemi (6 sett.)
– Unità 1: Nozioni di base
– Unità 2: Dal problema all’algoritmo
1/3
Terza classe di un Istituto Tecnico
Industriale ad Indirizzo Informatico

Modulo 2 Il Sistema di
elaborazione:Architetture e risorse (11
sett.)
–
–
–
–
Unità
Unità
Unità
Unità
3:
4:
5:
6:
Gli Automi
Le risorse Hardware e Software
Dall’algoritmo al programma
Il sistema operativo Windows
2/3
Terza classe di un Istituto Tecnico
Industriale ad Indirizzo Informatico

Modulo 3 LeTecniche della
Programmazione (13 sett.):
Strutture di controllo e strutture dati
– Unità 7: Le strutture di controllo
– Unità 8: I dati: tipi e strutture
– Unità 9: Strutture dinamiche di dati

Modulo 4 La Comunicazione con il
computer (3 sett.)
– Unità 10 Reti e Internet
3/3
Modulo 3
LeTecniche della Programmazione:
Strutture di controllo e strutture dati
Obiettivi generali



Codificare e validare algoritmi effettuando le
necessarie correzioni
Analizzare situazioni complesse scomponendo i
problemi in parti
Realizzare procedure risolutive di parti e
assemblarle per ottenere soluzioni
1/2
Modulo 3
LeTecniche della Programmazione:
Strutture di controllo e strutture dati
Obiettivi generali


Individuare la struttura dati più idonea in
funzione del problema da risolvere
Produrre un’efficace documentazione
contestualmente allo sviluppo del progetto
2/2
Unità 7: Le strutture di controllo





Tempo necessario
Prerequisiti richiesti
Competenze
Metodologie
Strumenti
Tempo necessario





4 settimane (24 ore)
Lezione frontale – 8 ore
Laboratorio – 8 ore
Verifiche e valutazioni – 4 ore
Recupero e/o potenziamento – 4 ore
Prerequisiti richiesti

Generali
– Capacità di decodifica del testo

Specifici
– Saper realizzare semplici programmi di tipo
sequenziale, individuando: dati di input, dati di
output, variabili di lavoro, sequenza delle azioni da
compiere
– Conoscere la sintassi delle istruzioni fondamentali
di un linguaggio
– Saper lavorare in un ambiente di programmazione
Competenze da acquisire



Applicare correttamente i principi della
programmazione strutturata
Costruire algoritmi strutturati
Rappresentare le strutture fondamentali e
quelle derivate:
– in pseudocodifica
– con i diagrammi a blocchi
– in Pascal
Competenze da acquisire



Codificare e validare algoritmi effettuando le
necessarie correzioni
Individuare le strutture di controllo più idonee
per la soluzione di un problema
Compilare un programma individuando e
correggendo gli errori di compilazione più
frequenti
Metodologie


Lezione frontale
Discussione guidata
Strumenti



Libro di testo
Schede di verifica e/o monitoraggio
PC e ambiente di programmazione
La programmazione strutturata
La programmazione strutturata è la progettazione, la
realizzazione e il collaudo di un programma costituito
da parti che dipendono l’una dall’altra secondo un
ben definito modello organizzativo
1/2
La programmazione strutturata
Qualsiasi algoritmo può essere espresso usando
esclusivamente le strutture di sequenza, di selezione
e di iterazione. (Teorema di Bohm- Jacopini - 1966)
2/2
Le strutture di controllo 1/11
Sequenza
Istruz. 1z
Istruzione 1
Istruzione 2
Istruz. 2z
Istruzione 3
Istruz. 3z
Le strutture di controllo 2/11
Alternativa
SE condizione
V
Condiz.
F
ALLORA
istruzione 1
Istruz. 1z
Istruz. 2z
ALTRIMENTI
istruzione 2
Le strutture di controllo 3/11
Ripetizione
RIPETI
Istruz. 1z
F
istruzioni
FINCHE’
Condiz.
V
condizione
Le strutture di controllo 4/11
La sequenza si rappresenta costruendo un blocco di istruzioni,
ognuna terminante con il punto e virgola, delimitato all’inizio
dalla parola BEGIN e alla fine dalla parola END con il punto e
virgola.
Le strutture di controllo 5/11
Esempio: calcolo dello sconto del 30% sul prezzo di un articolo:
BEGIN
ClrScr;
Write (‘Chiedi prezzo e descrizione’);
Readln (prezzo, descrizione);
sconto:= prezzo*30/100;
prezzo:=prezzo- sconto;
Writeln (descrizione, prezzo:7:2);
Readln
END;
Le strutture di controllo 6/11
La struttura If..Then…Else.. costituisce una istruzione unica:
pertanto davanti a Else non si mette il punto e virgola.
Esempio – Prodotti in offerta 3x2
Se di un prodotto vengono acquistati 3 pezzi, si deve pagare
l’importo pari a 2 pezzi. Per le quantità inferiori a tre il prezzo
resta invariato. Non sono ammesse quantità maggiori di tre.
Le strutture di controllo 7/11
PSEUDOCODIFICA
INIZIO
chiedi (prezzo, quantità)
leggi (prezzo,qta)
SE qta =3
ALLORA
qta <- 2
importo <- qta* prezzo
scrivi (importo)
FINE
Le strutture di controllo 8/11
BEGIN
ClsScr;
Write (‘Scrivi prezzo e quantità ‘);
Readln(prezzo, qta);
IF qta =3
THEN
qta:=2;
importo:= prezzo*qta;
Writeln (‘Importo da pagare = ‘,importo:10:2);
Readln
END.
Le strutture di controllo 9/11
La ripetizione è rappresentata in Pascal dal gruppo di istruzioni
comprese tra REPEAT e UNTIL.
Tali istruzioni vengono ripetute tante volte, fino a quando la
condizione scritta dopo UNTIL diventa vera.
Esempio:
Calcolare il prodotto tra due interi utilizzando la sola operazione
di somma
Le strutture di controllo 10/11
PSEUDOCODIFICA
INIZIO
chiedi (due numeri)
leggi (a,b)
prodotto <- 0
RIPETI
prodotto <- prodotto + a
b <- b-1
FINCHE’ b=0
scrivi (prodotto)
FINE
Le strutture di controllo 11/11
BEGIN
ClsScr;
Write (‘Scrivi due numeri ‘);
Readln(a, b);
prod:=0
REPEAT
prod:= prod+a;
b:= b-1
UNTIL b=0;
Writeln (‘prodotto = ‘, prod);
Readln
END.
Le strutture derivate 1/14
E’ possibile considerare delle varianti della struttura di
ripetizione già descritta. Nell’iterazione precondizionale si
effettua il controllo sulla condizione, prima di eseguire le
istruzioni.
F
condizione
V
istruzioni
Le strutture derivate 2/14
Nel linguaggio Pascal l’iterazione precondizionale si rappresenta
con la struttura WHILE:
WHILE condizione DO
BEGIN
istruzione;
END;
Esempio:
Divisione tra interi usando le sottrazioni successive
Le strutture derivate 3/14
PSEUDOCODIFICA
INIZIO
chiedi (due numeri)
leggi (a,b)
quoz <- 0
MENTRE a >= b ESEGUI
a <- a-b
quoz <- quoz +1
scrivi (‘quoziente= ‘,quoz)
scrivi (‘resto = ‘, a)
FINE
Le strutture derivate 4/14
Quoziente della divisione tra interi (corpo del programma in
Pascal):
BEGIN
ClrScr;
Write (‘Scrivi due numeri ’);
Readln (a,b);
quoz:= 0;
WHILE a >= b DO
BEGIN
a:=a – b;
quoz:=quoz + 1
END;
Writeln (‘quoziente ’, quoz);
Readln
END.
Le strutture derivate 5/14
Altra struttura derivata dalla ripetizione è quella che permette di
ripetere un certo gruppo di istruzioni per un numero di volte
prefissato, cioè la ripetizione enumerativa.
Il controllo viene effettuato su una variabile-contatore: la
ripetizione si arresta quando il contatore supera un valore
prefissato.
Le strutture derivate 6/14
La ripetizione enumerativa:
diagramma a blocchi
c <- min
F
c<=max
V
istruzioni
incrementa c
Le strutture derivate 7/14
La ripetizione enumerativa in Pascal:
FOR contatore:= valore_iniziale TO valore_finale DO
BEGIN
istruzioni
END;
Esempio:
Data in input una serie di n numeri, determinare il massimo tra
essi.
Le strutture derivate 8/14
PSEUDOCODIFICA
INIZIO
chiedi (il numero dei dati)
leggi(n)
PER i DA 1 A n ESEGUI
chiedi (dato)
leggi (dato)
SE i = 1
ALLORA
max <- dato
SE dato > max
ALLORA
max <- dato
scrivi(max)
FINE
Le strutture derivate 9/14
BEGIN
ClrScr;
Write (‘Quanti sono i dati? ‘);
Readln (n);
FOR i:=1 TO n DO
BEGIN
Write (‘Inserisci il ‘, i ‘dato ‘);
Readln (dato);
IF i = 1
THEN
max:=dato
IF dato > max
THEN
max:=dato
END;
Writeln (‘Il valore massimo è: ‘, max);
Readln
END.
Le strutture derivate 10/14
Più complessa della struttura alternativa a due vie è,
infine, la struttura di selezione multipla.
PSEUDOCODIFICA:
CASO DI variabile=
lista valori-1: istruzioni-1
lista valori-2: istruzioni-2
...
lista valori-n: istruzioni-n
ALTRIMENTI
istruzioni
Le strutture derivate 11/14
La struttura di selezione multipla – Diagramma a blocchi
V
Istruz. 1
Var=val1
F
V
Istruz 2
Var=val2
F
V
Var =val n
F
Istruz n
istruzioni
Le strutture derivate 12/14
La struttura di selezione multipla in Pascal:
CASE selettore OF
1: istruzione 1
2: istruzione 2
3: istruzione 3
ELSE
istruzione
END;
Esempio:
Simulazione di una calcolatrice che sia in grado di eseguire le
4 operazioni aritmetiche fondamentali.
Le strutture derivate 13/14
BEGIN
ClrScr;
REPEAT
Write (‘Dammi due numeri ’);
Readln (a,b);
Write (‘Indica l’operazione +, -,*, / ‘);
Readln (operatore);
Errore:= false;
CASE operatore OF
‘+’: risultato:=a+b
‘-’ : risultato:=a-b
‘*’ : risultato:=a*b
‘/’ : IF b<>0 THEN
risultato:=a/b
ELSE
BEGIN
Writeln(‘Operazione impossibile’);
errore:=true
END
Le strutture derivate 14/14
ELSE
BEGIN
Writeln (‘Tasto errato’);
errore:=true
END
END;
IF NOT errore
THEN
Writeln (‘Il risultato è ‘ risultato);
Write (‘Vuoi ripetere ? (s/n) ‘)
Readln (risp)
UNTIL risp= ‘n’
END.
FINE