Algoritmi, Strutture Dati e Programmi UD 2.b: Programmazione in Pascal Prof. Alberto Postiglione Dipartimento di Scienze della Comunicazione AA 2007-2008 Università degli Studi di Salerno Modificata il 22/11/2007 Algoritmi, Strutture Dati e Programmi: Programmazione in Pascal Il Linguaggio di Programmazione Pascal e Esistono molti linguaggi di programmazione. Per motivi zion e ca didattici utilizzeremo una versione “ridotta” di unmuni o ailC Pascal. linguaggio di programmazione tra i più semplici, l l e de ze n ie Sc i d Questo linguaggio presenta tutte letocaratteristiche dei n e linguaggi più “complessi”, anchertse im non è molto utilizzato a p dai programmatori professionisti (se non nella versione, Di chiamata Delphi). UD 2.b # 2 Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno 1 Modificata il 22/11/2007 Algoritmi, Strutture Dati e Programmi: Programmazione in Pascal Il Linguaggio di Programmazione Pascal e Un buon compilatore Pascal (Dev-Pascal 1.9.2 + Free zion e a nic Pascal compiler) lo si può scaricare, gratuitamente, u om aC all’indirizzo: http://www.bloodshed.net/devpascal.html. l l e e ed z ien Sc i d E’ sicuramente utile un testo introduttivo sulla to n e programmazione in Pascal. Un manuale di introduzione al im rt pa i linguaggio lo si può trovare Din rete agli indirizzi ¾ http://it.wikibooks.org/wiki/Programmare_in_Pascal (Wikipedia). ¾ http://www.marcocantu.it/epascal/default.htm (Pascal nella versione Delphi ) ¾ http://www.matematiche.org/ (seguendo il link “Dispense”) # 3 UD 2.b Modificata il 22/11/2007 Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno Algoritmi, Strutture Dati e Programmi: Programmazione in Pascal Il Linguaggio di Programmazione Pascal e Un programma nel linguaggio di programmazione Pascalzièon e ica suddiviso in due blocchi un m o aC ¾ (DATI) Blocco delle dichiarazioni degli oggetti di llavoro el d (principalmente variabili, costanti e tipi di dato). ze ien c ¾ (ISTRUZIONI) Blocco delle istruzioni racchiuse tra le parole S di o chiave begin …. End t en im t r pa Di Ogni programma comincia con la parola “program” seguita dal nome che noi attribuiamo al programma Ogni istruzione termina con un punto e virgola ‘;’ UD 2.b # 4 Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno 2 Modificata il 22/11/2007 Algoritmi, Strutture Dati e Programmi: Programmazione in Pascal Tipi di Dato “Predefiniti” Tipi di dato elementari: ¾ Integer (numero intero) a el l d e ¾ Char (singolo carattere) nz e i Sc ¾ Boolean (può valere VERO o FALSO) di o t ¾… en m i rt Tipi di dato “composti” pa Di ¾ String (sequenza di caratteri) ¾ Real (numero reale) ne zio a nic mu o C ¾ Array (Vettore o matrice) ¾ Record (gruppo di dati eterogenei) ¾ Text (File contenente testi) ¾… # 5 UD 2.b Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno Modificata il 22/11/2007 Algoritmi, Strutture Dati e Programmi: Programmazione in Pascal Esempi di dichiarazioni Const Mio_Nome = “Luigi”; Mia_Età = 35; Var Numero_Brano : integer; UD 2.b Titolo_Brano : string; Costo_CD : real; # 6 e i on z ica un m o aC l l de ze n ie Sc i od nt e im rt a p Di Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno 3 Modificata il 22/11/2007 Algoritmi, Strutture Dati e Programmi: Programmazione in Pascal Istruzioni principali Principali istruzioni ¾ Lettura/scrittura a el l d ¾ Decisione (corrisponde alla decisione binaria) nze ie Sc ¾ Ciclo i d to n e im rt a ip Per facilitare la lettura del Dcodice, è opportuno che le ¾ Assegnazione (corrisponde alla Sequenza) ne zio a nic mu o C istruzioni vengano scritte indentate, in base alla profondità dell’istruzione UD 2.b # 7 Modificata il 22/11/2007 Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno Algoritmi, Strutture Dati e Programmi: Programmazione in Pascal Istruzioni di Lettura e scrittura e Servono per leggere e scrivere il valore di una variabilezion e ca dall’input o sull’output (ad es. lettura da tastiera emuni o aC scrittura su video) l l e de ze n ie Sc i Write (Variabile): corrisponde ad inviare il valore od nt e corrente della Variabile alla periferica di output im rt a p i (tipicamente il monitor); D Read (Variabile): corrisponde a inserire nella Variabile il valore che viene immesso dalla periferica di input (tipicamente la tastiera) UD 2.b # 8 Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno 4 Modificata il 22/11/2007 Algoritmi, Strutture Dati e Programmi: Programmazione in Pascal Istruzioni di I/O: Esempio e ne Programma 1: Legge un carattere da input e lo manda zio a nic in output mu program Leggi; var car: char begin read(car); write(car); end. UD 2.b # 9 Modificata il 22/11/2007 a el l d e nz e i Sc di o t en m i rt pa Di Co Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno Algoritmi, Strutture Dati e Programmi: Programmazione in Pascal Istruzione di Assegnazione (Sequenza) e e Assegnazione: Istruzione che assegna il valore attuale i on z ica di un’espressione ad una variabile un m o Sintassi: UD 2.b # 10 aC el l d ze ien c S di Nome della Variabile := Espressione; o t en im t r pa Di Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno 5 Modificata il 22/11/2007 Algoritmi, Strutture Dati e Programmi: Programmazione in Pascal Istruzione di Assegnazione: Esempio 2 e ne Programma 2: Legge due numeri e manda in output la zio a nic loro somma mu program Somma; var totale: integer; begin read(x); read(y); totale :=x+y; write (totale); end. # 11 UD 2.b Modificata il 22/11/2007 a el l d e nz e i Sc di o t en m i rt pa Di m Co Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno Algoritmi, Strutture Dati e Programmi: Programmazione in Pascal Istruzione condizionale (Decisione Binaria) e e E’ un’istruzione che valuta una condizione ed esegue, zin i on ica alternativa, un insieme di istruzioni o un altro in unbase m o aC all’esito del confronto (VERO/FALSO). l l e de ze n ie Sc end then begin Istruzioni i 1 d to n else begin eIstruzioni2 end im rtcomposte da una sola a ¾ Se Istruzioni1 o Istruzioni2 sono p Di istruzione, la coppia di begin … end può essere omessa if Condizione Se la condizione è soddisfatta si esegue il then, altrimenti si esegue l’else UD 2.b # 12 Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno 6 Modificata il 22/11/2007 Algoritmi, Strutture Dati e Programmi: Programmazione in Pascal Istruzione condizionale: Esempio e ne Programma 3: Legge due numeri e manda in output zio il a ic massimo un om program Massimo; var x,y: integer; begin read(x); read(y); if x > y then write (x) else write (y); end # 13 UD 2.b Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno Modificata il 22/11/2007 C lla e d ze n e ci posizioni non NOTA: in queste iS d o va inserito nt il punto e virgola, e im l’istruzione non è in quanto rt pa i ancora terminata D Algoritmi, Strutture Dati e Programmi: Programmazione in Pascal Istruzione ciclica e e E’ un’istruzione che valuta una condizione ed esegue un i on z ica insieme di istruzioni se il confronto dà esito VERO un e m o a CFALSO poi torna ad eseguire il test. In caso di esito l l de ze si “esce dal ciclo”, cioè viene eseguita l’istruzione n cie immediatamente successiva l’end del dciclo iS to en m i rt pa i D Sintassi: while Condizione do begin Lista Istruzioni end UD 2.b # 14 Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno 7 Modificata il 22/11/2007 Algoritmi, Strutture Dati e Programmi: Programmazione in Pascal Istruzione ciclica: Esempio e i on Programma 4: Calcola la somma di 10 numeri az nic mu o C lla e Algoritmo informale: d ze n e 1) inizializza Totale con 0 ci iS d o 2) Esegui per 10 volte le seguenti due istruzioni nt e im 2.1) leggi (x) rt pa i 2.2) effettua laDsomma di x con Totale 3) stampa Totale Ho bisogno di un meccanismo che mi permetta di eseguire per 10 volte le istruzioni 2.1 e 2.2 (qualcosa che conti il numero di volte che 2.1 e 2.2 vengono eseguite!) UD 2.b # 15 Modificata il 22/11/2007 Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno Algoritmi, Strutture Dati e Programmi: Programmazione in Pascal Istruzione ciclica: Esempio Program Somma2; var x, K, totale: integer; begin totale := 0; K := 1; while K <= 10 do begin end UD 2.b read (x); totale := totale + x; K:=K+1; end; write (totale); # 16 e i on z ica un m o aC l l de ze n ie Sc i od nt e im rt a p Di Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno 8 Modificata il 22/11/2007 Algoritmi, Strutture Dati e Programmi: Programmazione in Pascal Istruzione ciclica: Esempio (alternativo) Program Somma2bis; var x, K, totale: integer; begin totale := 0; for K :=1 to 10 do begin a el l d e nz e i Sc di o t en m i rt pa Di ne zio a nic mu o C read (x); totale := totale + x; end; write (totale); end UD 2.b # 17 Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno 9