Ola Gente boa Tarde estou com uma duvida de um algoritmo como faco para fazer um calculo da nota media ponderada segue a formula mp = n1 * 1 + n2 * 2 / (1+2) sendo que se a nota do aluno for igual a 0 o algoritmo nao deve ler a nota, e o mesmo so deverá executar o calculo cujo a nota foi maior que zero eu fiz a formula com o if certinho colocando as duas notas agora como eu faço para o algoritmo para nao ler a nota e ainda assim calcular a nota que for atribuída!
Uma forma fácil de você entender a lógica que deve ser feita é criar vários casos de teste do seu programa.
Vamos dar os seguintes exemplos, que você deve resolver só com lápis e papel (talvez uma calculadora, quem sabe…)
a) O aluno tem nota 1 = 10 e nota 2 = 9. Qual é a nota média ponderada?
b) O aluno tem nota 1 = 0 e nota 2 = 9. Qual é a nota média ponderada?
c) O aluno tem nota 1 = 10 e nota 2 = 0. Qual é a nota média ponderada?
d) O aluno tem nota 1 = 0 e nota 2 = 0. Qual é a nota média ponderada?
Uma vez você considerando esses 4 casos, veja qual é a lógica que você precisa fazer para transformar em um programa.
E
entanglement
Vou dar até a resposta para você conferir depois :
a) 9.3333
b) 9
c) 10
d) 0
Note que nos casos b) e c), na verdade você não usa a fórmula que lhe passaram
L
lcruz
Um dos jeitos:
importjava.util.Scanner*;publicstaticvoidmain(String[]args){Scannerentrada=newScanner(System.in);intnota1;intnota2;intmédia;System.out.println("Insira a nota 1:");nota1=entrada.nextInt();System.out.println("Insira a nota 2:");nota2=entrada.nextInt();média=((nota1*1)+(nota2*2))/(1+2);if(nota1==0){média=nota2;}if(nota2==0){média=nota1;}}System.out.println(média);
fabiocortolan
O exemplo postado pelo lcruz funciona bem mas eu faria algumas modificações:
publicstaticvoidmain(String[]args){// Variáveis do tipo double para poder lançar notas com valores decimaisdoublenota1;doublenota2;doublemedia;Scannersc=newScanner(System.in);System.out.println("Insira a nota 1:");nota1=sc.nextDouble();System.out.println("Insira a nota 2:");nota2=sc.nextDouble();// if...else... para que o sistema não tenha q testar 2 condições depois de calcular a médiaif(nota1==0){media=nota2;}elseif(nota2==0){media=nota1;}else{media=((nota1*1)+(nota2*2))/(1+2);}System.out.println(media);}
L
lcruz
fabiocortolan:
O exemplo postado pelo lcruz funciona bem mas eu faria algumas modificações:
Mas na verdade o jeito que eu fiz é “nanomicamente” mais rápido.