Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Pascal, работа с файлами.

65K
22 декабря 2010 года
imedved
1 / / 22.12.2010
Составить программу создания файла, содержащего сведения об объектах для варианта задания. Программа должна обеспечить ввод исходных данных с клавиатуры, запись исходной информации в файл, чтение и вывод на экран созданного файла. Выполнить программу обработки файла.
Имя объекта: Студент;
Поля записи: ФИО студента, группа, оценки по 4 экзаменам;
Задачи обработки: Подсчитать и вывести на экран средний балл, полученные каждым студентом группы X.
Нужно сделать без использования массивов.

Вот попробовал сделать задание:
Код:
program lab_10;
uses crt;
type
 book=record
        fio: string[30];
       group: string[20];
       score: integer;
      end;
 data_b=array[1..100] of book;
var
 db: data_b;
 db_zero: data_b;
 kol_vo,oper: integer;
 ext: boolean;
 f: text;

procedure IN_1 (var m: data_b; var a: integer);
var i:integer;
begin
 m:=db_zero;
 clrscr;
 write ('Введение количество записей: ');
 readln(a);
 clrscr;
 for i:=1 to a do
  with m do
  begin
   write ('ФИО: '); readln(fio);
   write ('Группа: '); readln(group);
   write ('Оценки: '); readln(score);
   clrscr;
  end;
end;

procedure OUT (var m: data_b; a: integer);
var i:integer;
begin
 clrscr;
 writeln ('Вывод данных: ');
 for i:=1 to a do
  with m do
  writeln(fio,' ',group,' ',score);
 repeat until keypressed;
end;

procedure OBR;

Вычислить среднее арифметическое по 4 экзаменам. Не знаю как реализовать. Без массивов.



 writeln ('обработка выполнена');
 readln;
 clrscr;
end;

procedure info (var a: integer);
begin
 clrscr;
 writeln ('1-ввести записи');
 writeln ('2-вывести записи');
 writeln ('3-обработать записи');
 writeln ('4-записать в файл');
 writeln ('5-чтение из файла');
 writeln ('6-выход');
 writeln;
 readln(a);
 clrscr;
end;

procedure file_IN (var f: text; a: integer; m: data_b);
var i: integer;
begin
 rewrite(f);
 for i:=1 to a do
 with m do
 begin
   write (f,fio,' ');
   write (f,group,' ');
   writeln (f,score,' ');
  end;
 close(f);
 write ('База Данных сохранена в файл');
 readln;
end;

procedure file_OUT (var f: text; var a: integer; var m: data_b);
var i,j,z,x: integer;
    str: string;
    ye: string[4];
begin
 m:=db_zero;
 reset(f);
 i:=0; z:=0;
 while (not eof(f)) do
 begin
  i:=i+1;
  with m do
  begin
   readln(f,str);
   for j:=1 to length(str) do begin
    if (str[j]<>' ') and (z=0) then fio:=fio+str[j];
    if (str[j]<>' ') and (z=1) then name:=group+str[j];
    if (str[j]<>' ') and (z=2) then score:=score+str[j];
    if str[j]=' ' then z:=z+1;
    val(score,x);
   end;
   z:=0;
   ye:='';
  end;
 end;
 close (f);
 a:=i;
 write('Файл прочитан');
 readln;
end;

begin
 assign (f,'db.txt');
 ext:=false;
 info(oper);
 repeat
  case oper of
       1: IN_1(db,kol_vo);
       2: OUT(db,kol_vo);
       3: OBR(db,kol_vo);
       4: file_IN (f,kol_vo,db);
       5: file_OUT (f,kol_vo,db);
       6: ext:=true;
  end;
  if oper<>6 then info(oper);
  clrscr;
 until ext=true;
end.

Подскажите пожалуйста что здесь не правильно и как среднее арифметическое рассчитать.
62K
30 декабря 2010 года
(zom!k
36 / / 30.12.2010
среднее арифметическое :) :

 
Код:
a[1] + a[2] + ... + a [n-1] + a [n]
___________________________________
                 n
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог