Основы алгоритмизации. Логинов В.И - 45 стр.

UptoLike

45
4.4. Структуры с вложенными циклами
Программы решения многих задач требуют нескольких циклов.
Например:
упорядочение массивов;
обработка массивов;
расчет таблицы значений функций, заданной степенным рядом.
В этих случаях важно правильно определить структуру алго-
ритма, прежде всего количество и относительное расположение
циклов. В этих структурах могут использоваться рассмотренные
приёмы алгоритмизации, но при этом необходимо определить, в
каком цикле (внешнем или внутреннем) будет использоваться тот
или иной приём.
Например, вычислить сумму всех элементов матрицы. В
этом примере начальное
значение суммы элементов нужно за-
дать перед внешним циклом, а накапливать её во внутреннем
цикле.
Если необходимо вычислить сумму элементов каждой строки
матрицы, то начальное значение суммы нужно задать перед внут-
ренним циклом, в котором перебираются и суммируются элементы
одной строки матрицы. При этом внешним обязательно должен
быть цикл, изменяющий
номер строки, а внутреннимизменяю-
щий номер столбца.
Задача. Задана матрица X(N*M). Определить количество по-
ложительных элементов в каждой строке матрицы.
Решение. Матрица X имеет размер N*M, т.е. в ней N строк и
M столбцов. Вводить и печатать матрицу будем в общепринятом
виде, т.е. по строкам. Вывод матрицы на печать необходим для по-
лучения результата в удобном для чтения виде.
Алгоритм решения состоит из следующих пунктов.
1.
Ввод матрицы X(N, M), где i = 1, …, N; j = 1, …, M.
2.
Печать матрицы X(N, M), где i = 1, …, N; j = 1, …, M.
3.
Организация внешнего цикла по строкам. Переменная цик-
ла i изменяется от 1 до N, шаг 1.
            4.4. Структуры с вложенными циклами

   Программы решения многих задач требуют нескольких циклов.
Например:
   – упорядочение массивов;
   – обработка массивов;
   – расчет таблицы значений функций, заданной степенным рядом.
   В этих случаях важно правильно определить структуру алго-
ритма, прежде всего количество и относительное расположение
циклов. В этих структурах могут использоваться рассмотренные
приёмы алгоритмизации, но при этом необходимо определить, в
каком цикле (внешнем или внутреннем) будет использоваться тот
или иной приём.
   Например, вычислить сумму всех элементов матрицы. В
этом примере начальное значение суммы элементов нужно за-
дать перед внешним циклом, а накапливать её во внутреннем
цикле.
   Если необходимо вычислить сумму элементов каждой строки
матрицы, то начальное значение суммы нужно задать перед внут-
ренним циклом, в котором перебираются и суммируются элементы
одной строки матрицы. При этом внешним обязательно должен
быть цикл, изменяющий номер строки, а внутренним – изменяю-
щий номер столбца.

   Задача. Задана матрица X(N*M). Определить количество по-
ложительных элементов в каждой строке матрицы.
   Решение. Матрица X имеет размер N*M, т.е. в ней N строк и
M столбцов. Вводить и печатать матрицу будем в общепринятом
виде, т.е. по строкам. Вывод матрицы на печать необходим для по-
лучения результата в удобном для чтения виде.
   Алгоритм решения состоит из следующих пунктов.
   1. Ввод матрицы X(N, M), где i = 1, …, N; j = 1, …, M.
   2. Печать матрицы X(N, M), где i = 1, …, N; j = 1, …, M.
   3. Организация внешнего цикла по строкам. Переменная цик-
        ла i изменяется от 1 до N, шаг 1.


                               45