Claro. Você pode mandar o sistema imprimir o número random mais um X e um outro número random ou o mesmo número. Você que sabe. Daí você deixa o resultado em uma variável e pede uma entrada para uma variável e verifica a resposta com um simples if. Caso você queira deixar aleatório o operador você tem que usar a imaginação hehe. Pode fazer para gerar um número inteiro e fazer algumas verificações com ele tipo: Se o número for múltiplo de 4 você coloca a divisão, etc. Lembrei nisso agora mas você pode fazer como quiser hehe
Espero ter ajudado!
G
Guguinha12
Bom vou tentando aqui e conforme a evolução vou postando o código, a princípio se o programa fizer apenas MULTIPLICAÇÕES eu to satisfeito!
E teria como usar um IF para variar a resposta do programa?
Tipo o programa pergunta quanto é 2 x 2 ae eu respondo 4, então o programa imprime Muito Bom, na próxima pergunta que eu acertar ele imprime Boa Resposta, etc, variar as respostas!
Se quiser dar uma mão na parte de codificação fico grato rsrs
esdras_63
Sim pode fazer isso da mesma forma que falei lá em cima com os randons e fazer a verificação.
Vai fazendo os códigos e postando para você ir aprendendo pois se eu for fazer você não vai aprender igual se você mesmo fizer.
Para fazer as entradas do programa caso você não saiba vou te passar umas dicas usando JOptionPane. Tem como fazer usando System.in mais não lembro agora pois faz tempo que não uso:
//Entradadoprograma.VocêtemquefazerocastpoiseleretornaStringintx=Integer.parseInt(JOptionPane.showInputDialog("Valor do x:"));//Saídadoprograma.JOptionPane.showMessageDialog(null,"Texto para saída aqui!");//Enãoesqueçadefazeroimportdabiblioteca.importjavax.swing.JOptionPane;
Conforme for surgindo as dúvidas posta para agente dar uma olhada
Espero ter ajudado!
sgaothaich
Gere dois randômicos, mostre a operação pro usuário, guarde o valor da operação numa variável e faz um condicional pra ver se a resposta está correta.
inta=(int)(1+(Math.random()*100));intb=(int)(1+(Math.random()*100));System.out.println(a+" x "+b+": ");Scannerinput=newScanner(System.in);intcalc=a*b;if(calc==input.nextInt()){System.out.println("Certo!");}else{System.out.println("Errado!")}
esdras_63
Isso desse jeito que faz a entrada hehehe! Lembrei agora. Caso queira deixar a aparência mais bonita fica legal do jeito que postei.
Agora só falta fazer os randoms para o operador e para a mensagem.
Por favor deixa ele tentar fazer.
Obrigado!
G
Guguinha12
É agradeço se deixarem eu me virar e forem me dando dicas, se não, a força do copiar e colar vai tornar o mundo mais zumbi =/
auhauhua calma ae que agora anganjei na coisa
esdras_63
hahah…
sgaothaich
sorry
G
Guguinha12
Bom com a dica do usuário sgaothaich eu consegui fazer o programa!
Agora vou começar a implantar usando IFs como me disseram pra variar as respostas!
Vou por um IF para Muito Bom, Parabéns, e mais alguma coisa!
Já já edito meu post com o código em andamento!
G
Guguinha12
importjava.util.Scanner;publicclassMatematicaIniciante{publicstaticvoidmain(String...Args){System.out.println("Responda ao cálculo abaixo");inta=(int)(1+(Math.random()*10));intb=(int)(1+(Math.random()*10));System.out.println(a+" x "+b+": ");Scannerinput=newScanner(System.in);intcalc=a*b;if(calc==input.nextInt()){System.out.println("Muito bem!!");}else{System.out.println("Valor incorreto. Tente de novo.");}}}
Se o usuário acertar eu quero que o programa faça outra pergunta, e se o usuario errar eu quero que o programa diga que está errado e faça a mesma pergunta até ele acertar, como ficaria isso? tenho que ficar chamando o metódo dentro do IF/ELSE?
G
Guguinha12
importjava.util.Scanner;publicclassAtividadeProgramacao{publicstaticvoidmain(String[]args){intsair=1;do{inta=1+(int)(Math.random()*10);intb=1+(int)(Math.random()*10);intc=b*a;intR;do{System.out.print("Resolva o cálculo abaixo: ");System.out.print("Quanto é "+a+"x"+b);System.out.println("?");Scannerteclado=newScanner(System.in);intr=Integer.parseInt(teclado.nextLine());R=r;if(r!=c){interrado=1+(int)(Math.random()*4);if(errado==1){System.out.println("Não. Tente novamente, por favor.");}if(errado==2){System.out.println("Errado. Tente mais uma vez.");}if(errado==3){System.out.println("Não. Continue tentando. ");}if(errado==4){System.out.println("Não. Desista!");}}}while(R!=c);if(R==c){intcer=1+(int)(Math.random()*4);if(cer==1){System.out.println("Muito bem!");}if(cer==2){System.out.println("Bom Trabalho!");}if(cer==3){System.out.println("Excelente!");}if(cer==4){System.out.println("Certo! Continue Assim!");}}}while(sair==1);}}
Ta assim por enquanto!
G
Guguinha12
Com esse código acima me tirem uma dúvida, como eu faço assim ó:
o usuario vai responder 10 perguntas, se a margem de acerto for maior que 75% o programa encerra se for menor que 75% o programa imprime que o aluno precisa de ajuda blabla, como ficaria pra fazer isso?
esdras_63
você vai ter que deixar uma variável de contador daí cada vez que executar um do while você acrescenta um e deixa o while ate o 10. Você também talvez vai precisar de um array de boolean que você vai setando true se acertou ou false se errou. Daí você faz a verificação da porcentagem de acertos.
Hehe vai ficar bem legal esse seu sisteminha. Fica melhor ainda se você fizer um random para o operador.
Acho que é mais ou menos isso.
G
Guguinha12
Desculpa pela demora, rsrs mas o codigo desse sisteminha atualmente tá assim!
/** * @author Gustavo Girardon * @version 1.0 Total Flex */importjava.util.*;publicclassExercicioQuatro{/** * @param args */publicstaticvoidmain(String[]args){intn=0;intac=0;intop=0;intNv=0;//Escolha do nível de dificuldade da pergunta!System.out.println("Informe o nível desejado (1=fácil,2=médio,3=difícil)?");Scannerteclado=newScanner(System.in);Nv=Integer.parseInt(teclado.nextLine());System.out.println("Iniciado em nível "+Nv);//Escolha do tipo de operaçãoSystem.out.println("QUal o tipo de operação? (1: Multiplicação, 2: Divisão, 3: Adição, 4: Subtração)");Scannertec=newScanner(System.in);op=Integer.parseInt(tec.nextLine());if(op==1){System.out.println("Você Escolheu: Multiplicação");}if(op==2){System.out.println("Você Escolheu: Divisão");}if(op==3){System.out.println("Você Escolheu: Adição");}if(op==4){System.out.println("Você Escolheu: Subtração");}//ínicio do if para multiplicaçãoif(op==1){do{//Nível 1if(Nv==1){//sorteia numero 1intnivel11=1+(int)(Math.random()*10);intnivel12=1+(int)(Math.random()*10);//fim sorteioSystem.out.println("Quanto é "+nivel11+" x "+nivel12+"?");Scannernvl1=newScanner(System.in);intnivl1=Integer.parseInt(nvl1.nextLine());if(nivl1==nivel11*nivel12){//inicio se esteja certa a respostaac=ac+1;intresposta=1+(int)(Math.random()*4);switch(resposta){//começa o casecase1:System.out.println("Muito bem!");break;case2:System.out.println("Excelente");break;case3:System.out.println("Bom trabalho!");break;case4:System.out.println("Certo. Continue assim!");break;}//fim do case}//FIM se esteja certa a respostaelse{//Se a resposta estiver erradaintresposta=1+(int)(Math.random()*4);switch(resposta){//começa o casecase1:System.out.println("Nao. Tente novamente, por favor.");break;case2:System.out.println("Errado. Tente mais uma vez.");break;case3:System.out.println("Nao desista!!");break;case4:System.out.println("Nao. Continue tentando.");break;}//fim case}//Fim se a resposta estiver errada}//Fim nível 1//Nível 2if(Nv==2){//sorteia numero 2 intnivel21=1+(int)(Math.random()*100);intnivel22=1+(int)(Math.random()*100);//fim sorteioSystem.out.println("Quanto é "+nivel21+" x "+nivel22+"?");Scannernvl2=newScanner(System.in);intnivl2=Integer.parseInt(nvl2.nextLine());if(nivl2==nivel21*nivel22){//inicio se esteja certa a respostaac=ac+1;intresposta=1+(int)(Math.random()*4);switch(resposta){//começa o casecase1:System.out.println("Muito bem!");break;case2:System.out.println("Exelente");break;case3:System.out.println("Bom trabalho!");break;case4:System.out.println("Certo. Continue assim!");break;}//fim do case}//FIM se esteja certa a respostaelse//Se a resposta estiver errada{intresposta=1+(int)(Math.random()*4);switch(resposta){//começa o casecase1:System.out.println("Nao. Tente novamente, por favor.");break;case2:System.out.println("Errado. Tente mais uma vez.");break;case3:System.out.println("Nao desista!!");break;case4:System.out.println("Nao. Continue tentando.");break;}//fim case}//Fim se a resposta estiver errada}//Fim nível 2//Nível 3if(Nv==3){//sorteia os númerosintnivel31=1+(int)(Math.random()*1000);intnivel32=1+(int)(Math.random()*1000);//fim sorteioSystem.out.println("Quanto é "+nivel31+" x "+nivel32+"?");Scannernvl3=newScanner(System.in);intnivl3=Integer.parseInt(nvl3.nextLine());if(nivl3==nivel31*nivel32){//inicio se esteja certa a respostaac=ac+1;intresposta=1+(int)(Math.random()*4);switch(resposta){//começa o casecase1:System.out.println("Muito bem!");break;case2:System.out.println("Exelente");break;case3:System.out.println("Bom trabalho!");break;case4:System.out.println("Certo. Continue assim!");break;}//fim do case}//FIM se esteja certa a respostaelse//Se a resposta estiver errada{intresposta=1+(int)(Math.random()*4);switch(resposta){//começa o casecase1:System.out.println("Nao. Tente novamente, por favor.");break;case2:System.out.println("Errado. Tente mais uma vez.");break;case3:System.out.println("Nao desista!!");break;case4:System.out.println("Nao. Continue tentando.");break;}//fim case}//Fim se a resposta estiver errada}//Fim nível 3n=n+1;}while(n<=9);}////////////////////////////////FIM MULTIPLICAÇÃO////////////////////////////////////////////////////////////////////////////DIVISÃO///////////////////////////////////////////////if(op==2){do{//Nível 1if(Nv==1){//sorteia numero 1intnivel11=1+(int)(Math.random()*10);intnivel12=1+(int)(Math.random()*10);//fim sorteioSystem.out.println("Quanto é "+nivel11+" / "+nivel12+"?");Scannernvl1=newScanner(System.in);intnivl1=Integer.parseInt(nvl1.nextLine());if(nivl1==nivel11/nivel12){//inicio se esteja certa a respostaac=ac+1;intresposta=1+(int)(Math.random()*4);switch(resposta){//começa o casecase1:System.out.println("Muito bem!");break;case2:System.out.println("Exelente");break;case3:System.out.println("Bom trabalho!");break;case4:System.out.println("Certo. Continue assim!");break;}//fim do case}//FIM se esteja certa a respostaelse//Se a resposta estiver errada{intresposta=1+(int)(Math.random()*4);switch(resposta){//começa o casecase1:System.out.println("Nao. Tente novamente, por favor.");break;case2:System.out.println("Errado. Tente mais uma vez.");break;case3:System.out.println("Nao desista!!");break;case4:System.out.println("Nao. Continue tentando.");break;}//fim case}//Fim se a resposta estiver errada}//Fim nível 1//Nível 2if(Nv==2){//sorteia numero 2 intnivel21=1+(int)(Math.random()*100);intnivel22=1+(int)(Math.random()*100);//fim sorteioSystem.out.println("Quanto é "+nivel21+" / "+nivel22+"?");Scannernvl2=newScanner(System.in);intnivl2=Integer.parseInt(nvl2.nextLine());if(nivl2==nivel21/nivel22){//inicio se esteja certa a respostaac=ac+1;intresposta=1+(int)(Math.random()*4);switch(resposta){//começa o casecase1:System.out.println("Muito bem!");break;case2:System.out.println("Exelente");break;case3:System.out.println("Bom trabalho!");break;case4:System.out.println("Certo. Continue assim!");break;}//fim do case}//FIM se esteja certa a respostaelse//Se a resposta estiver errada{intresposta=1+(int)(Math.random()*4);switch(resposta){//começa o casecase1:System.out.println("Nao. Tente novamente, por favor.");break;case2:System.out.println("Errado. Tente mais uma vez.");break;case3:System.out.println("Nao desista!!");break;case4:System.out.println("Nao. Continue tentando.");break;}//fim case}//Fim se a resposta estiver errada}//Fim nível 2//Nível 3if(Nv==3){//sorteia os númerosintnivel31=1+(int)(Math.random()*1000);intnivel32=1+(int)(Math.random()*1000);//fim sorteioSystem.out.println("Quanto é "+nivel31+" / "+nivel32+"?");Scannernvl3=newScanner(System.in);intnivl3=Integer.parseInt(nvl3.nextLine());if(nivl3==nivel31/nivel32){//inicio se esteja certa a respostaac=ac+1;intresposta=1+(int)(Math.random()*4);switch(resposta){//começa o casecase1:System.out.println("Muito bem!");break;case2:System.out.println("Exelente");break;case3:System.out.println("Bom trabalho!");break;case4:System.out.println("Certo. Continue assim!");break;}//fim do case}//FIM se esteja certa a respostaelse//Se a resposta estiver errada{intresposta=1+(int)(Math.random()*4);switch(resposta){//começa o casecase1:System.out.println("Nao. Tente novamente, por favor.");break;case2:System.out.println("Errado. Tente mais uma vez.");break;case3:System.out.println("Nao desista!!");break;case4:System.out.println("Nao. Continue tentando.");break;}//fim case}//Fim se a resposta estiver errada}//Fim nível 3n=n+1;}while(n<=9);}////////////////////////////////FIM DIVISÃO////////////////////////////////////////////////////////////////////////////ADIÇÃO///////////////////////////////////////////////if(op==3){do{//Nível 1if(Nv==1){//sorteia numero 1intnivel11=1+(int)(Math.random()*10);intnivel12=1+(int)(Math.random()*10);//fim sorteioSystem.out.println("Quanto é "+nivel11+" + "+nivel12+"?");Scannernvl1=newScanner(System.in);intnivl1=Integer.parseInt(nvl1.nextLine());if(nivl1==nivel11+nivel12){//inicio se esteja certa a respostaac=ac+1;intresposta=1+(int)(Math.random()*4);switch(resposta){//começa o casecase1:System.out.println("Muito bem!");break;case2:System.out.println("Exelente");break;case3:System.out.println("Bom trabalho!");break;case4:System.out.println("Certo. Continue assim!");break;}//fim do case}//FIM se esteja certa a respostaelse//Se a resposta estiver errada{intresposta=1+(int)(Math.random()*4);switch(resposta){//começa o casecase1:System.out.println("Nao. Tente novamente, por favor.");break;case2:System.out.println("Errado. Tente mais uma vez.");break;case3:System.out.println("Nao desista!!");break;case4:System.out.println("Nao. Continue tentando.");break;}//fim case}//Fim se a resposta estiver errada}//Fim nível 1//Nível 2if(Nv==2){//sorteia numero 2 intnivel21=1+(int)(Math.random()*100);intnivel22=1+(int)(Math.random()*100);//fim sorteioSystem.out.println("Quanto é "+nivel21+" + "+nivel22+"?");Scannernvl2=newScanner(System.in);intnivl2=Integer.parseInt(nvl2.nextLine());if(nivl2==nivel21+nivel22){//inicio se esteja certa a respostaac=ac+1;intresposta=1+(int)(Math.random()*4);switch(resposta){//começa o casecase1:System.out.println("Muito bem!");break;case2:System.out.println("Exelente");break;case3:System.out.println("Bom trabalho!");break;case4:System.out.println("Certo. Continue assim!");break;}//fim do case}//FIM se esteja certa a respostaelse//Se a resposta estiver errada{intresposta=1+(int)(Math.random()*4);switch(resposta){//começa o casecase1:System.out.println("Nao. Tente novamente, por favor.");break;case2:System.out.println("Errado. Tente mais uma vez.");break;case3:System.out.println("Nao desista!!");break;case4:System.out.println("Nao. Continue tentando.");break;}//fim case}//Fim se a resposta estiver errada}//Fim nível 2//Nível 3if(Nv==3){//sorteia os númerosintnivel31=1+(int)(Math.random()*1000);intnivel32=1+(int)(Math.random()*1000);//fim sorteioSystem.out.println("Quanto é "+nivel31+" + "+nivel32+"?");Scannernvl3=newScanner(System.in);intnivl3=Integer.parseInt(nvl3.nextLine());if(nivl3==nivel31+nivel32){//inicio se esteja certa a respostaac=ac+1;intresposta=1+(int)(Math.random()*4);switch(resposta){//começa o casecase1:System.out.println("Muito bem!");break;case2:System.out.println("Exelente");break;case3:System.out.println("Bom trabalho!");break;case4:System.out.println("Certo. Continue assim!");break;}//fim do case}//FIM se esteja certa a respostaelse//Se a resposta estiver errada{intresposta=1+(int)(Math.random()*4);switch(resposta){//começa o casecase1:System.out.println("Nao. Tente novamente, por favor.");break;case2:System.out.println("Errado. Tente mais uma vez.");break;case3:System.out.println("Nao desista!!");break;case4:System.out.println("Nao. Continue tentando.");break;}//fim case}//Fim se a resposta estiver errada}//Fim nível 3n=n+1;}while(n<9);}////////////////////////////////FIM ADIÇÃO////////////////////////////////////////////////////////////////////////////SUBTRAÇÃO///////////////////////////////////////////////if(op==4){do{//Nível 1if(Nv==1){//sorteia numero 1intnivel11=1+(int)(Math.random()*10);intnivel12=1+(int)(Math.random()*10);//fim sorteioSystem.out.println("Quanto é "+nivel11+" - "+nivel12+"?");Scannernvl1=newScanner(System.in);intnivl1=Integer.parseInt(nvl1.nextLine());if(nivl1==nivel11-nivel12){//inicio se esteja certa a respostaac=ac+1;intresposta=1+(int)(Math.random()*4);switch(resposta){//começa o casecase1:System.out.println("Muito bem!");break;case2:System.out.println("Exelente");break;case3:System.out.println("Bom trabalho!");break;case4:System.out.println("Certo. Continue assim!");break;}//fim do case}//FIM se esteja certa a respostaelse//Se a resposta estiver errada{intresposta=1+(int)(Math.random()*4);switch(resposta){//começa o casecase1:System.out.println("Nao. Tente novamente, por favor.");break;case2:System.out.println("Errado. Tente mais uma vez.");break;case3:System.out.println("Nao desista!!");break;case4:System.out.println("Nao. Continue tentando.");break;}//fim case}//Fim se a resposta estiver errada}//Fim nível 1//Nível 2if(Nv==2){//sorteia numero 2 intnivel21=1+(int)(Math.random()*100);intnivel22=1+(int)(Math.random()*100);//fim sorteioSystem.out.println("Quanto é "+nivel21+" - "+nivel22+"?");Scannernvl2=newScanner(System.in);intnivl2=Integer.parseInt(nvl2.nextLine());if(nivl2==nivel21-nivel22){//inicio se esteja certa a respostaac=ac+1;intresposta=1+(int)(Math.random()*4);switch(resposta){//começa o casecase1:System.out.println("Muito bem!");break;case2:System.out.println("Exelente");break;case3:System.out.println("Bom trabalho!");break;case4:System.out.println("Certo. Continue assim!");break;}//fim do case}//FIM se esteja certa a respostaelse//Se a resposta estiver errada{intresposta=1+(int)(Math.random()*4);switch(resposta){//começa o casecase1:System.out.println("Nao. Tente novamente, por favor.");break;case2:System.out.println("Errado. Tente mais uma vez.");break;case3:System.out.println("Nao desista!!");break;case4:System.out.println("Nao. Continue tentando.");break;}//fim case}//Fim se a resposta estiver errada}//Fim nível 2//Nível 3if(Nv==3){//sorteia os númerosintnivel31=1+(int)(Math.random()*1000);intnivel32=1+(int)(Math.random()*1000);//fim sorteioSystem.out.println("Quanto é "+nivel31+" - "+nivel32+"?");Scannernvl3=newScanner(System.in);intnivl3=Integer.parseInt(nvl3.nextLine());if(nivl3==nivel31-nivel32){//inicio se esteja certa a respostaac=ac+1;intresposta=1+(int)(Math.random()*4);switch(resposta){//começa o casecase1:System.out.println("Muito bem!");break;case2:System.out.println("Exelente");break;case3:System.out.println("Bom trabalho!");break;case4:System.out.println("Certo. Continue assim!");break;}//fim do case}//FIM se esteja certa a respostaelse//Se a resposta estiver errada{intresposta=1+(int)(Math.random()*4);switch(resposta){//começa o casecase1:System.out.println("Nao. Tente novamente, por favor.");break;case2:System.out.println("Errado. Tente mais uma vez.");break;case3:System.out.println("Nao desista!!");break;case4:System.out.println("Nao. Continue tentando.");break;}//fim case}//Fim se a resposta estiver errada}//Fim nível 3n=n+1;}while(n<9);}////////////////////////////////FIM SUBTRAÇÃO//////////////////////////////System.out.println("Total de acertos: "+ac+" de "+10);if(ac<75){System.out.println("Por favor, solicite ajuda extra ao professor, pois você teve um aproveitamento de "+ac*10+"%");}}//fim main}
Sei que ele poderia ser bem menor, mas devido a falta de conhecimento não consegui dar uma resumida nele para fazer a mesma coisa!
Dicas para encurtar esse menino ou para acrescentar algo? :D