Ir ao conteúdo
  • Cadastre-se

Como fazer programas com arquivo e unit em Pascal?


Visitante: Jonnatas CCUFS

Posts recomendados

Visitante: Jonnatas CCUFS
 

Aí galera, por favor me ajudem!

alguem sabe como resolver o seguinte problema em pascal?

1) Escrever um programa Pascal para ler os dados dos alunos da disciplina Programação Imperativa (A0), onde para cada aluno deverão ser fornecidas as seguintes informações: matrícula, 3 notas e a frequência. O programa deverá calcular a média e a situação final de cada aluno. O programa deverá fazer os seguintes testes e determinações:

- Testar se o número de matrícula é válido (só tem algarismos)

- Procurar o nome do aluno num arquivo contendo a matrícula e o nome do aluno

- Validar as notas e freqüência digitadas de cada aluno

- Calcular a média e a situação final (AP, RM ou RF)

- Em caso de erro mandar digitar de novo

Criar uma Unit contendo os seguintes subprogramas:

- Validação do número de matrícula (8 dígitos)

- Validação das notas (0.0 a 10.0) e da freqüência (0 a 100%)

- Cálculo da média e situação final (AP, RM ou RF)

Criar um arquivo ALUNOS.TXT contendo a matrícula e o nome do aluno (30 caracteres). Para cada aluno digitado o programa deverá imprimir a matrícula, o nome, as 3 notas, a média, a freqüência e a situação final. O valor de N deverá ser lido.

lembrando que o arquivo com os dados da turma é pra ser buscado externamente!

Att: Jonnatas Dias

Bacharelando em Ciência da Computação - UFS

Técnico em Montagem e Manutenção de Micros e Redes

Desde Já agradecido!

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Aí galera, por favor me ajudem!

alguem sabe como resolver o seguinte problema em pascal?

1) Escrever um programa Pascal para ler os dados dos alunos da disciplina Programação Imperativa (A0), onde para cada aluno deverão ser fornecidas as seguintes informações: matrícula, 3 notas e a frequência. O programa deverá calcular a média e a situação final de cada aluno. O programa deverá fazer os seguintes testes e determinações:

- Testar se o número de matrícula é válido (só tem algarismos)

- Procurar o nome do aluno num arquivo contendo a matrícula e o nome do aluno

- Validar as notas e freqüência digitadas de cada aluno

- Calcular a média e a situação final (AP, RM ou RF)

- Em caso de erro mandar digitar de novo

Criar uma Unit contendo os seguintes subprogramas:

- Validação do número de matrícula (8 dígitos)

- Validação das notas (0.0 a 10.0) e da freqüência (0 a 100%)

- Cálculo da média e situação final (AP, RM ou RF)

Criar um arquivo ALUNOS.TXT contendo a matrícula e o nome do aluno (30 caracteres). Para cada aluno digitado o programa deverá imprimir a matrícula, o nome, as 3 notas, a média, a freqüência e a situação final. O valor de N deverá ser lido.

lembrando que o arquivo com os dados da turma é pra ser buscado externamente!

Att: Jonnatas Dias

Bacharelando em Ciência da Computação - UFS

Técnico em Montagem e Manutenção de Micros e Redes

Desde Já agradecido!

Olá,

alguem sabe como resolver o seguinte problema em pascal?

Sim. Eu por exemplo... problema resolvido? :rolleyes:

Brincadeiras a parte... Qual a sua dúvida? O quê já conseguiu fazer?

Sugestão: Comece a fazer (caso ainda não tenha) um programa com as mesmas características, só que usando somente a memória, ou seja, sem units (usando procedimentos contidos no próprio programa) e sem arquivos de texto (utilizando vetores (array)).

Basicamente o uso de unit é será uma questão de "realocamento dos procedimentos para outro arquivo"..., ou seja, os comandos estarão fora do seu código, e logo deveram ser carregado pelo uses. É como se a unit se encorporasse ao seu código! (o compilador fará um link com.. ah! não vamos entrar em detalhes). E a questão do arquivo é que em vez de usar a memória, o programa "persistirá os dados" no HD, ou seja, após o programa ser carregado os dados cadastrados poderão ser acessados.

Para fazer uma coisa e outra (criar uma unit com os comando e persistir os dados um txt) será necessário que um programa já feito.......

Obs.: De certo modo o programa "já pode ser feito pensando na unit e com os dados e comando já ajustados para arquivos de texto", mas como "não temos nada ainda".. fica a sugestão..

Abaixo um exemplo de uma base:

uses
CRT; {carrega a unit CRT para usar os comando ReadKey, ClrScr, TextColor etc}
type
t_Aluno = record
nome :string[30]; {30 caracteres}
matricula :string[6];
notas :real; {fração separada por "."}
frequencia :integer;
end;

vet_Alunos = array [1..10] of t_Aluno;
var
ALUNOS :vet_Alunos;

BEGIN
{EX. DE ACESSO AO ARRAY}
alunos[1].nome:='Forum Clube do Hardware';
writeln(alunos[1].nome);
ReadKey; {pause antes de fechar}
END.

No aguardo

Abraços

Link para o comentário
Compartilhar em outros sites

Visitante: Jonnatas CCUFS
 

Desconsiderando a brincadeira do inicio, vou tentar aplicar o que você falou no programa. Se conseguir depois escrevo agradecendo!

brincadeira! já estou agradecido mesmo que nao consiga!

rsrs.:D

Link para o comentário
Compartilhar em outros sites

  • 3 semanas depois...
Visitante: Jonnatas CCUFS
 

Devolvendo a ajuda...

para outros desesperados assim como eu estava aí vai o código da UNIT!

unit <o nome que você quiser>;
interface
var media: real;
situacao: string;
procedure mediasit(n1,n2,n3,frequencia: real);
function validacaonota(n1,n2,n3,frequencia:real):boolean;
function valmatricula(numeroid: string): boolean;
implementation
procedure mediasit(n1,n2,n3,frequencia: real);
begin
media:=(n1+n2+n3)/3;
if (media>=5)and (frequencia>=75) then
situacao:='AP'
else if media<5 then
situacao:='RM'
else if frequencia<75 then
situacao:='RF';
end;
function validacaonota(n1,n2,n3,frequencia:real):boolean;
begin
if (n1<=10) and (n1>=0) and (n2<=10) and (n2>=0)and (n3<=10) and (n3>=0)and (frequencia >=0) and (frequencia <=100) then
validacaonota:=true
else
validacaonota:=false;
end;

function valmatricula(numeroid: string): boolean;
var i: integer;
x: set of char;
begin
x:=['0'..'9'];
if length (numeroid)=8 then
begin
for i:=1 to 8 do
if numeroid[i] in x then
valmatricula:=true
else
valmatricula:=false
end
else
valmatricula:=false;
end;
end.

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!