Форум программистов, компьютерный форум, киберфорум
Наши страницы
Visual Basic
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.73
senjava
1 / 0 / 0
Регистрация: 26.03.2012
Сообщений: 4
#1

Программа, которая заполняет массив по спирали - VB

26.03.2012, 17:33. Просмотров 1474. Ответов 6
Метки нет (Все метки)

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
Public Sub Spirale()
Dim n As Integer, m As Integer
n = Application.InputBox("X")
m = Application.InputBox("Y")
l = 1
i1 = 1
j1 = 1
Do While (i1 <= n) And (j1 <= m)
For j = j1 To m
Cells(i1, j) = l
l = l + 1
Next j
If i1 < n Then
For i = i1 + 1 To n
Cells(i, m) = l
l = l + 1
Next i
End If
If j1 < m Then
For j = m - 1 To j1 Step -1
Cells(n, j) = l
l = l + 1
Next j
End If
If n - i1 > 1 Then
For i = n - 1 To i1 + 1 Step -1
Cells(i, j1) = l
l = l + 1
Next i
End If
i1 = i1 + 1
j1 = j1 + 1
n = n - 1
m = m - 1
Loop
End Sub
я не понимаю, в чем тут проблема, но он последние цифры не записывает нормально.. помогите.
http://www.cyberforum.ru/visual-basic/thread550671.html
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.03.2012, 17:33
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Программа, которая заполняет массив по спирали (VB):

какая команда заполняет массив 30 случайными цифрами
какая команда заполняет массив 30 случайных цифров

создать массив в виде спирали
создать массив виде спирали? в VB 6.0

Заполнить массив последовательными натуральными числами, идущими по спирали
привет всем не могу написать программу, помогите пожалуйста можно просто...

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

Программа, которая заполняет массив a[1.10] случайными целыми числами
Cоставьте программу, которая заполняет массив a случайными целыми числами в...

6
SoftIce
comment ca va
10413 / 3915 / 999
Регистрация: 27.07.2011
Сообщений: 9,475
Завершенные тесты: 1
26.03.2012, 21:01 #2
Перевёл на VB6. Нормально работает
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
Option Explicit
Public Sub Spirale()
Dim n As Integer, m As Integer, i, j1, i1, j, l, A(1 To 10, 1 To 10)
n = InputBox("X", , 10)
m = InputBox("Y", , 10)
l = 1
i1 = 1
j1 = 1
Do While (i1 <= n) And (j1 <= m)
For j = j1 To m
A(i1, j) = l
l = l + 1
Next j
If i1 < n Then
For i = i1 + 1 To n
A(i, m) = l
l = l + 1
Next i
End If
If j1 < m Then
For j = m - 1 To j1 Step -1
A(n, j) = l
l = l + 1
Next j
End If
If n - i1 > 1 Then
For i = n - 1 To i1 + 1 Step -1
A(i, j1) = l
l = l + 1
Next i
End If
i1 = i1 + 1
j1 = j1 + 1
n = n - 1
m = m - 1
Loop
Print
  For i = 1 To 10
   For j = 1 To 10
       Print A(i, j); vbTab;
   Next j
   Print
Next i
End Sub
Private Sub Command1_Click()
    Spirale
End Sub
0
senjava
1 / 0 / 0
Регистрация: 26.03.2012
Сообщений: 4
26.03.2012, 21:03  [ТС] #3
спасибо огромное)))
0
Апострофф
Заблокирован
26.03.2012, 21:20 #4
А хде здесь спираль?О_о
0
Миниатюры
Программа, которая заполняет массив по спирали  
senjava
1 / 0 / 0
Регистрация: 26.03.2012
Сообщений: 4
26.03.2012, 21:44  [ТС] #5
вот она)
0
Миниатюры
Программа, которая заполняет массив по спирали  
SoftIce
comment ca va
10413 / 3915 / 999
Регистрация: 27.07.2011
Сообщений: 9,475
Завершенные тесты: 1
26.03.2012, 22:41 #6
Цитата Сообщение от Апострофф Посмотреть сообщение
А хде здесь спираль?
_________________
2
Миниатюры
Программа, которая заполняет массив по спирали  
Апострофф
Заблокирован
27.03.2012, 08:57 #7
Лучший ответ Сообщение было отмечено как решение

Решение

Надо ж было так тупануть

Цитата Сообщение от senjava Посмотреть сообщение
но он последние цифры не записывает нормально.. помогите.
А проблема для не квадратного массива осталась.
Попробуйте
Visual Basic
1
2
n = 3 'Application.InputBox("X")
m = 5 'Application.InputBox("Y")
Рабочий, кажется, вариант -
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
Option Explicit
 
Sub Spirale_m()
Dim I%, R%, C% 'счётчик и текущие координаты в массиве
Dim cR%, cC% 'к-во строк и столбцов массива
Dim dR%, dC% 'приращения по строкам и столбцам с учётом к-ва поворотов
Dim P% 'счётчик поворотов
 
cR = InputBox("Строк?") 'задаём размеры
cC = InputBox("Столбцов?") 'массива
R = 1: C = 1 'начальные координаты
dC = 1: dR = 0 'начальные приращения
Cells.ClearContents 'очистка поля
 
For I = 1 To cR * cC 'цикл по всем ячейкам массива
  Cells(R, C) = I
  If R + dR > cR Or R + dR < 1 Or C + dC > cC Or C + dC < 1 Then
    P = P + 1 'следующим ходом выпадаем из массива->поворачиваем
  ElseIf Cells(R + dR, C + dC) > 0 Then
    P = P + 1 'следующим ходом попадаем в занятую ячейку->поворачиваем
  End If
  dC = (2 - (P + 1) Mod 4) Mod 2 'пересчитываем приращения
  dR = (2 - P Mod 4) Mod 2 'с учётом к-ва поворотов
  C = C + dC 'новые
  R = R + dR 'координаты
Next I
End Sub
1
27.03.2012, 08:57
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.03.2012, 08:57
Привет! Вот еще темы с решениями:

Программа, которая заполняет динамический массив случ. числами в диапозоне от 0 до 100
Надо реализовать windowsform программу, которая заполняет динамический массив...

Строка посимвольно заполняет квадратный массив по скручивающейся спирали
Здравствуйте. Помогите пожалуйста неумехе. Плохо понимаю Pascal :( Задания:...

Программа которая регулярно заполняет БД с html страницы 2
Подскажите чайнику плиз. У меня есть HTML, в которой есть поле с адресом...

Программа которая регулярно заполняет БД с html страницы
Нужно сделать программу. Чтобы она каждый день заходила в инет, забирала...


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

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

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