• Programmazione Android
  • CORSI ONLINE
  • Web Agency

Logo

Corsi di programmazione web e mobile online
Navigation
  • Home
  • CORSI ONLINE
  • Tutorial Pratici
  • GUIDE COMPLETE
    • Corso completo di C
    • Corso videogame con Cocos2d
    • Programmazione Cocoa Touch
  • Sezioni
    • Libri e manuali
    • Tips & Tricks
    • Risorse utili
    • Strumenti di Sviluppo
    • Materiale OpenSource
    • Framework
    • Guide Teoriche
    • Guide varie
    • Grafica e Design
    • iPad
    • News
    • Video Tutorial
    • Windows Phone
  • Pubblicità
  • About
    • Chi siamo
    • Pubblicazioni
    • Collabora
    • Sostieni devAPP

9. Istruzioni iterative

By IgnazioC | on 20 Aprile 2011 | 57 Comments
Corso completo di C

corso-completo-c-istruzioni-iterative-00 In questa nona lezione del nostro corso completo di programmazione in C affronteremo un argomento piuttosto simpatico, parleremo delle istruzioni iterative.
Queste istruzioni permettono di ripetere una porzione di codice fino a quando non risulta vera una determinata condizione e, sebbene non indispensabili, sono alla base della programmazione.

Istruzione while

L’istruzione while è la più semplice tra le istruzioni iterative, il suo compito è quello di ripetere la porzione tra le parentesi graffe mentre una data condizione è vera, quando la condizione cesserà di essere vera il programma terminerà il ciclo e riprenderà la sua normale esecuzione.

La sintassi dell’istruzione while è la seguente:

while (espressione) {

        ...istruzioni...

        ...istruzioni...

}

Come nel caso del costrutto if come espressione possiamo utilizzare qualsiasi cosa che possa essere vera o falsa. Ad esempio potremmo scrivere:

while (3 < 5 ) {

        printf("tre è minore di cinque!!");

}

Ma cos'ha di strano il codice che ho scritto? Che la sua esecuzione non terminerà mai! l'espressione "(3 < 5)" verrà valutata ad ogni iterazione e ad ogni iterazione risulterà invariabilmente vera, quindi il codice entrerà in un loop dal quale non riuscirà mai ad uscire. Bisogna quindi prestare attenzione che all'interno delle istruzioni del ciclo while ci siano sempre delle istruzioni in grado di rendere falsa l'espressione, solo così si potrà essere sicuri di uscire dal ciclo, come in questo esempio.

int a = 1;

while (a < 10) {

        printf("a vale: %d\n", a);

        a = a + 1;

}

l'output di questo programma sarà:


a vale: 1
a vale: 2
a vale: 3
a vale: 4
a vale: 5
a vale: 6
a vale: 7
a vale: 8
a vale: 9

L'output si ferma a nove, perché alla nona iterazione il valore di a, all'istruzione "a = a + 1" diventa 10, ma all'iterazione successiva l'espressione "a < 10" non è più vera quindi il programma esce dal while e riprende la sua normale esecuzione.

Notare che nel while se l'espressione è già falsa, le istruzioni contenute all'interno del blocco non vengono eseguite neanche una volta.

In un diagramma di flusso il while verrebbe così rappresentato:


corso-completo-c-istruzioni-iterative-01

Istruzione Do...while

Esiste una istruzione simile al while, ma che può risultare più utile in certi casi, si chiama do...while ed ha la seguente sintassi:

do {

        ...istruzioni...

        ...istruzioni...

} while (espressione);

Io oserei definirei speculare il suo comportamento rispetto all'istruzione while, infatti il do...while valuta l'espressione dopo aver eseguito le istruzioni contenute nel blocco e, se l'espressione risulta vera, torna all'inizio del ciclo e lo riesegue, se invece è falsa termina il ciclo.

Poiché quindi le istruzioni del blocco in questo caso vengono eseguite almeno una volta, anche se l'espressione è falsa, si usa il do...while quando si ha necessità di questo comportamento.

Ecco la rappresentazione in un diagramma di flusso del do...while:


corso-completo-c-istruzioni-iterative-02

Istruzione for

Ho lasciato per ultima l'istruzione iterativa più versatile e più complessa del linguaggio C. Qualcuno storcerà il naso dicendo "il for è una istruzione complessa??" beh, ma magari non proprio complessa, ma a volerne sfruttare tutte le capacità è abbastana tricky.

La sintassi base del for è la seguente:

for (istruzioni di inizializzazione;
       condizione di ripetizione del ciclo;
       istruzioni di aggiornamento) {  
   ...istruzione...;
   ...istruzione...;
   ...
  ...istruzione...;
}

Prima di entrare dentro il ciclo FOR vengono eseguite le istruzioni di inizializzazione, poi inizia il ciclo e per ogni iterazione viene valutata (se presente) la condizione di ripetizione del ciclo, se tale espressione risulta vera allora vengono eseguite tutte le operazioni contenute all'interno del blocco, e al termine vengono eseguite le istruzioni di aggiornamento e ricomincia il ciclo.

Facciamo un esempio classico:

int i;

for (i = 0; i < 10; i = i + 1) {

        printf("Valore di i: %d",i);

}

In questo esempio subito dopo aver dichiarato la variabile i il programma esegue l'istruzione di inizializzazione (i = 0) che ha l'effetto di impostare a zero il valore della variabile i. Poi viene valutata la condizione di ripetizione (i < 10) che risulta essere vera, quindi viene eseguita l'istruzione all'interno del blocco: printf("Valore di i: %d",i); Terminate le istruzioni all'interno del blocco viene eseguita l'istruzione di aggiornamento (i = i + 1); Quello che rende particolarmente versatile il costrutto for è che tutti e tre i parametri sono opzionali e possono essere costituiti da più di una singola istruzione. Questo può portare ad avere cicli for molto complessi come questi:

for ( ; ; ) {

        ...istruzioni...

}
Ciclo infinito, non ci sono istruzioni di aggiornemento,equivale ad un "while (true) { }"
for (printf("Start ciclo for"), i = 0;

   i < 100, printf("Valore di i %d\n",i); i = i + 1); {

...nessuna istruzione...

}
l'output è il seguente


Valore di i 1
Valore di i 2
Valore di i 3
Valore di i 4
Valore di i 5
Valore di i 6
Valore di i 7
Valore di i 8
Valore di i 9

ma è stato ottenuto utilizzando esclusivamente le istruzioni di inizializzazione a aggiornamento.

for (i = 0, j = 1;

   j < 10000;

   printf("%d %d\n",i,j) , i = i + j , j = i + j) {

  ...nessuna istruzione...

 }
Come calcolare i numeri di fibonacci minori di 10000 utilizzando apparentemente solo un ciclo for :)

For di questo genere sono vivamente sconsigliati, rendono impossibile la lettura del codice, li ho scritti qui e non mi aspetto che vi siano subito chiari, ma li ho inseriti solo per darvi l'idea di quanto il costrutto for può essere "denaturato" fino a farci stare dentro un intero programma.

Adesso che conoscete il costrutto for eccovi una vignetta da veri geek:


corso-completo-c-istruzioni-iterative-03

Questa volta vorrei lasciarvi con un paio di esercizi, siamo già alla nona lezione ed è proprio il momento che iniziate a picchiare sulla tastiera! Io sono un teorico come indole, ma se poi vogliamo programmare davvero bisognerà iniziare a sporcarsi le mani!

Gli esercizi sono questi:

1) Far stampare a schermo un rettangolo composto da asterischi come quello qui in basso, il lato deve essere di 10 per 5 asterischi:

**********
**********
**********
**********
**********

2) Far stampare a schermo un triangolo composto da asterischi come quello qui in basso:

*
**
***
****
*****
******
*******
********
*********

3) Far stampare a schermo un triangolo composto da asterischi come quello qui in basso:

**********
*********
********
*******
******
*****
****
***
**
*

Vi do un piccolo aiuto, provate ad utilizzare due cicli for, uno dentro l'altro.

Alla prossima!!

Letture consigliate:

C-Corso-Completo-di-Programmazione-kernighan-ritchie-devAPP Il linguaggio C. Principi di programmazione e manuale di riferimento (Accademica)
Brian W. Kernighan - Dennis M. Ritchie
Editore: Pearson | Lingua: Italiano | Brossura: 313 pagine
Prezzo Listino: EUR 27,00
Prezzo Promozione: EUR 22,95 con Spedizione gratuita

