Module: Sottoprogrammi: procedure e funzioni - 1


Problem

9 /12


Variabili locali e globali

Theory Click to read/hide

Spesso è necessario utilizzare variabili aggiuntive che verranno utilizzate solo nella subroutine. Tali variabili sono chiamate local (o local) e possono essere manipolate solo all'interno della subroutine in cui sono create.
 

L'ambito della variabile locale è la funzione o procedura all'interno della quale è dichiarata

Pertanto, è possibile limitare l'ambito (ambito) di una variabile solo alla subroutine in cui è realmente necessario. In programmazione, questa tecnica è chiamata incapsulamento  - nascondere una variabile dall'essere modificata dall'esterno.

Se è necessario dichiarare una variabile che sarebbe visibile in qualsiasi punto del programma (in qualsiasi subroutine), tali variabili vengono dichiarate al di fuori di tutte le subroutine (vedere il programma 3 dalla tabella sottostante)
Tali variabili sono chiamate global.

Analizza tre programmi: viene visualizzato sullo schermo
1) In questo programma, la variabile i è locale. Una variabile locale è dichiarata all'interno di una subroutine 2) Qui, anche se c'è una variabile i nel programma principale (con valore 7), verrà creata una nuova variabile locale i con valore 5. 
Quando esegui questo programma, lo schermo visualizzerà il valore 75
3) Questo programma ha una variabile globale i. Il suo valore può essere modificato all'interno di una subroutine e all'interno del programma principale
La procedura funzionerà con la variabile globale i e le verrà assegnato un nuovo valore pari a 2. Il valore 2
procedura test();
var i: intero;
iniziare
    io := 5;
    writeln(i);
fine;
var i: numero intero;

procedura test();
var i: intero;
iniziare
    io := 5;
    writeln(i);
fine;

iniziare
    i := 7;
    scrivi(i);
    prova();
fine.
var i: numero intero;

procedura test();
iniziare
    io := 2;
fine;

iniziare
    prova();
    writeln(i);
fine.

Problem

Scrivete una procedura con un parametro n che visualizzi un albero di Natale con una corona di altezza n
Il programma principale deve contenere l'input del valore della variabile n e la chiamata della procedura

Esempi
# Input Uscita
1 5
    o
   oooo
  ooooo
 ooooooooo
ooooooooo