Fare delle scelte in C.
  • In diretta da GamesVillage.it
    • News
    • -
    • In Evidenza
    • -
    • Recensioni
    • -
    • RetroGaming
    • -
    • Anteprime
    • -
    • Video
    • -
    • Cinema

Pag 1 di 2 12 UltimoUltimo
Visualizzazione risultati da 1 a 15 di 16

Discussione: Fare delle scelte in C.

Cambio titolo
  1. #1
    Bannato
    Registrato il
    01-09
    Località
    Parma
    Messaggi
    2.472

    Fare delle scelte in C.

    Buongiorno a tutti. Il mio hobby è quello della programmazione, e da poco ho iniziato a studiare il linguaggio C per apprendere tutto quello che c'è da sapere per utilizzarlo al meglio. Di tanto in tanto, penso a dei programmini semplicissimi ma, dato che sono abbastanza inesperto, molte delle soluzioni che mi servono non le ho ancora imparate e quindi non so come procedere. Per esempio, nel programma qui sotto non riesco a far fare una scelta si/no all'utente.
    Guardate:
    #include <stdio.h>
    #include <conio.h>
    main()
    {
    int n;
    printf("Quanti anni hai?");
    scanf("%d",&n);
    printf("È la tua vera età?");

    ecco, dopo l'ultimo print non so come far selezionare all'utente si o no per poi far procedere il programma. Grazie mille per l'aiuto! (forse c'è da usare un ciclo? Se si mi spiegate bene come fare? Grazie!).

  2. #2
    ZioYuri78
    Ospite
    devi usare un if
    Codice:
    char risposta;
    
    //accetta s come si e n come no
    scanf("%c",&risposta);
    if(risposta == 's'){
     -----
    -----
    }else{
    ----
    ----
    }
    ovvio che è un codice buttato li per spiegarti il senso.

  3. #3
    da 3? L'avatar di Celebron
    Registrato il
    07-06
    Località
    Sotto Canestro
    Messaggi
    14.462
    Citazione Oj/dreamphiro Visualizza Messaggio
    Buongiorno a tutti. Il mio hobby è quello della programmazione, e da poco ho iniziato a studiare il linguaggio C per apprendere tutto quello che c'è da sapere per utilizzarlo al meglio. Di tanto in tanto, penso a dei programmini semplicissimi ma, dato che sono abbastanza inesperto, molte delle soluzioni che mi servono non le ho ancora imparate e quindi non so come procedere. Per esempio, nel programma qui sotto non riesco a far fare una scelta si/no all'utente.
    Guardate:
    #include <stdio.h>
    #include <conio.h>
    main()
    {
    int n;
    printf("Quanti anni hai?");
    scanf("%d",&n);
    printf("È la tua vera età?");

    ecco, dopo l'ultimo print non so come far selezionare all'utente si o no per poi far procedere il programma. Grazie mille per l'aiuto! (forse c'è da usare un ciclo? Se si mi spiegate bene come fare? Grazie!).
    non capisco quale sia il problema
    al posto di chiedere un numero gli chiedi un carattere o una stringa (banalmente Y o N) e poi con un semplice if verifichi quale è la risposta data dall'utente (ricorda che nel caso chiedi un risposta in stringhe tipo yes/not, prima devi assicurarti che sia scritto tutti minuscolo (o tutto maiuscolo a scelta, mi pare ci siano funzioni come toupper e tolower) e poi per l'if devi usare la strcmp).

  4. #4
    Bannato
    Registrato il
    01-09
    Località
    Parma
    Messaggi
    2.472
    non capisco quale sia il problema
    al posto di chiedere un numero gli chiedi un carattere o una stringa (banalmente Y o N) e poi con un semplice if verifichi quale è la risposta data dall'utente (ricorda che nel caso chiedi un risposta in stringhe tipo yes/not, prima devi assicurarti che sia scritto tutti minuscolo (o tutto maiuscolo a scelta, mi pare ci siano funzioni come toupper e tolower) e poi per l'if devi usare la strcmp).

    Forse conviene ripetere che io sono totalmente inesperto. So solo le due librerire che ho scritto e printf e scanf (e if e else).

  5. #5
    Bannato
    Registrato il
    01-09
    Località
    Parma
    Messaggi
    2.472
    char risposta;

    //accetta s come si e n come no
    scanf("%c",&risposta);
    if(risposta == 's'){
    -----
    -----
    }else{
    ----
    ----
    }
    Ah, ok, capito. Ma yes e not come li devi scrivere tra le parentesi della condizione if?

  6. #6
    da 3? L'avatar di Celebron
    Registrato il
    07-06
    Località
    Sotto Canestro
    Messaggi
    14.462
    Citazione Oj/dreamphiro Visualizza Messaggio

    Forse conviene ripetere che io sono totalmente inesperto. So solo le due librerire che ho scritto e printf e scanf (e if e else).
    allora prima di fare programmi studia la teoria, non si diventa programmatori senza studiare almeno qualcosa. Prima studi la teoria su cui si basa un esercizio e poi fai l'esercizio.
    studia i char, studia come si definisce e cos'è un vettore, poi studia le stringhe e le funzioni di libreria sulle stringhe

    se almeno conosci i char puoi fare un semplice if su carattere come ti hanno detto sopra

    printf(" istruzioni sulle risposte che accetti, esempio Y per si e N per no ");
    scanf ("%c", &carattere);
    if(carattere=='Y')
    printf("hai risposto si");
    else if(carattere == 'N');
    printf("hai risposto no");
    else
    printf("risposta non valida");

    edit: anche così però ricorda che se l'utente ti scrive y e non Y per il programma la risposta sarebbe non valida. Ovviamente puoi modificare gli if in modo che siano accettate anche le lettere minuscole.
    Ultima modifica di Celebron; 14-10-2009 alle 19:19:08

  7. #7
    Bannato
    Registrato il
    01-09
    Località
    Parma
    Messaggi
    2.472
    allora prima di fare programmi studia la teoria, non si diventa programmatori senza studiare almeno qualcosa. Prima studi la teoria su cui si basa un esercizio e poi fai l'esercizio.
    studia i char, studia come si definisce e cos'è un vettore, poi studia le stringhe e le funzioni di libreria sulle stringhe

    se almeno conosci i char puoi fare un semplice if su carattere come ti hanno detto sopra

    printf(" istruzioni sulle risposte che accetti, esempio Y per si e N per no ");
    scanf ("%c", &carattere);
    if(carattere==Y)
    printf("hai risposto si");
    else if(carattere == N);
    printf("hai risposto no");
    else
    printf("risposta non valida");
    Si, mi sa che devo studiare ancora e ancora.
    Comunque, ho capito come si fa l'esercizio. L'unica cosa che ancora ho in dubbio sono la Y e la N dopo il segno di uguaglianza nella condizione if. Sono dei valori già preimpostati come, per esempio, minore e maggiore?

  8. #8
    da 3? L'avatar di Celebron
    Registrato il
    07-06
    Località
    Sotto Canestro
    Messaggi
    14.462
    Citazione Oj/dreamphiro Visualizza Messaggio
    Si, mi sa che devo studiare ancora e ancora.
    Comunque, ho capito come si fa l'esercizio. L'unica cosa che ancora ho in dubbio sono la Y e la N dopo il segno di uguaglianza nella condizione if. Sono dei valori già preimpostati come, per esempio, minore e maggiore?
    no, sono i caratteri che ti da input l'utente, quelli che digita da tastiera
    Il programmatore decide quali risposte per il programma siano valide
    per esempio io potrei decidere che per me "C" vale no e "P" vale si
    allora stampo su schermo le istruzioni in modo che l'utente sappia che risposte voglio avere e metto gli if di conseguenza in modo che verifichino sia le due risposte sia il caso in cui l'utente sbagli l'input e io non riconosca alcuna risposta valida

    Questo a un livello base, più avanti ti sarà più chiaro

  9. #9
    Bannato
    Registrato il
    01-09
    Località
    Parma
    Messaggi
    2.472
    no, sono i caratteri che ti da input l'utente, quelli che digita da tastiera
    Il programmatore decide quali risposte per il programma siano valide
    per esempio io potrei decidere che per me "C" vale no e "P" vale si
    allora stampo su schermo le istruzioni in modo che l'utente sappia che risposte voglio avere e metto gli if di conseguenza in modo che verifichino sia le due risposte sia il caso in cui l'utente sbagli l'input e io non riconosca alcuna risposta valida

    Questo a un livello base, più avanti ti sarà più chiaro
    E se per esempio l'utente digitasse qualcosa che non ha niente a che vedere con Y o N? (o qualsiasi altro carattere che per te abbia il valore di si o no).

  10. #10
    da 3? L'avatar di Celebron
    Registrato il
    07-06
    Località
    Sotto Canestro
    Messaggi
    14.462
    Citazione Oj/dreamphiro Visualizza Messaggio
    E se per esempio l'utente digitasse qualcosa che non ha niente a che vedere con Y o N? (o qualsiasi altro carattere che per te abbia il valore di si o no).
    allora ha fatto un errore(vedila così, è come che in un programma grafico dove ci sono i due pulsanti avanti e indietro, l'utente si ostini a cliccare sul desktop)
    difatti l'ultimo else che ti ho messo serve a fargli notare che non ha inserito la risposta che mi aspettavo
    Con le tue conoscenze, in una condizione del genere, Termini il programma

    nota: più avanti quando conoscerai i while farai in modo che la richiesta di risposta sia ripetuta o finchè l'utente non te ne dà una valida o finchè non inserisce un carattere che ti faccia terminare il ciclo (anche questo le sceglierai tu)

  11. #11
    Bannato
    Registrato il
    01-09
    Località
    Parma
    Messaggi
    2.472
    allora ha fatto un errore(vedila così, è come che in un programma grafico dove ci sono i due pulsanti avanti e indietro, l'utente si ostini a cliccare sul desktop)
    difatti l'ultimo else che ti ho messo serve a fargli notare che non ha inserito la risposta che mi aspettavo
    Con le tue conoscenze, in una condizione del genere, Termini il programma

    nota: più avanti quando conoscerai i while farai in modo che la richiesta di risposta sia ripetuta o finchè l'utente non te ne dà una valida o finchè non inserisce un carattere che ti faccia terminare il ciclo (anche questo le sceglierai tu)
    Interessantissimo. Grazie mille di tutto!

  12. #12
    Bannato
    Registrato il
    01-09
    Località
    Parma
    Messaggi
    2.472
    Solo un'ultima cosa. Come fa un utente, a indovinare quali opzioni ho inserito per lui? Se io per esempio, considero Y si e N no, come fa l'utente, quando fa girare il programma, a sapere che deve cliccare Y o N? Magari il suo intento era rispondere si o no, ma alla fine per il programma un carattere non equivalente a quelli sopracitati è considerato non valido. O no?^^

  13. #13
    da 3? L'avatar di Celebron
    Registrato il
    07-06
    Località
    Sotto Canestro
    Messaggi
    14.462
    Citazione Oj/dreamphiro Visualizza Messaggio
    Solo un'ultima cosa. Come fa un utente, a indovinare quali opzioni ho inserito per lui? Se io per esempio, considero Y si e N no, come fa l'utente, quando fa girare il programma, a sapere che deve cliccare Y o N? Magari il suo intento era rispondere si o no, ma alla fine per il programma un carattere non equivalente a quelli sopracitati è considerato non valido. O no?^^
    per quello ti ho messo la printf("istrizioni")
    intendevo che al posto di "istruzioni" devi specificare le risposte che accetti in input

  14. #14
    ZioYuri78
    Ospite
    Citazione Oj/dreamphiro Visualizza Messaggio
    Solo un'ultima cosa. Come fa un utente, a indovinare quali opzioni ho inserito per lui? Se io per esempio, considero Y si e N no, come fa l'utente, quando fa girare il programma, a sapere che deve cliccare Y o N? Magari il suo intento era rispondere si o no, ma alla fine per il programma un carattere non equivalente a quelli sopracitati è considerato non valido. O no?^^
    Si vede che sei un nibbio, solitamente i programmi a riga di comando danno anche istruzioni su quello che è permesso fare, proprio come dice Celebron.

    Ad esempio nel caso della tua scelta, tanto per essere chiari, fai una cosa del genere:
    [code]
    printf("La tua eta\' e\' giusta? Inserisci 'Y' per si oppure 'N' per no ");
    scanf("%c",&risposta);
    if(........){
    ------
    ----
    }else{
    ---
    ---
    }
    [\code]

    Cmq anchio quoto sul fatto che prima devi farti un pò di teoria, altrimenti ti impantani in problemi più logici che di sintassi.
    Imparare la sintassi di un linguaggio di programmazione non è difficile, il difficile è imparare a programmare.

  15. #15
    Bannato
    Registrato il
    01-09
    Località
    Parma
    Messaggi
    2.472
    Giusto, le istruzioni. Va bene, allora grazie di tutto!

Pag 1 di 2 12 UltimoUltimo

Regole di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •