Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лабораторные_ЯП.doc
Скачиваний:
276
Добавлен:
10.06.2015
Размер:
11.47 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-диаграмма: