Преподавание программирования в среде

Вид материалаПрограмма

Содержание


Таблица знаков операций и стандартных функций
Примеры записи арифметических выражений
Форма и размещение на ней управляющих элементов
Графические возможности
Private SUB
Переменные величины
Математические функции, функция преобразования строкового типа в числовое
Создание анимации
For Счетчик=НачЗнач To
Общие процедуры
Sub ИмяПроцедуры(СписокПараметров) программный код End Sub
Private Sub ИмяПроцедуры
Public Sub
Подобный материал:
1   2   3   4

Таблица знаков операций и стандартных функций


сложение

х + у

вычитание

х — у

умножение

х*у

деление

х/у

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



корень квадратный

sqr (х)

абсолютная величина

abs (х*)

синус

sin (х)

косинус

cos (х)

тангенс

tg (х)

котангенс

ctg (х)

арксинус

arcsin (x)

арккосинус

arccos (x)

арктангенс

arctg (x)


Примеры записи арифметических выражений



Выражение

На языке VB



-1/x*x



a/(b*c)



Sqr (p)

Записать на языке VB:







Форма и размещение на ней управляющих элементов

Создадим приложение, в котором после запуска на форме печатается некоторый текст, например «Первый проект».

Вывод на форму текстовых сообщений можно производить различными способами:

• с помощью элемента управления Label (Метка);

• с помощью элемента управления ТехtBox (Текстовое поле);

• используя метод Рrint

Проект «Создание графического интерфейса»

1. Запустить Visual Basic. Создать новый проект командой [File-New Project]

