- •1. Краткие теоретические сведения
- •1.1. Хранение значений в массивах
- •1.2. Объявление переменной массива
- •1.3. Обращение к элементам массива
- •1.4. Использование индексной переменной
- •1.5. Инициализация массива при объявлении
- •1.6. Передача массивов в функции
- •1.8. Алгоритмы обработки двумерных массивов
- •1.8.1. Ввод и вывод матрицы
- •1.8.2. Заполнение матрицы случайными числами
- •1.8.3. Определение количество элементов, больших заданного а и расположенных в строках с нечетными номерами
- •1.8.4. Поиск в матрице строки с максимальной суммой
- •1.8.5. Определение количества строк матрицы, в которых суммы всех элементов отрицательные
- •1.8.6. Определение, есть ли в матрице столбец, содержащий хотя бы один нулевой элемент
- •1.8.7. Обработка элементов квадратных матриц относительно главной и побочной диагоналей
- •2.4.1.2. Пример для варианта 30
- •2.4.1.3. Программа
- •2.4.1.4. Тестирование
- •2.4.2. Задание 2. Выполнение вычислений в строках и столбцах матрицы
- •2.4.2.1. Условие задания
- •2.4.2.2. Пример для варианта 30
- •2.4.2.3. Программа
- •2.4.2.4. Тестирование
- •2.4.3. Задание 3. Дополнительные задачи
- •2.4.3.1. Условие задания
- •2.4.3.2. Пример для варианта 30
- •2.4.3.3. Программа
- •2.4.3.4. Тестирование
- •2.4.4. Задание 4. Перестановки строк или столбцов матрицы
- •2.4.4.1. Условие задания
- •2.4.5.2. Пример для варианта 30
- •2.4.5.3. Программа
- •2.4.5.4. Тестирование
- •2.4.6. Задание 6. Вычисление суммы элементов матрицы
- •2.4.6.1. Условие задания
- •2.4.6.2. Пример для варианта 30
- •2.4.6.3. Программа
- •2.4.6.4. Тестирование
- •2.4.7. Задание 7. Вычисление элементов одномерного массива на основе матрицы
- •2.4.7.1. Условие задания
- •2.4.7.2. Пример для варианта 30
- •2.4.2.3. Программа
- •2.4.2.4. Тестирование
- •2.4.8. Задание 8. Комбинированные задачи на двумерные массивы
- •2.4.8.1. Условие задания
- •2.4.8.2. Пример для варианта 30
- •2.4.2.3. Программа
- •2.4.2.4. Тестирование
- •2.4.9. Задание 9. Работа с матрицами
- •2.4.9.1. Условие задания
- •2.4.9.2. Пример решения задачи (вариант 30)
- •2.4.9.3. Разработка алгоритма решения
- •2.4.9.4. Определение переменных программы
- •2.4.9.5. Разработка текста программы
- •2.4.9.6. Отладка программы
- •2.4.9.7. Результаты работы программы
- •2.4.9.8. Формирование случайных чисел
- •3. Выводы
- •4. Требование к отчету
- •4. Краткие теоретические сведения.
- •5. Вопросы для самоконтроля
- •Литература
- •1. Краткие теоретические сведения 2
- •1.1. Хранение значений в массивах 2
2.4.3.2. Пример для варианта 30
Дана целочисленная квадратная матрица. Определить:
– сумму элементов в тех строках, которые не содержат положительных элементов;
– номер столбца, в котором находится самая длинная серия одинаковых элементов.
2.4.3.3. Программа
//Лабораторная работа № 11
/* Вычисление суммы элементов,
и нахождение номера столбца */
//Задание 3
//Вариант 30
//Выполнила Лебедева К.К.
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <iostream.h>
int main()
{
int i, j, m,k,n,K,S,max, dlin;
int B[10][10], ser[10];
//Описание переменных
cout <<" Введите число строк и столбцов m ";cin >> m;
for(i=0; i<m; i++)
for(j=0; j<m; j++)
{
cout <<"Введите B[" << i << "," << j <<"]= ";
cin >> B[i][j];
}
//Контрольный вывод исходных данных
cout <<"Число строк m = " << m << endl;
cout <<"Число столбцов m = "<< m << endl;
cout << "Матрица B:" << endl;
for(i=0;i<m;i++)
{ for(j=0;j<m;j++) cout <<B[i][j] << " ";
cout <<"\n";
}
//Вычисление суммы элементов в тех строках,
//которые не содержат положительных элементов
for (i=0; i<m; i++)
{
S=0;K=0;
for (j=0; j<m;j++)
{if (B[i][j]<0){K = K +1;S = S + B[i][j];}
else {cout << "Строка " << i << " содержит положительные элементы" << endl;
break;
}
}
if (K==m) cout << "Строка " << i << " Сумма элементов = " << S<< endl;
}
//Определение номера столбца, в котором находится самая длинная серия одинаковых элементов
for (k=0; k<m;k++)
{dlin=1;
for (i=0; i<m-1;i++)
{n=1;
for (j=i+1; j<m;j++)
if (B[i][k]== B[j][k]) n = n +1;
if (n>dlin) dlin = n;
}
ser[k] = dlin;
}
max = ser[0];k=0;
for (i=1; i<m;i++)
if (max < ser[i]) {max=ser[i]; k=i;}
cout << "\nДлинная серия равна " << max <<endl;
cout << "\nи находится в "<< k<< " столбце"<< endl;
cout << "\nНажмите любую клавишу..." ;
getch();
return 0;
}//конец main
2.4.3.4. Тестирование
2.4.4. Задание 4. Перестановки строк или столбцов матрицы
2.4.4.1. Условие задания
Разработать алгоритм и программу перестановки строк или столбцов матрицы.
В каждой задаче задана прямоугольная матрица размeром МхN. Требуется составить и отладить программу, которая вводит и печатает все исходные данные, осуществляет перестановку строк или столбцов матрицы в соответствии с условием задачи и печатает полученную матрицу. Для отладки программы самостоятельно подберите необходимые наборы исходных данных.
Задачу выбрать из таблицы 3 в соответствии со своим вариантом.
Таблица 11.4
Варианты заданий
№ |
Задание |
1 |
В матрице размером M*N переставить строки таким образом, чтобы получилась последовательность D1≥D2≥ … ≥ Di ≥ …≥ DN, где Di – максимальное значение элементов i-ой строки (i=1,2,…,N). |
2 |
В матрице размером M*N переставить столбцы таким образом, чтобы получилась последовательность С1<С2<^ < Cj <.. .< См, где Cj- минимальное значение элементов j-ого столбца (j=1,2,.. .,M). |
3 |
В матрице размером M*N переставить строки таким образом, чтобы получилась последовательность F1>F2> ... > Fi > .. .> FN, где Fi - сумма элементов i-ой строки (i=1,2,.. .,N). |
4 |
В матрице размером M*N переставить столбцы таким образом, чтобы получилась последовательность P1<P2<^ < Pj <.. .< PM, где Pj- произведение элементов j-ого столбца (j=1,2,.. .,M). |
5 |
В матрице размером M*N переставить столбцы таким образом, чтобы получилась последовательность K1>K2>_ >Kj >.. .> KM, где Kj- количество положительных элементов j-ого столбца G=1,2,-.,M). |
6 |
В матрице размером M*N переставить строки таким образом, чтобы получилась последовательность L1<L2< ... < Li <.. .< LN, где Li - количество отрицательных элементов i-ой строки (i=1,2,.. .,N). |
7 |
В матрице размером M*N переставить столбцы таким образом, чтобы получилась последовательность R1>R2>^ >Rj >.. .> RM, где Rj- количество нулевых элементов j-ого столбца (j=1,2,.. .,M). |
8 |
В матрице размером M*N переставить строки таким образом, чтобы получилась последовательность S1<S2< ... < Si <.. .< SN, где Si - сумма абсолютных значений элементов i-ой строки (i=1,2,_,N). |
9 |
В матрице размером M*N переставить столбцы таким образом, чтобы получилась последовательность T1<T2<_ < Tj <.. .< TM, где Tj- максимальное значение элементов j-ого столбца (j=1,2,.. .,M). |
10 |
В матрице размером M*N переставить строки таким образом, чтобы получилась последовательность Z1>Z2> ... > Zi > .. .> ZN, где Zi - максимальное значение элементов i-ой строки (i=1,2, ,N). |
11 |
В матрице размером M*N переставить столбцы таким образом, чтобы получилась последовательность T^T^... < Tj <.. .< TM, где Tj- сумма элементов j-ого столбца (j=1,2,_,M). |
12 |
В матрице размером M*N переставить строки таким образом, чтобы получилась последовательность X1>X2> ... > Xi > .. .> XN, где Xi - произведение элементов i-ой строки (i=1,2,.. .,N). |
13 |
В матрице размером M*N переставить столбцы таким образом, чтобы получилась последовательность H^H^... < Hj <.. .< HM, где Hj- количество положительных элементов j-ого столбца (j=1,2,...,M). |
14 |
В матрице размером M*N переставить столбцы таким образом, чтобы получилась последовательность A^A^... >Aj >_> AM, где Aj- количество отрицательных элементов j-ого столбца (j=1,2,..,M). |
15 |
В матрице размером M*N переставить строки таким образом, чтобы получилась последовательность B1<B2< ... < Bi <_< BN, где Bi - количество нулевых значений элементов i-ой строки (i=1,2,_,N). |
16 |
В матрице размером M*N переставить столбцы таким образом, чтобы получилась последовательность С1<С2<_ < Cj <_< CM, где Cj- сумма абсолютных значений элементов j-ого столбца (j=1,2,_,M). |
17 |
В матрице размером M*N переставить строки таким образом, чтобы получилась последовательность Y1<Y2< _ < Yi <_< YN, где Yi - максимальное элементов i-ой строки (i=1,2,_,N). |
18 |
В матрице размером M*N переставить столбцы таким образом, чтобы получилась последовательность E1>E2>_ >Ej >_> EM, где Ej- минимальное значение элементов j-ого столбца (j=1,2,_,M). |
19 |
В матрице размером M*N переставить строки таким образом, чтобы получилась последовательность F1<F2< _ < Fi <_< FN, где Fi - сумма элементов i-ой строки (i=1,2,_,N). |
20 |
В матрице размером M*N переставить столбцы таким образом, чтобы получилась последовательность G1>G2>^ >Gj >.. .> GM, где Gj- произведение элементов j-ого столбца (j=1,2,.. .,M). |
21 |
В матрице размером M*N переставить строки таким образом, чтобы получилась последовательность V1>V2> ... > Vi > .. .> VN, где Vi - количество положительных элементов i-ой строки (i=1,2,...,N). |
22 |
В матрице размером M*N переставить столбцы таким образом, чтобы получилась последовательность Q<C2<... < Cj <.. .< CM, где Cj- количество отрицательных значений элементов j-ого столбца (j=1,2,...,M). |
23 |
В матрице размером M*N переставить строки таким образом, чтобы получилась последовательность K1>K2> ... > Ki > .. .> KN, где Ki - количество нулевых элементов i-ой строки (i=1,2, ,N). |
24 |
В матрице размером M*N переставить столбцы таким образом, чтобы получилась последовательность P^P^... < Pj <.. .< PM, где Pj- сумма элементов j-ого столбца (j=1,2,.. .,M). |
25 |
В матрице размером M*N переставить столбцы таким образом, чтобы получилась последовательность X^X^... >Xj >.. .> XM, где Xj- максимальное значение элементов j-ого столбца (j=1,2,_,M). |
26 |
В матрице размером M*N переставить строки таким образом, чтобы получилась последовательность Y1<Y2< ... < Yi <.. .< YN, где Yi - минимальное значение элементов i-ой строки (i=1,2, ,N). |
27 |
В матрице размером M*N переставить столбцы таким образом, чтобы получилась последовательность ЩХЦ^... >Uj >.. .> UM, где Uj- среднее значение не нулевых элементов j-ого столбца (j=1,2,_,M). |
28 |
В матрице размером M*N переставить строки таким образом, чтобы получилась последовательность V1<V2< _ < Vi <_< VN, где Vi - произведение не нулевых элементов i-ой строки (i=1,2,_,N). |
29 |
В матрице размером M*N переставить столбцы таким образом, чтобы получилась последовательность W1<W2<_ < Wj <_< WM, где Wj- количество положительных значений элементов j-ого столбца (j=1,2,_,M). |
30 |
В матрице размером M*N переставить строки таким образом, чтобы получилась последовательность Z1≥Z2≥ … ≥ Zi ≥ …≥ ZN, где Zi – количество отрицательных элементов i-ой строки (i=1,2,…,N). |
2.4.4.2. Пример для варианта 30
В матрице размером M*N переставить строки таким образом, чтобы получилась последовательность Z1≥Z2≥ … ≥ Zi ≥ …≥ ZN, где Zi – количество отрицательных элементов i-ой строки (i=1,2,…,N).
2.4.4.3. Программа
2.4.4.4. Тестирование
2.5. Домашние задания
2.4.5. Задание 5. Вычисление элементов матрицы
2.4.5.1. Условие задания
Составить программу для вычисления элементов матрицы Y по известным элементам вектора X.
Таблица 11.5
Варианты заданий
№ |
Вектор X |
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 |
|