Добавил:
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;//сумма по диагонали

int *sum1=new int[n];//массив для суммы строк и столбцов

int b=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];

}

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 i=0;i<n;i++)//обнуление массива суммы

sum1[i]=0;

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

sum+=a[i][i];

for (int i=0; i<n;i++){//сумма по строкам

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

sum1[j]+=a[j][i];

}

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

if(sum1[i]==sum)

b++;//подсчет совпадений

sum1[i]=0;//обнуление массива суммы

}

for (int i=0; i<n;i++){//сумма по столбцам

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

sum1[i]+=a[i][j];

}

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

if(sum1[i]==sum)

b++;//подсчет совпадений

}

cout<<endl;

if (b==2*n)//проверка и вывод

cout<<"Магический квадрат! Сумма элементов в каждой строке, столбце и по диагонали равна "<<sum<<endl<<endl;

else cout<<"Не магический квадрат!"<<endl<<endl;

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

delete []sum1;

}

Вариант №5

Переверните исходную матрицу n×n относительно ее главной диагонали. Исходную и полученную матрицы выведите на экран.

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

#include <iostream>

#include <locale>

using namespace std;

#include <time.h>

Void main()

{

setlocale(LC_ALL,"Russian");

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

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

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

a[i]= new int[n];

int b;//счетчик совпадений

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 i=0;i<n;i++)//перестановка

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

if (i<j){

b=a[i][j];

a[i][j]=a[j][i];

a[j][i]=b;

}

cout<<endl<<"Исправленный массив: "<<endl<<endl;//вывод исправленного массива

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

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

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

cout<<endl;

}

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

}

Вариант №6

Рассчитать «след» квадратной матрицы заданного размера.

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

#include <iostream>

#include <locale>

using namespace std;

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;

}

Вариант №7

Напишите программу для перестановки максимальных элементов строк числовой таблицы на главную диагональ. Элементы главной диагонали поставьте на место максимального элемента в этой строке.

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

#include <iostream>

#include <locale>

using namespace std;

#include <time.h>