PDA

Visualizza la versione completa : [pascal]Var... indeterminate


unit1
20-01-2005, 14:20
Vi propongo il mio problema: quando in un algoritmo pascal variabili contatore non vengono pre determinate

es:



var i:integer;
...

i:=0; {devo mette la variabile i=0 se no potrebbe non partire da 0, perche?}
REPEAT
...
i:=i+1;
UNTIL(i=10);
...


possono creare problemi.
la prof dice che il compilatore crea un un valore random alla variabile i, ma io non credo che il compilatore sprechi risorse per una var indeterminata.

credo che sia semplicemnte il valore che avava la porsione di ram prima.

potete dirmi che accade se lo sapete? o come scoprirlo?

e in c?

LeleFT
20-01-2005, 14:23
Sì... effettivamente il valore random è dato dal fatto che non si sa quello che c'è scritto in quella porzione di RAM al momento dell'allocazione.

In C succede una cosa leggermente diversa: il compilatore, automaticamente, inizializza tutte le variabili a 0.


Ciao. :ciauz:

cso
20-01-2005, 15:59
Sarà ma a me non è mai capitato un valore diverso dallo 0...
potrebbe dipendere pure dal compilatore ma per questioni di "controllo" è sempre meglio inizializzare tutte le variabili
:ciauz:

cicciox80
20-01-2005, 17:14
Originariamente inviato da cso
Sarà ma a me non è mai capitato un valore diverso dallo 0...
potrebbe dipendere pure dal compilatore ma per questioni di "controllo" è sempre meglio inizializzare tutte le variabili
:ciauz:

Oltretutto è "buona programmazione" inizializzare anche se si sa che la variabile avrà un suo valore di default... In questo modo si rende anche l'algoritmo più portabile e facilmente convertibile in altri ling. di programmazione.

LeleFT
20-01-2005, 18:11
Originariamente inviato da cicciox80
Oltretutto è "buona programmazione" inizializzare anche se si sa che la variabile avrà un suo valore di default... In questo modo si rende anche l'algoritmo più portabile e facilmente convertibile in altri ling. di programmazione.
Concordo pienamente. Inoltre la lettura del codice da parte di chi poi dovrà manutenerlo risulta più facile e meno soggetta ad errori.
E' per questo che, anche in C, le variabili le inizializzo sempre, anche se il valore iniziale mi serve a 0.


Ciao. :ciauz:

Loading