0 / 0 / 0
Регистрация: 02.10.2011
Сообщений: 10
1

Составить массив так, чтобы элементы матрицы следовали в нем параллельно побочной диагонали

04.10.2011, 18:53. Показов 1020. Ответов 6
Метки нет (Все метки)

Добрые люди помогите пожалуйста..Вот задачка:

Составить одномерный массив В так, чтобы элементы матрицы A[1..N,1..N] следовали в массиве в последовательности диагоналей параллельно побочной диагонали и начинались с A[1,1], A[2,1], A[1,2],A[3,1],A[2,2],A[1,3] и т.д.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.10.2011, 18:53
Ответы с готовыми решениями:

Составить массив B так, чтобы элементы массива A[0..6, 0..6] следовали в нем в последовательности диагоналей параллельно побочной диагонали
Дали лабораторную работу по информатике Задание: Составить массив В так, чтобы элементы массива A...

Преобразовать массив так, чтобы элементы побочной диагонали матрицы равнялись 1
Сформировать массив, заполненный нулями и вывести его на экран. Затем, преобразовать его так, чтобы...

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

Преобразовать массив так, чтобы в нём сначала следовали цифры, а за ними – буквы. Преобразованный массив вывести на экран
Добрый день . Задание:Преобразовать массив так, чтобы в нём сначала следовали цифры, а за ними –...

6
Почетный модератор
64256 / 47556 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
05.10.2011, 15:31 2
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
43
44
45
46
47
uses crt;
const nmax=10;
var a:array[1..nmax,1..nmax]of integer;
    b:array[1..nmax*nmax] of integer;
    n,i,j,l,k:integer;
begin
clrscr;
repeat
write('Размер матрицы до ',nmax,' n=');
readln(n);
until n in [1..nmax];
writeln('Исходная матрица:');
for i:=1 to n do
 begin
  for j:=1 to n do
   begin
    a[i,j]:=10*i+j;
    write(a[i,j]:4);
   end;
  writeln;
 end;
writeln;
k:=0;
For l:=1 to 2*n-1 do{количество диагоналей, параллелных побочной}
 begin
  if l>n then{выше диагонали}
   begin
    for i:=n downto l-n+1 do
     begin
       k:=k+1;
       b[k]:=a[i,l-i+1];
     end
   end
  else if l<=n then{ниже диагонали и на ней}
   begin
    for i:=l downto 1 do
     begin
      k:=k+1;
      b[k]:=a[i,l-i+1];
     end;
   end;
 end;
writeln('Массив:');
for i:=1 to k do
write(b[i]:4);
readln
end.
0
0 / 0 / 0
Регистрация: 02.10.2011
Сообщений: 10
06.10.2011, 13:09  [ТС] 3
Спасибо большое!
0
0 / 0 / 0
Регистрация: 02.10.2011
Сообщений: 10
17.10.2011, 20:57  [ТС] 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
uses crt;
const nmax=10;
var a:array[1..nmax,1..nmax] of integer;
    b:array[1..nmax*nmax] of integer;
    n,i,j,l,k,i1,i2:integer;
begin
clrscr;
repeat
write('Размер матрицы до ',nmax,' n=');
readln(n);
until n in [1..nmax];
writeln('Исходная матрица:');
for i:=1 to n do
 begin
  for j:=1 to n do
   begin
    a[i,j]:=random(100)-50;
    write(a[i,j]:5);
   end;
  writeln;
 end;
writeln;
i1:=0;
i2:=1;
k:=0;
for l:=2 to 2*n do
 begin
  if l<=n+1 then inc(i1) else inc(i2);
  for i:=i1 downto i2 do
 begin
 inc(k);
 b[k]:=a[i,l-i];
 end;
 end;
writeln('Массив:');
for i:=1 to k do
write(b[i]:5);
readln;
end.
теперь этот код надо переделать так что бы одномерный массив из двумерного составлялся в последовательности A[1.1] A[2.1] A[1.2] A[1.3] A[2.2] A[3.1] A[4.1] A[3.2]
0
Почетный модератор
64256 / 47556 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
18.10.2011, 08:31 5
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
43
44
45
46
uses crt;
const nmax=10;
var a:array[1..nmax,1..nmax] of integer;
    b:array[1..nmax*nmax] of integer;
    n,i,j,l,k,i1,i2:integer;
begin
clrscr;
repeat
write('Размер матрицы до ',nmax,' n=');
readln(n);
until n in [1..nmax];
writeln('Исходная матрица:');
for i:=1 to n do
 begin
  for j:=1 to n do
   begin
    a[i,j]:=random(100)-50;
    write(a[i,j]:5);
   end;
  writeln;
 end;
writeln;
i1:=0;
i2:=1;
k:=0;
for l:=2 to 2*n do
 begin
  if l<=n+1 then inc(i1) else inc(i2);
  if l mod 2=0 then {четные диагонали}
  for i:=i1 downto i2 do
   begin
    inc(k);
    b[k]:=a[i,l-i];
   end
 else {нечетные}
  for i:=i2 to i1 do
   begin
    inc(k);
    b[k]:=a[i,l-i];
   end
 end;
writeln('Массив:');
for i:=1 to k do
write(b[i]:5);
readln;
end.
0
0 / 0 / 0
Регистрация: 10.12.2011
Сообщений: 3
12.12.2011, 16:47 6
А можно как-нибудь сделать, чтобы каждая полученная диагональ выводилась с новой строки?
0
Почетный модератор
64256 / 47556 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
12.12.2011, 18:10 7
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
43
44
45
46
47
48
49
50
uses crt;
const nmax=10;
var a:array[1..nmax,1..nmax] of integer;
    b:array[1..nmax*nmax] of integer;
    n,i,j,l,k,i1,i2:integer;
begin
clrscr;
repeat
write('Размер матрицы до ',nmax,' n=');
readln(n);
until n in [1..nmax];
writeln('Исходная матрица:');
for i:=1 to n do
 begin
  for j:=1 to n do
   begin
    a[i,j]:=random(100)-50;
    write(a[i,j]:5);
   end;
  writeln;
 end;
writeln;
i1:=0;
i2:=1;
k:=0;
for l:=2 to 2*n do
 begin
  if l<=n+1 then inc(i1) else inc(i2);
  if l mod 2=0 then {четные диагонали}
  for i:=i1 downto i2 do
   begin
    inc(k);
    b[k]:=a[i,l-i];
    write(b[k]:4);
   end
 else {нечетные}
  for i:=i2 to i1 do
   begin
    inc(k);
    b[k]:=a[i,l-i];
    write(b[k]:4);
   end;
  writeln;
 end;
writeln;
writeln('Массив:');
for i:=1 to k do
write(b[i]:5);
readln;
end.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.12.2011, 18:10
Помогаю со студенческими работами здесь

Переставить столбцы матрицы так, чтобы элементы её побочной диагонали образовали невозрастающую последовательность
Здравствуйте, имеется следующее задание: Разработать программу, которая переставляет столбцы...

Вывести массив так, чтобы его элементы следовали в алфавитном порядке
25. Дан массив x, состоящий из латинских букв. Вывести его так, чтобы его элементы следовали в...

Можно ли расположить на побочной диагонали элементы так, чтобы они возрастали
Здравствуйте, форумчане! вот такая у меня задачка: Задан двумерный массив N x N. Разрешается...

Преобразовать матрицу так, чтобы минимальные элементы строк оказались на побочной диагонали
2. Преобразовать матрицу Р (7х7) таким образом, чтобы минимальные элементы строк оказались на...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru