Program Count_2;Const Nmax=40; { Max количество студентов в группе } Dl=15; { длина фамилии и имени } M=5; { количество оценок } Type Stud = Record Fam, Im, Ot: String [dl]; Numz: LongInt; Otm: Array [1..m] Of Integer End; Var Vedom: Array [1..Nmax] Of Stud; i, j: Integer; kdv, k2, n: Integer; Begin Writeln(’Введите количество студентов’); Readln(n); {п. 1.} Writeln(’Вводите информацию о каждом студенте’); For i: =1 to n Do {п. 2.} Begin Write(’Фамилия: ’); ReadLn(Vedom[i].Fam); Write(’Имя: ’); ReadLn(Vedom[i].Im); Write(’Отчество: ’); ReadLn(Vedom[i].Ot); Write(’Номер зачетки: ’); ReadLn(Vedom[i].Numz); WriteLn(’Вводите оценки по одной: ’); For j: = 1 to m do Begin WriteLn(’Введите ’, j, ’ –ю оценку’); ReadLn(Vedom[i].Otm[j]); End; End; kdv: = 0; {п. 3.} Writeln(’Фамилии и номера зачеток двоечников’); For i: =1 to n Do Begin k2: = 0; {п. 4.1.} For j: = 1 to m Do {п. 4.2.} If Vedom[i].Otm[j] < 3 Then k2: = k2+1; If k2 > 0 Then {п. 4.3.} Begin kdv: = kdv + 1; Writeln(Vedom[i].Fam: 16, Vedom[i].Numz: 8) End; End; Writeln(’Количество двоечников в группе - ’, kdv); WriteLn(’Нажмите Enter...’); ReadLn; End.
Для сокращения записи программ с данными типа Record используется оператор With, который в общем случае записывается так: With Имя_Записи Do Оператор_1; В Операторе_1 к полям записи автоматически добавляется Имя_Записи. С использованием этого оператора цикл ввода данных в приведенной выше программе был бы записан так
For i: =1 to n Do With Vedom[i] do Begin Write(’Фамилия: ’); ReadLn(Fam); Write(’Имя: ’); ReadLn(Im); Write(’Отчество: ’); ReadLn(Ot); Write(’Номер зачетки: ’); ReadLn(Numz); WriteLn(’Вводите оценки по одной’); For j: = 1 to m do Begin WriteLn(’Введите ’, j, ’ –ю оценку’); ReadLn(Otm[j]); End; End; { With } Пример 2. Ввести в ЭВМ список характеристик N стран мира, содержащий информацию вида (N< =40): Название, площадь Составить программу, которая упорядочивает список по убыванию площади и выводит полученный результат на экран. Общий алгоритм для этой задачи будет такой. 1. Ввести характеристики стран. 2. Упорядочить характеристики по убыванию площади. 3. Вывести полученный список. 4. Закончить. Применим для упорядочения характеристик стран известный метод пузырька и получим уточненный алгоритм. 1.1. Ввести количество стран (n). 1.2. Для номера страны (i) от 1 до n выполнить ввести страну [i]. 2. Для номера просмотра (k) от 1 до n - 1 выполнить Для номера страны (i) от 1 до n - k выполнить Если у Страны[i]. площадь > Страны[i + 1]. площадь, то Поменять местами Страну[i] и Страну[i + 1]. 3. Для номера страны (i) от 1 до n выполнить ввести у страны [i]. название и площадь. 4. Закончить. Программа для этого алгоритма имеет вид.
|