Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Формирование массива с помощью функции SplitСодержание книги
Поиск на нашем сайте
Число элементов массива и сам массив можно задать в текстовых окнах. В качестве разделителя значений элементов массива можно использовать любой символ, например, пробел. В VB имеется функция Split, которая позволяет, указав разделитель, ввести из текстового поля все элементы массива сразу. Эта функция разделит строку по указанному разделителю на массив подстрок. Подстрок будет столько, сколько было введено элементов. Массив полученных подстрок индексируется с нуля! В приведенном ниже примере поиска максимального значения в массиве для ввода данных используются два элемента управления TextBox. Первый – для указания количества элементов массива. Второй – для ввода строки, состоящей из элементов массива разделенных пробелом. Функция Split делит строку Text2 по пробелу на массив подстрок. После этого в цикле заполняются элементы массива. Результаты расчета выводятся на графическое окно
Линейная сортировка массива Существует множество алгоритмов для сортировки массивов. Рассмотрим два алгоритма: сортировка выбором и метод пузырька. Cортировка выбором. Суть метода может быть описана так: 1. В последовательности из n элементов выбирается наименьший (наибольший) элемент; 2. Меняется местом с первым; 3. Далее процесс повторяется с оставшимися n -1 элементами, затем с оставшимися n -2 элементами и т.д., до тех пор, пока не останется один самый большой (маленький) элемент. Для реализации этого алгоритма необходимо использовать два вложенных цикла с параметром For. Внешний цикл (по i) предназначен для последовательного фиксирования элементов массива, внутренний (по j) – осуществляет поиск минимального (максимального) и его позиции в неотсортированной части массива. После выхода из внутреннего цикла следует перестановка элементов. Последний элемент во внешнем цикле не рассматривается: он сам встанет на свое место. Фрагмент программного кода процедуры сортировки выбором: (нумерация элементов массива начинается с единицы): For i = 1 To n - 1 'Внешний цикл: перебор элементов массива Min = a(i): nom = i 'Сортировка по убыванию For j = i + 1 To n 'Внешний цикл: поиск минимального элемента и 'его позиции в неотсортированной части массива If (a(j) < Min) Then Min = a(j): nom = j Next j tmp = a(i) 'Перестановка элементов ai и anom a(i) = a(nom) a(nom) = tmp Next i For i = 1 To n Text3.Text = Text3.Text + " " + Str(a(i)) Next i Сортировка методом пузырька. Метод основан на сравнении соседних элементов. «Неправильно» расположенные по отношению друг к другу элементы меняются местами. Во вложенных циклах поочередно фиксируется пара соседних элементов массива. В результате первого прохода элемент с минимальным значением оказывается в первой позиции массива (всплывает) (Рис. 6). Рис. 6 – Сортировка методом пузырька Фрагмент программного кода сортировки методом пузырька:
Уплотнение массива Уплотнение массива – это удаление из него элементов, отвечающих тем или иным условиям. Образующиеся пустоты заполняются за счет сдвига всех оставшихся элементов. Так как длина массива при этом уменьшается, то при обработке массива необходимо использовать не цикл с параметром, а цикл с условием. Алгоритм удаления элемента из массива состоит в том, что на место удаленного i -го элемента переписывается i +1-ый элемент, на место i +1-го элемента переписывается i +2-ой элемент и т.д. Пример. Удалить из сформированного массива числа, кратные трем. Фрагмент программного кода уплотнения массива (нумерация элементов массива начинается с единицы): i=1 'Инициализация счетчика 'Цикл последовательного перебора имеющихся элементов. Изначально их n штук Do While i<=n 'Пока i остается <=N тело цикла выполняется If (a(i) mod 3 <> 0) or (a(i)=0) Then ' Проверка условия i=i+1 'Увеличение параметра цикла, если элемент не кратен 3 Else For j=i To n-1 'Цикл для удаление из массива элемента кратного 3 a(j)=a(j+1) 'На место элемента aj переписывается элемент aj+1 Next j n=n-1 'Уменьшение на единицу количества элементов массива End if Loop 'Конец цикла While Вставка элемента в массив Вставка элемента в массив – задача обратная предыдущей. Прием используется тот же – смещение группы элементов на одну позицию. Только при уплотнении сдвиг производится влево, при вставке – вправо. При вставке возникает проблема, что делать с последними элементами? Если в дальнейшей работе с массивом участвуют только заявленные элементы, то «хвост» придется вытеснить, последние значения при этом будут утрачены. Иначе, придется создавать дополнительный массив, размерность которого будет больше исходного или объявить размер массива с учетом количества вставленных элементов. Выбор типа цикла для работы с массивом зависит от конкретного случая. Например, можно использовать цикл с параметром, если хвост подлежит вытеснению, и число элементов в массиве остается неизменным. Пример 1. В заданный упорядоченный по возрастанию массив вставить число k, не нарушая его упорядоченности. Последний элемент вытеснить. Фрагмент программного кода: For i=1 To n 'Цикл для перебора элементов массива If k < a(i) Then 'Поиск места для вставки нового значения k 'Если место найдено, то организуется цикл для смещения элементов на единицу вправо For j=N-1 Downto i+1 a(j)=a(j-1) ' На место элемента aj переписывается элемент aj-1 Next i a(i)=k 'Вставка нового значения на освобожденное место Exit For 'Выход из внешнего цикла i End if Next i Пример 2. В одномерный массив вставить число x после всех элементов, кратных трем. Все элементы массива сохранить. При описании данного массива необходимо учесть, что его размер может увеличиться максимум вдвое. Фрагмент программного кода: kol=0; 'Счетчик количества вставок For i=n To 1 'Цикл для перебора элементов массива c конца If a(i) mod 3=0 Then 'Поиск места для вставки нового значения k. 'Если место найдено, то организуется цикл для смещения элементов на единицу вправо 'с учетом вставленных элементов For j=n+kol To i+1 a(j+1)=a(j) 'На место j+1-го элемента переписывается j-ый элемент Next j a(i+1)=x 'Вставка нового значения на освобожденное место kol=kol+1 'Счетчик количества вставок увеличивается на 1 End if Next i
|
||||||
Последнее изменение этой страницы: 2016-08-12; просмотров: 293; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.216.104.106 (0.006 с.) |