- •Содержание
- •Введение
- •1. Теоретические сведения
- •1.1. Общие сведения
- •1.2. Основные понятия языка
- •1.3. Типы данных
- •1.4. Переменные и константы
- •1.5. Ввод и вывод информации
- •1.5.1. Форматированный ввод данных
- •1.5.2. Форматированный вывод данных
- •1.6. Операции и операторы
- •1.6.1. Операции языка Си
- •1.6.2. Операторы
- •1.6.2.1. Оператор присваивания
- •1.6.2.2. Условные операторы. Оператор безусловного перехода
- •1.6.2.3. Операторы цикла
- •2. Лабораторные работы
- •2.1. Лабораторная работа 1. Линейный вычислительный процесс
- •2.2. Лабораторная работа 2. Разветвляющийся вычислительный процесс
- •2.3. Лабораторная работа 3. Оператор переключатель switch
- •2.4. Лабораторная работа 4. Циклический вычислительный процесс
- •2.5. Лабораторная работа 5. Массивы
- •2.6. Лабораторная работа 6. Матрицы
- •2.7. Лабораторная работа 7. Подпрограммы
- •Заключение
- •Библиографический список
2.6. Лабораторная работа 6. Матрицы
Цель работы: получение навыков работы с матрицами.
Задачи: построить алгоритм в виде блок-схемы, написать программу на алгоритмическом языке Си++ в режиме Windows Forms, проанализировать полученный результат, составить отчет.
Пример. Сформировать массив из среднеарифметических значений положительных элементов каждого столбца матрицы.
Алгоритм решения задачи представлен на рис. 16.
n – количество строк
m – количество столбцов
Рис. 16. Алгоритм решения задачи в виде блок-схемы
Начальная форма программы показана на рис. 17.
Рис. 17. Начальная форма
Программа:
{const int n=3, m=4;
int K, i, j, c=0, a[n][m];
float b[m], S;
Random^ rand=gcnew Random;
for (i=0; i<n; i++)
{for (j=0; j<m; j++)
{a[i][j]=rand->Next (-50, 50);
richTextBox1->Text+=" "+a[i][j].ToString();}
richTextBox1->Text+=Environment::NewLine;}
for (j=0; j<m; j++)
{S=0; K=0;
for (i=0; i<n; i++)
if (a[i][j]>0)
{S+=a[i][j];
K++;}
if (K!=0)
{b[c]=S/K;
textBox1->Text+=" "+b[c].ToString();}
c++;}}}}
Результат выполнения программы показан на рис. 18.
Рис. 18. Результат выполнения программы
Задания к лабораторной работе 6
Вариант 1
Дана матрица А(5, 5). Найти количество положительных элементов матрицы, не лежащих на главной диагонали. Если количество окажется больше 3, то заменить им первый нулевой элемент.
Вариант 2
Дана матрица А(4, 4). Найти максимальный элемент матрицы среди элементов, лежащих под главной диагональю. Если максимальный элемент окажется отрицательным, то заменить его нулём.
Вариант 3
Дана матрица С(5, 4). Найти максимальный элемент, лежащий на главной диагонали, и заменить им первый нулевой элемент матрицы.
Вариант 4
Дана матрица J(4, 4). Найти минимальный элемент среди элементов, не лежащих на главной диагонали. Если минимальный элемент окажется положительным, то заменить его нулём.
Вариант 5
Дана матрица К(5, 4). Найти минимальный элемент, лежащий над главной диагональю, и поменять его местами с последним отрицательным элементом матрицы.
Вариант 6
Дана матрица В(3, 4). Заменить отрицательные элементы, лежащие на побочной диагонали, произведением положительных элементов матрицы.
Вариант 7
Дана матрица L(4, 5). Найти количество отрицательных элементов третьей строки и заменить им первый положительный элемент, лежащий на побочной диагонали.
Вариант 8
Дана матрица T(4, 4). Найти сумму элементов, лежащих на побочной диагонали и заменить ею максимальный элемент матрицы (если максимальных элементов несколько, то заменить все).
Вариант 9
Дана матрица Q(5, 5). Найти минимальный элемент матрицы среди элементов, лежащих под побочной диагональю, и заменить его на первый отрицательный элемент матрицы.
Вариант 10
Дана матрица U(6, 3). Расположить элементы каждого столбца по убыванию.
Вариант 11
Дана матрица Z(4, 4). Найти произведение элементов, которые не лежат на побочной диагонали. Если произведение окажется положительным, то заменить им минимальный элемент матрицы.
Вариант 12
Дана матрица Х(3, 4). Поменять местами элементы с четными и нечетными столбцами.
Вариант 13
Дана матрица Y(4, 4). Поменять местами элементы второй строки с элементами четвертой строки.
Вариант 14
Дана матрица G(3, 5). Расположить элементы каждой строки по возрастанию.
Вариант 15
Дана матрица S(5, 5). Расположить элементы каждой строки по убыванию.
Вариант 16
Дана матрица J(3, 3). Поменять местами строки со столбцами. Найти сумму элементов, лежащих на главной диагонали.
Вариант 17
Даны матрицы К(3, 3), М(3, 3). Перемножить матрицы.
Вариант 18
Даны матрицы А(3, 3), В(3, 3). Сформировать матрицу С(3, 3) по формуле С = А*В - А
Вариант 19
Даны матрицы С(3, 3), D(3, 3). Сформировать матрицу К(3, 3) по формуле К = 4*D – C*D
Вариант 20
Дана матрица Q(5, 5). Найти максимальный элемент матрицы, не лежащий на главной диагонали, и все элементы матрицы, кроме этого максимального, удвоить.
Вариант 21
Дана матрица О(4, 4). Найти количество элементов, значения которых не превышают по абсолютной величине Х. Если количество больше 2, то найти минимальный элемент, лежащий на главной диагонали.
