КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Пример 8
Пример 7 Пример 6 ' Имя файла Find_1.vbs ' Линейный поиск наименьшего индекса элемента с заданным значением ' в "случайном" массиве. Option Explicit Dim i, s, x, Q Const n=6 Dim B (6) ' Заполнение одномерного массива случайными числами For i=0 to n Randomize B(i)=Fix(Rnd(1)*20) s=s&B(i)&" " Next s=s&vbCrLf ' Начало алгоритма поиска x=InputBox("Введите искомый элемент: ","Окно ввода:", 5) i=0 Do i=i+1: Q=CInt(B(i))=CInt(x) Loop Until (Q or (i=n)) If Q Then MsgBox "Массив: "&s&vbCrLf&_ "Элемент "&x&" найден в массиве!"&vbCrLf&_ "Его минимальный индекс в массиве: "&i Else MsgBox "Массив: "&s&vbCrLf&_ "Элемент "&x&" не найден в массиве!" End If
' Имя файла Find_2.vbs ' Линейный поиск с "барьером" наименьшего индекса элемента с заданным значением ' в "случайном" массиве. Option Explicit Dim i, s, x, Q Const n=6 Dim B (6) ' Заполнение одномерного массива случайными числами For i=0 to n-1 Randomize B(i)=Fix(Rnd(1)*20) s=s&B(i)&" " Next s=s&vbCrLf ' Начало алгоритма поиска x=InputBox("Введите искомый элемент: ","Окно ввода:", 5) i=-1: B(n)=x Do i=i+1 Loop Until CInt(B(i))=Cint(B(n)) If i<>n Then MsgBox "Массив: "&s&vbCrLf&_ "Элемент "&x&" найден в массиве!"&vbCrLf&_ "Его минимальный индекс в массиве: "&i Else MsgBox "Массив: "&s&vbCrLf&_ "Элемент "&x&" не найден в массиве!" End If ' Имя файла Find_3.vbs ' Бинарный поиск индекса заданного элемента ' одномерного "случайного" числового массива, строго ' упорядоченного по возрастанию (нерекурсивный вариант). ' Число требуемых сравнений в методе бинарного поиска в среднем значительно ' меньше, чем при линейном поиске, а точнее говоря, ' не более чем логарифм n по основанию два вместо n в программе Find_2.vbs Option Explicit Dim i, j, s, x, Q, k Const n=8 Dim B (8) For i=0 to n B(i)=CDbl(InputBox("Введите "&i&"-й элемент одномерного массива",_ "Ввод строго возрастающего вектора A:", i)) s=s&B(i)&" " Next s=s&vbCrLf ' Начало алгоритма поиска x=CDbl(InputBox("Введите искомый элемент: ","Окно ввода:", 5)) i=0: Q=False: j=n Do k=(i+j)\2 If B(k)=x Then Q=True Else If B(k)<x Then i=k+1 Else j=k-1 End If End If Loop Until Q or (i>j) If Q Then MsgBox "Массив: "&s&vbCrLf&_ "Элемент "&x&" найден в массиве!"&vbCrLf&_ "Его минимальный индекс в массиве: "&i Else MsgBox "Массив: "&s&vbCrLf&_ "Элемент "&x&" не найден в массиве!" End If
Дата добавления: 2014-12-29; Просмотров: 344; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |