Задание для самостоятельной работы

Лабораторная работа №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; Мы поможем в написании вашей работы!

Поделиться с друзьями:




Мы поможем в написании ваших работ!