Практическое задание N 1. 23
1. Рассчитать средний балл по шести предметам для каждого из десяти учащихся. Массивы наименований предметов и фамилий учащихся задать в программе. Массив оценок "A" задать с использованием функции Random. Вывести на экран таблицу: Фамилии (по вертикали), предметы (по горизонтали), все оценки, а также колонку со средними значениями оценок каждого учащегося. Вывести фамилии учеников и наибольшим и наименьшим средним баллом.
2. Исходя из данных массива "A" п. 1, создать массивы "B", "C", "D", содержащие число пятерок, четверок и троек соответственно, полученных каждым учеником по всем шести предметам. Вывести на экран таблицу: фамилии, предметы, оценки с колонками данных массивов "B", "C", "D".
Примечание к п. п. 1- 2 : Вывести гистограммы с указанием фамилии ученика и его среднего балла, либо число троек полученных по всем предметам.
3. Модифицировать массив. Исходные данные п. 1. Вставить в список учащихся новую фамилию ученика с номером 5. Фамилию и оценки ученика ввести оператором Read. Убрать из таблицы предмет с номером два. Вывести на экран исходную и новую таблицы - фамилии, предметы, массив оценок.
4. К заданию п. 1. Создать два массива оценок учеников с четными и нечетными номерами. Вывести на экран таблицы - массивы оценок для каждой группы с указанием предметов и фамилий учащихся.
5. К заданию п. 1. Создать и вывести на экран три таблицы фамилий учеников со средним баллом: от 3-х до 4-х (не включая 4), от 4-х до 5-ти и 5 (отличников) с указанием всех оценок и среднего балла.
6. К заданию п. 1. Создать и вывести на экран таблицу фамилий десяти учеников, имеющих пятерки по шести, пяти, и т. д. предметам в порядке убывания.
Для этого создать линейный массив "B" - число пятерок у каждого ученика. Создание нового массива фамилий "S1" можно проводить используя циклы: k:=0; for i:=1 to 10 do for o:=6 downto 0 do if B[i]=o then k:=k+1; S1[k]:=S[i];
Создание баз данных с использованием массивов записей
При работе с записями можно использовать массивы в полях записи или создавать массивы записей. Приведем примеры операторов для обоих случаев.
Type Pupil = Record
Fam: String[20];{ Фамилия }
Name: String[10];{ Имя }
Otmetka: array[1..5] of Byte{ Отметки по пяти предметам }
end;
Var _10_A, _10_B: array[1..30]of Pupil;{Переменные типа массив записей }
N, i: byte;{ N - Число учеников в классе }
Begin N:= 13;
_10_A[1]. Fam:= 'Гришин';
_10_A[1]. Name:= 'Анатолий';
{ и т. д. }
Writeln ('Введите оценки учеников по первому предмету: ');
For i:= 1 to N do begin
With _10_A[i] do Begin
Write(Fam:21, Name:11, '_');
Readln(Otmetka[1])
End
End
End.
{---------------------------------------------------------------- }
Type pupil = Record{ массивы в полях записи }
Fam: array[1..30] of String[20];{ Фамилия }
Name: array[1..30] of String[10];{ Имя }
N: Byte;{ Число учеников в классе }
Otmetka: array[1..5, 1..30] of Byte{ Отметки по пяти предметам }
end;
Var _10_A, _10_B: Pupil;{ Переменные типа запись }
i: byte;
Begin
With _10_A do Begin N:= 13;
Fam[1]:= 'Гришин';
Name[1]:= 'Анатолий'; { и т. д. }
Writeln ('Введите оценки учеников по первому предмету: ');
For i:= 1 to N do begin
Write(Fam[i]:21, Name[i]:11,'_');
Readln(Otmetka[1, i])
End
End
End.
Дата добавления: 2016-06-29; просмотров: 1834;