Скачать 262.4 Kb.
|
2. Проектирование интерфейса. Запустите Visual Basic. Выберите тип Standart EXE. Поместите на форму элементы управления, как показано на рисунке: Давайте переименуем элементы управления. Для этого измените свойство Name каждого элемента управления согласно таблице:
Остальные элементы переименовывать не обязательно, т.к. мы к ним не будем обращаться в коде программы. Но, если хотите, можете переименовать. Приучайтесь к этому. 3. Написание программного кода. Теперь самое интересное! Мы будет писать код для нашей программы! Давайте ещё раз продумаем алгоритм работы программы:
Private Sub cmdCalculate_Click() ' объявляем переменные Dim paramA As Double Dim paramB As Double Dim paramC As Double Dim x1 As Double Dim x2 As Double Dim D As Double ‘считаем введённые параметры a, b и с paramA = txtParamA.Text paramB = txtParamB.Text paramC = txtParamC.Text ‘рассчитаем дискриминант D = (paramB * paramB) - (4 * paramA * paramC) ‘вычислим корни, если они существуют If D > 0 Then x1 = (- paramB + Sqr(D)) / (2 * paramA) x2 = (- paramB - Sqr(D)) / (2 * paramA) lblD.Caption = "Дискременант: " & D lblX1.Caption = "Корень №1: " & x1 lblX2.Caption = "Корень №2: " & x2 ElseIf D = 0 Then x1 = paramB / (2 * paramA) x2 = x1 lblD.Caption = "Дискременант: " & D lblX1.Caption = "Корень №1: " & x1 lblX2.Caption = "Корень №2 = Корню №1" ElseIf D < 0 Then lblD.Caption = "Дискременант: " & D lblX1.Caption = "Корней нет!" lblX2.Caption = "" MsgBox "Дискременант меньше нуля! Корней нет!", vbCritical End If End Sub Урок № 16. Отладка программы Итак, на предыдущем уроке мы нашли баги (от слова Bug - жук) в нашей программе, т.е. недочёты (ошибки). От этих багов нужно избавиться. Посмотрим причину возникновения ошибок. Запустите программу. Ничего не вводя в поля, нажмите на кнопку. Visual Basic выдаст окно, в котором скажет: "Type mismatch", т.е. ошибка в типах. В окне доступны 3 кнопки: End - завершить приложение Debug - показать место возникновения ошибки, чтобы мы смогли от неё избавиться Help - вызвать справку о возникшей ошибке. Нажмите Debug. Visual Basic покажет вам причину возникновения ошибки: Жёлтым цветом выделена строка - причина ошибки. Если навести курсор мыши на имя переменной, то всплывёт подсказка, в которой Visual Basic сообщит нам её значение. Такая возможноть доступна только в режиме Debug. Текущий режим можно узнать из заголовка окна Visual Basic. Например: в режиме проектировки интерфейса это строка: Имя_Проекта - Microsoft Visual Basic [design] при запущенном приложении: Имя_Проекта - Microsoft Visual Basic [run] в режиме Debug: Имя_Проекта - Microsoft Visual Basic [break] Давайте изменим код: paramA = txtParamA.Text paramB = txtParamB.Text paramC = txtParamC.Text На код: paramA = Val(txtParamA.Text) paramB = Val(txtParamB.Text) paramC = Val(txtParamC.Text) Нажимаем Debug и вот что видим: Причина ошибка заключается в невозможности деления на 0, а paramA у нас как раз и равен 0. К тому при нулевых коэффициентах квадратное уравнение решается гораздо проще (например, если c=0, то x вынесем за скобку, ну а дальше всё просто). Избавимся от этого недоразумения. Для этого, вставим после присвоения значения свойства Text переменным ещё одну проверку - проверку на содержание нулей в переменных: If paramA = 0 Or paramB = 0 Or paramC = 0 Then MsgBox "Нули в качестве коэффициентов не допускаются!", _ vbCritical Exit Sub End If Символ "_" используется в том случае, когда вы хотите перенести часть выражения на другую строчку. В данном случае мы переносим константу vbCritical. Здесь мы проверяем переменные на содержание в них нулей. В принципе, можно было бы проверить не переменные, а сами тектовые поля (If Val(txtParamA.Text)=0 Then....). Это уже дело вкуса. Всё равно, результат одинаков. Использование пошаговой трассировки: Пошаговая трассировка - это метод отладки приложения, при котором можно выполнять код по одной команде и следить за ходом её выполнения. Это очень полезный метод! Таким методом можно находить те ошибки, которые не может найти Visual Basic. Такие ошибки называются логическими. Здесь я бы хотел привести очень интересный и поучительный отрывок из книги "Программирование в среде Visual Basic 5": "Прежде чем отлаживать программу, необходимо убедиться в том, что она содержит ошибки. Поэтому тестирование программы является первым шагом на пути её отладки. Вот именно такая логическая ошибка оставила клиента без электричества. Для нахождения этих ошибок очень удобно использовать пошаговую трассировку. . Нажмите правой кнопкой мыши на той строчке кода, где вы хотите поставить брикпоинт и в меню выбрать Toggle->Breakpoint. Замечание: такую точку нельзя ставить на строчке с объявлением переменной. Обработка других ошибок Независимо от того, насколько качественно написано приложение, никогда нельзя полностью исключать возможность возникновения ошибки в программе. Вы видели такое окошко Windows: "Программа выполнила недопустимую операцию и будет закрыта...". Т.е. возникла исключительная ситуация, и Windows, не зная как можно обойти ошибку, выдаёт "общее" окно для всех таких ошибок. Так вот и в ваших программах тоже может возникнуть такая исключительная ситуация. Причин для этого ооочень много. Например, у пользователя программой сбои с жёстким диском, или глючит операционная система, или вирус удалил нужный вам файл и т.д. и т.п. В общем, в таких ситуациях желательно сообщить пользователю о том, что возникла ошибка и спокойно выйти/продолжить программу.. В данном случае используется объект Err. Visual Basic располагает оператором, с помощью которого можно контролировать ход программы при возникновении ошибок. Это оператор On Error. Он имеет несколько видов: On Error GoTo МЕТКА On Error Resume Next On Error GoTo 0 Первый оператор позволяет указать Visual Basic метку (номер строки) на которую передастся управление программы при возникновении ошибки. Рассмотрим пример использования этого оператора: Private Sub Command1_Click() Dim myString As String On Error GoTo ERRH myString = "ERROR HANDLING WITH VB IS COOL" MsgBox Mid(myString, 0, 1) '<--- здесь ошибка (#) Exit Sub '<--- досрочно выходим, если нет ошибок ERRH: '<--- метка MsgBox Error(Err.Number) '<--- выводим свою ошибку End Sub Урок № 17. Доводим до ума На этом уроке мы научимся оформлять программу в виде функций и процедур. Это очень важно. Принцип модульного программирования очень облегчает программирование и отладку. Модульное программирование - означает разделение кода программы на отдельные куски, каждый из которых выполняет чётко определённую задачу. Это особенно важно для сложных программ. Доведём до ума нашу программу, для вычисления корней квадратного уравнения. Давайте оформим некоторые части кода в виде процедур и функций. Например, напишем функцию для вычиления дискриминанта. И напишем процедуру, которая будет выводить полученные значения в метки. Почему именно процедуру? Потому что процедуры пишутся для выполнения некоторой последовательности действий, где не требуется возвращать какое-либо значение. Давайте ещё раз посмотрим на ту часть кода, где происходит проверка значения дискриминанта и вычисление корней уравнения: If D > 0 Then x1 = (paramB + Sqr(D)) / (2 * paramA) x2 = (paramB - Sqr(D)) / (2 * paramA) lblD.Caption = "Дискременант: " & D lblX1.Caption = "Корень №1: " & x1 ' <- здесь lblX2.Caption = "Корень №2: " & x2 ElseIf D = 0 Then x1 = paramB / (2 * paramA) x2 = x1 lblD.Caption = "Дискременант: " & D lblX1.Caption = "Корень №1: " & x1 ' <- и здесь lblX2.Caption = "Корень №2 = Корню №1" ElseIf D < 0 Then lblD.Caption = "Дискременант: " & D lblX1.Caption = "Корней нет!" ' <- и здесь, тоже lblX2.Caption = "" MsgBox "Дискременант меньше нуля! Корней нет!", vbCritical End If Заметьте, что в каждом из ветвей оператора If наблюдается присвоения свойству Caption 3-х меток (lblD, lblX1, lblX2). Поэтому логично этот участок оформить в виде процедуры, параметрами которой будут значения для меток. Урок № 18. Компиляция Теперь наша программа отлажена и готова к употреблению. Теперь настало время узнать, как же откомпилировать программу в exe файл? Напомню, что Visual Basic предлагает 2 компилятора. Компиляция в P-код, и компиляция в Native-код. P-код - это старый компилятор и пользоваться им я не рекомендую. Всегда компилируйте приложение в Native-код. Выбор вида компиляции находится на вкладке Compile в меню Project->Project Properties. Там же можно указать несколько доступных видов оптимизации (о них ниже). Итак, чтобы откомпилировать нашу программу, необходимо проделать следующие манипуляции:
Заключение Вот мы и подошли к концу этого небольшого курса для начинающих. Мы рассмотрели основные принципы программирования на Visual Basic. Успехов вам в программировании! Литература:
Модель «Решение квадратного уравнения» Private Sub cmdCalculate_Click() 'объявляем переменные Dim paramA As Double Dim paramB As Double Dim paramC As Double Dim R As Integer Dim D As Double Dim x1 As Double Dim x2 As Double 'присваиваим им значения из текстовых полей paramA = Val(txtParamA.Text) paramB = Val(txtParamB.Text) paramC = Val(txtParamC.Text) 'проверка на а=0 If paramA = 0 Then MsgBox "А=0 не допускается!", vbCritical Exit Sub End If 'вычисляем дискреминант D = paramB * paramB - 4 * paramA * paramC 'решаем уравнение и выводим результат в метки Label If D > 0 Then x1 = (-paramB + Sqr(D)) / (2 * paramA) x2 = (-paramB - Sqr(D)) / (2 * paramA) lblD.Caption = "Дискреминант D=" & D lblX1.Caption = "x1 = " & x1 lblX2.Caption = "x2 = " & x2 ElseIf D = 0 Then x1 = -paramB / (2 * paramA) lblD.Caption = "Дискреминант D=" & D lblX1.Caption = "x=" & x1 lblX2.Caption = "" Else lblD.Caption = "Дискреминант D=" & D lblX1.Caption = "Нет решений" lblX2.Caption = "" 'можно добавить выводное поле с предупреждающей информацией R = MsgBox("Дискреминант меньше нуля! Корней нет!", 48, "Внимание!") End If End Sub Модель «Графики тригонометрических функций» Программа (программный код): Dim I As Integer Dim X As Double Dim Y As Double Private Sub cmdCK_Click() picGrap.Scale (-10, 5)-(10, -5) picGrap.Line (-10, 0)-(10, 0) For I = -10 To 10 picGrap.PSet (I, 0) picGrap.Print I Next I picGrap.Line (0, -5)-(0, 5) For I = -5 To 5 picGrap.PSet (0, I) picGrap.Print I Next I End Sub Private Sub cmdCLS_Click() picGrap.Cls End Sub Private Sub cmdSin_Click() For X = -10 To 10 Step 0.03 Y = Sin(X) picGrap.PSet (X, Y) Next X End Sub Private Sub cmdCos_Click() For X = -10 To 10 Step 0.03 Y = Cos(X) picGrap.PSet (X, Y) Next X End Sub Private Sub cmdTg_Click() For X = -10 To 10 Step 0.03 Y = Tan(X) picGrap.PSet (X, Y) Next X End Sub Private Sub cmdCtg_Click() For X = -10 To 10 Step 0.03 Y = 1 / Tan(X) picGrap.PSet (X, Y) Next X End Sub Имеется возможность очистки экрана и построения графиков по одному, по два, по три или все четыре. А также замены функций на другой вид, до четырех видов, возможность графического решения уравнений и неравенств. |
Урок-лекция (2ч) Тема: Среда программирования Visual Basic. Окна,... Цель: знакомство учащихся с основными терминами и элементами ооп, со средой программирования Visual Basic на примерах решения конкретных... | Программа по формированию навыков безопасного поведения на дорогах... Бейсик (Basic) диалоговый учебный язык программирования для персональных компьютеров. На современных компьютерах используется следующие... | ||
Basic ... | Тематическое планирование Комментарий: Компьютерный практикум проводится... Компьютерный практикум проводится в системе программирования Visual Basic 0 (SP2) cce, которая входит в состав cd-диска умк н. Д.... | ||
Урок n 29 Основы программирования в среде Visual Basic 0 | Разработка урока по информатике с применением икт на тему «Программирование... ... | ||
Анализ посещенного урока Наименование прорабатываемой на занятиях темы знакомство с объектно-ориентированным языком программирования Visual Basic. Лабораторная... | Интегрированная среда разработки языка Visual Basic ... | ||
Программа по формированию навыков безопасного поведения на дорогах... Оборудование: компьютер, среда Visual Basic, мультимедийный проектор, экран, раздаточный материал | Программа по формированию навыков безопасного поведения на дорогах... Оборудование: компьютер, среда Visual Basic, мультимедийный проектор, экран, раздаточный материал | ||
Урок Графические методы Гарнаев А. Visual Basic. Net. Разработка приложений. Глава 12 Единицей измерения в заданной по умолчанию системе координат является пиксель (минимальный элемент изображения) | Уро Тема урока: Язык программирования Visual Basic. Работа с массивами Ввести понятие массива, его размерности. Познакомиться с фиксированными и динамическими массивами, способами их описания | ||
Урок №8 Тема урока: Инкапсуляция и свойства объекта в ооп Рассмотреть примеры использования инкапсуляции и свойств объекта в ооп объектов в Visual Basic | Для просмотра щелкнуть по ссылке с нажатой клавишей ctrl Класс: 7-8... Цели : Сформировать умение разработки проекта в среде Visual Basic по алгоритму (карте задания) | ||
Функции языка Visual Basic. Выражения Если компьютер включен и Бейсик загружен, можно смело приступить к работе. Начнем с того, что вы хотите что-то вычислить. Бейсик... | Мастер-класс «Создание эор с использованием языка программирования... Знакомство с опытом преподавания темы «Основы алгоритмизации и объектно-ориентированного программирования» в базовом курсе информатики... |