Пример 1. Составить программу, которая обрабатывает информацию о студентах (фамилия, номер группы, рейтинг):
а) вводит такую информацию;
б) выводит список студентов заданной группы;
в) выводит список студентов в порядке убывания рейтинга.
Пояснение: Для хранения данных будем использовать массив записей с информацией о студентах. (При решении этой задачи можно и не использовать тип запись, а написать программу, обрабатывающую три массива. Без использования типа Record трудно обойтись при обработке файлов – см. следующую тему.)
Программа:
Program Record_Student;
Uses Crt;
Const N = 100; { N - максимальное количество студентов }
Type Stud = Record {данные об одном студенте–запись из трех полей:}
Name: String; { фамилия}
Group: Integer; { номер группы}
Rating: Real { рейтинг }
End;
Students = Array [1..N] Of Stud; { данные обо всех студентах - }
{ это массив записей }
Var St: Students; { список студентов – массив записей }
K, M, L, Gr: Integer;
Pst: Stud; { промежуточная переменная, необходимая для того, }
{чтобы менять местами два элемента массива при его сортировке}
Begin
ClrScr;
{ а) Ввод данных о студентах }
Write (‘Сколько студентов ’);
Readln (M);
For K:= 1 To M Do
With St [K] Do { вводим все поля записи St[K] }
Begin
Write (‘Введите фамилию ’,K,’ студента ‘);
Readln (Name);
Write (‘Введите номер его группы ‘);
Readln (Group);
Write (‘Введите его рейтинг ‘);
Readln (Rating)
End;
{ б) Вывод списка заданной группы }
Write (‘Список какой группы требуется ’);
Readln (Gr);
Writeln(‘Список группы № ‘,Gr);
For K:= 1 To M Do { просматриваем весь список }
With St [K] Do
If Group = Gr { если номер группы студента равен требуемому}
Then Writeln (Name:20); { то печатаем его фамилию }
{ в) Сортировка студентов по их рейтингу }
For K:= 1 To M – 1 Do
For L:= K + 1 To M Do
If St[L]. Rating > St[K]. Rating
Then Begin
Pst:= St[L];
St[L]:=St[K];
St[K]:=Pst
End;
{ вывод отсортированного списка}
Writeln (‘Список студентов в порядке убывания рейтинга:’);
For K:= 1 To M Do
Writeln (Name:20, Group:5, Rating:7:2);
Readln
End.
Контрольные задания
13.1. Составить программу, которая обрабатывает информацию о
a.) книгах;
b.) товарах на складе;
c.) кинофильмах;
d.) школах города;
e.) факультетах университета;
f.) сотрудниках фирмы.
Информация об объекте должна представлять собой совокупность разнотипных полей (не менее четырех). Программа должна:
1. вводить информацию;
2. выводить информацию на экран;
3. позволять редактировать ее (т.е. изменять значения некоторых полей);
4. осуществлять поиск по нескольким признакам;
5. выполнять сортировку по нескольким полям.
Тема 13. Работа с файлами в языке Паскаль