1 Переменные и массивы 2 1. Переменные Модификаторы

Скачать презентацию 1 Переменные и массивы 2 1. Переменные Модификаторы Скачать презентацию 1 Переменные и массивы 2 1. Переменные Модификаторы

4-5_Peremennye_i_massivy.ppt

  • Количество слайдов: 31

>1 Переменные  и  массивы 1 Переменные и массивы

>2 1. Переменные Модификаторы доступа к переменным:  Public – Переменная общедоступна.  2 1. Переменные Модификаторы доступа к переменным: Public – Переменная общедоступна. Общедоступные переменные могут быть объявлены для всего исходного файла, а так же внутри модуля, класса или структуры, но не внутри процедуры! Private – Закрытый доступ к переменной. Такие переменные доступны только внутри контекста, в котором были объявлены. Закрытые переменные могут быть объявлены внутри модуля, класса или структуры, но не на уровне пространства имен или файла и не внутри процедуры.

>3 1. Переменные Основные уровни доступа:  Static – Объявляет переменные, которые после выхода 3 1. Переменные Основные уровни доступа: Static – Объявляет переменные, которые после выхода из процедуры продолжают существовать и сохраняют свое последнее значение, в которой они были объявлены. Объявлять статические переменные можно внутри процедуры, но не на уровне класса или модуля.

>4 1. Переменные Основные уровни доступа: Shared – Совместное использование переменной. Доступ к переменной 4 1. Переменные Основные уровни доступа: Shared – Совместное использование переменной. Доступ к переменной осуществляется путем указания имени переменной вместе с именем класса или структуры. ReadOnly – Переменные доступны только для чтения и недоступны для записи. В VB.NET директива New указывает на немедленное создание экземпляра. Пример: Dim K As New Integer

>5 1. Переменные  Примеры объявления переменных: Dim V As Decimal Static Dim X 5 1. Переменные Примеры объявления переменных: Dim V As Decimal Static Dim X As Integer Private Shared Y As New String Public Ploschad_Kruga_Vpisannogo_v_Treugolnik As Single ‘1023 симв. Dim A, B As Byte, C, D, E As Char, F As DateTime Dim G As Integer=12 Dim A, B As Integer = 1, 2 ‘НЕПРАВИЛЬНАЯ ИНИЦИАЛИЗАЦИЯ!!! Dim A As Integer = 1 ‘ Правильно! Dim B As Integer = 2

>6 1. Переменные  Если для переменной не указано начальное значение, то по умолчанию 6 1. Переменные Если для переменной не указано начальное значение, то по умолчанию в качестве начальных устанавливаются значения: 0 – для всех числовых типов (Byte, Integer, Long, Double, Decimal …) двоичный 0 - для типа Char Nothing – для всех ссылочных типов (массивы, Object, String) False – для типа Boolean 01.01.0001 00:00:00 – для типа DateTime,

>7 1. Переменны     ОБЛАСТЬ ВИДИМОСТИ ПЕРЕМЕННЫХ.   Переменные, объявленные 7 1. Переменны ОБЛАСТЬ ВИДИМОСТИ ПЕРЕМЕННЫХ. Переменные, объявленные в операторе Dim, доступны внутри области программного кода, которая содержит данный оператор. Если переменные объявляются в модуле или классе вне процедур, доступ к ним может осуществляться из любого модуля или класса и из любой процедуры, входящей в их состав.

>8 1. Переменные     ОБЛАСТЬ ВИДИМОСТИ ПЕРЕМЕННЫХ.    В 8 1. Переменные ОБЛАСТЬ ВИДИМОСТИ ПЕРЕМЕННЫХ. В VB.NET переменные, описанные внутри блока (CASE, Циклы ..), доступны только внутри него и недоступны вне этого блока: Private Sub ProcA() Dim N As Integer = 1 While (N < 20) Dim M As Integer M = N End While MessageBox.Show(M) ‘ Выдаст соообщение об ошибке! End Sub

>9 2. МАССИВЫ     МАССИВЫ.    Массив может быть 9 2. МАССИВЫ МАССИВЫ. Массив может быть одномерным и многомерным. Размерность массива определяется количеством индексов. При описании массива можно задавать до 32 измерений. Нижней границей индекса массива всегда является 0. Примеры объявления массивов: Dim A(9) As Integer ‘ Одномерный массив из 10 элементов типа Integer Dim B(4) As String ‘ Одномерный массив из 5 строк Dim C(4, 9) As Integer ‘ Двумерный массив 5х10 типа Integer Dim В(9, 2, 4) As Double ‘ Трехмерный массив 10х3х5 типа Double

