Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 27
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    1,258

    [pascal] da variabili globali a variabili locali

    ho questo codice,volevo trasformare l'array globale in locale...qualcuno sa come fare, o vuole provare a indovinare?
    codice:
    program stampaivalorida1a100 (output);
    
    type ins = array[1..100] of integer;
    
    var
      a: ins;
      i: integer;
    
    
    procedure stampa;
    begin
     for i:=1 to 100 do
        writeln(a[i]);
    end;
    
    
    
    begin
      for i:=1 to 100 do
        a[i] := i;
      stampa;
    
      readln;
    end.

  2. #2
    basta fare così:

    codice:
    program stampaivalorida1a100 (output);
    
    type ins = array[1..100] of integer;
    
    var
      i: integer;
    
    
    procedure stampa;
    begin
        a: ins;
    for i:=1 to 100 do
        a[i] := i;
        for i:=1 to 100 do
        writeln(a[i]);
    end;
    
    
    
    begin
      stampa;
    
      readln;
    end.
    xò facendo così una volta conclusa la procedura stampa l'array non esisterà più!

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    1,258
    No Quello che mi hai proposto è diverso da quello che chiedevo. Io non voglio creare l'array dentro la procedura ma voglio passarglielo come parametro locale. Un po' quello che si fa in Java, senza consapevolezza delle variabili locali/globali.

    (Se vogliamo in Java, quello che si avvicina di piu a variabili globali sono i membri di una classe mentre in programmini cosi sono variabili locali, perchè sono tutte create dentro il main e passate ai metodi)

  4. #4
    Utente di HTML.it L'avatar di cso
    Registrato dal
    Aug 2004
    Messaggi
    2,050
    codice:
    program stampaivalorida1a100 (output);
    
    type ins=array[1..100] of integer;
    
    var a:ins;
        i:integer;
    {procedure}
    procedure stampa(var a:ins);
    begin
    for i:=1 to 100 do writeln(a[i]);
    end;
    
    {inizio main}
    begin
    for i:=1 to 100 do a[i]:=i;
    stampa(a);
    readln;
    end.

  5. #5
    Allora dovevi dirlo.....tu hai detto da globale a locale....non hai detto che dovevi passarglielo come parametro a una procedura....

  6. #6
    Utente di HTML.it L'avatar di cso
    Registrato dal
    Aug 2004
    Messaggi
    2,050
    se avessi risposto prima io avrei postato lo stesso codice che hai postato tu perchè aveva richiesto proprio quello!!!

  7. #7
    Infatti mi sembrava strano che chiedesse quella cosa...xò domandava quello e io gli ho risposto.....e va be....

  8. #8
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    1,258
    se avessi risposto prima io avrei postato lo stesso codice che hai postato tu perchè aveva richiesto proprio quello!!!
    HAHAHA! Non credevo di intendere quello

    Ma nooooo!!!!!!!!!!! questo codice è sbagliatooooooooo: VVoVe: VVoVe:

    codice:
    program stampaivalorida1a100 (output);
    
    type ins=array[1..100] of integer;
    
    var a:ins;
        i:integer;
    {procedure}
    procedure stampa(var a:ins);
    begin
    for i:=1 to 100 do writeln(a[i]);
    end;
    
    {inizio main}
    begin
    for i:=1 to 100 do a[i]:=i;
    stampa(a);
    readln;
    end.
    Ma scusate che variabili locali sono se posso vedere l'array da una qualsiasi funzione/procedura? Infatti basta fare cosi:

    codice:
    program stampaivalorida1a100 (output);
    
    type ins=array[1..100] of integer;
    
    var a:ins;
        i:integer;
    {procedure}
    procedure stampa;
    begin
    for i:=1 to 100 do writeln(a[i]);
    end;
    
    {inizio main}
    begin
    for i:=1 to 100 do a[i]:=i;
    stampa;
    readln;
    end.
    ...e vedo l'array

  9. #9
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,301
    Uhm... Lucked... vuoi spiegare a parole semplici cosa vuoi fare? Una variabile è globale o locale... il problema è che locale è un termine usato, molto spesso, impropriamente: infatti una variabile può benissimo essere globale per una procedura e globale per un'altra. In questo caso, l'array è locale al corpo principale del programma e globale per la procedura.

    PS: il codice di cso è perfettamente valido.

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  10. #10
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    1,258
    Voglio dichiarare un array dentro il main e poi passarlo ai metodi.
    Voglio cioè che i metodi non possono modificare l'array se io non glielo passo..dovrebbe essere possibile se no che programmazione strutturata è?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.