Torna in homepage www.vincenzomanzoni.com
Homepage personale e blog di Vincenzo Manzoni
 
 FAQFAQ   CercaCerca   Cerca con GoogleCerca con Google   Lista utentiLista utenti   GruppiGruppi   RegistratiRegistrati   Feed AtomFeed
 ProfiloProfilo   Messaggi privatiMessaggi privati   Log inLog in 

Dubbi Informatici...

 
Questo forum è chiuso: Non puoi inserire, rispondere o modificare gli argomenti.   Quest'argomento è chiuso: Non puoi inserire, rispondere o modificare i messaggi.    Indice del forum -> L'angolo di Leonardo Da Vincienzomanzoni.com
Precedente :: Successivo  
Autore Messaggio
saryna
Utente adolescente
Utente adolescente


Registrato: 03/03/04 20:19
Messaggi: 768
Residenza: san pellegrino terme

MessaggioInviato: Mer Mag 14, 2008 10:47 am    Oggetto: Dubbi Informatici... Rispondi citando

Buongiorno a tutti!
Mi rendo conto che mettere questo quesito qua dentro... ecco, sia un po' un'offesa al genio che è in voi... però... io proprio non ho capito...
Confused

Sto finendo di ripassare per il compitino di Informatica per le Discipline Umanistiche e nella parte sulla programmazione, dopo aver introdotto i linguaggi e i diagrammi di flusso, si parla delle strutture di controllo, fra cui le iterazioni e quindi dei costrutti di programmazione...

Ora... for e while che cosa acciderbolina sono? Non ho capito la differenza... anche se concettualmente sembra che il for abbia una fase di inizializzazione e while no... però, che è la fase di inizializzazione? Rolling Eyes

Ecco, per ora vi pongo questo dubbio... poi vedremo Shocked
_________________
L'amore è paziente, è benigno l'amore;
Non è invidioso l'amore, non si vanta l'amore,
non si gonfia, non manca di rispetto, non cerca il suo interesse,
non si adira, non tiene conto del male ricevuto, non gode dell'ingiustizia, ma si compiace della verità.
Tutto copre, tutto crede, tutto spera, tutto sopporta.

dalla prima lettera ai Corinzi
Top
Profilo Invia messaggio privato Invia e-mail MSN
Tomaux
Utente adulto
Utente adulto


Registrato: 12/08/04 17:56
Messaggi: 2494
Residenza: bergamo

MessaggioInviato: Mer Mag 14, 2008 11:08 am    Oggetto: Rispondi citando

eheh

come faccio a spiegartelo...

entrambe le istruzioni
while e for permettono di far ripetere diverse volte le istruzioni del blocco che li segue (non so come è identificato un blocco nel tuo linguaggio).

la differenza tra i due sta in come si decide QUANTE VOLTE il ciclo deve essere eseguito, nel for viene specificato in testa (da 1 a 10 sulla variabile contatore) nel while invece bisogna inserire un'istruzione al suo interno che quando viene eseguita fa terminare il ciclo.

il while e comodo quando non sai quante volte lo dovrai eseguire ma rischi che se sbaglia scrivere la condizione di uscita si rimanga in loop
col for devi invece sapere prima quando uscire e questo non sempre è facile...
_________________
A volte mi fermo e penso:
"THE EARTHQUAKE!!! OH MY FUCKING GOD, THE EARTHQUAKE!!!"
Top
Profilo Invia messaggio privato Invia e-mail HomePage MSN
saryna
Utente adolescente
Utente adolescente


Registrato: 03/03/04 20:19
Messaggi: 768
Residenza: san pellegrino terme

MessaggioInviato: Mer Mag 14, 2008 11:17 am    Oggetto: Rispondi citando

MMM, ho capito, ho capito l'esempio che ho io anche...
Quindi la scelta di usare uno piuttosto che l'altro, dipende da quello che voglio far fare al programma... che non è un mio problema e quindi teoricamente non cambia un tubo o poco di più -.-

Ad ogni modo ora ho capito... ora mi scervello sui client-server e poi vi interrogo di nuovo Smile

Grazie Tommy, gentilissimo!
_________________
L'amore è paziente, è benigno l'amore;
Non è invidioso l'amore, non si vanta l'amore,
non si gonfia, non manca di rispetto, non cerca il suo interesse,
non si adira, non tiene conto del male ricevuto, non gode dell'ingiustizia, ma si compiace della verità.
Tutto copre, tutto crede, tutto spera, tutto sopporta.

dalla prima lettera ai Corinzi
Top
Profilo Invia messaggio privato Invia e-mail MSN
Simone
Utente adolescente
Utente adolescente


Registrato: 30/03/05 20:44
Messaggi: 432
Residenza: Trondheim (N)

MessaggioInviato: Mer Mag 14, 2008 2:17 pm    Oggetto: Rispondi citando

Uh bello, finalmente una discussione tecnica in cui forse so dire qualcosa...
Dunque, for e while sono cicli, ovvero un modo di scrivere le operazioni che compongono un programma in modo più efficiente e compatto.

Il ciclo while serve per far compiere al calcolatore un'operazione ogni volta che è verificata una condizione.
Ad esempio se tu devi scrivere un programma che compra scarpe finchè ha soldi nel borsellino, in questo caso la condizione che devo verificare è prima di eseguire l'operazione è "ho soldi nel borsellino" e l'operazione che compio se è verificata la condizione è "compro e pago le scarpe".
In pratica tu dovresti dare infinite volte al tuo programma l'istruzione:

-Se ho soldi nel borsellino, vado in un negozio di scarpe, compro e pago le scarpe (altrimenti non faccio nulla)
-Se ho soldi nel borsellino, vado in un negozio di scarpe, compro e pago le scarpe (altrimenti non faccio nulla)
-Se ho soldi nel borsellino, vado in un negozio di scarpe, compro e pago le scarpe (altrimenti non faccio nulla)
.....

Il metodo che invece si usa perchè è più pratico e realizzabile è di usare un ciclo while ovvero dare una sola volta la seguente istruzione al tuo programma:

-Finchè ho soldi nel borsellino, vado in un negozio di scarpe, compro e pago le scarpe (se non ho soldi nel borsellino non faccio nulla)

che è la stessa cosa che scrivere:

While "ho soldi nel borsellino", vado in un negozio di scarpe, compro e pago le scarpe.

Quindi il tuo programma continuerà ad eseguire ciclicamente l'operazione "vado in un negozio, compro le scarpe" finchè (while) ha soldi nel borsellino. Quando i soldi finiscono si ferma non facendo più nulla, ovvero uscendo dal ciclo.
Il rischio che si corre è che progettando male il ciclo, scegliendo una condizione che è sempre verificata ad esempio, il ciclo non termina mai, ovvero continua all'infinito a eseguire operazioni (si dice che va in loop) e questo in genere è un comportamento non voluto da chi scrive i programmi.

Ad esempio se io dicessi

-Finchè ho soldi nel borsellino, vado in un negozio di scarpe

Io programma continuerei ad andare per negozi di scarpe all'infinito (ti piacerebbe eh?!) perchè non comprando nulla continuerei ad avere soldi nel borsellino, e la mia condizione sarebbe sempre verificata; questo è un ciclo che "va in loop" perchè manca l'operazione (il comprare e pagare le scarpe) che prima o poi lo fa terminare.

Il ciclo for invece serve a far ripetere un numero prestabilito di volte un'operazione come ad esempio se devi scrivere un programma che deve comprare 3 paia di scarpe tu potresti dare 3 volte al tuo programma l'istruzione "compra le scarpe" ovvero:

-Vado in un negozio di scarpe, compro e pago le scarpe (il 1° paio)
-Vado in un negozio di scarpe, compro e pago le scarpe (il 2° paio)
-Vado in un negozio di scarpe, compro e pago le scarpe (il 3° paio)

opuure usare un ciclo for ovvero dare la seguente istruzione al tuo programma

-Per tre volte, vado in un negozio di scarpe, compro e pago le scarpe.

ovvero

-For three times, vado in un negozio di scarpe, compro e pago le scarpe.

Il programma compie 3 volte l'operazione "compro e pago le scarpe" e poi esce dal ciclo, terminando.
Il problema del ciclo for è che questo deve essere inizializzato, ovvero tu devi dire (e sapere) a priori quante volte un'operazione deve essere eseguita, e questo non è sempre possibile.
In termini "tecnici" il programma ragiona così: prende una variabile, la inizializza a 0, mette come condizione che questa variabile sia minore di 3, e ogni volta che esegue il ciclo la incrementa di 1. Questa variabile in pratica funge da contatore conta il numero di volte che eseguo le istruzioni, quando arriva a 3 si arresta e il ciclo termina.

Quindi ricapitolando uso il ciclo for quando il mio programma deve ripetere una o più operazioni un numero prestabilito e noto di volte.
Uso il ciclo while quando devo far ripetere al mio programma una o più operazioni solo finchè è verificata e valida una condizione.

ciao

P.S.:prego chi ne sa più di me di correggere i molto probabili errori che ho commesso
_________________
Flickr
Top
Profilo Invia messaggio privato Invia e-mail HomePage AIM MSN
antonio
Utente adolescente
Utente adolescente


Registrato: 18/02/06 12:07
Messaggi: 396

MessaggioInviato: Mer Mag 14, 2008 4:09 pm    Oggetto: Rispondi citando

simone: la tua spiegazione è una perla! Very Happy
Top
Profilo Invia messaggio privato HomePage MSN
Andrea
Moderatore
Moderatore


Registrato: 23/12/03 13:10
Messaggi: 5200

MessaggioInviato: Mer Mag 14, 2008 6:02 pm    Oggetto: Rispondi citando

Grandissimo Simone Very Happy
Top
Profilo Invia messaggio privato MSN
saryna
Utente adolescente
Utente adolescente


Registrato: 03/03/04 20:19
Messaggi: 768
Residenza: san pellegrino terme

MessaggioInviato: Mer Mag 14, 2008 8:24 pm    Oggetto: Rispondi citando

GRAZIE SIMONE!
Sono sbalordita... devo dire che l'esempio delle scarpe calzava perfettamente anche con le mie abitudini Very Happy

Ho trovato alcuni protocolli solo citati, ma ho consultato wikipedia e ho capito di cosa si trattasse!

Grazie ancora...
speriamo in bene Smile
_________________
L'amore è paziente, è benigno l'amore;
Non è invidioso l'amore, non si vanta l'amore,
non si gonfia, non manca di rispetto, non cerca il suo interesse,
non si adira, non tiene conto del male ricevuto, non gode dell'ingiustizia, ma si compiace della verità.
Tutto copre, tutto crede, tutto spera, tutto sopporta.

dalla prima lettera ai Corinzi
Top
Profilo Invia messaggio privato Invia e-mail MSN
saryna
Utente adolescente
Utente adolescente


Registrato: 03/03/04 20:19
Messaggi: 768
Residenza: san pellegrino terme

MessaggioInviato: Mer Mag 21, 2008 7:27 pm    Oggetto: Rispondi citando

Ragazzi... domani si registra sul libretto un grande voto Very Happy
GRAZIE DI CUORE Smile
_________________
L'amore è paziente, è benigno l'amore;
Non è invidioso l'amore, non si vanta l'amore,
non si gonfia, non manca di rispetto, non cerca il suo interesse,
non si adira, non tiene conto del male ricevuto, non gode dell'ingiustizia, ma si compiace della verità.
Tutto copre, tutto crede, tutto spera, tutto sopporta.

dalla prima lettera ai Corinzi
Top
Profilo Invia messaggio privato Invia e-mail MSN
Andrea
Moderatore
Moderatore


Registrato: 23/12/03 13:10
Messaggi: 5200

MessaggioInviato: Mer Mag 21, 2008 9:09 pm    Oggetto: Rispondi citando

Brava e complimenti!
Top
Profilo Invia messaggio privato MSN
Mostra prima i messaggi di:   
Questo forum è chiuso: Non puoi inserire, rispondere o modificare gli argomenti.   Quest'argomento è chiuso: Non puoi inserire, rispondere o modificare i messaggi.    Indice del forum -> L'angolo di Leonardo Da Vincienzomanzoni.com Tutti i fusi orari sono GMT 1 ora
Pagina 1 di 1

 
Vai a:  
Non puoi inserire nuovi argomenti
Non puoi rispondere a nessun argomento
Non puoi modificare i tuoi messaggi
Non puoi cancellare i tuoi messaggi
Non puoi votare nei sondaggi


Powered by phpBB © 2001, 2005 phpBB Group
phpbb.it