mar 10

10. LE STRUTTURE DI ITERAZIONE CONDIZIONATA

Nel precedente capitolo ci siamo introdotti all’interno dei primi algoritmi di selezione. I cicli If e CASE sono molto utilizzati, ma ognuno ha un suo campo di applicazione. Non è raro che, ad esempio, gli if vengano utilizzati per far si che un programma non vadi in overflow oppure il blocco. L’esempio lo facemmo con le divisioni: se il denominatore è 0, non ha senso fare la divisione. Sarà sensato mandare un messaggio all’utente per dire che la divisione è impossibile oppure, nei casi di matematica avanzata, è possibile calcolare se il risultato sia +infinito o -infinito. Ma non siamo qui per parlare di matematica. Oggi proseguiremo il nostro cammino parlando delle strutture di iterazione condizionata.

10. Le strutture di iterazione condizionata

Nella maggiorparte dei linguaggi, per fare delle ripetizioni condizionate è presente una sola struttura: while. Tuttavia in linguaggi tipo visual basic, non è raro trovare anche la struttura until.

Entrambe, poi, possono essere pre-condizionate e post-condizionate. Una struttura di ripetizione, in generale, è una struttura per far si che si possano ripetere delle istruzioni, senza l’obbligo di riscriverle N volte. Tuttavia, questa ripetizione, deve avere un termine perchè, come senz’altro ricordate, un algoritmo deve avere un inizio ed una fine. Ed è appunto per questo che la ripetizione è condizionata. A secondo della struttura, se una tale condizione è vera si ripeterà , o si uscirà , dal ciclo. Vediamo ora, qui sotto, la struttura dei cicli while e until sia pre-condizionati che post-condizionati.

Struttura While

While, tradotto dall’inglese, significa MENTRE. In pratica, la logica di questa struttura sarà la seguente: mentre la condizione è verificata verranno ripetute le istruzioni inserite nel ciclo. Ci sono tuttavia delle differenze tra pre e post-codizionato, come vedremo dopo la descrizione dei due cicli.

//Mentre pre-condizionato

Inizio

Chiedi(A)
Leggi(A)

Mentre (A<10)
{
A=A+1
}

Fine

// Mentre post-condzionato

Inizio

Chiedi(A)
Leggi(A)

Ripeti
{
A=A+1
}
Mentre (A<10)

Struttur Until

Until, tradotto dall’inglese, significa FINCHE’. In pratica, la logica di questa struttura sarà la seguente: fincheé la condizione non sarà verranno ripetute le istruzioni inserite nel ciclo. Ci sono tuttavia delle differenze tra pre e post-codizionato, come vedremo dopo la descrizione dei due cicli.

//Finché pre-condizionato

Inizio

Chiedi(A)
Leggi(A)

Finché (A<10)
{
A=A+1
}

Fine

// Finché post-condzionato

Inizio

Chiedi(A)
Leggi(A)

Ripeti
{
A=A+1
}
Finché (A<10)

NB: differenze tra pre-condizionato e post-condizionato.

Come ormai avrete imparato, un compilatore esegue le istruzioni in modo sequenziale a meno che non gli si imponga di fare dei salti. Se la condizione verrà espressa prima del ciclo, il compilatore controllerà prima se la condizione è verificata e, solo se è verificata, esso entrerà nel ciclo. Viceversa, nel caso fosse post-condizionato, il compilatore eseguirà comunque, almeno 1 volta, il ciclo e le istruzioni al suo interno.

Con questo finisce anche il decimo capitolo di questa guida. Nella prossima parleremo dell’iterazione programmata senza condizioni. Per ora, se avete problemi, chiarimenti o semplicemente volete lasciarci un commento, commentate l’articolo!

Condividi questo articolo:
  • email
  • Print
  • PDF
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • Blogplay
  • Add to favorites
  • BarraPunto
  • blogmarks
  • Diggita
  • Live
  • MSN Reporter
  • MySpace
  • Reddit
  • RSS
  • Segnalo
  • Slashdot
  • Technorati
  • Twitter
  • Yahoo! Bookmarks
  • Yahoo! Buzz

Tags:

Lascia un commento