- •9.1. Строки (повторить самостоятельно, см. Также 7.2.1.3 и 7.2.1.4)
- •9.2. Примеры решения задач обработки строковых данных
- •1. Программа обработки массива строк
- •3. Удаление пробелов перед началом текста строки
- •4. Программа, удаляющая из вводимой с клавиатуры строки пробелы между словами и записывающая в массив n длину (число символов) каждого слова
- •9.3. Записи
- •9.4. Примеры использования данных типа «запись»
- •1. Программа для добавления записей в файл данных о дневной температуре воздуха
- •2. Программа для обработки массива данных по группе студентов из 30 человек
- •Протокол работы программы
- •Результат работы программы
9.4. Примеры использования данных типа «запись»
1. Программа для добавления записей в файл данных о дневной температуре воздуха
Program aprec;
uses CRT;
var
DayTemp:record { дневная температура }
day:integer; { число }
month:integer; { месяц }
temper:integer; { температура }
end;
f:text; { файл с записями о дневной температуре }
begin
clrscr;
assign(f,'a:\temper.txt');
append(f); { открываем файл для добавления записи }
write('Введите в одной строке, разделяя пробелами');
writeln(' число, номер месяца и температуру');
write('->');
with DayTemp do
begin
readln(day,month,temper);
writeln(f,day,' ',month,' ',temper);
end;
close(f);
writeln('Данные добавлены');
readln;
end.
Результат работы программы
Содержание файла a:\temper.txt после выполнения программы
12 3 45
14 10 -3
2. Программа для обработки массива данных по группе студентов из 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.