Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Козырева И., лабораторные работы.doc
Скачиваний:
4
Добавлен:
16.04.2019
Размер:
2.95 Mб
Скачать

Void main()

{

setlocale(LC_ALL,"Russian");

const int n=3;//объявление переменных и констант

int **a=new int*[n];//объявление массива

for (int i=0; i<n;i++)

a[i]= new int[n];

int sum=0;

for (int i=0;i<n;i++)//диалог с пользователем

for (int j=0; j<n;j++){

cout<<"Введите "<<" "<<i+1<<" "<<j+1<<" элемент массива"<<endl;

cin>>a[i][j];

}

for (int i=0;i<n;i++){//вывод исходного массива

for (int j=0; j<n;j++)

cout<<a[i][j]<<"\t";

cout<<endl;

}

for (int i=0;i<n;i++)//проверка и подсчет

for (int j=0; j<n;j++)

if (i<j)

sum+=a[i][j];

cout<<"Сумма элементов матрицы,расп. выше главной диагонали = "<<sum<<endl;//вывод

delete []a;//освобождение памяти

}

Вариант №2

Дана целочисленная матрица заданного размера. Определить максимальный элемент и его индексы, а также минимальный элемент и его индексы. Сам максимальный элемент заменить внутри матрицы на 100, а минимальный элемент на -100.

#include "stdafx.h"//директивы

#include <iostream>

#include <locale>

using namespace std;

#include <time.h>

Void main()

{

setlocale(LC_ALL,"Russian");

srand((unsigned)time(NULL));//использование времени

const int n=3;//объявление переменных и констант

int **a=new int*[n];//объявление массива

for (int i=0; i<n;i++)

a[i]= new int[n];

int min=50;

int a1;

int b;

int c;

int d;

int max=-50;

cout<<"Исходный массив: "<<endl<<endl;

for (int i=0;i<n;i++)//заполнение массива

for (int j=0; j<n;j++)

a[i][j]=rand()%100-50;

for (int i=0;i<n;i++){//вывод исходного массива

for (int j=0; j<n;j++)

cout<<a[i][j]<<"\t";

cout<<endl;

}

for (int i=0;i<n;i++)//поиск минимального

for (int j=0; j<n;j++)

if (a[i][j]<min){

min=a[i][j];

a1=i;

b=j;

}

for (int i=0;i<n;i++)//поиск максимального

for (int j=0; j<n;j++)

if (a[i][j]>max){

max=a[i][j];

c=i;

d=j;

}

cout<<endl;

a[a1][b]=-100;//замена

a[c][d]=100;

cout<<"Измененный массив: "<<endl<<endl;

for (int i=0;i<n;i++){//вывод измененного массива

for (int j=0; j<n;j++)

cout<<a[i][j]<<"\t";

cout<<endl;

}

cout<<endl;

cout<<"Минимальный элемент "<<a1+1<<" "<<b+1<<" = "<<min<<endl;//вывод

cout<<"Максимальный элемент "<<c+1<<" "<<d+1<<" = "<<max<<endl;

delete []a;//высвобождение памяти

}

Вариант №3

Определить, есть ли в матрице заданного размера "седловые" точки.

#include "stdafx.h"//директивы

#include <iostream>

#include <locale>

using namespace std;

#include <time.h>

Void main()

{

setlocale(LC_ALL,"Russian");

//srand((unsigned)time(NULL));//использование времени

const int n=3;//объявление переменных и констант

int **a=new int*[n];//объявление массива

for (int i=0; i<n;i++)

a[i]= new int[n];

int min=50;//переменная для поиска минимальных значений

int max=0;//переменная для поиска макс. элементов

int a1=0;//доп. счетчик

int mj;//временные переменные

int m;

int b;

int c;

for (int i=0;i<n;i++)//диалог с пользователем

for (int j=0; j<n;j++){

cout<<"Введите "<<" "<<i+1<<" "<<j+1<<" элемент массива"<<endl;

cin>>a[i][j];

}

cout<<"Исходный массив: "<<endl<<endl;

for (int i=0;i<n;i++){//вывод исходного массива

for (int j=0; j<n;j++)

cout<<a[i][j]<<"\t";

cout<<endl;

}

for (int j=0; j<n;j++){

if (a[a1][j]<min){//поиск минимального в строке

min=a[a1][j];

m=a1;

mj=j;

}

if (a[j][a1]>max){//поиск максимального в столбце

max=a[j][a1];

b=j;

c=a1;

}

if (m==b&&mj==c){//проверка равны ли индексы

cout<<endl;

cout<<"Седловая точка - элемент "<<m+1<<" "<<mj+1<<" = "<<min<<endl;//вывод

}

a1++;//увеличение на 1 строки и столбца

}

delete []a;//высвобождение памяти

}

Вариант №4

Дана целочисленная матрица заданного размера. Определить, является ли она "магическим" квадратом.

#include "stdafx.h"//директивы

#include <iostream>

#include <locale>

using namespace std;

#include <time.h>