adminv15
Ominide
2 min. di lettura
Vota

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

  1. Qual è lo scopo principale del programma descritto nel testo?
  2. Il programma è progettato per aiutare uno studente di scuola elementare ad apprendere la moltiplicazione, generando domande casuali e verificando le risposte.

  3. Come il programma gestisce le risposte sbagliate dello studente?
  4. 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.

  5. Cosa succede quando lo studente risponde correttamente a una domanda?
  6. Quando lo studente risponde correttamente, il programma visualizza "Very good!" e propone un'altra domanda di moltiplicazione.

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community