Форум программистов, компьютерный форум, киберфорум
Наши страницы
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
 
really
0 / 0 / 0
Регистрация: 26.05.2010
Сообщений: 3
1

матрицы! круговой сдвиг

26.05.2010, 19:03. Просмотров 369. Ответов 3
Метки нет (Все метки)

как из матрицы

1 2 3
4 5 6
7 8 9

получить матрицу вида
такого
4 1 2
7 5 3
8 9 6

или такого
2 3 6
1 5 9
4 7 8

Добавлено через 16 минут
хотя бы подскажите как вот это
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#include <stdio.h>
#include <conio.h>
double GG ( double a[10][10], int p,int n,int m)
{
int i, j, k ;
double temp,temp2,temp3;
for(i=0; i < n/2; i++)
{
for(int z = p; z>0 ; z--) //кол-во сдвигов - к
{
for(j = i, temp = a[i][j]; j < n-1-i; j++)
{
temp2 = a[i][j+1];
a[i][j+1] = temp;
temp=temp2;
}
for(k = i+1; k < m-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;
}}}
return a[10][10];
 
}
 
int main()
{
int p, n, m, i, j;
double a[10][10];
{
printf("Vvedite n,m \n");
scanf ("%d %d",&n,&m);
/*n=4;
m=4;*/
}
 
printf("Vvedite elementy matricy\n");
for(i=0;i<n;i++)
for(j=0;j<m;j++)
{
printf("a[%d][%d]=",i,j);
scanf("%lf",&a[i][j]);
}
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
printf("%2.lf", a[i][j]);
}
printf ("\n");
}
{printf("Vvedite k\n");
scanf ("%d",&p);
GG(a,p,n,m);
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
printf("%2.lf", a[i][j]);
}
printf ("\n");
}
getch();
}
return 0;
}
выглядит на паскале!

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.05.2010, 19:03
Ответы с готовыми решениями:

Циклический сдвиг элементов квадратной матрицы вправо (оформить в виде процедуры)
Осуществить циклический сдвиг элементом квадратной матрицы размером M*N вправо...

Если строка матрицы содержит 0, то циклически осуществить сдвиг вправо, если нет - влево
Здравствуйте! Помогите пожалуйста с задачкой: дан двумерный массив, если строка...

Вывести на экран монитора круговой сектор
&quot;Вивести на екран монитора коловий сектор таким чином шоб вин змінював свій...

Сдвиг в массиве
Задание 1: Дан массив размера N.Осуществить циклический сдвиг элементов...

Матрица: сдвиг
Дaна матрица N*M, элементами которой являются целые числа и номер столбца К....

3
Wizzy
41 / 40 / 11
Регистрация: 12.11.2009
Сообщений: 115
26.05.2010, 19:51 2
Интересная задачка ))) зацепило... щас сделаемс наверн

Добавлено через 24 минуты
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
i:=1;
b:=a[1,n];
for j:=n downto 1 do
      a[i,j]:=a[i,j-1];
 
j:=n;
c:=a[n,n];
for i:=n downto 2 do
   a[i,j]:=a[i-1,j];
 
a[2,n]:=b;
 
i:=n;
b:=a[n,1];
for j:=1 to n-2 do
      a[i,j]:=a[i,j+1];
a[n,n-1]:=c;
 
j:=1;
c:=a[2,1];
for i:=2 to n-1 do
    a[i,j]:=a[i+1,j];
a[n-1,1]:=b;
a[1,1]:=c;
1
really
0 / 0 / 0
Регистрация: 26.05.2010
Сообщений: 3
26.05.2010, 20:12  [ТС] 3
а против часовой как будет выглядеть?
0
maladoy
113 / 85 / 56
Регистрация: 09.01.2009
Сообщений: 209
27.05.2010, 19:08 4
вот и вправо и влево
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
procedure sdvigvp(k:integer);
  begin
    i:=k;
    b:=a[k,n-k+1];
    for j := n-k+1 downto  k+1 do
    a[i,j]:=a[i,j-1];
    c:=a[n-k+1,n-k+1];
    j:=n-k+1;
    for I := n-k+1  downto k+2 do
    a[i,j]:=a[i-1,j];
    a[k+1,n-k+1]:=b;
    B:=a[n-k+1,k];
    i:=n-k+1;
    for j := 1 to n-k-1 do
    a[i,j]:=a[i,j+1];
    a[i,n-k]:=c;
    j:=k;
    for I := k to n-k-1 do
    a[i,j]:=a[i+1,j];
    a[n-k,j]:=b;
end;
procedure sdvigvl(k:integer);
  begin
   j:=k;
   b:=a[n-k+1,k];
  for i := n-k+1 downto k+1 do
   a[i,j]:=a[i-1,j];
   i:=n-k+1;
   c:=a[n-k+1,n-k+1];
  for j := n-k+1  downto k+2 do
   a[i,j]:=a[i,j-1];
  a[n-k+1,k+1]:=b;
   b:=a[k,n-k+1];
   j:=n-k+1;
  for I :=1 to n-k do
   a[i,j]:= a[i+1,j];
   i:=k;
   a[n-k,n-k+1]:=c;
  for j := 1 to n - k do
  a[i,j]:=a[i,j+1];
  a[k,n-k]:=b;
  end;
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.05.2010, 19:08

кольцевой сдвиг
привет всем коллегам))) подкиньте идею, пожалуйста, как реализовать кольцевой...

массив. сдвиг
нужно массив отсортировать. в нем имеются положительные и отрицательные числа....

циклический сдвиг
Дано: A(k,n) осуществить циклический сдвиг элементов командной чётной строки на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru