Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
visual с++.doc
Скачиваний:
30
Добавлен:
18.08.2019
Размер:
10.99 Mб
Скачать

1. Индивидуальное задание №1:

1.1. Постановка задачи:

Составить программу с использованием двумерных локальных массивов для решения задачи. Размерности локальных массивов задавать именованны­ми константами, значения элементов массива - в списке инициализации.

Задача: дана целочисленная прямоугольная матрица. Определить:

  1. сумму элементов в тех строках, которые содержат хотя бы один отрицательный элемент;

  1. номера строк и столбцов всех седловых точек матрицы.

Примечание. Матрица А имеет седловую точку As, если As является минималь­ным элементом в i-й строке и максимальным в j-м столбце.

1.2. UML-диаграмма:

1.3. Листинг программы:

// Лабораторная работа №6

// Индивидуальное задание №1

#include "stdafx.h"

#include <iostream>

#include "conio.h"

#include "math.h"

#include "windows.h"

using namespace std;

int _tmain(int argc, _TCHAR* argv[])

{

setlocale( LC_ALL, "Russian" );

const int nrow = 3, ncol = 5;

int A[nrow][ncol];

int i, j, summ;

cout<<"Лабораторная работа № 6\n"

<<"\nГорошко А.А., БАС-051\n"

<<"\nВариант № 6\n"

<<"\n\nИндивидуальное задание № 1:\n"

<<"\nСоставить программу с использованием двумерных локальных массивов для\n"

<<"\nрешения задачи. Размерности локальных массивов задавать именованными\n"

<<"\nконстантами, значения элементов массива - в списке инициализации.\n"

<<"\n\nЗадача: дана целочисленная прямоугольная матрица. Определить:\n"

<<"сумму элементов в тех строках, которые содержат хотя бы один\n"

<<"\nотрицательный элемент;\n"

<<"\n2) номера строк и столбцов всех седловых точек матрицы.\n"

<<"\n\nПримечание: матрица А имеет седловую точку As, если Аs является\n"

<<"\nминимальным элементом в i-й строке и максимальным в j-м столбце.\n"

<<"\n\nРабота программы:\n"

<<"\nВведите элементы массива: \n\n";

for (i = 0; i < nrow; i++)

{

for (j = 0; j < ncol; j++)

{

cout << "A[" << i << "][" << j << "] = ";

cin >> A[i][j];

}

}

cout << "\n1) ";

for (i = 0; i < nrow; i++)

{

bool flag = false;

summ = 0;

for (j = 0; j < ncol; j++)

{

summ += A[i][j];

if(A[i][j] < 0)

flag = true;

}

if(flag == true)

{

cout<<"Сумма элементов строки "<< i;

cout<<" с отрицательным элементом"<< " = " << summ << "\n\n";

}

}

cout<<"\n2) ";

for (i = 0; i < nrow; i++)

{

int min, max;

int tempValue; // временная переменная

min = 0;

tempValue = A[i][0];

// поиск минимального в строке элемента

for (j = 0; j < ncol; j++)

{

if(A[i][j] < tempValue)

{

min = j;

tempValue = A[i][j];

}

}

// поиск максимального в столбце элемента

max = 0;

tempValue = A[0][min];

for(j = 0; j < nrow; j++)

{

if(A[j][min] > tempValue)

{

max = j;

tempValue = A[j][min];

}

}

if(i == max)

{

cout<<"Седловая точка: "<< "As[" << max << "][" << min << "]";

}

}

getch();

return 0;

}

1.4. Результаты работы программы:

2. Индивидуальное задание №2:

2.1. Постановка задачи:

Составить программу с использованием двумерных динамических массивов для решения задачи индивидуального задания №1.

2.2. UML-диаграмма:

2.3. Листинг программы:

// Лабораторная работа №6

// Индивидуальное задание №2

#include "stdafx.h"

#include <iostream>

#include "conio.h"

#include "math.h"

#include "windows.h"

using namespace std;

int _tmain(int argc, _TCHAR* argv[])

{

setlocale( LC_ALL, "Russian" );

int nrow, ncol, i, j, summ;

cout<<"Лабораторная работа № 6\n";

cout<<"\nГорошко А.А., БАС-051\n";

cout<<"\nВариант № 6\n";

cout<<"\n\nИндивидуальное задание № 2:\n";

cout<<"\nСоставить программу с использованием двумерных динамических\n";

cout<<"\nмассивов для решения задачи индивидуального задания №1.\n";

cout<<"\n\nРабота программы:\n";

cout<<"\nВведите количество строк и столбцов:\n\n"<< "i = " ;

cin >> nrow;

cout<< "j = ";

cin >> ncol;

int **A = new int *[nrow];

cout<<"\nВведите элементы массива: \n\n";

for (i = 0; i < nrow; i++)

{

A[i] = new int[ncol];

for (j = 0; j < ncol; j++)

{

cout << "A[" << i << "][" << j << "] = ";

cin >> A[i][j];

}

}

cout<<"\n1) ";

for (i = 0; i < nrow; i++)

{

bool flag = false;

summ = 0;

for (j = 0; j < ncol; j++)

{

summ += A[i][j];

if(A[i][j] < 0)

flag = true;

}

if(flag == true)

{

cout<<"Сумма элементов строки "<< i;

cout<<" с отрицательным элементом"<< " = " << summ << "\n\n";

}

}

cout<<"\n2) ";

for (i = 0; i < nrow; i++)

{

int min, max;

int tempValue; // временная переменная

min = 0;

tempValue = A[i][0];

// поиск минимального в строке элемента

for (j = 0; j < ncol; j++)

{

if(A[i][j] < tempValue)

{

min = j;

tempValue = A[i][j];

}

}

// поиск максимального в столбце элемента

max = 0;

tempValue = A[0][min];

for(j = 0; j < nrow; j++)

{

if(A[j][min] > tempValue)

{

max = j;

tempValue = A[j][min];

}

}

if(i == max)

{

cout<<"Седловая точка: "<< "As[" << max << "][" << min << "]";

}

}

getch();

return 0;

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]