Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

TCHE

[Resolvido] algoritmo

Recommended Posts

ai pessoal consegui Construir um algoritmo que leia um conjunto de dados contendo altura e sexo (MAS ou FEM) de N pessoas e

calcule e escreva:

- a maior e a menor altura do grupo e de quem é esta altura. ( Se HOMEM ou MULHER.)

- a média de altura entre as mulheres.

- O número de homens e a diferença percentual entre estes e as mulheres

mas estou com um probleminha em determinar o grupo de menor e melhor altura

so falta apenas isso.

 

CODE
var

n, cont : inteiro

mediamul, totahom, totamul : real

soma, maior, menor, altura : real

df_percent, porcen_mulher, porcen_homem : real

sexo : caracter

inicio

escreva ("entre com a quantidade de pessoas: ")

leia (n)

leia (altura)

leia (sexo)

porcen_mulher := 0

porcen_homem := 0

cont:= 1

maior := altura

menor := altura

totahom := 0

totamul := 0

repita

se (sexo = "Fem") entao

totamul := totamul + 1

soma := soma + altura

mediamul := soma / cont

senao

totahom := totahom + 1

fimse

leia (altura)

leia (sexo)

se (maior < altura) entao

maior := altura

fimse

se (menor > altura) entao

menor := altura

fimse

cont := cont + 1

ate cont = n

se (sexo = "Fem") entao

totamul := totamul + 1

soma := soma + altura

mediamul := soma / n

senao

totahom := totahom + 1

fimse

porcen_mulher := (totamul * 100)/n

porcen_homem := (totahom * 100)/n

df_percent := porcen_homem - porcen_mulher

escreva ("maior altura: ", maior, " sexo: ", sexo,". ")

escreva ("menor altura: ", menor, " sexo: ", sexo,". ")

escreva ("media entre as mulheres: ", mediamul,". ")

escreva ("total de homem: ", totahom," ")

escreva ("diferença percentual: ", df_percent,"% para os homens")

fimalgoritmo

Compartilhar este post


Link para o post
Compartilhar em outros sites

para achar a maior e menor altura você jah fez isso parecido no algoritmo anterior!!

é soh você fazer a maior_altura_mulher e a maior_altura_homem depois você compara e ve ql é maior.. o msm faça com a menor!

caso aiinda tenha duvidas.. volte a postar!

Compartilhar este post


Link para o post
Compartilhar em outros sites

assim você precisa achar a maior e a menor altura e saber de ql grupo q é você pode fazer algo assim:

criar 4 variaveis para isso, sendo assim:

real: maior_altura_homem, menor_altura_homem, maior_altura_mulher, menor_altura_mulher;
ai nas condições 'se' você ve ql a maior e menor altura dos homens e das mulheres!!

e no final você faz assim:

se (maior_altura_homem > maior_altura_mulher) então
	escreva ("A maior altura é de" + maior_altura_homem + "e ela é de um homem");
senão
	escreva ("A maior altura é de" + maior_altura_mulher + "e ela é de uma mulher");
fim_se
O msm faça para achar a menor altura!!

 

Sera q você entendeu hehe!

volte a postar xD

Compartilhar este post


Link para o post
Compartilhar em outros sites

fiz uma tentativa mas foi frustrada so fez piorar pode melhorar meu algortmo

 

CODE
var

n, cont : inteiro

mediamul, totahom, totamul : real

soma, maior, menor, altura : real

df_percent, porcen_mulher, porcen_homem : real

maior_altura_homem, menor_altura_homem : real

maior_altura_mulher, menor_altura_mulher: real

sexo : caracter

inicio

escreva ("entre com a quantidade de pessoas: ")

leia (n)

leia (altura)

leia (sexo)

porcen_mulher := 0

porcen_homem := 0

cont:= 1

maior := altura

menor := altura

totahom := 0

totamul := 0

repita

se (sexo = "Fem") entao

totamul := totamul + 1

soma := soma + altura

mediamul := soma / cont

maior_altura_mulher := maior

menor_altura_mulher := menor

senao

totahom := totahom + 1

maior_altura_homem := maior

menor_altura_homem := menor

fimse

leia (altura)

leia (sexo)

se (maior < altura) entao

maior := altura

fimse

se (menor > altura) entao

menor := altura

fimse

cont := cont + 1

ate cont = n

se (sexo = "Fem") entao

totamul := totamul + 1

soma := soma + altura

mediamul := soma / n

maior_altura_mulher := maior

menor_altura_mulher := menor

senao

totahom := totahom + 1

maior_altura_homem := maior

menor_altura_homem := menor

fimse

se (maior_altura_homem > maior_altura_mulher)entao

escreva ("A maior altura é de", maior_altura_homem, " e ela pertenci ao grupo dos homem", ". ")

senao

escreva ("A maior altura é de", maior_altura_mulher, " e ela pertenci ao grupo das mulher",". ")

fimse

se (menor_altura_homem < menor_altura_mulher) entao

escreva ("A menor altura é de", menor_altura_homem, " e ela pertenci ao grupo dos homem", ". ")

senao

escreva ("A menor altura é de", menor_altura_mulher, " e ela pertenci ao grupo das mulher",". ")

fimse

porcen_mulher := (totamul * 100)/n

porcen_homem := (totahom * 100)/n

df_percent := porcen_homem - porcen_mulher

escreva ("media entre as mulheres: ", mediamul,". ")

escreva ("total de homem: ", totahom," ")

escreva ("diferença percentual: ", df_percent,"% para os homens")

fimalgoritmo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha TCHE seu algoritmo esta bem confuso!!

vamos por partes, pra você entender!!

 

* a maior e a menor altura do grupo e de quem é esta altura. ( Se HOMEM ou MULHER.)

 

Leia (n_pessoas);
Leia (sexo);
Leia (altura);
maior_altura_mulher <- altura;
menor_altura_mulher <- altura;
maior_altura_homem <- altura;
menor_altura_homem <- altura;
Para i de 1 até n_pessoas-1 faça
  Se (sexo="F") então
	Se (maior_altura_mulher > altura) então
	   maior_altura_mulher <- altura;
	Fim_se
	Se (menor_altura_mulher < altura) então
	   menor_altura_mulher <- altura;
	Fim_se
  Senão
	Se (maior_altura_homem > altura) então
	   maior_altura_homem <- altura;
	Fim_se
	Se (menor_altura_homem < altura) então
	   menor_altura_homem <- altura;
	Fim_se
  Fim_se
  Leia (sexo);
  Leia (altura);
Fim_enquanto;
Se (maior_altura_mulher > maior_altura_homem) então
  Escreva("A maior altura é de " + maior_altura_mulher + "e é de uma mulher");
Senão
  Escreva("A maior altura é de " + maior_altura_mulher + "e é de uma mulher");
Fim_se
Se (menor_altura_mulher < menor_altura_homem) então
  Escreva("A menor altura é de " + maior_altura_mulher + "e é de uma mulher");
Senão
  Escreva("A menor altura é de " + maior_altura_mulher + "e é de uma mulher");
Fim_se

Compartilhar este post


Link para o post
Compartilhar em outros sites

var
n, cont : inteiro
mediamul, totahom, totamul : real
soma, maior, menor, altura : real
df_percent, porcen_mulher, porcen_homem : real
maior_altura_homem, menor_altura_homem : real
porcen_mulher := 0
porcen_homem := 0
cont:= 1

aqui ele está recebendo valores "0" pq?? você pode fazer o calculo na hora q ler, isso se você não quiser trabalhar com matriz

var
   n, cont : inteiro
   maior, menor, altura : real
   aux, maior_homem, menor_homem : real
   maior_mulher, menor_mulher: real
   sexo,sexo_m, sexo_M : caracter
inicio

escreva ("entre com a quantidade de pessoas: ")
 leia (n)
maior_homem := 0
menor_homem := 100
maior_mulher := 0
menor_Mulher := 100
 para cont := 1 até n faça
	escreva ("Sexo")
	leia (sexo)
	se sexo = "MAS" então
	  inicio
		 escreva ("entre com a Altura do homem")
		 leia (aux)
			 se aux > maior_homem então
				 maior_homem := aux
			 se aux < menor_homem então
				 menor_homen := aux
	  fim-se
	  se sexo = "FEM" então
	  inicio
		 escreva ("entre com a Altura do homem")
		 leia (aux)
			 se aux > maior_mulher então
				 maior_mulher:= aux
			 se aux < menor_mulher então
				 menor_mulher := aux
	  fim-se
cont := cont + 1

se maior_homem > maior_mulher então
   maior := maior_homem
   sexo_M := "MAS"
senão
	maior := maior_mulher
	 sexo_M := "FEM"
fim-se
se menor_homem > menor_mulher então
	menor := menor_mulher
	sexo_m := "FEM"
senão
	menor := menor_homem
   sexo_m := "MAS"
fim-se
agora é só imprimir como desejar... para que as variavéis "mediamul, totahom, totamu,soama, df_percent, porcen_mulher, porcen_homem???

Compartilhar este post


Link para o post
Compartilhar em outros sites

ok, mais ainda a um probleminha ai

imagine se a menor altura for citado por primeiro

ele vai dar menor altura tanto pra mulher quanto para os homens

 

 

 

 

Olha TCHE seu algoritmo esta bem confuso!!

vamos por partes, pra você entender!!

 

* a maior e a menor altura do grupo e de quem é esta altura. ( Se HOMEM ou MULHER.)

 

Leia (n_pessoas);
Leia (sexo);
Leia (altura);
maior_altura_mulher <- altura;
menor_altura_mulher <- altura;
maior_altura_homem <- altura;
menor_altura_homem <- altura;
Para i de 1 até n_pessoas-1 faça
  Se (sexo="F") então
	Se (maior_altura_mulher > altura) então
	   maior_altura_mulher <- altura;
	Fim_se
	Se (menor_altura_mulher < altura) então
	   menor_altura_mulher <- altura;
	Fim_se
  Senão
	Se (maior_altura_homem > altura) então
	   maior_altura_homem <- altura;
	Fim_se
	Se (menor_altura_homem < altura) então
	   menor_altura_homem <- altura;
	Fim_se
  Fim_se
  Leia (sexo);
  Leia (altura);
Fim_enquanto;
Se (maior_altura_mulher > maior_altura_homem) então
  Escreva("A maior altura é de " + maior_altura_mulher + "e é de uma mulher");
Senão
  Escreva("A maior altura é de " + maior_altura_mulher + "e é de uma mulher");
Fim_se
Se (menor_altura_mulher < menor_altura_homem) então
  Escreva("A menor altura é de " + maior_altura_mulher + "e é de uma mulher");
Senão
  Escreva("A menor altura é de " + maior_altura_mulher + "e é de uma mulher");
Fim_se

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom entaum pensando pelo lado das possibilidades humanas da pra fazer o algoritmo assim:

maior_altura_mulher <- 0.0;
menor_altura_mulher <- 4.0;
maior_altura_homem <- 0.0;
menor_altura_homem <- 4.0;
Leia (n_pessoas);
Para i de 1 até n_pessoas faça 
   Leia (sexo);
   Leia (altura);
 .
 .
 .
Fim_para
Bom da pra fazer assim pq pense comigo.. ninguem vai ser menor q 0.0 e tbm num vai ter ninguem de 4.0 metros neh HEUAHEuheu..ow seja qlqr valor vai substituir esses!!

..

tenta assim.. qlqr coisa c quiser de outro jeito, a gente tenta implementar um flag ow coisa do tipo!

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Voce pode impor limites como o QuitZAUMMM falou, isso funciona.

 

Voce pode também atribuir a menor e maior a primeira altura lida do respectvo sexo.

Faça isso quando entrar no laço. O importante é identificar a primeira passagem. Veja:

 

 

Para i de 1 até n_pessoas-1 faça
   leia (altura)
   leia (sexo)

   se (sexo="FEM") e (totalmul=0) entao
	  maior_altura_mulher := altura
	  menor_altura_mulher := altura
   fimse

   se (sexo="MAS") e (totalhom=0) entao
	  maior_altura_homem := altura
	  menor_altura_homem := altura
   fimse

Obs: As variáveis que contam a quantidade de homens e mulheres pode ser inteira e não esqueça de atribuir zero a elas antes de iniciar o laço.

 

Agora é só continuar fazendo as comparações e alterar o valor das variáveis se necessário como já foi discutido.

 

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

TCHE qnd concluir esta primeira parte do algoritmo qro q entenda q a segunda será + ow - assim:

 

* - a média de altura entre as mulheres.

 

a kd vez q ele q ele verificar a condição de que 'se sexo = "F" então'

ai você coloca um somador e um contador para q no final você possa saber a média.. de modo q fique parecido com isso:

Se sexo="F" então
	  soma_alt_f <- soma_alt_f + altura;
	  cont_f <- cont_f + 1;
	  . 
	  .
   Fim_se
   .
   .
Fim_enquanto
media_f <- soma_alt_f / cont_f;
.

Qlqr coisa volte a postar!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.