Ir ao conteúdo

Posts recomendados

Postado

Eae galera, eu fiz esse algoritmo mas nao acho o erro q esta dando no programa e também nao sei como resolve-lo.Precimo q me expliquem o erro e me ajudem a resolve-lo, por favor obrigado.

Programa:

procedure Exer20;
            type
              Nomes = array[1..10] of string[10];
              Idades = array[1..10] of integer;
            var sexo,nome:Nomes;
                idade:Idades;
                N,i,idademaiordezoito,Homem25anos,Mulher35anos,Somatotalidade:integer;
                continuar:char;
            begin
              N:=0;
              for i:= 1 to 10 do
                  begin
                    writeln('Qual seu nome?'[N]);
                    readln(nome[N]);
                    writeln('Qual sua idade?'[N]);
                    readln(idade[N]);
                    writeln('Qual seu sexo? M ou F.'[N]);
                    readln(sexo[N]);
                  end;
              for i:= 1 to 10 do
                  begin
                    Somatotalidade:=idade+idade[N];                         ((((ta dando erro aqui)))
                    if (idade[N]>18) then
                         idademaiordezoito:=idade+idade[N]
                    else if (sexo[N]='M')and(idade[N]>25) then
                         Homem25anos:=idade+idade[N]
                    else if (sexo[N]='F')and(idade[N]>35) then
                         Mulher35anos:=idade+idade[N];
                  end;
              writeln('As pessoas soma das idades das pessoas maiores de idade sao,',Idademaiordezoito,'.');
              writeln('A soma da idade dos homens acima 25 anos e',Homem25anos,'.');
              writeln('A soma de todas as idades e,',Somatotalidade,'.');
              writeln('A soma da idade das mulheres acima dos 35 anos e,',Mulher35anos,'.');
              writeln('Deseja pesquisar os dados? S ou N');
              readln(continuar);
              continuar:='S';
              while continuar='S' do
                    begin
                       writeln('escreva o numero de 0 a 9 para verificar os dados.');
                       readln(N);
                       writeln( 'Nome:',nome[N],', Idade:',idade[N],' e sexo:',sexo[N],'.');
                       writeln('deseja continuar a pesquisar os dados? S ou N');
                       readln(continuar);
                     end;
              readln;
            end;

image.png.78545178cfbbdf615a3162f43a8ab182.png

 

  • Curtir 1
  • Membro VIP
Postado
19 minutos atrás, Johnatan Farias disse:

Aaaah, então eu teria q fazer isso todas as outras vezes? Com a variável 'homem25anos' e as outra? @Simon Viegas

 

Sua pergunta foi retórica! :)

adicionado 1 minuto depois

Por favor, após corrigir, poste o enunciado e o código completo para analisarmos... caso tenhas dúvidas sobre alguma parte, é só informar tb

 

No aguardo

Postado

Estou tendo problemas novamente, quando executo o algoritmo o programa me manda uma nota musical e um asterisco.

Algoritmo:

procedure Exer20;
            type
              Nomes = array[1..10] of string[10];
              Idades = array[1..10] of integer;
            var sexo,nome:Nomes;
                idade:Idades;
                N,i,idademaiordezoito,Homem25anos,Mulher35anos,Somatotalidade:integer;
                continuar:char;
            begin
              Homem25anos:=0;
              Mulher35anos:=0;
              Somatotalidade:=0;
              idademaiordezoito:=0;
              N:=0;
              for i:= 1 to 10 do
                  begin
                    writeln('Qual seu nome?'[N]);
                    readln(nome[N]);
                    writeln('Qual sua idade?'[N]);
                    readln(idade[N]);
                    writeln('Qual seu sexo? M ou F.'[N]);
                    readln(sexo[N]);
                  end;
              for i:= 1 to 10 do
                  begin
                    Somatotalidade:=Somatotalidade+idade[N];
                    if (idade[N]>18) then
                         idademaiordezoito:=idademaiordezoito+idade[N]
                    else if (sexo[N]='M')and(idade[N]>25) then
                         Homem25anos:=Homem25anos+idade[N]
                    else if (sexo[N]='F')and(idade[N]>35) then
                         Mulher35anos:=Mulher35anos+idade[N];
                  end;
              writeln('As pessoas soma das idades das pessoas maiores de idade sao,',Idademaiordezoito,'.');
              writeln('A soma da idade dos homens acima 25 anos e',Homem25anos,'.');
              writeln('A soma de todas as idades e,',Somatotalidade,'.');
              writeln('A soma da idade das mulheres acima dos 35 anos e,',Mulher35anos,'.');
              writeln('Deseja pesquisar os dados? S ou N');
              readln(continuar);
              continuar:='S';
              while continuar='S' do
                    begin
                       writeln('escreva o numero de 0 a 9 para verificar os dados.');
                       readln(N);
                       writeln( 'Nome:',nome[N],', Idade:',idade[N],' e sexo:',sexo[N],'.');
                       writeln('deseja continuar a pesquisar os dados? S ou N');
                       readln(continuar);
                     end;
              readln;
            end;

Executando:

image.thumb.png.20e860b87e02b864c112b1eff145d9a1.png

 

 

  • Membro VIP
Postado

O sei código está compilando?

 

Eu desconheço essa sintaxe:

33 minutos atrás, Johnatan Farias disse:

writeln('Qual seu nome?'[N]);

 

Esses [N] ai não tem nada a ver...

 

Tente usar algo assim:

writeln('Qual seu nome?');

 

Simplesmente remova-os...

 

Obs.: qual o compilador que está usando?

  • Membro VIP
Postado
31 minutos atrás, Johnatan Farias disse:

Você consegue ver outro erro na soma? porque ta somando tudo errado e eu n to consigo descobrir o erro

 

Por favor, poste seu código completo para analisarmos.

adicionado 2 minutos depois

Obs.: não fiz testes, mas possivelmente seja necessário INICIALIZAR AS VARIÁVEIS que acumulam os valores, ou seja, como está dentro de uma procedure, é provável que as variáveis não sejam zeradas automaticamente...

 

Ex.:

Somatotalidade:=0;

Isso para cada uma delas.

  • Membro VIP
Postado

Outra coisa. O que significa:

1 hora atrás, Johnatan Farias disse:

maiores de

Inclui os número ou não?... por exemplo, quem tem 18 é maior de idade ou não? Tem que ter cuidado com isso.

adicionado 2 minutos depois
4 minutos atrás, Johnatan Farias disse:

Eu fiz isso, tá no começo do algoritmo, aquele q eu mandei no primeiro post

Precisamos do código atual.

Postado
23 minutos atrás, Simon Viegas disse:

Outra coisa. O que significa:

Inclui os número ou não?... por exemplo, quem tem 18 é maior de idade ou não? Tem que ter cuidado com isso.

adicionado 2 minutos depois

Precisamos do código atual.

Codigo atual:

procedure Exer20;
            type
              Nomes = array[1..10] of string[10];
              Idades = array[1..10] of integer;
            var sexo,nome:Nomes;
                idade:Idades;
                N,i,idademaiordezoito,Homem25anos,Mulher35anos,Somatotalidade:integer;
                continuar:char;
            begin
              Homem25anos:=0;
              Mulher35anos:=0;
              Somatotalidade:=0;
              idademaiordezoito:=0;
              N:=1;
              for i:= 1 to 10 do
                  begin
                    writeln('Qual seu nome? ');
                    readln(nome[N]);
                    writeln('Qual sua idade? ');
                    readln(idade[N]);
                    writeln('Qual seu sexo? M ou F. ');
                    readln(sexo[N]);
                  end;
              for i:= 1 to 10 do
                  begin
                    Somatotalidade:=Somatotalidade+idade[N];
                    if (idade[N]>18) then
                         idademaiordezoito:=idademaiordezoito+idade[N]
                    else if (sexo[N]='M')and(idade[N]>25) then
                         Homem25anos:=Homem25anos+idade[N]
                    else if (sexo[N]='F')and(idade[N]>35) then
                         Mulher35anos:=Mulher35anos+idade[N];
                  end;
              writeln('As pessoas soma das idades das pessoas maiores de idade sao, ',Idademaiordezoito,'.');
              writeln('A soma da idade dos homens acima 25 anos e ',Homem25anos,'.');
              writeln('A soma de todas as idades e, ',Somatotalidade,'.');
              writeln('A soma da idade das mulheres acima dos 35 anos e, ',Mulher35anos,'.');
              writeln('Deseja pesquisar os dados? S ou N');
              readln(continuar);
              continuar:='S';
              while continuar='S' do
                    begin
                       writeln('escreva o numero de 0 a 9 para verificar os dados.');
                       readln(N);
                       writeln( 'Nome:',nome[N],', Idade:',idade[N],' e sexo:',sexo[N],'.');
                       writeln('deseja continuar a pesquisar os dados? S ou N');
                       readln(continuar);
                     end;
              readln;
            end;

 

Enunciado da questão na apostila:

"Faça um algoritmo utilizando vetores e o type, para receber os dados de 10 pessoas. Os dado a serem recebidos são: Nome, tem quer ser apenas 10 carateres, idade e sexo. Os resultados a serem mostrados são?

A -) A soma das pessoas maiores de idade:

B -) A soma das pessoas com sexo masculino e idade maior de 25 anos;

c -)A soma de todas as idade;

d -)A soma das pessoas com sexo feminino e idade maior que 35 anos;

e -) Após os resultados o usuario poderá verificar os dados quantas vezes desejar. "

  • Membro VIP
Postado

Olá.

 

1#

Você me citou:

17 minutos atrás, Johnatan Farias disse:
37 minutos atrás, Simon Viegas disse:

Outra coisa. O que significa:

Inclui os número ou não?... por exemplo, quem tem 18 é maior de idade ou não? Tem que ter cuidado com isso.

adicionado 2 minutos depois

Precisamos do código atual.

Mas não me respondeu...

 

 

 

2#

Se está usando i nos for, teria que usar o i nos vetores. Você está usando N. (use a ferramenta para substituir "[N]" por [i ]")

 

 

***

 

No aguardo.

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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!