La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

- prof. V. Riboldi - SOTTOPROGRAMMI IN TPASCAL METODO TOP DOWN.

Presentazioni simili


Presentazione sul tema: "- prof. V. Riboldi - SOTTOPROGRAMMI IN TPASCAL METODO TOP DOWN."— Transcript della presentazione:

1 - prof. V. Riboldi - SOTTOPROGRAMMI IN TPASCAL METODO TOP DOWN

2 - prof. V. Riboldi - programma principalemain program, sottoprogrammi L’intero programma viene suddiviso in un blocco principale, detto programma principale o main program, e in ulteriori blocchi, i sottoprogrammi, sviluppati separatamente e richiamabili, mediante il nome ad essi assegnato, dal programma principale o da un altro sottoprogramma

3 - prof. V. Riboldi - Una buona organizzazione del programma in sottoprogrammi §consente una struttura gerarchica e modulare §facilita l la comprensione l la verifica l la documentazione pertanto agevola la questione della complessità

4 - prof. V. Riboldi - chiamata Ogni sottoprogramma è identificato da un nome a cui un’istruzione del programma principale, detta chiamata, fa riferimento in ogni punto del programma in cui è richiesta l’esecuzione del sottoprogramma stesso. M A B C D EF Il programma principale M può chiamare un sottoprogramma A, che a sua volta chiama un sottoprogramma B, che a sua volta utilizza un sottoprogramma C …… Il calcolatore ogni volta che, durante l’elaborazione del programma principale, incontra una chiamata, sospende l’elaborazione del main program ed esegue le istruzioni del sottoprogramma stesso: al termine dell’esecuzione, il controllo torna all’istruzione del main program successiva a quella di chiamata

5 - prof. V. Riboldi - In generale viene attuato uno scambio di dati tra sottoprogramma e programma chiamante e ciò avviene per mezzo dei parametri: §Parametri formali appaiono nella dichiarazione di un sottoprogramma §Parametri attuali appaiono nelle chiamate del sottoprogramma I parametri formali, al momento dell’esecuzione del sottoprogramma sono sostituiti dai corrispondenti parametri attuali indicati nell’istruzione di chiamata I parametri formali e attuali devono essere congrui tra loro in numero, tipo, ordine

6 - prof. V. Riboldi - In un sottoprogramma possono essere presenti variabili di tre classi diverse: §Parametri formali §Variabili locali dichiarate nel sottoprogramma usate solo all’interno del sottoprogramma accessibili solo al sottoprogramma in cui sono dichiarate (visibilità locale) §Variabili globali dichiarate nel programma principale (P.P.) usate sia dal P.P. che dal sottoprogramma accessibili da qualsiasi parte del programma (visibilità globale)

7 - prof. V. Riboldi - esempio §Ogni oggetto dichiarato nel programma principale M è visibile anche nei sottoprogrammi A, B, C §Ogni oggetto definito in B è visibile anche in C §Gli oggetti definiti in A e C sono visibili solo nei rispettivi moduli M A B C

8 - prof. V. Riboldi - I sottoprogrammi in TP possono essere di due tipi: §FUNZIONI restituiscono al programma chiamante un risultato individuato tramite una notazione funzionale non modificano il valore dei parametri passati §PROCEDURE restituiscono, solo attraverso parametri, anche più di un risultato al programma chiamante possono modificare il valore dei parametri passati Sia le procedure che le funzioni devono essere dichiarate dopo le variabili, prima della sezione delle istruzioni

9 - prof. V. Riboldi - LE FUNZIONI §DICHIARAZIONE l intestazione FUNCTION nome_funz(x:tipo_parametro):tipo risultato l parte dichiarativa contiene la definizione delle variabili locali l istruzioni deve contenere almeno una istruzione di assegnazionenome_funz:=<<espressione>> §CHIAMATA la funzione viene invocata dal programma attraverso il suo nome, assegnato ad una variabile, seguito dai parametri attuali racchiusi in parentesi

10 - prof. V. Riboldi - esempio Program…… var X,Y,Z:integer; function MASSIMO (I,J:integer):integer; begin if I > J then MASSIMO:=I else MASSIMO:=J end; begin …… X:=Y+MASSIMO(Y,Z) ….. end.

11 - prof. V. Riboldi - LE PROCEDURE §DICHIARAZIONE l intestazione PROCEDURE nome_proc PROCEDURE nome_proc (elenco parametri formali con esplicitazione del tipo) l parte dichiarativa contiene la definizione delle variabili locali l istruzioni §CHIAMATA la procedure viene invocata dal programma attraverso il suo nome, seguito dai parametri attuali racchiusi in parentesi

12 - prof. V. Riboldi - MODALITA’ TRASFERIMENTO DATI §PASSAGGIO PER VALORE il parametro formale e quello attuale occupano due aree di memoria diverse PROCEDURE nome_proc PROCEDURE nome_proc (PARAMETRO_VALORE: tipo) §PASSAGGIO PER INDIRIZZO il parametro formale e quello attuale occupano la stessa area di memoria PROCEDURE nome_proc ( PROCEDURE nome_proc (var PARAMETRO_VARIABILE: tipo)

13 - prof. V. Riboldi - §Quando si vuole conservare nel P.P. il valore di una variabile, questa deve essere passata alla procedura mediante un parametro valore §Quando si vuole che la procedura passi al P.P. il risultato dell’elaborazione, la variabile deve essere passata alla procedura mediante un parametro variabile §Tra la lista dei parametri formali di una procedura e quella dei parametri attuali dell’istruzione di chiamata esiste una corrispondenza biunivoca: al primo, al secondo, …. parametro formale corrisponde il primo, il secondo, …. parametro attuale e viceversa §I parametri corrispondenti devono essere dichiarati dello stesso tipo

14 - prof. V. Riboldi - var A,B:integer; procedure TEST(X:integer; var Y:integer); begin X:=X+10; Y:=Y*10; end; begin A:=5; B:=2; TEST(A,B); end valore indirizzo P.P.A=5 B=2 TESTX=5 Y=2 X=15 Y=20 P.P.A=5 B=20


Scaricare ppt "- prof. V. Riboldi - SOTTOPROGRAMMI IN TPASCAL METODO TOP DOWN."

Presentazioni simili


Annunci Google