0 / 0 / 0
Регистрация: 21.03.2012
Сообщений: 4

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

21.03.2012, 19:32. Показов 1634. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите пожалуйста решить задачу:
"Переставить местами элементы побочной диагонали матрицы, симметричные относительно её центра.".
Неделю с ней сижу, не могу решить. Начало вроде правильное.

Visual Basic
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
Dim x() As Single, i, n, k As Integer
 
Private Sub Выход_Click()
t = MsgBox("Выдействительно хотите выйти??", vbYesNo)
If t = vbYes Then End
 
End Sub
 
Private Sub Переставить_Click()
Text2.BackColor = RGB(200, 200, 180)
Text2.ForeColor = vbBlue
For i = 1 To n mod 2
    For j = 1 To n
        If j = k Then x(i, j) = x(j, i)
        Text2.Text = Text2.Text + Str(x(i, j)) + "  "
    Next: Text2.Text = Text2.Text + Chr(13) + Chr(10)
Next
End Sub
 
 
Private Sub Показать_Click()
For i = 1 To n
    For j = 1 To n
        Text1.Text = Text1.Text + Str(x(i, j)) + "  "
    Next: Text1.Text = Text1.Text + Chr(13) + Chr(10)
Next
End Sub
 
Private Sub Создать_Click()
n = Val(InputBox("Ввести размерность массива", , "N="))
ReDim x(n, n)
Randomize timtr
For i = 1 To n
    For j = 1 To n
        x(i, j) = Int(Rnd * 9) - 1
    Next
Next
End Sub
 
Private Sub Удалить_Click()
Text1.Text = ""
Text2.Text = ""
 
End Sub
 
Private Sub Picture1_Click()
 
End Sub


в этой части программы:
Visual Basic
1
2
3
4
5
6
7
8
9
10
Private Sub Переставить_Click()
Text2.BackColor = RGB(200, 200, 180)
Text2.ForeColor = vbBlue
For i = 1 To n mod 2
    For j = 1 To n
        If j = k Then x(i, j) = x(j, i)
        Text2.Text = Text2.Text + Str(x(i, j)) + "  "
    Next: Text2.Text = Text2.Text + Chr(13) + Chr(10)
Next
End Sub
наверно куча ошибок
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.03.2012, 19:32
Ответы с готовыми решениями:

Поменять местами элементы матрицы симметрично побочной диагонали
Составьте программу, меняющую местами элементы матрицы симметрично побочной диагонали

Создать матрицу, где элементы побочной диагонали равны суммам элементов столбцов исходной матрицы
Ввести квадратную матрицу D(k,k), Построить матрицу D1(k,k), у которой элементы побочной диагонали равны суммам элементов соответствующих...

Переставить местами элементы главной и побочной диагонали матрицы
Задана матрица 6x6. Переставить местами элементы главной и побочной диагонали. Выяснить, верно ли, что наибольшее из значений элементов...

7
 Аватар для coderxx
469 / 183 / 16
Регистрация: 25.02.2012
Сообщений: 418
Записей в блоге: 2
21.03.2012, 21:01
Цитата Сообщение от tutik-cat Посмотреть сообщение
в этой части программы:
Тут на k где присвоиться значение?
0
0 / 0 / 0
Регистрация: 21.03.2012
Сообщений: 4
21.03.2012, 21:59  [ТС]
"Тут на k где присвоиться значение?"
Возможно, для решения задачи даже не нужно вводить значение k.
Вот, кстати, на одном из форумов был выложен код очень похожей на эту задачу программы, только на паскале

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
var a: array[1..12,1..12] of integer;
      i,j,N: integer;
begin
writeln('Введите размерность матрицы');
readln(N);
writeln('Вводим матрицу...');
for i:=1 to N do
 for j:=1 to N do 
  begin
   write('[',i,',',j,']?');
   readln(a[i,j]);
  end;
writeln('Исходная матрица:');
for i:=1 to N do
 begin
  for j:=1 to N do
   write(a[i,j],#8);
  writeln;
 end;
for i:=1 to N div 2 do
 begin
  j:= a[i,N - i + 1];
  a[i, N - i + 1]:= a[N - i + 1, i];
  a[N - i + 1, i]:= j;
 end;
writeln('Преобразованная матрица:');
for i:=1 to N do
 begin
  for j:=1 to N do
   write(a[i,j],#8);
  writeln;
 end;
readln;
end.
здесь вообще не вводится дополнительная переменная
0
 Аватар для morgann55
1365 / 207 / 37
Регистрация: 09.02.2012
Сообщений: 745
21.03.2012, 22:26
Посмотри как код вставлять =>
Как заключить в теги код программы (в сообщении)
0
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
21.03.2012, 23:58
Цитата Сообщение от tutik-cat Посмотреть сообщение
здесь вообще не вводится дополнительная переменная
Цитата Сообщение от tutik-cat Посмотреть сообщение
Pascal
1
2
3
j:= a[i,N - i + 1];
a[i, N - i + 1]:= a[N - i + 1, i];
a[N - i + 1, i]:= j;
j используется вместо дополнительной переменной.
Проверил код на паскале - он меняет левый нижний и правый верхний элементы местами

Добавлено через 29 минут
Как то так
Visual Basic
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
Option Explicit
Dim i  As Integer, j As Integer, n As Integer, k As Integer, x() As Integer
Private Sub Переставить_Click()
Text1.Text = ""
Text2.Text = ""
Text2.BackColor = RGB(200, 200, 180)
Text2.ForeColor = vbBlue
n = Val(InputBox("Ввести размерность массива", "N=", 5))
ReDim x(1 To n, 1 To n)
Randomize
 
For i = 1 To n
    For j = 1 To n
         x(i, j) = Int(Rnd * 9) - 1
    Next
Next
 
For i = 1 To n
    For j = 1 To n
          Text1.Text = Text1.Text + Str(x(i, j)) + " "
    Next: Text1.Text = Text1.Text + Chr(13) + Chr(10)
Next
 
For i = 1 To n \ 2
   k = x(i, n - i + 1)
   x(i, n - i + 1) = x(n - i + 1, i)
   x(n - i + 1, i) = k
 
Next
 
For i = 1 To n
    For j = 1 To n
          Text2.Text = Text2.Text + Str(x(i, j)) + " "
    Next: Text2.Text = Text2.Text + Chr(13) + Chr(10)
Next
 
End Sub
1
0 / 0 / 0
Регистрация: 21.03.2012
Сообщений: 4
22.03.2012, 00:05  [ТС]
Цитата Сообщение от SoftIce Посмотреть сообщение
j используется вместо дополнительной переменной.
Проверил код на паскале - он меняет левый нижний и правый верхний элементы местами
[/VB]
т.е. только два крайних элемента побочной диагонали меняются местами?
как же тогда поменять местами все симметричные элементы?
0
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
22.03.2012, 00:09
Цитата Сообщение от tutik-cat Посмотреть сообщение
как же тогда поменять местами все симметричные элементы?
я выложил готовый код, правда все процедуры запихнул в одну
1
0 / 0 / 0
Регистрация: 21.03.2012
Сообщений: 4
22.03.2012, 00:25  [ТС]
ОГРОМНОЕ СПАСИБО!
Все работает! УРА!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.03.2012, 00:25
Помогаю со студенческими работами здесь

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

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

Переставить местами элементы главной диагонали матрицы
Написать программу, переставляющую местами элементы главной диагонали двумерной матрицы с максимальным элементом соответствующей строки. ...

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

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


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

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

Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru