profile
Опубликовано 4 года назад по предмету Информатика от Дeниc


решите задание 3

Задание 2. Создайте файл
информации по итогам сессии result.dat. Для каждой группы каждого курса в файл заносится
информация(количество курсов и групп на курсе фиксировано, сами номера курсов и
групп в записи не хранятся):



Количество студентов
в группе;
Количество
допущенных к сессии;
Количество сдавших
на «отлично»;
Количество сдавших
на «хорошо» и «удовлетворительно»;
Количество
получивших «неудовлетворительно».


 

Задание 3. Используя прямой
доступ к файлу result.dat. (см. задание 2), выведите информацию о результатах сессии по
заданному курсу и номеру группы.

  1. Ответ
    Ответ дан Аккаунт удален
    На всякий случай, программа обрабатывающая типизированные файлы.

    type
    RC=record
    Kol:integer;
    Dop:integer;
    Kol5:integer;
    Kol43:integer;
    Kol2:integer
    end;
    var
    n:integer;
    r:RC;
    f:file of RC;
    begin
    Assign(f,'result.dat');
    Reset(f);
    // так делается проход по всему файлу
    while not Eof(f) do begin
      read(f,r);
      Writeln(r.Kol,',',r.Dop,',',R.Kol5,',',r.Kol43,',',r.Kol2);
      end;
    // а так впрямую выбирается запись с указанным номером n (нумерация от 0)
      n:=1;
      seek(f,n);
      read(f,r);
      Writeln(r.Kol,',',r.Dop,',',R.Kol5,',',r.Kol43,',',r.Kol2);
      n:=FileSize(f);
      Writeln('Число записей в файле- ',n);
    Close(f)
    end.

    1. Ответ
      Ответ дан Дeниc
      а после type это чего все.... я програмировании плохо разбираюсь... но мне придется все это объяснить, преподавателю
    2. Ответ
      Ответ дан Аккаунт удален
      В нашем случае запись содержит пять значений целого типа integer, т.е. имеет длину 2*5=10 байт. За одну операцию чтения read(f,r) мы считываем в запись типа r 10 байт, а структура записи (Kol,Dop,Kol5,Kol43,Kol2) позволяет разделить эти 10 байт на пять осмысленных переменных r.Kol, r.Dop и т.д, называемых полями записи. Указание перед именем поля отделенное от него точкой имя записи позволяет показать, что это не простая переменная, а именно поле.
    3. Ответ
      Ответ дан Дeниc
      примерно понял, спасибо