Алгоритм заполнения последовательными числами матрицы по спирали и по часовой стрелке

Страницы работы

Содержание работы

Алгоритм заполнения последовательными числами матрицы размера M * N  по спирали, по часовой стрелке.

M=3  N =4

  1   2   3   4  5

12 13 14 15  6

11 10   9   8  7

Идея решения:

Заполним последовательными числами верхнюю строку – это задача  1310

Заполним последовательными числами правый ряд          – это задача  1311

Заполним последовательными числами нижнюю строку  – это задача  1313

Заполним последовательными числами левый ряд            – это задача  1313

Повторим все эти действия для незаполненной матрицы – это задача  1314

Далее описаны алгоритмы и последовательные шаги решения 5 задач: 1310-1314

Следует внимательно, последовательно перенести эти шаги на Фортран.

В этом случае Вы получите решения всех задач БЫСТРО.

Это упражнение на скорость переноса ГОТОВОГО алгоритма.

задача  1310

Из входного файла читаются 2 числа M и N.

В матрице размера Mстрок * Nстолбцов (1<= M,  N <=15)

заполнить первую строку последовательными числами

  1. Создайте  шаблон программы: Заголовок – Вывод заголовка – Конец

Для этого скопируйте Задачу, например 1100 и отредактируйте заголовок.

  1. Измените  Блок описаний 

Добавьте “целый” Массив для матрицы.

Размеры массива выберите ~ в 1.5 раза больше, чем указаны в условиях задачи.

Введите переменные:

-  число строк массива,

-  число столбцов массива

-  количество чисел в матрице

Дальше,  нам необходимо  ставить последовательные числа 1, 2, 3 … в ячейки матрицы:

Число – текущее число, которое надо поставить в матрицу

Строка  = Индекс Строки матрицы, в которой стоит заполняемая ячейка

Столбец = Индекс  Столбца матрицы, в котором стоит заполняемая ячейка

КЧМ -  общееколичество чисел в заполненной в матрице

Введите границы заполняемой области матрицы (эти границы Вам, на самом деле, понадобятся на последующих шагах, но Вы вводите их сейчас – т.к. упражнение на перенос алгоритма!)

Прав  – индекс правого  столбца незаполненной области

Лев    – индекс левого   -----------“  “ --------------------------

Верх  – индекс верхней незаполненной строки

Низ    – индекс нижней -------“ “ -------- строки

3.  Нам необходима инициализация  (начальная установка) введенных переменных.

       Размеры матрицы – читаем из файла.

 Прав,  Лев, Верх, Низ  - через уже определенные переменные.

 КЧМ -  через уже определенные переменные.

Число – текущее число для постановки в матрицу,  в начальный момент = числу, которое мы уже поставили  в матрицу  = 0

 Строка = Верх                             ! это индексы начальной ячейки

 Столбец = Левый – 1                  ! это индексы начальной ячейки

4.  Организуем цикл заполнения строки (будем проверять, что нам есть ещё что ставить в матрицу: Число < КЧМ  - это поможет нам не вылезать за границы и не поставить ничего лишнего)

              НЦ пока (Число < КЧМ   И  Столбец<Прав)               ! идем направо

                        Столбец = Столбец+1

                        Увеличиваем Число

                        Заполняем Матрицу: ячейка матрицы = Число

              КЦ

              Увеличиваем Верх, так как верхний ряд заполнен

Скопируйте файл  input.1310   в Вашем каталоге, как input.txt

Проверьте: Ваша программа должна компилироваться и выполняться!

6.  Выведите заполненную матрицу на печать.

Для этого скопируйте из программы F3_1.for :

Вызов подпрограммы вывода матрицы – CALL OUT_Arr( ….. ) ,

и  саму подпрограмму вывода.

Отредактируйте вставки:

         Поставьте в блоке описания размеры матрицы такие же, как в программе.

!!!  Обратите внимание: в учебной программе была ошибка. У Вас должен быть исправленный вариант (как исправляли на занятие).

7. Проверьте правильность работы программы с  выводом на монитор.

8.  Отредактируйте программу:

    И уберите все «лишние» выводы.

Проверьте правильность работы программы с  помощью СЕТЕВОЙ  тестирующей   системы.

9. Покажите текст правильно работающей программы для проверки СТИЛЯ написания программы и таблицу проверки тестирующей системы.

10.  Сдайте проверенную (исправленную)  правильную  программу  СЕТЕВОЙ тестирующей системе.

задача  1311

Из входного файла читаются 2 числа M и N.

В матрице размера Mстрок * Nстолбцов (1<= M,  N <=15)

заполнить первую строку последовательными числами.

Похожие материалы

Информация о работе

Предмет:
Информатика
Тип:
Отчеты по лабораторным работам
Размер файла:
43 Kb
Скачали:
0