Newsgroup: it.comp.lang.pascal
Titolo: Piccolo prog AIuto

program ciclo;
uses crt;
var a:integer;
begin
clrscr;
for a:=1 to 9999 do;
write('ciao');
readln;
end.
io voglio che il ciclo duri all'infinito non 9999 volte .

 end.
Ciao RdC
--
L'informatica è un arte
---------------------------------------------------------
 
www.pascallike.too.it
 
http://utenti.lycos.it/pascallike
 il sito sulla programmazione pascal
sorgenti, tutorial ed utility
------------------------------------------------------

> io voglio che il ciclo duri all'infinito non 9999 volte .
sicuro di volerlo fare ? lasciati sempre una via di fuga ! :-)
[giusto perche' e' palloso dover resettare o cmq chiudere
 violentemente un programma/finestra etc etc ]
-- 
Dreadnaut
(Life would be easier if I had the source code)

 ha scritto nel messaggio
news:PJ35a.279378$AA2.10...@news2.tin.it...


  for a:=1 to 3 do
  begin
    a:=a-1;
    write('ciao');
  end;
end.
--
Ciao
Gianfranco Marchese
e-mail dgruma@NOPUBBLICITA'
tin.it
 (Da togliere NOPUBBLICITA' se vuoi
rispondermi in privato)
sito internet personale: 
http://www.turbo-pascal.cjb.net
  Tutto sul Turbo
Pascal  1.5


Argh! Un pò obsoleto non ti sembra?
Ciao


Prova cosě:
repeat
  write('ciao');
until keypressed;
Ciao

 until keypressed;
cosě non č un ciclo infinito perň
per farne uno infinito con il for la soluzione di Gianfranco č quella
ottimale


Sono d'accordo ma io proponevo una soluzione solo per poter uscire dal ciclo
prima o poi senza ctrl+break
Ciao

 ha scritto nel messaggio
news:Ymr5a.141517$YG2.4...@twister1.libero.it...

sara' brutto (tanto per quello che deve fare...) ma perche' proprio
obsoleto?



Ok, definiamolo solo brutto... Il fatto è che usi una variabile quindi
questa prima deve essere creata in memoria ed ad ogni iterazione viene
cambiata due volte.
for a:=1 to 3 do
// in questo punto a viene letta e viene controllato che sia minore o uguale
di 3, e se è minore o uguale ci scrive lo stesso valore incrementato di 1
che comporta un sacco di operazioni a livello cpu/memoria
a:=a-1;
// in questo punto a viene letta e il suo valore e viene decrementato di 1,
quindi il suo valore viene riscritto in memoria con uno spreco di operazioni
enorme
ovviamente questo non influisce molto dati i processori moderni, ma se si
può evitare...
Ciao

 wrote in message
news:PJ35a.279378$AA2.10...@news2.tin.it...


 ha scritto nel messaggio
news:N%M5a.144767$YG2.4...@twister1.libero.it...


 giustamente hai indicato.
Non è elegante...
da un punto di vista estetica a me sembra brutto... la cosa migliore
sarebbe:
x:=false;
repeat
    {blocco istruzioni}
until x=true;
le variabili booleane ci sono proprio per questo!

 --
Sono d'accordo ma in questo modo continui a dichiarare una variabile a
questo punto converrebbe fare
repeat
until true=false; //mai
però probabilmente andrea vorrebbe una condizione di uscita (tipo
keypressed) poichè è completamente inutile creare un programma che si
ingrippa senza via di uscita.
Probabilmente andrea per "infinite volte" intende "finche non lo dico io".
Potrei sbagliarmi e in quel caso ti do ragione.
Ciao

 until true=false; //mai
non avevo mai provato una condizione del genere, pensavco non fosse
possibile. in questo caso devo assolutamente darti ragione. cmq un'altra
possibile soluzione puo' essere  until sqrt(1)<>1   no?


 until true=false; file://mai
beh se proprio vogliamo fare i pignoli, cosi' perdi tempo a valutare
un'espressione che sai sempre false ( "true = false" ), quindi puoi
metterci direttamente
repeat
until false;
oppure
while true do
