Concetti Chiave
- Il programma è progettato per aiutare gli studenti delle scuole elementari a praticare la moltiplicazione.
- Utilizza la funzione rand per generare due numeri interi positivi di una sola cifra e chiede allo studente di calcolarne il prodotto.
- Se la risposta dello studente è corretta, il programma visualizza "Very good!" e genera una nuova domanda.
- In caso di risposta errata, il programma incoraggia lo studente a riprovare la stessa domanda fino a ottenere la risposta corretta.
- Il programma chiede all'utente se desidera continuare a giocare o terminare dopo ogni risposta.
/* * I computer giocano un ruolo sempre più importante nell'educazione. * Scrivete un programma che aiuti uno studente di scuola elementare * ad apprendere la moltiplicazione. * Utilizzate rand per produrre due interi positivi di una cifra. * Dovrete quindi visualizzare una domanda come: * * How much is 6 times 7? * * In seguito lo studente digiterà la risposta. Il vostro programma * controllerà la risposta dello studente. Qualora sia corretta, * visualizzerete "Very good!" e sottoponete quindi un'altra domanda * sulla moltiplicazione. Nel caso che la risposta sia sbagliata, * visualizzate "No, Please try again." e lasciate quindi che lo * studente provi ancora ripetutamente la stessa domanda, finché * alla fine non avrà risposto correttamente. * */ #include#include #include void printResult(const unsigned int); unsigned int askAgain(void); unsigned int askTimes(void); int main(void) { unsigned int play, times ,answer, result; play = 1; /* giochiamo... */ do { times = askTimes(); /* leggi risposta */ scanf("%u", &answer); result = (times == answer)? 1 : 0; printResult(result); play = askAgain(); } while (play == 1); return (0); } /* * Genera due numeri naturali tra 0 e 9 a caso e restituisce il prodotto * */ unsigned int askTimes(void) { unsigned int n1, n2; srandom(time(NULL)); n1 = random() % 10; n2 = random() % 10; printf("How much is %u * %u?
", n1, n2); return n1*n2; } /* * Stampa un messaggio di risposta corretta/sbagliata * in base al valore 0/1 dell'argomento * */ void printResult(const unsigned int r) { if (0 == r) printf("
No, Please try again.
"); else printf("
Very good!
"); } /* * Chiede all'utente se vuole continuare o meno. * Restituisce 1 in caso affermativo, 0 altrimenti * */ unsigned int askAgain(void) { char a; printf("
Continue? y/n
"); scanf("%c", &a); while (a == '
') scanf("%c", &a); if (a == 'y' || a == 'Y') return 1; else return 0; }
Domande da interrogazione
- Qual è lo scopo principale del programma descritto nel testo?
- Come il programma gestisce le risposte sbagliate dello studente?
- Cosa succede quando lo studente risponde correttamente a una domanda?
Il programma è progettato per aiutare uno studente di scuola elementare ad apprendere la moltiplicazione, generando domande casuali e verificando le risposte.
Se lo studente risponde in modo errato, il programma visualizza "No, Please try again." e permette allo studente di riprovare fino a quando non fornisce la risposta corretta.
Quando lo studente risponde correttamente, il programma visualizza "Very good!" e propone un'altra domanda di moltiplicazione.