Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
2 / 2 / 0
Регистрация: 18.10.2016
Сообщений: 15
1

Осуществить циклический сдвиг элементов каждой строки матрицы на K элементов вправо

10.12.2016, 18:34. Просмотров 525. Ответов 2
Метки нет (Все метки)

Дана целочисленная квадратная матрица. Осуществить циклический сдвиг элементов каждой строки на K элементов вправо
Visual Basic
1
2
3
4
5
6
7
8
9
10
Sub Кнопка1_Щелчок()
Dim a As Integer, b As Integer, i As Integer, j As Integer
a = Int(InputBox("Количество строк:"))
b = Int(InputBox("Количество столбцов:"))
ReDim Ar(1 To a, 1 To b) As Integer
For i = 1 To a
    For j = 1 To b
        Ar(i, j) = Int(100 * Rnd + (-100) * Rnd) 
        Cells(i, j) = Ar(i, j)
    Next
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.12.2016, 18:34
Ответы с готовыми решениями:

Осуществить циклический сдвиг элементов квадратной матрицы размером М×N вправо на k элементов
Осуществить циклический сдвиг элементов квадратной матрицы размером М×N вправо на k элементов...

Осуществить циклический сдвиг элементов квадратной матрицы размером М х N вправо на k элементов
Осуществить циклический сдвиг элементов квадратной матрицы размером М х N вправо на k элементов...

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

Осуществить циклический сдвиг элементов квадратной матрицы вправо на k элементов
Осуществить циклический сдвиг элементов квадратной матрицы размером М х N вправо на k элементов...

2
14924 / 6325 / 1721
Регистрация: 24.09.2011
Сообщений: 9,977
10.12.2016, 21:23 2
FluffyCake, подсказка: на место i-го элемента строки должен встать элемент с индексом (i-1-K) mod b +1
1
2 / 2 / 0
Регистрация: 18.10.2016
Сообщений: 15
12.12.2016, 14:37  [ТС] 3
Казанский, что-то я не понимаю

Добавлено через 6 минут
Казанский, не понимаю, как это осуществить

Добавлено через 17 минут
Казанский, вот так должно быт? Ar(i) = Ar(i - 1 - K) Mod b + 1

Добавлено через 27 минут
вот я пыталась что-то сделать, но у меня только создается копия основной матрицы
не могу понять, что со второй частью делать
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
Sub Êíîïêà1_Ùåë÷îê()
Dim a As Integer, b As Integer, i As Integer, j As Integer
a = Int(InputBox("Êîëè÷åñòâî ñòðîê:"))
b = Int(InputBox("Êîëè÷åñòâî ñòîëáöîâ:"))
ReDim Ar(1 To a, 1 To b) As Integer
ReDim Br(1 To a, 1 To b) As Integer
'çàäàíèå ìàòðèöû
For i = 1 To a
    For j = 1 To b
        Ar(i, j) = Int(100 * Rnd + (-100) * Rnd) 'çàïîëíåíèå ìàòðèöà ðàíäîìíûìè ÷èñëàìè îò -100 äî 100
        Cells(i, j) = Ar(i, j)
        Br(i, j) = Ar(i, j)
    Next
Next
 
'çàäàíèå 1
Dim K As Integer, temp As Integer, p As Integer
K = Int(InputBox("Ââåäèòå ÷èñëî:"))
If K > a Then K = K Mod a
For i = 1 To a
    For j = 1 To b
    temp = Br(i, 1)
        For p = 1 To a - 1
            Br(i, p) = Br(i, p + 1)
        Next
        Br(i, a) = temp
    Next
Next
For i = 1 To a
    For j = 1 To b
     Cells(i + a + 2, j) = Br(i, j)
     Next
Next
End Sub
Добавлено через 1 минуту
все, исправила * For j = 1 To b на * For j = 1 To K и все заработало
Цитата Сообщение от FluffyCake Посмотреть сообщение
If K > a Then K = K Mod a
For i = 1 To a
* * For j = 1 To b
* * temp = Br(i, 1)
* * * * For p = 1 To a - 1
* * * * * * Br(i, p) = Br(i, p + 1)
Добавлено через 18 минут
только что заметила, что происходит сдвиг влево, а не вправо..
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.12.2016, 14:37

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

Осуществить циклический сдвиг элементов квадратной матрицы на n элементов вправо или вниз
Осуществить циклический сдвиг элементов квадратной матрицы на n элементов вправо или вниз (в...

Осуществить циклический сдвиг элементов прямоугольной матрицы на n элементов вправо или вниз
Осуществить циклический сдвиг элементов прямоугольной матрицы на n элементов вправо или вниз (в...

Осуществить циклический сдвиг элементов прямоугольной матрицы на n элементов вправо или вниз
Осуществить циклический сдвиг элементов прямоугольной матрицы на n элементов вправо или вниз (в...

Массив: Осуществить циклический сдвиг элементов квадратной матрицы размером М * Н вправо на К элементов
у меня маленькая просьба, не могли вы бы мне помочь с прогой на массивы 1) Осуществить...


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

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

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