Пример.Для каждого из учеников класса имеются оценки по 5 предметам. Требуется вычислить среднюю оценку каждого ученика и выбрать того, кто имеет максимальный средний балл.
Решение.Следует сформировать (объявить) массив из записей, содержащей поля: фамилия, оценки и средний бал. Затем надо заполнить его фамилиями учащихся и их оценками. Затем вычислить средний бал каждого и выбрать из них максимальное значение.
Type uchenik = record
Fam : string[15];
b1, b2, b3, b4, b5 : 2..5;
sb : real;
end;
const n = 25;
var class: array [1..n] of uchenik; {Объявление массива учеников}
p: uchenik; i, k: integer; sbmax : real;
begin
for i:= 1 to n do {ввод исходных данных, заполнение массива записей}
with class[i] do
begin
writeln (‘Ведите фамилию и пять оценок’);
readln (fam, b1, b2, b3, b4, b5);
end;
{вычисление среднего балла каждого ученика}
For i := 1 to n do
with class[i] do sb := (b1+b2+b3+b4+b5) / 5;
{Поиск максимального среднего балла и номера ученика}
sbmax := 0;
for i := 1 to n do
if class [i].sb >= sbmax then
begin sbmax := class[i].sb; k := i end;
{Вывод фамилии лучшего ученика (при условии, что лучший балл – один) и его среднего балла}
Writeln ( class [k].fam: 20, class[k].sb:6:3);
Readln
End.
Замечание. В случае, если в классе имеется несколько учеников с максимальным числом среднего балла, то тогда вместо цикла
for i := 1 to n do
if class [i].sb >= sbmax then begin sbmax := class [i].sb; k := i end;
Writeln ( class [k].fam: 20, class[k].sb:6:3);
Следует написать:
for i := 1 to n do
if class [i].sb >= sbmax then sbmax := class[i].sb;
for i := 1 to n do
if class [i].sb >= sbmax then
with class [i].sb do writeln ( fam: 20, ‘ – ‘, sb:6:3);
Варианты заданий
Задание. Опишите заданный тип, осуществите ввод данных, произведите определенные операции и выведите на печать значение полей (где возможно). Во всех случаях используйте массив из записей.
A. Данные о товаре на складе: наименование товара, сорт, стоимость, наличие, количество. Рассчитайте суммарную стоимость всего имеющегося в наличии товара.
B. Данные о книге: автор, название, издательство, количество страниц, цена, тираж. Рассчитать стоимость одной страницы книги и стоимость всего тиража.
C. Данные о поезде: тип (скорый, пассажирский), номер, количество вагонов (купейных, плацкартных, общих), стоимость билета (в купейном, плацкартном, общем). Рассчитать выручку одного рейса.
D. Данные о государстве: название, площадь, численность населения, столица, число жителей в столице, наличие морской границы. Рассчитать плотность населения и отношение числа жителей в столице к общей численности населения.