• Non ci sono risultati.

Struttura di un programma Un programma è tipicamente strutturato nel seguente modo: Intestazione

N/A
N/A
Protected

Academic year: 2021

Condividi "Struttura di un programma Un programma è tipicamente strutturato nel seguente modo: Intestazione"

Copied!
16
0
0

Testo completo

(1)

Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio 1

Struttura di un programma

Un programma è tipicamente strutturato nel seguente modo:

Intestazione

Sezione dichiarativa Corpo del programma

Intestazione: identificativo del programma Sezione dichiarativa: riporta tutte le informazioni, nomi di variabili e tipi, che saranno usate nel programma

Corpo del programma: sequenza delle istruzioni formanti il programma

…. regole lessicali e sintattiche

un insieme di parole chiavi, regole per costruire nuovi nomi, regole per costruire le frasi

• frasi per indicare (dichiarare) i tipi e i nomi delle informazioni (variabili)

• frasi per poter assegnare/modificare valori alle variabili – operazioni di ingresso (input)

– calcolo ed assegnazione

• frasi per operazioni di uscita (output)

• frasi per la definizione di istruzioni

• Istruzioni semplici --- Istruzioni strutturate

… un ipotetico linguaggio di programmazionegenerico e generale ...

… un generico Linguaggio di Definizione dei Programmi (LDP)...

Un Linguaggio per la Definizione di Programmi

(2)

Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio 3

Struttura di un programma

… con riferimento ad un generico LDP ...

Program <nome programma>;

// sezione dichiarativa

<nome tipo> <lista nomi_variabili>

begin

<corpo del programma>

end.

In grassetto le parole/simboli chiavi (lessico) del linguaggio Tra < … > ciò che definisce il programmatore

// indicano un commento: una frase non eseguibile per l’elaboratore ma utile al programmatore

Tipi definiti dal linguaggio LDP

i tipi atomici (primitivi)

INTERO INT

REALE FLOAT

CARATTERE CHAR

LOGICO BOOL

Nomi delle variabili

devono iniziare con un carattere alfabetico, possono avere una lunghezza qualsiasi, non possono contenere il carattere <spazio>, non possono contenere i simboli degli operatori aritmetici

Non possono essere uguali a parole chiavi del linguaggio

deve essere indicato il nome ed il tipo di ogni variabile (dichiarazione della variabile) <nome tipo> <lista variabili>;

Es.

FLOAT area_quadrato, lato_quadrato;

INT n.ro_studenti, ore_lezioni;

(3)

Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio 5

• istruzioni di ingresso

• istruzioni di uscita

• istruzioni di calcolo ed assegnazione

in quasi tutti i linguaggi alle istruzioni di ingresso ed uscita corrisponde una azione elaborativa realizzata attraverso predefinite unità di programma

Istruzioni Semplici

Permettono di assegnare (definire) il valore di una o più informazioni (variabili) attraverso una unità di ingresso

prevedono:

• specificazione dell’unità di ingresso coinvolta

• indicazione degli attributi delle informazioni (nomi di variabili) cui assegnare il valore letto dalla unità di ingersso

• definizione del formato dei dati in ingresso, ovvero loro rappresentazione in base al tipo

nel loro formato più semplice:

• unità di ingresso non indicata e considerata quella standard (“default”)

(tipicamente la tastiera)

• formato dei dati non indicato ed individuato per “default”

(tipicamente il formato dei dati coincide con la rappresentazione prevista per le costanti del tipo di dato … )

Istruzioni di ingresso (input)

(4)

Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio 7

Hanno un formato del tipo:

read ([<unità ingresso>], [<formato>] <variabile>, …, [<formato>] <variabile>);

le [ … ] indicano un qualcosa di opzionale

se [<unità ingresso>] non è indicata si assume l’unità di default (la tastiera) [<formato>] indica il formato secondo cui il valore è rappresentato (in base al tipo)

<variabile> indica il nome della variabile cui assegnare il valore letto da unità ingresso

Istruzioni di ingresso (input)

