carolina89 0 Denunciar post Postado Junho 12, 2007 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
Serginho Monteiro 0 Denunciar post Postado Junho 13, 2007 você tentou fazer?O que seria um RA?Eu te ajudo...Ele exigiu como deve ser guardado os dados do aluno? Vetor? Registro? Arquivo Texto?AbraçosSerginho Compartilhar este post Link para o post Compartilhar em outros sites
carolina89 0 Denunciar post Postado Junho 14, 2007 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
AndreFonseca 0 Denunciar post Postado Junho 17, 2007 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