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

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

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

4.1. Понятие двумерного массива

Понятие «двумерный массив» определим на примере. Пусть имеется ведомость следующего содержания:

Номер школы

Число выпускников

Число медалистов

122

25

2

35

41

5

13

56

7

20

38

0

Таблица представляет собой множество из двенадцати однородных величин - это массив. Но ее элементы расположены в 4 строки по 3 столбца в каждой.

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

Двумерный массив определяется именем, числом строк и столбцов и обозначается A[n, m], где А - произвольное имя массива; n - число строк, m - число столбцов. Обратите внимание на то, что сначала всегда указывается количество строк, а потом - количество столбцов.

Нашу таблицу можно обозначить так: A[4, 3], т.е. массив состоит из 4 строк и 3 столбцов.

Строки двумерных массивов нумеруются по порядку сверху вниз, а столбцы - слева направо.

Каждый элемент двумерного массива определяется номерами строки и столбца, на пересечении которых он находится, и в соответствии с этим обозначается именем массива с двумя индексами: первый - номер строки, второй - номер столбца. Например, A[1, 3] - элемент находится в первой строке и третьем столбце.

 
 

Элементы ведомости, представленной в примере, получат такие обозначения:

Таким образом, A[1, 1] = 122, A[2, 3] = 41 и т.д. Произвольный элемент двумерного массива мы будем обозначать A[i, j], где i - номер строки, а j - номер столбца.

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

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

В отличие от одномерных массивов для ввода и вывода данных необходимо использовать вложенные циклы. Циклы являются арифметическими, т. к. количество строк и столбцов известно.

Ввод двумерного массива

Вывод двумерного массива

Ввести n, m

нц

Для i  от 1 до n повторять

    нц

    Для j от 1 до m повторять      

         Ввод(a[i, j])

    кц

кц

нц

Для i  от 1 до n повторять

    нц

      Для j от 1 до m повторять   

          Вывод a[i, j]

   кц

кц

 

Мы ввели и вывели элементы произвольного массива, имеющего n строк и m столбцов. Понятно, что количество строк и столбцов необходимо предварительно задать.


4.2. Нахождение суммы элементов

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

Пример 4.1. Вычислить сумму элементов заданного двумерного массива.

Дано: n, m - количество строк и столбцов массива соответственно, массив
А[n, m].

Найти S - сумму элементов массива.

Тест

Данные

Результат

N

M

A

S

2

2

2       1

4        3

10

 

 

 

Фрагмент алгоритма

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

S = 0

нц

Для i от 1 до n выполнить

   нц

   Для  j от 1 до m выполнить

         S = S + a[i, j]

   кц

кц

i

j

S

 

 

0

1

1

0+ a1,1 = 0 + 2 = 2

2

a1,1 +a1,2 = 2 + 1 = 3

2

1

a1,1 +a1,2 + a2,1 = 3 + 4 = 7

2

a1,1 +a1,2 + a2,1 + a2,2=7 + 3 = 10

 

 

 

Пример 4.2. Вычислить сумму элементов строк заданного двумерного массива.

Дано: n, m - количество строк и столбцов массива соответственно, массив
А[n, m].

Найти S[n] - сумму элементов строк массива.

Тест

Данные

Результат

N

M

A

S

2

2

2        1

4        3

3

7

 

Фрагмент алгоритма

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

нц

Для  i от 1 до n выполнить

   S[i] = 0

   нц

   Для  j от 1 до m выполнить

         S[i] = S[i] + a[i, j]

   кц

кц

i

j

S

1

 

S1 = 0

1

S1 = 0+ a1,1 = 0 + 2 = 2

2

S1 = a1,1 +a1,2 = 2 + 1 = 3

2

 

S2 = 0

1

S2 = 0 + a2,1 = 0 + 4 = 4

2

S2 = a2,1 + a2,2=4 + 3 = 7

В этом примере, в отличие от примера 4.1, мы нашли сумму элементов каждой строки матрицы. Поэтому для сохранения значений суммы мы использовали одномерный массив  S[n], количество элементов в котором равно количеству строк матрицы.

Обратите внимание на то, где присваивается начальное  значение переменной S. Если находится сумма всех элементов матрицы, то команда S = 0 записывается перед началом циклов. В результате получается значение S = 10. Если ставится задача нахождения суммы элементов строк матрицы, то команда S = 0 записывается внутри цикла по строкам матрицы, тогда результат представляет собой одномерный массив, в котором количество элементов равно количеству строк матрицы и S = (3, 7). Когда ставится задача нахождения суммы элементов столбцов матрицы, то команда S = 0 записывается внутри цикла по столбцам матрицы, тогда результат представляет собой одномерный массив, в котором количество элементов равно количеству столбцов матрицы и S = (6, 4).


4.3. Нахождение элементов с заданным свойством

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

Пример 4.3. Найти количество отрицательных элементов в каждой строке матрицы.

Дано: n, m - количество строк и столбцов массива соответственно, массив
Х[n, m].

Найти K[n] - количество отрицательных элементов в каждой строке.

Данные

Результат

N

M

Х

K

2

3

-3     -1     7

        4       3     2

2

0

Рассмотрим несколько вариантов решения этой задачи.

Можно хранить количество отрицательных элементов каждой строки в одномерном массиве соответствующей размерности:

Фрагмент алгоритма в этом случае выглядит так:

нц

Для i от 1 до n выполнить

k[i] = 0

нц

Для j от 1 до m выполнить

Если  x[i, j] < 0 то k[i] = k[i] + 1

Все если

кц

кц

В этом случае для вывода результата используем цикл:

нц

Для i от 1 до n выполнить

    Вывод "В ", i, "- ой строке ", k[i], " отрицательных элементов"

кц

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

нц

Для i от 1 до n выполнить

k = 0

нц

Для j от 1 до m выполнить

Если x[i, j] < 0 то k = k + 1

Все если

кц

Вывод "В ", i, " - ой строке ", k, " отрицательных элементов"

кц

Пример 4.4. Найти максимальный элемент массива и его индексы.

Дано: n, m - количество строк и столбцов массива соответственно, массив
А[n, m].

Найти Max - максимальный элемент массива, а также Maxi и Maxj - номер строки и столбца соответственно, на пересечении которых находится максимальный элемент.

Словесное описание алгоритма. Пусть первый элемент матрицы является максимальным. Запоминаем его значение и индексы. Сравниваем максимальное значение со всеми оставшимися элементами. Если запомненное максимальное значение меньше очередного элемента матрицы, то запоминаем новое значение и его индексы.

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

Фрагмент блок-схемы нахождения максимума в двумерном массиве:

 

Тест

Данные

Результат

n

m

A

 

2

3

1  2  5

5  1  5

Max = 5;

Maxi = 1;

Maxj = 3

Исполнение алгоритма нахождения максимума в двумерном массиве.

i

j

A[i, j] > max

Результат

1

1

Нет

Max = 1; Maxi = 1; Maxj = 1

2

Да

Max = 2; Maxi = 1; Maxj = 2

3

Да

Max = 5; Maxi = 1; Maxj = 3

2

1

Нет

 

2

Нет

 

3

Нет

 

Пример 4.5. Вычислить количество элементов заданной целочисленной матрицы A[n, m], равных ее максимальному элементу.

Дано: n, m - количество строк и столбцов массива соответственно, массив
A[n, m].

Найти K - количество элементов, равных максимальному элементу матрицы.

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

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

Тест

Данные

Результат

n

m

A

K

2

3

1  2  5

5  1  5

3

Исполнение алгоритма подсчета количества максимумов:

i

j

A[i, j] = Amax

K

 

 

 

0

1

1

Нет

 

2

Нет

 

3

Да

1

2

1

Да

2

2

Нет

 

3

Да

3

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

1. Дана матрица произвольного размера. Найдите сумму и количество элементов в каждом столбце матрицы, удовлетворяющих заданному условию (храните эти значения в одномерных массивах):

а) элементов, кратных k1 и k2;

б) элементов, являющихся простыми числами;

в) элементов, попадающих в промежуток от А до В;

г) положительных элементов, лежащих выше главной диагонали.

2. Дана матрица произвольного размера. Найдите сумму элементов в строках с k1-й по k2-ю.

3. Дана матрица произвольного размера. Найдите номера:

а) всех максимальных элементов каждой строки;

б) последних отрицательных элементов строки (столбца).

4. Дана матрица произвольного размера. Найдите количество элементов в каждой строке, меньших (больших) среднего арифметического элемента данной строки.

5. Найдите произведение двух одномерных массивов А и В, если массив А имеет размерность m, а B - n. Укажите размерность результирующего массива и правило нахождения элемента с индексами i и j.

6. Даны две квадратные матрицы - А и В. Выведите на экран ту из них, у которой след (сумма элементов главной диагонали) меньше.


4.4. Удаление и вставка строк или столбцов матрицы

Мы уже рассматривали задачи  вставки элементов в одномерный массив. Обобщим эти алгоритмы на двумерный массив.

Пример 4.6. Удалить из двумерного массива строку с номером k.

Для удаления строки с номером k необходимо:

1) сдвинуть все строки, начиная со строки с номером k вверх;

2) уменьшить количество строк в двумерном массиве.

Дано: n, m - количество строк и столбцов массива соответственно, массив
А[n, m], k - номер удаляемой строки.

Найти новую матрицу А, содержащую n - 1 строку и m - 1 столбец.

Тест

N

M

K

Исходная матрица

Результат

3

3

1

 

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

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

 

i

j

A

1

1

A[1, 1] = A[2, 1] = 4

2

A[1, 2] = A[2, 2] = 5

3

A[1, 3] = A[2, 3] = 6

 

 

 

Пример 4.7. Вставить в двумерный массив строку, состоящую из нулей после строки с номером k.

Для решения данной задачи необходимо:

1) первые k строк оставить без изменения;

2) все строки после k-й сдвинуть на одну вниз. Сдвиг лучше всего начать с последней строки и идти до (k + 1)-й строки;

3) присвоить новые значения элементам (k + 1)-й строки и увеличить количество строк в двумерном массиве.

Дано: n, m - количество строк и столбцов массива соответственно, массив
А[n, m], k - номер строки, после которой вставляется новая строка.

Найти новую матрицу А, содержащую n + 1 строку и m + 1 столбец.

Тест

N

M

K

Исходная матрица

Результат

2

3

1

 

 

 

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

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

i

j

A

Раздвигаем строки матрицы

2

1

A[2, 1] = A[1, 1] = 4

2

A[2, 2] = A[1, 2] = 5

3

A[2, 3] = A[1, 3] = 6

Промежуточный результат

Вставка строки

2

1

A[2, 1] = 0

2

A[2, 2] = 0

3

A[2, 3] = 0

Примечания

1. Если необходимо вставить новую строку поле строки, удовлетворяющей некоторому условию, то надо лишь найти номер этой строки - и задача сведется к решению уже рассмотренной.

2. Если надо вставить новые строки после всех строк с заданным условием, то надо учесть это при описании массива. Заметим, что удобнее рассматривать строки, начиная с последней строки, и ввести счетчик вставленных строк.

3. Вставка новой строки перед строкой с номером k изменится только тем, что сдвигать назад надо не с (k + 1)-й строки, а с k-й.

4. Если надо вставлять столбцы, то размерность массива увеличивается по столбцам, а все остальное практически не меняется: надо сдвинуть столбцы вправо и на данное место записать новый столбец.

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

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

2. Дана матрица произвольного размера. Вставьте второй столбец после первого же столбца, в котором все элементы положительны. Если такого столбца нет, то сообщите об этом.

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

4. Дана матрица произвольного размера. Вставьте после всех строк, в которых есть заданное число А, последнюю строку.

5. Дана матрица произвольного размера. Вставьте перед всеми столбцами, в которых нет отрицательных элементов, второй столбец.

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

7. Дана матрица произвольного размера. Удалите столбец, в котором находится минимальный элемент. Если такой элемент встречается несколько раз, то удалите все столбцы с этим элементом.

8. Дана матрица произвольного размера. Удалите строку с номером k и столбец с номером m.

9. Дана матрица произвольного размера. Удалите все столбцы, в которых нет нулевого элемента.

10. Дана матрица произвольного размера. Удалите все строки и столбцы, на пересечении которых стоят отрицательные элементы.


4.5. Изменение значений элементов,
обладающих заданным свойством

Решение этих задач похоже на решение задач для одномерных массивов.

Пример 4.8. В массиве размерностью n?m к элементам четных столбцов прибавить элемент первого столбца соответствующей строки.

Дано: n, m - количество строк и столбцов массива соответственно, массив
А[n, m].

Найти новую матрицу А, содержащую n строк и m столбцов.

Столбец является четным, если его номер делится на два без остатка.

Тест

N

M

Исходная матрица

Результат

2

4

5  7  6  9
-1  0  2  10

   5  12   6  14
-1 -1   2    9

Для сокращения перебора мы не будем просматривать все столбцы, а возьмем только четные столбцы матрицы.

Фрагмент алгоритма:

нц

Для i от 1 до n выполнить

нц

Для j от 1 до m div 2 выполнить

Рассмотрим только четные столбцы матрицы.

а[i, 2 * j] = а[i, 2 * j) + а [i, 1]

кц

кц

Напомним, что операция div вычисляет частное от деления целого числа.

Пример 4.9. Заменить все отрицательные элементы матрицы противоположными по знаку.

Решение этой задачи мы рассматривали для одномерного массива. Поэтому приведем алгоритм без пояснений.

нц

Для i от 1 до n выполнить

нц

Для j от 1 до m выполнить

              Если а[i, j] < 0 то а[i, j]:= -а [i, j]

Все если

кц

кц

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

1. В каждой строке двумерного массива смените знак максимального по модулю элемента на противоположный.

2. Положительные элементы каждой строки двумерного массива умножьте на первый элемент соответствующей строки, а отрицательные - на последний элемент той же строки.

3. Замените все элементы строки с номером k и столбца с номером k1 произвольной матрицы на противоположные по знаку (элемент, стоящий на их пересечении, не заменяйте).

4. К элементам столбца k1 прибавьте элементы столбца k2.

5. Даны два двумерных массива одинаковой размерности. Создайте третий массив той же размерности, каждый элемент которого равен сумме соответствующих элементов первых двух.


4.6. Перестановка строк или столбцов матрицы

Пример 4.10. В заданной матрице A[n, m] поменять местами строки с номерами p и q (1 ? p ? n, 1 ? q ? m).

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

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

 

 

Тест

Данные

Результат

n = 3, m = 3, p = 1, q = 2

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

j

t

A[1, j]

A[2, j]

1

1

4

1

2

2

5

2

3

1

6

1

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

1. Дана произвольная матрица. Поменяйте местами первый  максимальный и последний минимальный элементы (здесь и далее массив просматривается слева направо и сверху вниз).

2. Дана произвольная матрица. В каждой строке матрицы поменяйте местами первый элемент и элемент, максимальный по модулю.

3. Дана произвольная матрица. В каждой строке переставьте первый отрицательный и последний положительный элементы, если таких элементов нет, то сообщите об этом.

4. Дана произвольная матрица. Переставьте первую и последнюю строки.

5. Дана произвольная матрица. Поменяйте местами первую строку и строку, в которой находится нулевой элемент

6.  В произвольном двумерном массиве переставьте строки следующим образом: первую с последней, вторую - с предпоследней и так далее. Если число строк нечетное, то средняя строка останется неизменной.

7. Дан двумерный массив А. Расставьте его столбцы в следующем порядке:

а) последний, предпоследний,..., второй, первый;

б) первый, последний, второй, предпоследний, третий,...

8. Дан двумерный массив. Начиная с первой строки, сдвиньте все строки на две вниз, а последние две строки передвиньте на место первых двух.

9. Сдвиньте столбцы двумерного массива на k вправо, а последние k столбцов поставьте на место первых.

10. Сдвиньте столбцы двумерного массива на k влево, а первые k столбцов поставьте на место последних.

 


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 Ваш комментарий

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

Комментарии

Интересное




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

Партнёры