Дана прямоугольная матрица. Преобразовать матрицу по правилу: переставляем местами первый столбец и последний, затем — второй и предпоследний, и т.д.
#include <iostream.h>
void ReadMatr(int **a, int n, int m); //прототипы функций
void PrintMatr(int **a, int n, int m);
void P(int **a, int n, int m);
void main()
{ int n=3, m=4, i;
int **a;
a = new int*[n];
for(i = 0; i < n; i++)
a[i] = new int [m];
ReadMatr(a, n, m);// вызов функции ввода данных
PrintMatr(a, n, m);// вызов функции вывода матрицы на экран
P(a, n, m); // вызов функции перемещения столбцов матрицы
PrintMatr(a, n, m); // вызов функции вывода матрицы на экран
for(i = 0; i < n; i++)
delete []a[i];
delete []a;
}
void ReadMatr(int **a, int n, int m) // Ввод матрицы с клавиатуры
{ int i, j;
cout << "Input matriza A(" << n << "*" << m << "):" << endl;
for(i = 0; i < n; i++)
for(j = 0; j < m; j++)
cin >>a[i][j];
}
void PrintMatr(int **a, int n, int m) // Вывод матрицы на экран монитора
{ int i, j;
cout << "Matriza:" << endl;
for(i = 0; i < n; i++)
{ for(j = 0; j < m; j++)
cout << a[i][j] << " ";
cout << endl;
}
}
void P(int **a, int n, int m) // Перестановка столбцов
{ int i, j, j1, c;
for(i = 0; i < n; i++)
for(j = 0, j1 = m - 1; j < j1; j++, j1--)
{ c = a[i][j];
|
|
a[i][j] = a[i][j1];
a[i][j1] = c;
}
}
Задание на лабораторную работу: разработать программу, содержащую:
· функцию main(), в которой объявлены переменные и производится ввод-вывод данных (память под массив объявить динамически);
· функции для расчета величин согласно варианту задания. Эти функции необходимо вызвать из главной функции программы main(). Обмен данными между функциями осуществить через параметры и возвращаемое значение функции. Если требуется работать с массивами, то необходимо использовать операторы динамического выделения памяти.
Варианты заданий
Вариант №1
Дана целочисленная квадратная матрица. Определить:
· произведение элементов в тех строках, которые содержат хотя бы один отрицательный элемент;
· максимальное значение на главной диагонали, и заменить нулями строку, в которой это значение расположено.
Каждый пункт задания оформить в виде отдельной функции.
________________________________________________________________
Вариант №2
Вычислить приближенное значение интеграла по формуле прямоугольников для заданного целого n > 39. Формула прямоугольников:
Вычисление одного слагаемого и общей суммы оформить в виде функций.
________________________________________________________________
Вариант №3
Дана целочисленная квадратная матрица. Определить:
· количество строк, среднее арифметическое элементов которых меньше заданной величины;
· сумму элементов, расположенных выше главной диагонали.
Каждый пункт задания оформить в виде отдельной функции.
________________________________________________________________
Вариант №4
Дана целочисленная квадратная матрица. Определить:
· номер первой из строк, содержащих хотя бы один положительный элемент;
|
|
· упорядочить по возрастанию столбец, сумма элементов которого минимальна.
Каждый пункт задания оформить в виде отдельной функции.
________________________________________________________________
Вариант №5
Дана целочисленная квадратная матрица. Определить:
· номер последнего из столбцов, не содержащих ни одного отрицательного элемента.
· количество отрицательных элементов в тех строках, которые не содержат нулевых элементов.
Каждый пункт задания оформить в виде отдельной функции.
________________________________________________________________
Вариант №6
Вычислить приближенное значение интеграла по формуле прямоугольников для заданного целого n > 100. Формула прямоугольников:
Вычисление одного слагаемого и общей суммы оформить в виде функций.
________________________________________________________________
Вариант №7
Дана целочисленная квадратная матрица. Определить:
· минимум среди сумм элементов диагоналей;
· номер столбца, который не содержит ни одного элемента, большего заданного числа.
Каждый пункт задания оформить в виде отдельной функции.
________________________________________________________________
Вариант №8
Дана целочисленная квадратная матрица. Определить:
· номер строки, в которой содержится более одного заданного числа;
· максимальный элемент матрицы и поменять местами строку в которой он находится, с последней строкой.
Каждый пункт задания оформить в виде отдельной функции.
________________________________________________________________
Вариант №9
Для заданного значения x > 0.5 и e =0,00001 вычислить с точностью до e сумму членов бесконечного ряда: где n=1,2,3,…. Считать, что требуемая точность достигнута, если очередное слагаемое по модулю меньше e. Напечатать полученное значение суммы и значение ln (x). Вычисление одного слагаемого и общей суммы оформить в виде функций, возведение в степень осуществлять в цикле.
________________________________________________________________
Вариант №10
В одномерном массиве, состоящем из n вещественных элементов, вычислить:
· номер максимального элемента;
· произведение элементов массива, расположенных между первым и вторым нулевыми элементами;
· преобразовать массив таким образом, чтобы в первой его половине располагались элементы, стоявшие в нечётных позициях, во второй – элементы, стоявшие в чётных позициях.
Каждый пункт задания оформить в виде отдельной функции.
________________________________________________________________
Вариант №11
В одномерном массиве, состоящем из n вещественных элементов, вычислить:
· номер минимального элемента массива;
· сумму элементов массива, расположенных между первым и вторым отрицательными элементами;
· преобразовать массив таким образом, чтобы в первой его половине располагались элементы, модуль которых не превышает 1, потом все остальные.
Каждый пункт задания оформить в виде отдельной функции.
________________________________________________________________
Вариант №12
Дана целочисленная квадратная матрица. Определить:
· произведение элементов в тех строках, которые не содержат отрицательных элементов;
· максимум среди сумм элементов диагоналей матрицы.
Каждый пункт задания оформить в виде отдельной функции.
________________________________________________________________
Вариант№13
Дана целочисленная квадратная матрица. Определить:
· сумму элементов в тех столбцах, которые не содержат отрицательных элементов;
· минимум среди сумм элементов диагоналей матрицы.
Каждый пункт задания оформить в виде отдельной функции.
________________________________________________________________
Вариант№14
Вычислить и напечатать сумму членов бесконечного ряда для заданного значения х с точностью до e =0,00001: Вычисление одного слагаемого и общей суммы оформить в виде функций.
Вариант №15
Дана целочисленная квадратная матрица. Определить:
· сумму элементов в тех столбцах, которые содержат хотя бы один отрицательный элемент;
|
|
· номера той строки, в которой сумма положительных элементов максимальна.
Каждый пункт задания оформить в виде отдельной функции.
Контрольные вопросы
1. Каков синтаксис операторов объявления и определения функции? Какой из этих параметров обязателен при работе с функциями и почему?
2. Какое количество функций может присутствовать в программе?
3. Что такое прототип функции, его предназначение?
4. В чем разница между параметрами, переданными по значению и по адресу?
5. Каким образом можно установить значение параметров по умолчанию?
6. Каким образом передают значения из функции в главную функцию программы main()?
7. Существуют ли функции без параметров?
8. Существуют ли ограничения на число параметров подпрограмм?
9. Какого типа может быть значение функции?
10. Где объявляются глобальные и локальные переменные?
11. Какие подпрограммы называют рекурсивными?
12. Что такое граничное условие при организации рекурсивной подпрограммы?