%f <==> formato per numero reale

%d <==> formato per numero intero

Es:

read (“%f” base_triangolo, “%f” altezza_triangolo);

read (“%d” numero_pagine, “%f” prezzo_libro);

… quando è incontrata l’istruzione read, l’esecuzione del programma si interrompe fin quando non sono immessi i valori dei dati di input

Istruzioni di ingresso (input)

Es:

read (“%d” base_triangolo);

_ L’utente digita 35

35

Il valore 35 è assegnato alla variabile specificata ... base_triangolo = 35

(5)

Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio 9

permettono di trasferire i valori definiti da espressioni (variabili, costanti) sui supporti di una unità di uscita (schermo del video, foglio stampante etc.)

prevedono:

• individuazione dell’unità di uscita coinvolta

• indicazione delle espressioni (informazioni) coinvolte

• definizione del formato dei dati in uscita nella loro forma più semplice:

• l’unità di uscita è individuata per “default”

(tipicamente il video)

• il formato è individuato per “default”

(tipicamente il formato dei dati coincide con la rappresentazione prevista per le costanti del tipo delle espressioni)

Istruzioni di uscita (output)

Hanno un formato del tipo:

write ([<unità uscita>], [<formato>] <espressione>, ... , [<formato>] <espressione>);

se [<unità uscita >] non è indicata si assume l’unità di default

<espressione> può essere: una variabile, una costante, una espressione

Istruzioni di uscita (output)

%c <==> formato per carattere

Es:

write (“%f” area_quadrato, “%f” lato_quadrato);

write (“%d” numero_pagine, “%f” prezzo_libro);

write (“%d” numero_pagine*300, “%f” prezzo+IVA, “%d” 900, “%c” ‘B’);

… l’esecuzione dell’istruzione write, ha come effetto quello di visualizzare sull’unità di output indicata i valori di <espressione>

(6)

Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio 11

Istruzioni di output (output)

Es:

write (“%d” numero_pagine, “%f” prezzo_libro);

Se numero_pagine = 35 e prezzo_libro = 27, 80

35 27.80

read ([<unità ingresso>], [<formato>] <variabile>, …, [<formato>] <variabile>);

Istruzioni di ingresso/uscita (input/output)

read (“%f” area_quadrato, “%f” lato_quadrato);

read (“%d” numero_pagine, “%f” prezzo_libro);

… all’istruzione read, l’esecuzione del programma si interrompe fin quando non sono immessi i valori dei dati di input …

write ([<unità uscita>], [<formato>] <espressione>, ... , [<formato>] <espressione>);

write (“%f” area_quadrato, “%f” lato_quadrato);

write (“%d” numero_pagine, “%f” prezzo_libro);

write (“%d” numero_pagine*300, “%f” prezzo+IVA, “%d” 900, “%c” ‘B’, “CIAO”);

... se numero_pagine = 20 prezzo = 1000,00 IVA = 220,00 ... sullo schermo viene visualizzato:

6000 1220,00 900 B CIAO

(7)

Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio 13

permettono di calcolare il valore di una espressione ed assegnarlo ad una informazione informazione ed espressione devono essere dello stesso tipo

l’istruzione richiede:

• indicazione del nome della variabile cui assegnare il valore

• operatore di assegnazione (=)

• definizione della espressione che calcola il valore da assegnare alla variabile Hanno la forma:

<nome variabile> = <espressione>;

<espressione> può essere: il nome di una variabile, una costante, una espressione Esempio:

y = 3;

x = w + a * (y + 2);

Istruzioni di Calcolo ed Assegnazione

Un primo programma di esempio

Dato un numero intero in input, calcolare e visualizzarne il doppio Definizione della specifica del programma

Calcolare il doppio di un valore di un numero di tipo intero letto in input e visualizzare il risultato di tale calcolo

Definizione dei dati del problema:

I: un numero intero Pi: nessuna

U: doppio del valore in input

Pu: nessuna

(8)

Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio 15

Un primo programma di esempio

Nome variabile Descrizione Tipo

Doppio valore doppio di quello di input Intero Tabella delle informazioni di ingresso

Tabella delle informazioni di uscita

Nome variabile Descrizione Tipo

numero numero di cui calcolare il doppio Intero

Un primo programma di esempio Descrizione dell’ algoritmo :

• Leggi il valore di numero

• Calcola Doppio = numero * 2;

• visualizza il valore di Doppio.

(9)

Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio 17

Un primo programma di esempio

Program primo;

// legge in input il valore di una variabile di tipo intero e ne visualizza il suo doppio

INT numero, Doppio;

begin

read (“%d” numero);

Doppio = numero * 2;

write (“Numero = “, “%d” numero, “doppio= “, “%d” Doppio);

end.

intestazione commento

Dichiarazioni variabili

Operazione input

Operazione output Dato un numero intero, visualizzarne il doppio

Operazione assegnazione e calcolo

Un primo programma di esempio

Program primo;

// legge in input il valore di una variabile di tipo intero e ne visualizza il suo doppio

INT numero, Doppio;

begin

read (“%d” numero);

Doppio = numero * 2;

write (“Numero = “, “%d” numero,

“doppio= “, “ %d” Doppio);

end.

l’utente digita 4 numero= 4

4

Numero = 4 doppio = 8 Cosa accadrà quando sarà eseguito … dal punto di vista dell’utente

… però all’inizio l’utente può non sapere cosa fare …

Doppio= 8

(10)

Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio 19

Un primo programma di esempio

Program primo;

// legge in input il valore di una variabile di tipo intero e ne visualizza il suo doppio

INT numero, Doppio;

begin

write (“Immetti numero intero:”);

read (“%d” numero);

Doppio = numero * 2;

write (“Numero = “, “%d” numero,

“doppio= “, “%d” Doppio);

end.

l’utente digita 4 numero= 4

4

Numero = 4 doppio = 8

… un miglioramento …

Immetti numero intero:

Doppio= 8

Esempio

Definizione della specifica del programma

Calcolare il volume, in dm

3

, di un parallelepipedo di cui è nota la lunghezza dei lati

Definizione dei dati del problema:

I: I lati del parallelepipedo

Pi: I lati devono avere lunghezze maggiori di zero U: Volume del parallelepipedo

Pu: il volume è maggiore di zero

(11)

Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio 21

Esempio

Nome variabile Descrizione Tipo

Volume Volume del parallelepipedo Reale Tabella delle informazioni di ingresso

Tabella delle informazioni di uscita

Nome variabile Descrizione Tipo

LBase Lunghezza base parallelepipedo Reale ABase Altezza base parallelepipedo Reale H Altezza del parallelepipedo Reale

Esempio

Nome variabile Descrizione Tipo

Area_Base area di base del parallelepipedo Reale Tabella delle informazioni di algoritmo

(12)

Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio 23

Esempio

Definizione dell’ algoritmo:

• Leggi il valore in dm da assegnare a Lbase

• Leggi il valore in dm da assegnare a Abase

• Leggi il valore in dm da assegnare a H

• Calcola Area_Base = LBase * ABase;

• calcola Volume = Area_Base * H;

• visualizza il valore di Volume.

... Senza considerare la verifica delle precondizioni ...

Il programma di esempio

Program volume_parallelepipedo;

FLOAT LBase, ABase, H, Volume, Area_Base;

begin

write (“immetti valore della lunghezza di base (in dm)”);

read (“%f” LBase);

write (“immetti valore della altezza di base (in dm)”);

read (“%f” ABase);

write (“immetti valore della altezza del parallelepipedo (in dm)”);

read (“%f” H);

Area_Base = LBase* ABase;

Volume=Area_Base*H;

write (“Volume= “, “%f” Volume);

end.

(13)

Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio 25

Esempio Problema:

Calcolare quanti ettolitri di vino può contenere un tino di forma cilindrica, di cui si conoscono il diametro e la altezza.

(14)

Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio 27

Esempio

Definizione della specifica del programma

