Определите правильный результат выполнения следующего фрагмента програмы

      Комментарии к записи Определите правильный результат выполнения следующего фрагмента програмы отключены
Dim a (5) As Single For i = 0 To 5 a(i) = i Nexti TextBox1.Text= CStr(a(i))

1) 5

2) сообщение об ошибке

3) 6

4) 0

После выполнения фрагмента программы

Dim a (5) Single For i = 1 To 7 TextBox1.Text = TextBox1.TextCStr(a(i))Next i

массив будет напечатан

1) в столбец

2) в строку

3)со сдвиг по заданному критерию

4) нет верного ответа

Фрагмент программы

Fori = k To n — 1 a(i) = a(i+1) Next i

выполняет

1) сжатие массива «сдвигом влево»

2) сжатие массива «сдвигом вправо»

3) удаление первых K элементов массива

4) удаление последних N-K элементов массива

Что выполняет следующий фрагмент программы

For i = 0 To n-1 For j = i +1 To n If a(i) a(j) Then r = a(i) : a(i) = a(j) : a(j) = r Next j Next i

1) упорядочивает массив по убыванию

2) упорядочивает массив по возрастанию

3) меняет максимальный и минимальный элементы местами

4) формирует массив из положительных элементов массива

Фрагмент программы

i=0 Do If a(i) = 0 Then For j = i To n-1 a(j) = a(j+1) Nextj n = n-1 Else i = i + 1 End If LoopWhile i

1) удаляет из массива нулевые элементы

2) перемещает нулевые элементы влево

3) перемещает нулевые элементы вправо

4) оставляет все по-прежнему

Фрагмент программы подсчитывает

k = 0 : s = 0 For i = 0 To 5 If a(i) = 0 Then k = k + 1 : If a(i) 0 Then s = s + a(i) Nexti TextBox1.Text=CStr(s)CStr(k)

1) сумму элементов, меньших 0, и количество положительных элементов

2) количество всех элементов и сумму положительных элементов

3) количество элементов, равных 0, и сумму отрицательных элементов

4) произведение отрицательных элементов и сумму элементов, равных 0

Следующий фрагмент программы

j = -1 For i = 0 To n If a(i)0 Then j = j + 1 : m(j) = i End If Next i

1) записывает индексы положительных элементов массива a() в массив m

2) переписывает массив, а() в массив m

3) переписывает в массив m положительные элементы массива a()

4) изменяет порядок расположения элементов в массиве a()

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

DIMB(100), М, I, N As Integer SubButton1_Click( … ) For I = 0 To 100 B(I) = INT(RND*100) NextI M = B(1) For I = 1 Tо 100 If B(I) MThen M = B(I) : N = I EndIf NextI TextBox1.Text = CStr(N) End Sub

1) значением минимального элемента массива

2) индексом минимального элемента массива

3) значением максимального элемента массива

4) индексом максимального элемента массива

Следующий фрагмент программы выполняет

k = 2 : n =10 For i = k Ton-1 a(i) = a(i+1) Next i

1) Удаление k-го элемента массива

2) расширение массива «сдвигом вправо»

3) удаление k первых элементов массива

4) удаление последних n-k элементов массива

В результате выполнения следующего фрагмента программы происходит

j = -1 For i = 0 To 10 If a(i)0 Then j = j + 1 :b(j) = a(i)^2 EndIf Next i

1) формирование массива b() из квадратов отрицательных элементов массива a()

2) упорядочение массива, а() по возрастанию

3) формирование нового массив b() по возрастанию

4) формирование нового массив b() по убыванию

16.

4.7.7. Лабораторная работа по теме
«Программирование алгоритмов формирования и обработки одномерных массивов»

Цель работы:овладение практическими навыками разработки и программирования вычислительного процесса, связанного с программированием алгоритмов формирования и обработки одномерных массивов, уяснение способов ввода, заполнения и вывода одномерных массивов, классических приемов обработки одномерных массивов.

Вопросы, подлежащие изучению

1)Способы описания и объявления одномерных массивов.

2)Возможности резервирования памяти и хранения элементов массива.

3)Способы задания значений элементам массива: присваиванием; инициализацией; вводом по запросу с клавиатуры; заполнением массива данных случайными числами в заданном диапазоне.

4)Базовые алгоритмы обработки одномерных массивов: вычисление суммы (произведения) элементов массива; нахождение номера (и значения) минимального (максимального) значения элемента массива; формирование нового массива из исходного массива по заданному критерию; сортировка элементов массива от большего к меньшему (или от меньшего к большему); удаление элементов массива, имеющих равные значения (сжатие массива); удаление элементов массива по заданному критерию (сжатие по признаку).

5)Методы класса Array.

6)Методы работы с элементами управления ListBox и ComboBox.

4.7.7.2. Общее задание на разработку проекта

1)Изучите вопросы программирование алгоритмов формирования и обработки одномерных массивов (Тема 7).

2)Создайте приложениес именемПроект-4.7.

3)Выберите вариант задания из табл. 4.7.7-1.

4)Разработайте графический интерфейс пользователя.

5) Разработайте схемы алгоритмов процедур пользователя в соответствии с индивидуальным заданием, предварительно проведя формализацию.

6) Напишите программный код процедур по разработанным алгоритмам.

7) Разработайте проект приложения, решающий поставленную задачу, который состоит из интерфейса пользователя и соответствующего программного кода, а также написанных ранее процедур обработки, ввода и вывода элементов массива. Все пользовательские процедуры должны находиться в модуле формы. Обмен данными между пользовательскими процедурами должен осуществляться через параметры, без использования глобальных переменных.

8) Подготовьте входные массивы чисел для решения задачи, если исходные данные не заданы.

9) Выполните приложение и получите результат.

10) Докажите правильность результата.

Варианты индивидуальных заданий

Таблица 4.7.7-1

1) Ввести одномерный массив x= {-1.5, 0.1, 12, 0, -2.2, 0.5, -1,0.3}. Заменить в нем всеотрицательные элементы значением минимального элемента, а все положительные –максимальным значением.
2) Ввести одномерный массив a = {5, -2, 0, 3, 4, 12, 7}. Вычислить и вывести среднееарифметическое значение положительных элементов массива и заменить этимзначением те элементы массива, которые больше среднего арифметического .
3) Ввести одномерный массив x = {-1.5, 0, 0.8, 2.2, 3, 0.5, 0.1}. Переписать элементы массива,принадлежащие отрезку [-1;1], в массив y инайти сумму элементов, расположенных после максимального элемента в массиве y.
4) Ввести одномерные массивы a(5) и b(5), состоящие из произвольных чисел и определить в каком измассивов больше положительных элементов. Получить и вывести новый массив с, состоящий из положительных элементов массивов aи b.
5) Ввести одномерный массив b= {7.35, 0.12, -7, 3.12, 2.87, -4.12, 5.32, 0, 6.5}.Определить и вывестимаксимальный элемент массива и его номер. Сформировать новый массив изэлементов одного знака, число которых больше
6) Ввести одномерный массив a={2.35,-4.15,0,-3.1, 7.8,6.3,-3.05,1.5}. Найти и вывести среднеегеометрическое положительных элементов массива a и индекс элемента, наиболее близкого ксреднему геометрическому. Затем упорядочить массив по убыванию.
7) Сформировать одномерный массив a(10)из случайных чисел, принадлежащих отрезку[-2, 6] и вычислить среднееарифметическое тех его элементов, значения которых не превышают заданногочисла z. Заменить отрицательные элементы массива найденным среднимарифметическим
8) В одномерном массиве, состоящем из 20 вещественныхэлементов (значения элементовмассива задать случайными числами изинтервала [-5, 8]), вычислить сумму элементов массива,расположенных до последнего положительного элемента. Сформировать из этихэлементов новый массив.
9) Ввести произвольно одномерныймассив из 10 элементов. Найтимаксимальный и минимальный элементы массива и поменять их местами. Вполученном массиве найти количество элементов, расположенных до первогоотрицательного элемента.
10) Ввести одномерные массивы x = {4.1, 16, 0, -3.2, 12}иY = {4, 5.1, 6}. Объединить их в один массив z,поместив элементы массива y между третьим и четвертым элементамимассива x. В новом массиве z найти сумму элементов, расположенных домаксимального элемента.
11) Ввести одномерные массивы z = {0, 1.6, 6.4, 3.8, -7, 1, -2}иa= {5,4,6.4,1}. Найти среди элементов массивов aи zдва одинаковых элемента с наименьшимииндексами и вывести их значения и индексы. Элементы, расположенные междунайденными числами, записать в новый массив.
12) Ввести одномерный массив n = {3, 5, 7, 9, -11, 13, 15}.Переставить элементы массива n в обратном порядкеи найти в нем произведение элементов, расположенных после минимальногоэлемента.
13) Ввести одномерные массивыx = {-6, 0.5, 0.12, 13, -10.1} и y = {13, 2.1, 14, 6, -2}.Создать одномерный массив r() такой, что элементы снечетными номерами являются элементами массива x, счетными номерами — массива y. Вывести массив r.В новом массиве r найти произведение элементов, расположенныхдо минимального элемента.
14) Ввести одномерный массив l = {13, 4, -2, 6, 7, -1, -5, 2, -3,4}. Вычислить и вывести m[0]n[0]+m[1]n[1]+…+m[k]n[k], гдеm[0], m[1],…m[p] — отрицательные элементы массива l,взятыев порядке их следования;n[0], n[1],…n[q] –положительные элементы массива l, взятые в обратном порядке их следования; k = min{p,q}.
15) В одномерноммассиве, состоящем из 20 вещественных элементов (значения элементов массива задать случайными числами из интервала [-3,10]), вычислить сумму элементов массива,расположенных между первым и последнимотрицательными элементами. Сформировать из этих элементов новыймассив.
16) В одномерном массиве, состоящем из 15 вещественныхэлементов (значения элементовмассива задать случайными числами изинтервала [-10, 10]), вычислитьпроизведение элементов массива, расположенных между максимальным и минимальнымэлементами. Сформировать из этихэлементов новый массив.
17) Преобразовать одномерный массив, состоящий из 20 целыхэлементов (значения элементовмассива задать случайными числами изинтервала [-4, 7]), таким образом, чтобы в первой его половине располагалисьэлементы, стоявшие в нечетных позициях, а во второй половине — элементы,стоящие в четных позициях. В полученноммассиве найти минимальный элемент и его номер.
18) Ввести одномерный массив m = {6, 10, 7, 14, 12, 12,-2, 3,-9,6,-10}. Вычислить и вывести количествои сумму тех элементов массива, которыеделятся на2 и не делятся на 3.Сформировать из этих чисел массив k.
19) В одномерном массиве, состоящемиз 20 элементов целого типа (значения элементов массива задать случайными числами из интервала[-15, 15]), вычислить сумму элементов массива, расположенных между первым ипоследним положительными элементами.Сформировать из этих элементов новый массив
20) Ввести одномерный массив l = {7, 6, 15, 17, 12, -12,4, 0, -10, -22}. Заменить в массиве нулями теэлементы, модуль которых при делении на 5дает в остатке 2. Вполученном массиве найти максимальный элемент и его номер.
21) Ввести одномерный массив k = {1, 2, 3, 4, 6, 5, 8, 9, 10}. Если элементы массива образуютвозрастающую последовательность вывести сообщение ДА; в противном случае- сообщение НЕТ.Сжать массив, удалив из него все элементы, принадлежащие отрезку [a, b].
22) Ввести упорядоченный массив q = {1.5, 2, 3.1, 4.2, 6, 7.5, 8.3,9}. Удалить из массива элемент сзадаваемым индексом k, а затем вставить элемент с вводимым значением sтак, чтобы не нарушилась упорядоченность. Вывести полученный массив.
23) В одномерном массиве, состоящем из 15 вещественныхэлементов (значения элементовмассива задать случайными числами изинтервала [-7, 10]), вычислить сумму положительных элементов массива. Преобразоватьмассив таким образом, чтобы сначала располагались все элементы, модуль которых не превышает 4, а потом —все остальные.
24) Ввести одномерный массив b={-15.1 ,0.8, 32.3, 7.5,-1.5, 2.4,-6.3, 15.5}. Подсчитать и вывести среднее арифметическое значениеэлементов массива и количество элементов, меньших среднего арифметического,записывая их в новый массив.
25) В одномерном массиве, состоящем из 20 вещественных элементов (значения элементов массива задать случайными числами из интервала [-3,9]), вычислить сумму элементовмассива, расположенных между первым и вторым отрицательными элементами.Сформировать из этих элементов новый массив
26) Ввести одномерный массив m = {14, 6, 3, 0, 7, 12, -3, 1, 5,2}. Вычислить и вывести произведение элементов массива,кратных 3. Сформироватьиз этих чисел массив k
27) Ввести одномерный массив m = {-1, 0, 10, -3, -5, 6, -2, 3, 4}.Вычислить сумму элементов с нечетными номерами. Сформировать и вывестимассив n, элементамикоторого являются индексы положительных элементов массива m.
28) Ввести два одномерных массива a= {-2, 0, -3.1, 4.6, -1}, b = {4, 7, -9.1, 1.2, -0.3}. Сформировать из элементовмассивов a и b массив z. В новом массиве zнайти произведение элементов, расположенных после максимального по модулю элемента.
29) В одномерном массиве, состоящем из 20 целых элементов(значения элементов массива задать случайными числами из интервала [-5,5]), вычислить произведение элементовмассива с четными номерами. Преобразовать массив таким образом, чтобы сначаларасполагались все положительныеэлементы массива, а потом — всеотрицательные.
30) Ввести одномерный массив y = {2.5, -4.9, 10.2, -7.12, 3.1, -2,6}. Сформировать из него новый массив z,элементами которого будут являться отрицательные элементы массива y, и упорядочить по возрастанию массив z.
31) Ввести одномерный массивx = {-1, 2, 3, 4, -5, 0,17, -6, 8, 9}. Переписать в массив yподряд положительные элементымассива x.Подсчитать в массиве y количествоэлементов, которые являются простыми числами.
32) Ввести одномерный массив g= {-3.1, 2.8, 0, 5, 7.7, -7.5, 0, 7.6, 3, 0}.Подсчитать произведениеотрицательных элементов массива. Преобразовать массив таким образом, чтобысначала располагались все элементы равные нулю, а потом — все остальные.
33) Ввести одномерный массив k = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}. Переставитьпары элементов k(i),k(i+1),где i = 0, 2, 4, 6, 8. Вывестиполученный массив
34) Ввести одномерный массив x = {6,3.8, -9.3, 2.87,16, 5, 0.2,-3.1,1,10}. Сформировать массив Y, вычислив его элементы поправилу:
35) Ввести одномерный массив z = {-2, 0, 3.5, 7, -12, 5, -1, 3}. Расположить в массиве r сначала положительныеэлементы, а затем неположительные элементы массива z.Вывести массив r.

4.7.7.4. .Содержание отчёта

1)Тема и название лабораторной работы.

2)Фамилия, имя студента, номер группы, номер варианта.

3)Задание на разработку проекта.

4)Формализация и уточнение задания.

5)Элементы, разрабатываемого проекта:

5.1) графический интерфейс пользователя;

5.2) таблица свойств объектов;

5.3) схема алгоритма решаемой задачи;

5.4) программный код проекта.

6)Результаты выполнения проектов.

7)Доказательство правильности работы программы.

Пример выполнения задания

1) Тема и название лабораторной работы:

Программирование алгоритмов формирования и обработки одномерных массивов.

Заполнение и преобразование одномерного массива различными
способами.

2) Фамилия, имя студента, номер группы, номер варианта:

Иванов И., БИН1405, вариант 13.

3) Задание на разработку проекта:

Введите значения одномерного массива натуральных чисел a(n), используя различные алгоритмы заполнения массива, и сформируйте его. Далее осуществите преобразование сформированного массива, используя различные методы обработки одномерных массивов, и вычислите одну из заданных характеристик сформированного массива

4) Формализация и уточнение задания:

В разрабатываемом приложении ввод значений исходного массива (процедура vvod()) может осуществляться одним из следующих способов: вводом с клавиатуры; с помощью датчика случайных чисел; формированием по формуле.

Преобразование исходного массива может осуществляться несколькими способами: сортировка по возрастанию методом «пузырька»; сортировка по убыванию методом «выбора»; удаление отрицательных элементов.

5) Элементы, разрабатываемого проекта:

5.1) Графический интерфейс пользователя:

Разработайте форму приложения, которая может иметь такой же

вид, как на рис. 4.7.7-1.

Для обеспечения возможности выбора способов ввода и обработки массива используйте элементы управления ComboBox (поле со списком или раскрывающийся список).

По своим функциям список типа ComboBox совмещает функции списка ListBoxи текстового поля TextBox, поэтому из списка можно не только выбирать, но и вводить данные в находящееся в верхней части поле ввода. Элементы могут добавляться в список и удаляться из него во время разработки приложения с помощью свойства Items. Программные подобные действия осуществляются с использованием методов коллекции Items (например, Add() – добавление, Remove() – удаление, Insert() – вставка), элемента управления ComboBox. Метод Clear() удаляет все элементы из списка.

Также надо обратить внимание на расположенное в окне Properties свойство SelectionMode. С его помощью устанавливается количество выбираемых элементов. Например, при значении этого свойства One (один) в списке можно выделить только одну строку.

Для доступа к элементам списка используется свойство Items. Значения этого свойства являются массивом, размер которого равен количеству элементов в списке, а обращение к элементу осуществляется через индекс, определяющий его положение в списке, причем нумерация начинается с нуля. Например, значение первого элемента списка будет равно ComboBox1.Items(0).

Рис. 4.7.7-1. Форма проекта Проект 7-1:

Заполнение и преобразование одномерного массива

5.2) Таблица свойств объектов:

Установите и сведите в табл. 4.7.7-2 свойства объектов.

Таблица 4.7.7-2

Имя объекта Свойство Значение свойства
Label1 ForeColor Red(Красный)
Font Times NewRoman, Bold (Жирный),10-point (10 пунктов)
AutoSize True
Name Label1
Text 1.
Label2 ForeColor Red(Красный)
Font Times NewRoman, Bold (Жирный), 10-point (10 пунктов)
AutoSize True
Name Label2
Text
Label3 Font Times NewRoman, Bold (Жирный), 14-point (14 пунктов)
ForeColor Синий
Name Label3
Text Изучениеодномерных массивов
Label5 Font Times NewRoman, Bold (Жирный), 10-point (10 пунктов)
Name Label5
Text Введите одномерный массив Х(), используя различные способызаполнения и преобразуйте его, используя алгоритмы преобразования
Label8 ForeColor Red(Красный)
Name Label8
Text Задайте количество элементов массива х:
Label10 Font 10 пунктов
Name Label10
Text Заполнениемассива
Label11 AutoSize False
ForeColor Синий
Name Label11
Text Преобразованиемассива х:
Label6 Font Times NewRoman, Bold (Жирный), 10-point (10 пунктов)
Name Label6
Text Исходныймассив Х
Label7 Font Times NewRoman, Bold (Жирный), 10-point (10 пунктов)
Name Label7
Text Полученныймассив
ComboBox1 Items (коллекция) Ввод массива с клавиатуры Ввод массива по генератору случайных чисел Ввод массивапо формуле
Name ComboBox1
ComboBox2 Items (коллекция) Сортировка по возрастанию методомпузырька Сортировка по убыванию методом выбора Удалениеотрицательных элементов
Name ComboBox2
ListBox1 Name ListBox1
ListBox2 Name ListBox2
Text
Button1 Name Button1
Text Конецзадания

5.3) Схемы алгоритмов решаемой задачи:

Схемы алгоритмов отдельных процедур приведены в Теме 4.7.

5.4)Программный код проекта:

Программный код разработанного проекта приведен на
рис. П.1.7-2.

OptionStrict On OptionExplicit On ‘ImportsSystem.Math Public Class Проект7 Dim x() As Single ‘Процедура ввода массива Subvvod(ByRef x() As Single, ByValindex As Integer) Dim y,r As String Dim i As Integer Select Caseindex Case 0’ввод с клавиатуры For i= 0 To UBound(x) r = Str(i) y = InputBox(элемент массиваX(+ r +)=, _ Ввод значенийэлементов массива X()) x(i) = CSng(Val(y)) Nexti Case1’ввод генераторомслуч. чисел For i= 0 To UBound(x) x(i) = Rnd(1) * 10 — 5 Next i Case 2’ввод по формуле For i= 0 To UBound(x) x(i) = i * 5 — 15 Next i End Select End Sub ‘Процедура вывода массиваPublic SubPrintL(ByRef x() As Single,ByRefLB As ListBox) Dim i As Integer Dim y As String =For i= 0 To UBound(x) y = y + Format(x(i), 00.00) +Space(4) Next i y = y + —— LB.Items.Add(y) EndSub ‘Процедура сортировки эл-тов массива по возрастанию Public Subsort1(ByRef x() As Single) DimBox As Single Dim i,j As Integer For i= 0 To UBound(x) — 1 For j= i + 1 To UBound(x) Ifx(i)x(j) Then Box = x(j) : x(j) = x(i): x(i) = Box End If Next j Next i End Sub ‘Процедура сортировки эл-тов массива по убыванию Public Subsort2(ByRef x() As Single) Dim i,j, m As Integer Dimxmax As Single For i= 0 To UBound(x) — 1 xmax = x(i) : m = i For j= i + 1 To UBound(x) Ifx(j)xmax Then xmax = x(j) m = j End If Next j x(m) = x(i) x(i) = xmax Next i EndSub ‘Процедура удаления отрицательных эл-тов массива Public Submass_udal(ByRef x() As Single) Dim j,i, n As Integer n = UBound(x) i = 0 Do While i

Рис. 4.7.7. Программный код проекта Проект 7-1:

Заполнение и преобразование одномерного массива

6)Результаты выполнения проекта:

Результаты выполнения проекта приведены на рис. 4.7.7-3.

Рис. 4.7.7-3. Результаты выполнения Проект 7-1:

Заполнение и преобразование одномерного массива

7) Доказательство правильности работы программы:

Получен исходный массив из 8 элементов: 2.06, 0.33, 0.80, -2.10, -1.98, 2.75, -4.86, 2.61, 3.14.

Удалены отрицательные элементы 2.06, 0.33, 0.80, 2.75, 2.61, 3.14.

Вывод: анализируя результирующий массив, приходим к выводу о том, что отрицательные элементы отсутствуют, следовательно, для введенных данных, задача решена верно.

Контрольные вопросы

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)Чем отличаются списки ListBox и ComboBox?

26)Как настраиваются свойства списков ListBox?

27)Как настраиваются свойства списков ComboBox?

28)Как добавить, изменить и удалить элемент списка?

29)Как определить элемент, выбранный пользователем?

30)Каким образом массив передается в процедуру?

31)Какие базовые алгоритмы обработки одномерных массивов известны?

32)Какие методы сортировки массивов известны?

33)В чем суть метода сортировки элементов массива выбором?

34)В чем суть метода сортировки элементов массива пузырьком?

35)Какие методы класса Array известны?

36)Каким образом объявляются одномерные массивы в программах?

Правильный подкат от Just Archi