Programa para ensinar aluno do ensino fundamental à aprender multiplicação. [RESOLVIDO]
15 respostas
hackum
Estou desenvolvendo um programa simples para ensinar o aluno à aprender multiplicação. Vejamos o código:
//exApp4.java//Programa para ensinar um estudando do ensino fundamental à aprender multiplicaçãoimportjava.util.Random;publicclassexApp4{RandomrandomNumbers=newRandom();privateintdie1;privateintdie2;//método para fazer a pergunta ao usuáriopublicvoidtech(){randomNumbers();//chama o método para gerar números aleatórios para fazer a multiplicação.System.out.printf("How much is %d times %d ?\n",die1,die2);}//método para gerar números aleatóriospublicvoidrandomNumbers(){die1=1+randomNumbers.nextInt(10);die2=1+randomNumbers.nextInt(10);}}
Utilizei um objeto random para trocar os números da seguinte forma: O usuário digita a resposta, caso estiver correta, perguntar novamente. Senão, fica fazendo a mesma pergunta repetidamente.
A questão, é como vou saber se o usuário digitou a resposta correta, sendo que os números são aleatórios ?
Você deve armazenar o numero aleatorio em uma variavel auxiliar. Depois é só comparar o valor digitado pelo usuário com o da variavel.
abs,
L
leopoldof
Simples… depois que usuário informar a resposta, vc pega o que ele digitou e transforma num inteiro… depois faz um método corrige. O Método retorna true se a resposta estiver correta ou false se estiver errado…daí conforme o retorno do método vc repete a questão ou chama o seu random denovo para gerar novos números
Consigui fazer o programa com a ajuda de vocês, é simples, mas funcional. Obrigado mais uma vez a todos do GUJ, sem exceção.
Vejamos o código:
//exApp4.java//Programa para ensinar um estudando do ensino fundamental à aprender multiplicaçãoimportjava.util.Random;importjava.util.Scanner;publicclassexApp4{RandomrandomNumbers=newRandom();Scannerinput=newScanner(System.in);privateintdie1;privateintdie2;privateintreply;//método para fazer a pergunta ao usuáriopublicvoidtech(){randomNumbers();//chama o método para gerar números aleatórios para fazer a multiplicação.System.out.printf("How much is %d times %d ?\n",die1,die2);reply=input.nextInt();correct();}publicvoidcorrect(){if(reply==(die1*die2)){System.out.print("Very Good!");}elseSystem.out.print("No. Please try again.");}//método para gerar números aleatóriospublicvoidrandomNumbers(){die1=1+randomNumbers.nextInt(10);die2=1+randomNumbers.nextInt(10);}}
No caso, se o usuário responder a resposta errada, ele pergunta novamente fazendo a mesma, mas está sendo números aleatórios. Nesse caso, o que eu faço ?
Obrigado mais uma vez…
kenneth
Fala brow,
Chama randomNumbers() no construtor, e quando o cara acertar.
PS: Ta nos esteites brow? Se for ensinar multiplicacao pra criancada em ingles, vao ficar meio perdidos
(Isso se for pra criancas =])
Abraco;
hackum
Não consigui compreender.
Poderia ser mais claro ?
Abraço!
kenneth
//exApp4.java//Programa para ensinar um estudando do ensino fundamental à aprender multiplicaçãoimportjava.util.Random;importjava.util.Scanner;publicclassexApp4{RandomrandomNumbers=newRandom();Scannerinput=newScanner(System.in);privateintdie1;privateintdie2;privateintreply;// [KENNETH] Esse eh o construtor, vai ser chamado qdo vc instanciar este objeto.// vai funcionar como uma inicializacao...publicexApp4{randomNumbers();}//método para fazer a pergunta ao usuáriopublicvoidtech(){// [KENNETH] Pus em comentario, pra que permanecam os mesmo nros ate o cara acertar.// randomNumbers(); //chama o método para gerar números aleatórios para fazer a multiplicação.System.out.printf("How much is %d times %d ?\n",die1,die2);reply=input.nextInt();correct();}publicvoidcorrect(){if(reply==(die1*die2)){System.out.print("Very Good!");//[KENNETH] Agora, o cara acertou, chamamos para gerar dois novos numeros...randomNumbers();}elseSystem.out.print("No. Please try again.");}//método para gerar números aleatóriospublicvoidrandomNumbers(){die1=1+randomNumbers.nextInt(10);die2=1+randomNumbers.nextInt(10);}}
Se eu entendi o que voce quer, acho que funciona.
Abraco.
hackum
Fala Kenneth!
Isso eu já sei. Mas, não é essa a dúvida.
Veja bem, se o usuário errou a multiplicação, ex: 2 x 4, perguntar novamente a mesma pergunta, 2 x 4.
Abraços!
kenneth
Pelo que voce falou acima, pareceu que tinha conseguido fazer isso.
Veja… quando digito errado, ele não pergunta novamente. O que há ?
kenneth
Fala brow,
Do jeito que esta, voce nao pergunta nem quando erra, nem quando acerta.
Nao esta lendo a entrada do usuario. Isso eh feito por esta linha:
reply=input.nextInt();
E corrija seu while, pois so entrara se o cara acertar.
Abraco.
N
nephestos
//exApp4.java//Programa para ensinar um estudando do ensino fundamental à aprender multiplicaçãoimportjava.util.Random;importjava.util.Scanner;publicclassexApp4{RandomrandomNumbers=newRandom();Scannerinput=newScanner(System.in);privateintdie1;privateintdie2;privateintreply;// [KENNETH] Esse eh o construtor, vai ser chamado qdo vc instanciar este objeto.// vai funcionar como uma inicializacao...publicexApp4{randomNumbers();//chama o método para gerar números aleatórios para fazer a multiplicação. tech();}//método para fazer a pergunta ao usuáriopublicvoidtech(){System.out.printf("How much is %d times %d ?\n",die1,die2);reply=input.nextInt();correct();}publicvoidcorrect(){if(reply==(die1*die2)){System.out.print("Very Good!");//[KENNETH] Agora, o cara acertou, chamamos para gerar dois novos numeros...randomNumbers();tech();//Começa tudo denovo mas sorteando novos números}elseSystem.out.print("No. Please try again.");tech();//Começa denovo com os números atuais}//método para gerar números aleatóriospublicvoidrandomNumbers(){die1=1+randomNumbers.nextInt(10);die2=1+randomNumbers.nextInt(10);}}
Fiz umas adaptações e testei aqui está funcionando conforme você queria, porém não há uma parada, então você deve definir um critério para parada tipo, quantidade de erros ou acertos.