Module: Sottoprogrammi: procedure e funzioni - 1


Problem

8 /11


Variabili locali e globali

Theory Click to read/hide

Variabili locali e globali
Spesso è necessario utilizzare variabili aggiuntive che verranno utilizzate solo nella subroutine. Tali variabili sono chiamate locali (o locali) e possono essere manipolate solo all'interno della subroutine in cui vengono create.
 
L'ambito della variabile locale è il blocco tra parentesi graffe all'interno del quale è dichiarato.
Il programma principale in C# è anche una subroutine, quindi tutte le variabili dichiarate all'interno di void Main() sono variabili locali. Altre subroutine non "sanno" nulla delle variabili locali di altre subroutine.

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

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

In C#, all'avvio del programma, tutte le variabili globali vengono automaticamente impostate a zero (le variabili booleane assumono il valore false).

Analizza tre programmi:
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 questo programma viene eseguito, il valore 75 apparirà sullo schermo.
3) Questo programma ha una variabile globale i. Il suo valore può essere modificato all'interno della 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. Viene visualizzato il valore 2.
test del vuoto statico() {   int io = 5; Console.Write("i"); } test del vuoto statico() {   int io = 5;   Console.Write("i"); } vuoto statico Main() { int io = 7;   Console.Write("i");   test(); } utilizzando il sistema; programma di classe { int io; test del vuoto statico() {   io = 2; } vuoto statico Main() { test(); Console.Write("i"); } }

Problem

Scrivete una procedura con un parametro n che generi un albero di Natale con una corona di altezza n. Il programma principale deve contenere l'input del valore del n e la procedura call.< br />  
Esempi
# Input Uscita
1 5
    o
   oooo
  ooooo
 ooooooooo
ooooooooo