Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/18: Рейтинг темы: голосов - 18, средняя оценка - 4.89
184 / 101 / 8
Регистрация: 30.05.2009
Сообщений: 782

Поменять местами элементы матрицы

31.05.2009, 18:03. Показов 3277. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
При помощи датчика случайных чисел получить матрицу A порядка N (N – целое четное случайное число в диапазоне от 7 до 15). Поменять местами элементы в 1ой области с элементами в 4ой области. Вывести обе матрицы. 1ую и 4ую области выделить различным цветом.
Код до того момента, когда нужно условие - Поменять элементы.
Как нужно написать условие, что бы поменять элементы?
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Sub zadacha()
Dim a() As Double,  N As Integer
Randomize Timer
N = Rnd * 8 + 7
ReDim a(N, N), Sum(N)
Sheets("Лист1").Select: Cells.Clear 'Очищаем весь рабочий лист
For i = 1 To N
For j = 1 To N
a(i, j) = Rnd * 8
Cells(i, j) = a(i, j)
Next j
Next i
 
End Sub
Изображения
 
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
31.05.2009, 18:03
Ответы с готовыми решениями:

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

В заданной матрицы Н (4,2) поменять местами элементы с четными и не четными индексами
В заданной матрицы Н (4,2) поменять местами элементы с четными и не четными индексами (первый со вторым, третий с четвертым и т.п.)....

Поменять местами элементы
Поменять местами симметрично элементы верхней четверти и нижней четверти матрицы А(5х5), разделённой диагоналями на четыре части. Помогите...

6
 Аватар для Toxa33rus
3924 / 925 / 125
Регистрация: 16.04.2009
Сообщений: 1,977
31.05.2009, 19:53
провожу я мысленно границу между 4 и 3, 1 и 2 и встает вопрос: вот те половинки которые получаются их к какой области относить? Например ячейка(первая строка, последний столбец) это 1 область или 2?
А еще по какому алгоритму происходит замена? Как бы зеркальное отображение или поворот на 90 градусов? Думаю первое иначе будет не ясно к кому относится ячейка(1,1) - к 1 или к 4, а при зеркальном переносе ячейки главной диагонали останутся на своих местах.
Цитата Сообщение от ПростоЯ Посмотреть сообщение
N – целое четное случайное число в диапазоне от 7 до 15
Цитата Сообщение от ПростоЯ Посмотреть сообщение
N = RND * 8 + 7
Тут я в ступоре: согласно коду четность не учитывается вообще, а согласно условию N должно быть четным, но тогда не понятно почему от 7 до 15 (7 и 15 - не четные числа).
0
184 / 101 / 8
Регистрация: 30.05.2009
Сообщений: 782
31.05.2009, 20:07  [ТС]
Цитата Сообщение от Toxa33rus Посмотреть сообщение
провожу я мысленно границу между 4 и 3, 1 и 2 и встает вопрос: вот те половинки которые получаются их к какой области относить? Например ячейка(первая строка, последний столбец) это 1 область или 2?
А еще по какому алгоритму происходит замена? Как бы зеркальное отображение или поворот на 90 градусов? Думаю первое иначе будет не ясно к кому относится ячейка(1,1) - к 1 или к 4, а при зеркальном переносе ячейки главной диагонали останутся на своих местах.
Элементы матрицы, которые составляют диагонали матрицы не входят ни в одну область.
Заменить нужно поворотом на 90 градусов. Хотя в условии не сказано как, поэтому, думаю, можно и методом поворота и методом зеркального отражения каждой области на другую...как легче так и проще будет сделать.

Цитата Сообщение от Toxa33rus Посмотреть сообщение
Тут я в ступоре: согласно коду четность не учитывается вообще, а согласно условию N должно быть четным, но тогда не понятно почему от 7 до 15 (7 и 15 - не четные числа).
Честно говоря эта часть была взята из аналогично задачи (видимо там не обратили внимания на четность N). Если для выполнения условия четности порядка N вам не составит труда написать код, буду очень признателен. Но мне кажется, что это ошибка в условии задачи и не столь важна четность матрицы.
0
 Аватар для Toxa33rus
3924 / 925 / 125
Регистрация: 16.04.2009
Сообщений: 1,977
01.06.2009, 16:37
Вот так зеркально:
Visual Basic
1
2
3
4
5
6
7
8
9
For i = 1 To (N - 1) \ 2
  For j = 2 To N - 1
    If j > i And N - i >= j Then
      tmp = Cells(i, j).Value
      Cells(i, j).Value = Cells(j, i).Value
      Cells(j, i).Value = tmp
    End If
  Next j
Next i
1
184 / 101 / 8
Регистрация: 30.05.2009
Сообщений: 782
02.06.2009, 09:18  [ТС]
Цитата Сообщение от Toxa33rus Посмотреть сообщение
Вот так зеркально:
В этом коде как раз и есть, то, что нужно)) . Осталось только спустить вторую матрицу на несколько строк, ниже первой, что бы наглядно было, какие элементы поменялись местами).
Спасибо, Toxa33rus, за помощь.

Добавлено через 45 минут 11 секунд
Цитата Сообщение от Toxa33rus Посмотреть сообщение
Вот так зеркально:
А замену методом поворота на 90 градусов, сложнее?
0
 Аватар для Toxa33rus
3924 / 925 / 125
Регистрация: 16.04.2009
Сообщений: 1,977
02.06.2009, 20:34
Цитата Сообщение от ПростоЯ Посмотреть сообщение
А замену методом поворота на 90 градусов, сложнее?
Ничуть!
Вот это:
Visual Basic
1
2
3
tmp = Cells(i, j).Value
Cells(i, j).Value = Cells(j, i).Value
Cells(j, i).Value = tmp
заменить этим:
Visual Basic
1
2
3
tmp = Cells(i, j).Value
Cells(i, j).Value = Cells(N - j + 1, i).Value
Cells(N - j + 1, i).Value = tmp
1
184 / 101 / 8
Регистрация: 30.05.2009
Сообщений: 782
02.06.2009, 21:38  [ТС]
Спасибо, Toxa33rus, за помощь по данной задачке.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
02.06.2009, 21:38
Помогаю со студенческими работами здесь

Поменять местами 3 и 8 элементы массива
в Visual Basic нужно написать программки: 1.Поменять местами 3 и 8 элементы массива A(10) 2.Дан двумерный массив Z(6,8). Найти сумму...

Поменять местами 3 и 8 элементы массива
в Visual Basic нужно написать программки: 1.Поменять местами 3 и 8 элементы массива A(10) 2.Дан двумерный массив Z(6,8). Найти сумму...

Поменять местами элементы 3-й и 6-й строк массива
Добрый день, всем и каждому. Помогите с решением следующей задачки. Нужно Поменять местами элементы 3-й и 6-й строк. Результат...

Как можно поменять местами элементы в treeview?
Подскажие плз как можно поменять местами элементы в treeview(н-р два соседних)

В массиве поменять местами наибольший и наименьший элементы
помогите решить задачу про массив!!!))) В заданном массиве A(N) поменять местами наибольший и наименьший элементы. заранее...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 25.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 25.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере нетипового документа выдачи шин для спецтехники с табличной частью, разработанного в конфигурации КА2. Номеклатура. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru