Задание для самостоятельной работы
Лабораторная работа №5
Одномерные массивы
Цель работы
Изучить методы алгоритмизации и программирования с использованием регулярных типов (массивов).
Порядок выполнения работы
Получить задание для выполнения лабораторной работы (раздел 5) согласно своему варианту. Разработать и отладить программу. Составить отчет о лабораторной работе и защитить её у преподавателя.
Содержание отчета
- наименование и цель работы;
- задание на лабораторную работу согласно варианту;
- схема алгоритма, текст программы на алгоритмическом языке;
- результаты работы программы.
Краткая теория
В VB .NET имена массивов должны подчиняться тем же правилам, что и имена переменных. Ссылка на элемент массива выглядит как имя массива, за которым в круглых скобках указывается индекс.
Dim Counters(14) As Integer ‘ 15 элементов
Dim Sums(20) As String ‘ 21 элемент
Индексация элементов в массивах начинается с 0. На момент написания книги ключевое слово То не поддерживалось — будем надеяться, что оно еще вернется!
Начиная с бета-версии 2 объявление Dim stringList(7) создает массив из восьми элементов с индексами от 0 до 7. Поскольку в VB .NET индексация всегда начинается с нуля, третий элемент массива обозначается stringList(2), а предшествующие элементы обозначаются stringList(0) и stringList(l).
При объявлении массива можно указать его размерность. Например, следующий код демонстрирует использование массива из трех вещественных чисел.
|
|
Dim stats(2) As Double
stats(0) = 1.1
stats(1) = 2.2
stats(2) = 3.1
Dim sum As Double =0
Dim i As Integer
For i = 0 To 2
sum+= stats (i)
Next
Console.WriteLine(stats(0) &”+”&stats(1)&”+”&stats(2)&”=”sum)
End Sub
Динамические массивы
Иногда заранее неизвестно, какой длины должен быть массив. В связи с этим необходимо иметь возможность изменения размера массива во время выполнения. Чтобы задать динамический массив, следует в объявлениях массива оставлять пустым список размерностей массива, например:
Dim dinmas() As Integer
Затем выделяется необходимая память оператором ReDim:
ReDim dinmas(5,5)
В данном премере оператор ReDim размещает в памяти матрицу целых чисел размером 6*6 (всего в ней 36 элементов). Можно уставливать границы динамических массивов с помощью переменных:
ReDim dinmas(x,y)
Все массивы VB .NET являются динамическими. Во время работы программы их можно переобъявить с новым размером при помощи команд ReDim (с потерей текущего содержимого) и ReDim Preserve (с сохранением текущего содержимого). Пример:
Dim x() As Single
ReDim x(20) ' Начиная с бета-версии 2. создает массив из 21 элемента
ReDim Preserve x(50) ' 21 элемент сохраняется в массиве.
|
|
Команда ReDim не позволяет изменять тип массива; также не допускается использование ReDim при объявлении. Перед вызовом ReDim массив должен быть объявлен при помощи Dim или аналогичной команды.
Массивы могут инициализироваться при объявлении, как показывает следующий пример:
Dim weekend() As String = {“Saturday”, “Sunday”}
Менее очевидные изменения обусловлены тем, что массивы VB .NET являются экземплярами класса Array, это позволяет выполнять операции с массивами вызовом методов класса Array. Ниже продемонстрирован пример сортировки массива методом Sort:
Sub Main()
Dim stuff() As Integer = (9, 7, 5, 4, 2, 1, -37, 6}
Array.Sort(stuff)
Dim i As Integer
For i = 0 To UBound(stuff)
Console.WriteLine(stuff(i))
Next
Console. ReadLine()
End Sub
Программа выводит массив, отсортированный с применением чрезвычайно эффективного алгоритма «быстрой сортировки».
VB.NET наследует от .NET Framework некоторые очень полезные структуры данных, возможности которых выходят далеко за рамки обычных массивов. В частности, списковые массивы (с динамически изменяемыми размерами) и ассоциативные массивы (с доступом к данным по ключу) часто оказываются удобнее обычных массивов.
Массивы с индексацией элементов в заданном интервале
Утверждение о том, что индексация массивов всегда начинается с 0, не совсем точно. Теоретически можно определять массивы с заданной верхней и нижней границей индекса, но из-за неудобного синтаксиса и снижения быстродействия вряд ли вам захочется это делать.
|
|
Для явного задания нижней границы (диапазон ее изменения совпадает с диапазоном изменения типа данных Long) следует использовать ключевое слово To:
Dim Conters (1 To 15) As Integer
Dim Sums (100 To 200) As String
В этих примерах индекс массива Conters изменяется от 1 до 15, а массива Sums от 100 до 200.
В следующем фрагменте создается массив с индексацией элементов от 1995 до 2002:
Sub Main()
Dim anArray As Array
Dim i As Integer
Dim i(0) As Integer
Dim lowerBounds(0) As Integer
i(0) = 7
lowerBounds(0) = 1995 ' Создать массив с индексами 1995 - 2002
аnАrrау = Array.CreateInstance(GetType(System.Int32). 1. lowerBounds) anArray.SetValue(200000, 1995) anArray.SetValue(1000000. 2001)
Console.WriteLine("The entry in position 1995 is " & _ (anArray.GetValue(1995).ToString))
Console.WriteLine("The entry in position 2002 is " & _ (anArray.GetValue(2001).ToString))
Console. ReadLine()
End Sub
Присваивание выполняется методом SetValue (значение,индекс), а чтение — методом GetValue(индекс). Но если массив создается подобным образом в режиме жесткой проверки типов, вам придется позаботиться о том, чтобы присваиваемое значение было преобразовано к правильному типу!
|
|
Многомерные массивы
Массивы не ограничиваются одним измерением. Допустим, вы хотите сохранить таблицу умножения в матричном виде. Примерное решение может выглядеть так:
Dim mulTable(11,11) As Integer
' Создает массив 12x12
Dim i As Integer, j As Integer
For i = 0 To 11
For j = 0 To 11
mulTable(i,j) = (i+l)*(j+l)
Next j
Next i
Размеры массивов в VB .NET могут изменяться, но количество измерений должно оставаться постоянным.
Многомерный массив с неопределенным количеством элементов объявляется при помощи запятых. Следующий пример показывает, как объявить трехмерный массив:
Dim salesByDivision( , , ) As Decimal
Команда ReDim задает или изменяет количество элементов в каждом измерении, но размерность массива не изменяется.
При сохранении содержимого массива командой ReDim Preserve допускается изменение количества элементов только в последнем измерении массива.
Задание для самостоятельной работы
Вариант 1
В одномерном массиве, состоящем из п вещественных элементов, вычислить:
• сумму отрицательных элементов массива;
• произведение элементов массива, расположенных между максимальным и минимальным элементами.
Вариант 2
В одномерном массиве, состоящем из п вещественных элементов, вычислить:
• сумму положительных элементов массива;
• произведение элементов массива, расположенных между максимальным по модулю и минимальным по модулю элементами.
Вариант 3
В одномерном массиве, состоящем из п целочисленных элементов, вычислить:
• произведение элементов массива с четными номерами;
• сумму элементов массива, расположенных между первым и последним нулевыми элементами.
Вариант 4
В одномерном массиве, состоящем из я вещественных элементов, вычислить:
• сумму элементов массива с нечетными номерами;
• сумму элементов массива, расположенных между первым и последним отрицательными элементами.
Вариант 5
В одномерном массиве, состоящем из п вещественных элементов, вычислить:
• максимальный элемент массива;
• сумму элементов массива, расположенных до последнего положительного элемента.
Вариант 6
В одномерном массиве, состоящем из и вещественных элементов, вычислить:
• минимальный элемент массива;
• сумму элементов массива, расположенных между первым и последним положительными элементами.
Вариант 7
В одномерном массиве, состоящем из п целочисленных элементов, вычислить:
• номер максимального элемента массива;
• произведение элементов массива, расположенных между первым и вторым нулевыми элементами.
Вариант 8
В одномерном массиве, состоящем из я вещественных элементов, вычислить:
• номер минимального элемента массива;
• сумму элементов массива, расположенных между первым и вторым отрицательными элементами.
Вариант 9
В одномерном массиве, состоящем из п вещественных элементов, вычислить:
• максимальный по модулю элемент массива;
• сумму элементов массива, расположенных между первым и вторым положительными элементами.
Вариант 10
В одномерном массиве, состоящем из п целочисленных элементов, вычислить:
• минимальный по модулю элемент массива;
• сумму модулей элементов массива, расположенных после первого элемента, равного нулю.
Вариант 11
В одномерном массиве, состоящем из п вещественных элементов, вычислить:
• номер минимального по модулю элемента массива;
• сумму модулей элементов массива, расположенных после первого отрицательного элемента.
Вариант 12
В одномерном массиве, состоящем из п вещественных элементов, вычислить:
• номер максимального по модулю элемента массива;
• сумму элементов массива, расположенных после первого положительного элемента.
Вариант 13
В одномерном массиве, состоящем из п вещественных элементов, вычислить:
• количество элементов массива, лежащих в диапазоне от А до В;
• сумму элементов массива, расположенных после максимального элемента.
Вариант 14
В одномерном массиве, состоящем из п вещественных элементов, вычислить:
• количество элементов массива, равных нулю;
• сумму элементов массива, расположенных после минимального элемента.
Вариант 15
В одномерном массиве, состоящем из п вещественных элементов, вычислить:
• количество элементов массива, больших С;
• произведение элементов массива, расположенных после максимального по модулю элемента.
Вариант 16
В одномерном массиве, состоящем из п вещественных элементов, вычислить:
• количество отрицательных элементов массива;
• сумму модулей элементов массива, расположенных после минимального по модулю элемента.
Вариант 17
В одномерном массиве, состоящем из п целочисленных элементов, вычислить:
• количество положительных элементов массива;
• сумму элементов массива, расположенных после последнего элемента, равного нулю.
Вариант 18
В одномерном массиве, состоящем из и вещественных элементов, вычислить:
• количество элементов массива, меньших С;
• сумму целых частей элементов массива, расположенных после последнего отрицательного элемента.
Вариант 19
В одномерном массиве, состоящем из п вещественных элементов, вычислить:
• произведение отрицательных элементов массива;
• сумму положительных элементов массива, расположенных до максимального элемента.
Вариант 20
В одномерном массиве, состоящем из п вещественных элементов, вычислить:
• произведение положительных элементов массива;
• сумму элементов массива, расположенных до минимального элемента.
Дата добавления: 2018-02-28; просмотров: 401; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!