Fondamenti di Informatica Prof. D. Cantone. Modulo LeTecniche della Programmazione: Strutture di...

42
Fondamenti di Fondamenti di Informatica Informatica Prof. D. Cantone Prof. D. Cantone

Transcript of Fondamenti di Informatica Prof. D. Cantone. Modulo LeTecniche della Programmazione: Strutture di...

Page 1: Fondamenti di Informatica Prof. D. Cantone. Modulo LeTecniche della Programmazione: Strutture di controllo e strutture dati Modulo LeTecniche della Programmazione:

Fondamenti di InformaticaFondamenti di Informatica

Prof. D. CantoneProf. D. Cantone

Page 2: Fondamenti di Informatica Prof. D. Cantone. Modulo LeTecniche della Programmazione: Strutture di controllo e strutture dati Modulo LeTecniche della Programmazione:

Modulo Modulo LeTecniche della LeTecniche della Programmazione:Programmazione:

Strutture di controllo e strutture Strutture di controllo e strutture datidati

Walter FiorioWalter Fiorio

Page 3: Fondamenti di Informatica Prof. D. Cantone. Modulo LeTecniche della Programmazione: Strutture di controllo e strutture dati Modulo LeTecniche della Programmazione:

Terza classe di un Istituto Tecnico Terza classe di un Istituto Tecnico Industriale ad Indirizzo Informatico Industriale ad Indirizzo Informatico

Modulo 1: Premesse iniziali e Modulo 1: Premesse iniziali e formalizzazione dei problemi (6 sett.)formalizzazione dei problemi (6 sett.)– Unità 1: Nozioni di baseUnità 1: Nozioni di base– Unità 2: Dal problema all’algoritmoUnità 2: Dal problema all’algoritmo

1/31/3

Page 4: Fondamenti di Informatica Prof. D. Cantone. Modulo LeTecniche della Programmazione: Strutture di controllo e strutture dati Modulo LeTecniche della Programmazione:

Terza classe di un Istituto Tecnico Terza classe di un Istituto Tecnico Industriale ad Indirizzo Informatico Industriale ad Indirizzo Informatico

Modulo 2 Il Sistema di Modulo 2 Il Sistema di elaborazione:Architetture e risorse elaborazione:Architetture e risorse (11 sett.) (11 sett.) – Unità 3: Gli AutomiUnità 3: Gli Automi– Unità 4: Le risorse Hardware e SoftwareUnità 4: Le risorse Hardware e Software– Unità 5: Dall’algoritmo al programmaUnità 5: Dall’algoritmo al programma– Unità 6: Il sistema operativo WindowsUnità 6: Il sistema operativo Windows

2/32/3

Page 5: Fondamenti di Informatica Prof. D. Cantone. Modulo LeTecniche della Programmazione: Strutture di controllo e strutture dati Modulo LeTecniche della Programmazione:

Terza classe di un Istituto Tecnico Terza classe di un Istituto Tecnico Industriale ad Indirizzo InformaticoIndustriale ad Indirizzo Informatico

Modulo 3 LeTecniche della Modulo 3 LeTecniche della Programmazione (13 sett.):Programmazione (13 sett.):Strutture di controllo e strutture datiStrutture di controllo e strutture dati– Unità 7: Le strutture di controlloUnità 7: Le strutture di controllo– Unità 8: I dati: tipi e struttureUnità 8: I dati: tipi e strutture– Unità 9: Strutture dinamiche di datiUnità 9: Strutture dinamiche di dati

Modulo 4 La Comunicazione con il Modulo 4 La Comunicazione con il computer (3 sett.)computer (3 sett.)– Unità 10 Reti e InternetUnità 10 Reti e Internet

3/33/3

Page 6: Fondamenti di Informatica Prof. D. Cantone. Modulo LeTecniche della Programmazione: Strutture di controllo e strutture dati Modulo LeTecniche della Programmazione:

Modulo 3Modulo 3 LeTecniche della Programmazione: LeTecniche della Programmazione:Strutture di controllo e strutture datiStrutture di controllo e strutture dati

Obiettivi generali Obiettivi generali

Codificare e validare algoritmi effettuando le Codificare e validare algoritmi effettuando le necessarie correzioninecessarie correzioni

Analizzare situazioni complesse scomponendo i Analizzare situazioni complesse scomponendo i problemi in partiproblemi in parti

Realizzare procedure risolutive di parti e assemblarle Realizzare procedure risolutive di parti e assemblarle per ottenere soluzioniper ottenere soluzioni

1/21/2

Page 7: Fondamenti di Informatica Prof. D. Cantone. Modulo LeTecniche della Programmazione: Strutture di controllo e strutture dati Modulo LeTecniche della Programmazione:

Modulo 3Modulo 3 LeTecniche della Programmazione: LeTecniche della Programmazione:Strutture di controllo e strutture datiStrutture di controllo e strutture dati

Obiettivi generaliObiettivi generali

Individuare la struttura dati più idonea in Individuare la struttura dati più idonea in funzione del problema da risolverefunzione del problema da risolvere

Produrre un’efficace documentazione Produrre un’efficace documentazione contestualmente allo sviluppo del progettocontestualmente allo sviluppo del progetto

2/22/2

Page 8: Fondamenti di Informatica Prof. D. Cantone. Modulo LeTecniche della Programmazione: Strutture di controllo e strutture dati Modulo LeTecniche della Programmazione:

Unità 7: Le strutture di Unità 7: Le strutture di controllocontrollo

Tempo necessarioTempo necessario Prerequisiti richiestiPrerequisiti richiesti CompetenzeCompetenze MetodologieMetodologie StrumentiStrumenti

Page 9: Fondamenti di Informatica Prof. D. Cantone. Modulo LeTecniche della Programmazione: Strutture di controllo e strutture dati Modulo LeTecniche della Programmazione:

Tempo necessarioTempo necessario

4 settimane (24 ore)4 settimane (24 ore) Lezione frontale – 8 oreLezione frontale – 8 ore Laboratorio – 8 oreLaboratorio – 8 ore Verifiche e valutazioni – 4 oreVerifiche e valutazioni – 4 ore Recupero e/o potenziamento – 4 oreRecupero e/o potenziamento – 4 ore

Page 10: Fondamenti di Informatica Prof. D. Cantone. Modulo LeTecniche della Programmazione: Strutture di controllo e strutture dati Modulo LeTecniche della Programmazione:

Prerequisiti richiestiPrerequisiti richiesti

GeneraliGenerali– Capacità di decodifica del testoCapacità di decodifica del testo

SpecificiSpecifici– Saper realizzare semplici programmi di tipo Saper realizzare semplici programmi di tipo

sequenziale, individuando: dati di input, dati di sequenziale, individuando: dati di input, dati di output, variabili di lavoro, sequenza delle azioni output, variabili di lavoro, sequenza delle azioni da compiereda compiere

– Conoscere la sintassi delle istruzioni fondamentali Conoscere la sintassi delle istruzioni fondamentali di un linguaggiodi un linguaggio

– Saper lavorare in un ambiente di programmazioneSaper lavorare in un ambiente di programmazione

Page 11: Fondamenti di Informatica Prof. D. Cantone. Modulo LeTecniche della Programmazione: Strutture di controllo e strutture dati Modulo LeTecniche della Programmazione:

CompetenzeCompetenze da acquisire da acquisire

Applicare correttamente i principi della Applicare correttamente i principi della programmazione strutturataprogrammazione strutturata

Costruire algoritmi strutturatiCostruire algoritmi strutturati Rappresentare le strutture fondamentali Rappresentare le strutture fondamentali

e quelle derivate:e quelle derivate:– in pseudocodificain pseudocodifica– con i diagrammi a blocchicon i diagrammi a blocchi– in Pascalin Pascal

Page 12: Fondamenti di Informatica Prof. D. Cantone. Modulo LeTecniche della Programmazione: Strutture di controllo e strutture dati Modulo LeTecniche della Programmazione:

Competenze da acquisireCompetenze da acquisire

Codificare e validare algoritmi Codificare e validare algoritmi effettuando le necessarie correzionieffettuando le necessarie correzioni

Individuare le strutture di controllo più Individuare le strutture di controllo più idonee per la soluzione di un problemaidonee per la soluzione di un problema

Compilare un programma individuando Compilare un programma individuando e correggendo gli errori di compilazione e correggendo gli errori di compilazione più frequentipiù frequenti

Page 13: Fondamenti di Informatica Prof. D. Cantone. Modulo LeTecniche della Programmazione: Strutture di controllo e strutture dati Modulo LeTecniche della Programmazione:

MetodologieMetodologie

Lezione frontaleLezione frontale Discussione guidataDiscussione guidata

Page 14: Fondamenti di Informatica Prof. D. Cantone. Modulo LeTecniche della Programmazione: Strutture di controllo e strutture dati Modulo LeTecniche della Programmazione:

StrumentiStrumenti

Libro di testoLibro di testo Schede di verifica e/o monitoraggioSchede di verifica e/o monitoraggio PC e ambiente di programmazionePC e ambiente di programmazione

Page 15: Fondamenti di Informatica Prof. D. Cantone. Modulo LeTecniche della Programmazione: Strutture di controllo e strutture dati Modulo LeTecniche della Programmazione:

La programmazione strutturataLa programmazione strutturata

La programmazione strutturata è la La programmazione strutturata è la progettazione, la realizzazione e il collaudo di progettazione, la realizzazione e il collaudo di un programma costituito da parti che un programma costituito da parti che dipendono l’una dall’altra secondo un ben dipendono l’una dall’altra secondo un ben definito modello organizzativodefinito modello organizzativo

1/21/2

Page 16: Fondamenti di Informatica Prof. D. Cantone. Modulo LeTecniche della Programmazione: Strutture di controllo e strutture dati Modulo LeTecniche della Programmazione:

La programmazione strutturataLa programmazione strutturata

Qualsiasi algoritmo può essere espresso Qualsiasi algoritmo può essere espresso usando esclusivamente le strutture di usando esclusivamente le strutture di sequenza, di selezione e di iterazione. sequenza, di selezione e di iterazione. (Teorema di Bohm- Jacopini - 1966)(Teorema di Bohm- Jacopini - 1966)

2/22/2

Page 17: Fondamenti di Informatica Prof. D. Cantone. Modulo LeTecniche della Programmazione: Strutture di controllo e strutture dati Modulo LeTecniche della Programmazione:

Le strutture di controllo 1/11Le strutture di controllo 1/11

SequenzaSequenza

Istruz. 1z

Istruz. 3z

Istruz. 2z

Istruzione 1

Istruzione 2

Istruzione 3

Page 18: Fondamenti di Informatica Prof. D. Cantone. Modulo LeTecniche della Programmazione: Strutture di controllo e strutture dati Modulo LeTecniche della Programmazione:

Le strutture di controllo 2/11Le strutture di controllo 2/11

AlternativaAlternativa

Istruz. 1z Istruz. 2z

Condiz.

SE condizione

ALLORA

istruzione 1

ALTRIMENTI

istruzione 2

V F

Page 19: Fondamenti di Informatica Prof. D. Cantone. Modulo LeTecniche della Programmazione: Strutture di controllo e strutture dati Modulo LeTecniche della Programmazione:

Le strutture di controllo 3/11Le strutture di controllo 3/11

RipetizioneRipetizione

Istruz. 1z

Condiz.

RIPETI

istruzioni

FINCHE’

condizione

F

V

Page 20: Fondamenti di Informatica Prof. D. Cantone. Modulo LeTecniche della Programmazione: Strutture di controllo e strutture dati Modulo LeTecniche della Programmazione:

Le strutture di controllo 4/11Le 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.

Page 21: Fondamenti di Informatica Prof. D. Cantone. Modulo LeTecniche della Programmazione: Strutture di controllo e strutture dati Modulo LeTecniche della Programmazione:

Le strutture di controllo 5/11Le strutture di controllo 5/11

Esempio: calcolo dello sconto del 30% sul prezzo di un articolo:

BEGINClrScr;Write (‘Chiedi prezzo e descrizione’);Readln (prezzo, descrizione);sconto:= prezzo*30/100;prezzo:=prezzo- sconto;Writeln (descrizione, prezzo:7:2);ReadlnEND;

Page 22: Fondamenti di Informatica Prof. D. Cantone. Modulo LeTecniche della Programmazione: Strutture di controllo e strutture dati Modulo LeTecniche della Programmazione:

Le strutture di controllo 6/11Le 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.

Page 23: Fondamenti di Informatica Prof. D. Cantone. Modulo LeTecniche della Programmazione: Strutture di controllo e strutture dati Modulo LeTecniche della Programmazione:

Le strutture di controllo 7/11Le strutture di controllo 7/11

PSEUDOCODIFICA

INIZIO

chiedi (prezzo, quantità)leggi (prezzo,qta)SE qta =3

ALLORAqta <- 2

importo <- qta* prezzoscrivi (importo)

FINE

Page 24: Fondamenti di Informatica Prof. D. Cantone. Modulo LeTecniche della Programmazione: Strutture di controllo e strutture dati Modulo LeTecniche della Programmazione:

Le strutture di controllo 8/11Le strutture di controllo 8/11

BEGIN

ClsScr;Write (‘Scrivi prezzo e quantità ‘);Readln(prezzo, qta);IF qta =3

THENqta:=2;

importo:= prezzo*qta;Writeln (‘Importo da pagare = ‘,importo:10:2);Readln

END.

Page 25: Fondamenti di Informatica Prof. D. Cantone. Modulo LeTecniche della Programmazione: Strutture di controllo e strutture dati Modulo LeTecniche della Programmazione:

Le strutture di controllo 9/11Le 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

Page 26: Fondamenti di Informatica Prof. D. Cantone. Modulo LeTecniche della Programmazione: Strutture di controllo e strutture dati Modulo LeTecniche della Programmazione:

Le strutture di controllo 10/11Le strutture di controllo 10/11

PSEUDOCODIFICA

INIZIO

chiedi (due numeri)leggi (a,b)prodotto <- 0 RIPETI

prodotto <- prodotto + ab <- b-1

FINCHE’ b=0scrivi (prodotto)

FINE

Page 27: Fondamenti di Informatica Prof. D. Cantone. Modulo LeTecniche della Programmazione: Strutture di controllo e strutture dati Modulo LeTecniche della Programmazione:

Le strutture di controllo 11/11 Le strutture di controllo 11/11

BEGINClsScr;Write (‘Scrivi due numeri ‘);Readln(a, b);prod:=0

REPEATprod:= prod+a;b:= b-1

UNTIL b=0;Writeln (‘prodotto = ‘, prod);ReadlnEND.

Page 28: Fondamenti di Informatica Prof. D. Cantone. Modulo LeTecniche della Programmazione: Strutture di controllo e strutture dati Modulo LeTecniche della Programmazione:

Le strutture derivate 1/14Le 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.

istruzioni

condizione

V

F

Page 29: Fondamenti di Informatica Prof. D. Cantone. Modulo LeTecniche della Programmazione: Strutture di controllo e strutture dati Modulo LeTecniche della Programmazione:

Le strutture derivate 2/14Le strutture derivate 2/14

Nel linguaggio Pascal l’iterazione precondizionale si rappresenta con la struttura WHILE:

WHILE condizione DOBEGINistruzione;END;

Esempio:

Divisione tra interi usando le sottrazioni successive

Page 30: Fondamenti di Informatica Prof. D. Cantone. Modulo LeTecniche della Programmazione: Strutture di controllo e strutture dati Modulo LeTecniche della Programmazione:

Le strutture derivate 3/14Le strutture derivate 3/14

PSEUDOCODIFICA

INIZIOchiedi (due numeri)leggi (a,b)quoz <- 0

MENTRE a >= b ESEGUIa <- a-bquoz <- quoz +1

scrivi (‘quoziente= ‘,quoz)scrivi (‘resto = ‘, a)FINE

Page 31: Fondamenti di Informatica Prof. D. Cantone. Modulo LeTecniche della Programmazione: Strutture di controllo e strutture dati Modulo LeTecniche della Programmazione:

Le strutture derivate 4/14Le strutture derivate 4/14Quoziente della divisione tra interi (corpo del programma in Pascal):BEGIN

ClrScr;Write (‘Scrivi due numeri ’);Readln (a,b);quoz:= 0;WHILE a >= b DO

BEGINa:=a – b;quoz:=quoz + 1

END;Writeln (‘quoziente ’, quoz);Readln

END.

Page 32: Fondamenti di Informatica Prof. D. Cantone. Modulo LeTecniche della Programmazione: Strutture di controllo e strutture dati Modulo LeTecniche della Programmazione:

Le strutture derivate 5/14Le 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.

Page 33: Fondamenti di Informatica Prof. D. Cantone. Modulo LeTecniche della Programmazione: Strutture di controllo e strutture dati Modulo LeTecniche della Programmazione:

