Ir ao conteúdo
  • Cadastre-se

salvar dados de programa em pascal para que els possam ser usados na proxima execução


Will702

Posts recomendados

olá amigos,estou aprendendo pascal,e desenvolvi um programa onde um professor pode achar um aluno pelo seu numero de chamada, controlar o numero de faltas e a nota final do aluno.

eu comecei a trabalhar nesse código faz muito pouco tempo,hoje,e sei que ainda não nao é suficientemente bom para fazer o que eu penava em fazer com ele,mas ainda tenho muito o que melhorar.

mas a minha maior duvida no momento é se posso salvar dados de uma execução.

por exemplo,se um professor editar a nota de pedro,queria que ela ficasse salva,e toda vez que o professor abrisse o arquivo onde foi salva ele pudesse ver as notas que ele editou entes,edita-las novamente e também adicionar outras.entenderam?

até agora o código esta assim;(acho que esse código poderia ser simplificado)

Program InfoAlunos ;

Procedure notaEfalta;
var notab1, notab2, notab3, notab4, notab5, notatot, numfaltasb1, numfaltasb2, numfaltasb3, numfaltasb4, numfaltasb5, faltastot : integer;

begin

writeln ('Digite o numero de faltas do primeiro bimestre do aluno;');
readln(numfaltasb1);
writeln('Digite o numero de faltas do segundo bimestre do aluno; ');
readln(numfaltasb2);
writeln('Digite o numero de faltas do terceiro bimestre do aluno; ');
readln(numfaltasb3);
writeln('Digite o numero de faltas do quarto bimestre do aluno;');
readln(numfaltasb4);
writeln('Digite o numero de faltas do quinto bimestre do aluno; ');
readln(numfaltasb5);
faltastot:=numfaltasb1+numfaltasb2+numfaltasb3+numfaltasb4+numfaltasb5;
writeln ('O numero total de faltas do aluno é ' ,faltastot,'.');

writeln('Digite a nota do aluno no primeiro bimestre;');
readln(notab1);
writeln('Digite a nota do aluno no segundo bimestre;');
readln(notab2);
writeln('Digite a nota do aluno no terceiro bimestre;');
readln(notab3);
writeln('Digite a nota do aluno no quarto bimestre;');
readln(notab4);
writeln('Digite a nota do aluno no quinto bimestre;');
readln(notab5);
notatot:= notab1+notab2+notab3+notab4+notab5;
writeln('A nota final do aluno é ' ,notatot,';');
writeln('O aluno teve um total de ' ,faltastot, ' faltas e ' ,notatot, ' pontos no final do ano');
writeln('Precione enter para finalizar o programa.');
end;

var Numero1, Numero2, Numero3, Numero4, Numero5, numdig : real;
Nome1, Nome2, Nome3, Nome4, Nome5, alunosol, alunosolicitado : string [30];

begin

Numero1:=01;
Numero2:=02;
Numero3:=03;
Numero4:=04;
Numero5:=05;
Nome1:= 'Fernando';
Nome2:='Lia';
Nome3:='Marcos';
Nome4:='Vitoria';
Nome5:='Viviane';
writeln ('Digite o numero do aluno que deseja ter acesso');
readln(numdig);
if(numdig=Numero1 ) then
writeln('O aluno e ' ,Nome1);
if(Nome1='Fernando') then
alunosolicitado:='Fernando' ;

if (numdig=Numero2) then
writeln('o aluno solicitado é ' ,Nome2,'.');
if(Nome2='Lia') then
alunosolicitado:='Lia';

if (numdig=Numero3) then
writeln ('O aluno solicitado é ' ,Nome3,'.');
if(Nome3='Marcos') then
alunosolicitado:='Marcos';

if (numdig=Numero4) then
writeln ('O aluno solicitado é ' ,Nome4,'.');
if(Nome4='Vitoria') then
alunosolicitado:='Vitoria';

if (numdig=Numero5) then
writeln ('O aluno solicitado é ' ,Nome5,'.');
if(Nome5='Viviane') then
alunosolicitado:='Viviane';

alunosol:=alunosolicitado ;

notaEfalta;

end.

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

olá amigos,estou aprendendo pascal,e desenvolvi um programa onde um professor pode achar um aluno pelo seu numero de chamada, controlar o numero de faltas e a nota final do aluno.

eu comecei a trabalhar nesse código faz muito pouco tempo,hoje,e sei que ainda não nao é suficientemente bom para fazer o que eu penava em fazer com ele,mas ainda tenho muito o que melhorar.

mas a minha maior duvida no momento é se posso salvar dados de uma execução.

por exemplo,se um professor editar a nota de pedro,queria que ela ficasse salva,e toda vez que o professor abrisse o arquivo onde foi salva ele pudesse ver as notas que ele editou entes,edita-las novamente e também adicionar outras.entenderam?

até agora o código esta assim;(acho que esse código poderia ser simplificado)

Program InfoAlunos ;

Procedure notaEfalta;

var notab1,notab2,notab3,notab4,notab5,notatot,numfaltasb1,numfaltasb2,numfaltasb3,numfaltasb4,numfaltasb5,faltastot :integer;

begin

writeln ('Digite o numero de faltas do primeiro bimestre do aluno;');

readln(numfaltasb1);

writeln('Digite o numero de faltas do segundo bimestre do aluno; ');

readln(numfaltasb2);

writeln('Digite o numero de faltas do terceiro bimestre do aluno; ');

readln(numfaltasb3);

writeln('Digite o numero de faltas do quarto bimestre do aluno;');

readln(numfaltasb4);

writeln('Digite o numero de faltas do quinto bimestre do aluno; ');

readln(numfaltasb5);

faltastot:=numfaltasb1+numfaltasb2+numfaltasb3+numfaltasb4+numfaltasb5;

writeln ('O numero total de faltas do aluno é ' ,faltastot,'.');

writeln('Digite a nota do aluno no primeiro bimestre;');

readln(notab1);

writeln('Digite a nota do aluno no segundo bimestre;');

readln(notab2);

writeln('Digite a nota do aluno no terceiro bimestre;');

readln(notab3);

writeln('Digite a nota do aluno no quarto bimestre;');

readln(notab4);

writeln('Digite a nota do aluno no quinto bimestre;');

readln(notab5);

notatot:= notab1+notab2+notab3+notab4+notab5;

writeln('A nota final do aluno é ' ,notatot,';');

writeln('O aluno teve um total de ' ,faltastot, ' faltas e ' ,notatot, ' pontos no final do ano');

writeln('Precione enter para finalizar o programa.');

end;

var Numero1,Numero2,Numero3,Numero4,Numero5,numdig:real;

Nome1,Nome2,Nome3,Nome4,Nome5,alunosol,alunosolicitado:string [30] ;

begin

Numero1:=01;

Numero2:=02;

Numero3:=03;

Numero4:=04;

Numero5:=05;

Nome1:= 'Fernando';

Nome2:='Lia';

Nome3:='Marcos';

Nome4:='Vitoria';

Nome5:='Viviane';

writeln ('Digite o numero do aluno que deseja ter acesso');

readln(numdig);

if(numdig=Numero1 ) then

writeln('O aluno e ' ,Nome1);

if(Nome1='Fernando') then

alunosolicitado:='Fernando' ;

if (numdig=Numero2) then

writeln('o aluno solicitado é ' ,Nome2,'.');

if(Nome2='Lia') then

alunosolicitado:='Lia';

if (numdig=Numero3) then

writeln ('O aluno solicitado é ' ,Nome3,'.');

if(Nome3='Marcos') then

alunosolicitado:='Marcos';

if (numdig=Numero4) then

writeln ('O aluno solicitado é ' ,Nome4,'.');

if(Nome4='Vitoria') then

alunosolicitado:='Vitoria';

if (numdig=Numero5) then

writeln ('O aluno solicitado é ' ,Nome5,'.');

if(Nome5='Viviane') then

alunosolicitado:='Viviane';

alunosol:=alunosolicitado ;

notaEfalta;

end.

Link para o comentário
Compartilhar em outros sites

Amigo, antes de tudo eu começaria estudando laços de repetições,vetores e matrizes. Com eles você diminuiria em pelo menos 50% seu código. Quanto a arquivos existem basicamente arquivos de texto e arquivos de tipo definido.

Vou te passar alguns comandos para tratamento de arquivos de texto;


var F:text; //variavel que armazenara na memoria o conteudo do arquivo
Fn:string;//localização do arquivo
S:string;
begin
Fn:='dados.txt';
assign(F,Fn); //associa a variavel ao local fisico do arquivo;
rewrite(F);{se o arquivo nao existir então cria.Caso exista é sobrescrito e seu conteudo perdido}
reset(F);{abre o arquivo e posiciona o cursor no inicio dos dados. Se ele nao existir, então retorna um erro de I/O;}
append(F);//abre o arquivo e posiciona o cursor no fim dos dados;
Readln(F,S);//le a linha toda, armazenando em S e passa para a proxima linha;
read(F,S);//le apenas um caractere e passa para o proximo;
close(F);//fecha o arquivo;

end.

Existe o EOF(F) que indica se o cursor está apontando para o final do arquivo.Mas fica como curiosidade se quiser saber mais sobre ele basta pedir.Abraço

Link para o comentário
Compartilhar em outros sites

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

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!