Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Рабочая тетрадь№3. Программирование в среде Vis...doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
593.41 Кб
Скачать
  • Переключатель - Option Button

    Позволяет пользователю выбрать один вариант из нескольких.

    Свойства:

    Value - показывает выбрана опция (1) или нет (0).

    1. Поле со списком ComboBox

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

    Свойства:

      • Text - содержимое строки, введенное пользователем или выбранное из списка.

      • List - строки списка (многострочное свойство).

      • ListIndex - номер выбранной пользователем строки (нумерация начинается с нуля, если никакая строка не была выбрана, то свойство равно -1).

    • Список ListBox

    Cодержит список строк, в котором пользователь может выбрать одну или несколько строк.

    Свойства элемента аналогичны элементу ComboBox, за исключением свойстваText, которое здесь отсутствует.

    • Рамка для рисунка PictureBox

    Содержит рисунок. Рисунок выбирается с помощью свойства Picture, в которое вводится имя файла или выбирается с помощью кнопки .

    Задание.

    Первый проект будет построен с использованием двух элементов управления: командной кнопки (command button) и метки (label) - поля, заполняемого программистом текстовой информацией.

    1. Дважды щелкните на пиктограмме Command Button в панели элементов, и этот элемент очутится у вас на форме.

    2. Дважды щелкните на пиктограмме Label, метка тоже окажется на вашей форме.

    3. Сделаем активной метку на форме, щелкнув на ней мышкой. Теперь окно свойств показывает свойства, соответствующие метке. Выберем свойство Caption и присвоим ему значение"Мой первый проект на Visual Basic!” (рис.3), выберем размер шрифта с помощью свойства Font Size. Подгоним размеры метки так, чтобы текст свободно располагался на ней.

    4. Сделаем активной командную кнопку и зададим свойство Caption в окне ее свойств: "выход”. Вид формы после всех описанных с ней действий:

    Рис.3

    5. Щелкнув на командной кнопке, пользователь должен выйти из программы. Для этого необходимо написать для командной кнопки простой код. Два раза щелкните на командной кнопке и вы попадете в окно кодов (рис.4).

    Рис.4

    В этом окне вам нужно написать один единственный оператор END между строкой

    Private Sub Command1_Click и строкой -End Sub.

    Теперь, если пользователь щелкнет на командной кнопке (объект Command1, событие Click) во время работы проекта, то он завершит свое выполнение.

    6. Запустите свой проект, нажав клавишу F5 и вы увидите свой первый проект в работе. Щелкните мышкой на командной кнопке и ваш проект прекратит свою работу.

    7. Сохраните проект в отдельной папке.

    !

    Переменная

    Переменная - эта поименованная ячейка памяти, хранящая какое-либо одно значение.

    Переменная имеет имя и значение.

    Переменные служат для хранения исходных данных, используемых в программе, а также результатов вычислений.

    Имя переменной

    Имя переменной - это строка символов, которая отличает ее от других переменных и объектов программы (элементов управления).

    Таким образом, имена переменных должны быть уникальны.

    Правила написания имен переменных:

    1. Имя переменной должно начинаться с буквы.

    2. Остальными символами могут быть буквы (строчные или прописные), цифры и символ подчеркивания. Пробел, точка, запятая и другие специальные знаки -недопустимы.

    3. Длина имени не должна превышать 255 символов.

    4. Имя переменной не должно совпадать с ключевыми символами языка Visual Basic (например: If, Then, For, To, Next, Print и другими).

    Типы переменных

    Тип данных (тип переменной) обуславливает то, как хранятся и обрабатываются данные.

    Например: 2 + 3 = 5 - числа, а "2" + "3" = "23" – текст

    Типы переменных:

    № п/п

    Тип

    Описание

    Минимум

    Максимум

    Числовые типы:

    1

    Byte

    Короткое неотрицательное число

    0

    255

    2

    Integer

    Целое число

    -32768

    32767

    3

    Long

    Длинное целое число

    -2147483648

    4

    Single

    Десятичное число обычной точности

    1,4*10-45

    1,8*1038

    5

    Double

    Десятичное число двойной точности

    4,94*10-324

    1,8*10308

    Другие:

    6

    String

    Строка (любые символы)

    0 символов

    255 символов

    7

    Variant

    Произвольное значение

    Примечание: Переменная типа Variant может принимать любой тип в зависимости от хранящегося в ней значения, однако, занимает больше памяти.

    Если переменная не была объявлена, то она имеет тип Variant.

    Н ! екоторые операторы языка Basic.

    1. REM – оператор комментария. Все что следует после этого оператора до конца строки игнорируется компилятором и предназначено исключительно для человека. Т.е. здесь можно писать что угодно. Удобно использовать комментарий в начале программы для указания её названия и назначения.

    пример:

    REM Это комментарий

    можно и так:

    ' Это тоже комментарий

    1. CLS - очистить экран. Вся информация, которая была на экране стирается.

    2. PRINT (вывод, печать) – оператор вывода.

    пример:

    PRINT "Привет! Меня зовут Саша."

    На экран будет выведено сообщение: Привет! Меня зовут Саша.

    1. INPUT (ввод) – оператор ввода. Используется для передачи в программу каких-либо значений.

    пример:

    INPUT а

    На экране появится приглашение ввести данные (появится знак "?") и компьютер будет ждать их ввода. Для ввода необходимо ввести данные с клавиатуры и нажать ввод (enter).

    INPUT "Введите число а: ".

    Компьютер выведет на экран: 'Введите число а:' и будет ждать ввода данных.

    1. DIM AS – оператор описания типа переменной.

    Пример:

    DIM a, b, chislo1 AS INTEGER

    Если в программе используются переменные не описанные с помощью оператора DIM, то компьютер будет рассматривать их как универсальные переменные. Это может привести к неэффективному использованию оперативной памяти. К тому же, такие программы не всегда легки для восприятия - плохо читаемы.

    Для задания значения переменной служит оператор присваивания. Он записывается так:

    1. END – оператор конца программы.

    Арифметические операции на языке Basic.

    Операция

    Обозначение

    Пример

    Результат

    Сложение

    +

    2+5

    7

    Вычитание

    -

    10-8

    2

    Умножение

    *

    3*4

    12

    Деление

    /

    15/3

    15/4

    5

    3,75

    Целочисленное деление

    \

    15\4

    3

    Возведение в степень

    ^

    2^3

    8

    Остаток от деления

    mod

    13 mod 5

    3

    Математические функции на языке Basic.

    Корень

    SQR(X)

    Модуль числа

    ABC(X)

    Синус

    SIN(X)

    Косинус

    COS(X)

    Тангенс

    TAN(X)

    Целая часть числа

    INT(X)

    Натуральный логарифм

    LOG(X)

    !

    Раздел 2. Программы линейной структуры.

    Линейный алгоритм - алгоритм, в котором команды выполняются последовательно одна за другой. Простейший пример линейного алгоритма - вычисление математической или физической величины по формуле.

    З адание.

    1. Вычислите площадь треугольника по его сторонам.

    1. Написать программу, складывающую два числа

    REM Сумма двух чисел

    a = 5

    b = 6

    c = a + b

    PRINT "Результат: ", c

    END

    1. Вычислить выражение .

    Программа:

    ___________________________________ ___________________________________

    ___________________________________ ___________________________________

    ___________________________________ ___________________________________

    ___________________________________ ___________________________________

    ___________________________________ ___________________________________

    ___________________________________ ___________________________________

    ___________________________________ ___________________________________

    ___________________________________ ___________________________________

    ___________________________________ ___________________________________

    ___________________________________ ___________________________________

    ___________________________________ ___________________________________

    1. Вычислите длину окружности и площадь круга по данному радиусу.

    Программа:

    ___________________________________ ___________________________________

    ___________________________________ ___________________________________

    ___________________________________ ___________________________________

    ___________________________________ ___________________________________

    ___________________________________ ___________________________________

    ___________________________________ ___________________________________

    ___________________________________ ___________________________________

    ___________________________________ ___________________________________

    ___________________________________ ___________________________________

    ___________________________________ ___________________________________

    ___________________________________ ___________________________________

    !

    Раздел 3. Условный оператор.

    Для реализации алгоритма с ветвлением необходим оператор условия. Его конструкция может иметь одну или несколько строк.

    Одна строка:

    If условие Then группа операторов 1 [Else группа операторов 2]

    Несколько строк:

    If условие Then

    Группа операторов 1

    [Else

    Группа операторов 2 ]

    End If

    Примечание: Квадратные скобки не ставятся, а лишь показывают то, что находящееся между ними содержимое можно опустить в случае ненадобности.

    Работает этот оператор следующим образом:

    1. Проверяется условие

    2. Если условие истинно, то исполняется группа операторов 1

    3. Если условие ложно, то исполняется группа операторов 2

    В качестве условия может быть использовано любое логическое выражение со знаком > (больше), < (меньше), = (равно), > = (больше либо равно), < = (меньше либо равно).

    Например:

    If x>0 Then

    MsgBox "Число положительное"

    Else

    MsgBox "Число отрицательное"

    End If

    Примеры условий:

    x > y

    a > = 5 + b

    8 + 13 * y < 15 + x

    Также в качестве условия можно использовать переменную или арифметическое выражение. Если его результат будет равен 0, то это расценивается как "ложь", остальные значения - "истина":

    If a Then

    MsgBox "Не равно 0"

    Else

    MsgBox "Равно 0"

    End If

    Задание.

    1. Разработайте программу "Угадайка", которая будет загадывать число, а пользователь пытаться его угадать:

      1. Создайте следующую форму (рис.5):

    Рис.5

      1. Дважды щелкните по кнопке Ответ и в процедуре обработки события создайте код, который сравнивает введенное пользователем число в Text1.text с любым фиксированным числом, например, 5. Если числа равны, то в Text2.text должно быть введено "Угадал", в противном случае "Не угадал".

      2. Запустите программу, введите исходные данные, щелкните по кнопке Ответ, протестируйте программу, остановите, исправьте при необходимости ошибки в программе.

    1. Доработайте программу так, чтобы она в Text2.text сообщала "Больше", "Меньше", либо "Горячо", если разница между числами меньше 10, и холодно, если 10 и более.

    2. Определить большее из двух чисел, вывести его на экран, затем – увеличить его вдвое и вывести результат на экран.

    Программа:

    ___________________________________ ___________________________________

    ___________________________________ ___________________________________

    ___________________________________ ___________________________________

    ___________________________________ ___________________________________

    ___________________________________ ___________________________________

    ___________________________________ ___________________________________

    ___________________________________ ___________________________________

    ___________________________________ ___________________________________

    ___________________________________ ___________________________________

    ___________________________________ ___________________________________

    ___________________________________ ___________________________________

    Р ! аздел 4. Оператор цикла.

    Для организации цикла в программе используют оператор цикла.

    Общий вид оператора:

    For Счетчик = Начальное значение To конечное значение [Step Шаг].

    Операторы тела цикла (выполняются несколько раз)

    Next Счетчик

    Условные обозначения:

    1. Счетчик - это переменная, которая содержит текущее значение цикла. При каждом обороте цикла Счетчик увеличивается на Шаг.

    2. Начальное значение, Конечное значение, Шаг - это могут быть числа, выражения, переменные или свойства объектов, содержащие соответствующие числовые значения.

    3. Счетчик начинает отсчет от Начального значения, но не может превысить Конечного значения.

    4. Шаг можно опустить, тогда он будет равен 1.

    5. Шаг может быть < 0 (отрицательным), тогда значение Счетчика будет убывать, а Начальное значение должно быть больше Конечного значения.

    Работа оператора:

    1. При выполнении строки 1 переменная Счетчик принимает Начальное значение.

    2. Выполняются операторы тела цикла.

    3. При выполнении 3-ей строки Счетчик увеличивается на Шаг.

    4. Если Счетчик меньше или равен Конечному значению, то снова выполняются операторы цикла, Счетчик увеличивается (см. пункты 2, 3).

    5. Если Счетчик превысил Конечное значение, то выполняется строка, следующая за строкой Next.

    Пример:

    For i=1 To 10 Step 2

    Print i

    Next i

    Такой цикл повторится 5 раз. Переменная i будет принимать значения от 1 до 10 с шагом 2, то есть 1, 3, 5, 7, 9. Эти числа будут напечатаны на форме с помощью оператора Print.

    З адание.

    1. Разработайте программу, вычисляющую сумму чисел от 1 и по порядку до указанного пользователем числа.

      1. Создайте следующую форму (рис.6):

    Рис.6

      1. Дважды щелкните по кнопке Вычислить и в процедуре обработки события напишите код, который суммирует числа от 1 и до введенного пользователем в Text1.text, то есть если пользователь введет число 5, то программа суммирует: 1+2+3+4+5. Суммирование выполните с помощью цикла, в теле которого накапливайте значение: S = S + число.

      2. Результат выведите в Text2.text.

      3. Запустите программу, введите исходные данные, щелкните по кнопке Вычислить, протестируйте программу, остановите, исправьте при необходимости ошибки в программе.

    1. Доработайте программу так, чтобы она вычисляла факториал, т.е. 12+22+32+....

    Программа:

    ___________________________________ ___________________________________

    ___________________________________ ___________________________________

    ___________________________________ ___________________________________

    ___________________________________ ___________________________________

    ___________________________________ ___________________________________

    ___________________________________ ___________________________________

    ___________________________________ ___________________________________

    ___________________________________ ___________________________________

    1. Доработайте программу так, чтобы суммирование велось не с 1, а с любого числа, введенного пользователем, т.е. пользователь будет вводить два числа: меньше и больше ("от" и "до").

    Программа:

    ___________________________________ ___________________________________

    ___________________________________ ___________________________________

    ___________________________________ ___________________________________

    ___________________________________ ___________________________________

    ___________________________________ ___________________________________

    ___________________________________ ___________________________________

    ___________________________________ ___________________________________

    ___________________________________ ___________________________________

    1. Вводятся оценки за контрольные работы по физике и математике. Выведите на экран "Молодец", если их сумма равна или более 9, иначе - "Подтянись".

    Программа:

    ___________________________________ ___________________________________

    ___________________________________ ___________________________________

    ___________________________________ ___________________________________

    ___________________________________ ___________________________________

    ___________________________________ ___________________________________

    ___________________________________ ___________________________________

    ___________________________________ ___________________________________

    ___________________________________ ___________________________________

    Р ! аздел 5. Массивы

    Во многих случаях совокупность переменных удобнее объединить в массив, именуя все элементы совокупности общим именем (именем массива) и индексами (номерами в массиве).

    Массивом называется конечная упорядоченная совокупность данных одного типа, доступ к каждому элементу которой осуществляется по имени массива с индексом.

    Индекс элемента в массиве позволяет обратиться к нему непосредственно. По индексу массив строго упорядочен. Массив имеет верхнюю и нижнюю границу (максимальное и минимальное значение индекса).

    Примечание: По умолчанию в VB применяется так называемая нумерация с нулевой базой, т.е. элементы массива нумеруются, начиная с 0.

    Одномерные массивы

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

    Элементы массива можно использовать в любом выражении точно также как и значение константы или переменной.

    Например, a(0) = 11.2

    a(1) = 10.2

    a(3) = 22.1

    a(4) = 1.1

    Y = a(0) * 2 — a(1)

    Многомерные массивы

    Часто бывает необходимо представить таблицы данных в формате строк и столбцов. Для этого используют многомерные массивы.

    Доступ к элементам двумерного массива осуществляется уже с помощью двух индексов. Первый индекс отвечает за строку, второй — за столбец: а(1,3) а(0,4) и т.д. VB позволяет создавать массивы, имеющие до 60 измерений (индексов).

    Массивы с фиксированным и переменным числом элементов

    Все массивы, которые используются в программе, должны быть непременно описаны. Для этого используется оператор Dim.

    Синтаксис:

    Dim Name ([Subscript]) [As type]

    где Name - имя массива,

    Subscript — измерения (индексы) массива. Для одномерного массива один индекс, для двумерного — два, отделенные друг от друга запятой, и так далее.

    Можно объявлять также массивы, используя ключевые слова Public, Private и Static — точно так же, как для любой другой переменной и с тем же влиянием на область действия.

    Синтаксис Subscrit:

    [lower To] upper [,[lower To] upper]…

    lower - определяет нижний диапазон допустимых индексов массива,

    upper - верхний предел.

    Dim A [0 To 10] As Integer

    Dim B [1 To 5, 1 To 5] As Real

    Оператор Option Base

    Начальное значение для элементов массива без указания lower в описании индексов можно задать, также используя, оператор Option Base в области описаний проекта.

    Синтаксис:

    Option Base 0 ô 1.

    Необходимо помещать этот оператор в область объявлений перед объявлением любых переменных, констант или процедур. Можно иметь только один оператор Option Base в программе, он влияет на описание всех массивов, объявляемых в программе, независимо от того, являются они локальными в процедуре или объявлены глобально.

    При использовании оператора Option Base нижний диапазон lower To в операторе Dim не указывается.

    Примеры объявления массивов:

    Dim s(1 To 100) As String

    Dim st(0 To 15, 0 To 15) As String

    Static Matr_1(2, 2) As Double

    Static Matr_2(1 To 3, 1 To 4) As Real

    Dim V (1 To 3, 1 To 10,1 To 15)

    Динамический массив

    При объявлении массивов следует помнить, что включение оператора Subscrit в объявление массива создает массив с фиксированным числом элементов, пропуск оператора Subscrit в объявлении массива создает динамический массив.

    Dim Matrix ()As [Тип]

    Такие массивы используются, когда заранее неизвестно количество элементов массива. Размерность массива необходимо устанавливать позднее в программе с помощью исполняемого оператора Redim внутри процедуры перед тем как этот массив использовать.

    Redim Matrix (X+1)

    Для контроля за размерами массивов переменной размерности в VB есть две функции LBound и UBound, которые возвращают нижнее и верхнее граничные значения индексов соответственно.

    Синтаксис

    Lbound(A_Name [, dimension])

    Ubound(A_Name [, dimension])

    Функция Lbound возвращает первый индекс массива, Ubound возвращает наибольший индекс массива. Аргумент dimension представляет целое число, определяющее измерение массива, для которого необходимо получить нижний или верхний предел. Если аргумент опущен, возвращается предел для первого измерения массива.

    Dim A(3 to 9) As String

    For I = Lbound(A) To Ubound(A)

    A(I) = 0

    Next I

    Очистка одномерного массива А

    Dim a_m(1 to 365, 2000 To 2004)

    For i= Lbound(a_m, 1) To Ubound(a_m, 1)

    For j = LBound(a_m, 2) To Ubound(a_m, 2)

    a_m(i,j) = Rnd

    Next j

    Next i

    Заполнение двумерного массива a х m случайными числами

    Функция Rnd возвращает значение (тип Single), содержащее случайное число меньшее 1 и большее или равное нулю. Если необходимо получить последовательность случайных чисел в некотором диапазоне [a, b] следует использовать формулу

    Int((b-a +1) * Rnd +a).

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

    Для обработки массивов обычно используются циклы For Next. Для двумерных их должно быть два и один вложен в другой.

    Оператор Erase

    В случае массивов с фиксированным размером оператор Erase позволяет очищать все элементы массива.

    Синтаксис Erase a1[, a2, …], т.е. за один раз можно очистить (удалить) несколько массивов.

    В

    вод и вывод массивов

    Пример 1.

    Одномерные массивы

    Найти максимальный элемент в одномерном массиве

    Option Base 1

    Dim a(10) As Single

    Private Sub Command1_Click()

    n = Val(Text1.Text)

    av =Split(Text2.Text, " ")

    For i = 1 To n

    a(i) = val(av(i - 1))

    Next

    Max = a(1)

    k = 1

    For i = 1 To n

    If a(i) > Max Then

    Max = a(i)

    k = i

    End If

    Next i

    Picture1.Print "Максимальный элемент "; Max

    Picture1.Print "Его номер "; k

    End Sub

    (место для комментариев)

    Для ввода были использованы два элемента управления TextBox. Первый - для указания числа элементов, из которых состоит массив. Во втором — вводится строка, состоящая из элементов массива разделенных пробелом.

    Функция Split разделит строку Text2.Text по указанному разделителю (пробелу) на массив подстрок. Подстрок будет столько, сколько было введено элементов через указанный разделитель. Массив подстрок индексируется с нуля!

    И только после этого цикл определит элементы массива.

    П

    ример2.

    Сортировка методом пузырька

    Метод основан на сравнении соседних элементов. «Неправильно» расположенные по отношению друг к другу элементы меняются местами. Во вложенных циклах поочередно фиксируется пара соседних элементов массива. В результате первого прохода элемент с минимальным значением оказывается в первой позиции массива (всплывает).

    Вывод массива осуществляется в PictureBox в столбик.

    Const n = 10

    Dim a(1 To n) As Byte

    Private Sub Command1_Click()

    Randomize

    For i = 1 To n

    a(i) = Int(Rnd * 40)

    Picture1.Print a(i)

    Next i

    End Sub

    Private Sub Command2_Click()

    Dim r As Byte

    For i = 1 To n

    For j = 1 To n - 1

    If a(j) > a(j + 1) Then r = a(j)

    a(j) = a(j + 1)

    a(j + 1) = r

    End If

    Next j

    Next i

    For i = 1 To n

    Picture2.Print a(i)

    Next i

    End Sub

    (место для комментариев)

    Двумерные массивы

    Для обработки двумерных массивов чаще всего используют два вложенных друг в друга цикла For…Next, каждый из которых позволяет перебирать элементы в массиве по соответствующему индексу строки или столбца.

    Пример3. Вычислить произведение положительных элементов матрицы

    Dim a(50,50) As Single

    Private sub command1_click()

    n=val(text1.text)

    m=val(text2.text)

    P=1

    For i=0 to n-1

    For j=0 to m-1

    Txt= ”задайте элемент из строки ” & str(i+1) & “ и столбца “ & str(j+1)

    A(i,j)= val(inputbox(txt))

    Picture1.Print Format (a(i,j), “##.#”);

    If a(i,j)>0 then p=p*a(i,j)

    Next j

    Picture1.print

    Next i

    Picture1.Print “Произведение положительных”; p

    End sub

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

    При этом для вывода двумерного массива в виде таблицы или матрицы метод Print используется внутри цикла по столбцу, причем в конце списка вывода ставится точка с запятой, которая означает, что вывод идет в одну и ту же строку. В конце цикла по строкам ставится пустой Print для перевода курсора вывода в начало следующей строки.

    Задание

    1. Вычислите сумму n элементов массива.

      ______________________________________

      ______________________________________

    2. Найти минимальный элемент массива.

      ______________________________________

      ______________________________________

    3. Найти среднее арифметическое всех элементов массива.

    ______________________________________

    ______________________________________

    21