- •Технология программирования вложенных циклов
- •Правила работы с вложенными циклами:
- •Выбор метода решения
- •Составление алгоритма решения
- •Программирование задачи
- •Описание многомерных массивов
- •Обозначение элементов многомерного массива
- •Создание двумерного массива
- •Постановка задачи
- •Формирование математической модели
- •Выбор метода решения
- •Составление алгоритма решения
- •Программирование задачи
- •Параллельно вложенные циклы
- •Постановка задачи
- •Формирование математической модели
- •Выбор метода решения
- •Составление алгоритма решения
- •Программирование задачи
- •Программирование задачи с графическим интерфейсом
- •Сортировка элементов массивов
- •Ранжирование числовых массивов
- •Ранжирование по убыванию основным методом
- •Постановка задачи
- •Формирование математической модели
- •Выбор метода решения
- •Составление алгоритма решения
- •Программирование задачи
- •Ранжирование по возрастанию методом «пузырька»
- •Постановка задачи
- •Формирование математической модели
- •Выбор метода решения
- •Составление алгоритма решения
- •Программирование задачи
- •Ранжирование символьных массивов
- •Ранжирование символов в строке по алфавиту
- •Постановка задачи
- •Формирование математической модели
- •Выбор метода решения
- •Составление алгоритма решения
- •Программирование задачи
- •Ранжирование массива символьных строк по алфавиту
- •Постановка задачи
- •Формирование математической модели
- •Выбор метода решения
- •Составление алгоритма решения
- •Программирование задачи
- •Заключение
- •Вопросы для контроля
-
Ранжирование по возрастанию методом «пузырька»
Рассмотрим ранжирование по возрастанию на конкретной задаче (9.5) о числовом одномерном массиве А. В качестве метода поиска используем «всплывание пузырька».
-
Постановка задачи
Дан одномерный вещественный массив А максимально содержащий до 20 элементов. Диапазон представления численных значений элементов от -50 до 50. Требуется отранжировать исходный массив по возрастанию. Предусмотреть возможность прекращения ввода элементов массива (не более 20) по желанию пользователя.
-
Формирование математической модели
Исходные данные
А(N) – вещественный массив;
N 20 – максимальный размер массива;
n – реальный размер массива.
Модель массива А(n):
|
а1 |
а2 |
... |
аi |
... |
аn |
i – текущий индекс массива;
i = i + 1 – закон изменения индекса;
1
i
n
– диапазон изменения номера i
элемента.
Расчётные зависимости
аmin1 = min(а1, а2,…, аi,…, аn);
а1 = аmin1;
аmin2 = min(а2,…, аi,…, аn);
а2 = аmin2;
…
аmin i = min(аi,…, аn-1, аn);
аi = аmin i;
…
аmin n-1 = min(аn-1,аn);
аn-1 = аmin n-1;
-
Выбор метода решения
Решение задачи можно осуществить методом «пузырька». Он реализуется последовательностью:
-
присвоить индексу внешнего цикла его начальное значение (i = 1);
-
присвоить индексу внутреннего цикла его начальное значение (j = n);
-
сравнить соседние текущие значение aj-1 и aj (aj-1 > aj);
-
выполнить переприсваивание апр = аj-1, аj-1 = аj и аj = апр , если условие выполняется;
-
изменить индекс внутреннего цикла по закону j = j – 1;
-
повторять три предыдущих пункта пока j > i;
-
изменить индекс внешнего цикла по закону i = i + 1;
-
повторять предыдущие пункты, кроме первого, пока i £ n;
-
прекратить решение при i > n.
Следовательно, в качестве метода решения необходимо выбрать структуру последовательно вложенных циклов арифметического типа с аналитическим изменением аргумента, внутренний из которых смешанный – вычислительный процесс (цикл с расположенным внутри него ветвлением) для перемещения минимального значения элементов в начало массива последовательно уменьшающейся длины.
-
Составление алгоритма решения
Математическая формулировка задачи и выбранный детализированный метод ее решения позволяют создать одношаговую схему алгоритма решения (рис. 9.14).

Рис. 9.14. Схема алгоритма сортировки элементов массива методом «всплывающего пузырька»
Дополнительное условие в постановке задачи (прекращение ввода по желанию пользователя) определяет особенность организации цикла ввода элементов массива А.
Условием прекращения ввода элементов массива определяем нажатием клавиши «Enter» (ввод пустой строки – символа \0). Это обуславливает организацию ввода текущего значения элемента массива как символьной строки, преобразуемой в число, если эта строка не пустая. В схеме алгоритма особенность ввода реализуется последовательностью блоков 2-6.
Вывод исходного и получаемого сортировкой массивов предусматривается отдельными последовательно выполненными циклами.
