Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

6 отчёт Смолева В.А

..docx
Скачиваний:
5
Добавлен:
03.08.2021
Размер:
303.21 Кб
Скачать

Поволжский Государственный Университет Телекоммуникаций и Информатики

Кафедра ПОУТС

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

Двумерные массивы

Выполнила :

Студентка гр. ИСТ 74У

Смолева В.А.

Проверили:

Д.т.н., проф. Лиманова Н.И.

Асс. Горелов Г.А.

Самара 2017

Задание: Научиться работать с массивами, производить над ними разные действия.

Вариант 14

Осуществить циклический сдвиг элементов квадратной матрицы размером М Х N вправо на k элементов таким образом: элементы первой строки сдвигаются в последний столбец сверху вниз, из него – в последнюю строку справа налево, из нее – в первый столбец снизу вверх, из него – в первую строку; для остальных элементов – аналогично.

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

#include "stdafx.h"

#include <conio.h>

#include <iostream>

#define R 4

#define C 4

using namespace std;

int main()

{

int p,k, m, i, j, temp, temp2,temp3;

int a[R][C];

setlocale(LC_ALL, "");

m=4;

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

for(i=0;i<m;i++) //ввод чисел в двумерный массив

{for(j=0;j<m;j++)

cin>>a[i][j];

cout<<endl;}

cout<<"Вывод массива"<<endl;

for(i=0;i<m;i++) //вывод двумерного массива

{for(j=0;j<m;j++)

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

cout<<endl;}

cout<<endl;

cout<<"Введите количество сдвигов: ";

cin>>p;

for(i = 0; i < R/2; i++)//количество перемещаемых кругов

{

for(int sdvig = p; sdvig; sdvig--) //количество сдвигов

{

for(j = i, temp = a[i][j]; j < C-1-i; j++) //замена элементов на одной строке

{

temp2 = a[i][j+1];

a[i][j+1] = temp;

temp = temp2;

}

for(k = i+1; k < R-i; k++) //замена по столбцу

{temp3=temp;

temp=a[k][j];

a[k][j]=temp3;}

for( j--, k--; j >= i; j--) //уменьшение индекста строки и столбца - продолжать замену уменьшая число "столбец"

{ temp3=temp;

temp=a[k][j];

a[k][j]=temp3;}

for(j++, k--; k >= i; k--) //увеличение индекса столбца и уменьшение индекса строки- продолжать замену уменьшая число "строка"

{temp3=temp;

temp=a[k][j];

a[k][j]=temp3;}

}

}

for(i=0;i<m;i++) //вывод двумерного массива

{for(j=0;j<m;j++)

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

cout<<endl;}

system("pause");

return 0;}

Пример выполнения программы

Соседние файлы в предмете Программирование