Страница: 1 | 2 |
Вопрос: Пожалуйста! Помогите! что делать?!)
Добавлено: 23.07.08 13:07
Автор вопроса: yan
задание звучит так
за один просмотр последовательности целых чисел определить является ли она арифметической прогрессией?
я что-то пытался делать, мне кажется какая-то глупость получается.. посоветуйте, пожалуйста!!!
Ответы
Всего ответов: 21
Номер ответа: 1
Автор ответа:
AndreyMp
ICQ: 237822510
Вопросов: 28
Ответов: 1182
Профиль | | #1
Добавлено: 23.07.08 13:09
Номер ответа: 2
Автор ответа:
yan
Вопросов: 1
Ответов: 11
Профиль | | #2
Добавлено: 23.07.08 13:25
я вообще ничего не помню((
задание я так понял:
Дано: массив a(1....n)
x=0 '(может это счетчик)
for i = 2 to (n-1)
if (ai+1) - ai <> ai - ai-1
then x = x + 1
next i
if x = 0 then "последовательность является прогрессией"
Номер ответа: 3
Автор ответа:
KiZ
Вопросов: 27
Ответов: 68
Профиль | | #3
Добавлено: 23.07.08 13:59
А я думаю, не все так просто))) Ведь если числа перемешаны.... ))
и Что считается одним просмотром? Забить их в массив и смотри сколько хочешь)
Номер ответа: 4
Автор ответа:
yan
Вопросов: 1
Ответов: 11
Профиль | | #4
Добавлено: 23.07.08 14:01
да хоть как-нибудь бы.. не знаете как это языком выразить?
Номер ответа: 5
Автор ответа:
AndreyMp
ICQ: 237822510
Вопросов: 28
Ответов: 1182
Профиль | | #5
Добавлено: 23.07.08 14:19
Dim d1 As Long
Dim d2 As Long
Dim flg As Boolean
arr1 = Array(0, 3, 5, 7, 9)
flg = True
For i = LBound(arr1) + 1 To UBound(arr1) - 1
d1 = arr1(i) - arr1(i - 1)
d2 = arr1(i + 1) - arr1(i)
If d1 <> d2 Then
flg = False
MsgBox "Не арифм. прогрессия"
Exit For
End If
Next i
If flg Then MsgBox "Арифм. прогрессия"
примерно так
Номер ответа: 6
Автор ответа:
yan
Вопросов: 1
Ответов: 11
Профиль | | #6
Добавлено: 23.07.08 15:12
спасибо.. спасибо.. большое спасибо..
и в конце End надо?
Номер ответа: 7
Автор ответа:
yan
Вопросов: 1
Ответов: 11
Профиль | | #7
Добавлено: 23.07.08 15:16
invalid outside procedure
Номер ответа: 8
Автор ответа:
yan
Вопросов: 1
Ответов: 11
Профиль | | #8
Добавлено: 23.07.08 15:20
Андрей, он на нуле спотыкается(
Sub zzzz()
Dim arr1
Dim d1 As Long
Dim d2 As Long
Dim flg As Boolean
arr1 = Array(0, 3, 5, 7, 9)
flg = True
For i = LBound(arr1) + 1 To UBound(arr1) - 1
d1 = arr1(i) - arr1(i - 1)
d2 = arr1(i + 1) - arr1(i)
If d1 <> d2 Then
flg = False
MsgBox "Не арифм. прогрессия"
Exit For
End If
Next i
If flg Then MsgBox "Арифм. прогрессия"
End Sub
Номер ответа: 9
Автор ответа:
AndreyMp
ICQ: 237822510
Вопросов: 28
Ответов: 1182
Профиль | | #9
Добавлено: 23.07.08 15:27
Ну не знаю. У меня работает.
Номер ответа: 10
Автор ответа:
yan
Вопросов: 1
Ответов: 11
Профиль | | #10
Добавлено: 23.07.08 15:29
Андрей! Такой же код?
Номер ответа: 11
Автор ответа:
yan
Вопросов: 1
Ответов: 11
Профиль | | #11
Добавлено: 23.07.08 15:30
arrl не надо писать As Integer или Long
Номер ответа: 12
Автор ответа:
yan
Вопросов: 1
Ответов: 11
Профиль | | #12
Добавлено: 23.07.08 15:31
блин, я проверяю в VB из Excel
Номер ответа: 13
Автор ответа:
AndreyMp
ICQ: 237822510
Вопросов: 28
Ответов: 1182
Профиль | | #13
Добавлено: 23.07.08 15:32
На каком нуле. Элементе массива? Да ну! Правда может в VBA Array нету. Ну введи по другому массив. Я написал
Номер ответа: 14
Автор ответа:
yan
Вопросов: 1
Ответов: 11
Профиль | | #14
Добавлено: 23.07.08 15:35
что он делает в этой строчке arr1 = Array(0, 3, 5, 7, 9)
чем ему 0 не нравится?
Номер ответа: 15
Автор ответа:
AndreyMp
ICQ: 237822510
Вопросов: 28
Ответов: 1182
Профиль | | #15
Добавлено: 23.07.08 15:37
Это создается массив чисел. Проверил и в VBA. Все работает. И с листа и с формы.