C-Corso-Completo-di-Programmazione-Deitel-Deitel-devAPP C. Corso completo di programmazione
Paul J. Deitel - Harvey M. Deitel
Editore: Apogeo | Lingua: Italiano | Brossura: 640 pagine
Prezzo Listino: EUR 39,00
Prezzo Promozione: EUR 33,15 con Spedizione gratuita



Share this story:
  • tweet

Tags: ciclo for Ccorso completo di Ccorso di Cdo while CIgnazio Calòistruzioni iterative Cwhile C

Recent Posts

  • Parte il percorso programmatori iOS in Swift su devACADEMY.it

    20 Dicembre 2017 - 0 Comment
  • Android, crittografare dati velocemente con Encryption

    24 Settembre 2018 - 0 Comment
  • Sql2o, accesso immediato ai database tramite Java

    3 Settembre 2018 - 0 Comment
  • Okio, libreria per ottimizzare l’input/output in Java

    27 Agosto 2018 - 0 Comment

Related Posts

  • iSketch: la lavagna magica di Ignazio Calò disponibile GRATUITAMENTE in App Store

    29 Agosto 2011 - 2 Comments
  • 17. La gestione dei file in C

    22 Agosto 2011 - 4 Comments
  • Uno sguardo a Unit test: impariamo a prevenire ore e ore di debug durante lo sviluppo di Applicazioni iOS

    8 Agosto 2011 - 2 Comments

Author Description

57 Responses to “9. Istruzioni iterative”

  1. 20 Aprile 2011

    Spartan

    Che mito l’immagine! 😀

  2. 20 Aprile 2011

    Adriano

    siete dei grandi!!

  3. 20 Aprile 2011

    tommaso

    ciao a tutti!!è la prima volta che scrivo!! ringrazio moltissimo Ignazio per la bellezza del corso!! volevo inoltre chiedere una cosa; perchè se digito questo:

    #include

    int main(int argc, char **argv) {

    int d, f ;

    for (d = 1; d <= 5; d = d + 1) { printf("*\n"); for(f = 1; f <= 9; f = f + 1) { printf("*"); } } return 0; } il risultato è: * ********** ********** ********** ********** ********* e non il risultato che mi aspettavo??(esercizio 1 per casa)

  4. 20 Aprile 2011

    yes77

    la prima l’ho risolta… ma le altre due non ci capisco una mazza 🙁

  5. 20 Aprile 2011

    yes77

    il primo

    #include

    int main () {
    int i;

    for (i = 0; i < 5; i = i + 1)

    printf("**********\n",i);

    }

  6. 20 Aprile 2011

    tommaso

    scusate se l’ho scritto 2 volte!

  7. 20 Aprile 2011

    Paradise

    a quanto pare, stando al mio compilatore il codice
    for (printf(“Start ciclo for”), i = 0;
    i < 100, printf("Valore di i %d\n",i);
    i = i + 1);

    è sbagliato.
    quello esatto dovrebbe essere:

    for (printf("Start ciclo for "), i = 0;
    printf("valore di i: %d\n",i), (i < 100);
    i = i + 1);

    PS: ancora una volta ottimo! 😉

  8. 20 Aprile 2011

    Paradise

    sarà un po’ macchinoso, ma per ottenere il secondo esercizio ho provato così:

    #include

    int main(int argc, char **argv)
    {

    int i;

    for (printf(“*\n”), i = 0; printf(“*”), (i < 1); i = i + 1); if (i=1){printf("\n");}
    for (i = i; printf("*"), (i < 3); i = i + 1); if (i=3){printf("\n");}
    for (i = i; printf("*"), (i < 6); i = i + 1); if (i=6){printf("\n");}
    for (i = i; printf("*"), (i < 10); i = i + 1); if (i=10){printf("\n");}
    for (i = i; printf("*"), (i < 15); i = i + 1); if (i=15){printf("\n");}
    for (i = i; printf("*"), (i < 21); i = i + 1); if (i=21){printf("\n");}
    for (i = i; printf("*"), (i < 28); i = i + 1); if (i=28){printf("\n");}

    }

  9. 21 Aprile 2011

    ignazioc


    Paradise:

    a quanto pare, stando al mio compilatore il codice
    for (printf(“Start ciclo for”), i = 0;
    i < 100, printf(“Valore di i %d\n”,i);
    i = i + 1);
    è sbagliato.
    quello esatto dovrebbe essere:
    for (printf(“Start ciclo for “), i = 0;
    printf(“valore di i: %d\n”,i), (i < 100);
    i = i + 1);
    PS: ancora una volta ottimo!

    Che compilatore stai usando? che errore ti da?
    Io ho provato il codice dell’articolo e funziona correttamente, ovviamente bisogna dichiarare prima la variabile i e mettere un commento o eliminare la riga “…nessuna istruzione”

  10. 21 Aprile 2011

    ignazioc


    Paradise:

    sarà un po’ macchinoso, ma per ottenere il secondo esercizio ho provato così:
    #include
    int main(int argc, char **argv)
    {
    int i;
    for (printf(“*\n”), i = 0; printf(“*”), (i < 1); i = i + 1); if (i=1){printf(“\n”);}
    for (i = i; printf(“*”), (i < 3); i = i + 1); if (i=3){printf(“\n”);}
    for (i = i; printf(“*”), (i < 6); i = i + 1); if (i=6){printf(“\n”);}
    for (i = i; printf(“*”), (i < 10); i = i + 1); if (i=10){printf(“\n”);}
    for (i = i; printf(“*”), (i < 15); i = i + 1); if (i=15){printf(“\n”);}
    for (i = i; printf(“*”), (i < 21); i = i + 1); if (i=21){printf(“\n”);}
    for (i = i; printf(“*”), (i < 28); i = i + 1); if (i=28){printf(“\n”);}
    }

    direi “troppo” macchinoso 🙂 ma almeno compila?
    sconsiglio di inserire le istruzioni all’interno delle parentesi del for, io l’ho inserito come esempio, ma non è un corretto stile di programmazione. ci sono anche altre cose che non vanno, come l’utilizzo dello stesso indice che ti obbliga a verificare ogni volta se sei arrivato a fine riga…
    se ti chiedessi di farlo diventare un programma che stampa un quadrato di asterischi grande 7*7 saresti costretto a modificare il tuo codice in molte parti con il rischio di sbagliare…
    parliamone sul forum se vuoi.

  11. 21 Aprile 2011

    ignazioc


    tommaso:

    salve a tutti!!voglio per prima cosa ringraziare Ignazio per lo splendido corso!!inotre vorrei chiedere una cosa: scrivendo questo:
    #include
    int main(int argc, char ** argv) {
    int d, f ;
    for (d = 1; d <= 5; d = d + 1) {
    printf(“* \n”) ;
    for(f = 0; f < 9; f = f + 1) {
    printf(“*”); } }
    return 0;
    }
    il risultato è:
    *
    **********
    **********
    **********
    **********
    *********
    e non quello desiderato(esercizio 1 per casa)..dove sta l’errore? grazie in anticipo..

    Perché il C fa quello che gli chiedi :).
    Tu in questo programma hai detto
    Ripeti 5 volte i prossimi comandi:
    – stampa un asterisco e vai a capo
    – ripeti 9 volte i prossimi comandi
    –stampa un asterisco

    quindi il tuo programma stampa un asterico e va a capo, poi ne stampa 9, poi ne stampa uno e va a capo, poi ne stampa nove etc etc.

    ps: hai sbagliato a copiare l’output, il tuo programma stampa solo 5 righe, non 6.

  12. 21 Aprile 2011

    tommaso

    grazie mille!! in effetti è vero!!

  13. 21 Aprile 2011

    alef

    perchè non mi compila questo??

    #include
    int main(int argc, char **argv)
    {
    int i = 1;
    while (i < 6) {
    printf("**********\n");
    i= i + 1;
    return 0;
    }
    non è for, ma dovrebbe andare lo stesso no?? grazie

  14. 21 Aprile 2011

    alef

    scusate mi ero scordato la parentesi finale!!!! 🙂 funziona!

  15. 21 Aprile 2011

    Spartan

    Ci posti i risultati degli esercizi?
    A me non vengono gli ultimi e non riesco a capire 🙁

  16. 22 Aprile 2011

    Ignazioc


    Spartan:

    Ci posti i risultati degli esercizi?
    A me non vengono gli ultimi e non riesco a capire

    Le soluzini arriveranno…sto solo aspettando un pò per farvici ragionare su.
    A te ” non vengono” in che senso? direi che c’è il metodo banale che è quello di stampare:
    [code]
    printf(“*”);
    printf(“**”);
    printf(“***”);
    [/code]
    sarà anche banale ma in ogni caso risolve il problema.
    Per farlo meglio io consiglio di usare due for tu l’hai fatto? hai risolto il primo esercizio con due for annidati?
    Se lo hai fatto prova a ragionare un pò sul for più annidato…quando il ciclo più esterno è alla prima iterazioe il for più interno deve stampare un asterisco, alla seconda ne deve stampare due….
    ti viene in mente niente??

  17. 22 Aprile 2011

    Spartan

    Il primo l’ho fatto così :

    #include

    int main(void)
    {
    int i ;

    for ( count = 1 ; count <= 5 ; count++ )
    {
    printf("**********\n");

    }

    return 0 ;
    }

    Non riesco a comprendere in che modo posso fare stampare a schermo al for più interno diversi asterischi .. a seconda del numero di iterazione.

  18. 22 Aprile 2011

    Spartan


    Spartan:

    Il primo l’ho fatto così :
    #include
    int main(void)
    {
    int i ;
    for ( count = 1 ; count <= 5 ; count++ )
    {
    printf(“**********\n”);
    }
    return 0 ;
    }
    Non riesco a comprendere in che modo posso fare stampare a schermo al for più interno diversi asterischi .. a seconda del numero di iterazione.

    PS. ho sbagliato a copiare… la variabile utilizzata è count e non i.
    Comunque credo che mi fa confondere la gestione dei 2 loop for..

  19. 22 Aprile 2011

    Spartan

    Ok mi è venuto xD

    #include

    int main(void)
    {
    int a = 5 ;
    int b, c ;

    for(b=1; b<=a; b++) {
    printf("\n");
    for(c=1; c<=b; c++)
    printf("*");
    }

    printf("\n");
    }

  20. 22 Aprile 2011

    RoleTheMetaller

    Sono riuscito a farli tutti! ecco l’ultimo:

    int a,b;
    for (a=10; a>0; a–){
    printf(“\n”);
    for (b=0; b<a;b++){
    printf("*");
    }
    }
    printf("\n");

    (l'ultima riga è superflua)

  21. 22 Aprile 2011

    tommaso

    mi potresti dire che cosa significano “a-” e “b++” ?

  22. 22 Aprile 2011

    Spartan

    ti rispondo io.
    a- è sbagliato.. doveva essere a– .. b++ è giusto.
    sono operatori di incremento e decremento.
    scrivere a++ o a = a + 1 è la stessa cosa.
    Identico discorso per b–
    b– è come scrivere b = b – 1

    Comunque c’è da fare un discorso sul post e sul pre che sicuramente ignazio tratterrà (:

  23. 22 Aprile 2011

    Spartan

    Il sito non legge 2 meno di fila… xD

  24. 22 Aprile 2011

    tommaso

    ok grazi mille!

  25. 22 Aprile 2011

    FiLLo_55


    tommaso:

    mi potresti dire che cosa significano “a-” e “b++” ?

    a– sta per a = a – 1
    b++ sta per b = b + 1

  26. 22 Aprile 2011

    Paradise


    ignazioc:


    Paradise:

    sarà un po’ macchinoso, ma per ottenere il secondo esercizio ho provato così:
    #include
    int main(int argc, char **argv)
    {
    int i;
    for (printf(“*\n”), i = 0; printf(“*”), (i < 1); i = i + 1); if (i=1){printf(“\n”);} for (i = i; printf(“*”), (i < 3); i = i + 1); if (i=3){printf(“\n”);} for (i = i; printf(“*”), (i < 6); i = i + 1); if (i=6){printf(“\n”);} for (i = i; printf(“*”), (i < 10); i = i + 1); if (i=10){printf(“\n”);} for (i = i; printf(“*”), (i < 15); i = i + 1); if (i=15){printf(“\n”);} for (i = i; printf(“*”), (i < 21); i = i + 1); if (i=21){printf(“\n”);} for (i = i; printf(“*”), (i < 28); i = i + 1); if (i=28){printf(“\n”);} }

    direi “troppo” macchinoso ma almeno compila?
    sconsiglio di inserire le istruzioni all’interno delle parentesi del for, io l’ho inserito come esempio, ma non è un corretto stile di programmazione. ci sono anche altre cose che non vanno, come l’utilizzo dello stesso indice che ti obbliga a verificare ogni volta se sei arrivato a fine riga…
    se ti chiedessi di farlo diventare un programma che stampa un quadrato di asterischi grande 7*7 saresti costretto a modificare il tuo codice in molte parti con il rischio di sbagliare…
    parliamone sul forum se vuoi.

    compila eccome! 😛 per ora di C ho seguito solo le tue lezioni, e ho cercato di integrare anche il comando IF che mi serviva per mettere gli a-capo.
    bhè per il 7×7 avrei utilizzato un’altro codice, magari più semplice… 😛

  27. 22 Aprile 2011

    Alessio

    Es. 1

    #include

    int main()
    {
    int i,j;
    for (i = 0; i<5; i++ ) {

    for (j = 0; j<10; j++){
    printf ("*");
    }

    printf ("\n");
    }

    }

    Es. 2

    #include

    int main()
    {
    int i,j;
    for (i = 0; i<9; i++ ) {

    for (j = 0; j<=i; j++){
    printf ("*");

    }

    printf ("\n");
    }

    }

    Es. 3

    #include

    int main()
    {
    int i,j;
    for (i = 0; i=i; j–){
    printf (“*”);

    }

    printf (“\n”);
    }

    }

    Ciao e grazie!

  28. 22 Aprile 2011

    Alessio

    L’ultimo esercizio mi si è incollato male 😐

    Rieccolo:

    int main()
    {
    int i,j;
    for (i = 0; i=i; j–){
    printf (“*”);
    }

    printf (“\n”);
    }

    }

  29. 22 Aprile 2011

    Ignazioc

    ok, dovrebbero andare…ma l’ultimo avrai sbagliato a copiare

  30. 22 Aprile 2011

    Alessio

    Il sistema di commenti inibisce alcuni simboli 😐

  31. 22 Aprile 2011

    Alessio

    Vabè non me lo incolla.. cmq il terzo esercizio è identico al secondo tranne che per la J che parte da 9 e di volta in volta si ferma al valore corrente della I decrescendo di 1 ad ogni ciclo.
    In questo modo parte con la prima riga e scrive 10 asterischi e via via scende di numero insieme all righe..

    Ps = che fatca spiegarlo in maniera colloquiale!

    Grazie ancora per il bel corso!

  32. 23 Aprile 2011

    Ignazioc


    Alessio:

    Vabè non me lo incolla.. cmq il terzo esercizio è identico al secondo tranne che per la J che parte da 9 e di volta in volta si ferma al valore corrente della I decrescendo di 1 ad ogni ciclo.
    In questo modo parte con la prima riga e scrive 10 asterischi e via via scende di numero insieme all righe..
    Ps = che fatca spiegarlo in maniera colloquiale!
    Grazie ancora per il bel corso!

    beh dovrebbe andare, confronta la tua soluzione con quella che ho proposto io sul forum, vedi se la logica è la stessa.

    bye

  33. 2 Maggio 2011

    Teo315

    COMPLIMENTI per il corso! Mi ha fatto venire voglia di ricominciare a programmare (per quel poco che sapevo fare) 🙂
    Ecco gli esercizi come sono venuti a me:
    1)
    int main()
    {
    int a;
    for (a=1; a<6; a++){
    printf("**********\n");
    }
    }
    2)
    int main()
    {
    int a,b;
    for (a=1; a<6; a++){
    for (b=1; b<=a ; b++){
    printf("*");
    }
    printf("\n");
    }
    }
    3)
    int main()
    {
    int a,b;
    for (a=1; a=a ; b–){
    printf(“*”);
    }
    printf(“\n”);
    }
    }

    Bye bye

  34. 2 Maggio 2011

    Teo315

    mi ha tagliato un pezzo del 3) riposto:
    3)
    int main()
    {
    int a,b;
    for (a=1; a=a ; b–){
    printf(“*”);
    }
    printf(“\n”);
    }
    }

  35. 2 Maggio 2011

    Ignazioc

    nei commenti il codice viene modificato, se vuoi puoi postare sul forum, cmq mi sembrano corretti.

  36. 2 Maggio 2011

    Teo315

    Ciao Ignazio, si quando gli eseguo su code blocks mi vengono 🙂 una curiosità: quanto lunga sarà la guida? Arriveremo a fare programmi completi di UI che girano autonomamente?
    Grazie

  37. 10 Giugno 2011

    Luca

    #include

    int main (int argc, const char * argv[]) {
    int i,j;

    for(i=1; i>9; i=i+1) {
    for(j=9; j<1; j=j-i) {
    printf("*");
    }
    printf("\n");
    }
    return 0;
    }

    Programma 2, perché non va????

  38. 10 Giugno 2011

    Luca


    Luca:

    #include
    int main (int argc, const char * argv[]) {
    int i,j;
    for(i=1; i>9; i=i+1) {
    for(j=9; j<1; j=j-i) {
    non produce alcun output…(mac xcode)
    printf(“*”);
    }
    printf(“\n”);
    }
    return 0;
    }
    Programma 2, perché non va????

  39. 10 Giugno 2011

    Luca


    Luca:


    Luca:

    #include
    int main (int argc, const char * argv[]) {
    int i,j;
    for(i=1; i>9; i=i+1) {
    for(j=9; j<1; j=j-i) {
    printf(“*”);
    }
    printf(“\n”);
    }
    return 0;
    }

    Scusate l’ho scritto in mezzo al testo, nessuno sa perché non produce alcun output?
    Grazie a tutti

  40. 10 Giugno 2011

    Ignazioc

    usi le condizioni dei for al contrario.
    il secondo parametro è una condizione che se è vera entra dentro il ciclo, se è falsa esce, quindi il tuo codice non esegue praticamente nessuna istruzione

  41. 11 Giugno 2011

    Luca


    Ignazioc:

    usi le condizioni dei for al contrario.
    il secondo parametro è una condizione che se è vera entra dentro il ciclo, se è falsa esce, quindi il tuo codice non esegue praticamente nessuna istruzione

    Ho provato a modificarle e mi esce un disegno strano 🙂

    ********
    ****
    ***
    **
    **
    **
    **
    *

  42. 11 Giugno 2011

    Luca


    Luca:


    Ignazioc:

    usi le condizioni dei for al contrario.
    il secondo parametro è una condizione che se è vera entra dentro il ciclo, se è falsa esce, quindi il tuo codice non esegue praticamente nessuna istruzione

    Ho provato a modificarle e mi esce un disegno strano
    ********
    ****
    ***
    **
    **
    **
    **
    *

    corretto l’errore! 🙂 grazie lo stesso…

  43. 22 Luglio 2011

    Corso completo di Programmazione Java – I Fondamenti – Parte II | devAPP

    […] for: la sintassi e il suo utilizzo sono identici a quelli del C, possiamo quindi consultare il post Istruzioni Iterative del nostro Corso Completo di C per approfondimenti. Inoltre avremo modo di approfondire i costrutti iterativi di Java in uno dei […]

  44. 21 Settembre 2011

    Massimiliano

    aiuto ragazzi!!!!!!!!
    a me non compila niente!!!!!!!!!!
    nemmeno quelli che avete postato voi che a voi funzionano!!!!

    io uso Xcode e come progetto faccio Command line tool…

    🙁 vi prego aiuto… ci divento pazzo……..

  45. 22 Settembre 2011

    Ignazioc

    che errori ti da?

  46. 27 Settembre 2011

    Nicola

    Io li ho risolti così…senza for…

    QUADRATO

    #include

    int main (int argc, const char * argv[]) {

    int i = 0;
    int g = 0;

    while (g <= 4) {
    printf("*");
    i = i + 1;
    if (i == 11) {
    printf("\n");
    i = 0;
    g = g + 1;
    }
    }
    }

    TRIANGOLO 1

    #include

    int main (int argc, const char * argv[]) {

    int i = 0;
    int g = 1;

    while (g <= 10) {
    printf("*");
    i = i + 1;
    if (i == g) {
    printf("\n");
    i = 0;
    g = g + 1;
    }
    }
    }

    PIRAMIDE 2

    #include

    int main (int argc, const char * argv[]) {

    int i = 0;
    int g = 10;

    while (i <= g) {
    printf("*");
    i = i + 1;
    if (i == g) {
    printf("\n");
    i = 0;
    g = g – 1;
    }
    }
    }

    …funzionano

  47. 28 Settembre 2011

    Milleman

    ciao, io ho pensato di farlo così

    *******************************************************
    #include
    int main()
    {
    // primo esercizio
    int i;
    printf(“primo esercizio \n\n”);
    for (i = 0; i < 5; i = i + 1)
    {
    printf("**********\n");
    }
    printf("\n\nsecondo esercizio \n\n");
    // secondo esercizio
    int j;
    for (i = 1; i<11; i++)
    {
    for (j = 1; j <= i; j++ )
    {
    printf("*");
    }
    printf("\n");
    }
    printf("\n\nterzo esercizio \n\n");
    // terzo esercizio
    for (i = 1; i= i; j– )
    {
    printf(“*”);
    }
    printf(“\n”);
    }
    return 0;
    }

  48. 28 Settembre 2011

    Milleman

    ma viene tutto modificato da come l’ho scritto…perchè??

    #include
    int main()
    {
    // primo esercizio
    int i;
    printf(“primo esercizio \n\n”);
    for (i = 0; i < 5; i = i + 1)
    {
    printf("**********\n");
    }
    printf("\n\nsecondo esercizio \n\n");
    // secondo esercizio
    int j;
    for (i = 1; i<11; i++)
    {
    for (j = 1; j <= i; j++ )
    {
    printf("*");
    }
    printf("\n");
    }
    printf("\n\nterzo esercizio \n\n");
    // terzo esercizio
    for (i = 1; i= i; j– )
    {
    printf(“*”);
    }
    printf(“\n”);
    }
    return 0;
    }

  49. 28 Settembre 2011

    Ignazioc

    I codici scritti nei commenti non vanno bene perché si perde l’indentazione e alcuni caratteri speciali vengono modificati.
    Se avete voglia di condividere le vostre soluzioni utilizzate il forum.

  50. 7 Novembre 2011

    Severino

    int main ()
    {

    int l;
    for (int a = 10;a > 0; a–)
    {
    for(l=1;l<=a; l++)
    {
    printf("*");
    }
    printf("\n");

    }
    return 0;
    }

Newer Comments »

Leave a Reply

Your email address will not be published. Required fields are marked *


*
*

Corso online di programmazione android e java

SEZIONI

  • Android
  • Comunicazioni
  • Contest
  • Corsi ed Eventi
  • Corso completo di C
  • Corso programmazione videogiochi
  • Framework
  • Grafica e Design
  • Guida rapida alla programmazione Cocoa Touch
  • Guide Teoriche
  • Guide varie
  • iPad
  • Le nostre applicazioni
  • Libri e manuali
  • Materiale OpenSource
  • News
  • Pillole di C++
  • Progetti completi
  • Risorse utili
  • Strumenti di Sviluppo
  • Swift
  • Tips & Tricks
  • Tutorial Pratici
  • Video Tutorial
  • Windows Phone

Siti Amici

  • Adrirobot
  • Allmobileworld
  • Apple Notizie
  • Apple Tribù
  • Avvocato360
  • Blog informatico 360°
  • bubi devs
  • fotogriPhone
  • GiovaTech
  • iApp-Mac
  • iOS Developer Program
  • iPodMania
  • MelaRumors
  • Meritocracy
  • SoloTablet
  • TecnoUser
  • Privacy & Cookie Policy
©2009-2018 devAPP - All Rights Reserved | Contattaci
devAPP.it è un progetto di DEVAPP S.R.L. - Web & Mobile Agency di Torino
Str. Volpiano, 54 - 10040 Leini (TO) - C.F. e P.IVA 11263180017 - REA TO1199665 - Cap. Soc. € 10.000,00 i.v.

devACADEMY.it

Vuoi imparare a programmare?

Iscriviti e accedi a TUTTI i corsi con un’unica iscrizione.
Oltre 70 corsi e migliaia di videolezioni online e in italiano a tua disposizione.

ISCRIVITI SUBITO