fondamenti di informatica prof. d. cantone. modulo letecniche della programmazione: strutture di...
Post on 01-May-2015
221 Views
Preview:
TRANSCRIPT
Fondamenti di InformaticaFondamenti di Informatica
Prof. D. CantoneProf. D. Cantone
Modulo Modulo LeTecniche della LeTecniche della Programmazione:Programmazione:
Strutture di controllo e strutture Strutture di controllo e strutture datidati
Walter FiorioWalter Fiorio
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
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
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
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
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
Unità 7: Le strutture di Unità 7: Le strutture di controllocontrollo
Tempo necessarioTempo necessario Prerequisiti richiestiPrerequisiti richiesti CompetenzeCompetenze MetodologieMetodologie StrumentiStrumenti
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
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
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
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
MetodologieMetodologie
Lezione frontaleLezione frontale Discussione guidataDiscussione guidata
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
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
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
Le strutture di controllo 1/11Le strutture di controllo 1/11
SequenzaSequenza
Istruz. 1z
Istruz. 3z
Istruz. 2z
Istruzione 1
Istruzione 2
Istruzione 3
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
Le strutture di controllo 3/11Le strutture di controllo 3/11
RipetizioneRipetizione
Istruz. 1z
Condiz.
RIPETI
istruzioni
FINCHE’
condizione
F
V
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.
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;
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.
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
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.
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
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
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.
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
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
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
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.
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.
Le strutture derivate 6/14Le strutture derivate 6/14
La ripetizione enumerativa:
diagramma a blocchi
c <- min
istruzioni
incrementa c
c<=maxF
V
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.
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
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.
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
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
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.
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
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.
FINE
top related