Ir para conteúdo

POWERED BY:

Arquivado

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

carolina89

no exercício envolvendo Pascal

Recommended Posts

Olá pessoal..

sou nova por aqui, e este será meu primeiro tópico (já com dúvida enorme).

Estou com um determinado problema envolvendo um exercício.

O enunciado é:

Implementar em Pascal um cadastro de alunos no qual seja possível:

1: Cadastrar um aluno

2: Localizar a ficha de um aluno por seu R.A

3: Alterar o cadatro de um aluno

4: Remover um aluno do cadastro

5: Listar os nomes dos alunos aprovado e reprovados, sua respectiva média percentual de faltas e a média geral dos respectivos alunos.

 

Dados a serem armazenados por:

Aluno:

R.A, nome, P1, P2, P3, T, faltas.

 

Dados gerais para serem informados para o programa:

percentual máximo de faltas permitido ( 75%)

nota minima para aprovação ( > ou = 6)

número total de aulas (40 h)

 

Obs : Cálculo da média: 0.1 P1 + 0.3 P2 + 0.4 P3 + 0.2 T

 

Alguém poderia me ajudar a resolvê-lo e passar em Pascal?

Não estou conseguindo resolver..

 

Aguardo uma ajuda http://forum.imasters.com.br/public/style_emoticons/default/grin.gif

 

 

Bjs

Carolina

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso foi o que eu consegui contruir:

 

Program Cadastro

uses crt;

type TFicha: record

nome: string;

R.A: integer;

P1 : double;

P2 : double;

P3 : double;

T: double;

Faltas: integer;

end;

Type T Cadastro : array [1..100];

 

var

 

n,i : integer;

NFichas: integer;

Fichario of fichas : Array [1..100];

Fichario: T Cadastro;

opção: char;

 

Procedure Cadastrar (var z : T cadastro, var controle: integer);

 

Begin

If controle < 101 then

begin

Controle := controle + 1;

Readln(z[controle].nome);

Readln(z[controle].R.A);

Readln(z[controle].P1);

Readln(z[controle].P2);

Readln(z[controle].P3);

Readln(z[controle].T);

Readln(z[controle].faltas);

end;

 

Else

write('Número de cadastros esgotado!');

 

Begin {Program Principal}

opção := '1'

Nfichas := 0;

 

while ( opção = '1') do

writeln ('Insira o número de : ');

begin

readln(n);

for i := 1 to n do

Cadastrar ( Fichario, N Fichas);

readln (opção);

end;

 

 

fuction Remove ficha( ind: integer; N fichas: integer; var Fichario: Cadastro): boolean;

 

var

resultado: boolean;

 

Begin

If ((ind <1) or (ind> N fichas)) then

Resultado := false;

writeln ('Remoção falhou!')

 

Else

Begin

Fichario[ind]. Nome:= Fichario [ N fichas]. Nome];

Fichario[ind]. R.A := Fichario [ N fichas]. R.A];

Fichario[ind]. P1:= Fichario [ N fichas]. P1];

Fichario[ind]. P2:= Fichario [ N fichas]. P2];

Fichario[ind]. P3:= Fichario [ N fichas]. P3];

Fichario[ind]. T:= Fichario [ N fichas]. T];

Fichario[ind]. Faltas:= Fichario [ N fichas]. Faltas];

N fichas := N fichas - 1;

end;

 

Remove Fichas:= Resultado;

writeln('Remoção executada com sucesso!');

end;

 

 

Há muitas falhas e eu não consegui construir funções para localizar, alterar o cadastro e listar os nomes.

O R.A é um código, um registro acadêmico, como se fosse um R.G do aluno.

 

me ajudem!

 

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pense da seguinte forma:- Todo aluno tem um R.A. Isso significa que você não precisa achar um aluno pelo nome.Se você já tem a função cadastro, você já tem o R.A. do aluno. Isso quer dizer que, na função para localizar, é só você fazer um for, de 1 até o número máximo e ver se existe algum com aquele R.A. Se existir, você retorna um TRUE ou (NÃO LEMBRO COMO É EM PASCAL) retorna o nome da sua estrutura (type...).Para alterar, você pergunta qual o R.A. do aluno que desje alterar e corre atrás dele e altera.E para listar, você faz um for e um writeln.Tenta aí.

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.