Ir ao conteúdo
  • Cadastre-se

Contribuição questão em pascal quase pronta


tony101

Posts recomendados

Tem-se um conjunto de dados de dados contendo a altura e o sexo (M ou F) de 20 pessoas. Fazer um algoritmo que calcule e escreva: a média da altura das mulheres;

Ja fiz:


PROGRAM ALTURA;
USES CRT;

VAR
I,QUANT_F: INTEGER;
MEDIA_ALTF,SOMAALT_F, ALT:REAL;
SEXO: CHAR;

BEGIN
QUANT_F:=0;
SOMAALT_F:=0;

FOR I:= 1 TO 2 DO
BEGIN
WRITELN ('DIGITE SUA ALTURA');
READLN (ALT);
WRITELN ('INFORME SEU SEXO, F OU M');
READLN (SEXO);
IF SEXO = 'F' THEN
QUANT_F:=QUANT_F+1;
SOMAALT_F:= ALT+1;
END;

MEDIA_ALTF:= SOMAALT_F/QUANT_F;

WRITELN ('A MEDIA DE ALTURA DAS MULHERES é:', MEDIA_ALTF:2:2);
READKEY;
END.

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Tem-se um conjunto de dados de dados contendo a altura e o sexo (M ou F) de 20 pessoas. Fazer um algoritmo que calcule e escreva: a média da altura das mulheres;

Ja fiz:


PROGRAM ALTURA;
USES CRT;

VAR
I,QUANT_F: INTEGER;
MEDIA_ALTF,SOMAALT_F, ALT:REAL;
SEXO: CHAR;

BEGIN
QUANT_F:=0;
SOMAALT_F:=0;

FOR I:= 1 TO 2 DO
BEGIN
WRITELN ('DIGITE SUA ALTURA');
READLN (ALT);
WRITELN ('INFORME SEU SEXO, F OU M');
READLN (SEXO);
IF SEXO = 'F' THEN
QUANT_F:=QUANT_F+1;
SOMAALT_F:= ALT+1;
END;

MEDIA_ALTF:= SOMAALT_F/QUANT_F;

WRITELN ('A MEDIA DE ALTURA DAS MULHERES é:', MEDIA_ALTF:2:2);
READKEY;
END.

Olá,

tony101, existe dois errinhos.

1) Soma das alturas somente das mulheres

A "soma das alturas das mulheres" está sendo feita de modo errado, pois independentemente do sexo escolhido, a altura está sendo somada!!!

IF SEXO = 'F' THEN
QUANT_F:=QUANT_F+1; {só essa linha pertence ao "if"}
SOMAALT_F:= ALT+1;

---

Alguns comandos como "if", "for", "while", etc, só se associam a uma instrução, ou seja, somente um comando será "protegido" pelo "if". (o outro será executado INDEPENDENTEMENTE do resultado do "if", já que vem logo após).

Se for necessário associar mais de uma instrução, basta colocar um "begin/end", assim em vez de associar "um único comando", estará associando a um "bloco de comandos".

Veja

IF SEXO = 'F' THEN
BEGIN
QUANT_F:=QUANT_F+1;
SOMAALT_F:= ALT+1;
END;

Desta forma, as duas linhas "estarão protegidas pelo 'if'".

2) Como somar as alturas

SOMAALT_F:= ALT+1;

Da mesma forma que a "quantidade" é atualizada, sendo como "valor atual + 1", para ter se ter a soma deveria ser "soma atual + valor novo".

SOMAALT_F:= SOMAALT_F+ALT;

***

Qualquer dúvida é só postar

Abraços

Link para o comentário
Compartilhar em outros sites

Arquivado

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

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...