Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
61 / 1 / 1
Регистрация: 14.11.2010
Сообщений: 66

Сформируйте линейный массив В[1. . N*N], получающийся при чтении данного массива так, как показано на рисунке

01.01.2014, 16:01. Показов 1776. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дан двумерный массив целых чисел А[1..N,1..N]. Сформируйте линейный массив В[1..N*N], получающийся при чтении данного массива так, как показано на рисунке:


пример программы
Миниатюры
Сформируйте линейный массив В[1. . N*N], получающийся при чтении данного массива так, как показано на рисунке   Сформируйте линейный массив В[1. . N*N], получающийся при чтении данного массива так, как показано на рисунке  
Изображения
 
Вложения
Тип файла: rar пример.rar (54.2 Кб, 8 просмотров)
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.01.2014, 16:01
Ответы с готовыми решениями:

Сформируйте линейный массив В[1. . N*N], получающийся при чтении данного массива так, как показано на рисунке
Дан двумерный массив целых чисел А. Сформируйте линейный массив В, получающийся при чтении данного массива так, как показано на рисунке: ...

Сформируйте линейный массив получающийся при чтении массива с левого верхнего угла до середины против часовой стрелки
Помогите, пожалуйста, составить программу, для решения такой задачи: Дан двумерный массив целых чисел А . Сформируйте линейный массив В ,...

Заполнить двухмерный массив размером 7 × 7 так, как показано на рисунке
Заполнить двухмерный массив размером 7 × 7 так, как показано на рисунке: 1) 1 0 0 1 0 0 1 0 1 0 1 0 1 0 0 0 1 1 1 0 0 1 1 1 1...

6
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
01.01.2014, 16:12
Где исходник?
0
61 / 1 / 1
Регистрация: 14.11.2010
Сообщений: 66
01.01.2014, 16:22  [ТС]
нету. по этому и прошу помощи
0
61 / 1 / 1
Регистрация: 14.11.2010
Сообщений: 66
01.01.2014, 16: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
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
Const n = 7 ' размерность матрицы
Dim Matrix(1 To n, 1 To n) As Integer 'описание матрицы
Dim Arr(1 To n * n) As Integer 'описание массива
Private Sub CreateArrayByMatrix(Matrix, Arr) 'процедура заполнения массива по матрице
    Dim i, j, index As Integer 'i,j - индексы для матрицы, index - текущий номер элемента массива
    index = 1 'инициализация индекса для массва
    For j = n To n \ 2 Step -1 'не далее половины размерности
        For i = j To n - j + 1 Step -1 'заполнение вертикальной правой части
            Arr(index) = Matrix(i, j) 'записываем в очередной элемент массива элемент матрицы
            index = index + 1 'переходим к следующему элементу
        Next i
        For i = j - 1 To n - j + 1 Step -1 'заполнение верхней горизонтальной части
            Arr(index) = Matrix(n - j + 1, i)
            index = index + 1
        Next i
        For i = n - j + 2 To j 'заполнение вертикальной левой части
            Arr(index) = Matrix(i, n - j + 1)
            index = index + 1
        Next i
        For i = n - j + 2 To j - 1 'заполнение нижней горизонтальной части
            Arr(index) = Matrix(j, i)
            index = index + 1
        Next i
    Next j
End Sub
Private Sub CreateMatrix(ByRef Matrix) 'для проверки процедура создания матрицы по вышеописанному алгоритму
    Dim i, j, index As Integer
    index = 1
    For j = n To n \ 2 + 1 Step -1
        For i = j To n - j + 1 Step -1
            Matrix(i, j) = index
            index = index + 1
        Next i
        For i = j - 1 To n - j + 1 Step -1
            Matrix(n - j + 1, i) = index
            index = index + 1
        Next i
        For i = n - j + 2 To j
            Matrix(i, n - j + 1) = index
            index = index + 1
        Next i
        For i = n - j + 2 To j - 1
            Matrix(j, i) = index
            index = index + 1
        Next i
    Next j
End Sub
Private Sub CreateRandomMatrix(ByRef Matrix) 'заполнение матрицы случайными значениями
    Dim i, j As Integer 'индексы
    For i = 1 To n
        For j = 1 To n
            Matrix(i, j) = Int(Rnd * 10) ' От 0 до 9
        Next j
    Next i
End Sub
Private Sub cmdCreateArray_Click()
    Dim i, j As Integer 'индексы
    Dim strTemp As String 'строка - используется для выравнивания элементов матрицы
    txtOut.Text = "" 'clear
    CreateRandomMatrix Matrix 'заполняем матрицу случайными значениями
    'печатаем матрицу
    txtOut.Text = "Исходная матрица:" & Chr(13) & Chr(10)
    For i = 1 To n
        For j = 1 To n
            strTemp = Matrix(i, j)
            Do While Len(strTemp) < 3 'печатаем по 3 символа на элемент
                strTemp = " " & strTemp 'сдвигаем к правому краю
            Loop
            txtOut.Text = txtOut.Text & strTemp 'печатаем по 3 символа на элемент
        Next j
        txtOut.Text = txtOut.Text & Chr(13) & Chr(10) 'переход на следующую строку
    Next i
    CreateArrayByMatrix Matrix, Arr 'заполняем массив по матрице
    'печатаем результирующий массив
    txtOut.Text = txtOut.Text & "Массив-результат:" & Chr(13) & Chr(10)
    For i = 1 To n * n
        txtOut.Text = txtOut.Text & Arr(i) & " "
    Next i
    txtOut.Text = txtOut.Text & Chr(13) & Chr(10)
    txtOut.Text = txtOut.Text & Chr(13) & Chr(10)
    CreateMatrix Matrix 'заполняем матрицу
    'печатаем матрицу
    txtOut.Text = txtOut.Text & "Исходная матрица:" & Chr(13) & Chr(10)
    For i = 1 To n
        For j = 1 To n
            strTemp = Matrix(i, j)
            Do While Len(strTemp) < 3 'печатаем по 3 символа на элемент
                strTemp = " " & strTemp 'сдвигаем к правому краю
            Loop
            txtOut.Text = txtOut.Text & strTemp 'печатаем по 3 символа на элемент
        Next j
        txtOut.Text = txtOut.Text & Chr(13) & Chr(10) 'переход на следующую строку
    Next i
    CreateArrayByMatrix Matrix, Arr 'заполняем массив по матрице
    'печатаем результирующий массив
    txtOut.Text = txtOut.Text & "Массив-результат:" & Chr(13) & Chr(10)
    For i = 1 To n * n
        txtOut.Text = txtOut.Text & Arr(i) & " "
    Next i
End Sub
 
Private Sub Form_Load()
    Randomize 'инициализация генератора случайных чисел
End Sub
Вложения
Тип файла: zip Array.zip (2.2 Кб, 5 просмотров)
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38173 / 21108 / 4307
Регистрация: 12.02.2012
Сообщений: 34,710
Записей в блоге: 14
01.01.2014, 22:56
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
49
50
51
Sub task(A() As Integer)
 
    n% = UBound(A, 2)
    
    ii% = n%
    jj% = n%
    
    d% = 0
    up% = 1
    le% = 1
    dw% = n
    rg% = n - 1
    
    If (n Mod 2) <> 0 Then
       i_end% = n \ 2 + 1
       j_end% = n \ 2 + 1
    Else
       i_end% = n \ 2 + 1
       j_end% = n \ 2
    End If
    
    Do
    
      Debug.Print A(ii%); " "; A(jj%)
      
      If ii% = i_end% And jj% = j_end% Then Exit Sub
      
      Select Case (d%)
             Case 0
                  ii% = ii% - 1
                  If ii% = up% Then d% = 1
             Case 1
                  jj% = jj% - 1
                  If jj% = le% Then d% = -1
             Case -1
                  ii% = ii% + 1
                  If ii% = dw% Then d% = 2
             Case 2
                  jj% = jj% + 1
                  If jj% = rg% Then
                     d% = 0
                     up% = up% + 1
                     le% = le + 1
                     dw% = dw% - 1
                     rg% = rg% - 1
                  End If
      End Select
    
    Loop
 
End Sub
0
61 / 1 / 1
Регистрация: 14.11.2010
Сообщений: 66
03.01.2014, 16:09  [ТС]
полностью можно или куда вставить даную часть программы?

Добавлено через 5 минут
люди помогите. вроде по сути нужно только сделать полосы прокрутки изменяемые при смене количества элементов и чтобы количество элементов массива можно было выбрать в ComboBox.
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38173 / 21108 / 4307
Регистрация: 12.02.2012
Сообщений: 34,710
Записей в блоге: 14
03.01.2014, 22:29
Лучший ответ Сообщение было отмечено The trick как решение

Решение

Функция берет двумерный массив A и возвращает одномерный, в котором записаны в нужной последовательности элементы исходного массива:

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
49
50
51
52
53
54
55
56
57
58
59
Function Zmei(A() As Integer) As integer ()
Dim R () as integer 
 
    n% = UBound(A, 2)
 
    Redim R(1 to n%*n%) As integer
    
    oo%=0
 
    ii% = n%
    jj% = n%
    
    d% = 0
    up% = 1
    le% = 1
    dw% = n
    rg% = n - 1
    
    If (n Mod 2) <> 0 Then
       i_end% = n \ 2 + 1
       j_end% = n \ 2 + 1
    Else
       i_end% = n \ 2 + 1
       j_end% = n \ 2
    End If
    
    Do
    
      oo%=oo%+1
      R(oo%)=A(ii%,jj%)
      
      If ii% = i_end% And jj% = j_end% Then Exit Sub
      
      Select Case (d%)
             Case 0
                  ii% = ii% - 1
                  If ii% = up% Then d% = 1
             Case 1
                  jj% = jj% - 1
                  If jj% = le% Then d% = -1
             Case -1
                  ii% = ii% + 1
                  If ii% = dw% Then d% = 2
             Case 2
                  jj% = jj% + 1
                  If jj% = rg% Then
                     d% = 0
                     up% = up% + 1
                     le% = le + 1
                     dw% = dw% - 1
                     rg% = rg% - 1
                  End If
      End Select
    
    Loop
 
    Zmei=R 
 
End Sub
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.01.2014, 22:29
Помогаю со студенческими работами здесь

Сформировать матрицу А (10,10),так как показано на рисунке
Сформировать матрицу А (10,10),так как показано на рисунке,а остальная область равна 0.

Вывести на экран числа так, как показано на рисунке
1. Вывести на экран числа так, как показано на рисунке 1 2 1 3 2 1 4 3 2 1 5 4 3 2 1 2.

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

Требуется заполнить змейкой квадратную матрицу так, как показано на рисунке
Требуется заполнить змейкой квадратную матрицу так, как показано на рисунке справа: заполнение происходит с единицы из левого верхнего угла...

Создать таблицу и закрасить её ячейки так, как это показано на приложенном рисунке
Буду вам очень благодарен если вы поможете мне написать скрипт на это задание. Нужно создать таблицу 10 на 10. Высота и ширина ячейки 50...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
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
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru