Ir ao conteúdo

Contribuição questão em pascal quase pronta


tony101

Posts recomendados

Postado

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.

  • Membro VIP
Postado

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

Postado

Caso o autor do tópico necessite, o mesmo será reaberto, para isso deverá entrar em contato com a moderação solicitando o desbloqueio.

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...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!