>10 2. МАССИВЫ     МАССИВЫ. Присвоение значения элементам массива: Пример 1. 10 2. МАССИВЫ МАССИВЫ. Присвоение значения элементам массива: Пример 1. Dim A(2) As Integer A(0) = 0 A(1) = 10 A(2) = 20 Пример 2. Dim B(100) As Integer, k As Integer For k = 0 To 100 B(k) = k*10 Next k

>11 2. МАССИВЫ     МАССИВЫ. Присвоение значения элементам массива: Пример 3. 11 2. МАССИВЫ МАССИВЫ. Присвоение значения элементам массива: Пример 3. Dim M( ) As String = {“Яблоко”, “Груша”, “Вишня”} ‘ Размерность не указывается! Пример 4. Dim N( , ) As Integer = {{10, 15, 20}, {25, 30, 35}} ‘ Массив 2х3 Пример 5. Dim M(3) As String = {“Яблоко”, “Груша”, “Вишня”} ‘ Ошибка!!!

>12 2. МАССИВЫ     МАССИВЫ. Присвоение значения элементам массива: Пример 6. 12 2. МАССИВЫ МАССИВЫ. Присвоение значения элементам массива: Пример 6. Ошибочная последовательность строк Dim N( ) As Integer N(2) = 5 ‘ Ошибка!!! Пример 7. Правильная последовательность строк. Dim N( ) As Integer ‘ Объявление массива ReDim N(3) ‘ Установка размера массива N(2) = 5 ‘ Верное изменение элемента массива

>13 2. МАССИВЫ     МАССИВЫ.      ИЗМЕНЕНИЕ 13 2. МАССИВЫ МАССИВЫ. ИЗМЕНЕНИЕ РАЗМЕРА МАССИВА. Размер массива можно менять после его создания. Dim A(2, 2) As Integer, B(9, 4, 2) As Integer … ReDim A(3, 7) ‘ Новый массив А. Все данные утеряны! … ReDim Preserve B(9, 4, 6) ‘ Новый массив В. Все данные сохранены! ReDim Preserve A(3, 5) ‘ Некоторые данные будут утеряны! … Erase A, B ‘ Удаление массивов из памяти.

>14 2. МАССИВЫ     МАССИВЫ.      ИЗМЕНЕНИЕ 14 2. МАССИВЫ МАССИВЫ. ИЗМЕНЕНИЕ РАЗМЕРА МАССИВА. Dim M(4, 4) As Byte, N(7) As Long Erase M, N ReDim M(9, 9) ‘ Количество размерностей сохранено!

>15 2. МАССИВЫ     МАССИВЫ.      15 2. МАССИВЫ МАССИВЫ. МАССИВ МАССИВОВ (разных типов, jagged массивы) Dim M(1) As Object ‘ Массив массивов должен иметь тип Object или Array Dim N1(4) As Long Dim N2(9) As Integer Dim K As Integer ‘ Заполнение массива N1 For K = 0 To Ubound(N1) N1(K) = K Next K ‘ Заполнение массива N2 For K = 0 To Ubound(N2) N2(K) = K*2 Next K ‘ Присвоение массивов N1 и N2 элементам массива M M(0) = N1: M(1) = N2

>16 2. МАССИВЫ     МАССИВЫ.      16 2. МАССИВЫ МАССИВЫ. МАССИВ МАССИВОВ Объявление массива массивов одинакового типа: Dim Mas( )( )( ) As Short Получить значение элементов массива массивов можно с помощью конструкции вида: M(основной_индекс)(вторичный_индекс) Пример: Dim X As Integer ‘ Инициализация массива массивов Dim M( )( ) As Integer = {{2, 3, 4}, {5, 6, 7, 8, 9}} X = M(1)(2) ‘ X = 7

>17 2. МАССИВЫ     МАССИВЫ.      Основные 17 2. МАССИВЫ МАССИВЫ. Основные свойства экземпляра класса Array: Length – Количество элементов массива Rank – Количество размерностей массива Основные методы класса Array: Copy - Копирует элементы из указанного массива в другой массив CopyTo – Копирует элементы одномерного массива в другой массив, начиная с указанного индекса Find, FindLast, FindAll – Поиск в массиве первого, последнего или всех элементов, удовлетворяющих заданному условию For Each – Выполняет заданное действие для всех элементов массива Sort - Сортировка элементов массива в порядке возрастания

