La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

1 Organizzazione del corso Nicola Fanizzi Stanza: 525 - 5° piano - DIB Laboratorio: Martedì 15-17 Lezione: Mercoledì 10-11 Ricevimento:

Presentazioni simili


Presentazione sul tema: "1 Organizzazione del corso Nicola Fanizzi Stanza: 525 - 5° piano - DIB Laboratorio: Martedì 15-17 Lezione: Mercoledì 10-11 Ricevimento:"— Transcript della presentazione:

1 1 Organizzazione del corso Nicola Fanizzi Stanza: ° piano - DIB Laboratorio: Martedì Lezione: Mercoledì Ricevimento: Martedì Sito: /~fanizzi Testi base: A. Guidi & N. Renzoni, Pascal - Guida alla Programmazione, McGraw-Hill Fiorentino et al., Pascal - Laboratorio di Programmazione, McGraw-Hill Compilatore base: Dev-Pascal GNU Pascal (ISO) Free Pascal

2 Introduzione: Struttura dei Programmi Pascal Nicola Fanizzi Laboratorio - Corso di Programmazione (B) C.d.L. in Informatica DIB - Università degli Studi di Bari

3 3 Struttura programmi Pascal: primo programma program paese (output); begin write('Tre'); write(' casettine'); write(' dai tetti'); write(' aguzzi'); end. corpo del programma opzionale

4 4 Struttura programmi Pascal: Schema program (output); begin ;... ; end.

5 5 Struttura programmi Pascal: Stampa program paeseTranquillo (output); begin write('Tre'); write(' casettine'); write(' dall''aria'); write(' tranquilla'); end. writeln stampa un ritorno a capo a fine stampa

6 6 Variabili e assegnamenti Area rettangolo { Calcolo area rettangolo } program rettangolo (output); (* Calcolo area rettangolo *) var base: integer; altezza: integer; area: integer; begin base := 3; altezza := 7; area := base*altezza; write(area); end.

7 7 Variabili e assegnamenti integer tipo predefinito –dimensione occupazione in memoria tipicamente 2 byte = 16 bit -2^ –operazioni lecite es.(sugli interi): + - * div n := operatore di assegnazione := ; es. base := 3; fa sì che il valore (intero) 3 venga assegnato alla variabile intera base es. area := base*altezza; in generale a destra si può avere un'espressione il cui valore viene calcolato prima dell'assegnamento

8 8 Dichiarazioni var base,altezza,area: integer; n regole per i nomi degli identificatori: –devono iniziare con una lettera o con una sottolineatura _ –possono contenere solo lettere non accentate, cifre oppure lo stesso simbolo _ –corretti: nome1, cognome2, cognome_nome, a, volume, peso,... –errati: 12nome, cognome-nome, età, vero?, Padri&figli, … n non è consentito dichiarare nuovamente un identificatore già dichiarato

9 9 Stampa con write e writeln possono stampare anche i contenuti delle variabili o i risultati della valutazione di espressioni: write(area); equivalente a: write(base*altezza); n possono stampare: sia caratteri corrispondenti a valori numerici, sia stringhe la lista delle espressioni da stampare viene separata da virgole: writeln('area:',base*altezza);

10 10 Area rettangolo (2) { Calcolo area rettangolo } program rettangolo2 (output); var base,altezza,area: integer; begin base := 3; altezza := 7; area := base*altezza; writeln('Base: ', base); writeln('Altezza:', altezza); writeln('Area: ', area); end.

11 11 Costanti n Quando un valore fisso viene usato in maniera ricorrente nel programma può essere utile memorizzarlo in una costante dichiarata nell'apposita sezione del programma (prima delle variabili in Pascal standard): const BASE = 3; n per i nomi valgono le regole degli identificatori n leggibilità: aumentano la del programma flessibilità e facilità di manutenzione: eventuali modifiche si concentrano in un solo punto

12 12 Area rettangolo (3) { Calcolo area rettangolo, prova utilizzo costanti } program rettangolo3 (output); const BASE = 3; ALTEZZA = 7; var area: integer; begin area := BASE*ALTEZZA; writeln('Base: ', BASE); writeln('Altezza:', ALTEZZA); writeln('Area: ', area); end.

13 13 Immissione di dati Per rendere i programmi più generali servono strumenti per leggere valori immessi dall'estreno: read(base); legge un valore da tastiera e lo converte in un intero, immagazzinato nella variabile spesso si fa precedere da una write che richiede l'immissione: write('Valore base:'); read(base); read(base,altezza); lettura di valori multipli: readln(base); legge un valore va alla linea successiva readln; usabile per un'attesa indefinita

14 14 Area rettangolo (4) program rettangolo4 (input, output); var base, altezza, area: integer; begin writeln; writeln('AREA RETTANGOLO'); writeln; write('Valore base: '); readln(base); write(' Valore altezza: '); readln(altezza); area := base*altezza; writeln; writeln('Base: ', base); writeln('Altezza: ', altezza); writeln('Area: ', area); readln; end.

15 15 Emissione di dati writeln(base, altezza, area); es. se base = 10 e altezza = 13 si ottiene la stampa: |1|0|1|3|1|3|0| Rendere l'ouput più leggibile: usando spazi: writeln(base,' ',altezza,' ',area); o meglio: writeln('Base:', base, ' Altezza: ', altezza, ' Area: ', area); formattazione a destra: writeln(base:5, altezza:5, area:5); ottenendo: | | | |1|0| | | |1|3| | |1|3|0|

16 16 Espressioni aritmetiche op. unario - inversione del segno op. binarie + somma - sottrazione * moltiplicazione div divisione intera (troncamento) mod modulo (resto della div. intera) n priorità: - (unario) * div mod (op. moltiplicative) + - (op. additivi) n uso delle parentesi per cambiare la priorità corrisponde a: (((((c + 6)* 3 + a) div 2) + 10 * 4) div 12) + b

17 17 Funzioni predefinite abs() valore assoluto sqr() quadrato pred() valore precedente succ() valore successivo

18 18 Uso di funzioni predefinite program lunghezzaSegmento (input, output); var a, b: integer; segmento, lunghezza: integer; begin writeln; writeln('LUNGHEZZA SEGMENTO'); writeln; write('Primo estremo: '); readln(a); write('Secondo estremo: '); readln(b); segmento := a-b; lunghezza := abs(segmento); writeln('Lunghezza segmento: ', lunghezza); readln; end.

19 19 Esercizi n Svolgere i programmi indicati nei seguenti esercizi del testo: Cap. 1, n° 1 5, 9, 11 pagg

20 20 Es n Trovare gli errori program tutto sbagliato; cost base, altezza, area:= integer; begin base = 3; altezza := 7 area := base x altezza; writeln('Base:, base); writeln('Altezza:'; altezza); writelm('Area: ', area); end


Scaricare ppt "1 Organizzazione del corso Nicola Fanizzi Stanza: 525 - 5° piano - DIB Laboratorio: Martedì 15-17 Lezione: Mercoledì 10-11 Ricevimento:"

Presentazioni simili


Annunci Google