2 / 2 / 1 Регистрация: 03.11.2009 Сообщений: 38 |
|
1 |
|
Найти суммы элементов всех нечетных столбцов матрицы29.11.2009, 18:16. Показов 1814. Ответов 2
Помогите пжл! Прога на паскале нужна… 2. Дана матрица размера 5×9. Найти суммы элементов всех ее нечетных столбцев
0 |
Snoopy 1915 / 1065 / 384 Регистрация: 06.12.2008 Сообщений: 2,802 |
||||
29.11.2009, 18:50 |
2 |
|||
Решение2
0 |
2 / 2 / 1 Регистрация: 03.11.2009 Сообщений: 38 |
|
29.11.2009, 18:55 [ТС] |
3 |
Drongo,
0 |
Дана матрица размера N*M. Нужно посчитать сумму элементов в чётных и нечетных строках и столбцах.
Первую часть программы я составил, а вот вторую, убей бог, не получается.
int main()
{
setlocale(LC_ALL, "Russian");
int N, M, i, j;
int result4etn;
int resultne4etn;
cout << "Введите колл строк матрицы:";
cin >> N;
cout << "Введите колл стоб матрицы: ";
cin >> M;
int** mass = new int* [N]; //создаем массив указателей на элементы
cout << endl;
cout << "Заполните матрицу " << N << 'х' << M << endl;
for (i = 0; i < N; i++)
{
mass[i] = new int[M]; //создаем массив элементов
}
for (i = 0; i < N; i++)
{
for (j = 0; j < M; j++)
{
cout << "Введите число: ";
cin >> mass[i][j];
}
}
cout << "Полученная матрица: " << endl;
for (i = 0; i < N; i++)
{
for (j = 0; j < M; j++)
{
cout << mass[i][j];
}
cout << endl;
}
}
задан 24 мая 2016 в 7:13
6
Замените свой вывод матрицы на
int
sum_even_rows = 0,
sum_odd_rows = 0,
sum_even_cols = 0,
sum_odd_cols = 0;
cout << "Полученная матрица: " << endl;
for (i = 0; i < N; i++)
{
for (j = 0; j < M; j++)
{
if (i%2 == 0) // четные строки
sum_even_rows += mass[i][j];
else
sum_odd_rows += mass[i][j];
if (j%2 == 0) // четные столбцы
sum_even_cols += mass[i][j];
else
sum_odd_cols += mass[i][j];
cout << setw(6) << mass[i][j] << " ";
}
cout << endl;
}
cout << "Сумма элементов в четных строках : " << sum_even_rows << endl;
cout << "Сумма элементов в нечетных строках : " << sum_odd_rows << endl;
cout << "Сумма элементов в четных столбцах : " << sum_even_cols << endl;
cout << "Сумма элементов в нечетных столбцах: " << sum_odd_cols << endl;
Здесь считаем столбцы/строки с нулевого (т.е. самый первый — четный).
ответ дан 24 мая 2016 в 7:52
HarryHarry
214k15 золотых знаков117 серебряных знаков229 бронзовых знаков
0
Решение короче и без if
int T[2][2] = {};
for (int i=0;i<N;i++)
for (int j=0;j<M;j++)
T[i&1][j&1]+=E[i][j];
cout << "Сумма элементов в четных строках : " <<T[0][0] + T[0][1]<<endl;
cout << "Сумма элементов в нечетных строках : " <<T[1][0] + T[1][1]<<endl;
cout << "Сумма элементов в четных столбцах : " <<T[0][0] + T[1][0]<<endl;
cout << "Сумма элементов в нечетных столбцах: " <<T[0][1] + T[1][1]<<endl;
ответ дан 24 мая 2016 в 11:31
pavelpavel
9,7793 золотых знака28 серебряных знаков42 бронзовых знака
Содержание
- Сумма элементов столбцов матрицы
- Задача
- Похожие задачи
- Решение
- Блок схема сумма нечетных столбцов матрицы
- Примеры алгоритмов обработки матрицами
Сумма элементов столбцов матрицы
Задача
Вариант 1. Вычислить сумму элементов каждого столбца матрицы (двумерного массива).
Вариант 2. Найти сумму элементов определенного столбца матрицы.
Похожие задачи
Решение
Матрицу можно представить как массив, в который вложены другие массивы. Эти другие массивы имеют одинаковую длину (например, M), а количество этих вложенных массивов — другое число (например, N). Так, если M = 7, а N = 5, то это значит, что матрица состоит из 5 одномерных массивов, в каждом из которых по 7 элементов.
Элементы одного вложенного массива обычно считают строкой матрицы. Столбцы же матрицы формируют элементы разных вложенных массивов, но имеющие в них одинаковые индексы (занимающие одинаковые позиции). Так, все первые элементы вложенных массивов, формируют первый столбец матрицы. Элементы с индексом 2 образуют второй столбец.
Если mat — это переменная-матрица, то выражение mat[i,j] обозначает обращение к элементу, имеющему номер строки i (это номер вложенного массива), и номер столбца j (это номер самого элемента во вложенном массиве).
Обычно матрицы заполняются по-строчно: во внешнем цикле перебираются строки, во внутреннем — элементы строк (формируют столбцы). Однако это не обязательно. Заполнять можно и по столбцам: во внешнем цикле перебирать столбцы, во внутреннем — обращаться к элементам разных вложенных массивов, но имеющих идентичный индекс.
В программе ниже заполнение двумерного массива происходит по-строчно (стандартно), затем вычисляется сумма элементов каждого столбца, и здесь обход происходит по столбцам. Обратите внимание, что в данном случае внешний цикл отсчитывает до M, а внутренний — до N. В разных итерациях вложенного цикла различна первая переменная-индекс (в данном случае i), обозначающая номер строки, а столбец остается постоянным.
Пример выполнения кода программы:
Когда поставлена задача нахождения суммы элементов только определенного столбца, то она решается проще, без вложенного цикла. Вместо переменной j используется конкретное число, обозначающее столбец, сумму которого следует посчитать. Например, для вычисления суммы элементов третьего столбца код будет таким:
Источник
Блок схема сумма нечетных столбцов матрицы
3.1 . [Pascal | C | Basic] Дана матрица A(N, M) . Найдите её наибольший элемент и номера строки и столбца, на пересечении которых он находится.
3.2 . [Pascal | C | Basic] В каждой строке заданной матрицы A(N, M) вычислите сумму, количество и среднее арифметическое положительных элементов.
3.3 . [Pascal | C | Basic] Для заданной целочисленной матрицы A(N, M) определите, является ли сумма её элементов чётным числом, и выведите на печать соответствующий текст.
3.4 . [Pascal | C | Basic] Дана матрица A(N, M) . Найдите количество элементов этой матрицы, больших среднего арифметического всех её элементов.
3.5 . [Pascal | C | Basic] Дана целочисленная матрица A(N, M) . Вычислите сумму и произведение тех её элементов, которые при делении на два дают нечётное число.
3.6 . [Pascal | C | Basic] В заданной матрице A(N, M) поменяйте местами столбцы с номерами P и Q .
3.7 . [Pascal | C | Basic] Дана матрица A(N, M) . Вычислите вектор X(M) , где значение X j равно сумме положительных элементов j -го столбца матрицы A .
3.8 . [Pascal | C | Basic] Дана матрица A(N, M) . Получите вектор X(M) , равный P -й строке матрицы, и вектор Y(N) , равный Q -му столбцу матрицы.
3.9 . [Pascal | C | Basic] Дана матрица A(N, M) . Поменяйте местами её наибольший и наименьший элементы.
3.10 . [Pascal | C | Basic] По заданному n постройте матрицы размером ( n,n ) вида
а) 1 0 . 0 0 1 . 0 . . . . 0 0 . 1 |
б) n n-1 n-2 . 1 0 n n-1 . 2 . . . . . 0 0 0 . n |
в) 0 0 . 0 1 0 0 . 1 2 . . . . . 1 2 . n-1 n |
3.11 . [Pascal | C | Basic] Даны две целочисленные матрицы A(N, M) и B(N, M) . Подсчитате (в отдельности) количество тех пар , для которых: а) a i j i j ; б) a i j = b i j ; в) a i j > b i j .
3.12 . [Pascal | C | Basic] Дана матрица A(N, N) . Перепишите элементы её главной диагонали в одномерный массив Y(N) и разделите их на максимальный элемент главной диагонали.
3.13 . [Pascal | C | Basic] Дана матрица A(N, M) . Получите Y = X 1 . X N + X 2 . X N-1 + . + X N . X 1 , где X i — наибольший элемент в строке с номером i матрицы A .
3.14 . [Pascal | C | Basic] Постройте матрицу A(N, N) , элементы которой определяются равенствами a i j = i + 2 . j , а также найдите произведение чётных элементов этой матрицы, удовлетворяющих условию a i j (0 .
3.15 . [Pascal | C | Basic] Найдите наибольший элемент побочной диагонали заданной матрицы A(N, N) и выведите на печать всю строку, в которой он находится.
3.16 . [Pascal | C | Basic] Дана целочисленная матрица A(N, M) . Вычислите сумму и произведение нечётных отрицательных элементов матрицы, удовлетворяющих условию | a i j | .
3.17 . [Pascal | C | Basic] Для заданной матрицы А(N, N) найдите:
а) сумму всех элементов;
б) сумму элементов главной диагонали;
в) значения наибольшего и наименьшего из элементов главной диагонали.
3.18 . [Pascal | C | Basic] По трём заданным матрицам А(N, N) , В(N, N) и С(N, N) постройте матрицу Х того же размера, каждый элемент которой вычисляется по формуле x i j = max < a i j , b i j , c i j >.
3.19 . [Pascal | C | Basic] Дана матрица А(N, N) и целое P . Преобразуйте матрицу по правилу: строку с номером P сделайте столбцом с номером P , а столбец с номером P сделайте строкой с номером P .
3.20 . [Pascal | C | Basic] Для заданной матрицы A(N, N) найдите сумму элементов, расположенных в строках с отрицательным элементом на главной диагонали.
3.21 . [Pascal | C | Basic] Дана матрица A(N, M) . Определите:
а) число ненулевых элементов в каждой строке матрицы;
б) общее число ненулевых элементов в матрице;
в) отношение числа ненулевых элементов в каждой строке матрицы к общему числу ненулевых элементов в матрице.
3.22 . [Pascal | C | Basic] Вычислите матрицу С(N, N) , являющуюся суммой матриц А(N, N) и В(N, N) . Матрица А задана, а элементы матрицы B вычисляются по формуле
3.23 . [Pascal | C | Basic] Из заданной матрицы A(N, M) удалите строку с номером K и столбцы с номерами P и Q . Полученную матрицу уплотните.
3.24 . [Pascal | C | Basic] В заданном массиве X(N, M) все числа различны. В каждой строке выбирается минимальный элемент, затем среди этих чисел выбирается максимальное. Напечатайте номер строки массива Х , в которой расположено выбранное число.
3.25 . [Pascal | C | Basic] В заданном массиве A(N, M) переставьте строки так, чтобы суммы их элементов возрастали.
3.26 . [Pascal | C | Basic] В заданном массиве A(N, N) вычислите две суммы элементов, расположенных выше и ниже побочной диагонали.
3.27 . [Pascal | C | Basic] Дана матрица A(N, M) . Переставляя её строки и столбцы, добейтесь того, чтобы наибольший элемент (один из них) оказался в верхнем левом углу.
3.28 . [Pascal | C | Basic] Расстояние между двумя множествами точек это расстояние между наиболее близко расположенными точками этих множеств. Найдите расстояние между двумя заданными множествами точек на плоскости.
3.29 . [Pascal | C | Basic] В заданном множестве точек на плоскости найдите пару точек с максимальным расстоянием между ними.
3.30 . [Pascal | C | Basic] Задан список участников соревнований по плаванию и их результаты. Расположите результаты и фамилии участников в соответствии с занятым местом.
3.31 . [Pascal | C | Basic] На основе сведений о ежедневном пробеге на тренировке спортсменов команды рассчитате среднесуточный и общий пробег каждого спортсмена за 20 дней.
3.32 . [Pascal | C | Basic] Известен расход по N видам горючего в каждом из M автохозяйств. Определите для каждого хозяйства вид горючего с наибольшим и с наименьшим расходом.
3.33 . [Pascal | C | Basic] На основе сведений об отметках учеников класса в последней четверти
а) вычислите средние баллы по каждому предмету;
б) определите группу из пяти лучших учеников;
в) определите группу из пяти самых слабых учеников.
3.34 . [Pascal | C | Basic] Заданы запасы по N видам топлива в каждом из М районов города и нормы минимально допустимого запаса по каждому виду топлива. Определите:
а) запасы каждого вида топлива на все районы;
б) запасы всех видов топлива для каждого района;
в) в каких районах запас того или иного вида топлива меньше минимально допустимого и каких видов топлива запасено недостаточно в каждом районе.
3.35 . [Pascal | C | Basic] Последовательно (в лексикографическом порядке) напечатайте всевозможные перестановки целых чисел 1, 2, . n. Значение n задано.
3.36* . [Pascal | C | Basic] Напечатать элементы заданной матрицы А(N, N) в следующем порядке:
3.37* . [Pascal | C | Basic] Дана матрица A(N, N) , где N нечётное число. Вычислите сумму её элементов из заштрихованной области.
3.38 . [Pascal | C | Basic] Шестизначный номер автобусного билета называют «счастливым», если равны суммы его первых трёх и последних трёх цифр. Подсчитате количество «счастливых» билетов.
3.39 . [Pascal | C | Basic] Дана последовательность целых чисел a 1 , a 2 , . a m . Постройте на ее основе новую последовательность, содержащую только те числа, которые в исходную последоватеьность входят по одному разу.
3.40 . [Pascal | C | Basic] Даны два множества целых чисел: a 1 , a 2 , . a n и b 1 , b 2 , . b m . Среди a 1 , a 2 , . a n нет повторяющихся чисел, нет их и среди b 1 , b 2 , . b m . Постройте:
а) пересечение и объединение этих множеств;
б) множество, содержащее все члены множества b 1 , b 2 , . b m , которые не входят в множество a 1 , a 2 , . a n .
3.41 . [Pascal | C | Basic] Вычислите P = 1 . 2 + 2 . 3 . 4 + 3 . 4 . 5 . 6 + . + N . (N+1) . . . 2N .
3.42 . [Pascal | C | Basic] Дана квадpатная таблица А(N, N), элементами котоpой являются нули и единицы. Подсчитайте, сколько в ней содержится квадpатов, состоящих из единиц, со стоpоной из двух элементов таблицы и pазвеpнутых по отношению к таблице на 45 гpадусов.
3.43 . [Pascal | C | Basic] Дана квадpатная таблица А(N, N), элементами котоpой являются нули и единицы. Не проверяя значений элементов таблицы, замените каждый из нулей на единицу, а каждую из единиц на ноль.
3.44 . [Pascal | C | Basic] Имеется N партий микросхем одного вида. Из каждой партии для контроля отобрали M микросхем. Тестовый контроль определил годность или негодность каждой микросхемы. Для того, чтобы вся партия была забракована, достаточно обнаружить в этих M выбранных микросхемах K негодных. По данным тестового контроля определите количество негодных микросхем в каждой партии и число забракованных партий.
3.45 . [Pascal | C | Basic] Числом Армстронга называется целое n-значное число, сумма n-х степеней цифр которого равна самому этому числу. Например, числом Армстронга является число 407, так как 407 = 4 3 + 0 3 + 7 3 . Найдите все числа Армстронга для заданного n
Источник
Примеры алгоритмов обработки матрицами
Алгоритмы обработки матриц
Матрица— это двумерный массив, каждый элемент которого имеет два индекса: номер строки — i; номер столбца — j. Поэтому для работы с элементами матрицы необходимо использовать два цикла. Если значениями параметра первого цикла будут номера строк матрицы, то значениями параметра второго — столбцы (или наоборот). Обработка матрицы заключается в том, что вначале поочередно рассматриваются элементы первой строки (столбца), затем второй и т.д. до последней. Рассмотрим основные операции, выполняемые над матрицами при решении задач.
Алгоритм ввода-вывода матриц
Матрицы, как и массивы, нужно вводить (выводить) поэлементно. Блок-схема ввода элементов матрицы изображена на рис. 4.1. Вывод матрицы организуется аналогично вводу.
Рассмотрим несколько задач обработки матриц. Для их решения напомним читателю некоторые свойства матриц (рис. 4.2):
- если номер строки элемента совпадает с номером столбца (i = j), это означает что элемент лежит на главной диагонали матрицы;
- если номер строки превышает номер столбца (i > j), то элемент находится ниже главной диагонали;
- если номер столбца больше номера строки (i n.
Примеры алгоритмов обработки матрицами
ПРИМЕР 4.1. Найти сумму элементов матрицы, лежащих выше главной диагонали (рис 4.3).
|
Рис. 4.3. Рисунок к условию задачи из примера 4.1 |
Алгоритм решения данной задачи (рис. 4.4) построен следующим образом: обнуляется ячейка для накапливания суммы (переменная S). Затем с помощью двух циклов (первый по строкам, второй по столбцам) просматривается каждый элемент матрицы, но суммирование происходит только в том случае если, этот элемент находится выше главной диагонали, то есть выполняется свойство i
ПРИМЕР 4.2. Вычислить количество положительных элементов квадратной матрицы, расположенных по ее периметру и на диагоналях. Напомним, что в квадратной матрице число строк равно числу столбцов.
Прежде чем преступить к решению задачи рассмотрим рисунок 4.6, на котором изображена схема квадратных матриц различной размерности. Из условия задачи понятно, что не нужно рассматривать все элементы заданной матрицы. Достаточно просмотреть первую и последнюю строки, первый и последний столбцы, а так же диагонали. Все эти элементы отмечены на схеме, причем черным цветом выделены элементы, обращение к которым может произойти дважды. Например, элемент с номером (1,1) принадлежит как к первой строке, так и к первому столбцу, а элемент с номером (N,N) находится в последней строке и последнем столбце одновременно. Кроме того, если N — число нечетное (на рисунке 4.6 эта матрица расположена слева), то существует элемент с номером (N/2+1, N/2+1), который находится на пересечении главной и побочной диагоналей. При нечетном значении N (матрица справа на рис. 4.6) диагонали не пересекаются.
|
Рис. 4.6. Рисунок к условию задачи из примера 4.2 |
Итак, разобрав подробно постановку задачи, рассмотрим алгоритм ее решения. Для обращения к элементам главной диагонали вспомним, что номера строк этих элементов всегда равны номерам столбцов. Поэтому, если параметр i изменяется циклически от 1 до N, то Ai,i — элемент главной диагонали. Воспользовавшись свойством, характерным для элементов побочной диагонали получим: i+j-1 = n > j = n-i+1, следовательно, для i=1,2,…,n элемент Аi,n-i+1 — элемент побочной диагонали. Элементы, находящиеся по периметру матрицы записываются следующим образом: А1,i — первая строка, АN,i — последняя строка и соответственно Аi,1 — первый столбец, Аi,N — последний столбец.
Блок-схема описанного алгоритма изображена на рис. 4.7. В блоке 1 организуется цикл для обращения к диагональным элементам матрицы. Причем в блоках 2-3 подсчитывается количество положительных элементов на главной диагонали, а в блоках 5-6 на побочной. Цикл в блоке 6 задает изменение параметра i от 2 до N-1. Это необходимо для того, чтобы не обращать к элементам, которые уже были рассмотрены: A11, A1N, AN,1 и AN,N. Блоки 7-8 подсчитывают положительные элементы в первой строке, 9 и 10 — в последней строке, 11 и 12 — в первом столбце, а 13 и 14 в последнем. Блок 15 проверяет, не был ли элемент, находящийся на пересечении диагоналей, подсчитан дважды. Напомним, что это могло произойти только в том случае, если N — нечетное число и этот элемент был положительным. Эти условия и проверяются в блоке 16, который уменьшает вычисленное количество положительных элементов на единицу.
|
Рис. 4.7. Блок-схема к примеру 4.2 |
ПРИМЕР 4.3. Проверить, является ли заданная квадратная матрица единичной. Единичной называют матрицу, у которой элементы главной диагонали — единицы, а все остальные — нули.
Решать задачу будем так. Предположим, что матрица единичная (FL=ИСТИНА) и попытаемся доказать обратное. Если окажется, что хотя бы один диагональный элемент не равен единице или любой из элементов вне диагонали не равен нулю, то матрица единичной не является (FL=ЛОЖЬ). Воспользовавшись логическими операциями все эти условия можно соединить в одно и составить блок-схему (рис. 4.8).
|
Рис. 4.8. Блок-схема к примеру 4.3 |
ПРИМЕР 4.4. Преобразовать исходную матрицу так, чтобы первый элемент каждой строки был заменен средним арифметическим элементов этой строки.
Для решения данной задачи необходимо найти в каждой строке сумму элементов, которую разделить на их количество. Полученный результат записать в первый элемент соответствующей строки. Блок-схема алгоритма решения приведена на рис. 4.9.
ПРИМЕР 4.5. Задана матрица An, m. Сформировать вектор Pm, в который записать номера строк максимальных элементов каждого столбца.
Алгоритм решения этой задачи следующий: для каждого столбца матрицы находим максимальный элемент и его номер, номер максимального элемента j-го столбца матрицы записываем в j-й элемент массива P. Блок-схема алгоритма приведена на рис. 4.10.
ПРИМЕР 4.6. Написать программу умножения двух матриц An,m и Bm,l.
Например, необходимо перемножить две матрицы
Воспользовавшись правилом «строка на столбец», получим матрицу:
В общем виде формула для нахождения элемента Ci,j матрицы имеет вид:
|
где i = 1,Nи j = 1,L. |
Обратите внимание, что проводить операцию умножения можно только в том случае, если количество строк левой матрицы совпадает с количеством столбцов правой. Кроме того, A >
Источник
uses crt; const n=5; m=9; var a:array[1..n,1..m] of integer; i,j,sum:integer; begin ClrScr; Writeln('Введеите матрицу...'); for i:=1 to n do for j:=1 to m do begin Write('a[',i,',',j,']->'); Readln(a[i,j]); end; Writeln('Введенная матрица...'); for i:=1 to n do begin for j:=1 to m-1 do Write(a[i,j]:3); Writeln(a[i,m]:3); end; Writeln('------------'); for j:=1 to m do for i:=1 to n do if j mod 2=1 then sum:=sum+a[i,j]; Writeln('Сумма ',sum); Readln; end.
Цель
работы:
выработать
практические
привычки
в
составлении
алгоритмов
на
селективную
обработку
двумерных
массивов.
Общие указания
1 Вложенные циклы
Вложенные
циклы используются при работе с
многомерными функциями и множествами.
При этом нужно следить, чтобы не было
перекрещивания циклов. Его не будет,
если циклы закрываются в порядке,
обратном открыванию (см. пример 5).
Пример
10.
В матрице a(4,5)
найти произведение положительных чисел.
Порядок
работы
Шаг
1. Вводим матрицу a(4,5).
Шаг
2. Задаем начальное значение произведения
p=1.
Шаг
3. Организовываем цикл, перебирающий
строки матрицы (т.е. индекс i),
начиная с 1-ой и кончая 4-ой.
Шаг
4. Организовываем цикл, перебирающий
столбцы матрицы (т.е. индекс j),
начиная с 1-го и кончая 5-м.
Шаг
5. Если aij
>
0,
тогда присваиваем p
= p
aij.
Шаг
6. Если цикл по j
не закончился, идем на начало цикла,
т.е. на шаг 4.
Шаг
7. Если цикл по i
не закончился, идем на начало цикла,
т.е. на шаг 3.
Шаг
8. Печатаем p.
Шаг
9. Останов.
Блок-схема
3.9 Обработка заданной строки (столбца) матрицы
Пример
11.
Найти сумму четных чисел третьей строки
матрицы a(4,5).
Порядок
работы
Шаг
1. Вводим матрицу a(4,5).
Шаг
2. Устанавливаем начальное значение
суммы s
= 0.
Шаг
3. Задаем номер обрабатываемой строки
i
= 3.
Шаг
4. Организовываем цикл, перебирающий
столбцы матрицы (т.е. индекс j),
начиная с 1-го и кончая 5-м.
Шаг
5. Если aij
четно,
тогда присваиваем s
= s
+ aij.
Шаг
6. Если цикл по j
не закончился, идем на начало цикла,
т.е. на шаг 4.
Шаг
7. Печатаем s.
Шаг
8. Останов.
3.10 Обработка заданной диагонали матрицы
Пример
12.
Найти сумму четных чисел главной
диагонали матрицы a(5,5).
Порядок
работы
Шаг
1. Вводим матрицу a(5,5).
Шаг
2. Устанавливаем начальное значение
суммы s=0.
Шаг
3. Организовываем цикл, перебирающий
строки матрицы (т.е. индекс i),
начиная с 1-й и кончая 5-й.
Шаг
4. Организовываем цикл, перебирающий
столбцы матрицы (т.е. индекс j),
начиная с 1-го и кончая 5-м.
Шаг
5. Если aij
четно
и i
= j,
присваиваем s
= s
+ aij.
Шаг
6. Если цикл по j
не закончился, идем на начало цикла ,
т.е. на шаг 4.
Шаг
7. Если цикл по i
не закончился, идем на начало цикла,
т.е. на шаг 3.
Шаг
8. Печатаем s.
Шаг
9. Останов.
3.11 Селективная обработка строки (столбца) матрицы, удовлетворяющей заданному условию
Обработка
строки (столбца) производится после ее
нахождения путем проверки каждой строки
на соответствие заданному условию.
Пример
13.
В матрице a(4,5)
найти количество четных чисел в строке,
у которой второй элемент положительный
(если таких строк несколько, результат
распечатать отдельно для каждой).
Порядок
работы
Шаг
1. Вводим матрицу a(4,5).
Шаг
2. Организовываем цикл, перебирающий
cтроки
матрицы (т.е. индекс i),
начиная с 1-й и кончая 4-й.
Шаг
3. Если ai2
> 0,
то идем на шаг 4, иначе берем другую
строку, т.е. идем на шаг 7.
Шаг
4. Устанавливаем начальное значение
количества k=0.
Шаг
5. Организовываем цикл, перебирающий
столбцы матрицы (т.е. индекс j),
начиная с 1-го и кончая 5-м.
Шаг
6. Если aij
четно,
тогда присваиваем k
= k
+ 1.
Шаг
7. Если цикл по j
не закончился, идем на начало цикла,
т.е. на шаг 5.
Шаг
8. Печатаем k.
Шаг
9. Если цикл по i
не закончился, идем на начало цикла,
т.е. на шаг 2.
Шаг
10. Останов.
Пример
14.
В матрице a(4,5)
найти количество четных чисел в строке,
у которой сумма элементов положительна
(если таких строк несколько, результат
распечатать отдельно для каждой).
Порядок
работы
Шаг
1. Вводим матрицу a(4,5).
Шаг
2. Организовываем цикл, перебирающий
cтроки
матрицы (т.е. индекс i),
начиная с 1-й и кончая 4-й.
Шаг
3. Устанавливаем начальное значение
суммы s
= 0.
Шаг
4. Организовываем цикл, перебирающий
столбцы матрицы (т.е. индекс j),
начиная с 1-го и кончая 5-м.
Шаг
5. Присваиваем s
= s
+ aij.
Шаг
6. Если цикл по j
не закончился, идем на начало цикла,
т.е. на шаг 4.
Шаг
7. Если s
> 0,
то идем на шаг 8, иначе — берем другую
строку, т.е. идем на шаг 13.
Шаг
8. Устанавливаем начальное значение
количества k=0.
Шаг
9. Организовываем цикл, перебирающий
столбцы матрицы (т.е. индекс j),
начиная с 1-го и кончая 5-м.
Шаг
10. Если aij
четно,
тогда присваиваем k
= k
+ 1.
Шаг
11. Если цикл по j
не закончился, идем на начало цикла,
т.е. на шаг 9.
Шаг
12. Печатаем k.
Шаг
13. Если цикл по i
не закончился, идем на начало цикла,
т.е. на шаг 2.
Шаг
14. Останов.
Задание
8.
Составить блок-схему для задания,
указанного в таблице 9. Имя и размер
матрицы выбрать самостоятельно.
Таблица
9
Вар. |
Условие |
1 |
Найти |
2 |
Найти |
3 |
Найти |
4 |
Найти |
5 |
Вычислить |
6 |
Найти |
7 |
Найти |
8 |
Найти |
9 |
Найти |
10 |
Найти |
11 |
Найти |
12 |
Найти |
13 |
Найти |
14 |
Найти |
15 |
Найти |
16 |
Найти |
17 |
Найти |
18 |
Найти |
19 |
Найти |
20 |
Найти |
21 |
Найти |
22 |
Определить |
23 |
Найти |
24 |
Найти |
25 |
Найти |
26 |
Определить |
27 |
Найти |
28 |
Найти |
29 |
Найти |
30 |
Определить |
Задание
9.
Составить блок-схему для задания,
указанного в таблице 10. Имя и размер
матрицы выбрать самостоятельно.
Таблица
10
Вар. |
Условие |
1 |
Найти |
2 |
Найти |
3 |
Вычислить |
4 |
Определить |
5 |
Найти |
6 |
Найти |
7 |
Найти |
8 |
Найти |
9 |
Найти |
10 |
Найти |
11 |
Найти |
12 |
Найти |
13 |
Найти |
14 |
Найти |
15 |
Найти |
16 |
Найти |
17 |
Найти |
18 |
Найти |
19 |
Найти |
20 |
Найти |
21 |
Найти |
22 |
Найти |
23 |
Найти |
24 |
Найти |
25 |
Найти |
26 |
Найти |
27 |
Найти |
28 |
Найти |
29 |
Найти |
30 |
Найти |
Задание
10.
Составить блок-схему для задания,
указанного в таблице 11. Имя и размер
матрицы выбрать самостоятельно.
Таблица
11
Вар. |
Условие |
1 |
Вычислить |
2 |
Найти |
3 |
Определить |
4 |
Найти |
5 |
Найти |
6 |
Найти |
7 |
Найти |
8 |
Найти |
9 |
Найти |
10 |
Найти |
11 |
Найти |
12 |
Найти |
13 |
Найти |
14 |
Найти |
15 |
Найти |
16 |
Найти |
17 |
Найти |
18 |
Найти |
19 |
Найти |
20 |
Найти |
21 |
Найти |
22 |
Найти |
23 |
Найти |
24 |
Найти |
25 |
Найти |
26 |
Найти |
27 |
Найти |
28 |
Найти |
29 |
Найти |
30 |
Найти |
Задание
11.
Составить блок-схему для задания,
указанного в таблице 12. Имя и размер
матрицы выбрать самостоятельно.
Таблица
12
Вар. |
Условие |
1 |
Вычислить |
2 |
Найти |
3 |
Определить |
4 |
Найти |
5 |
Найти |
6 |
Найти |
7 |
Найти |
8 |
Найти |
9 |
Найти |
10 |
Найти |
11 |
Найти |
12 |
Найти |
13 |
Найти |
14 |
Найти |
15 |
Найти |
16 |
Найти |
17 |
Найти |
18 |
Найти |
19 |
Найти |
20 |
Найти |
21 |
Найти |
22 |
Найти |
23 |
Найти |
24 |
Найти |
25 |
Найти |
26 |
Найти |
27 |
Найти |
28 |
Найти |
29 |
Найти |
30 |
Найти |
Задание
12.
Составить блок-схему для задания,
указанного в таблице 13. Имя и размер
матрицы выбрать самостоятельно.
Таблица
13
Вар. |
Условие |
1 |
Вычислить |
2 |
Найти |
3 |
Найти |
4 |
Найти |
5 |
Найти |
6 |
Найти |
7 |
Найти |
8 |
Найти |
9 |
Найти |
10 |
Найти |
11 |
Найти |
12 |
Найти |
13 |
Найти |
14 |
Найти |
15 |
Найти |
16 |
Найти |
17 |
Найти |
18 |
Найти |
19 |
Найти |
20 |
Найти |
21 |
Найти |
22 |
Найти |
23 |
Найти |
24 |
Найти |
25 |
Найти |
26 |
Найти |
27 |
Найти |
28 |
Найти |
29 |
Определить |
30 |
Вычислить |