Протокол работы программы
Текст программы
Программа для обработки массива данных по группе студентов из 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.
Ввод исходных данных