Visual basic
ВВЕДЕНИЕ
Государственный образовательный стандарт по дисциплине «Информатика» для студентов педагогических специальностей включает разделы, связанные с алгоритмизацией и программированием.
Учебно-методическое пособие содержит описание основных алгоритмических структур, краткое введение в программирование на языке визуального программирования Visual Basic, указания к лабораторным работам, задания для самостоятельной работы и список рекомендуемой литературы.
Пособие содержит описание основных алгоритмических структур, краткое введение в программирование на языке визуального программирования Visual Basic, указания к лабораторным работам, задания для самостоятельной работы и список рекомендуемой литературы.
В качестве базового языка выбран Visual Basic. Основное его достоинство заключается в простоте использования. Visual Basic является современным объектно-ориентированным языком программирования, с помощью которого можно реализовать широкий спектр практических задач. В нем используются все средства, необходимые для создания современных приложений самого различного назначения.
Это прежде всего:
— система визуального проектирования, благодаря которой можно реализовать Windows-подобный интерфейс, без применения программирования;
— встроенные средства доступа к базам данных различного формата;
— встроенные системы поддержки сетевых приложений;
— совместимость языка с другими прикладными и программными средами. В частности он полностью совместим с такой популярной системой как MS Office.
Составлено в соответствии с Государственным образовательным стандартом высшего профессионального образования.
Тема 1. Знакомство со средой программирования
Visual Basic (VB) реализует современный подход к технологии программирования, который позволяет значительно ускорить время разработки программ при минимуме самого программирования.
1.1. Запуск Visual Basic
1. Запуск Visual Basic производится либо с помощью соответствующего ярлыка (двойным щелчком по нему) на рабочем столе, либо «Пуск» — «Программы» — «Visual Basic 6.0».
2. Появится диалоговое окно нового проекта.
3. Щелчком по кнопке Открыть, откройте Новый проект в среде программирования.
В отличие от большинства приложений Windows, Visual Basic содержит несколько отдельных окон.
Главное окно содержит все элементы, которыми обладает любое приложение Windows:
Строка меню обеспечивает доступ к большинству команд, управляющих средой программирования.
Под строкой меню расположена строка инструментов (ToolBar) – набор кнопок, являющихся ярлыками для команд, с помощью которых осуществляется быстрый доступ к наиболее часто используемым операциям Visual Basic.
Панель инструментов (Toolbox). Значки окна (панели) инструментов соответствуют различным элементам управления. В процессе разработки внешнего вида приложения эти элементы могут быть добавлены в него путем перетаскивания их с панели инструментов.
Окно Form1. Приложение Visual Basic обычно состоит из одного или более окон. На этапе разработки эти окна называются формами. На поверхности формы могут быть размещены элементы управления. В начале разработки Visual Basic предлагает одну форму, которая называется Form1. В процессе разработке приложения имя и размеры этой формы могут быть изменены. Форма играет ключевую роль в большинстве приложений.
Окно проекта (Project Explorer) с заголовком Project – Project1 содержит список файлов проекта в виде древовидной структуры.
Окно свойств (Properties) Каждая форма и каждый элемент управления на форме имеют набор свойств. Они определяют внешний вид формы или элемента управления и его поведение. Каждый элемент управления каждого типа имеет свой собственный набор свойств. Окно Properties выводит на экран свойства выбранной формы или элемента управления и позволяет изменять их.
Окно размещения формы (Form Layout). Оно отображает уменьшенную копию рабочего стола Windows с формой, расположенной на нем именно так, как это будет во время работы программы.
1.2. Управляющие элементы
Управляющие элементы представляют собой стандартные визуальные компоненты, используемые при разработке приложений. Их основное
назначение приведено в табл.1.
Таблица 1.
Назначение управляющих элементов
Элемент |
Название |
Основное назначение |
|
Английское |
Русское |
||
1 |
2 |
3 |
4 |
Pointer |
Указатель |
Выбор элементов |
|
PictureBox |
Картинка |
Контейнер для размещения картинок |
|
Label |
Надпись |
Размещение комментирующих надписей на форме |
|
TextBox |
Текстовое поле |
Ввод/вывод переменной информации |
|
Frame |
Рамка |
Объединение управляющих элементов в группу |
|
CommandButton |
Командная кнопка |
Запуск процедур |
|
CheckBox |
Выбор |
Установка (снятие) параметров объектов или процессов |
|
OptionButton |
Переключатель |
Переключение параметров объектов или процессов |
|
ComboBox |
Список с выбором |
Раскрывающийся список с возможностью выбора элементов |
|
ListBox |
Список |
Раскрывающийся список |
|
HScrollBar |
Полоса горизонтальной прокрутки |
Организация горизонтальной прокрутки объектов, не умещающихся на экране |
|
VScrollBar |
Полоса вертикальной прокрутки |
Организация вертикальной прокрутки объектов, не умещающихся на экране |
|
Timer |
Таймер |
Организация процессов, протекающих в режиме реального времени |
|
DriveListBox |
Список дисководов |
Работа со списком дисководов |
|
DirListBox |
Список каталогов |
Работа со списком каталогов |
|
FileListBox |
Список файлов |
Работа со списком файлов |
|
Shape |
Фигура |
Создание простейших изображений |
|
Line |
Линия |
Создание простейших изображений |
|
Image |
Изображение |
Контейнер для создания изображений |
|
Data |
Данные |
Работа с базами данных |
|
OLE |
OLE-контейнер |
Контейнер для OLE-объектов |
1.3. Свойства элементов управления
Каждый элемент управления имеет свой набор свойств. Эти свойства можно изменять с помощью окна свойств (properties). Назначение наиболее часто используемых свойств приведено в табл.2.
Таблица 2.
Назначение свойств управляющих элементов
Название |
Назначение |
|
Английское |
Русское |
|
1 |
2 |
3 |
Alignment |
Выравнивание |
Установка режима выравнивания или размещения содержимого в элементе |
BackColor |
Цвет фона |
Установка цвета фона |
BackStyle |
Параметр прозрачности |
Установка параметра прозрачности элемента |
Caption |
Заголовок |
Текст заголовка элемента или надписи на нем |
Enabled |
Активность |
Параметр, определяющий работоспособность элемента после запуска приложения |
Font |
Шрифт |
Установка параметров шрифта |
ForeColor |
Цвет текста |
Установка цвета текста |
Height |
Высота |
Установка высоты элемента |
Left |
Левый |
Размещение левого края элемента |
Text |
Текст |
Задание начального текста в элементе |
Top |
Верхний |
Размещение верхнего края элемента |
Visible |
Видимость |
Параметр, определяющий видимость элемента после запуска приложения |
Width |
Ширина |
Установка ширины элемента |
Если элементы имеют общие свойства, то эти свойства можно устанавливать одновременно. Для этого необходимо выделить нужные элементы и установить нужные значения свойств. Для одновременного выделения группы элементов можно:
а) Выделять элементы левой клавишей мыши при нажатой клавише Shift:
б) Поступить так, как это принято в Windows – при нажатой левой клавиши мыши обвести нужные элементы.
1.4. Создание интерфейса приложения
Пусть нам необходимо создать приложение со следующим интерфейсом – рис.3.
Порядок создания:
1. Запустите Visual Basic и создайте новое стандартное приложение.
2. Щелкните мышкой на кнопке (TextBox — текстовое окно) на панели инструментов.
Переместите указатель мыши несколько выше центра формы. Указатель станет крестообразным. Вычертите на форме текстовое окно – рис.4.
3. Для добавления командных кнопок: щелкните по элементу CommandButton (командная кнопка) на панели инструментов. Поместите указатель мыши ниже текстового окна на форме и начертите командную кнопку. На ней появится надпись Command1.
4. Аналогично установите вторую командную кнопку Command2. Форма примет вид – рис. 5.
5. Для установки свойств объектов используется окно Properties (Свойства), расположенное в правой части экрана. Если данное окно на экране отсутствует, то его следует вызвать через главное меню View (Вид) ® Properties Window (Окно свойств) или нажать клавишу F4.
— Щелкните по текстовому окну;
— Вокруг него появится рамка, показывающая, что оно выделено, а в верхней строке окна свойств появится надпись «Text1 Textbox»;
— В списке свойств (левая колонка) найдите свойство Text и дважды щелкните по нему, в левой колонке будет выделена текущая установка свойства (Text1), удалите ее, т. е. оставьте свойство пустым;
— Щелкните по первой командной кнопке Command1, кнопка выделится рамкой, а в верхней строке окна свойств появится надпись «Command1 Command Button»;
— Дважды щелкните на свойстве Caption (Название) в левой колонке окна свойств. Будет выделена текущая установка названия (Command1);
— Наберите новое название Запуск и нажмите клавишу Enter;
— Аналогично измените название второй кнопки на Выход.
1.5. Задание
Создайте интерфейс программы для расчета удельных показателей учебного процесса – рис. 6.
Параметры формы:
высота — 5250;
ширина — 7335;
в заголовке формы должна быть надпись — «Показатели учебного процесса» (вместо «Form1»).
Параметры элементов на форме:
высота текстовых полей — 400;
ширина текстовых полей и верхних надписей — 2000;
высота боковых надписей — 380;
ширина боковых надписей — 1275;
ширина и высота командных кнопок соответственно 1800 и 400;
параметры шрифта на всех элементах:
размер — 10;
тип — жирный;
наименование — MS Suns Serif.
цвета элементов:
цвет текста в верхних надписях, в третьем и в пятом рядах элементов — белый;
цвет текста во втором и четвертом рядах элементов — желтый;
цвет текста на командных кнопках — черный;
цвет фона во втором и четвертом рядах элементов — красный;
цвет фона в третьем и в пятом рядах элементов — серый;
цвет фона в надписи «Бюджетные» — зеленый;
цвет фона в надписи «Коммерческие» — фиолетовый.
1.6. Создание программы
Вторым этапом создания приложений является написание программы. В Visual Basic фактически приходится писать набор подпрограмм для каждого рабочего элемента управления.
В создаваемом приложении (из задания 1) такими рабочими элементами являются кнопки «Расчет» и «Выход».
Первая кнопка обеспечивает расчет процентных показателей учебного процесса, а вторая – завешает работу с приложением.
Для этого:
1. Дважды щелкните по командной кнопке «Расчет». При этом появится окно Code и в нем заготовка процедуры, обрабатывающей щелчок по данной кнопке:
Private Sub Command1_Click()
End Sub
Наберите между этими строчками следующий текст:
a = Val(Text1.Text
b = Val(Text3.Text)
a1 = Val(Text2.Text)
b1 = Val(Text4.Text)
Text5.Text = Str(a / (a + b) * 100)
Text7.Text = Str(b / (a + b) * 100)
Text6.Text = Str(a1 / (a1 + b1) * 100)
Text8.Text = Str(b1 / (a1 + b1) * 100)
Даже если Вы незнакомы с программированием, то все равно придется немного разобраться со смыслом набираемых команд:
первая – берет число пятерок из окна для бюджетных студентов (a);
вторая — берет число двоек из окна для бюджетных студентов (b);
третья – берет число пятерок из окна для коммерческих студентов (a1);
четвертая — берет число двоек из окна для бюджетных студентов (b1);
пятая – вычисляет процент пятерок среди бюджетных студентов и помещает результат в соответствующее окно;
шестая – вычисляет процент двоек среди бюджетных студентов и помещает результат в соответствующее окно;
седьмая – вычисляет процент пятерок среди коммерческих студентов и помещает результат в соответствующее окно;
восьмая – вычисляет процент двоек среди коммерческих студентов и помещает результат в соответствующее окно.
Примечание.
Нумерация окон должна соответствовать реально нарисованным окнам на форме. Т. е. окно с количеством пятерок для бюджетников должно иметь название Text1, окно с количеством пятерок для коммерческих студентов — Text2 и т. д. Если эта нумерация у Вас нарушилась, то в набираемый текст внесите соответствующие исправления.
2. Перейдите на форму и дважды щелкните по командной кнопке «Выход». При этом вновь появится окно Code и в нем заготовка процедуры, обрабатывающей щелчок по данной кнопке:
Private Sub Command2_Click()
End Sub
Наберите между этими строчками одно слово — End. Это слово в Visual Basic означает команду завершения работы приложения.
3. Для запуская готового приложения щелкните по кнопке Start ► на панели инструментов. Программа запустится.
4. Щелкните по кнопке «Расчет». Программа выведет результаты расчет в нужные окна. Здесь Вы можете ввести другие значения пятерок и двоек для обоих видов студентов и вновь щелкнуть по кнопке «Расчет». Должны появиться новые результаты расчетов.
5. Щелкните по командной кнопке «Выход». Программа завершит работу.
6. Для сохранения программы в меню File (Файл) щелкните на пункте Save Project As (Сохранить проект как), появится диалоговое окно, подсказывающее имя и место для сохранения вашей формы.
В этом окне перейдите на диск и/или папку, в которой Вы можете сохранять свои работы и создайте там свою личную папку. В своей личной папке создайте новую папку с названием Lab1 и войдите в нее. Щелкните по команде «Сохранить». Программа сначала запросит имя формы (файла с расширением *.frm), а затем имя проекта (файла с расширением *.vbp). В обоих случаях по умолчанию будет предлагаться имя Project1. Можно согласиться с этим именем и просто щелкнуть «Сохранить».
7. Для создания исполняемого файла в меню File щелкните на команде Make (имя).exe (Visual Basic автоматически добавляет имя вашей программы перед расширением *.ехе). Позже вы сможете запустить программу из FAR или через «Мой компьютер» (не запуская Visual Basic).
Тема 2. Ввод и вывод данных. Линейные алгоритмы
2.1. Типы данных в Visual Basic
Программа на Visual Basic (как, впрочем, и на любом другом языке) работают с данными, расположенными в ячейках памяти. Каждая такая ячейка памяти имеет конкретный системный адрес. По этому адресу можно обратиться с целью получения хранящегося там значения данных с целью записи туда другого значения. Но для удобства программирования вместо системных адресов используют имена ячеек. Такая именованная ячейка памяти называется переменной. Переменные полезны тем, что позволяют присваивать короткий и легко запоминающийся идентификатор для данных, которые планируется использовать.
Переменные могут быть одного из следующих типов.
Таблица 2.1
Название типа |
Обозначе-ние |
Диапазон значений |
1 |
2 |
3 |
Логический |
Boolean |
False (ложь) или True (истина) |
Короткое целое |
Byte |
0…255 |
Целое |
Integer |
–32768…+32767 |
Длинное целое |
Long |
–2147483648 …+2147483647 |
Денежный (целый тип + четыре знака после запятой) |
Currency |
≈ ± 9∙1014 |
Вещественное, одинарной точности |
Single |
± 1,401298Е-45…±3,402823Е+38 |
Вещественное двойной точности |
Double |
±4,94065645645841247Е-324 … ±1,7976931486232Е+308 |
Дата и время |
Date |
От 01.01.100 до 31.12.9999 г. |
Строковый. Последовательность символов переменной длины |
String |
От 0 до ≈ 2·109 символов |
Продолжение таблицы 2.1
1 |
2 |
3 |
Строковый. Последовательность символов заданной длины |
String |
От 0 до ≈ 65400 символов |
Вариантный |
Variant |
Зависит от типа данных, помещенных в переменную, в соответствии с вышеприведенными описаниями |
В строгих языках программирования (типа Паскаль) перед использованием переменных необходимо резервировать пространство в памяти ЭВМ. Оно будет использоваться при выполнении программы. Резервирование памяти под переменную называется объявлением переменной. В Visual Basic объявление осуществляется оператором Dim по следующему формату:
Dim <Имя переменной> As <Тип переменной>
Visual Basic является потомком языка, который изначально был объявлен как язык для начинающих. В исходном Бейсике было сделано все, чтобы облегчить начинающим программистам усвоение азов алгоритмизации и программирования. В частности, было сделано допущение о необязательном объявлении простых переменных. Эту особенность также унаследовал Visual Basic.
Поэтому, поначалу единственное, что необходимо знать, так это то, если переменная не объявлена, то ей автоматически присваивается универсальный тип Variant. Переменная типа Variant может содержать строку символов, дату, логическое или числовое значение.
Тем не менее, в крупных проектах, создаваемых в Visual Basic объявление переменных практически обязательно, т. к. позволяет избежать многих ошибок программирования.
2.2. Операции ввода/вывода
Операции ввода
Для ввода значений переменных в программу Visual Basic располагает следующими возможностями.
1) Непосредственно в программе переменной присваивается нужное значение. Например:
x = 0.13
2) С помощью диалогового окна InputBox. Его вызов имеет следующий формат:
<Переменная> = InputBox(<Комментарий на поверхности окна>,
<Заголовок окна>,
<Значение переменной по умолчанию>)
При этом, следует учитывать, результат, получаемый с помощью InputBox, является переменной текстового типа. Поэтому, при вводе текстов возможно прямое присваивание. Например:
Family = InputBox(“Введите фамилию”,”Ввод фамилии”,””)
В случае же числовой переменной, необходимо преобразование текстовой формы числа в числовую. Это можно сделать с помощью функции Val.
Например, для ввода значения ставки налога, возможен такой вариант:
Nalog = Val(InputBox(“Введите ставку налога”,”Ввод ставки”,”0,13”))
3) С помощью текстового окна TextBox, используя его свойство Text. Здесь также следует учитывать, что свойство Text, является переменной текстового типа. Поэтому ввод аналогичен предыдущему случаю.
Для ввода текстовой переменной используется прямое присваивание:
Family=Text1.Text
Для числовой переменной полученное текстовое значение преобразовывается в числовую форму с помощью функции Val:
X = Val(Text1.Text)
Операции вывода
Для вывода значений переменных или результатов расчета имеются следующие возможности.
1) Вывод в текстовое окно, присваивая свойству Text значение переменной. Здесь также следует учитывать текстовый тип свойства Text. Если переменная текстовая, то возможно прямое присвоение. Например:
Text1.Text=S
Если же переменная числовая, то перед операцией присвамвания ее следует преобразовать в строковую форму с помощью функции Str. Например:
Text1.Text=Str(x)
2) Использование свойства Caption элемента управления Label. Например:
Label1.Caption = S
Здесь также необходимо учитывать то, что свойство Caption является строкового типа.
3) Использование функции MsgBox. Ее упрощенный формат выглядит следующим образом
MsgBox <Сообщение>
где сообщение — любая текстовая переменная. Например:
x=22
MsgBox “x=” & x
4) Печать результат вычислений прямо на форму с помощью оператора Print. Данный способ наименее «профессиональный», но он очень удобен для вывода результатов на «скорую руку». Например:
x=22
Print “x=” x
2.3. Примеры
1.Условие задачи
По условиям договора зарплату за месяц выдают дважды: сначала часть ее в виде аванса, а по истечении месяца — остальную часть. При этом при окончательном расчете из заработной платы удерживают аванс и величину подоходного налога (13%).
Составить программу, которая по введенному с клавиатуры значению зарплаты и процентной доле аванса выводит на экран значения обоих частей зарплаты.
2. Алгоритм
3. Программа
Интерфейс программы влияет на тип операторов ввода/вывода, который избираются, при реализации программы. В простейшем случае – это форма с двумя кнопками – «Расчет» и «Выход».
Для кнопки «Выход» процедура очень проста:
Private Sub Command2_Click()
End
End Sub
Для кнопки «Расчет»:
Private Sub Command1_Click()
Oklad = Val(InputBox("Введите величину оклада "))
d = Val(InputBox("Введите % долю аванса "))
Avance = Oklad * d / 100
Nalog = Oklad * 0.13
Plata = Oklad – Avance — Nalog
MsgBox "Аванс=" & Avance
MsgBox “Расчет=” & Plata
End Sub
При запуске программы динамически появляются окна запросов и результатов расчетов.
Но для данной задачи можно предложить и более благожелательный интерфейс.
Здесь на форме использованы следующие управляющие элементы:
— для создания комментирующих надписей элементы Label;
— для полей ввода элементы TextBox;
— для кнопок элементы CommandButton.
В первые два окна, должны вводится исходные данные для расчета. При запуске программы в этих окнах уже будут находиться некоторые данные (по умолчанию). Эти значения вводятся на этапе проектирования, используя свойство Text соответствующих элементов TextBox.
При таком интерфейсе человек либо соглашается с данными по умолчанию либо вместо них вводит свои данные. В любом случае после щелчка по кнопке «Расчет» в последующих двух окнах должны появиться результаты расчетов.
Процедура для кнопки «Расчет» имеет вид:
Private Sub Command1_Click()
Oklad = Val(Text1.Text))
d = Val(Text2.Text)
Avance = Oklad * d / 100
Nalog = Oklad * 0.13
Plata = Oklad – Avance – Nalog
Text3.Text = Str(Avance)
Text4.Text = Str(Plata)
End Sub
Обратите внимание – вне зависимости от интерфейса программы при обеих реализациях используется один и тот же алгоритм.
Процедура для кнопки «Выход» аналогична предыдущей.
2.4. Задания
Номер задания соответствует номеру студента по классному журналу.
1. В классе имеется N1 мальчиков и N2 девочек. Вычислить сколько процентов от численности класса составляют мальчики и сколько девочки.
2. Известны количество жителей в государстве и площадь его территории. Определить плотность населения в этом государстве.
3. Известны объем и масса тела. Определить плотность материала этого тела.
4. Вам под коттедж отвели участок площадью S м2. Но оказалось, что S1 м2 этого участка занята болотом. Вычислить сколько % участка занимает болото.
5. С владельцев автомобилей взымается так называемый транспортный налог. Рассчитывается он следующим образом:
Налог = Мощность двигателя * Ф.
Составить программу расчета транспортного налога на ваш автомобиль.
6. Вступительные экзамены в колледж сдавало N0 человек. Из них получили двойки N1 человек, а на одни пятерки сдало N2 человек, которые и прошли в колледж без конкурса. Остальные абитуриенты вынуждены были участвовать в конкурсе на поступление и доказывать свое право учиться в колледже с помощью дополнительных показателей. Определить, сколько процентов абитуриентов от общего их числа вынуждены были участвовать в дополнительном конкурсе.
7. На курсе числится N0 студентов. Из них N1 студентов участвуют только в спортивных мероприятиях, N2 студентов участвуют только в художественной самодеятельности, а N3 участвуют и в художественной самодеятельности и в спортивных мероприятиях. Определить сколько % студентов не участвуют ни в никаких мероприятиях.
8. Плата за обучение в вузе в первый год обучения равнялась S1 руб. На следующий год она стала равна S2 руб. На третий год – S3 руб. Определить величину роста оплаты (в %) после первого и второго года обучения.
9. Некая студентка решила поучаствовать в кастинге конкурса «Мисс Очарование». Для этого она решила сесть на специальную диету. Начальный ее вес составлял M0 кг. Через неделю ее вес стал равен M1 кг, а еще через неделю – M2 кг. Определить, по сколько процентов веса каждую неделю теряла студентка, сидя на диете.
10. Некая студентка на день св. Валентина получила N1 валентинок, а сама послала N2 валентинок. Определить сколько процентов от общего числа валентинок, прошедших через ее руки, составили полученные валентинки.
11. Студентке на карманные расходы было выдано S0 руб. Из них S1 руб. было потрачено на косметику, а остальные – на походы в дискотеки. Определить, сколько процентов от общей суммы составила каждая статья расходов.
12. У студента в семестре по плану должно было быть N0 занятий. Из них по уважительной причине было пропущено N1 занятий, а по неуважительной – N2 занятий. Определить сколько % от общего числа занятий было посещено студентом.
Тема 3. Математические возможности Visual Basic
3.1. Общие сведения
В Visual Basic, как и в любом современном языке программирования, имеется большой набор стандартных математических операций и встроенных функций. Их список приводится в таблицах.
Таблица 3.1
Математические операции
Операция |
Название |
Пример |
Результат |
+ |
Сложение |
3 + 5 |
9 |
— |
Вычитание |
7 — 4 |
3 |
* |
Умножение |
3 * 6 |
18 |
/ |
Деление |
5 / 4 |
1.25 |
^ |
Возведение в степень |
2 ^ 3 |
8 |
Целочисленное деление |
7 4 |
1 |
|
Mod |
Остаток от целочисленного деления |
7 4 |
3 |
Таблица 3.2
Математические функции
Название |
Обозначение |
Запись в Бейсике |
Пример |
Результат |
1 |
2 |
3 |
4 |
5 |
Синус |
Sin(x) |
Sin(x) |
Sin(0) |
0 |
Косинус |
Cos(x) |
Cos(x) |
Cos(0) |
1 |
Тангенс |
Tg(x) |
Tan(x) |
Tan(0.785) |
1 |
Арктангенс |
ArcTan(x) |
Atn(x) |
Atn(1) |
0.785 |
Натуральный логарифм |
Ln(x) |
Log(x) |
Log(10) |
2.302585 |
Модуль числа |
│x│ |
Abs(x) |
Abs(-12) |
12 |
Экспонента |
ex |
Exp(x) |
Exp(1) |
2.818282 |
Целая часть числа |
Int(x) |
Int(-12.34) |
13 |
Продолжение таблицы 3.2
1 |
2 |
3 |
4 |
5 |
Отсечение дробной части числа |
Fix(x) |
Fix(-12.34) |
12 |
|
Корень квадратный |
Sqr(x) |
Sqr(9) |
3 |
|
Знак числа |
Sgn(x) |
Sgn(3) Sgn(0) Sgn(-3) |
1 0 -1 |
3.2. Вычисления сложных выражений
Вычисления в сложных выражениях производятся слева направо с учетом приоритета операций. Сначала выполняются операции высшего приоритета, затем более низкого. Если приоритет соседних операций одинаков, то сначала выполняется левая. Операции в порядке уменьшения приоритета располагаются следующим образом:
Функции > ^ > * = / = = Mod > + = —
Используя круглые скобки можно изменить порядок вычислений
Примеры выражений
Таблица 3.3
Выражение |
Запись в Visual Basic |
х+3 |
х+3 |
(x+y)/4 |
|
x+y/4 |
|
Log(2*x^2) |
|
Exp(-Abs(x)) |
|
(x+5)^(1/3) |
|
Log(3*x+5)/Log(10) |
|
Sin(x)^2+Cos(x ^2) |
|
(Log(Abs(x^(5/3))/Log(7))^2 |
При вычислении сложных выражений удобнее разбить это выражение на ряд простых, вычислить их отдельно и затем вычислить исходное.
Например.
Составить программу для вычисления следующего выражения:
Выражение очень сложное. В частности, при его наборе очень легко ошибиться в расстановке скобок. Для снижения вероятности ошибок его можно разбить на три части и вычислить отдельно каждую из них. Тогда текст вычислительной части программы будет иметь вид:
A = 1+ Exp(- X^2) + Sqr(Tan(Abs(X)) – 1 / Tan(1 / X))
B = Log(1 + X^4) / Log(3) – (Sin(X) + Cos(X))^(1 / 5)
C = Atn(X / 2) – 3
Y = A / B * C
3.3. Задания
Номер задания соответствует номеру студента по классному журналу. Проверочные значения позволяют проверить правильность составленных выражений без калькулятора[1].
Таблица 3.4
№ |
F(x) |
Проверочные значения |
|
a |
B |
||
1 |
2 |
3 |
4 |
1 |
2 |
4 |
|
2 |
1 |
3 |
|
3 |
1 |
3 |
|
4 |
2 |
5 |
Продолжение таблицы 3.4
1 |
2 |
3 |
4 |
5 |
1 |
4 |
|
6 |
1 |
5 |
|
7 |
1 |
4 |
|
8 |
1 |
2 |
|
9 |
3 |
5 |
|
10 |
4 |
6 |
|
11 |
1 |
3 |
|
12 |
1 |
5 |
|
13 |
1 |
3 |
|
14 |
|
2 |
5 |
15 |
1 |
5 |
Тема 4. Ветвления
4.1. Общие сведения
В реальных задачах, в зависимости от значений введенных переменных или от результатов промежуточных вычислений, могут потребоваться различные действия. Для реализации подобных процессов в теории алгоритмов используется базовая алгоритмическая конструкция «развилка».
Интерпретируется она следующим образом:
— на входе в конструкцию проверяется условие P;
— если условие верно, то выполняется действие S1;
— если условие не верно, то выполняется действие S2.
Развилка может быть и не полной.
В этом случае, если условие не верно, то никакие действия не выполняются.
Для реализации подобных процессов в VB имеется набор операторов.
4.2.Оператор условного перехода
Оператор условного перехода имеет следующий формат:
If <Условие> Then <Действия1> Else <Действия2>
При выполнении условия <Условие> выполняются <Действия1>, иначе — <Действия2>. Действием может быть любая последовательность операторов. Ветвь Else может быть опущена, если в ней нет необходимости.
Имеется две формы оператора If:
а) Строчная.
В этой форме вся конструкция записывается в одну строчку. При этом если в качестве действий должно выполняться несколько команд, то они записываются через двоеточие. Например:
If x > 0 Then a = x ^ 2 — 4: b = y — 6: c = Sin(x) Else a = Cos(x):b = 1 / x
б) Блочная
В этой форме ключевые слова конструкции и действия располагаются в разных строках, а сама конструкция завершается ключевым словом End If. Например:
If x > 0 Then
a = x ^ 2 — 4
b = y — 6
c = Sin(x)
Else
a = Cos(x)
b = 1 / x
End If
При большом количестве операторов в каждой ветви вторая форма предпочтительней.
Конструкция If … Then … Else допускает использование других вложенных конструкций, в том числе и самой себя. Например:
If x > 0 Then
y = x ^ 2 — 4
Else If x = 0 Then
y = 3 * x
Else
y = -x
End if
End if
Использовать эту возможность не рекомендуется, т. к. малейшая невнимательность при составлении таких конструкций может привести к трудно находимым ошибкам в работе программы. В частности, вышеприведенный пример лучше записать в таком варианте:
If x > 0 Then y = x ^ 2 — 4
If x = 0 Then y = 3 * x
If x < 0 Then y = — x
В качестве условия может быть любое выражение с логическим результатом. Логические выражения могут быть очень сложными и при их составлении можно использовать следующие логические операторы:
Or — логическое «ИЛИ»;
And — логическое «И»;
Xor — исключающее «ИЛИ»;
Not — логическое «НЕ».
Их применение позволяет иногда резко упростить конструкцию If …Then. Например:
If x > 0 And x < 10 Then
Пример1
Составить программу, вычисляющую подоходный налог с физического лица. Допустим, что налог начисляется по следующим правилам:
Если заработная плата ниже прожиточного минимума, то налог не начисляется. Иначе величина налога равна 13% заработной платы. Прожиточный минимум принять равным 1000 руб.
Алгоритм решения задачи в виде блок-схемы выглядит следующим образом:
Обратите внимание, как вводится комментарии к элементам блок-схемы.
Интерфейс программы несложен:
На форме создаются два текстовых окна. Одно для ввода величины заработной платы, второе – для вывода величины налога. К каждому из этих окон для удобства ввода добавлены соответствующие комментирующие надписи – элементы Label (Надпись).
После запуска программы от пользователя требуется ввести в поле «Заработная плата» величину заработной платы и щелкнуть по кнопке «Расчет». В поле «Налог» будет выведено рассчитанная величина подоходного налога.
Кнопка «Выход» предназначена для выхода из программы.
Ниже приведены тексты процедур для соответствующих кнопок.
Private Sub Command1_Click() ‘ Кнопка «Расчет»
Z = Val(Text1.Text)
If Z < 1000 Then
Nalog = 0
Else
Nalog = x * 0.13
End If
Text2.Text = Str(Nalog)
End Sub
Private Sub Command2_Click() ‘ Кнопка «Выход»
End
End Sub
Пример 2
Две подружки Лены и Кати очень любят говорить по сотовым телефонам. Лена подключена по тарифу S1 руб./мин и концу месяца наговорила T1 мин. Катя подключена по тарифу S2 руб./мин и концу месяца наговорила T2 мин. Определить, чьи родители заплатят больше за телефонные переговоры.
Алгоритм решения задачи представим в словесном виде.
1. Ввести значения S1, N1, S2, N2.
2. Вычислить общую стоимость переговоров у Лены – C1 = S1 * T1
3. Вычислить общую стоимость переговоров у Кати – C2 = S2 * T2
4. Если C1 > C2, то вывести на экран надпись – «У Лены», иначе вывести надпись — «У Кати»
Возможный интерфейс программы представлен на рисунке. Рисунок получен в результате копирования экрана с уже работающей программой.
Текст программы для кнопки «Расчет» имеет вид:
Private Sub Command1_Click()
s1 = Val(Text1.Text)
t1 = Val(Text2.Text)
s2 = Val(Text3.Text)
t2 = Val(Text4.Text)
c1 = s1 * t1
c2 = s2 * t2
If c1 > c2 Then
s = "Лены"
Else
s = "Кати"
End If
Text5.Text = s
End Sub
4.3. Задания (две подружки)
Номер задания соответствует номеру студента по классному журналу.
1. Катя живет в S1 этажном доме, в котором N1 подъездов, а Лена – в S2 этажном доме, в котором N2 подъездов. Определить в чьем доме больше квартир, если на лестничной площадке каждого подъезда по четыре квартиры.
2. На дискотеке Лена стрельнула глазками окружающим парням N1 раз за T1 минут. Катя сделала то же самое N2 раз за T2 минут. Определить, чья скорострельность больше.
3. На той же дискотеке Катю пригласили на танец N1 раз и при этом пытались договориться о свидании K1 раз. Лену же приглашали на танец N2 раз, а на свидание – K2 раз. Определить у какой из девушек эффективность танцев по части приглашений на свидания больше.
4. Лена пошла на дискотеку ЧГПУ, израсходовав косметики на R1 руб. и была приглашена на N1 танец раз. А Катя при подготовке к походу на ту же дискотеку израсходовала косметики на R2 руб. и была приглашена на танец N2 раз. Определить эффективность чьей косметики по части приглашений на танцы выше.
5. Для того чтобы добраться до института у Кати и Лены есть варианта — на троллейбусе или маршрутке. Троллейбус едет до института T1 минут, а маршрутка – T2 минут. Катя вышла на остановку в 7 часов M1 минут и тут же села в троллейбус. Лена вышла на остановку в 7 часов M2 минут и ей тут же подвернулась маршрутка. Кто из них доедет до института раньше.
6. Поскольку Лена и Катя учились на разных специальностях, то у них было разное количество экзаменов. У Лены было N1 конспектов по S1 страниц каждый, а у Кати N2 конспектов по S2 страниц. Определить, кому из них придется читать больше при подготовке к экзаменам?
7. Согласно учебному плану подружки Лена и Катя были отправлены на педагогическую практику в школы. Лене пришлось вести занятия в N1 лицейских классах, в которых было по M1 учеников. Кате досталось N2 обычных классов, в каждом их которых было по M2 учеников.
Определить, которая из девушек приобретет больший опыт человеческого общения (т. е. пообщается с большим количеством учеников).
8. Согласно плану педагогической практики Кате необходимо было сводить свой класс в музей. Начало экскурсии было назначено в 1400. Но в 1600 у нее на другом конце города было назначено свидании с очень симпатичным парнем. Экскурсия длилась T1 минут.
Определить, не опоздает ли Лена на свидание, если маршрутка от музея до места свидания едет T2 минут.
9. У Кати и Лены появились кавалеры, которые как оказалось, являются страшными компьютерными фанатами. Они предложили им свою помощь в подготовке к экзаменам. Помощь выразилась в сканировании учебников и последующей печати текстов в уменьшенном варианте. В результате получались очень симпатичные шпаргалки площадью 8 см2. Кавалер Кати умудрился втискивать по N1 символов на 1 см2 шпаргалки, а кавалер Лены — по N2 символов. Учебник Кати состоял из S1 страниц по 320 символов на странице, а у Лены учебник состоял из S2 страниц с тем же количеством символов на странице.
Определить, у кого из девушек будет большее количество шпаргалок.
10.Кавалеры Лены и Кати не только помогли им при подготовке к экзаменам, но и открыли для них такое средство Интернета как чаты. Лена просидела в чате T1 часов и пообщалась с N1 абонентами. А достижения Кати выглядят следующим образом: общее время, проведенное в чате — T2 мин и количество абонентов — N2. Определить у кого из них большая эффективность общения.
11.Для ускорения процессов общения в чатах применяются аббревиатуры, а для выражения своих эмоций — эмотиконы (смайлики). Катя освоила А1 аббревиатур и С1 смайликов, а Лена – А2 аббревиатур и С2 смайликов. При обмене информацией о своих достижениях девушки выяснили, что Лена уже знает N1 смайликов и аббревиатур освоенных Катей. А Катя знает N2 новшеств, освоенных Леной. Определить, кто из них при обмене информацией узнал больше нового.
12.При подборе материала для курсовых работ Лене и Кате пришлось обратиться к помощи Интернет. Лена провела в Интернете T1 мин и скачала N1 страниц текстового материала. А Катя на работу в Интернете потратила T2 мин и скачала N2 страниц текстов. Определить, кто из них скачивал данные из Интернета с большей скоростью.
4.4. Оператор выбора
При большом количестве проверяемых условий конструкцию If … Then … Else лучше совсем не применять. Для этого предпочтительней использовать оператор Select Case. Он имеет следующий формат:
Select Case <Переменная>
Case <Значение1>
<Действие1>
Case <Значение2>
<Действие2>
….
Case <ЗначениеN>
<ДействиеN>
Case Else
<ДействиеA>
End Select
где <Переменная> — переменная любого типа;
<Значения> — список или диапазон значений переменной;
<Действия> — набор операторов, которые должны выполняться при данном значении переменной;
<ДействиеA> — альтернативное действие, которое должно выполниться в том случае, когда значение переменной не совпадет ни с одним из заявленных.
Если нет необходимости, то ветвь Case Else может опущена.
Например:
Select Case x
Case 1,2,5 ‘ Значения Х заданы списком
y=x^2-4
Case 10 to 20 ‘ Значения Х заданы диапазоном
y=x-10
Case Is <=0 ‘Значения Х заданы условием
y=3*x
Case Else ‘ Если ни одно из значений не подходит,
y=0 ‘ то значение y приравнивается нулю
End Select
Пример
Составить программу, которая после ввода названия региона выводит его код. Предусмотреть вывод такого сообщения как: «Такого региона в справочнике нет», если будет введен регион, которого нет среди перечисленных.
Алгоритм решения задачи на языке блок-схем можно представить двумя способами.
Первый – так, как это приводится в учебной литературе — с использованием набора элементов «развилка»:
Второй – согласно рекомендации ГОСТ 19.701-90. Схемы алгоритмов, программ, данных и систем. Условные обозначения и правила выполнения.
Интерфейс программы может выглядеть следующим образом:
На форме создаются два текстовых окна. Одно для ввода названия региона, другое – для вывода найденного кода. К каждому из этих окон для удобства ввода добавлены соответствующие комментирующие надписи – элементы Label (Надпись).
После запуска программы от пользователя требуется ввести в поле «Регион» название региона и щелкнуть по кнопке «Запрос». В поле «Код» будет выведено значение кода. Если введенное название региона отсутствует в справочнике, то в поле «Регион» должно появиться сообщение — "Такого региона нет в справочнике".
Кнопка «Выход» предназначена для выхода из программы.
Ниже приведены тексты процедур для соответствующих кнопок.
Private Sub Command1_Click() ‘ Кнопка «Запрос»
r = Text1.Text
Select Case r
Case "Москва"
Text2.Text = "77"
Case "Чувашия"
Text2.Text = "21"
Case "Владимир"
Text2.Text = "33"
Case Else
Text1.Text = "Такого региона нет в справочнике"
End Select
End Sub
Private Sub Command2_Click() ‘ Кнопка «Выход»
End
End Sub
4.5. Задания на конструкцию Select Case
Нечетные номера решают прямую задачу, четные — обратную.
1 – 2. Задан справочник, содержащий названия городов и их междугородний телефонный код. Составить программу, которая по введенному коду определяет название города.
3. – 4. Задана следующая шкала эффективности внедрения новых технологий (%).
0-10 |
11-25 |
26-50 |
51-100 |
>100 |
невысокая |
средняя |
высокая |
очень высокая |
революционная |
Составить программу, которая по введенной величине эффективности технологии выдает ее словесную характеристику.
5.– 6. Составить программу, которая по введенному названию дню недели выдает его порядковый номер.
7. – 8. Составить программу, которая по введенному времени суток выдает их словесную характеристику в соответствии со следующей шкалой:
5.00 — 9.00 |
9.00 — 19.00 |
19.00 — 23.00 |
23.00 — 5.00 |
Утро |
День |
Вечер |
Ночь |
9. – 10. Составить программу, которая по введенному времени выводит название мероприятия:
7.00 -7.30 7.30 – 8.00 8.00 – 9.00 9.00 – 9.20 9.20 – 12.00 12.00 – 13.00 13.00 – 14.30 14.30 – 14.50 14.50 – 16.00 |
Оперативное совещание Выдача заданий Селекторное совещание Первый ленч Разработка проектовОбед Анализ проектов Второй ленч Анализ итогов рабочего дня |
11. – 12. Составить программу, которая по введенному номеру месяца выводит его название.
13. – 14. Составить программу, которая по введенному библиотечному индексу выводит название предметной области в соответствии со следующей таблицей:
10 |
История |
20 |
Математика |
30 |
Физика |
40 |
Химия |
50 |
Биология |
Тема 5. Циклы
5.1. Общие сведения
В программировании под циклами понимается многократное повторение одних и тех же действий. В теории алгоритмов определено две базовых циклических конструкции.
1. Цикл «ПОКА» — рис.1.
Конструкция интерпретируется следующим образом:
На входе в цикл проверяется условие P и, если оно верно, то выполняются действие S. В противном случае происходит выход из цикла.
По этой причине такой цикл называется также циклом с предусловием.
2. Цикл «ДО» — рис.2.
Конструкция интерпретируется следующим образом:
Система входит в цикл, выполняет действие S и затем проверяет условие P. Если оно верно, то вновь выполняется действие S. Иначе происходит выход из цикла.
Конструкция называется также циклом с постусловием.
В обеих конструкциях действие S называется телом цикла и может состоять из одной или нескольких элементарных операций.
В Visual Basic для реализации циклов используются следующие операторы.
1) Оператор While …Wend
Является упрощенным вариантом цикла с предусловием. Общий формат:
While <Условие>
<Действие>
Wend
где Действие – любой набор операторов:
Условие – любое выражение с логическим результатом.
2) Оператор Do … Loop
Является циклом с условиями. Применяется в тех случаях, когда число повторений заранее неизвестно. Имеется несколько форматов:
a) Do <Действие> Loop While <Условие> |
b) Do <Действие> Loop Until <Условие> |
c) Do While <Условие> <Действие> Loop |
d) Do Until <Условие> <Действие> Loop |
где
Действие – любой набор операторов:
Условие – любое выражение с логическим результатом.
Ключевые слова While и Until определяют вид цикла.
Первое — определяет цикл «Пока». При его использовании цикл выполняется пока условие верно.
Второе – определяет цикл «До тех пор». При его использовании цикл выполняется до тех пор, пока условие не станет верным.
Вариант размещения ключевых слов зависит от программиста и определяется легкостью понимания создаваемого цикла.
Из рассмотрения работы циклов следует важное правило организации подобных циклов:
— действия, выполняемые внутри цикла, должны как-то влиять на условие. Если этого не происходит, то цикл станет бесконечным.
3) Оператор For…Next
Применяется в тех случаях, когда число повторений заранее известно. Общий формат:
For <Начальное значение > To <Конечное значение> Step <Шаг>
<Действие>
Next
где
Начальное и конечное значения – начальные и конечные значения
переменной, управляющей циклом;
Шаг – величина изменения управляющей переменной.
Если величина шага опущена, то он принимается равным +1;
Действие – любой набор операторов.
Например:
For I = 1 To 10
Print I
Next
Или
For I = 10 To 1 Step -1
Print I
Next
Цикл For..Next является разновидностью цикла «ПОКА». В учебной литературе его описание на языке блок-схем выглядит следующим образом – рис 3.
Для управления циклом служит некоторая переменная, для которой задаются начальное и конечное значения и шаг изменения.
Работа цикла происходит следующим образом:
1. При входе в цикл текущее значение переменной принимается равным начальному.
2. Если текущее значение переменной больше конечного, то происходит выход из цикла.
3. Если текущее значение переменной меньше конечного, то выполняется тело цикла – S, затем к текущему значению переменной добавляется шаг цикла и система переходит на п.1.
Пример
На первый курс факультета было принято K студентов. Из них K1 студентов были очень большими любителями клуба веселых и находчивых (КВН). Благодаря своей активности они каждый семестр привлекали в свои ряды по N% студентов из числа тех, кто еще не участвовал в работе клуба.
Определить, сколько студентов будет участвовать в работе КВН к концу пятого курса.
Алгоритм решения задачи представлен на схеме.
Прокомментируем алгоритм.
1. После ввода исходных данных вычисляется численность студентов, не участвующих в КВН — S.
2. Затем организуется цикл с десятью повторениями (10 семестров!).
3. При каждом проходе цикла (в каждом семестре) к участвующим в КВН (K1) добавляется N% не участвующих и вычисляется, сколько же осталось еще не вовлеченных студентов.
4. По окончании цикла выводится результат.
Интерфейс программы
Программная реализация
Private Sub Command1_Click() ’Кнопка «Расчет»
K = Val(Text1.Text)
K1 = Val(Text2.Text)
N = Val(Text3.Text)
S = K — K1
For T = 1 To 10
K1=K1+S*N/100 ‘Сколько стало КВН-щиков
S=K—K1 ‘Сколько осталось не КВН-щиков
Next
Text4.Text = Int(K1)
End Sub
Обратите внимание на последнюю команду процедуры:
– для того, чтобы не выводить дробное количество людей, использована функция Int(), которая округляет результат вычисления до целого числа.
Private Sub Command2_Click() ‘ Кнопка «Выход»
End
End Sub
5.2. Задания
Всякие совпадения с реальными лицами являются случайными…
Из титров к американским блокбастерам.
Номер задания соответствует номеру студента по классному журналу.
1. Злой декан
На первый курс факультета принимается K студентов. Каждую сессию N% студентов потока получают хотя бы одну двойку. Безжалостный декан всех их тут же отчисляет. Определить сколько студентов останется на потоке к концу пятого курса.
2. Добрый декан
На первый курс факультета принимается K студентов. Какая-то часть из них во время сессий получают двойки. Но, жалея студентов (особенно мальчиков – им все-таки грозит армия) декан дает возможность всем пересдать свои хвосты. Кроме того, ввиду своей доброты он на каждый курс принимает по N% человек от общего количества студентов на курсе. Определить сколько студентов будет на потоке к концу пятого курса.
3. Справедливый декан
На первый курс факультета принимается K студентов. Каждую сессию N1% студентов на потоке получают хотя бы одну двойку. Деканат дает возможность пересдачи полученных хвостов. С этой задачей справляются только N2% студентов. Остальных приходится отчислять. Определить сколько студентов будет на потоке к концу пятого курса.
4. Умный декан
На первый курс факультета принимается K студентов. Каждую сессию N1% студентов получают хотя бы одну двойку. Деканат дает возможность пересдачи полученных хвостов. С этой задачей справляются N2% студентов. Кроме того, для привлечения на факультет денег на каждый курс со стороны принимается по N студентов. Определить сколько студентов получит диплом в конце пятого курса.
5. Интеллигентный декан
На первый курс факультета принимается K студентов. Каждую сессию N1% студентов на потоке не сдают сессию вовремя. По положению о высшей школе декан должен их отчислять. Но за N2% хвостистов приходят просить родители (или кто-то звонит сверху). Главная беда всех интеллигентов – это неумение говорить «нет». Поэтому декан всех студентов, за которых кто-то хлопочет, восстанавливает на курсе. Остальных приходится отчислять окончательно.
Определить сколько студентов останется на потоке к концу пятого курса.
6. Деловой декан
На первый курс факультета принимается K студентов. Каждую сессию N1% студентов на потоке не сдают сессию вовремя. По положению о высшей школе декан должен их отчислять. Но у N2% хвостистов (почему-то одних и тех же) родители крутые бизнесмены. Они приходят в деканат и договариваются о спонсорской помощи факультету.
В результате такой договоренности хвостисты благополучно продолжают учиться дальше, а на факультете появляются отделанные под евростандарт учебные классы.
Определить сколько современных классов появится на факультете к концу пятого курса.
7. Принципиальный декан
На первый курс факультета принимается K студентов. Каждую сессию N1% студентов на потоке не сдают сессию вовремя. По положению о высшей школе декан должен их отчислять. У N2% хвостистов очень крутые родители. Они пытаются (сами или через кого-то) договорится с деканом о поблажках для своего чада. Но декан, с его устаревшими принципами, стоит насмерть и отчисляет всех, невзирая на лица.
Определить сколько жалоб на этого декана накопится в ректорате к концу пятого курса, если учесть, что жалобы пишут только крутые родители.
8. Наивный декан
После каждой сессии на факультете численностью K студентов остается по M% не пересданных вовремя двоек. Декан вызывает всех несдавших и берет с них слово, что они свои хвосты пересдадут в течение последующих сессий. Все естественно это дружно обещают. Разумеется, что все обещания тут же забываются, как только закрывается дверь деканата.
Пользуясь неразберихой в документообороте, такие студенты благополучно добираются до конца пятого курса. Здесь выясняется, что диплом они получить не могут пока не будут ликвидированы все академические задолженности. Для пересдачи хвостов срочно мобилизуются все преподаватели.
Подсчитать сколько времени придется сидеть этим преподавателям, если на пересдачу одного экзамена уходит 15 минут.
9. Спортивный декан
На первый курс факультета принято N студентов, из которых K человек являются спортсменами. Каждую сессию N1% студентов на потоке получают хотя бы одну двойку. Декан (сам бывший спортсмен) очень заботится о спортивной славе факультета. Поэтому, если хвостист является спортсменом, то декан, используя все свое влияние, организует для них гарантированную пересдачу. Остальных он просто отчисляет.
Определить сколько студентов останется на потоке к концу пятого курса, если среди двоечников N2% спортсменов.
10. Несовременный декан
На первый курс факультета принимается K студентов на коммерческой основе. Каждую сессию N% из них не сдают сессию вовремя. Следуя привычкам советских времен декан благополучно отчисляет этих студентов.
Определить какую сумму недобирает вуз из-за не современности декана (т. е. разницу между суммами, которые мог бы получить факультет, если бы никого не отчисляли и реально полученными суммами). Плата за обучение равна S руб./семестр.
11.Женщина декан
Жила-была преподавательница вуза. И все у нее было – и вовремя защищенная диссертация, и муж, и прекрасные дети. Но однажды некая шустрая студентка по имени Татьяна увела у нее мужа. Рухнувшее семейное счастье она заменила тем, что с головой ушла в работу и довольно быстро стала деканом.
Одним из следствий этих событий стало, то что, если очередной хвостист был девушкой по имени Татьяна, то она немедленно отчислялась. Остальным же давалась возможность пересдачи.
Определить сколько Тань останется на факультете к концу пятого курса при следующих условиях:
— на первом курсе было K студентов из них K1 девушек с именем Таня;
— каждую сессию N1% студентов получают двойки;
— доля Татьян среди хвостистов пропорциональна их доле на факультете.
12.Мужчина декан
Некий декан питал слабость к имени Наташа – так звали его первую любовь. Поэтому, если очередную двоечницу звали Наташей, то он делал все, чтобы она осталась в вузе. Остальные двоечники и двоечницы отчислялись по всем правилам.
Определить долю Наташ на пятом курсе при следующих условиях:
— на первый курс принималось K студентов и среди них было N девушек с именем Наташа;
— каждую сессию N1% студентов получают двойки;
— доля Татьян среди двоечников пропорциональна их доле на факультете.
Тема 6. Массивы
6.1. Общие сведения
Массивом называется набор переменных одного типа с одинаковым именем. Элементы массива отличаются друг от друга индексом (номером), который указывается в круглых скобках. В отличие от простых переменных объявление массивов в Visual Basic обязательно.
Для объявления используется следующая инструкция:
Dim <Имя массива> (Размерность массива) As <Тип >
Например:
Dim A(10) As Integer – объявлен массив с именем А, состоящий из десяти
целочисленных элементов.
Dim X (20) As Double – объявлен массив с именем Х, состоящий из двадцати элементов.
Dim S(5) As String – объявлен массив с именем S, состоящий из пяти
элементов строкового типа.
6.2. Основные алгоритмы работы с массивами
Внимание!
Рассмотренный далее пример следует обязательно выполнить и затем использовать его в качестве заготовки при выполнении своих вариантов заданий.
Рассмотрим следующую задачу.
Для пяти факультетов имеются сведения о количестве принятых на первый курс студентов. Определить общее количество принятых студентов, факультеты, на которые принято максимальное и минимальное количество студентов и среднее количество студентов, принятых на каждый факультет.
В общем случае алгоритм решения любых задач выглядит следующим образом:
Приведенная схема носит слишком общий характер, поскольку в ней нет никаких указаний о том, как все-таки решать задачу. В ней просто продекларированы основные цели поставленной задачи.
Нам же необходим алгоритм, содержащий конкретные действия, приводящий к решению задачи. Ввиду особенностей задачи, практически модуль блок-схемы заслуживает отдельного алгоритма.
Кроме того, сложность задачи приводит в некоторых случаях к необходимости нарушения порядка в основном принципе алгоритмизации:
сначала алгоритм, а потом программа.
В данном случае при первичном рассмотрении темы целесообразнее сначала рассмотреть программную реализацию и только затем по созданной программе составить алгоритм.
При этом обучаемый знакомится с основными возможностями исполнителя алгоритма по реализации алгоритмических конструкций и в дальнейшем уже будет способен разрабатывать сначала алгоритм, а затем программу.
1. Алгоритм ввода массивов данных в программу
По условию задачи у нас имеется два массива данных – количество принятых студентов для пяти факультетов и названия факультетов.
Для их объявления в программу вписывается следующий текст:
Dim Number(5) As Integer (1)
Dim Facultet(5) As String
К сожалению, из-за ограничений в доступе к системным ресурсам на учебных ЭВМ у нас нет возможности создать полноценный интерфейс, позволяющий вводить данные с клавиатуры так, как это делается, например, в Excel.
Самым простым вариантом является прямое присваивание значений элементам массива в программе.
Для рассматриваемой задачи этот вариант выглядит следующим образом.
Для названий факультетов:
Facultet(1)=”ФФК”:Facultet(2)=”БХФ”
Facultet(3)=”ФМФ”:Facultet(4)=”ПМНО” (2)
Facultet(5)=”ФИЯ”
Для численности студентов на них:
Number(1)=75:Number(2)=50
Number(3)=125:Number(4)=200 (3)
Number(5)=130
Обратите внимание – для экономии места (на бумаге и в программе) ряд команд записаны в одной строке через двоеточие.
При запуске программы присвоенные в ней значения массивов остаются «внутри нее» и не выводятся на экран. Для визуального же контроля расчетов целесообразно эти значения вывести на экран.
Самый простой вариант вывода – это печать массивов прямо на форме. Для этого очень удобен оператор цикла:
For I = 1 to 5
Print Facultet(i), Number(i) (4)
Next
Описанные команды реализуют первый модуль общей схемы решения задачи. В виде алгоритма это выглядит следующим образом:
2 Алгоритм вычисления общего количества студентов
На рис. 3. представлена блок-схема алгоритма вычисления общего количества студентов.
В виде программы алгоритм можно записать:
S=0
For I = 1 to 5
S = S +Number( I ) (5)
Next
3. Алгоритм нахождения факультетов с минимальным и максимальным количеством студентов
На рис. 4. представлена блок-схема алгоритма нахождения факультета с максимальным количеством студентов.
Программная реализация алгоритма:
Max = Number (1): Imax = 1 (6)
For I = 2 to 5
If Number( I ) > Max Then Max = Number( I ): Imax = i
Next
Print Facultet( Imax)
Комментарий к алгоритму:
— переменная Max служит для хранения максимального количества студентов. В начале ей присваивается количество студентов, находящихся на первом факультете;
— переменная Imax служит для хранения номера факультета с максимальным количеством студентов. Поначалу ей также присваивается номер первого факультета:
— в цикле (начиная со второго номера) просматриваются численности других факультетов и если численность очередного факультета больше максимального значения, то значения переменных переприсваиваются.
— в конце выводится название факультета с найденным максимальным номером.
Задание.
Разработайте алгоритм и программу нахождения факультета с минимальным количеством студентов.
4. Алгоритм нахождения среднего количества студентов
Данный модуль общей схемы решения задачи не заслуживает отдельной блок-схемы. Алгоритм вычисления среднего сводится к расчету по формуле:
Среднее = Общее количество студентов / Количество факультетов
Или в терминах объявленных переменных:
Srednee = S / 5 (7)
5. Вывод результатов расчетов
Данный модуль также не заслуживает блок-схемы. Алгоритм модуля заключается в последовательной печати на форме результатов вычислений:
Print “Общее количество студентов = ”; S (8)
Print “Факультет с максимальным количеством — ”;Facultet(Imax)
Print “Факультет с минимальным количеством -”;Facultet (Imin)
Print “Среднее количество студентов = ”; Srednee
Программная реализация
Ввиду того, что для вывода использовался очень простой способ интерфейс программы также очень прост – на форме создаются только две кнопки «Расчет» и «Выход».
Для кнопки «Выход» используется стандартная команда End:
Private Sub Command2_Click()
End
End Sub
В заготовку процедуры для кнопки «Расчет» скопировать блоки команд (2) – (8) и написанный Вами набор команд для нахождения факультета с минимальным количеством студентов.
В самое начало окна кода скопировать блок объявления массивов (1).
6.3. Задания (Жизнь – прекрасна!)
1. День рождения
Активистка группы Маша занялась организацией дня рождения своей подруги Даши. Для этого она обошла своих сокурсников с информацией о будущем торжестве и предложением сдать деньги на подарок (кто сколько даст). В мероприятии пожелали участвовать 6 человек. В результате получился список вида: имя – сумма.
Определить общую сумму, собранную на подарок, а также имена тех, кто сдал самое большое и самое малое количество денег.
2. Работа и путешествия
Организация “Travel & Work” предоставила список из 10 стран, в которых можно поработать в летнее время, и стоимости проезда в указанные страны. Получив этот список и изучив условия проезда мечтательная Даша решила, не утруждать себя работой, а просто объездить эти страны, посмотреть на мир, себя показать…
Определить в какую сумму обойдется Даше это турне по миру. Определить также страны с максимальной и минимальной стоимостью проезда.
3. Контрольная работа
Самое скверное в процессе учебы — это контрольные работы. В группе, где учились Маша и Даша, это мероприятие усугублялось излишне въедливой и придирчивой преподавательницей.
Во время очередной контрольной она разделила все ошибки на пять групп:
— орфографические;
— синтаксические;
— стилистические;
— общекультурные (это когда в качестве столицы Франции указан Лондон);
— прочие.
После очередной контрольной Даша и Маша получили мало порадовавшие их оценки и в придачу к ним список ошибок по каждой группе.
Определить, кто из подруг сделал большее количество ошибок, и ошибок какой группы оказалось больше всего.
4. Студвесна
Одной из отдушин в этой унылой и серой жизни является студенческая весна. Этот праздник проводится почти одновременно (но все-таки в разное время) во всех вузах города. Обычно, эти мероприятия проводятся вечером. Поскольку факультет также занимается во вторую смену, то в дни проведения студвесен, на занятиях почему-то бывает очень мало студентов.
Дан список вузов города, дни в которые они проводят свою студенческую весну, и соответствующее количество занятий в эти дни у Маши и Даши.
Определить сколько всего занятий пропустят подруги и вузы, пользующиеся наибольшей и наименьшей популярностью.
5. Зачетная сессия
Известно, что для получения зачета приходиться делать несколько заходов. Количество заходов зависит от степени свирепости преподавателя.
Имеется список зачетов, принимающих эти зачеты преподавателей и количество заходов, которые пришлось сделать, чтобы получить соответствующий зачет.
Определить фамилию самого свирепого преподавателя и предмет, зачет по которому был получен наиболее легко.
6. Экзаменационная сессия
Имеется список предметов, сдаваемых во время сессии, и полученных по этим предметам оценок. Определить средний балл, полученный во время сессии, и предметы, по которым получены наиболее высокие и наиболее низкие оценки.
7. Студенческие обычаи
Леша был единственным гуманитарием среди своих бывших одноклассников. От насмешек недалеких технарей его спасал только один довод – на гуманитарных специальностях очень развиты программы по международному студенческому обмену. Благодаря этому он уже успел побывать в нескольких странах.
В этих странах ему запомнились различия в особенности приветствий студентов. В России – хорошие друзья при встрече целуются, в США — обнимаются, в Дании – девушки делают книксен, а юноши – благородный кивок, во Франции – посылают друг другу воздушные поцелуи.
Просыпающиеся мужские инстинкты Леши выставили всем этим способам приветствий следующие баллы (по величине привлекательности):
— жаркие объятия раскованных американских ровесниц – 8 баллов;
— мимолетные поцелуи российских студенток – 5 баллов;
— чопорные датские книксены – 1 балл;
— фривольные французские воздушные поцелуи – 3 балла.
Имеются данные о том, сколько раз поприветствовали Лешу в каждой стране.
Определить в какой стране он получил больше всего баллов.
8. Студенческие приметы
Для того, чтобы успешно сдать экзамен существует ряд проверенных способов. Одним из самых надежных является: идя на экзамен, следует в обувь под пятку положить монетку.
Студент Леша решил проверить данную примету. После поездок за рубеж у него осталось несколько образцов иностранных валют. Поэтому, идя на очередной экзамен, он поочередно подкладывал в обувь то российский рубль, то американский доллар, то датскую крону, то испанский песо. В результате было получено четыре разных оценки.
Определить какую валюту он будет использовать в очередной сессии в первую очередь, и какой валютой уже больше никогда не воспользуется.
9. Очень важная контрольная
Маша безнадежно опаздывала на очень важную контрольную. Провожая отчаянным взглядом очередную переполненную маршрутку она услышала, как ее кто-то окликнул. Оглянувшись, она увидела, что из роскошного Volvo ей машет рукой ее бывший одноклассник Вовочка — отчаянный хулиган и двоечник. Он с полуслова понял в чем дело и предложил подвезти ее.
А в это время из-за болезни преподавателя контрольную отменили и вся группа, еще плохо верящая свалившемуся счастью, высыпала на крыльцо института. И тут из блистающей иномарки выпорхнула Маша.
Женский коллектив группа тут же начал активно завидовать ей.
Имеются список Машиных однокурсниц и список того, сколько раз каждая из них позавидовала.
Определить общее количество завидок и самую завидущую подругу.
10. День открытых дверей
В назначенный деканатом день часть студентов освободили от занятий. На это время их единственной заботой стали рассказы толпам нахлынувших акселератов о том, как хорошо учиться у них на факультете, какие у них чудесные преподаватели, какие перспективы откроются у них по окончании института и т. д.
Результатом их деятельности стал отчет деканату, в виде списка имен студентов и количества потенциальных абитуриентов с которыми они побеседовали.
Определить общее количество побывавших в институте школьников, а также имена студентов, побеседовавших с наибольшим и наименьшим количеством школьников.
11. Демократичный декан
Декан на факультете был очень современен и демократичен. Он четко следовал принципу: мухи – отдельно, а котлеты – отдельно. Выражалось это, например, в том, что даже после самого жестокого разноса на коллоквиуме он мог пригласить к себе в кабинет тех же студентов и за душевной беседой напоить их чаем.
Однажды, примерно в такой же ситуации, он привел к себе измученных студентов на отпаивание чаем. Но, сунувшись в сервант с чайными принадлежностями, он обнаружил полное отсутствие сахара.
Уставший не менее самих студентов декан сорвался и без всякой задней мысли разразился тирадой в отношении тех, кто пьет чаи и не восстанавливает запасы сахара, и что никакой деканской зарплаты не хватить обслуживать весь факультет.
Студенты как всегда поняли все правильно.
Буквально на следующий день в деканат потянулись студенты с кульками сахара различных размеров (поговаривают даже, что папаша одного студента подвез пару мешков).
Имеется список студентов с указанием количества принесенного ими сахара. Определить сколько сахара скопилось в деканате, и кто принес его больше всех.
12.Вперед! На Запад!
В связи с присоединением к Болонскому соглашению ректорат решил сделать в вузе все как у людей (то бишь в США). По части размера оплаты за обучение и дебилоподобности тестов мы их практически догнали. Остался один важный пункт – обеспечение спортивной славы вуза. Учитывая специфику гуманитарного факультета ректорат постановил, что из студенток данного факультета будут формироваться группы поддержки.
Одно только не было учтено – менталитет российских девушек – несмотря на обещания автомата по физкультуре далеко не каждая из них согласилась прыгать полуголой при большом стечении народа.
Дан список групп, их численность и количество студенток, согласившихся участвовать в группе поддержки. Определить не разгневается ли декан факультета, если по спущенной сверху разнарядке в группах поддержки должно участвовать не менее 40% студенток.
Тема 7. Работа со строковыми переменными
7.1. Общие сведения
В Visual Basic имеются следующие функции обработки строк.
Таблица 7.1
Функция |
Формат и назначение |
Пример |
Результат |
1 |
2 |
3 |
4 |
& |
Слияние строк |
«При» & «вет» |
«Привет» |
Asc |
Asc(S) – возвращает ASCII-код первого символа строки S |
Asc(«a») (a – латинское) |
97 |
Chr |
Chr(N) – возвращает символ с ASCII-кодом, равным N |
Chr(97) |
«a» (латинское) |
Lcase |
LCase(S) – преобразует все символы строки S к нижнему регистру |
LCase(«STUDENT») |
«student» |
UCase |
UCase(S) – преобразует все символы строки S к верхнему регистру |
Ucase(«student») |
«STUDENT» |
Left |
Left(S, K) – возвращает K символов, вырезанных из строки S слева |
Left(«Привет», 3) |
«При» |
Right |
Right(S, K) – возвращает K символов, вырезанных из строки S справа |
Right(«Привет», 3) |
«вет» |
Mid |
Mid(S, N, K) — возвращает строку длиной K символов, вырезанную из строки S начиная с N–ой позиции |
Mid(«Привет», 3, 2) |
«ив» |
Len |
Len(S) – возвращает длину строки S в символах |
Len(«Привет») |
6 |
Ltrim |
LTrim(S) – удаляет в строке S все начальные пробелы |
Ltrim(«Привет») |
«Привет» |
Rtrim |
RTrim(S) – удаляет в строке S все конечные пробелы |
RTrim(«Привет») |
«Привет» |
Trim |
Trim(S) — удаляет в строке S все начальные и конечные пробелы |
Trim(«Привет» |
«Привет» |
Space |
Space(K) – возвращает строку, состоящую из K пробелов |
Space(6) |
« » |
Продолжение таблицы 7.1
1 |
2 |
3 |
4 |
String |
String(K, С) – возвращает строку состоящую из K символов С. |
String(6, «a») |
«aaaaaa» |
StrComp |
StrComp(S1, S2, [Р]) — возвращает результат сравнения строк S1 и S2. Параметр Р определяет способ сравнения, равный 0 (посимвольное сравнение) или 1 (без учета регистра символов). При S1<S2 возвращает -1 При S1=S2 возвращает 0 При S1>S2 возвращает 1 |
StrComp(«1», «a») |
-1 |
StrReverse |
StrReverse((S) – преобразует строку в строку из тех же символов, записанных в обратном порядке |
StrReversr(«ток») |
«кот» |
InStr |
InStr([N], S1, S2, [P]) – возвращает позицию первого вхождения строки S2 в строку S1 начиная с позиции N. Если N не указана, то поиск начинается с первой позиции. Р – определяет критерий поиска и может быть равен 0 или 1 |
InStr(«мама», «а») |
2 |
InStrRev |
InStrRev(S1, S2, [N], [P]) – то же, что и предыдущая функция, но возвращается последнее вхождение |
InStrRev(«мама», «а») |
4 |
Replace |
Replace(S, S1, S2, [K], [N], [P]) Находит в строке S подстроку S1 и, заменяет ее, на подстроку S2. Поиск подстроки S1 начинается с позиции K. По умолчанию поиск начинается с первого символа. N – определяет количество замен. По умолчанию заменяются все найденные подстроки. P – критерий поиска. Может принимать значения 0 или 1. По умолчанию – 0. Если 0, то замена производится только в случае полного совпадения. Если 1, то замена производится без учета регистра |
Replace(«папа», «п», «м») |
«мама» |
7.2. Примеры
Пример 1.
Даны фамилия имя и отчество человека. Составить сокращенную запись его данных. Например, если дано Иванов Петр Андреевич, то необходимо получить Иванов П. А.
Текст программы:
Private Sub Command1_Click()
S1 = InputBox("Введите фамилию", "Ввод фамилии")
S2 = InputBox("Введите имя", "Ввод имени")
S3 = InputBox("Введите отчество", "Ввод отчества")
C1 = Mid(S2, 1, 1) ‘ Вырезаются первые буквы
C2 = Mid(S3, 1, 1) ‘ из имени и отчества
‘ и объединяются в нужном порядке с фамилией, пробелами и
‘ точками
S1 = S1 & " " & C1 & ". " & C2 & "."
Print S1
End Sub
Пример 2.
Дана фраза. Выяснить, сколько слов в ней содержащих мягкий знак?
Текст программы:
Private Sub Command1_Click()
S = InputBox("S-", "Ввод фразы") ‘ Вводится фраза
L = Len(S) ‘ Определяется ее длина
For I = 1 To L ‘ В цикле вырезается по одному
If Mid(S, I, 2) = "ь" Then ‘ символа и проверяется на «ь»
K = K + 1
End if
Next
Print K
End Sub
Пример 3
Дана фраза. Слова в ней разделены одним пробелом, а сама фраза заканчивается точкой. Выяснить, сколько в ней трехбуквенных слов?
Текст программы:
Private Sub Command1_Click()
S = InputBox("S-", "Ввод фразы") ‘ Вводится фраза
L = Len(S) ‘ Определяется ее длина
For i = 1 To L ‘ В цикле вырезается
S1 = Mid(S, i, 5) ‘ по пять символов
‘ и в вырезке проверяются первый и пятый символы.
‘ Если это пробелы (или пятый точка), то слово трехбуквенное
If Mid(S1, 1, 1) = " " And Mid(S1, 5, 1) = " " Or Mid(S1, 5, 1) = "." Then
K = K + 1
End if
Next
Print K
End Sub
7.3. Задания
Номера заданий соответствуют номеру студента по классному журналу.
Во всех заданиях вводится фраза, в которой слова разделены одним пробелом, а сама фраза заканчивается точкой.
1. Дана фраза. Выяснить сколько в ней имен собственных (начинающихся с заглавной буквы).
2. Дана фраза. Выяснить, сколько в ней цифровых символов?
3. Дана фраза. Выяснить, является ли она палиндромом (одинаково читается слева направо и справа – налево)?
4. Дана фраза. Выяснить сколько раз в ней встречается ситуация, когда последняя буква очередного слова совпадает с первой буквой следующего слова.
5. Дана фраза. Выяснить, сколько в ней прилагательных в единственном числе, т. е. слов, оканчивающихся на «-ый», «-ая» и «-ое»?
6. Дана фраза. Определить, сколько в ней символов-разделителей (пробелов, точек, тире, запятых и т. д.)?
7. Дана фраза. Определить, сколько в ней букв (к буквам не относятся символы-разделители — пробелы, точки, тире, запятые и т. д.)?
8. Дана фраза. Определить, сколько в ней «эмоциональных» символов (восклицательных и вопросительных знаков)?
9. Дана фраза. Определить, имеются ли в ней числа, состоящие из одной цифры?
10. Дана фраза. Определить, имеются ли в ней симметричные пятибуквенные слова?
11. Дана фраза. Определить сколько в ней наречий (слов, оканчивающихся на букву «о»)?
12. Дана фраза. Определить, сколько в ней союзов и однобуквенных местоимений?
13. Дана фраза. Зашифровать ее, записав все ее символы в обратном порядке.
14. Дана фраза. В ней между словами может быть и по одному и по два пробела. Преобразовать ее так, чтобы между словами осталось по одному пробелу.
15. С клавиатуры вводятся три слова. Вывести на экран все возможные фразы, которые можно составить из этих трех слов.
Тема 8. Графика в Visual Basic
8.1. Общие сведения
В Visual Basic имеется очень много возможностей для создания изображений. Имеется три основных способа:
1) Вставка в форму (или на управляющие элементы) готовых изображений из графических файлов, как на этапе проектирования формы, так и в процессе работы программы.
2) Создание рисунка с помощью элементов управления Line и Shape. При использовании данного способа создание изображения просто сводится к работе, аналогичной работе в графическом редакторе. Процесс может быть выполнен без использования программного кода.
3) Создание рисунка с помощью графических операторов. Этот способ требует знания графических операторов и определенных навыков программирования.
Рассмотрим эти способы.
Вставка рисунков из готовых графических файлов.
Это наиболее простой метод, который можно осуществлять как на этапе проектирования, так и программным способом. Для его реализации необходимо сначала вставляемый рисунок либо создать в каком-либо графическом редакторе, либо взять готовый.
Рисунок можно вставлять прямо на форму.
Если рисунок вставляется на этапе проектирования, то все сводится к стандартному копированию и вставке через буфер обмена. Последовательность операций такова:
— в графическом редакторе (например, в Paint) выделяется рисунок и нажимается CTRL+C;
— в Visual Basic выделяется форма и нажимается CTRL+V.
Для вставки рисунка программным способом достаточно включить в нужное место программы команду:
Private Sub Command1_Click()
Form1.Picture = LoadPicture("d:specialsun. bmp")
End Sub
Но лучше для вставки рисунка использовать специально предназначенный для отображения рисунков элемент управления — Image. У этого элемента имеется набор свойств, позволяющих управлять параметрами и свойствами вставляемого рисунка.
Например:
Private Sub Command1_Click()
Image1.Stretch = True
Image1.Picture = LoadPicture("d:specialsun. bmp")
End Sub
В данном примере свойство Stretch позволяет масштабировать вставляемый рисунок под размеры элемента управления.
Использование элементов управления Line и Shape.
В качестве примера рассмотрим создание на поверхности формы рисунка, состоящего из трех воздушных шариков – см. рисунок.
При создании рисунка трижды повторяется следующая последовательность операций:
а) с панели инструментов поочередно выбирается элемент управления Shape и рисуется шар в нужном месте экрана;
б) в окне свойств — свойство Shape устанавливается в значение Oval;
в) в окне свойств – c помощью свойства FillColor выбирается цвет заливки;
г) в окне свойств – с помощью свойства FillStyle выбирается стиль заполнения. Его значение устанавливается равным Solid (сплошная заливка).
Аналогично рисуются нити шариков. С использованием элемента управления – Line.
Кнопка на форму добавлена для обеспечения нормального выхода из программы. В процедуре, с которой связана данная кнопка, находится единственная команда – End (окончание работы).
Private Sub Command1_Click()
End
End Sub
8.2. Задания
В качестве заданий предлагается воспроизвести приведенные далее фигуры.
1. 2. 3.
4. 5. 6.
7. 8. 9.
10. 11. 12.
13. 14. 15.
Литература
1. А. Ю. Гарнаев. Visual Basic 6.0. Разработка приложений. – СПб.: БХВ — Петербург, 2001. – 448с.
2. Глушаков С. В., Мельников В. В., Сурядный А. С. Программирование в среде Windows: Учебный курс. — М.: АСТ, 2001. – 487с.
3. Компьютер для студентов, аспирантов и преподавателей. Самоучитель: Учебное пособие. /Под ред. В. Б. Комягина. – М.: ТРИУМФ, 2002. – 656с.: ил.
4. Симонович С. В., Евсеев Г. А. Занимательное программирование: Visual Basic. – М.: АСТ-ПРЕСС КНИГА: Инфорком — Пресс, 2002. – 320с.
5. Microsoft Visual Basic 5. Шаг за шагом: Практ. пособ. Изд. 2-е, исправленное. /Пер. с англ. – М.: ЭКОМ, 1998. – 432с.: ил.
6. Информатика: Основы программирования на Visual Basic. Лабораторный практикум для студентов всех форм обучения экономических и юридических специальностей./ Сост. Ванюлин А. Н., Лаврентьев Л. Ф., Серебрякова М. Л. ЧКИ МУПК. Чебоксары, 2002, 59с.
Содержание
ВВЕДЕНИЕ. 3
Тема 1. Знакомство со средой программирования. 4
1.1. Запуск Visual Basic. 4
1.2. Управляющие элементы.. 6
1.3. Свойства элементов управления. 8
1.4. Создание интерфейса приложения. 9
1.5. Задание. 11
1.6. Создание программы.. 13
Тема 2. Ввод и вывод данных. Линейные алгоритмы… 16
2.1. Типы данных в Visual Basic. 16
2.2. Операции ввода/вывода. 18
2.3. Примеры.. 19
2.4. Задания. 23
Тема 3. Математические возможности Visual Basic. 25
3.1. Общие сведения. 25
3.2. Вычисления сложных выражений. 27
3.3. Задания. 28
Тема 4. Ветвления. 30
4.1. Общие сведения. 30
4.2.Оператор условного перехода. 31
4.3. Задания (две подружки) 36
4.4. Оператор выбора. 38
4.5. Задания на конструкцию Select Case. 42
Тема 5. Циклы… 45
5.1. Общие сведения. 45
5.2. Задания. 50
Тема 6. Массивы… 54
6.1. Общие сведения. 54
6.2. Основные алгоритмы работы с массивами. 54
6.3. Задания (Жизнь – прекрасна!) 61
Тема 7. Работа со строковыми переменными.. 66
7.1. Общие сведения. 66
7.2. Примеры.. 68
7.3. Задания. 69
Тема 8. Графика в Visual Basic. 71
8.1. Общие сведения. 71
8.2. Задания. 73
Литература.. 75
Содержание. 76
[1]Идея указана доц. В. И. Бараном.