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

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

Содержание


End Sub Построение графика функции .
Функции ввода и вывода
End Sub Запустить проект Задания на самостоятельное выполнение: Задание 1.
Создание теста
Демонстрация палитры цветов
Private Sub
Задание на самостоятельное выполнение:.
Функции даты и времени в Visual Basic
Private Sub command1_Click()
Функции вырезания подстроки
Sub command2_Click() Text3.Text = Right$ textl.Text, Val(text4.Text)) End Sub
Оператор условного перехода
Подобный материал:
1   2   3   4

Задание 1. Введем код глобальной общей процедуры для рисования круга


Public Sub krug(x, y, r As Single, cvet As String)

Scale (0, 100)-(100, 0)

Circle (x, y), r, cvet

End Sub


Разместим на форме командную кнопку Круг и создадим для нее событийную процедуру рисования круга с одним центром, разным радиусами различными цветами:

Private Sub Command1_Click()

Call krug(50, 50, 10, vbRed)

Call krug(50, 50, 20, vbBlue)

Call krug(50, 50, 30, vbYellow)

End Sub

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

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

Задание 2. Введем код глобальной общей процедуры для рисования прямоугольника:

Public Sub pram(x1, y1, x2, y2 As Single, cvet As String)

Line (x1, y1)-(x2, y2), cvet, B

End Sub


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


Private Sub Command2_Click()

Call pram(10, 10, 20, 20, vbRed)

Call pram(20, 20, 30, 30, vbBlue)

Call pram(30, 30, 40, 40, vbGreen)

Call pram(40, 40, 50, 50, vbYellow)


End Sub


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


Задание 4. Нарисовать несколько домиков различного размера на форме.


Ввести код глобальной общей процедуры Domic в программный код формы:

Public Sub Domic(X1, Y1, X2, Y2 As Single, CVET As String)

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

Form1.Line (X1, Y1)-(X2, Y2), CVET, B

Form1.Line (X1, Y2)-(X1 + (X2 - X1) / 2, Y2 + 3), CVET

Form1.Line (X2, Y2)-(X1 + (X2 - X1) / 2, Y2 + 3), CVET

End Sub


Поместить на форму кнопку Домики.

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


Private Sub Command1_Click()

Call Domic(80, 5, 10, 20, vbRed)

Call Domic(10, 40, 40, 80, vbGreen)

End Sub


Построение графика функции .


Нарисовать весь график нельзя ведь он бесконечен. Для примера приведем график функции у= х2 Будем рисовать только часть графика, например от х = 0 до х=2. Во-вторых, рисовать будем точками. Чем больше точек, тем лучше будет выглядеть наш график параболы.

Будем рисовать точками слева направо на некотором участке (от а до b, начиная от точки (а, а ** 2) и кончая точкой (b, b ** 2).

Используем вещественную величину х для запоминания х-координаты очередной точки. При рисовании очередной точки величину х надо просто увеличивать на 0.01

А) 4 звена б) 10 звеньев в) 100 звеньев




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


Определим переменные:

Dim x , y As Single, b As Integer

Сначала зададим масштаб для рисования

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

Затем нарисуем оси координат:

'Ось X

Form1.Line (-10, 0)-(10, 0)

For b = -10 To 10

Form1.PSet (b, 0)

Form1.Print b

Next x

'Ось Y

Form1.Line (0, 2)-(0, -2)

For y = -2 To 2

Form1.PSet (0, b)

Form1.Print b

Next y

Построим график функции:


For x = -10 To 10 Step 0.01

Form1.PSet (x, x2)

Next x


Задание на самостоятельное выполнение:. Изменить проект так, чтобы дополнительно строились графики линейной, кубической функции, графики синуса, косинуса, тангенса.


Создание меню и панелей инструментов проектов.


Задание 1. Создать меню для простейшего графического редактора.

Меню состоит из одного или нескольких заголовков верхнего уровня. Каждый заголовок меню и каждая команда являются управляющими элементами, которые обладают многими свойствами, но только одним событием Click. Для создания меню используется специальный редактор меню Menu Editor.
  1. Для запуска редактора меню перейти в окно формы командой [Tools-Menu Editor].
  2. На появившейся диалоговой панели Menu Editor создать заголовок первого уровня. В поле Caption внести надпись «линия» и в поле Name mnuL.
  3. Для создания следующего пункта меню щелкнуть по кнопке Next.
  4. В режиме конструирования проекта раскрыть меню и двойным щелчком мыши создать пустую заготовку событийных процедур для этого пункта меню. Для задания масштаба процедура будет выглядеть так:


Private SUB cmd1_Click()

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

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

End Sub

  1. Для рисования линии процедура будет выглядеть так:


Private SUB cmd1_Click()

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

End Sub

  1. Для очистки графического поля:

Private SUB cmd2_Click()

Form1.cls

End Sub

  1. Для выхода из программы:

Private SUB cmd2_Click()

end

End Sub


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


Функции ввода и вывода


Функция InputBox (Окно Ввода). Функция InputBox позволяет вводить данные с помощью диалоговой панели ввода. В качестве аргументов этой функции выступают три строки, значением функции является также строка. Синтаксис функции следующий:

InputBox (Приглашение$ , Заголовок$ , [ПоУмолчанию$] )

В процессе выполнения этой функции появляется диалоговая панель с текстовым полем. В строке заголовка панели будет печататься значение второго аргумента (Заголовок$), на самой панели печатается значение аргумента Приглашение$, в текстовом поле печатается значение аргумента ПоУмолчанию$ (если это значение отсутствует, содержимое текстового окна также отсутствует). Введенная пользователем в текстовом поле строка становится значением


Задание. Вычислить гипотенузу и площадь прямоугольного треугольника, если известны его катеты.

Разместить на форме кнопку command1. Создать событийную процедуру commandl_Click () .
  1. С помощью функции InputBox запросить значение 1 катета и присвоить это значение переменной a:

Dim a,b as String,c,p,s as Single

Sub commandl_Click()

a = InputBox ("Введите значение 1 катета:","ввод ")

b = InputBox ("Введите значение 2 катета:","ввод ")

c== Sqr(Val(a)2+Val(b)2)

print c

End Sub
  1. Запустить проект

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

Задание 1. Решить квадратное уравнение вводом параметров a,b,c с помощью функции InputBox

Задание 2 . Найти периметр и площадь треугольника, стороны которого введем с помощью функции InputBox

Создание теста

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

задать (напечатать) вопрос;

запросить ответ и запомнить введенное с клавиатуры зна­чение;

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

Запомнить ответ пользователя можно путем присваивания переменной Otvet строки символов, введенной пользователем в текстовом поле панели ввода.

Проверку правильности введенного ответа и печать оценочных сообщений реализуем с помощью алгоритмической структуры «ветвление». В качестве условия используем сравнение значения переменной Otvet со строкой правильного ответа.

Полезно предусмотреть возможность подсчета количества сделанных ошибок с помощью счетчика ошибок (целочисленной переменной N). При каждом неправильном ответе необходимо к значению счетчика прибавлять единицу, для этого в последовательность команд, которая выполняется, если ответ неправильный, следует добавить: N=N+1.

При создании проекта «Тест» необходимо поместить на форму метку Label1 для вывода оценочных сообщений, метку Label2 для вывода количества ошибок и кнопку commandl, задать значение Начать проверку свойства Caption. Создать событийную процедуру commandl_Click () .

С помощью функции InputBox запросить имя и фамилию и присвоить это значение строковой переменной strA, а с помощью функции MsgBox вывести результаты

регистрации:

Dim Otvet As String, N AS Byte

Sub commandl_Click()

N=0

Otvet = InputBox ("1 bite =", "1 vopros")

If otvet="8 bit" then label1.Caption="true" else label1.Caption="false": N=N+1

Label2.Caption=N

End Sub

Запустить проект и щелкнуть по кнопке Начать проверку.

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

Ввести в событийную процедуру программный код, реализующий проверку знаний с помощью последовательности вопросов. В переменной N накапливать количество неправильных ответов:

На первую метку будет выведено оценочное сообщение, а на вторую метку - количество ошибок.

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

Чему равен 1 кбайт, 1 мбайт, 1 гбайт.


Демонстрация палитры цветов

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

Private Sub cmdStart_Click()

picColorl.Scale (-300, 300)-(300, -300)

picColor2.Scale (-300, 300)-(300, -300)

picColorS.Scale (-300, 300)-(300, -300)

For intl = 0 To 255

picColorl.Circle (0,0),intI, RGB(255 - intl,0, intI)

picColorl.Circle (0,0),intI, RGB(255 - intl, intI, 0)

picColorl.Circle (0,0),intI, RGB(0,255 - intl, intI)

Next intI

End Sub

3. Запустить проект. В трех графических окнах будут представлены палитры попарно изменяющихся базовых цветов (RB, RG и GB).