Calcolare il volume, in dm

3

, di un cilindro di cui è nota l’altezza ed il diametro della base. Dividere per 100 il volume per avere la capacità in ettolitri del tino

Definizione dei dati del problema:

I: Diametro della base, altezza

Pi: Diametro ed altezza devono avere lunghezze maggiori di zero

U: Capacità del tino in ettolitri Pu: la capacità è maggiore di zero

Esempio

Nome variabile Descrizione Tipo

Capacità Capacità del tino (ettolitri) Reale Tabella delle informazioni di ingresso

Tabella delle informazioni di uscita

Nome variabile Descrizione Tipo

Diametro Lunghezza diametro base cilindro Reale Altezza Altezza cilindro Reale

Tabella delle informazioni di Algoritmo

Nome variabile Descrizione Tipo

Volume Volume cilindro Reale

Area_Base area di base del cilindro Reale

(15)

Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio 29

Esempio

Precondizioni informazioni di ingresso (Diametro > 0) , (Altezza > 0) Postcondizioni informazioni di uscita:

Capacità > 0 Modello della soluzione:

Volume = Area_Base * Altezza Capacità = Volume/100

con Area_Base = (Diametro/2)2 * 3,14

Esempio Definizione dell’algoritmo :

• Leggi il valore in dm da assegnare a Diametro;

• Leggi il valore in dm da assegnare ad Altezza;

• verifica che Diametro ed Altezza maggiori di 0, altrimenti ripetere la lettura di tali valori;

• Calcola Area_Base = (Diametro/2)

2

* 3,14;

• Calcola Volume = Area_Base * Altezza;

• Calcola Capacità = Volume/100;

• visualizza il valore di Capacità.

(16)

Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio 31

Il programma di esempio

Program capacita_tino;

FLOAT Diametro, Volume, Area_Base, Altezza, Capacita;

begin

write (“immetti valore della lunghezza del diametro (in dm)”);

read (“%f” Diametro);

write (“immetti valore della altezza del cilindro (in dm)”);

read (“%f” Altezza);

Area_Base = (Diametro/2)2 * 3,14;

Volume=Area_Base*Altezza;

Capacita = Volume/100;

write (“Capacità tino ettolitri “, “%f” Capacita);

end.

... Senza, per ora, considerare la verifica delle precondizioni ...

Programma Esempio: volume parallelepipedo

... considerando anche le precondizioni

Descrizione del metodo di elaborazione:

• sono letti i valori, in dm, dei lati LBase, ABase, H;

• Si verifica che LBase, ABase ed H siano tutti maggiori di 0 per poter continuare con le istruzioni successive, altrimenti si ripete la lettura di tali valori;

• Si calcola l’area di base: Area_Base = LBase * ABase;

• Si calcola il Volume = Area_Base * H;

• Si visualizza il valore del Volume calcolato.

... necessità di altri tipi di istruzioni per poter verificare condizioni ed eventi che determinano differenti possibili sequenze di esecuzioni ...

Riferimenti

Documenti correlati

[r]

Rivista Trimestrale di Diritto Penale dell’Ambiente Fasc. Una volta entrati in tale gruppo, infatti saranno sottoposti a meno ispezioni e a sanzioni più moderate.

È stata valutata in pazienti diabetici di tipo 2 con sindrome meta- bolica (SM) l’efficacia di un programma educativo intensivo basato su: prescrizione e counseling dietetico;

• La condizione di mutua esclusione e’ l’unificazione dell’elemento da cancellare con la testa della lista dell’elemento da cancellare con la testa della lista. (cl1) delete1(T,

Le costanti vengono gestite dal compilatore in modo assai diverso rispetto alle variabili (il valore delle costanti viene sostituito nel sorgente all’inizio della compilazione

Applicazione dell’uguaglianza di Parceval nel calcolo della somma delle serie.. Trasformata

• Operazioni di relazione su due valori di tipo float o double produce come risultato un valore intero pari a 0 se la relazione non e`. verificata, e un valore intero diverso da 0

[r]