>Задача № 1 Ввод одномерного массива: Способ 1 – присвоение значений элементам массива Способ Задача № 1 Ввод одномерного массива: Способ 1 – присвоение значений элементам массива Способ 2 – ввод массива в диалоге Способ 3 – заполнение массива случайными числами

>19 Задача № 2 19 Задача № 2

>20 Задача № 3  Написать программу, формирующую двумерный массив случайных  чисел и 20 Задача № 3 Написать программу, формирующую двумерный массив случайных чисел и определяющую в нём строку с максимальной суммой. Вывести исходный массив, сумму и номер строки.

>21 Задача № 4  Измените программный код Задачи 3 следующим образом:  21 Задача № 4 Измените программный код Задачи 3 следующим образом: Усложните программу так, чтобы в строке с максимальной суммой находился бы минимальный по величине элемент; При нажатии на кнопку вывести величину и номер данного элемента в строке.

>22 Задача № 5   Измените программный код Задачи 3 следующим образом: 22 Задача № 5 Измените программный код Задачи 3 следующим образом: данный двумерный массив преобразуйте в одномерный (для этого специально заведите одномерный массив); замените в нём элементы, большие среднего, на 777; исходный и полученный массивы выведите на экран.

>Методы  сортировки массивов Методы сортировки массивов

>Алгоритмы сортировки:   Метод выбора (SelectionSort)   Метод пузырька (BubbleSort)  Алгоритмы сортировки: Метод выбора (SelectionSort) Метод пузырька (BubbleSort) Метод простых вставок (InsertionSort) Метод бинарных вставок (BinaryInsertionSort) Метод Шелла (ShellSort) Метод Уильяма Флойда, бинарных деревьев (HeapSort) Метод фон Неймана, слияний (NeumanSort) Метод быстрой сортировки (QuickSort)

>1. Метод выбора (SelectionSort)   Пусть имеем массив х(n).  Необходимо отсортировать массив 1. Метод выбора (SelectionSort) Пусть имеем массив х(n). Необходимо отсортировать массив по возрастанию элементов. Идея метода состоит в том, чтобы создавать отсортированную последовательность путем присоединения к ней одного элемента за другим в правильном порядке.

>1. Метод выбора (SelectionSort)    Будем строить готовую последовательность, начиная с левого 1. Метод выбора (SelectionSort) Будем строить готовую последовательность, начиная с левого конца массива. Алгоритм состоит из n последовательных шагов, начиная от нулевого и заканчивая (n-1)-м. На i-м шаге выбираем наименьший из элементов х(i) ... х(n-1) и меняем его местами с х(i). Последовательность шагов при n=6 изображена на рисунке ниже.

>1. Метод выбора (SelectionSort)     Вне зависимости от номера текущего шага 1. Метод выбора (SelectionSort) Вне зависимости от номера текущего шага i, последовательность х(0)...х(i) (выделена курсивом) является упорядоченной. Таким образом, на (n-1)-м шаге вся последовательность, кроме х(n-1) оказывается отсортированной, а х(n-1) стоит на последнем месте по праву: все меньшие элементы уже ушли влево.

>1. Метод выбора (SelectionSort) 1. Метод выбора (SelectionSort)

>2. Метод пузырька (BubbleSort)   Расположим массив сверху вниз, от нулевого элемента - 2. Метод пузырька (BubbleSort) Расположим массив сверху вниз, от нулевого элемента - к последнему. Идея метода: шаг сортировки состоит в проходе снизу вверх по массиву. По пути просматриваются пары соседних элементов. Если элементы некоторой пары находятся в неправильном порядке, то меняем их местами.

>2. Метод пузырька (BubbleSort)   После нулевого прохода по массиву 2. Метод пузырька (BubbleSort) После нулевого прохода по массиву "вверху" оказывается самый "легкий" элемент - отсюда аналогия с пузырьком. Следующий проход делается до второго сверху элемента, таким образом второй по величине элемент поднимается на правильную позицию... Делаем проходы по все уменьшающейся нижней части массива до тех пор, пока в ней не останется только один элемент. На этом сортировка заканчивается, так как последовательность упорядочена по возрастанию.

>2. Метод пузырька (BubbleSort) 2. Метод пузырька (BubbleSort)