Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
учебник Информатика.doc
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
17 Мб
Скачать
☆

Модуль Ввод и размещение

В блоке 1 переменной CHISLO присваивается начальное нулевое значение – выполняется ее подготовка к накоплению числа абитуриентов, которое осуществляется в цикле в блоке 6. В блоке 2 вводятся исходные данные по одному абитуриенту – его фамилия, имя, отчество, список оценок по аттестату. Данные заносятся в соответствующие переменные (см. комментарий к блоку). Для прерывания цикла задаются специальным знаком, ввод которого свидетельствует об окончании ввода списка абитуриентов. Этот анализ выполняется в блоке 3. Если достигнут конец списка абитуриентов (выход ДА), алгоритм прекращает свою работу. Если конец цикла не достигнут (выход НЕТ), рассчитывается среднее арифметическое значение оценок в аттестате (блок 4). Затем фамилия, имя, отчество и средний балл по аттестату запоминаются на диске (блок 5). 

Модуль Ввод и анализ

В блоке 1 вводится число вступительных экзаменов. В блоке 2 формируется начальное (равное нулю) значение числа отчисленных абитуриентов: эта переменная нужна для определения реального числа абитуриентов, сдавших экзамены и допущенных к зачислению. В блоке 3 организуется циклический процесс, позволяющий по каждому вступительному экзамену выполнить ввод соответствующих оценок по каждому абитуриенту. Обращение ко всем абитуриентам организуется с помощью блока 4. Если введенная оценка равна 2, абитуриент исключается из списка, размещенного на диске (блок 7). В противном случае оценка добавляется к списку оценок абитуриента (блок 9). Внутри цикла формируется также число отчисленных абитуриентов (блок 8). Таким образом, данный алгоритм является примером вложенной циклической структуры, когда один циклический процесс вложен в другой. По окончании цикла определяется число оставшихся абитуриентов (блок 10) и рассчитывается средний балл за вступительные экзамены по каждому абитуриенту (блок 11). Результат последнего расчета помещается в список абитуриентов на диск.

Модуль Упорядочение

В этом модуле реализован один из методов упорядочения списка по убыванию значений элементов (в нашем случае по убыванию средних баллов по вступительным экзаменам и по аттестату). Идея метода состоит в том, что последовательно, начиная с первого элемента списка, сравниваются два рядом стоящих элемента. Если последующий элемент больше предыдущего, они меняются местами. Таким образом, если в списке n элементов, указанное сравнение выполняется (n-1) раз по количеству различных пар. Чтобы учесть соотношение не только рядом стоящих, но и разнесенных по списку элементов,  описанный анализ пар элементов выполняется (n-1) раз. Иначе говоря, этот метод  представляется вложенным циклическим алгоритмом (блоки 1 и 2). В блоке 3 сравниваются два рядом стоящих элемента в списке своими средними оценками за вступительные экзамены: если последующий элемент (абитуриент) имеет средний балл больше, чем предыдущий элемент, выполняется блок 6 и элементы меняются местами; иначе выполняется блок 4. В этом случае определяется, равны ли средние баллы за вступительные экзамены у рядом стоящих элементов в списке. Если это так (выход ДА из блока 4), в расчет берутся средние баллы за аттестат (блок 5): преимущества имеет тот абитуриент, у которого больше средний балл по аттестату при равных оценках на вступительных экзаменах. Если же окажется, что средний балл за вступительные экзамены у последующего элемента списка меньше, чем у предыдущего (выход НЕТ у блока 4), элементы местами не меняются – они и так упорядочены по убыванию среднего балла за вступительные экзамены. В блоке 5 анализируются средние баллы за аттестат. Этот анализ выполняется только тогда, когда средние оценки по вступительным экзаменам одинаковые у рядом стоящих в списке абитуриентов. Если средний балл по аттестату у последующего элемента больше, чем у предыдущего (выход ДА блока 5), элементы меняются в списке местами (блок 6). Иначе (выход НЕТ у блока 5) никаких преобразований в списке не происходит.