Algotimo estrutura de repetição[resolvido]

10 respostas
D

eu preciso fazer um algoritmo assim mais acho q estou errando em algo alguém pode me dizer?? obriigado

/*1) Foi feita uma pesquisa entre os habitantes de uma região. Foram coletados os dados de idade,
sexo (M/F) e salário. Faça um programa que calcule e mostre:
- a média dos salários do grupo;
- a maior e a menor idade do grupo;
- a quantidade de mulheres com salário até R$ 200,00;
- a idade e o sexo da pessoa que possui o menor salário.
Finalize a entrada de dados ao ser digitada uma idade negativa.*/


import java.util.*;
public class exercicio1 {
public static void main(String args[]){

//	 Seção de Declarações
 char sexo;
int idade = 0,conth,contf500,maior,menor;
double salario,ssalario = 0;
Scanner dado = new Scanner(System.in);
//	 Seção de Comandos

	conth = 0;
	contf500 = 0;
	maior = 0;
	menor = 200;
	salario = 1;

	while (idade < 0){

	System.out.println("Qual a idade do entrevistado: ");
	idade = dado.nextInt();
	System.out.println("Sexo<M/F>: ");
	sexo = dado.next().charAt(0);
	System.out.println("Salario: R$");
	salario = dado.nextDouble();

	if(salario > 0 )

	ssalario = ssalario + salario;
	conth = conth +1;

	if(idade > maior)
	maior =idade;

	if(idade < menor)
	menor = idade;

	if(salario <= 500 && sexo =='f')
	contf500 =contf500 + 1;
	}

	System.out.println("Media dos salarios do grupo: R$"+ssalario/conth);
	System.out.println("Menor idade: "+menor+" anos");
	System.out.println("Maior idade: "+maior+" anos");
	System.out.println("A quantidade de mulheres com salário até R$ 500,00 foi de: "+contf500);

}
}

10 Respostas

V

Do jeito que está nunca irá entrar no loop pois a idade está em 0 e o while vai ser enquanto a idade menor que zero, o certo seria enquanto idade maior ou igual a zero, corrija isso e estará tudo ok.

alan_pjr

Não consegui entender muito bem seu algoritmo, os nomes das variáveis estão bem confusos…
Sugestão: crie métodos separados para retornar cada informação, passando os dados inseridos como parâmetro.
E, também, nunca utilize “==” para comparar strings (como em “sexo==‘f’”), utilize sempre string.equalsIgnoreCase(‘outraString’).

Você pode postar o resultado da execução, ou erros que estejam acontecendo?

D

eu mudei o algoritmo da uma olhada

/*1) Foi feita uma pesquisa entre os habitantes de uma região. Foram coletados os dados de idade,
sexo (M/F) e salário. Faça um programa que calcule e mostre:
- a média dos salários do grupo;
- a maior e a menor idade do grupo;
- a quantidade de mulheres com salário até R$ 200,00;
- a idade e o sexo da pessoa que possui o menor salário.
Finalize a entrada de dados ao ser digitada uma idade negativa.*/


import java.util.*;
public class exercicio1 {
public static void main(String args[]){

//	 Seção de Declarações
 char sexo = 0;
int idade = 0,conth,contf200,maior,menor;
double salario,ssalario =0;
Scanner dado = new Scanner(System.in);
//	 Seção de Comandos

	conth = 0;
	contf200 = 0;
	maior = 0;
	menor = 200;
	salario = 1;

	while (salario > 0){

	System.out.println("Qual a idade do entrevistado: ");
	idade = dado.nextInt();
	System.out.println("Sexo<M/F>: ");
	sexo = dado.next().charAt(0);
	System.out.println("Salario: R$");
	salario = dado.nextDouble();
	
	if(salario > 0 ){

	ssalario = ssalario + salario;
	conth = conth +1;
	}
	if(idade > maior){
	maior =idade;
	}
	if(idade < menor){
	menor = idade;
	
	}
	if(salario <= 200 && sexo =='f'){
	contf200 =contf200 + 1;
	}
	if(idade < 0){
	System.out.println("fim programa");
	System.out.println("Media dos salarios do grupo: R$"+ssalario/conth);
	System.out.println("Menor idade: "+menor+" anos");
	System.out.println("Maior idade: "+maior+" anos");
	System.out.println("A quantidade de mulheres com salário até R$ 200,00 foi de: "+contf200);
	System.out.println("A idade da pessoa e o sexo que possui o menor salário");
	}
}
}
}
V

