Cicli

Programmazione, algoritmica, teoria dell'informazione, ...
Rispondi
Avatar utente
Bellaz
Messaggi: 202
Iscritto il: 14 feb 2008, 15:05
Località: Provincia di Reggio Emilia

Cicli

Messaggio da Bellaz »

Ciao, mi stavo preparando da autodidatta alle olimpiadi dell'informatica, ma non ho capito una cosa sui cicli. Qualcuno mi può spiegare in modo esauriente il ciclo a condizione finale (repeat...until...), a condizione iniziale (while...do...) e a conteggio (for...do...)??
E soprattutto non capisco perchè

Codice: Seleziona tutto

s:=0;
for i:=1 to maxi do s:=s+i
sia uguale a

Codice: Seleziona tutto

s:=0; i:=1;
while i<=maxi do
begin 
s:=s+i;
i.=i+1;
end;
Inoltre, come si ragiona in questi casi?
Grazie mille in anticipo.... Ciao!
"Quando un uomo siede un'ora in compagnia di una bella ragazza, sembra sia passato un minuto. Ma fatelo sedere su una stufa per un minuto e gli sembrerà più lungo di qualsiasi ora. Questa è la relatività." (Albert Einstein)
Avatar utente
Desh
Messaggi: 212
Iscritto il: 29 ott 2007, 21:58

Messaggio da Desh »

in sintesi, ecco cosa fa il calcolatore:

Codice: Seleziona tutto

while condizione do
         istruzioni;
  • se condizione=falso salta "istruzioni" e continua con il programma
  • se condizione=vero esegue le istruzioni e ritorna al controllo
Perciò, finché la condizione è vera vengono ripetute le istruzioni.

Codice: Seleziona tutto

for i:=a to b do
          istruzioni;
  • inizializza la variabile i al valore a
  • se i=b, esegue "istruzioni" e continua con il programma
  • altrimenti esegue le istruzioni, aumenta il valore di i di un'unità e ritorna al controllo
è utile se devi ripetere un'operazione un certo numero fissato di volte (nota: all'interno del ciclo può essere utile sfruttare la conoscenza del valore di i)

Codice: Seleziona tutto

repeat
         istruzioni;
until condizione;
  • esegue "istruzioni"
  • controlla la condizione; se vera esce dal ciclo, se falsa ricomincia
in particolare, i due programmi da te postati sono uguali perché fanno esattamente le stesse operazioni (prova a fare "a mano" un paio di cicli...)
[url=http://www.eigenlab.tk/]eigenLab[/url]
Avatar utente
Bellaz
Messaggi: 202
Iscritto il: 14 feb 2008, 15:05
Località: Provincia di Reggio Emilia

Messaggio da Bellaz »

Ok... adesso ho capito.
Grazie 1000!!!!
"Quando un uomo siede un'ora in compagnia di una bella ragazza, sembra sia passato un minuto. Ma fatelo sedere su una stufa per un minuto e gli sembrerà più lungo di qualsiasi ora. Questa è la relatività." (Albert Einstein)
Rispondi