Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
1
Organizzazione del corso
Nicola Fanizzi Stanza: ° piano - DIB Laboratorio: Martedì 15-17 Lezione: Mercoledì 10-11 Ricevimento: Martedì 11-13 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
Struttura programmi Pascal: primo programma
program paese (output); begin write('Tre'); write(' casettine'); write(' dai tetti'); write(' aguzzi'); end. corpo del programma opzionale
4
Struttura programmi Pascal: Schema
program <nome-programma> (output); begin <istruzione 1>; <istruzione 2>; <istruzione 3>; . . . <istruzione n>; end.
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
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
Variabili e assegnamenti
integer tipo predefinito dimensione occupazione in memoria tipicamente 2 byte = 16 bit -2^ operazioni lecite es.(sugli interi): * div := operatore di assegnazione <l-value> := <r-value>; 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
Dichiarazioni var base,altezza,area: integer;
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, … non è consentito dichiarare nuovamente un identificatore già dichiarato
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); 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
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
Costanti 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; per i nomi valgono le regole degli identificatori leggibilità: aumentano la del programma flessibilità e facilità di manutenzione: eventuali modifiche si concentrano in un solo punto
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
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
Area rettangolo (4) program rettangolo4 (input, output); var
base, altezza, area: integer; begin writeln; writeln('AREA RETTANGOLO'); write('Valore base: '); readln(base); write(' Valore altezza: '); readln(altezza); area := base*altezza; writeln('Base: ', base); writeln('Altezza: ', altezza); writeln('Area: ', area); readln; end.
15
Emissione di dati Rendere l'ouput più leggibile:
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
Espressioni aritmetiche
op. unario - inversione del segno op. binarie + somma - sottrazione * moltiplicazione div divisione intera (troncamento) mod modulo (resto della div. intera) priorità: - (unario) * div mod (op. moltiplicative) + - (op. additivi) uso delle parentesi per cambiare la priorità corrisponde a: (((((c + 6)* 3 + a) div 2) + 10 * 4) div 12) + b
17
Funzioni predefinite abs(•) valore assoluto sqr(•) quadrato
pred(•) valore precedente succ(•) valore successivo
18
Uso di funzioni predefinite
program lunghezzaSegmento (input, output); var a, b: integer; segmento, lunghezza: integer; begin writeln; writeln('LUNGHEZZA SEGMENTO'); write('Primo estremo: '); readln(a); write('Secondo estremo: '); readln(b); segmento := a-b; lunghezza := abs(segmento); writeln('Lunghezza segmento: ', lunghezza); readln; end.
19
Esercizi Svolgere i programmi indicati nei seguenti esercizi del testo: Cap. 1, n° 1 — 5, 9, 11 pagg
20
Es. 1.10 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
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.