boas. estava a tentar fazer um programa onde usa-se um switch e tambem usa-se funçoes. queria fazer um programa k tivesse um menu com varias opçoes (ler sequencia, calcular maximo, min etc etc). so que isto nao me funciona bem (por exemplo em ler sequencia aparece em branco, no max e min da um numero absurdo, em media da erro). podem ajudar-me? tenho o seguinte (desculpem ser um bocado extenso):
Código:
public static void main (String[] args)
{
menu();
}
static void menu()
{
int op, cont=0, soma=0;
int[] num=new int[50];
do
{
println();
println("1 - Ler a sequência");
println("2 - Escrever a sequência no ecrã");
println("3 – Calcular o máximo da sequência");
println("4 - Calcular o mínimo da sequência");
println("5 – Calcular a média da sequência");
println("6 - Detectar se é uma sequência só constituída por números pares");
println("7 - Fechar o programa");
op=readInt("Opção -> ");
println();
switch(op)
{
case 1:
{
lerSeq(num);
break;
}
case 2:
{
escrever(num, cont);
break;
}
case 3:
{
max(num, cont);
break;
}
case 4:
{
min(num, cont);
break;
}
case 5:
{
media(cont, soma);
break;
}
case 6:
{
pares(num, cont);
break;
}
case 7:
{
sair();
break;
}
}
}
while(op !=7);
}
static void lerSeq(int[] num)
{
int valor, cont=0, soma=0;
do
{
valor=readInt("Valor para a posição "+(cont+1)+": ");
if(valor>0)
{
num[cont]=valor;
soma=soma+valor;
cont++;
}
}
while (valor>0 && cont<num.length);
}
static void escrever(int [] num, int cont)
{
for(int i=0;i<cont;i++)
print(num[i]+" ");
println();
}
static void max(int[] num, int cont)
{
int max=Integer.MIN_VALUE;
for(int i=0;i<cont;i++)
if (num[i]>max)
max=num[i];
println("O maximo da sequencia é: "+max);
}
static void min(int[] num, int cont)
{
int min=Integer.MAX_VALUE;
for(int i=0; i<cont;i++)
if (num[i]<min)
min=num[i];
println("O minimo da sequencia é: "+min);
}
static void media (int cont, int soma)
{
double media;
media=(soma/cont);
println("A media da sequencia é: "+media);
}
static void pares (int[] num, int cont)
{
boolean pares=true;
for(int i=0;i<cont;i++)
if(num[i]%2 !=0)
pares=false;
if(pares=false)
println("A sequencia não é constituida apenas por numeros pares.");
else
println("A sequencia é constituida apenas por numeros pares.");
}
static void sair()
{
char c;
do
c=readChar("Tem a certeza que pretende sair (s/n)? ");
while (c!='s' && c!='S' && c!='n' && c!='N');
if(c=='S' || c=='s')
{
println("O programa terminou.");
return;
}
else
menu();
}
Última edição: