ООП. Лабораторная работа 4 Разработка программ с выделением подпрограмм (4 часа)
Скачать 199.5 Kb.
|
Лабораторная работа №4Разработка программ с выделением подпрограмм |
Имя | Смысл | Тип | Структура | |||
Исходные данные | ||||||
A | заданные матрицы | вещественный | Двумерный массив | |||
B | ||||||
C | ||||||
b | Изначальное значения максимума матрицы B | вещественный | простая переменная | |||
a | Изначальное значения максимума матрицы A | вещественный | простая переменная | |||
c | Изначальное значения максимума матрицы C | вещественный | простая переменная | |||
rezult | Изначальное значение результат выражения | вещественный | простая переменная | |||
Выходные данные | ||||||
rezultat | Результат выражения | вещественный | простая переменная |
Состав данных функции matrinA
Имя | Смысл | Тип | Структура | |||
Исходные данные | ||||||
A | Вводимая матрица | вещественный | Двумерный массив с числом столбцов 7 или 5 | |||
n | Количество строк | целый | простая переменная | |||
m | Количество столбцов | целый | простая переменная | |||
| | | |
Состав данных функции matrinB
Имя | Смысл | Тип | Структура | |||
Исходные данные | ||||||
B | Вводимая матрица | вещественный | Двумерный массив с числом столбцов 7 или 5 | |||
n | Количество строк | целый | простая переменная | |||
m | Количество столбцов | целый | простая переменная | |||
| | | |
Состав данных функции matrinC
Имя | Смысл | Тип | Структура | |||
Исходные данные | ||||||
C | Вводимая матрица | вещественный | Двумерный массив с числом столбцов 7 или 5 | |||
n | Количество строк | целый | простая переменная | |||
m | Количество столбцов | целый | простая переменная | |||
| | | |
Состав данных функции maxlowdiag
Имя | Смысл | Тип | Структура | ||||||
Исходные данные | |||||||||
A | матрица | вещественный | Двумерный массив | ||||||
n | Количество строк | целый | простая переменная | ||||||
m | Количество столбцов | целый | простая переменная | ||||||
pa | Поинтер, содержит данные области памяти, максимальной переменой в матрице | вещественный | Переменная - указатель | ||||||
Выходные данные | |||||||||
maxA | Максимальный элемент матрицы ниже главн. Д. | вещественный | простая переменная | ||||||
| | | |
Состав данных функции maxelB
Имя | Смысл | Тип | Структура | |
Исходные данные | ||||
B | матрица | вещественный | Двумерный массив | |
n | Количество строк | целый | простая переменная | |
m | Количество столбцов | целый | простая переменная | |
pb | Поинтер, содержит данные области памяти, максимальной переменой в матрице | вещественный | Переменная - указатель | |
Выходные данные | ||||
maxB | Максимальный элемент матрицы | вещественный | простая переменная |
Состав данных функции maxelС
Имя | Смысл | Тип | Структура |
Исходные данные | |||
С | матрица | вещественный | Двумерный массив |
n | Количество строк | целый | простая переменная |
m | Количество столбцов | целый | простая переменная |
pс | Поинтер, содержит данные области памяти, максимальной переменой в матрице | вещественный | Переменная - указатель |
Выходные данные | |||
maxC | Максимальный элемент матрицы | вещественный | простая переменная |
Состав данных функции dropoutmatrix
Имя | Смысл | Тип | Структура |
Исходные данные | |||
A | матрица | вещественный | Двумерный массив |
n | Количество строк | целый | простая переменная |
m | Количество столбцов | целый | простая переменная |
pс | Поинтер, содержит данные области памяти, максимальной переменой в матрице | вещественный | Переменная - указатель |
Выходные данные | |||
A | Заполненная матрица | вещественный | Двумерный массив |
Состав данных функции rezultat
Имя | Смысл | Тип | Структура |
Исходные данные | |||
rezult | Переменная, хранит результат выражения | вещественный | Переменная - указатель |
pa | Поинтер, содержит данные области памяти, максимальной переменой в матрице | вещественный | Переменная - указатель |
pb | Поинтер, содержит данные области памяти, максимальной переменой в матрице | вещественный | Переменная - указатель |
pс | Поинтер, содержит данные области памяти, максимальной переменой в матрице | вещественный | Переменная - указатель |
Выходные данные | |||
rezult | Значение выражения | вещественный | простая переменная |
Ф
орма ввода для функции dropoutmatrix
Форма вывода для функции dropoutmatrix
Блок-схема алгоритма функции main
Однофайловая программа на СИ++
(консольное приложение MS Visual Studio 2008)
#include
using namespace std;
void matrinA(float A[5][4], int n, int m) {
cout << "matrix A" << endl;
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++) {
cin >> A[i][j];
}
}
}
void matrinB(float B[5][5], int n, int m) {
cout << "matrix B " << n << m << endl;
for (int i = 0; i < n; i++)
for (int j = 0; j < m; j++)
cin >> B[i][j];
}
void matrinC(float C[3][7], int n, int m) {
cout << "matrix C " << n << m << endl;
for (int i = 0; i < n; i++)
for (int j = 0; j < m; j++)
cin >> C[i][j];
}
void maxlowdiag(float A[5][4], int n, int m, float* pa) {
float maxA = A[0][0];
for (int i = 0; i <= n; i++)
{
for (int j = 0; j <= m; j++)
{
if (i > j and maxA <= A[i][j]) {
maxA = A[i][j];
(*pa) = maxA;
}
}
}
cout << "Макс элемент матрицы a= " << maxA << endl;
}
void maxelB(float B[5][5], int n, int m, float* pb)
{
float maxB = B[0][0];
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
if (maxB <= B[i][j])
maxB = B[i][j];
(*pb) = maxB;
}
}
cout << "Макс элемент матрицы b= " << maxB << endl;
}
void maxelC(float C[3][7], int n, int m, float* pc)
{
float& maxC = C[0][0];
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
if (maxC <= C[i][j])
maxC = C[i][j];
(*pc) = maxC;
}
}
cout << "Макс элемент матрицы c= " << maxC << endl;
}
void dropoutmatrix(float A[5][4], int n, int m)
{
cout << "matrix \n";
for (int i = 0; i < n; i++)
{
//цикл по переменной i, в котором перебираем строки матрицы
for (int j = 0; j < m; j++)
cout << A[i][j] << "\t"; //вывод очередного элемента матрицы
cout << endl; //переход на новую строку после вывода всех элементов строки
}
}
void rezultat(float* pa, float* pb, float* pc)
{
float rezult = *pa + *pb - *pc;
cout << "rezultat= " << rezult << endl;
}
int main() {
setlocale(LC_ALL, "rus");
float A[5][4]; float B[5][5]; float C[3][7]; float b = 0, a = 0, c = 0, rezult = 0;
matrinA(A, 5, 4);
dropoutmatrix(A, 5, 4);
maxlowdiag(A, 5, 4, &a);
matrinB(B, 5, 5);
maxelB(B, 5, 5, &b);
matrinC(C, 3, 7);
maxelC(C, 3, 7, &c);
rezultat(&a, &b, &c);
}