![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 06.12.2010
Сообщений: 26
|
![]()
Определить количество инверсий в одномерном массиве X[1..20] (т.е. таких пар элементов, в которых большее число находится слева от меньшего: X[I] > X[J] при I < J).
а)Создаю массив Dim x() As Integer Dim N As Integer Private Sub CB_1_Click() Dim A, B, i As Integer N = Val(TB_N.Value) ReDim x(1 To N) As Integer A = -20 B = 30 Randomize For i = 1 To N x(i) = Int((B - A) * Rnd + A) Next i For i = 1 To N Cells(i, 1) = x(i) Next i End Sub Далее сама функция Private Sub CB_2_Click() S=0 For I=1 To N If I<I+1 and x(I) > X(I+1) Then S=S+1 Next I End Sub Выдает ошибку в строке If I<I+1 and x(I) > X(I+1) И не получается сделать что бы выводило в окошко результат (TB_K) |
![]() |
![]() |
![]() |
#2 | |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
![]() Цитата:
Или вы думаете, что если 4 меньше, чем 5, - то это не навсегда, и лишний раз проверить не помешает? |
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 06.12.2010
Сообщений: 26
|
![]()
не судите строго, могу и бред написать ибо не работал в ВБА никогда. Наработки есть, код есть но чего то не хватает
Последний раз редактировалось Bombastick; 25.12.2010 в 11:23. |
![]() |
![]() |
![]() |
#4 | |
Старожил
Регистрация: 15.05.2008
Сообщений: 2,058
|
![]() Цитата:
Запишите так Код:
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499 |
|
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 06.12.2010
Сообщений: 26
|
![]()
все равно ошибка. даю файл гляньте
|
![]() |
![]() |
![]() |
#6 | |
Старожил
Регистрация: 15.05.2008
Сообщений: 2,058
|
![]()
как писалось выше
Цитата:
исходя из логики i все равно будет меньше чем i+1 как и x(i) никогда не будет больше чем x(i + 1) хотя..может я и неправ
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499 |
|
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 25.04.2010
Сообщений: 616
|
![]()
Может, так?
Код:
|
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 06.12.2010
Сообщений: 26
|
![]()
дааа
Private Sub CB_2_Click() Dim i As Integer, s As Integer For i = 1 To N - 1 If x(i) > x(i + 1) Then s = s + 1 Next i Me.TB_K.Text = s End Sub сработало находит, до земли поклон |
![]() |
![]() |
![]() |
#9 | ||
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
![]() Цитата:
Прочитайте ещё раз условие: Цитата:
"слева" - не значит, что рядом. К примеру, если X[5] > X[16], то такой случай тоже надо учитывать. А в вашем решении это не учитывается. Вас выручат вложенные циклы. |
||
![]() |
![]() |
![]() |
#10 |
Пользователь
Регистрация: 06.12.2010
Сообщений: 26
|
![]()
Честно говоря я уже не знаю что делать с этим, а как учесть X[5] > X[16] такое?
|
![]() |
![]() |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
VBA Excel | .::pk::. | Помощь студентам | 2 | 14.05.2016 09:54 |
VBA Word,VBA Excel решить 2 задачи | fafolo4ka | Фриланс | 6 | 05.03.2012 01:15 |
Как запретить запуск программы на VBA Excel 2003 в Excel 2007 | kovalevskivf | Microsoft Office Excel | 2 | 15.05.2009 16:47 |
VBA Excel | Олька я | Помощь студентам | 0 | 09.05.2009 01:24 |
VBA i Excel | corsarlt | Microsoft Office Excel | 3 | 03.04.2008 06:13 |