Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.05.2016, 16:53   #1
Челобег
 
Регистрация: 03.04.2016
Сообщений: 3
Печаль Осуществить циклический сдвиг элементов квадратной матрицы(Помогите пожалуйста!!! )

Осуществить циклический сдвиг элементов квадратной матрицы влево на k элементов таким образом: элементы 1-й строки сдвигаются в первый столбец снизу вверх, из него - в последнюю строку справа налево, из нее - в последний столбец сверху вниз, из него - в первую строку.
Пожалуйста по проще , чтоб новичку можно было разобраться быстрее )))
Челобег вне форума Ответить с цитированием
Старый 11.05.2016, 17:10   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

если не сильно заморачиваться, то делайте циклический сдвиг на 1 элемент влево.
А потом вызывайте этот сдвиг K раз
Serge_Bliznykov вне форума Ответить с цитированием
Старый 21.05.2016, 01:11   #3
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Много непонятного в твоём задании. Нет, не в описании задачи, а в "обвязки задания": что вы изучали на уроках, а что нет (программу можно написать разными способами); как вводится исходные данные (матрица, к)?; можно ли использовать специальные функции (getchar(), setw(4)); ...
Обычно смотрица пример, который вы разбирали на уроки - и по аналогии делается и задание.


Код:
#include <iostream>
#include <iomanip>
using namespace std;

int main()
{
	int b, j, i;
	const int n = 4;

//	Заданная матрица (может её нужно вводить с клавиатуры?)

	int a[n][n] =
	{
		{ 4, 5, 11, 15 },      //вводим матрицу
		{ 10, 3, 6, 12 },
		{ 14, 9, 2, 7 },
		{ 16, 13, 8, 1 }
	};

//	Сдвиг на 90 градусов против часовой стрелки

	for (i = 0; i<n / 2; i++)
	for (j = i; j<n - 1 - i; j++)
	{
		b = a[i][j];
		a[i][j] = a[j][n - 1 - i];
		a[j][n - 1 - i] = a[n - 1 - i][n - 1 - j];
		a[n - 1 - i][n - 1 - j] = a[n - 1 - j][i];
		a[n - 1 - j][i] = b;
	}

//	Вывод на экран

	for (i = 0; i < n; i++)
	{
		for (j = 0; j < n; j++)
		{
			cout  << setw(4)<< a[i][j];
		}
		cout << endl;
	}
	
	getchar();
	return 0;
}



ura_111 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Осуществить циклический сдвиг элементов квадратной матрицы ( Паскаль ) Челобег Помощь студентам 0 03.04.2016 14:36
ЦИКЛИЧЕСКИЙ СДВИГ ЭЛЕМЕНТОВ КВАДРАТНОЙ МАТРИЦЫ kreiver Помощь студентам 6 04.03.2014 18:50
Осуществить циклический сдвиг элементов прямоугольной матрицы на n элементов вправо или вниз Nekro95 Помощь студентам 12 07.11.2012 22:31
C++.циклический сдвиг элементов квадратной матрицы arsalan Помощь студентам 1 11.05.2010 08:08