Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Алгоритмы со структурами вложенных циклов






Нередко при алгоритмическом решении задачи возникает необходимость создания цикла, содержащего в своем теле другой цикл. Такие вложенные друг в друга циклы относятся к структурам вложенных циклов. Порядок вложенности циклов, когда в теле внутреннего цикла содержатся другие циклы, может быть достаточно большим. Этот порядок определяется методом, с помощью которого достигается решение поставленной задачи. Так, при обработке одномерных массивов, как правило, удается построить алгоритмическую схему без вложения циклов. Однако в ряде случаев при решении таких задач без вложенных циклов не обойтись.

Отметим, что все вложенные друг в друга циклы, включая наружный, должны иметь счетчики с различными именами. Вне этих циклов счетчики могут быть использованы как обычные переменные или как счетчики других циклов.

Структура вложенных циклов:

 
 


 
 


Рис. 19. Структура вложенных циклов

 

Пример 1. Рассмотрим задачу сортировки одномерного массива А длины N. Отсортировать массив – значит расположить его элементы в порядке возрастания или убывания.

Опишем метод сортировки массива в порядке возрастания. Сначала выполняется проход по массиву с целью определения в нем наименьшего элемента. Затем производится перестановка этого элемента с первым. Далее совершается второй проход по массиву, начиная со второго элемента. Найденный наименьший элемент переставляется со вторым и т. д. После (N-1)-го прохода с выполнением названных операций массив окажется отсортированным.

Замечание. Перестановка элементов осуществляется с помощью «буферного» элемента. Поставим задачу: поменять местами элементы Ai и Aj одномерного массива (последовательности) A1, A2, …. An. Пусть С - буферный элемент. Тогда последовательность действий С=Ai, Ai = Aj, Aj осуществляет перестановку этих элементов в массиве {A}.

Задание. Построить блок-схему алгоритма сортировки одномерного массива А длины N.

Входные данные: неупорядоченная последовательность элементов A1, A2, …. An.

Выходные данные: упорядоченная последовательность элементов A1, A2, …. An.

Промежуточные данные: буферный элемент С, индексы текущих элементов i и j.

Блок-схема приведена на рис.20.

 
 

 


j = i, n, 1

               
   
     
 
 
 
 
   

 

 


Рис. 20. Блок-схема алгоритма сортировки одномерного массива А длины N

 

Алгоритмы со структурами вложенных циклов часто используют при решении задач обработки двумерных массивов. В таких алгоритмах счетчики циклов используются для манипуляции с индексами массивов.

Пример 2. Дан двумерный массив А ( матрица ), состоящий из N строк и М столбцов. Найти сумму положительных и произведение отрицательных элементов этого массива.

Входные данные: двумерный массив А с элементами Aij, где i – номер строки, j – номер столбца элемента.

Выходные данные: сумма S и произведение P элементов массива. Начальное значение суммы считается равным нулю (S=0), начальное значение произведения – единице (Р=1).

Промежуточные данные: индексы текущих элементов i и j.

Блок-схема приведена на рис.21.

 
 

 


j = i, n, 1

           
   
 
 
 
   

 

 


Рис. 21. Блок-схема алгоритма вычисления суммы S и произведения P элементов массива






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.