O enunciado da questão pede que o loop encerre quando a idade for negativa do jeito q está ai se ela for zero o loop iria encerrar.
Fora isso acho que não há nenhum problema +.

D

eu sei achar o menor salário mais não sei mostra junto a idade da pessoa q tem o maior salário e o sexo…

D

então só falta a idade da pessoa que possui o menor salário e o sexo…q nao estou conseguindo fazer

williamdasflores

Cara, não seria interessante criar uma classe “Pessoa” que receba esses atributos descritos?
Ai vc armazena as informações das Pessoas em um Array.

V

Faz assim se ñ entender dá o toque.

int menorIdade;
	int menorSexo;
	Double menorSalario = 9999.0;

	while (idade >= 0){

	System.out.println("Qual a idade do entrevistado: ");
	idade = dado.nextInt();
	System.out.println("Sexo<M/F>: ");
	sexo = dado.next().charAt(0);
	System.out.println("Salario: R$");
	salario = dado.nextDouble();

	if(salario<menorSalario){
		menorSalario = salario;
		menorSexo = sexo;
		menorIdade = idade;
	}

Depois tu printa as variáveis menorSalario, menorSexo e menorIdade.

D

consegui aqui assim da uma olhadaaa ve se ta certo?

/*1) Foi feita uma pesquisa entre os habitantes de uma região. Foram coletados os dados de idade,
sexo (M/F) e salário. Faça um programa que calcule e mostre:
- a média dos salários do grupo;
- a maior e a menor idade do grupo;
- a quantidade de mulheres com salário até R$ 200,00;
- a idade e o sexo da pessoa que possui o menor salário.
Finalize a entrada de dados ao ser digitada uma idade negativa.*/


import java.util.*;
public class exercicio1 {
public static void main(String args[]){

//	 Seção de Declarações
 char sexo = 0,menorsalsexo = 0;
int idade = 0,conth,contf200,maior,menor,menorsalidade = 0;
double salario,ssalario =0,menorsalario;
Scanner dado = new Scanner(System.in);
//	 Seção de Comandos

	conth = 0;
	contf200 = 0;
	maior = 0;
	menor = 200;
	salario = 1;
	menorsalario = 9999;

	while (salario > 0){

	System.out.println("Qual a idade do entrevistado: ");
	idade = dado.nextInt();
	System.out.println("Sexo<M/F>: ");
	sexo = dado.next().charAt(0);
	System.out.println("Salario: R$");
	salario = dado.nextDouble();
	
	if(salario > 0 ){

	ssalario = ssalario + salario;
	conth = conth +1;
	}
	if(idade > maior){
	maior =idade;
	}
	if(idade < menor){
	menor = idade;
	
	}
	if(salario <= 200 && sexo =='f'){
	contf200 =contf200 + 1;
	}
	if(salario < menorsalario){
		menorsalario = salario;
		menorsalidade = idade;
		menorsalsexo = sexo;
	}
	if(idade < 0){
	System.out.println("fim programa");
	System.out.println("Media dos salarios do grupo: R$"+ssalario/conth);
	System.out.println("Menor idade: "+menor+" anos");
	System.out.println("Maior idade: "+maior+" anos");
	System.out.println("A quantidade de mulheres com salário até R$ 200,00 foi de: "+contf200);
	System.out.println("A idade da pessoa e o sexo que possui o menor salário "+menorsalario+" foi da pessoa com idade "+menorsalidade+" do sexo "+menorsalsexo);
	}
}
}
}
V

Blz é isso ai.

Criado 9 de novembro de 2011
Ultima resposta 9 de nov. de 2011
Respostas 10
Participantes 4