Se alguem poder me ajuda, estou na diciplina de algoritoms e programação.
O meu algoritmo!
public class Media {
public static void main(String []agrgs) {
double numeros=Entrada.leiaDouble("Valor: ");
int pergunta=Entrada.leiaInt("Adicionar mais um numero 1/sim 2/não: ");
int vezes=1;
while(pergunta==1) {
numeros=Entrada.leiaDouble("Valor: ");
pergunta=Entrada.leiaInt("Adicionar mais um numero 1/sim 2/não: ");
numeros=numeros+numeros;
vezes=vezes+1;
}
while(pergunta<1||pergunta>2) {
numeros=Entrada.leiaDouble("Valor: ");
pergunta=Entrada.leiaInt("Adicionar mais um numero 1/sim 2/não: ");
numeros=numeros+numeros;
vezes=vezes+1;
}
if(pergunta==2) {
System.out.println("Media: "+(numeros/vezes));
}
}
}
Em que você precisa de ajuda?
Ao postar dúvidas, por favor, leia essas dicas:
esse algoritmo não esta funcionando corretamente
não sei onde esta meu erro, se é na matematica ou na programação
Cara, ao colocar codigo, ultilize as tags code.
Quando se ultiliza || ou &&, colocasse parenteses:
Veja:
public class Media {
public static void main(String []agrgs) {
double numeros = Entrada.leiaDouble("Valor: ");
int pergunta = Entrada.leiaInt("Adicionar mais um numero 1/sim 2/não: ");
int vezes = 1;
while (pergunta == 1) {
numeros=Entrada.leiaDouble("Valor: ");
pergunta=Entrada.leiaInt("Adicionar mais um numero 1/sim 2/não: ");
numeros=numeros+numeros;
vezes = vezes + 1;
}
while ((pergunta < 1) || (pergunta > 2)) { // coloque os parenteses nas duas expressões
numeros = Entrada.leiaDouble("Valor: ");
pergunta = Entrada.leiaInt("Adicionar mais um numero 1/sim 2/não: ");
numeros = numeros + numeros;
vezes = vezes + 1;
}
if (pergunta == 2) {
System.out.println("Media: " + (numeros / vezes));
}
}
}
Não entendi muito bem seu código não.
É pra que?
calcular a media de numeros, independente da quantidade dos mesmo
ex: (10+10+10+10)/4=10
se tiver uma outra sugestão de algoritmo
é bem vinda
Observe que você usou a variável números tanto para a leitura do número, quanto para a soma dos números.
Isso não dá certo, pois a cada leitura, você destrói o que a variável tinha antigamente.
Além disso, essa conta:
numeros = numeros + numeros;
Vai simplesmente multiplicar o valor atual de números por 2.
A lógica está quase certa. Apenas crie duas variáveis e o problema estará resolvido.
Eu não entendi muito bem o que você quis dizer.
Se poder postar um exemplo usando essas 2 variaveis.
[code]public class Media {
public static void main(String []agrgs) {
int pergunta=1;
int vezes=0;
double soma = 0;
while(pergunta==1) {
double numero=Entrada.leiaDouble("Valor: ");
soma += numero;
vezes++;
pergunta=Entrada.leiaInt("Adicionar mais um numero 1/sim 2/não: ");
}
System.out.printf("Media: %.2f%n", soma/vezes);
}
}
[/code]
Ah! Uma programa para tirar médias aritméticas?!?!
Uma colega já fez isso no fórum, só não me lembro o nome dela, veja este programinha de CONSOLE:
import java.util.Scanner;
public class Medias {
public static void main (String []args) {
Scanner ler = new Scanner(System.in);
System.out.print("Digite o primeiro numero: ");
double num1 = ler.nextDouble();
System.out.print("Digite o segundo numero: ");
double num2 = ler.nextDouble();
System.out.print("Digite o terceiro numero: ");
double num3 = ler.nextDouble();
System.out.print("Digite o quarto numero: ");
double num4 = ler.nextDouble();
double media = (num1 + num2 + num3 + num4) / 4;
System.out.println("A media aritmetica e " + media);
}
}
Muito obrigado!!
Você foi de grande ajuda.
[quote=Tektron]Muito obrigado!!
Você foi de grande ajuda.[/quote]
De nada!
Ao fazer um programa matemático em java, pense como você faria no lápis e papel. Depois coloque-os em java.
Olá amigo,
também estou começando, mas da uma olhada neste código e vê se é isso que você quer!
import java.util.Scanner;
public class Media {
public static void main(String []agrgs) {
Scanner s = new Scanner(System.in);
double numeros;
double media = 0;
int pergunta;
int vezes = 0;
do {
System.out.print("Valor: ");
numeros = s.nextDouble();
media += numeros;
System.out.print("Adicionar mais um numero 1/sim 2/não: ");
pergunta = s.nextInt();
vezes++;
} while ((pergunta == 1) || (pergunta < 1) || (pergunta > 2));
if(pergunta == 2) {
System.out.println("Media: " +(media/vezes));
}
}
}