2. С помощью Панели инструментов на форму Form1 поместить метку (Label1) , текстовое поле (Техt1 и командную кнопку (Сommand1).

З. С помощью окна Свойства объекта изменить значения свойств формы и управляющих элементов согласно таблице:

Класс объектов

Свойство

Значение

по умолчанию

Новое

значение

Form (форма)

Name

Form1

Frm1

Caption

Form1

Мой первый проект

Label1(надпись)

Name

Label1

Lbl1

Caption

Label1

Первый проект

TextBox(текстовое поле)

Name

Text1

Txt1

Caption

Text1

Здравствуй, этоя

CommandButton

(командная кнопка)

Name

Command1

Cmd1

Caption

Command1

Метод Print

4. Двойным щелчком по кнопке cmd1_Click вызвать окно Программный код с пустой процедурой cmd1_Click(). Ввести в процедуру метод Рrint.

В теле процедуры должна быть записана последовательность инструкций (операторов): Frm1.Print «Я учусь программировать».

5. Ввести команду [ Run-Start]. Появится окно приложения Первый проект.

Для выполнения событийной процедуры щелкнуть по кнопке Метод Рrint.

Установка цвета формы и параметров шрифта. Сделаем внешний вид проекта более привлекательным. Для этого изменим значения свойств объектов, определяющих внешний вид объектов (цвет фона формы, цвет, размер и способ выравнивания шрифта на метке, в текстовом поле и в методе Рrint.)

б. Активизировать форму frm1. В окне Свойства объекта выбрать свойство BackColor (цвет фона) и двойным щелчком открыть диалоговое окно с цветовой палитрой. Выбрать цвет, например желтый.

7. Активизировать метку lbl1. В окне Свойства объекта установить значения свойств: ВасkColor - зеленый, ForeСolor (цвет надписи) - синий, Font - размер шрифта 18, А1ignment (выравнивание) - сеnter.

8. Активизировать текстовое поле txt1. В окне Свойства объекта установить значения свойств: ForeСо1оr (цвет надписи) - черный, Font -размер шрифта 14 , А1ignment(выравнивание) - center.

Для установки параметров шрифта, которые используются в методе Рrint необходимо для шрифта (объект Font) установить требуемые значения его свойств (размер шрифта, начертание и др.). Например, установим размер шрифта 12. Для того чтобы новые установки свойств шрифта вступи ли в действие, они должны быть вставлены в событийную процедуру перед методом Рrint.

9. Двойным щелчком по кнопке cmd1 вызвать окно Программный код. Ввести в процедуру cmd1_Click () строку

Font.Size= 12.

10. После запуска проекта и щелчка по кнопке Метод Рrint получим новый вид графического интерфейса.

11. Сохранить файл формы командой [ Save Form1.frm Аs ...] как frmVB1.frm и файл проекта командой [ Save Project Аs ...] как prjVB1.vbp.

Результат работы программы:




Задания на самостоятельное выполнение:

Задание 1. Создать проект « Вывод сообщения», в котором на форму выводится текстовое сообщение «Первое задание выполнено!» с помощью метки и текстового поля, а выход из программы реализуется щелчком по кнопке Еxit. Продумать графический интерфейс проекта.

Задание 2. Создать проект «Вывод сообщений», в котором каждый из двух различных вариантов текста выводится в текстовое поле ТехtВох щелчком по одной из двух кнопок. Предусмотреть возможность выхода из программы щелчком по третьей кнопке.

Задание 3. Создать проект «Печать на форме», в котором с помощью метода Рrint на форме печатаются строки шрифтами со следующими параметрами:

Times New Roman, 18, курсив, красный;

Аrial, 14, подчеркнутый, синий;

Сourier New ,12, полужирный, зеленый.

Предусмотреть очистку формы от напечатанного текста с помощью метода Сls.

Графические возможности

.

Scale позволяет задать систему координат и масштаб для формы или графического окна:

Scale (XI,Yl) - (X2,Y2)

Аргументами метода являются XI, Y1 - координаты левого верхнего угла объекта и Х2, Y2 - координаты правого нижнего угла объекта.

Pset - установка точки с заданными координатами и цветом:

Pset (X,Y) [,color]

Аргументами метода являются X, Y — координаты точки и color -- цвет линии. Значение аргумента color можно задать различными способами:
  • с помощью одной из восьми констант, определяющих цвет(vbBlack — черный, vbBlue — синий, vbGreen —зеленый, vbCyan — голубой, vbRed — красный, vbMagenta — сиреневый, vbYellow — желтый, vbwhite— белый);
  • с помощью функции QBColor (number) , аргументом ко­торой являются числа от 0 до 15, а результат соотоветствует одному из основных 16 цветов;
  • с помощью функции RGB (bytRed,bytGreen, bytBlue) ,аргументами которой являются три числа в диапазоне от О до 255 (интенсивности базовых цветов), а результатом - число типа Long в диапазоне от 0 до 2563 (16 777 215). Таким образом, определяется цветовая палитра с более чем 16 миллионами цветов, а каждый цвет задается числом. В случае отсутствия аргумента color рисование будет производиться цветом, принятым по умолчанию (черным).

Line — рисование линии, прямоугольника или закрашенного прямоугольника заданного цвета:

Line (XI,Yl) - (X2,Y2)[,color][,B][F]

Аргументами метода являются XI, Yl и X2,Y2 — координаты концов линии (левого верхнего и правого нижнего угла прямоугольника), color — цвет линии. Флажок В задает рисование прямоугольника, а флажок F — его закрашивание.

Circle - рисование окружности, овала или дуги с задан­ными координатами центра, радиусом, цветом, начальным и конечным углами дуги и коэффициентом сжатия:

Circle (X, Y) ,radius [,color, start, end, aspect]

Аргументами метода являются X, Y — координаты цент­ра окружности, radius -- радиус окружности, color цвет окружности, start и end — начальный и конечный угол дуги, aspect коэффициент сжатия. Для получения закрашенного круга требуется установить требуемое значение свойств FillColor=[color] и Style=0

Если графический метод применяется к объекту «форма» (Form), то при его записи имя объекта object можно опускать.

Задание 1. Разместить на форме графические примитивы (точку, линию, прямоугольник, закрашенный прямоугольник, окружность).
  1. Поместить на форму 7 командных кнопок.
  2. Cоздать событийную процедуру для задания масштаба рисования:

Private SUB cmd1_Click()

Form1.Scale (0, 100) – (100,0)

End Sub
  1. Cоздать событийную процедуру для очистки графического поля.

Private SUB cmd2_Click()

Form1.cls

End Sub
  1. Создать 5 событийных процедур рисования графического примитива.

Например, событийная процедура рисования закрашенного прямоугольника выглядит следующим образом:

Private SUB cmd1_Click()

Form1.Line (20, 50)-(40,60),vbRed,BF

End Sub


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

Задание 2. На форму выведем рисунок простейшего домика, который будет состоять из стены (прямоугольник), крыши (треугольник), окна (закрашенный прямоугольник).
  1. Разместить на форме Form1 командную кнопку для рисования стены домика.

Создать для нее событийную процедуру рисования стены домика:

Private SUB cmdСтена_Click()

Form1.Scale (0, 170) – (350,0)

Form1.Line (20, 100)-(220,20),,B

End Sub
  1. Разместить на форме Form1 командную кнопку для рисования крыши домика

Создать для нее событийную процедуру рисования крыши домика:

Private SUB cmdКрыша_Click()

Form1.Scale (0, 170) – (350,0)

Form1.Line (20, 100)-(220,100)

Form1.Line (20, 100)-(120,150)

Form1.Line (120, 150)-(220,100)

End Sub
  1. Разместить на форме Form1 командную кнопку для рисования окна домика.

Самостоятельно создать для нее событийную процедуру рисования окна домика.
  1. Разместить на форме Form1 командную кнопку для рисования крыльца домика.

Самостоятельно создать для нее событийную процедуру рисования крыльца домика
  1. Запустить проект на выполнение, последовательно щелкая по командным кнопкам, построить дом на экране.
  2. Самостоятельно на графическом поле, используя окружности и линии, нарисовать «человечка».


Переменные величины


Создать проект, который позволит продемонстрировать использование переменных различных типов, арифметических, строковых и операции присваивания.

Задача.

Скорость первого автомобиля vг км/ч, второго v2 км/ч, расстояние между ними s км. Какое расстояние будет между ними через t ч, если автомобили движутся в разные стороны? Решение.

Согласно условию задачи искомое расстояние s1 = s + (vl + v2)t (если автомобили изначально двигались в противоположные стороны) или s2 = |(v1 + v2)t — s| (если автомобили первоначально двигались навстречу друг другу).

Программа организует ввод исходных данных, вычисление искомых величин по формулам и вывод их на экран. Все величины в программе - вещественного типа.

В окне Программный код ввести событийную процедуру целиком:

Dim v1, v2, t, s, s1, s2 As Single

v1 = 5

v2 = 3

t = 5

s = 12

s1 = s + (v1 + v2) * t

s2 = (Abs(v1 + v2) * t - s)

Print s1, s2

Запустить проект на выполнение. Посмотреть результаты, выведенные на форму.

Задания на самостоятельное выполнение:

Задание 1 . Написать программу для вычисления периметра L участка колхозного поля при следующих исходных данных: a=462 м, b=195 м, c=d=287 м.Вывести на форму результаты решения.

Задание 2. Написать программу для вычисления корней квадратного уравнения, параметры а и в задайте сами, на форму выведете результаты решения.


Математические функции, функция преобразования строкового типа в числовое


Задание. Создать инженерный калькулятор.

1. Создать новый проект. Разместить на форме три текстовых поля и пять кнопок. Присвоить им имена: txtl, txt2, txt3, cmdPlus, cmdMinus, cmdUmn, cmdDelen, cmdExit.

Событийная процедура сложения CmdPlus_Click должна изменять значения свойства Text текстового поля txt3 так, чтобы оно являлось суммой числовых значений свойства Text текстовых полей txtl и txt2. Для преобразования строковых значений, вводимых в текстовые поля, в десятичные числа, воспользуемся функцией Val. Код событийной процедуры будет следующим:

Sub cmdPlus_Click()

txtS.Text =Val(txtl.Text)+Val(txt2.Text)

End Sub

Событийные процедуры вычитания, умножения и деления создаются аналогично.
  1. Для каждой из кнопок ввести программные коды событийных процедур.
  2. Установить для свойства Alignment текстовых полей значение Right Justufy.
  3. Запустить проект на выполнение. Ввести числа в два левых текстовых поля и щелкнуть по кнопке арифметической операции. В правом поле будет выведен результат.

В математических функциях значениями как аргументов, так и функций являются числа. В языке Visual Basic имеется 12 математических функций: тригонометрические (Sin (), Cos (), Tan (), Atn ()), квадратный корень Sqr(), логарифм Log (), показательная функция Ехр (), получение случайного числа Rnd () и др.

Воспользуемся математическими функциями для расширения возможностей проекта «Обычный калькулятор» и превращения его в проект «Инженерный калькулятор».

5. Добавить на форму шесть кнопок cmdSin, cmdCos, cmdTan, cmdSqr, cmdSt и cmdLog.

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

6. Например, для возведения в степень событийная процедура cmdSt_Click ( ) примет вид:

Sub cmdSt_Click ()

txtSDec . Text=Val (txtlDec . Text) Val (txt2Dec . Text)

End Sub

7. Ввести самостоятельно программный код других событийных процедур с использованием встроенных функций языка Visual Basic: Sin(), Cos(), Tan(), Sqr ()

8. Запустить проект на выполнение.

Результат выполнения программы:




Создание анимации

Для создания анимации (иллюзии движения на экране какого-либо объекта) применяется принцип смены кадров (изображений), как это делается в мультипликации. Программа, имитирующая движение, должна реализовывать следующие этапы:
  • создание изображения на экране;
  • реализация временной паузы для того, чтобы глаз зафиксировал изображение;
  • проведение коррекции изображения.

Анимация часто используется для изображения движения объектов. Для регулирования скорости движения объекта используют пустой цикл: чем большее количество раз он будет выполняться, тем медленнее будет двигаться объект.

Для выполнения задания применить цикл со счетчиком:

For Счетчик=НачЗнач To КонЗнач Step

Тело цикла

Next

Задание 1.

1. Разместить на форме графическое поле picture1, в котором будет производиться движение круга.

Движение по оси ОХ реализуем в цикле. Эффект анимации получим рисованием сначала круга синего цвета, а за­тем его стиранием кругом цвета фона (белым). Для получения закрашенного круга требуется установить требуемое значение свойства FillColor (при рисовании vbBlue, а при стирании vbWhite), которое определяет цвет заполнения рисуемой фигуры.

Скорость движения круга (скорость смены одного изображения другим) можно регулировать с помощью изменения количества повторений пустого цикла между рисованием и стиранием.

2. Поместить на форму кнопку cmdStart и создать событийную процедуру, реализующую анимацию:

Dim intX As Integer, IngI As Long

Form1.Scale (-10, 10)-(10, -10)

For intX = -10 To 10

Form1.FillStyle = 0

Form1.FillColor = vbBlue

Form1.Circle (intX, 0), 1, vbBlue

For IngI = 1 To 10000000

Next IngI

Form1.FillStyle = 0

Form1.FillColor = vbWhite

Form1.Circle (intX, 0), 1, vbWhite

Next intX

3. Запустить проект и щелкнуть по кнопке Cmapm. В графическом поле начнется движение синего круга по оси ОХ.

Задания на самостоятельное выполнение:

Задание 2.

Создать аналогичное движение круга по оси Y.

Задание 3.

Создать аналогичное движение круга по диагонали графического поля..


Простейший графический редактор


Задание. Разместить на форме графические примитивы (точку, линию, прямоугольник, закрашенный прямоугольник, окружность).

  1. Поместить на форму 7 командных кнопок.

Cоздать событийную процедуру для задания масштаба рисования:

Private SUB cmd1_Click()

Form1.Scale (0, 100) – (100,0)

End Sub

  1. Cоздать событийную процедуру для очистки графического поля.

Private SUB cmd2_Click()

Form1.cls

End Sub

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

Например, событийная процедура рисования закрашенного прямоугольника выглядит следующим образом:


Private SUB cmd1_Click()

Form1.Line (20, 50)-(40,60),vbRed,BF

End Sub

Результат работы программы:





Общие процедуры

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

В объектно-ориентированных языках программирования вспомогательные алгоритмы реализуются с помощью общих процедур. Общие процедуры создаются в тех случаях, когда в программном модуле можно выделить многократно повторяющиеся последовательности действий (алгоритмы).

Определение общей процедуры. Каждой общей процедуре дается уникальное название - имя процедуры и устанавливается список входных и выходных параметров процедуры.

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

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

Синтаксис общей процедуры:

Sub ИмяПроцедуры(СписокПараметров)

программный код

End Sub

Вызов общей процедуры. Запуск общих процедур не связывается с какими-либо событиями, а реализуется путем вызова из других процедур.

Общая процедура вызывается на выполнение либо с помощью оператора Call, либо по имени. В случае вызова процедуры с использованием оператора Call список пара­метров заключается в скобки

Call ИмяПроцедуры(СписокПараметров)

В случае вызова процедуры по имени список параметров приводится без скобок: ИмяПроцедуры СписокПараметров

Область видимости процедуры. Общие и событийные процедуры могут быть локальными и глобальными. Локальная процедура доступна только внутри данного программного модуля и не может быть вызвана из другого модуля. Напри­мер, локальная общая процедура, размещенная в программном модуле некоторой формы, не может быть вызвана из программного модуля другой формы. Локальная процедура задается с помощью ключевого слова Private:

Private Sub ИмяПроцедуры

программный код

End Sub

Глобальные процедуры доступны, то есть могут быть вы­званы, из всех программных модулей проекта. Глобальная процедура задается с помощью ключевого слова Public (по умолчанию, если перед ключевым словом Sub отсутствуют ключевые слова, процедура является глобальной):

Public Sub

ИмяПроцедуры программный код

End Sub

Область видимости переменной. Переменные также могут быть локальными и глобальными (открытыми). Локальная переменная доступна только внутри процедуры или программного модуля и к ней невозможно обращение из другой процедуры или модуля. Локальная переменная определяется с помощью ключевого слова Dim.

Создадим проект, который наглядно продемонстрирует (с использованием графических методов) возможности использования общих процедур.