Newsgroup: it.comp.lang.pascal
Titolo: 2 piccoli aiuti...

Ciao a tutti!
Sono qui a rompere di nuovo per sapere ben due cose... =)
1) Se ad esempio eseguo un programma ma spaglio una struttura ciclica
e il programma continua fino all'infinito che devo premere per
fermarlo senza perdere tutto il lavoro fatto prima chiudendo il PC?
2) Ho il bisogno di usare un vettore che contiene c elementi ma se
scrivo
	var c:integer;
	t:array[1..c] of real;
mi dice "Cannot evaluate this espression". Al limite metto come valore
massimo un numero molto grande, ma preferirei trovare una soluzione
diversa!
Grazie a tutti ciao!
¨¨°º©o¿,,¿o©º°¨¨°º©  Mr. GiMa ©º°¨¨°º©o¿,,¿o©º°¨
------------------------------------------------------------------------------
             WEB: 
http://come.to/gima
            MAIL: 
gim...@freemail.it
             UIN: 2685398
------------------------------------------------------------------------------
Togliere NOSPAM dal mio indirizzo per rispondere

diversa!
Ma questo C e' da input?
Se SI non si puo fare e gli devi dare tu il valore sufficiente in modo
che la dimensione ti basti.
Se invece C e' una costate stabilita da te a priori puoi fare cosi':
Const	c=100;
var	t:array[1..c]of real
By  Fabio
fabi...@rocketmail.com

diversa!
eh eh ! prima o poi chiunque si scontra con questa difficolta' nel pascal !
Quello di cui tu parli e' un array dinamico ed e' impossibile implementarlo nel
pascal standard.
Il compilatore ti da' ovviamente un errore, in quanto gli indici di un array
devono essere costanti intere.
Per maggiori informazioni ti rimando al thread "array".
Nel pascal standard non c'e' altra soluzione se non quella che tu proponi.
Ma questo implica riservare una quantita' tale di spazio che, a seconda del
valore di "c", puo' risultare piu' o meno sprecata.
Un array dinamico viene invece implementato in Turbo Pascal come puntatore
all'array (in pratica come in C), distraendo il compilatore sul controllo degli
indici, nel modo seguente :
{$r-}
type IntegerArray = array [1..1] of integer;
     IntegerArrayPtr = ^IntegerArray;
e poi va allocata memoria tramite "getmem" con
var MyPtr : IntegerArrayPtr ;
getmem(MyPtr, sizeof ( IntegerArray ) * c ) ;
Skyscraper (apprezzatelo adesso : eviterete la coda)
----------------------------------------------------
 
andrea_...@bigfoot.com
----------------------------------------------------
--
Posted from 
itaca.ulysse.it
 [195.223.254.1]
via Mailgate.ORG Server - 
http://www.mailgate.org

Un bel di' Mr GiMa scrisse:
MG> Ciao a tutti!
MG> Sono qui a rompere di nuovo per sapere ben due cose... =)
MG> 
figurati :-)
MG> 1) Se ad esempio eseguo un programma ma spaglio una struttura ciclica
MG> e il programma continua fino all'infinito che devo premere per
MG> fermarlo senza perdere tutto il lavoro fatto prima chiudendo il PC?
MG> 
1) vedi di non sbagliare... pensa se sbagli un ciclo che cancella 1 byte 
dall'HD ad ogni ciclo... :-))
2) Ctrl + Break! Di solito funziona... semmai schiaccialo un paio di volte,
seguito da INVIO :-)
MG> 2) Ho il bisogno di usare un vettore che contiene c elementi ma se
MG> scrivo
[cut]
MG> massimo un numero molto grande, ma preferirei trovare una soluzione
MG> diversa!
MG> 
quello che chiedi non si puo' fare in modo semplice:
puoi definire una costante:
const max = 50
...
var t: array [1..max] of integer;
pero' e' la stessa cosa: attribuisci un valore massimo... l'unica cosa sei
piu' comodo a modificarlo... :-)
Senno' puoi crearti una lista, sfruttando i puntatori, ma non e' cosi'
semplice (voglio dire: non e' difficile, pero', se sei all'inizio, evita
pure...) :-)
Ciao!
-- 
"1. Se si tiene qualcosa abbastanza a lungo lo si potra' buttare
 2. Qualsiasi cosa si butti, servira' non appena non sara' piu'
disponibile", leggi complementari di Richard sulla proprieta'
-- 
Emanuele Cesena
em...@iol.it
          occhio all'antispam NOSPAM!
http://www.geocities.com/SiliconValley/Grid/8879

fermarlo senza perdere tutto il lavoro fatto prima chiudendo il PC?
Metti (*$U+*) dopo program nomeprog. Per stoppare il programma ora premi
CTRL+PAUSA
Davide
davi...@usa.net
ICQ: 20331544