Aiuto turbo pascal

Mitologico

Nuovo Utente
29 Nov 2006
7
0
0
Salve a tutti,

Io ho chiuso delle funzioni da un Repeat-Until e vorrei fare in modo che se non si verifica la condizione dell'until tutte le "write" e altre funzioni del Repeat-until vengano camcellate e non che vengano riscritte sotto....

Grazie in anticipo:mavieni:
 
Salve a tutti,

Io ho chiuso delle funzioni da un Repeat-Until e vorrei fare in modo che se non si verifica la condizione dell'until tutte le "write" e altre funzioni del Repeat-until vengano camcellate e non che vengano riscritte sotto....

Grazie in anticipo:mavieni:

potresti essere + chiaro magari scrivendo il codice del ciclo.
Mi sembra che utilizzi il termine "funzioni" come sinonimo di "istruzioni", sbaglio?
 
Si:dormo:

es:

repeat

writeln('Ciao');
readln(a);

if (a=0) and (a>3) then
writeln('Inserire un valore da 1 a 3');

until (a>=1) and (a<=3);


ECCO!!!! io voglio che tutto ciò all'interno del repeat-until venga cancellato...:incazz:
 
Si:dormo:

es:

repeat

writeln('Ciao');
readln(a);

if (a=0) and (a>3) then
writeln('Inserire un valore da 1 a 3');

until (a>=1) and (a<=3);


ECCO!!!! io voglio che tutto ciò all'interno del repeat-until venga cancellato...:incazz:

ok!
avevo capito bene. Tu confondi le funzioni con le semplici istruzioni. Io al posto tuo utilizzerei un ciclo while, perchè con questo ciclo la condizione viene verificata prima di eseguire le istruzioni interne al ciclo. La differenza con il repeat è appunto questa. Nel repeat, dato che la condizione viene verificata dopo, le istruzioni verranno eseguite almeno una volta. Se sei obbligato ad utilizzare un repeat visto che non si possono cancellare le istruzioni eseguite si può solo fare eseguire delle istruzioni che riportino la situazione come era prima del ciclo.
Ciò ovviamente comporta un duplice lavoro, perciò ti consiglio di usare il while.
8-)
 
Sintassi ciclo While

While Espressione_logica do
istruzione;

Tradotto:
mentre è vera l'espressione_logica
esegui l'istruzione
 
insomma è come fare con le if...

ma io volevo una roba del genere...

program cicicoco;

uses crt;
var a,b,c:real;
f:integer;

begin
repeat
clrscr;

... inserisco a...
... inserisco b...

until (a>0) and (b>0);

repeat

writeln('Seleziona l'operazione da eseguire (valori consentiti: da 1 a 5 ');
writeln('1-Addizzione');
writeln('2-Sottrazione');
writeln('3- Moltiplicazione');
writeln('4-divisione');
writeln('FUNZIONE n°: ');
readln(a);

if (a<1) or (a>4) then begin
writeln('Errore: inserire un valore da 1 a 4');
readln;
end;

until (a>=1) or (a<=4);

case f of
1: begin
c:=a+b;
writeln('Somma=',c);
end;
2:begin.........end;
3:begin.........end;
4:begin.........end;
end;
readln;

end.




Nel primo ciclo repeat-until ho messo all'interno un clrscr e così tutto lo schermo si pulisce, ma nel secondo ciclo volio che se si verifica l'if con il messaggio di errore si cancellino tutte le istruzioni del secondo ciclo....
 

Discussioni simili