Протокол работы программы

Текст программы

Программа для обработки массива данных по группе студентов из 30 человек

Для каждого студента указаны фамилия и оценки по пяти дисциплинам. Необходимо вычислить средний балл и упорядочить список студентов группы по убыванию среднего балла.

Используемые в программе идентификаторы

Обозначения Тип данных Примечание
STR RECORD Запись сведений о студенте
FAM STRING [30] Поле записи STR – фамилия
B1,B2,B3,B4,B5 INTEGER Поля записи STR – оценки
SB REAL Средний балл
Y RECORD Промежуточная запись
TBL ARRAY [1…30] OF STR Массив, содержащий записи сведений о студентах группы
J INTEGER  
I INTEGER  
K INTEGER  
M INTEGER  
X REAL  
PR INTEGER Переменная для управления повторной работой программы

PROGRAM PRIM2;

USES CRT;

TYPE

STR=RECORD

FAM: STRING [30];

B1,B2,B3,B4,B5: 2..5;

SB: REAL

END;

VAR

TBL: ARRAY [1..30] OF STR;

Y:STR;

I,J,K,M:INTEGER;

X,R:REAL;

PR:BYTE;

BEGIN

CLRSCR;

REPEAT

WRITELN ('Введите число студентов');

READLN (M);

FOR I:= 1 TO M DO

WITH TBL[I] DO

BEGIN

WRITELN('Введите фамилию');

READLN (FAM);

WRITELN('Введите пять оценок студента');

READLN (B1,B2,B3,B4,B5);

END;

FOR I:= 1 TO M DO

WITH TBL[I] DO

SB:= (B1+B2+B3+B4+B5)/5;

FOR I:= 1 TO M DO

BEGIN

K:=1;

X:=TBL[I].SB;

FOR J:=I TO M DO

IF TBL[J].SB >=X THEN

BEGIN

K:=J;

X:=TBL[J].SB;

Y:=TBL[K];

TBL[K]:=TBL[I];

TBL[I]:=Y

END;

END;

WRITELN ('Список студентов');

FOR I:=1 TO M DO

WITH TBL[I] DO

WRITELN (FAM, SB:4:2);

WRITELN ('Обработать еще один список? 1-да 0-нет');

READLN(PR);

UNTIL PR=0

END.

Ввод исходных данных