Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Задача с процедурами и файлами(что у меня не так?)

Автор: Леонид 13.01.2004 12:32

ЛЮДИ, помогите подправить прогу ПЛИИИЗ

ПОСТАНОВКА ЗАДАЧИ.
Подготовить данные об абитуриентах, поступающих в институт. Информацию о каждом студенте оформить в виде записи, содержащей следующие поля:
1. Фамилия, имя, отчество;
2. Год рождения;
3. Год окончания школы;
4. Оценки в аттестате;
5. Признак - нуждается ли в общежитии;
6. Оценки вступительных экзаменов.
Разработать программу записи подготовленных данных во внешний файл и программу обработки созданного внешнего файла.
1. Удалить из внешнего файла все записи, удовлетворяющие условию, заданному в варианте, и распечатать информацию, оставшуюся в файле.
2. Добавить N записей в конец (начало) внешнего файла и распечатать записи полученного файла

I. Из внешнего файла, содержащего исходные данные, удалить записи, соответствующие:
Абитуриентам, нуждающимся в общежитии и получившим хотя бы одну оценку 3;

П. Используя внешний файл, содержащий исходные данные, добавить N записей и распечатать:
Список абитуриентов, сдавших вступительные экзамены с двумя оценками 4 и остальными оценками 5, N=3;

Код
program Labrab6;
uses crt;
type
form=record
fio:string[45];
yofs:0..2000;
yob:0..2000;
markss:array[0..5] of integer;
home:string[3];
marksexam:array[0..5] of integer;
end;
formfile=file of form;
var
zapis:form;
filef1,filef2:formfile;

procedure 1;
var
a,b:integer;
begin
assign(filef2,'anketa2');
newrite(filef2);
if result <>0 then exit;
b:=0;
reset(filef1);
while not eof(filef1) do
begin
read(filef1,zapis);
with zapis do
begin
if (a==3) and (home='da') then
begin
write(filef2,zapis);
end;
end;
end;
close(filef1);
close(filef2);
end;

procedure 2;
var
a,b:integer;
begin
b:=0;
reset(filef1);
while not eof(filef1) do
begin
read(filef1,zapis);
whith zapis do
begin
for a:=0 to 4 do
b:=b+marksexam[a];
if (b/5)=4.6 then
writeln('FIO stydenta:',fio);
end;
end;
close(filef1);
end;


procedure 3;
var
 j:integer;
begin
 writeln;
 whith zapis do
 begin
  writeln('vvedite FIO abityrienta');
  readln(fio);
  writeln('vvedite god okonchanya wkoly')
  readln(yofs);
  writeln('vvedite god rojdenia');
  readln(yob);
  writeln('nyjdaetsa li v obshejitie(da/net)');
  readln(home);
  writeln('vvedite ozenki attestata');
  for j:=0 to 4 do
   readln(markss[j]);
  end;
 end;

var
 i, x:integer;
BEGIN
clrscr;
writeln('vvedite kol-vo abityrientov');
readln(x);
if x=0 then Exit;
assign(filef1,'anketa1');
rewrite(filef1);
if foresult<>0 then exit;
new(zapis);
for i:=1 to x do
begin
3;
write(filef1,zapis);
end;
close(filef1);
1;
writeln('vvedite kol-vo abityrientov, kotorye bydyt zapisany v papky  anket');
readln(x);
assign(filef1,'anketa1');
reset(filef1);
for i:=1 to x do
begin
3;
write(filef1,zapis);
end;
close(filef1);
dispose(zapis);
readln;
END.

Автор: AlaRic 13.01.2004 16:29

В

Код
КОД
оформляем исходники!!!!

Автор: Леонид 13.01.2004 21:33

Что-что, извините? Я в этом деле чайник еще тот.

Автор: AlaRic 13.01.2004 21:56

На код честно говоря не смотрел, но пока прокручивал окно бросилось в глаза вот это:

Код
procedure 1;

Название процедуры, как и программы, должно начинаться с буквы!