Глава 4. Алгоритмы, использующие двумерные массивы - 4.7. Алгоритмы, реализуемые с помощью вложенных циклов разного типа

E-mail Печать PDF
Рейтинг пользователей: / 11
ХудшийЛучший 
Индекс материала
Глава 4. Алгоритмы, использующие двумерные массивы
4.2. Нахождение суммы элементов
4.3. Нахождение элементов с заданным свойством
4.4. Удаление и вставка строк или столбцов матрицы
4.5. Изменение значений элементов, обладающих заданным свойством
4.6. Перестановка строк или столбцов матрицы
4.7. Алгоритмы, реализуемые с помощью вложенных циклов разного типа
Все страницы

4.7. Алгоритмы, реализуемые с помощью
 вложенных циклов разного типа

Схема вложенных циклов с предусловием выглядит так:

Пока <условие 1> повторять

нц

кц

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

Схема циклов с предусловием (внешнего) и арифметического (внутреннего) циклов  выглядит так:

 
 

Пока <условие 1> повторять

нц

кц

При выполнении такого цикла параметр внутреннего цикла i принимает все значения от iнач до iкон для каждого значения параметра внешнего цикла. Внешний цикл выполняется, пока условие, записанное в заголовке цикла, является истинным.

 
 

Схема циклов арифметического (внешнего) и цикла с предусловием (внутреннего) выглядит так:

Для  i от iнач  до iкон; выполнить

При выполнении циклов этого типа параметр внешнего цикла i принимает все значения от iнач до iкон. Для каждого значения i внутренний цикл выполняется до тех пор, пока условие, записанное в заголовке цикла, является истинным.

Пример 4.11. Дана матрица A[n, m]. Найти количество строк, содержащих нули.

Обозначим: k - количество строк, содержащих нули, Flag -признак наличия нулей в строке. Flag = 1 - нули в строке есть; Flag = 0 - нулей в строке нет.

Фрагмент блок-схемы алгоритма:

Тест

Данные

Результат

N

M

Матрица А

К

3

3

 

2

Исполнение алгоритма

i

Flag

j

(j <= M) И (Flag = 0)

A[i, j] = 0

K

1

Нет

1

Да

Нет

0

 

Да

2

Да

Да

1

 

 

 

Нет (кц)

 

 

2

Нет

1

Да

Нет

 

 

 

2

Да

Нет

 

 

 

3

Да

Нет

 

 

 

4

Нет (кц)

 

 

3

Нет

1

Да

Да

2

 

Да

 

Нет (кц)

 

 

Пример 4.11. Определить, есть ли среди элементов заданной целочисленной матрицы A[n, n], лежащих ниже главной диагонали, хотя бы одно отрицательное число.

Пусть переменная Flag является индикатором наличия или отсутствия отрицательных элементов, находящихся ниже главной диагонали. На главной диагонали квадратной матрицы выполняется равенство i = j. Следовательно, элементы, лежащие ниже главной диагонали, имеют индексы i < j.

Фрагмент блок-схемы алгоритма:

Система тестов


 теста

Проверяемый случай

Данные

Результат

n

Матрица А

Otvet

 

 

 

 

 

 

 

 

1

Имеются

4

Есть

 

 

 

отрицательные

 

 

 

числа

 

 

 

 

 

 

 

 

 

 

 

Нет

2

Не имеются

3

отрицательных

 

 

 

чисел

 

Исполнение алгоритма


 теста

Flag

i

(i <= n) И
 (Flag = 0)

j

(j <= i) И
 (Flag = 0

A[i, j] < 0

Otvet

1

0

1

Да

1

Да

Нет

 

 

 

 

2

Нет (кц)

 

 

 

2

Да

1

Да

Нет

 

1

 

 

2

Да

Да

 

 

 

 

 

Нет (кц)

 

 

 

3

Нет (кц)

 

 

 

Есть

2

0

1

Да

1

Да

Нет

 

 

 

 

2

Нет (кц)

 

 

 

2

Да

1

Да

Нет

 

 

 

 

2

Да

Нет

 

 

 

 

3

Нет (кц)

 

 

 

3

Нет (кц)

 

 

 

Нет

Пример 4.12. Найти количество строк, содержащих нули, в заданной целочисленной матрице A[n, m].

Обозначим: k - количество строк, содержащих нули, Flag -признак наличия нулей в строке. Flag = 1 - нули в строке есть; Flag = 0 - нулей в строке нет.

Фрагмент блок-схемы алгоритма:

 

Тест

Данные

Результат

N

M

Матрица А

К

3

3

 

2

Исполнение алгоритма

i

Flag

j

(j <= M) И (Flag = 0)

A[i, j] = 0

K

1

Нет

1

Да

Нет

0

Да

2

Да

Да

1

 

 

Нет (кц)

 

 

2

Нет

1

Да

Нет

 

 

2

Да

Нет

 

 

3

Да

Нет

 

 

4

Нет (кц)

 

 

3

Нет

1

Да

Да

2

Да

 

Нет (кц)

 

 

Задачи для самостоятельного решения

1. Дана матрица А[n, n]. Переменной В присвойте значение, равное количеству строк матрицы А, содержащих хотя бы одну нулевую компоненту.

2. В заданной матрице A[n, n] найдите количество строк, не содержащих отрицательных чисел.

3. Дана целочисленная матрица A[n, n]. Сформируйте вектор В, элементами которого являются суммы элементов только тех строк матрицы А, которые начинаются с положительного элемента.

4. Среди столбцов заданной целочисленной матрицы, содержащих такие элементы, которые по модулю не больше 10, найдите столбец с минимальным произведением элементов..

5. Дана матрица A[n, n]. Постройте вектор B[n], элементы которого равны единице, если элементы i-й строки образуют упорядоченную по убыванию или возрастанию последовательность, и нулю во всех остальных случаях.

6. Найдите номера строк заданной целочисленной матрицы, в которых:

а) на всех четных номерах стоят нули;

б) на нечетных позициях встречаются нули.

7. В каждой строке матрицы A[n, n] определите наибольшее простое число. Если в строке нет простых чисел, выведите соответствующее сообщение.

8. Дана матрица A[n, n]. Получите вектор В[n], компоненты которого равны количеству отрицательных чисел, с которых начинается i-я строка.

9. Даны сведения о количестве голов, забитых каждым футболистом команды в каждом из матчей чемпионата. Проверьте, сколько в команде есть футболистов:

а) забивших хотя бы два гола;

б) забивших голы в каждом матче;

в) не забивших ни одного гола.

10. Используя сведения о ежемесячных выплатах зарплаты сотрудникам фирмы, выясните, не оказалась ли годовая зарплата кого-либо из сотрудников ниже годового минимума, оговоренного в его контракте.

11. Используя сведения о результатах сдачи n вступительных экзаменов m абитуриентами, определите, сколько абитуриентов получили на экзаменах оценку «отлично».

12. Используя сведения о размере обуви каждого члена баскетбольной команды, а также сведения о наличии в обувном магазине размеров спортивной обучи, определите, сколько членов команды можно обуть в этом магазине.

13. Найдите максимальное из чисел, встречающихся в заданной матрице более одного раза.

14. В каждой строке матрицы удалите наибольшее простое число.

15. Подсчитайте количество строк заданной целочисленной  матрицы А[5, 5], являющихся перестановкой чисел 1, 2, ..., 5.

16. Задан квадратный массив А[n, n], элементами которого являются нули и единицы. Подсчитайте в нем количество:

а) квадратов, размером 3 ? 3, в которых есть не менее пяти нулей;

б) строк, в которых нули и единицы чередуются;

в) столбцов, в которых нули и единицы чередуются;

г) единичных столбцов и нулевых строк.

17. Пифагоровыми называются тройки натуральных чисел a, b, c, удовлетворяющие условию a2 + b2 = c2. Найдите все тройки пифагоровых чисел, не превышающих 25.

18. Дана целочисленная матрица A[n, n]. Сформируйте результирующий вектор B, элементами которого являются суммы элементов только тех строк матрицы А, которые начинаются с К положительных чисел.

20. Дана матрица A[n, n]. Определите, сколько строк матрицы содержат хотя бы один элемент из заданного числового диапазона.

21. Найдите номера столбцов заданной целочисленной матрицы, которые составлены из попарно различных чисел, и подсчитайте количество таких столбцов.

Тело внешнего цикла

.....

Пока (<условие>)

нц

 

 

 

 

кц

 


 

Добавьтe Ваш комментарий

Ваше имя (псевдоним):
Ваш адрес почты:
Заголовок:
Комментарий:

Комментарии

Интересное




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

Партнёры