Очередь (FIFO): студенты, чьи фамилии начинаются с буквы "Б" - Turbo Pascal

Узнай цену своей работы

Формулировка задачи:

Очередь (FIFO) Все студенты, чьи фамилии начинаются с буквы "Б"

Решение задачи: «Очередь (FIFO): студенты, чьи фамилии начинаются с буквы "Б"»

textual
Листинг программы
program lab;
uses crt;
type
    dt=record
        fam:string[14];
        nam:string[14];
        grp:string[10];
        grd:integer;
        ray:array[1..5] of integer;
        end;
    pDat=^data;
    data=record
        dat:dt;
        nxt:pDat;
        end;
procedure add(var pV:pDat);
begin
with pV^.dat do
    begin
    write('fam: ');
    readln(fam);
    write('nam: ');
    readln(nam);
    write('grp: ');
    readln(grp);
    write('grd: ');
    readln(grd);
    write('ray 1: ');
    readln(ray[1]);
    write('ray 2: ');
    readln(ray[2]);
    write('ray 3: ');
    readln(ray[3]);
    write('ray 4: ');
    readln(ray[4]);
    write('ray 5: ');
    readln(ray[5]);
    end;
end;
procedure shw(var pV:pDat; n:integer);
var
    sr:real;
begin
if n=0 then
begin
with pV^.dat do
    begin
    sr:=(ray[1]+ray[2]+ray[3]+ray[4]+ray[5])/5;
    writeln('|',fam:10,'|',nam:10,'|',grp:5,'|',grd:5,'|',sr:5:1,'|');
    end
end
       else
begin
with pV^.dat do
    if fam[1]='B' then 
    begin
    sr:=(ray[1]+ray[2]+ray[3]+ray[4]+ray[5])/5;
    writeln('|',fam:10,'|',nam:10,'|',grp:5,'|',grd:5,'|',sr:5:1,'|');
    end;
end;
end;
var
    pB,pE,pA,pBS:pDat;
    i,k:integer;
begin
write('Vvedite kol-vo zapisey : ');
readln(k);
clrscr;
new(pB);
pB^.nxt:=nil;
add(pB);
pE:=pB;
for i:=1 to k-1 do
    begin
    new(pA);
    pA^.nxt:=nil;
    pE^.nxt:=pA;
    pE:=pA;
    add(pA);
    end;
pBS:=pB;
writeln('+-------------All list------------------+');
writeln('|    Fam   |   Nam    | Grp | Grd | Sr  |');
writeln('|----------+----------+-----+-----+-----|');
while pB<>nil do
    begin
    shw(pB,0);
    pB:=pB^.nxt;
    end;
writeln('+---------------------------------------+');
pB:=pBS;
writeln;writeln;
writeln('+---------------------------------------+');
writeln('| SELECT * FROM STUDENTS WHERE FAM[1]=B |');
writeln('+---------------------------------------+');
writeln('|    Fam   |   Nam    | Grp | Grd | Sr  |');
writeln('|----------+----------+-----+-----+-----|');
while pB<>nil do
    begin
    shw(pB,1);
    pA:=pB;
    pB:=pB^.nxt;
    dispose(pA);
    end;
writeln('+---------------------------------------+');
readln;
end.

Объяснение кода листинга программы

Этот код написан на Turbo Pascal и выполняет следующую задачу: создает структуру данных для хранения информации о студентах, которые имеют фамилию, начинающуюся с буквы Б. Затем он добавляет студентов в очередь, используя эту структуру данных. После этого он выводит информацию о каждом студенте в очереди, а затем выводит информацию о студентах, у которых фамилия начинается с буквы Б. Вот список переменных и их значений, представленных в виде кода:

  • fam: строка, содержащая фамилию студента (например, Бабаев)
  • nam: строка, содержащая имя студента (например, Иван)
  • grp: строка, содержащая группу студента (например, 101)
  • grd: целое число, представляющее степень студента (например, 5)
  • ray: массив из пяти целых чисел, представляющих оценки студента (например, {5, 4, 3, 2, 1})
  • pDat: переменная типа ^data, которая указывает на текущий элемент данных в очереди
  • data: запись типа record, которая содержит информацию о студенте и ссылку на следующий элемент в очереди Вот пример вывода информации о студентах: +-------------All list------------------+ |    Fam   |   Nam    | Grp | Grd | Sr  | |----------+----------+-----+-----+-----| +---------------------------------------+ |    Fam   |   Nam    | Grp | Grd | Sr  | |----------+----------+-----+-----+-----| +---------------------------------------+ |    Fam   |   Nam    | Grp | Grd | Sr  | |----------+----------+-----+-----+-----| +---------------------------------------+ | SELECT * FROM STUDENTS WHERE FAM[1]=B | +---------------------------------------+ |    Fam   |   Nam    | Grp | Grd | Sr  | |----------+----------+-----+-----+-----| +---------------------------------------+ |    Fam   |   Nam    | Grp | Grd | Sr  | |----------+----------+-----+-----+-----| +---------------------------------------+ |    Fam   |   Nam    | Grp | Grd | Sr  | |----------+----------+-----+-----+-----| +---------------------------------------+ Этот код использует структуры данных, такие как записи и массивы, для хранения информации о студентах и их оценках. Он также использует указатели для связи между записями данных в очереди.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.8 из 5
Похожие ответы