Задание на самостоятельное выполнение:. Изменить проект так, чтобы каждая палитра появлялась в своем графическом окне по нажатию отдельной кнопки.




Функции даты и времени в Visual Basic.

Функция Date. Функция Date возвращает значение текущей даты, которое можно присвоить переменным типа Date. Значение даты представляется в виде тройки чисел #Месяц/Число/Год#, разделенных знаком «/». Разностью значений переменных типа Date является число дней между датами.

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

1. Разместить на форме кнопку cmdl и ввести событийную процедуру cmdl_Click () :

Dim dtmA, dtmB As Date

Sub cmdl_Click()

dtmA = Date

dtmB = #1/1/2001*

Print "Сегодня "; dtmA

Print " С начала третьего тысячелетия прошло"; dtmA • dtmB; " дней"

End Sub
  1. Запустить проект и щелкнуть по кнопке Дата. На форме будет напечатано текущее число и количество дней, прошедших с начала третьего тысячелетия.

Функция Time$. Функция Time$ возвращает значение текущего времени, имеющее тип String, которое можно вывести в текстовое поле. Значение времени представляется в виде тройки чисел #Часы: Минуты :Секунды#, разделенных знаком «:».

Для периодического обновления значения времени исполь­зуем объект Timer. Объект Timer не отображается на форме в процессе выполнения программы и реализует всего одну фун­кцию - проверяет показания системных часов по событию Timer.

Периодичность события Тimer может быть задана с помощью значения свойства Interval, задаваемого в миллисекундах (может изменяться от 0 до 65535). Для того чтобы событие Timer происходило каждую секунду, необходимо свойству Interval присвоить значение 1000.

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

Задание 1.

1. Разместить на форме объект Timer и присвоить ему имя timerl, а свойству Interval -- значение 1000. Поместить на форму текстовое поле text1. Ввести событийную процедуру timerl_Timer ():

Sub timer1_Timer ()

Text1.Text = Time$

End Sub

2. Запустить проект. В текстовое окно с интервалом в одну секунду будет выводиться системное время компьютера.

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

Задание 1.

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

Задание 2.

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

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

Private Sub command1_Click()

Text1.Text=Time$

Text2.Text=Date

End Sub


Строковые функции в Visual Basic

Функция определения длины строки. В функции определения длины строки Lеn(Строка$) аргументом является строка Строка$, а возвращает функция числовое значение длины строки (количество символов в строке). Синтаксис функции: Len(Строка$)

Пусть аргументом функции Len будет строка "информатика", тогда значением целочисленной переменной

ДлинаСтроки = Len ("информатика") будет число 11.

Функции вырезания подстроки. В функциях вырезания подстроки (части строки) Lef t (Строка$, Длина%), Right(Строка$, Длина%) и Mid(Строка$, Позиция%, Длина%) аргументами являются строка Строка$ и числа или целочисленные переменные Длина% и Позиция%. Функции возвращают строковое значение, длина которого равна Длина%. Синтаксис функций:

Left(Строка$, Длина%)

Right(Cтрока$, Длина%)

Mid(Строка$, Позиция%, Длина%)

Значением функции Left является левая подстрока, которая начинается от крайнего левого символа строки и имеет количество символов, равное значению числового аргумента Длина%.

Пусть аргументом функции Left будет строка "информатика", тогда значением строковой переменной Подстрока = Left("информатика",2) будет строка "ин".

Значением функции Right является правая подстрока, которая начинается от крайнего правого символа строки и имеет количество символов, равное значению числового ар­гумента Длина%.

Пусть аргументом функции Right будет строка "информатика", тогда значением строковой переменной Правая Подстрока = Right ("информатика", 4) будет строка "тика".

Значением функции Mid является подстрока, которая начинается с символа, находящегося в позиции, заданной числовым аргументом Позиция%, и имеет количество сим­волов, равное значению числового аргумента Длина%.

Пусть аргументом функции Mid будет строка "информатика", тогда значением строковой переменной CTpoKa = Mid("информатика",3,5)будет строка "форма".

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

Задание 1. Создать проект «Строковый калькулятор»
  1. Разместить на форме 3 текстовых полz (textl, text2 —для ввода строк, text3 — для вывода результата,) и кнопку cmdCon.
  2. Для кнопки ввести программный код событийной процедуры command1_Click (), реализующий операцию конкатенации:

Sub commadCon_Click()

Text3.Text = textl.Text + text2.Text

End Sub