Le strutture derivate 6/14Le strutture derivate 6/14

La ripetizione enumerativa:

diagramma a blocchi

c <- min

istruzioni

incrementa c

c<=maxF

V

Page 34: Fondamenti di Informatica Prof. D. Cantone. Modulo LeTecniche della Programmazione: Strutture di controllo e strutture dati Modulo LeTecniche della Programmazione:

Le strutture derivate 7/14Le strutture derivate 7/14

La ripetizione enumerativa in Pascal:

FOR contatore:= valore_iniziale TO valore_finale DO

BEGINistruzioni

END;

Esempio:

Data in input una serie di n numeri, determinare il massimo tra essi.

Page 35: Fondamenti di Informatica Prof. D. Cantone. Modulo LeTecniche della Programmazione: Strutture di controllo e strutture dati Modulo LeTecniche della Programmazione:

Le strutture derivate 8/14Le strutture derivate 8/14

PSEUDOCODIFICAINIZIO

chiedi (il numero dei dati)leggi(n)PER i DA 1 A n ESEGUI

chiedi (dato)leggi (dato) SE i = 1

ALLORAmax <- dato

SE dato > maxALLORA

max <- datoscrivi(max)

FINE

Page 36: Fondamenti di Informatica Prof. D. Cantone. Modulo LeTecniche della Programmazione: Strutture di controllo e strutture dati Modulo LeTecniche della Programmazione:

Le strutture derivate 9/14Le strutture derivate 9/14BEGINClrScr;Write (‘Quanti sono i dati? ‘);Readln (n);FOR i:=1 TO n DO

BEGINWrite (‘Inserisci il ‘, i ‘dato ‘);Readln (dato);IF i = 1

THENmax:=dato

IF dato > maxTHEN

max:=datoEND;

Writeln (‘Il valore massimo è: ‘, max);ReadlnEND.

Page 37: Fondamenti di Informatica Prof. D. Cantone. Modulo LeTecniche della Programmazione: Strutture di controllo e strutture dati Modulo LeTecniche della Programmazione:

Le strutture derivate 10/14Le 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-1lista valori-2: istruzioni-2...lista valori-n: istruzioni-n

ALTRIMENTIistruzioni

Page 38: Fondamenti di Informatica Prof. D. Cantone. Modulo LeTecniche della Programmazione: Strutture di controllo e strutture dati Modulo LeTecniche della Programmazione:

Le strutture derivate 11/14Le strutture derivate 11/14

Var=val1

Var=val2

Var =val n

Istruz. 1

Istruz 2

Istruz n

istruzioni

V

V

V

F

F

F

La struttura di selezione multipla – Diagramma a blocchi

Page 39: Fondamenti di Informatica Prof. D. Cantone. Modulo LeTecniche della Programmazione: Strutture di controllo e strutture dati Modulo LeTecniche della Programmazione:

Le strutture derivate 12/14Le strutture derivate 12/14

La struttura di selezione multipla in Pascal:

CASE selettore OF1: istruzione 12: istruzione 23: istruzione 3

ELSEistruzione

END;

Esempio:

Simulazione di una calcolatrice che sia in grado di eseguire le 4 operazioni aritmetiche fondamentali.

Page 40: Fondamenti di Informatica Prof. D. Cantone. Modulo LeTecniche della Programmazione: Strutture di controllo e strutture dati Modulo LeTecniche della Programmazione:

Le strutture derivate 13/14Le strutture derivate 13/14BEGINClrScr;REPEATWrite (‘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/bELSE BEGINWriteln(‘Operazione impossibile’);errore:=trueEND

Page 41: Fondamenti di Informatica Prof. D. Cantone. Modulo LeTecniche della Programmazione: Strutture di controllo e strutture dati Modulo LeTecniche della Programmazione:

Le strutture derivate 14/14Le strutture derivate 14/14

ELSEBEGINWriteln (‘Tasto errato’);errore:=trueEND

END;IF NOT errore

THENWriteln (‘Il risultato è ‘ risultato);

Write (‘Vuoi ripetere ? (s/n) ‘)Readln (risp)

UNTIL risp= ‘n’END.

Page 42: Fondamenti di Informatica Prof. D. Cantone. Modulo LeTecniche della Programmazione: Strutture di controllo e strutture dati Modulo LeTecniche della Programmazione:

FINE