• 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!
13
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: nome del programma Sezione dichiarativa: riporta tutte le informazioni, nomi e relativi tipi, che saranno usate nel programma

Corpo del programma: sequenza di 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 tipi e nomi delle informazioni (variabili)

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

– calcolo ed assegnazione

• frasi per operazioni di uscita

• frasi per la definizione istruzioni

… un ipotetico linguaggio di programmazione generico e generale ...

… Linguaggio generico 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 scrive il programmatore

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

Tipi definiti dal linguaggio

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

deve essere indicato 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:

• definizione dell’unità di ingresso coinvolta

• indicazione delle informazioni (variabili) cui assegnare il valore

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

nella loro forma più semplice:

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

(tipicamente la tastiera)

• formato non indicato ed individuato per “default”

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

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” area_quadrato, “%f” lato_quadrato);

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” numero_pagine);

_ L’utente digita 35

35

numero_pagine = 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 = 100,00 ... sullo schermo viene visualizzato:

6000 1100,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 che deve ricevere 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: una variabile, una costante, una espressione Esempio:

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

y = 3;

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

Descrizione dell’ algoritmo (metodo di elaborazione):

• 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’);

read (“%f” LBase);

write (‘immetti valore della altezza di base‘);

read (“%f” ABase);

write (‘immetti valore della altezza del parallelepipedo‘);

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

Il programma di esempio in C

#include<stdio.h>

main ( )

{ // calcola il volume di un parallelepipedo float LBase, ABase, H, Area_Base, Volume;

printf ("immetti valore della lunghezza di base \n");

scanf ("%f" , &LBase);

printf("immetti valore altezza di base \n");

scanf("%f" , &ABase);

printf("immetti valore altezza parallelepipedo\n");

scanf("%f" , &H);

Area_Base = LBase* ABase;

Volume=Area_Base*H;

printf ("Volume= %f \n",Volume);

}

... E volendo considerare la verifica delle precondizioni ??

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

Esempio

... 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, 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 verificare condizioni e controllare differenti possibili sequenze di esecuzioni ...

Riferimenti

Documenti correlati

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]

• 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,

[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;