Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
posobie.doc
Скачиваний:
27
Добавлен:
31.03.2015
Размер:
1.43 Mб
Скачать

5.3. Пример решения задачи

Здесь приведен пример, базирующийся на уже рассмотренных положениях и распространяющий их на обработку матриц.

Рассматривается конкретная задача из группы задач со следующей структурой. Задана матрица aизmстрок иnстолбцов.

Для совокупности строк (или столбцов) решается задача типа «Поиск по условию» или «Проверка условия» из §4.2 (поиск элемента, удовлетворяющего заданному условию). Подзадачей этой задачи является задача типа «Поиск по условию» или «Проверка условия» для совокупности элементов строки (столбца).

Приводятся только элементы разработки, специфичные для данной задачи.

1. Задачаm.0(имя задачи предложено студентами и не несет смысловой нагрузки).

Найти в матрицепервую строку, все элементы которой больше 1.

Примеры, по которым далее будут строиться тесты

Возьмем m=3,n=4

  1. Матрица, где есть искомая строка:

2 2 0 2

a=3 3 3 3

2 2 0 2

Результат: номер искомой строки = 2.

2) Матрица, где нет искомой строки:

2 2 0 2

a= 2 2 0 2

2 2 0 2

Результат: искомой строки нет.

2. Входные данные. Ограничения на диапазоны данных там, где они не очевидны, взять произвольно.

цел m- число строк матрицы a; простая переменная; ……..

цел n- число столбцов матрицы а; простая переменная; ……..

вещ a- исходная матрица; двумерный массив; ……….

Входную форму взять из § 5.2.

3. Выходные данные

цел k- номер искомой строки; .........

Сообщение об отсутствии искомой строки предусмотрим в выходной форме.

4. Аномалиине рассматриваем

5. Функциональные тесты – см. пример после условия. Забегая вперед, отметим, что эти тесты покроют структурные.

6. Метод

● Проведем аналогию с задачами «Поиск по условию» и «Проверка условия» для матрицы как совокупности строк.

Одномерный массив – совокупность элементов.

Матрица – совокупность строк.

Искать отдельную строку матрицы, удовлетворяющую условию данной задачи, можно так же,как элемент одномерного массива, удовлетворяющий условию задачи «Поиск по условию».

Для совокупности строк решаем задачу «Поиск по условию».

Для фиксации результата проверки совокупности строк используем логическую переменную:

истина, если искомая строка есть,

ложь, в противном случае.

логy1– результат проверки;y1=

● Проведем аналогию с задачами «Поиск по условию» и «Проверка условия» для отдельной строки матрицы.

Одномерный массив – совокупность элементов с одним индексом, изменяющимся при просмотре элементов.

Строка матрицы – совокупность элементов с индексом столбца, изменяющимся при просмотре элементов,и фиксированным индексом строки.

Проверять элементы отдельной строки можно так же, как проверять элементы одномерного массива.

Для отдельной строки решаем задачу «Проверка условия».

Для фиксации результата проверки совокупности элементов отдельной строки используем логическую переменную:

л

истина, если все элементы строки удовлетворяют условию,

ложь, в противном случае.

огy2– результат проверки;

y2=

Пустьi- текущий номер строки.

Положим сначала, что искомая строка не найдена, т.е. y1=ложь.

Просматриваем матрицу по строкам,

пока строка не найдена (y1=ложь) и строки не исчерпаны (i<=m):

Вх.: m, n, a, i вых.: y2

анализ y2и формированиеy1иk:

если y2= истина, то

y1:= истина;

k:=i;

кесли:

конец просмотра

Поясненияк списку входных данных подзадачи А1.

Если в некоторой подзадаче задана матрица, то заданы; m, n, элементы матрицы.

Т.е. входные данные: m, n, a (будем указывать имя массива).

Тогда, если задана строка матрицы (пусть i- номер строки), то входные данные:m, n, a, i(задана матрица и указана строка для обработки).

Задача А1.Этапы разработки и документация такая же, как для подзадачи А02 в задаче «Точки в круге» (§ 2.4). Формулировка, описание входных и выходных данных, метод и т.д. реализуются так же, как для задачи «Проверка условия» (§ 4.2).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]