Jump to content

dificuldade em resolve pequeno programinha


GOOU
 Share

Recommended Posts

Sou principiante

e estou aprendendo a lidar com pascal.

E tentei resolver um exercicio e nao consigo faze-lo rodar.

alguem pode me ajudar?

Esse é o exercicio:

O programa deve fazer um pequeno cadastro de alunos. Os dados a serem

coletados são: nome, sexo, idade, altura e nota final do semestre.

Seu programa deve efetuar o cadastro enquanto o usuário desejar

cadastrar um novo aluno. Para saber se continua o cadastro, faça a seguinte

pergunta para o usuário: Deseja cadastrar um novo aluno? (S/N) Após encerrar

o cadastro, exiba as seguintes informações:

- a menor nota do grupo e de quem é (nome do aluno) essa nota;

- a média de idade dos homens com altura superior a 1.80;

- uma mensagem informando se tem mais homens, mais mulheres ou tem

a mesma quantidade de homens e mulheres no grupo.

E aqui esta ate onde consegui fazer:

var nome:string;
    sexo,opc,resp,cad:char;
    idade,cont,qtdm,qtdf:integer;
    altura,notaf,menornota,maior,somaidade,somaltura,somaf,mediaidade:real;

begin
   qtdm:=0;
   qtdf:=0;
   somaidade:=0;
   somaltura:=0;
   menornota:=99;
   while resp = 's' do
   begin
      write('Nome do Aluno: '); readln(nome);
      write('Sexo: '); readln(sexo);
      write('Idade: '); readln(idade);
      write('Altura: '); readln(altura);
      write('Nota final: '); readln(notaf);
      write('Deseja cadastrar um novo aluno? s/n ');
      readln(resp);
         if resp = 'n' then
            begin
               if notaf < menornota then
               begin
                  menornota:= notaf;
               end;
               if sexo = 'm' then
               begin
                  qtdm:=qtdm+1;
               end;
               if (sexo = 'm') and (altura > 1.80) then
               begin
                  somaltura:=somaltura+1;
                  somaidade:=somaidade+idade;
                  mediaidade:=somaidade/somaltura;
               end;
               if sexo = 'f' then
               begin
                  qtdf:=qtdf+1;
               end;
               if qtdm > qtdf then
               begin
                  maior:=qtdm;
                  Writeln('Tem mais homens do que mulheres.');
               end;
               if qtdF > qtdm then
               begin
                  maior:=qtdf;
                  Writeln('Tem mais mulheres do que homens.');
               end;
               if qtdm = qtdf then
               begin
                  writeln('Tem a mesma quantidade de mulheres e homens.');
               end;
            end;
   end;
   writeln('menor nota do grupo e:' ,menornota:6:2, ' Aluno: ' ,nome);

   readln;
end.
Link to comment
Share on other sites

O problema é simples: não estás a enviar os outros dados para o ecrã!

A linha writeln('menor nota do grupo e:' ,menornota:6:2, ' Aluno: ' ,nome); dá-te a informação da menor nota do grupo, se queres saber o resto da informação, tens de imprimir essa informação no ecrã.

10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Link to comment
Share on other sites

O verdadeiro problema do programa é que apenas grava os dados se o utilizador não o desejar fazer, aliás, haver uma condição para gravar os dados ou não é mal pensado, os dados deviam ser gravados sempre e a condição existir apenas para determinar quando eram parados de pedir mais dados.

Uma maneira alternativa era o programa dizer que vai gravar dados até ao nome do aluno inserido ser "0" por exemplo, o loop era corrido até o nome ser "0" e dentro desse loop os dados eram gravados se o nome não fosse "0". Finalmente quando o utilizador quisesse inseria um nome "0" e o programa devolvia os dados que gerou.

No final:

A instrução

writeln('menor nota do grupo e:' ,menornota:6:2, ' Aluno: ' ,nome);

está bem.

As instruções

Writeln('Tem mais homens do que mulheres.');
Writeln('Tem mais mulheres do que homens.');
writeln('Tem a mesma quantidade de mulheres e homens.');

estão fora do sitio

E finalmente falta fazeres a instrução que mostra a média dos homens com mais de 1.80metros

Espero que estejas esclarecido

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.