3. Запустить проект, в два первых поля ввести строки и щелкнуть по кнопке Конкатенация. В третьем поле появится результат сложения двух строк.

Воспользуемся теперь для преобразования строк строковой функцией Mid$ (cтрокa$,M, N). Функция вырезает из строки$ подстроку, начинающуюся с символа, позиция которого в строке задается целочисленной переменной M, и имеющую длину, заданную целочисленной переменной N.
  1. Разместить на форме два текстовых поля text4 и text5 для ввода значений переменных M и N и кнопку command2.
  2. Для кнопки ввести программный код событийной проце­дуры command_Click () , реализующий операцию вырезания подстроки. Для преобразования строковых значений свойства Text текстовых полей в числа использовать функцию Val:

Sub command2_Click()

Text3.Text = Mid$(textl.Text, Val(text4.Text),Val (text5.Text))

End Sub

6. Запустить проект, в первое поле ввести строку, в поля ввода аргументов функции вырезанной подстроки ввести числа и щелкнуть по кнопке Mid$. В третьем поле появится вырезанная подстрока. Для определения количества символов в строке используется функция определения длины строки Len(строка$) , аргументом которой является строка, а возвращает функция число, равное количеству символов в строке.

7. Разместить на форме кнопку command3 и ввести программный код событийной процедуры command3_Click () , реализующий операцию определения количества символов в строке:

Sub command3_Click()

Text3.Text = Len(textl.Text)

End Sub

8. Запустить проект, в первое поле ввести строку и щелкнуть по кнопке Len. В третьем поле появится число символов в строке.

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

9. Разместить на форме кнопку command6 и ввести программный код событийной процедуры command6_Click () , реализующий операцию определения числового кода символа:

Sub command6_Click()

text3.Text = Asc(textl.Text)

End Sub

10. Запустить проект, в первое поле ввести символ и щелкнуть по кнопке Asc. В третьем поле появится числовой код символа.

11. Воспользуемся теперь для преобразования строк строковой функцией Left$ (cтрокa$, N). Функция вырезает из строки$ подстроку, начинающуюся с 1 символа и содержит N символов.
  1. Разместить на форме текстовое поле text6 для ввода значений переменной N и кнопку command4.
  2. Для кнопки ввести программный код событийной процедуры command4_Click () , реализующий операцию вырезания подстроки. Для преобразования строковых значений свойства Text текстовых полей в числа использовать функцию Val:

Sub command2_Click()

Text3.Text = Left $(textl.Text, Val(text4.Text))

End Sub

14. Воспользуемся теперь для преобразования строк строковой функцией Right$ (cтрокa$, N). Функция вырезает из строки$ подстроку, начинающуюся с последнего правого символа и содержит N символов.
  1. Разместить на форме текстовое поле text7 для ввода значений переменной N и кнопку command5.
  2. Для кнопки ввести программный код событийной процедуры command5_Click () , реализующий операцию вырезания подстроки. Для преобразования строковых значений свойства Text текстовых полей в числа использовать функцию Val:

Sub command2_Click()

Text3.Text = Right$ textl.Text, Val(text4.Text))

End Sub

Задание на самостоятельное выполнение:. Из слова «железнодорожник» получить слова «жезл», «колено», «крокодил».


Оператор условного перехода

В отличие от линейных алгоритмов, в которых команды выполняются последовательно одна за другой, в алгоритмическую структуру «ветвление» входит условие. В зависимости от выполнения или невыполнения условия реализуется одна или другая последовательность команд (серий). В условии два числа, две строки, две переменных, два арифметических или строковых выражения сравниваются между собой с использованием операций сравнения (>, <, =, >=, <=). Например: 5 > 3, "А" = "В" и т. д. В зависимости от результата сравнения условие принимает значение True («истина») или False («ложь»).

Алгоритмическая структура «ветвление» может быть наглядно представлена с помощью блок-схемы. В языке программирования Visual Basic ветвление кодируется с использованием оператора условного перехода If ... Then . . . Else . . . End If (Если ... To ... Иначе ... Конец Если).

В операторе условного перехода после первого ключевого слова If должно быть размещено условие. Второе ключевое слово Then размещается на той же строке. Во второй строке размещается последовательность команд (Серия 1), которая должна выполняться, если условие принимает значение True. На третьей строке размещается ключевое слово Else. На четвертой строке размещается последовательность команд (Серия 2), которая должна выполняться, если условие принимает значение False. На пятой строке размещается конец инструкции ветвления End If.

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