БАЗЫ ДАННЫХ – ШАГ К УСПЕХУ Гевлич И.К., учитель информатики, МОУ «СОШ № 4», г. Балаково Пояснительная записка Элективный курс «Базы данных – шаг к успеху» предназначен для предпрофильной подготовки учащихся 9-х классов общеобразовательной школы. Концепция программы. Основной идеей элективного курса «Базы данных – шаг к успеху» является формирование у учащихся устойчивой потребности к дальнейшему совершенствованию своих знаний в области информационных технологий. Обоснование. Новый федеральный базисный учебный план (утвержден приказом Министерства образования России от 09.03.04 № 1312), разработанный на основе федерального компонента государственного стандарта общего образования, включает преподавание базового курса «Информатика и ИКТ» в основной школе. Данный элективный курс является предметным, он предполагает расширение одной из тем базового курса «Хранение, поиск и сортировка информации в базах данных», в рамках которой учащиеся знакомятся только с элементарными понятиями и способами организации простой базы данных; изменении её структуры; поиску и сортировки данных. Сегодня, когда информационный бум продолжает наращивать свои темпы, профессия инженера-проектировщика баз данных на рынке труда становится одной из наиболее востребованных и высокооплачиваемых специальностей. Умение проектировать базы данных от домашних до профессиональных, применяемых в малом бизнесе и крупных корпорациях, даст возможность учащимся легко адаптироваться в современном социуме. Особенности. Особенностью данного курса является организация индивидуальной и групповой работы учащихся с использованием метода проектов по овладению прочными и осознанными знаниями, в результате которой создается реальная база данных с возможностью дальнейшего практического применения. Усиление практической направленности обучения информатике в школе требует особого внимания к тем вопросам теории, которые служат базой для формирования информационной грамотности, основных навыков и умений работы с компьютером. Усвоение теоретических знаний осуществляется в практической деятельности учащихся при анализе, сопоставлении и группировке данных, создании индивидуальных и групповых баз данных в процессе самостоятельной деятельности. Основным методом обучения в данном элективном курсе является метод проектов. Данный метод является наиболее эффективным для активизации исследовательских, познавательных и творческих способностей школьников, развития их самостоятельной деятельности. Учитель дает минимальный объем нового материала, ставит задачу и в дальнейшем является лишь консультантом в процессе практической реализации проекта. Цели, задачи и основные принципы. Одной из основных целей изучения информатики и информационных технологий в основной школе является овладение умениями работать с различными видами информации с помощью компьютера и других средств информационных и коммуникационных технологий, организовывать собственную информационную деятельность и планировать её результаты. Цели: побудить интерес и внимание к проектированию и созданию информационных структур в повседневной деятельности человека; показать актуальность и значимость баз данных при дальнейшей информатизации общества; овладеть умением организовывать собственное информационное пространство. Задачи курса: дать учащимся представление о месте баз данных в информационном обществе познакомить с основными принципами построения баз данных; помочь овладеть навыками проектирования баз данных сформировать потребность в дальнейшем совершенствовании своих знаний в области создания баз данных. Основные принципы. 1. Принцип новизны – данный курс предоставляет учащимся знания, не содержащиеся в базовом курсе. 2. Принцип последовательности – каждая последующая тема курса является логическим продолжением предыдущей. 3. Принцип практичности – итоговый проект имеет практическое применение. 4. Принцип мотивированности – активизирует познавательный интерес учащихся и способствует выбору профессиональной ориентации. 5. Принцип генерализации информации – при отборе информации выделяется первостепенное, системообразующее, концентрируется внимание учащихся на основных понятиях и законах. 6. Принцип индивидуализации – эффективность развития личности прямо пропорциональна индивидуальной деятельности учащихся в ходе обучения. Основные знания и умения. Учащиеся должны знать: основы проектирования баз данных уметь, создавать базу данных в среде MS Access, импортировать и экспортировать данные, формировать запросы, создавать формы и отчеты. Планируемый результат. Результатом освоения данного курса учащимися является создание индивидуальной или групповой базы данных, которая имеет практическое применение. Содержание курса и особенности организации учебного процесса. Логика содержания элективного курса кратко может быть выражена следующим описанием: 1) рассматриваются основные принципы проектирования базы данных; показывается важность каждого этапа разработки проекта базы данных; 2) учащиеся знакомятся со способами построения базы данных в среде MS Access, с чисто инструментальным применением компьютера; 3) работа с данными в базе рассматривается по двум направлениям: запрос - выборка и импорт, экспорт и присоединение данных; 4) ввод и вывод информации в базу данных основан на использовании форм и отчетов, как основных структурных элементов. Данный элективный курс разбит на две части: теоретическую и практическую. Теоретическая часть включает минимальный лекционный материал, необходимый для реализации практической части. Многолетние педагогические эксперименты показывают, что эффективность в развитии творческих способностей учащихся прямо зависит использования возможностей и средств их самоуправления. Все, что школьники в ходе учебной деятельности способны выполнить без помощи извне, они должны выполнять самостоятельно. В связи с чем, особенностью организации учебного процесса по курсу является выделение на практическую часть более 60% всего времени изучения курса. Разработка каждого проекта реализуется в форме выполнения практической работы на компьютере. Кроме разработки проектов под руководством учителя учащимся предлагаются практические задания для самостоятельного выполнения различного уровня сложности. Кроме традиционной формы организации учебного процесса, где учитель и объясняет новый материал, и является консультантом при выполнении ими практических работ, учащиеся выполняют самостоятельные задания дома или после уроков в компьютерном классе. Система оценки достижений учащихся. Текущий контроль уровня усвоения нового материала проводится по результатам выполнения школьниками практических заданий, а итоговый контроль осуществляется путем защиты зачетного проекта базы данных, перечень которых прилагается. В начале курса каждому учащемуся предлагается самостоятельно в течение изучения данного курса разработать проект по созданию практической базы данных (Приложение № 2). Во время защиты учащийся должен представить действующую базу данных, доказать её практическую значимость. Учебно-тематический план Примерное тематическое планирование рассчитано на 12 учебных часов в урочной форме и 6 часов во внеурочной форме, т.е. в сумме на 18 учебных часов. На преподавание в 9-х классах из расчета 1 учебный час в урочной форме и 0,5 часа во внеурочной форме в неделю. Теория Проектирование и компьютерный практикум Разработка проекта базы данных – 1 ч. Постановка задачи Раздаточный материал Анализ данных Приложение № 2 Основные принципы проектирования базы данных Построение базы данных – 1 ч. Создание новой базы данных Раздаточный материал Определение таблиц Приложение № 3 Создание первичного ключа БД «Библиотека» Создание связей Ввод данных Работа с данными – 2 ч. Запрос - выборка Раздаточный материал Импорт и экспорт данных БД «Библиотека» Использование форм – 2 ч. Понятие формы Раздаточный материал Построение простой формы для ввода данных БД «Библиотека» Создание формы на базе запроса Разработка отчетов – 2 ч. Основные сведения об отчетах Раздаточный материал Создание простого отчета БД «Библиотека» Создание базового отчета Самостоятельная работа по созданию базы данных – 3 часа Защита итогового проекта – 1 часа Литература для учителя 1. Вейскас д. Эффективная работа с microsoft access 2 / перев. С англ. – СПб: Питер, 1995 2. Intel обучение для будущего при поддержке microsoft. Общая редакция Ястребцевой Е., Быховского Я., М.: Издательско-торговый дом «Русская редакция», 2004 3. Кучеряева Л.А. Структура урока. Структурный анализ урока. Саратов, 2002. 4. Симонович С., Евсеев Г., Алексеев А. Специальная информатика. Учебное пособие. М.: Астпресс, 1998 5. Семакин И., Шеина Т. Преподавание базового курса информатики в средней школе. Методическое пособие. М.: Лаборатория базовых знаний, 2002 6. Угринович Н. Преподавание курса «информатика и икт в основной и старшей школе 7 – 11» Методическое пособие. М.: Бином. Лаборатория знаний, 2004 Литература для учащихся 1. Вейскас Д. Эффективная работа с microsoft access 2/ пер. с англ. – СПб: Питер, 1995 2. Симонович С., Евсеев Г., Алексеев А. Специальная информатика. Учебное пособие. М.: Астпресс, 1998 Приложение Примерные планы разработки уроков Урок № 1. «Разработка проекта базы данных». Цель урока: дать навыки организации собственного информационного пространства Задачи урока: 1. Познакомить учащихся с основными принципами проектирования баз данных. 2. Продолжить работу над развитием логического мышления, умением анализировать и сравнивать информацию. 3. Воспитание эстетических чувств. Тип урока: усвоение новых знаний. Методы обучения: лекционный, частично-поисковый, проблемный. Формы организации учебных занятий на уроке: коллективная, индивидуальная. Средства обучения: рабочий бланк описания задачи, перечень тем по проектированию баз данных. Структура урока: 1. Организационный этап (2 мин.). 2. Подготовка учащихся к активному и сознательному усвоению нового материала (3 мин.). 3. Усвоение новых знаний (25 мин.). 4. Закрепление новых знаний (10 мин.). 5. Подведение итогов (5 мин.). Ход урока 1. Организационный этап Определение готовности учащихся к уроку. 2. Подготовка учащихся к активному и сознательному усвоению нового материала В основе современной научной картины мира лежат три составляющие, одной из которых является информация. Издавна человек стремился к её упорядочению, создавая списки, картотеки, архивы. Сегодня в современном обществе, когда рост объемов информации происходит в геометрической прогрессии, проблема систематизации, структурирования и организации поиска определенной информации становится одной из наиболее важных. Для решения данной проблемы стали создаваться базы данных, т.е. хранилища информации, организованные определенным образом. Базы данных играют особую роль в современном мире. Все, с чем мы ежедневно сталкиваемся в жизни, скорее всего, зарегистрировано в той или иной базе. Умение работать с базами данных сегодня является одним из важнейших навыков в работе с компьютером, а специалисты в этой области никогда не окажутся безработными. Даже дома вам необходимо некоторым образом упорядочить информацию, например о книгах, хранящихся в вашей библиотеке, или кассетах с любимыми песнями для удобства её использования. Создание любой реальной базы данных непременно связано с планированием, иначе на последующих этапах придется снова и снова переделывать созданную базу. Опытные программисты-практики советуют, прежде чем написать хоть одну строку программы стоит потратить не менее 60% всего необходимого для разработки времени на проектирование. Ознакомление учащихся с темой, целью и задачами урока. 3. Усвоение новых знаний На примере создания домашней базы данных «Моя библиотека», хранящей информацию обо всех книгах, рассмотрим основные этапы разработки проекта. 1 этап. Постановка задачи. Цель: систематизировать информацию обо всех книгах для удобства её использования. Основные задачи: Составление каталога по направлениям. Поиск книги. Учет книг. После определения всех задач нужно составить для каждой задачи описание всех данных, необходимых для её решения. В рабочий бланк описания задачи в графу «Имя элемента данных» запишем информацию, которую хотим получить на выходе, т.е. при решении данной задачи. В графе «Описание» укажем назначение данного элемента. Рабочий бланк описания задачи № 1 Наименование задачи: Составление каталога по направлениям Краткое описание: определение перечня книг с учетом литературного жанра Имя элемента данных Описание Автор Ф.И.О. автора Название Название произведения или книги Жанр Жанр литературного произведения Рабочий бланк описания задачи № 2 Наименование задачи: Поиск книг Краткое описание: организация поиска книги по условию Имя элемента данных Описание Стеллаж Номер стеллажа Полка Номер Номер полки стеллажа Порядковый номер книги на полке Рабочий бланк описания задачи № 3 Наименование задачи: Учет книг Краткое описание: Имя элемента данных Описание Автор Ф.И.О. автора Название Название книги Год издания Год издания книги Кому отдана Ф.И., кому книга была отдана Когда отдана Число, месяц, год, когда книга была отдана Возвращена Информация о возврате книги: «да» возвращена, «нет» - книгу не возвращали - 2 этап. Анализ данных. Сравнив все имена элементов данных можно составить одну таблицу, включив неё все необходимые данные, но тогда в разных записях этой таблицы информация будет повторяться. Например, одну и ту же книгу брали читать несколько друзей или разные книги написаны в одинаковом жанре. Если данные в разных записях таблицы начинают повторяться, это говорит о том, что таблица имеет плохую структуру. Надо подумать о том, нельзя ли разбить таблицу на группу связанных таблиц, определив или введя дополнительные данные, по которым они будут связаны. В результате анализа данных получим три таблицы: «Книги», «Жанр», «Учет». В одной хранить сведения о книгах: автор, название и месторасположение, в другой о жанрах, а в третьей – информацию о книгах, отданных друзьям и знакомым. 3 этап. Построение схемы базы данных. Ввести понятие ключевого поля таблицы. Построить схему базы данных «Библиотека» с указанием ключевых полей и связей между полями таблиц. Связи между полями двух таблиц определяются следующими отношениями: - «один - ко – многим» (1 - ∞) означает, что любая запись в первой таблице может быть связана с несколькими записями во второй, но в то же время любая запись второй таблицы связана только с одной записью первой. - «один – к – одному» (1 – 1) означает, что любая запись в первой таблице может быть связана только с одной записью во второй и в то же время любая запись второй таблицы связана только с одной записью первой. Схема базы данных «Библиотека» Книги Шифр книги Автор Название Год издания Шифр жанра Стеллаж Полка Номер ∞ 1 ∞ 1 Учет Шифр книги Кому отдана Когда отдана Возвращена Жанры Шифр жанра Название 4 этап. Закрепление новых знаний. Основные принципы проектирования баз данных. Сформулировать с помощью учащихся основные принципы проектирования баз данных и записать их в рабочую тетрадь: 1. Каждое поле любой таблицы должно быть уникальным, т.е. неповторяющимся. 2. Каждая таблица должна иметь ключевое поле, значение которого не повторяется во всех записях таблицы. 3. Должна быть возможность изменять значения любого поля (не входящего в ключевое), и это не должно повлечь за собой изменения значений других полей таблицы. Повторить этапы проектирования и их содержание. 5 этап. Подведение итогов. Предложить учащимся определиться самим или выбрать из перечня (Приложение № 2) базу данных для самостоятельного или группового проектирования и дома составить структуру своей базы данных с учетом всех этапов проектирования и записью в рабочую тетрадь. УРОК № 2. «Построение базы данных». Цель урока: построение базы данных в среде MS Access Задачи урока: 1. Отработать навыки проектирования баз данных в среде MS Access. 2. Продолжить работу над развитием логического мышления, умением анализировать и сравнивать информацию. 3. Воспитание эстетических чувств. Тип урока: комбинированный Методы обучения: частично-поисковый, самообучение Формы организации учебных занятий на уроке: групповая Средства обучения: раздаточный материал, компьютер Структура урока: 1. Организационный этап (1 мин.). 2. Проверка домашнего задания (3 мин.). 3. Этап проверки знаний (5 мин.). 4. Подготовка учащихся к активному и сознательному усвоению нового материала (2 мин.). 5. Усвоение новых знаний (6 мин.). 6. Закрепление новых знаний (25 мин.). 7. Подведение итогов (3 мин.). Ход урока 1. Организационный этап. Определение готовности учащихся к уроку. 2. Проверка домашнего задания. Наличие в рабочей тетради всех этапов проектирования. Выборочный контроль 3. Этап проверки знаний. Фронтальный опрос. 1. Актуальность изучения баз данных в настоящее время. 2. Этапы проектирования баз данных. 3. Дать описание каждого этапа. 4. Основные принципы проектирования баз данных. Оценить знания учащихся по пятибалльной системе. 4. Подготовка учащихся к активному и сознательному усвоению нового материала. Создание баз данных с использованием компьютера до недавнего времени было сложным, трудоемким и дорогостоящим процессом. Только крупные фирмы могли себе позволить сделать заказ на программирование специальной системы «под себя». Положение изменилось с появлением в составе пакета Microsoft Office программы Access. С помощью Access обычные пользователи получили удобное средство для создания и эксплуатации достаточно мощных баз данных без необходимости что-либо программировать. Ознакомление учащихся с темой, целью и задачами урока. 5. Усвоение новых знаний. Дать понятие типов и размеров полей таблиц, определить их для каждого поля таблиц базы данных «Библиотека», дать характеристику связанных полей и свойств связи. 6. Закрепление новых знаний с использованием раздаточного материала (Приложение 3) и структуры базы данных «Библиотека», созданной на предыдущем уроке, создать базу данных «Библиотека» в электронном варианте. 7. Подведение итогов. Оценить объем выполненной работы учащимися по созданию базы данных «Библиотека». Предложить учащимся дома начать работу по созданию своей базы данных в электронном виде. Приложение 1 Перечень тем проектов баз данных 1. БД «Домашняя видеотека». 2. БД «Семейный бюджет». 3. БД «Мои одноклассники». 4. БД «Моя коллекция». 5. БД «Мои друзья». 6. БД «Моя записная книжка». 7. БД «Домашняя фонотека». 8. БД «Мой календарь». 9. БД «Мои достижения». 10.БД «Книга рецептов». 11.БД «Народные средства». 12.БД «Цветы». 13.БД «Ремонт». Приложение 2 Задание для самостоятельной работы к уроку № 2 Этапы работы 1. Конструирование структуры будущих таблиц базы данных. Таблицы будем создавать в режиме Конструктор. 2. Создание схемы базы данных. Связи следует устанавливать при пустых таблицах. Если таблицы заполнены, могут возникнуть проблемы при создании связей и свойств связей. Для связи в обеих таблицах должны быть ключевые поля. 3. Ввод данных в таблицы. Заполнять таблицы будем в режиме Таблицы, передвигаясь по ячейкам с помощью стрелок, клавиши табуляции или мышки. Ход работы Задание 1. Создайте новую базу данных «Библиотека», используя материал урока № 1. Порядок работы: 1. Конструирование структуры Рис. 1 будущих таблиц базы данных. 1. Вызовите программу Access. Для этого дважды щелкните по пиктограмме Microsoft Access. Перед вами откроется окно системы управления базами данных, в котором появится меню, представленное на рис. 1. 2. Включите мышкой переключатель Новая база данных и щелкните по кнопке ОК. Появится диалоговое окно, представленное на рис. 2. Рис. 2 В поле Имя файла в качестве имени базы данных введите «Библиотека». Это будет название вашей базы данных и нажмите кнопку Создать. Замечание. Можете оставить базу данных в текущей папке (на рис. 3 - это папка Мои документы), а можете сменить папку на вашу личную. Рис. 3 3. Переходим к работе со следующим диалоговым окном рис. 3 Выберите Конструктор и щелкните по кнопке ОК. Появится окно Конструктора рис. 4. 4. В верхней левой клетке введите имя поля (набирайте слово "Шифр Рис. 4 книги") и нажмите на клавишу [Enter]. В соседней клетке появится тип данных, по умолчанию он задается Текстовый (рис. 3). Любой другой выбирается с помощью ниспадающего меню. Напоминание. Переход от клетки к клетке осуществляется одним из способов: мышкой; нажатием на клавишу [Enter]; стрелками' клавишей [Tab]. 5. Заполните поля в режиме Конструктор данными из таблицы «Книги», указывая тип и при необходимости размер поля. Общие свойства поля оставляем по умолчанию (какие задает сама программа). 6. Задайте ключевое поле: выделить необходимое поле левой клавишей мыши, нажать правую клавишу мыши на выделенном поле, появится контекстное меню, выбрать из списка «Ключевое поле». 7. Сохраните таблицу, щелкнув Рис. 5 по кнопке («Х» пиктографического меню) В появившемся окне наберите имя таблицы «Книги» и щелкните по кнопке ОК рис. 5. 8. Создайте таблицы «Жанр» и «Учет», повторяя пункты с 3 по 7. 2. Создание схемы базы данных. Рис. 6 1. В главном меню выберите Сервис - Схема данных, откроется окно «Схема данных» и затем окно «Добавить таблицу». Выделите таблицу «Книги» и нажмите кнопку «Добавить». Таблица «Книги» будет помещена в схему данных рис. 6. 2. Добавьте в схему данных таблицы «Жанр» и «Учет» 3. Создайте связи между полями таблиц для чего выделите нужное поле одной таблиц и, не отпуская левую клавишу мыши, перетащите его на соответствующее поле другой таблицы. Задайте свойства связи, щелкнув правой клавишей мыши по линии связи 3. Ввод данных в таблицы. 1. Перейдите в режим Таблицы. Выделите таблицу «Книги» и нажмите кнопку Открыть. Значение поля «Шифр книги» будет меняться автоматически. Если закончить ввод в ячейку нажатием на клавишу [Enter], то маркер перейдет в следующую ячейку. 2. Заполните значениями Рис. 7 данных таблицу «Книги» рис.7. 3. Сохраните введенные данные, щелкнув по кнопке «Х» В результате вы получили таблицу, с которой можно будет работать. 4. Заполните значениями таблицы «Жанр» и «Учет», повторяя пункты с 1 по 3. Замечание. Передвижение по таблице можно производить с помощью клавиш со стрелками на клавиатуре, клавишей табуляции, а также щелчком мыши. Можно пользоваться стандартными для Windows комбинациями клавиш для быстрого продвижения по таблице. База данных «Библиотека» создана!!! VISUAL BASIC. СПРАВОЧНЫЕ МАТЕРИАЛЫ. Существует несколько ограничений на имена используемых в программе переменных: ■ имя должно начинаться только с латинской буквы; ■ в имени не должно быть точек, пробелов и русских букв; ■ необходимо соблюдать уникальность имен переменных в рамках одной рассматриваемой процедуры; ■ количество символов в имени не должно быть более 255. Для повышения информативности используемых переменных программисты используют в именах так называемые префиксы, которые определяют принадлежность сохраняемых в них данных к определенному типу. Префиксы типов данных в имени переменных Префикс Bin byt cur dbl dtm Тип переменной Boolean (булевский) Byte (байт) Currency (денежный) Double (число с плавающей десятичной точкой двойной точности) Date (дата и время) Пример blnCheckOn bytCounter CurMoney dblExperience DtmToday int Ing obj str sng Integer (целое) Long (длинное целое) Object (объект) String (строка) Single (число с плавающей одинарной точности) Variant (произвольный) Array (массив) Глобальная переменная Локальная переменная в форме vnt arr g m десятичной IntNumber LngResult objMainForm strAnswer точкой sngResearch vntAnything arrCoord gMainCount mFormNum Описание префиксов для основных элементов управления Префикс chk cbo cmd dat dir drv fil frm fra hsb img lbl lin 1st mnu ol. opt pic shp txt Tmr Vsb Элемент управления Checkbox (Флажок) ComboBox (Ниспадающий список) CommandButton (Управляющая кнопка) Data (Данные) DirListBox (Список каталогов) DriveListBox (Список дисков) FileListBox (Список файлов) Form (Форма) Frame (Рамка) HScrollBar (Горизонтальная полоса прокрутки) Image (Изображение) Label (Метка) Line (Линия) ListBox (Список элементов) Menu (Меню) OLE (Контейнер OLE) Option Button (Переключатель) PictureBox (Рисунок) Shape (Фигура) TextBox (Текст) Timer (Часы) VScrollBar (Вертикальная полоса прокрутки) Пример chkAgreemen t cboList cmdExit datTable dirFolder drvDevice filDocument frmMain fraTitle hsbPicture imgSpace lblComment linDiagonal istSurname mnuHelp oleGraph optAgeGroup picScreen shpRect txtLetter tmrCurrent vsbText Описание суффиксов для определения типов переменных Название типа Integer Long Currency Символ в качестве суффикса % & @ Название типа Символ в качестве суффикса Single Double String ! # $ Используемые в Visual Basic типы данных и их описание Тип Содержимое Память, Диапазон возможных значений байт 2 [-215;2!5-1] 4 [-231;231-l] числа 4 [-2128; -2-149] и [2-149;2128-1] Целые числа Целые числа Вещественные одинарной точности Double Вещественные числа 8 двойной точности Currency Вещественные числа 8 (целая часть-до 15 цифр, дробная - до 4 цифр) String Текст 1 для каждого символа Integer Long Single Byte Boolean Date Object Variant Целые числа Логические значения Дата и время Объект Любая [-21024;-2-1074]H [2-1074;21024-1] [-263*10-4; (263-1)*10-4] До 216 символов для строк фиксированной длины. До 231 символов для динамических строк 1 [0; 28-1] 2 [True, False] 8 [1.01.100; 31.12.9999] 4 Ссылка на объект 16 + (1 Диапазон не определен для каждого символа) Конструкции управления. Зачастую в определенном месте программы необходимо выполнять те или иные операторы, в зависимости от некоторых условий. Эта возможность в Visual Basic реализуется при помощи так называемых управляющих конструкций (или структур), которые, в свою очередь, состоят из структур принятия решений и циклов. Ниже приводится подробное описание двух существующих конструкций принятия решений. Конструкции принятия решений. Конструкция If... Then. Существует несколько разновидностей данной структуры. Если при выполнении какого-либо условия необходимо выполнять один оператор, то нужно использовать конструкцию следующего вида: If условие Then оператор В том случае, когда результатом проверки условия является значение True (Истина), то выполняется оператор, находящийся после служебного слова Then. С другой стороны, если после проверки условия было получено значение False (Ложь), то выполнится следующий по порядку оператор. Все описанные параметры данной структуры должны быть указаны в одной строке. Если при выполнении условия требуется выполнить не один, а несколько операторов, то следует использовать такую конструкцию: If условие Then операторы End If В случае истинности проверяемого условия будут выполнены операторы, расположенные после ключевого слова Then. С другой стороны, если условие является ложным, то выполняется следующий после данной конструкции оператор. В том случае, когда в блоке операторы находится только один оператор, то данная структура все равно должна заканчиваться служебным словосочетанием End If. При необходимости выполнения того или иного оператора (или блока операторов) в зависимости от результата проверки определенного условия, в языке Visual Basic следует использовать следующую конструкцию: If условие Then Операторы 1 Else Операторы 2 End If или If условие Then Операторы 1 Else: операторы 2 End If Если результатом проверки условия является значение True, то будет выполнен блок операторы 1, находящийся после ключевого слова Then. С другой стороны, если проверка условия дата результат False, то будет выполнен блок операторы 2, расположенный после служебного слова Else. Во втором из приведенных вариантов в качестве блока операторы 2 может использоваться как один оператор (тогда он записывается после знака «:» в той же строке, что и служебное слово Else), так и несколько (при этом каждый оператор, начиная со второго, записывается в отдельной строке). В том случае, когда определенное действие (или набор действий) нужно выполнять после проверки не одного, а нескольких условий, на языке Visual Basic следует использовать такую управляющую структуру: If условие 1 Then операторы 1 Elself условие 2 Then операторы 2 . [Else оператopuN] End If Если условие 1. находящееся после ключевого слова If истинно, то выполняется блок операторы 1, расположенный после Then. Если же оно ложно, то осуществляется проверка условия 2, находящегося после служебного слова Elself, в случае его истинности выполняется блок операторы 3 и т. д. Если ни одно из этих условий не является истинным, то есть результатом всех проверок является значение False, то выполняется блок операторы N, расположенный после ключевого слова Else (данный блок является необязательным). В дополнение к приведенной выше структуре If ...Then следует также рассмотреть функцию IIf, которая возвращает одно из двух значений, в зависимости от проверяемого условия. Синтаксис данной функции имеет такой вид: IIf(условие, Значение 1, Значение 2). В том случае, когда результатом проверки условия является значение True, функция возвращает значение 1, а когда проверка дает значение False, то возвращаемый результат – значение 2. Например: Dim intA As Integer, strA As String intA = 6 strA = Ilf(intA Mod 2 = 0, "Четное", "Нечетное") Если число intA делится на 2 без остатка, то строке strA будет присвоено значение "Четное", в противном случае - "Нечетное ". Конструкция Select Case. Когда существует несколько операторов (или блоков операторов), которые необходимо выполнять в случае истинности того или иного условия, то запись конструкции If.Then окажется достаточно громоздкой. Поэтому в подобных случаях следует использовать структуру Select Case, которая улучшает читаемость программы. Ее общий вид выглядит следующим образом: Select Case переменная Case значение 1 Операторы 1 Case Значение 2 Операторы 2 . [Case Else оператopN] End Select Если переменная содержит значение 1, расположенное после первого по порядку ключевого слова Case, то выполняется блок операторы 1. С другой стороны, если содержимое переменной равно значению 2, то выполняется блок операторы 2 и т. д. Когда содержимое переменной не равно ни одному из приведенных значений, то выполняется блок операторы N, находящийся после служебного словосочетания Case Else, которое является необязательным в рассматриваемой конструкции. В том случае, когда при нескольких значениях переменной необходимо выполнять один и тот же оператор (блок операторов), то список этих значений нужно указать после ключевого слова Case, разделяя их запятыми. Например: Select Case x Case I х=х+1 Case 2, 3, 4 х = 10 Case Else x = 20 End Select Разновидности циклов. Кроме структур принятия решений, существуют еще одна разновидность управляющих конструкций, называемая циклом. Цикл - это алгоритмическая структура, при помощи которой реализуется многократное повторение блоков операторов. В языке Visual Basic существует два основных вида циклов, которые реализуются при помощи конструкций For.Next и Do... Loop. Цикл For... Next. Используется в том случае, когда количество повторов заданного блока операторов известно заранее. Данная конструкция выглядит следующим образом: For счетчик = нач. Значение то кон. Значение [Step шаг] Операторы 1 [Exit For] Операторы 2 Next [счетчик] Когда приведенные операторы выполняются первый раз, то переменной-счетчику присваивается начальное значение, после чего возможны два варианта действий. Если в результате проверки условия счетчик > конечное и было получено значение True, то происходит завершение цикла, при этом блоки Операторы1 и Операторы2 ни разу не выполняются. С другой стороны, если результатом проверки условия является False, то в этом случае блоки операторов выполняются первый раз, после чего происходит переход на начало цикла. Далее значение переменнойсчетчика увеличивается на шаг, расположенный после ключевого слова Step (в случае его отсутствия устанавливается шаг = 1). После этого снова проверяется истинность условия счетчик > конечное значение и т.д., окончание цикла происходит в тот момент, когда результатом данной проверки станет значение True. Зачастую бывает необходимо "аварийно" завершать работу цикла при выполнении какого-либо дополнительного условия. В этом случае внутри цикла следует использовать служебное словосочетание Exit For, которое обычно располагают в управляющей конструкции, например: If условие Then Exit For Если результатом проверки условия будет значение True, то выполнение цикла будет прекращено, причем блок Операторы 1 будет выполнен очередной раз, а блок Операторы 2 - нет. Цикл Do. . . Loop. Применяется в том случае, когда число повторений операторов тела цикла заранее неизвестно. Существует четыре разновидности данной конструкции. При использовании первых двух цикл либо выполнится много раз, либо не выполнится вообще. Do Until условие Операторы Loop Если результатом проверки условия является значение False, то блок Операторы выполняется, иначе осуществляется переход на оператор, расположенный после служебного слова Loop. С другой стороны, если первая проверка условия даст результат True, то цикл не выполнится ни разу. Do While условие Операторы Loop Если условие истинно, то происходит выполнение блока Операторы, если же оно ложно, то есть результатом проверки является значение False, то цикл ни разу не выполнится. В случае использования последних двух конструкций цикл будет выполнен хотя бы один раз. Do Операторы Loop Until условие Блок Операторы выполняется до тех пор, пока результатом проверки условия является значение False, иначе выполнение цикла заканчивается. Do Операторы Loop While условие В случае ложности условия выполняется блок Операторы, если же оно истинно, то есть результатом проверки является значение TRUE, то происходит окончание цикла. ОБЪЕКТ УПРАВЛЕНИЯ И КОНТРОЛЯ LABEL Label (Метка) - поле, заполняемое программистом текстовой информацией и недоступное пользователю для редактирования. Содержание Метки определяется ее значением Caption. Прямой вывод текста или рисование на метке не допускается. Основные свойства: Backcolor, Enabled, FontName, Fontltalic, FontSize, FontBold, Forecolor, Height, Width, Left, Top, Mousepointer, Visible, Name - свойства, аналогичные свойствам формы. Alignment (выравнивание) – определяет, каким образом размещается название метки. По умолчанию оно равно 0 -Left Justify, что выравнивает текст на метке по ее левой границе. Прочие значения: 1 - Right Justify (выравнивание по правой границе) и Center (по центру). AutoSize (автоподстройка размера). Если это свойство приравнено True, размер поля метки автоматически подгоняется под размер текста, заданный свойством Caption. Если же это свойство соответствует False, метка сохраняет размер, установленный при проектировании; лишние символы длинного текста просто отсекаются. BorderStyle (тип границ). Это свойство способно принимать всего два значения: 0 - контур поля метки отсутствует, устанавливается по умолчанию, и 1 - метка очерчивается одинарными линиями. Enabled (доступ). Обычно равно True, a если присвоить False, текст метки станет серым (поблекнет), и обработка событий, связанных с действиями мышки, будет запрещена. Основные события для Метки: Объект Метка воспринимает события Click и DblClick так же, как и окно формы. ОБЪЕКТ УПРАВЛЕНИЯ И КОНТРОЛЯ TEXT BOX Text Box (Текстовое окно/поле) - позволяет пользователю вводить и редактировать текст. Основные свойства: Текстовые окна, наряду со стандартными свойствами FontBold, Fontltalic, FontName, FontSize, FontUnderline, BorderStyle, Enabled, Left, Name, Top, Visible, Width и Height, обладают еще и такими: Text (текст) - содержимое Текстового окна (символьные данные). Программа распознает с помощью этого свойства, какой именно текст введен пользователем. Кроме того, оно позволяет изменять отображаемый на экране текст. MaxLength (максимальная длина). Оно обычно равно 0 (по умолчанию), то есть в текстовое окно можно вводить любое количество символов. Если установить значение, не равное 0, Visual Basic ограничит возможность ввода до заданного количества символов. MultiLine (многострочность). Если это свойство приравнено к False, то разрешен ввод не более чем одной строки текста. Установив True, можно вводить по несколько строк, нажимая клавишу Enter (то есть вставлять в текст символ возврата каретки) и продолжая набор текста с новой строки. Alignment - выравнивание текста (работает только при Multiline = true) PasswordChar (символ пароля). Это свойство определяет: защищено данное текстовое окно паролем или нет. Если текст ввести в защищенное паролем окно, символы на экране будут отличаться от набираемых на клавиатуре. По умолчанию свойство PasswordChar соответствует пустой строке, а это означает, что какие символы пользователь вводит, такие символы он видит. Если же это свойство приравнять какому-нибудь символу (допустим, звездочке), то на экране, вместо набираемых знаков, появятся звездочки. Но, на самом деле, содержимое текстового окна соответствует введенному тексту - звездочки высвечиваются только на дисплее. ScrollBar (линейки прокрутки). Этому свойству можно присвоить 0 линеек прокрутки в текстовом окне нет, 1 -появляется только горизонтальная линейка прокрутки, 2 - появляется только вертикальная линейка прокрутки и 3 - видны обе линейки. SelLength (количество выделенных символов). Это свойство определяет количество символов, выделенных в данный момент. Его значение меняется при выделении знаков в текстовом окне. То же самое можно сделать программным путем, присвоив свойству нужную величину (целого типа), и, кстати, тем самым изменить размер выделенного фрагмента. SelStart (начало выделенного блока). Параметр, указанный в этом свойстве, определяет, откуда начинается выделенный фрагмент текста: с первого символа (0), со второго (1) и т. д. Свойство SelStart тоже допускается модифицировать программным путем. SelText (выделенный текст). Это свойство содержит текстовую строку, соответствующую выделенному в данный момент фрагменту. Если текст не выделен, то это свойство содержит пустую строку. Устанавливая данное свойство в коде программы, Вы заменяете выделенный в текстовом окне фрагмент новым значением SelText. Например, если в текстовом окне с именем Textl набрана строка: «Здравствуйте, друзья!» и слово «Здравствуйте» выделено, его можно исправить, выполнив оператор Textl. SelText = «Здравствуйте». Свойства SelLength, SelStart, SelText доступны только при выполнении программы. Основные события для Текстового поля: Change (изменение). Сигнал об этом событии поступает в программу при изменении свойства Text пользователем (при вводе нового текста) или программой, устанавливающей новое значение этого свойства. Обратите внимание: если Вы набираете слово «Привет», сигнал о событии Change поступает шесть раз по одному на каждую букву. LostFocus (уход из фокуса). Это событие возникает при перемещении пользователем курсора ввода за пределы данного текстового окна или начале работы с мышью над какими-нибудь другими объектами на форме. Проверять значение свойства Text эффективнее в процедуре обработки события LostFocus, а не Change. ОБЪЕКТЫ УПРАВЛЕНИЯ И КОНТРОЛЯ PICTURE BOX И IMAGE Picture Box (Окно рисунка) и Image (Окно изображений) позволяют размещать графическую информацию в определенных участках формы. Окна рисунков - более гибкие объекты, но требуют большего объема памяти и времени на обработку. Они лучше подходят для динамической среды, когда при выполнении программы изображения рисуют непосредственно на экране или создают анимационные эффекты, перемещая значок по экрану. Графические объекты Окна изображений удобнее использовать в статической среде, то есть в тех случаях, когда созданную или скопированную растровую картинку не предполагается изменять. Основные свойства: Наряду со стандартными свойствами BackColor, BorderStyle, Enabled, Left, Name, Top, Visible, Width и Height, Окно рисунка и Окно изображения обладают еще одним важным свойством Picture (Картинка), которое позволяет выводить на экран либо растровые, либо векторные картинки. Для его настройки при проектировании программы служит окно Properties, а в период выполнения - функция Loadpicture(). Необходимо помнить, что координаты объекта в случае свойств Height, Left, Top и Width относительны, а не абсолютны, то есть изменяются как смещение от начала координат формы, а не экрана. У Окон рисунков, во многом похожих на небольшие формы внутри основной формы, есть ряд свойств, которых нет у Окна изображений: AutoRedraw, Fontbold, Fontltalic, FontName, Fontsize, FontUnderline. Эти свойства аналогичны уже рассмотренным свойствам форм. А Окна изображений имеют одно дополнительное свойство, отсутствующее у Окон рисунков, Stretch (масштабирование). По умолчанию, оно равно False; это приводит к автоматической подгонке размеров графического объектаэлемента управления под содержащуюся в нем картинку. При изменении значения False на True картинка будет масштабироваться в соответствии с размерами Окна изображения. Основные события для Окон рисунков и изображений: Click (DblClick) - событие наступает, когда пользователь делает щелчок (или двойной щелчок) на объект кнопкой мыши. MouseDown, MouseUp - событие наступает, когда пользователь нажимает или отпускает левую кнопку мыши. Процедуры и методы: Функция LoadPicture (имя файла-картинки) устанавливает свойство Picture Окна рисунка или изображения. Например, Picture I.Picture = LoadPicture («cloud.ico») загружает картинку с облаком в Окно рисунка. Кроме того, Окно рисунка поддерживает методы Print, Cls, Scale (масштабирование), Pset, Line и прочие графические методы. Вариант письменной работы, содержащей теоретические утверждения (тезисы) Предлагаемый вид проверки знаний учащихся можно использовать как в процессе обучения, так и на этапе итоговой аттестации. По усмотрению учителя утверждения могут быть изменены, сгруппированы по содержательным линиям курса, количество утверждений может быть увеличено (уменьшено). Итоговая работа рассчитана на 45 минут. В одном из двух последних столбцов следует ручкой или карандашом соответственно выбранному ответу («Да» или «Нет») поставить любой знак (крестик, галочку и т. п.). Оценивается по тем же правилам, что и итоговая работа с выбором ответа. Примерная серия теоретических утверждений (тезисов) № Согласны ли вы с утверждением 1 За минимальную единицу измерения количества информации принят байт 2 Число 10, записанное в десятичной системе счисления, в двоичной системе счисления записывается как 1011 3 В целях сохранения информации на жестких магнитных дисках их следует оберегать от ударов 4 Файл — это часть оперативной памяти компьютера Да Нет + + + + 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 Операционная система — это совокупность программ, управляющих работой компьютера Операция присваивания изменяет порядок выполнения алгоритма Процессы, связанные с получением, хранением, передачей и обработкой информации, — это информационные процессы Обмен информацией между отдельными устройствами компьютера производится по магистрали, соединяющей все устройства компьютера Информация на лазерном диске записана на одну спиралевидную дорожку Активизация компьютерного вируса может привести к уничтожению программ и данных во внешней памяти компьютера За единицу количества информации принято такое количество информации, которое уменьшает неопределенность в три раза. Такая единица названа бит Для запоминания в памяти компьютера одного символа в кодировке КОИ-8Р требуется один байт На гибком магнитном диске минимальным адресуемым элементом является сектор Для того чтобы можно было сохранить информацию на магнитном диске, он должен быть отформатирован Сеть Интернет — это локальная компьютерная сеть В электронных таблицах применяют две формы записи чисел — обычную и экспоненциальную Логическая переменная может принимать только два значения: истина или ложь Программа — это алгоритм, записанный на понятном исполнителю языке Трансляторы языков программирования бывают трех типов: интерпретаторы, компиляторы и операционные системы Конъюнкция — это операция логического умножения Высказывание — это повествовательное предложение, в котором что-либо утверждается или отрицается. По поводу высказывания всегда можно сказать, что оно истинно Адрес электронной почты состоит из двух частей: имя пользователя @ имя сервера Дизъюнкция — это операция логического умножения Основные функции любого компьютера — это ввод, хранение, обработка и вывод данных Информация, которую обрабатывает процессор, всегда представлена в двоичном коде Форматирование абзаца текста — это изменение имени файла или его расширения Обработка информации — один из видов информационной деятельности человека + + + + + + 4 + + + + + + + + + + + + + + + + 28 29 30 31 Компьютер — это универсальный инструмент для работы с информацией Число 345, записанное в десятичной системе счисления, меньше числа 345, записанного в восьмеричной системе счисления Язык — это система символьного представления информации. Языки бывают естественные и искусственные Функции операционной системы: диалог с пользователем, управление устройствами компьютера, работа с файлами + + + + ОБЪЕКТ УПРАВЛЕНИЯ И КОНТРОЛЯ FORM Объект Form (Форма) представляет собой стандартное Windows-окно, которое служит основой для создания интерфейса прикладной программы. Основные свойства: BackColor – цвет фона (задается 16-ричной константой) BorderStyle -– тип границы 0 – нет 1– одинарная фиксированная 2 – изменяемая 3– двойная фиксированная Caption – название формы (в заголовке) Drawstyle – стиль рисования Solid – сплошная Dash – пунктир Dot – точки Transparent – прозрачная Enabled – доступность формы FillColor – цвет заполнения FillStyle – стиль заполнения FontBold – полужирный шрифт FontItalic – курсив FontName – имя шрифта FontSize – размер шрифта ForeColor – цвет переднего плана Height – высота формы Icon – рисунок в поле заголовка Left – расстояние до формы от левой границы экрана ScaleMode – единица измерения в координатной системе Top – расстояние до формы от верхней границы экрана Visible – видимость Name – имя формы в программе MinButton – кнопка минимизации формы MaxButton – кнопка максимизации формы MousePointer – указатель мыши WindowState – состояние окна События для формы: Load – загрузка формы Unload – выгрузка формы Click – щелчок мыши DoubleClick – двойной щелчок Процедуры и методы: Cls – очистка формы Print – вывод текста на форму Scale – задание декартовой системы координат PSet – точка Line – линия, рамка, прямоугольник. Circle – окружность, эллипс, дуга, сектор. LoadPicture (имя файла) – функция загрузки картинки, записанной в виде файла. Лабораторная работа. При создании программы существует два способа изменения значений свойств объекта: на Панели свойств и программе. В теле программы обращение к свойству или методу происходит с указанием имени объекта, которому принадлежат свойство или метод. Например: Form1.Caption=”Первая программа” меняет название заголовка формы. Form1.Circle (1000, 1000), 500 рисует окружность с центром в точке с координатами (1000, 1000) относительно левого верхнего угла формы и радиусом 500. По умолчанию используется единица измерения 1twip =1/1440 дюйма. Единицы измерения можно изменить в свойстве формы ScaleMode. Упражнения для самостоятельного выполнения 1. Измените название формы «Form1» на «Моя форма», используя окно свойств. 2. Измените цвет фона формы на голубой, а стиль границы на «фиксированная одинарная» через окно свойств. 3. Проверьте действие свойств Icon, Visible, Enabled, MousePointer, WindowState. и запишите в рабочую тетрадь: Icon_______________________________________________________________ __ Visible ______________________________________________________________ Enabled _____________________________________________________________ MousePointer _________________________________________________________ WindowState _________________________________________________________ 4. Используя событийную процедуру Click напишите программу, выполняющую следующие действия, при щелчке на форму ее название меняется на «Первая программа на Visual Basic»; на форме выводится слово «ЗДРАВСТВУЙТЕ» нарисуйте в центре формы окружность.. 5. При двойном щелчке на форме очистите ее и завершите работу программы, используя событийную процедуру DoubleClick. Урок 3. Графические методы Visual Basic. 1) Повторение. С помощью каких свойств формы можно. 2 4 E V (1) поместить картинку в n 3 i заголовок окна; 1 a C s (2) сделать форму недоступной; I b a i (3) изменить надпись в c l p b заголовке формы; 5 B o r d e r S t y l e (4) сделать форму невидимкой; n d i e (5) изменить вид границ формы? o n Событийные процедуры. Программа – это инструкция исполнителю. Процедура – это фрагмент программы. Исполнитель начинает ее выполнять, когда что-то служит сигналом к началу его работы. В системе Visual Basic имеется большое количество таких сигналов. Они называются событиями. В Visual Basic событие наравне со свойством является важнейшей характеристикой объекта. Большинство процедур, из которых состоит программа на Visual Basic, привязаны к событиям и называются событийными процедурами. Private Sub Form_Click() End Sub 2) Графические методы. Метод – это некоторое действие, которое VB может выполнять над данным объектом. Графический метод – это такой метод, который позволяет изображать на объекте данного класса какой-нибудь геометрический элемент, например, точку, линию, окружность и др. Графические методы применимы только к объектам классов Form (Форма) и PictureBox (Графическое окно). 1. Scale – решает задачу назначения объекту новой системы координат. [Имя Объекта.]Scale(x1,y1) – (x2, y2) Имя Объекта может отсутствовать. В этом случае команда будет относиться к Форме. y -7 Form1.Scale(-7,5)–(7,-5) 5 0 7 х -5 2. PSet – рисует на данном объекте точку в заданной системе координат. [Имя Объекта.]PSet(x,y) [,Цвет] Если ЦВЕТ не указать, то точка рисуется черным (0). Пример: Private Sub Form_Click() Form1.Scale(0,10)–(15,0) Form1.PSet(10,6),vbWhite End Sub Изменить размер точки можно в свойстве DrawWidth или программно: Form1.DrawWidth=10 3. Line – рисует отрезки, прямоугольники, рамки. [Имя Объекта.]Line(x1,y1) – (x2, y2) [ ,Цвет [, Флаг ] ] Параметр Флаг – либо символ B, либо BF. Если в качестве Флага символ В, то прямоугольник будет ничем не заполнен, когда у объекта, на котором он рисуется, значение свойства FillStyle =1 (Transparentпрозрачный). Например, когда свойство FillStyle имеет значение 0 (Solidсплошная), прямоугольник будет заполнен цветом, указанным в свойстве FillColor. 4. Сircle – рисует окружности, круги, эллипсы, дуги и секторы. [Имя Объекта.]Circle(x,y), Радиус [ ,Цвет [, Угол1, Угол2 [ , Коэффициент сжатия ] ] ] Смысл параметров метода следующий. (X, Y) — координаты центра круга или эллипса, который (или часть которого) будет создавать метод Circle на Объекте. Цвет — это выражение, которое определяется так же, как и для метода Line. Угол1 и Угол2 — это начальный и конечный углы дуги или сектора. Углы измеряют в радианах, их значения берутся в интервале от 0 до 2. Нулевой угол соответствует горизонтальной оси, направленной вправо. Если перед ненулевым значением угла ставится знак «-» (минус), это означает, что будет нарисована не дуга, а сектор (а вовсе не то, что угол отрицательный). При рисовании дуги или сектора движение «пера» происходит всегда против часовой стрелки, от Угла1 к Углу2 (и когда Угол2 больше Угла1, и когда Угол1 больше Угла2). Если изображается не дуга и не сектор круга или эллипса, а полный круг или эллипс, Углы, естественно, отсутствуют. Коэффициент Сжатия — это положительное число, большее или меньшее единицы. В первом случае получается эллипс, вытянутый по вертикали, а во втором — вытянутый по горизонтали. Степень вытянутости определяется значением Коэффициента Сжатия. Если он отсутствует, то по умолчанию изображается круг (окружность). 5. Значения цветов Цвет Чёрный Красный Зелёный Жёлтый Синий Сиреневый Голубой Белый Константа vbBlack vbRed vbGreen vb Yellow vbBlue vbMagenta vbCyan vbWhite Числовое значение 0 255 65280 65535 16711680 16711935 16776960 16777215 УРОК 4. Практическая работа по теме «Графические методы» Метод Circle. Задание: Напишите программу, которая выводит по щелчку на форме следующую картинку: Scale (0, 100)-(150, 0) – задать новую систему координат (см. рис.) DrawWidth = 2 (толщина линий ) ‘ Тело FillColor = &HC0E0FF Circle (100, 10), 75,QBColor(0) , -4 * 3.14 / 5, 3.14 Знак «–» означает, что требуется нарисовать не дугу, а сектор. FillColor = &HC0E0FF – цвет заливки. QBColor(0) – цвет контура окружности черный. Таблица цветов QBColor: Черный (vbBlack) Темно-синий Темно-зеленый Темно-голубой Темно-красный Темно-сиреневый Коричневый Светло-серый 0 1 2 3 4 5 6 7 Темно-серый Синий (vbBlue) Зеленый (vbGreen) Голубой (vbCyan) Красный (vbRed) Сиреневый (vbMagenta) Желтый (vbYellow) Белый (vbWhite) 8 9 10 11 12 13 14 15 УРОК 5. Практическая работа по теме «Графические методы». Создание простейшей анимации. Задание: Напишите программу, которая выводит … ….по щелчку на форме картинку ….по двойному щелчку на форме картинку Ход работы 1. Разместите на форме объект класса PictureBox 2. Задайте новую систему координат внутри экземпляра Picture1. 3. Напишите событийные процедуры. Для этого: в процедуру Private Sub Picture1_DblClick() скопируйте и вставьте из процедуры Private Sub Picture1_Click() команды для рисования глаз и зрачков; замените цвет заливки фона глаз (свойство FillColor) и цвет контуров глаз и зрачков (свойство ForeColor) на цвет заливки лица. (Глаза должны исчезать по двойному щелчку) Добавите команды для рисования закрытых век. Протестируйте анимацию Событие Click Событие DblClick Анимация внедренных объектов. Новые возможности: Конструкция ветвления. Ветвление – это выбор пути решения задачи в соответствии с выполнением или невыполнением некоторого условия. Однострочная форма: If УсловноеВыражение Then Оператор1 [Else Оператор2 ] Многострочная форма: If УсловноеВыражение Then ПоследовательностьОператоров 1 [Else ПоследовательностьОператоров2] End If Задание: Напишите программу, которая выводит по щелчку на кнопке анимацию Ход работы 4. Разместите на форме два объекта класса Image одинакового размера один над другим. 5. Задайте для одного из них значение свойства Visible = True,а другому –– Visible=False. 6. Задайте для каждого из объектов класса Image значение свойства Stretch=True. 7. Нарисуйте в любом графическом редакторе две картинки одинакового размера и сохраните их в файлы: 8. 9. Загрузите картинки в Image1и Image2 используя свойство Picture. 10. Напишите программный код для события Click: Private Sub Command1_Click() If Image1.Visible = True Then Image1.Visible = False Image2.Visible = True Else Image1.Visible = True Image2.Visible = False End If End Sub Контрольная работа №1. I вариант II вариант III вариант 7. Дана строка программы Picture1.DrawWidth=2 . Назовите класс Чем является Picture1? Чем объекта. DrawWidth? является 2. Какое из событий click, dblclick, load происходит при загрузке формы? при щелчке мыши? при двойном щелчке мыши? 3. Какое имя носят экземпляры класса форма? графическое окно? и чем эти имена отличаются друг от друга? командная кнопка? 4. В какой из строк фрагмента программы происходит обращение к методу? Укажите какому из объектов принадлежит метод. Form1.Enabled=True Form1.Caption= «Привет» Form1.Cls Form1.Print «Привет» Line(10,10)-(20,20), vbRed, Command1.Сaption= BF «Выход» 5. Запишите, какие действия выполняют следующие строки программы: Picture2.DrawWidth=3 Picture1.Scale(0,2)-(2,0) Form1.Cls Form1.Capture= «1234» Form1.Print «1234» Picture2.FillStyle=Solid Напишите событийную процедуру для экземпляра класса графическое окно. Объект должен по щелчку мыши рисовать изображение: Урок 7. Использование свойств объектов Кнопка опций и Флажок для организации выбора в программе. Повторение. Создать форму как на рисунке, переименовать ее. Нанести на форму метку и три командные кнопки. Изменить их свойства в соответствии с рисунком. Написать программу, выполняющую следующие функции: - при нажатии на кнопку «Привет» в метке появляется сообщение «Здравствуйте, друзья!»; - при нажатии на кнопку «Очистка» метка очищается; - при нажатии на кнопку «Выход» программа завершает свою работу. Конструкция ветвления. Ветвление – это выбор пути решения задачи в соответствии с выполнением или невыполнением некоторого условия. Однострочная форма: If Условное Выражение Then Оператор1 [Else Оператор2 ] Многострочная форма: If Условное Выражение Then Последовательность Операторов 1 [Else Последовательность Операторов2] End If 3) Создание простейшего теста. Создать форму как на рисунке, переименовать ее. Нанести на форму две метки, текстовое поле, две кнопки опций и две командные кнопки. Изменить их свойства в соответствии с рисунком. Написать программу, выполняющую следующие функции: - при нажатии на кнопку «Проверить» анализируется ответ ДА или НЕТ и в одну из меток выводится сообщение о правильности ответа; - при нажатии на кнопку «Выход» программа завершает свою работу. В качестве OptionButton. элементов выбора использовать объекты класса ОБЪЕКТ УПРАВЛЕНИЯ И КОНТРОЛЯ OPTION BUTTON Option Button (Кнопка опций) – это кнопка-переключатель, иногда называемая также радиокнопкой. С ее помощью отображается устройство, индуцирующее включение или выключение чего-либо. Обычно такие кнопки используют как часть некоторой группы или множества устройств, из которых пользователь может выбрать только одно. Когда пользователь выбирает кнопку-переключатель, другие кнопки из той же группы автоматически отключаются. Основные свойства Наряду со стандартными свойствами Alignmemt, BackColor, Caption, Font, Enabled, Left, Name, Top, Visible, Width и Height, Кнопка опций обладает еще одним важным свойством: Value (значение) - при true кнопка включена, при false кнопка выключена. Основные события для Кнопки опций Click (DblClick) - событие наступает, когда пользователь делает щелчок (или двойной щелчок) на объект кнопкой мыши. ОБЪЕКТ УПРАВЛЕНИЯ И КОНТРОЛЯ CHECK BOX Check Box (Флажок) - окно контроля, отображающее информацию о включении или выключении каких-то операций в дальнейших действиях пользователя. В отличие от Кнопок опций, контрольных окон может быть выбрано любое число. Основные свойства и события у Флажка такие же, как у Кнопки опций. ****Дополнительные задания Замените название кнопки «Проверить» на «Вопрос». Напишите программу, которая выводит несколько вопросов (каждый по щелчку на кнопке «Вопрос»). Проверяет и анализирует результат сразу же после выбора варианта ответа. Указание. Список вопросов запишите в массив строк, присваиваниями внутри программы. Урок 8 - 9. Знакомство с файловым вводом/выводом. 4) Разбор решения задачи о создании теста Напишите программу, которая выводит 4 вопроса (каждый по щелчку на кнопке «Вопрос»). Проверяет и анализирует результат сразу же после выбора варианта ответа. Указание. Список вопросов запишите в массив строк, присваиваниями внутри программы. 1. Элементы выбора (радиокнопки) создадим как массив объектов и для удобства использования в программе изменим значение их свойства Name на более короткое Opt. Получим: Opt(0) - НЕТ, Opt(1) – ДА. 2. Из тех же соображений поместим радио-кнопки в контейнер-рамку Frame, и изменим и свойство Name командной кнопки – CmdVopr. 3. Для хранения 4-х вопросов будем использовать массив строк Vopr(4): Vopr(1) = "За минимальную единицу измерения количества информации принят байт" Vopr(2) = "Число 10, записанное в десятичной системе счисления, в двоичной системе счисления записывается как 1011" Vopr(3) = "В целях сохранения информации на жестких магнитных дисках их следует оберегать от ударов" Vopr(4) = "Файл - это часть оперативной памяти компьютера" 4. Для решения задачи разработаем 3 процедуры: Первая процедура начнет выполняться вместе с загрузкой формы (Private Sub Form_Load()), поэтому в нее удобно разместить все действия связанные с объявлением и заполнением массива вопросами. Для того чтобы массив начинался не с 0, а с 1 в первой строке объявлений (раздел Declarations) поместим строку Option Base 1. Dim Vopr(4) As String, Otv(4) As Byte, num As Integer 'Инциализация при загрузке формы Private Sub Form_Load() Vopr(1) = "За минимальную единицу измерения количества информации принят байт" Vopr(2) = "Число 10, записанное в десятичной системе счисления, в двоичной системе счисления записывается как 1011" Vopr(3) = "В целях сохранения информации на жестких магнитных дисках их следует оберегать от ударов" Vopr(4) = "Файл - это часть оперативной памяти компьютера" Otv(1) = 0 Otv(2) = 0 Otv(3) = 1 Otv(4) = 0 'Радио-кнопки недоступны пока не будет выбран вопрос Frame1.Enabled = False End Sub Сразу же после загрузки формы рамка с радиокнопками должна быть недоступна (Frame1.Enabled=FALSE), пока пользователь не выберет вопрос. Index-это номер радио-кнопки (либо 0-НЕТ, либо 1-ДА) и пока пользователь ни одну из них не выбрал Index можно присвоить любое число кроме 0 или 1. Алгоритм работы программы - Пользователь нажимает кнопку [Вопрос] и в текстовом окне отображается вопрос (при первом нажатии 1-й вопрос, при 2-ом – второй и т.д.). - Чтобы пользователь не мог без ответа перебрать все вопросы, как только очередной вопрос отобразится в текстовом окне – сделаем кнопку [Вопрос] недоступной (CmdVopr.Enabled=FALSE). - Как только кнопка стала недоступной, делаем доступной рамку с радиокнопками (Frame1.Enabled=TRUE). - Как только пользователь кликнет одну из радиокнопок – появляется метка с поощряющей (или ругающей) надписью; рамка с радиокнопками становится снова недоступной, а кнопка – [Вопрос] доступной. - Все предыдущие пункты повторяются, пока не пользователь не даст ответ на последний вопрос. После этого последнего ответа нажатие на кнопку [Вопрос] приведет к закрытию программы. Второй процедурой, которую нужно будет разработать, является Private Sub CmdVopr_Click() – она будет запускаться по щелчку на кнопке [Вопрос]. Private Sub CmdVopr_Click() Считаем количество заданных вопросов в num, и если их станет больше 4 - выход num = num + 1 If num > 4 Then End Задаем вопрос Text1.Text = Vopr(num) На время, пока пользователь думает над ответом: запретим ему выбирать новый вопрос CmdVopr.Enabled = False Пусть ни одна радиокнопка не отображается выбранной Opt(Index).Value = False Frame1.Enabled = True Очистим метку от поощряющей записи за предыдущий ответ. Label1.Caption = "" End Sub Третья процедура Private Sub Opt_Click(Index As Integer) будет анализировать номер выбранной радиокнопки (Index) выдавать поощряющее или ругающее сообщение. Private Sub Opt_Click(Index As Integer) Если номер выбранной радиокнопки совпадает со значением правильного ответа(0 или 1)в массиве ответов Otv() If Index = Otv(num) Then Поощряем пользователя Label1.Caption = "ВЕРНО!" Else ...или ругаем:) Label1.Caption = "Ай-яй-яй!!!" End If После анализа ответа и выдачи поощряющего(или ругающего) сообщения сделаем доступной кнопку выбора следующего вопроса CmdVopr.Enabled = True Очистим значения выбранных за предыдущий ответ радио-кнопок For I = 0 To 1: Opt(I).Value = False: Next выбор вариантов ответов делаем недоступными до выбора нового вопроса Frame1.Enabled = False End Sub 5) Изучение новых возможностей. Для хранения вопросов нашего теста удобно использовать текстовый файл. В этом случае их легко заменить на любые другие ДА-НЕТ вопросы. Файл создадим с помощью БЛОКНОТА и организуем так, чтобы данные чередовались: в первой строке вопрос, во второй ответ (число 0 или 1), потом снова вопрос, затем ответ и т.д. В Visual Basic текстовые файлы называют последовательными. С ними можно производить следующие действия: - открыть файл для доступа к его содержимому, - либо для записи в него новых данных, либо для чтения записанной в нём информации; - внести в открытый файл очередную порцию информации (записать данные в файл из программы); извлечь данные из открытого файла {прочитать очередную порцию информации) и поместить их в программу; - закрыть файл после того, как работа над ним завершится. Открытие файла Open ИмяФайла For Режим работы As #ДескрипторФайла ИмяФайла – строка символов в кавычках, либо выражение, значением которого является строка символов. Она представляет собой путь к файлу. Если указано только имя файла (Например, Tекст.txt), то файл должен находиться в текущей папке. Режимы работы – это одно из трех ключевых слов: • Output - если файл открывается для записи в него данных начиная с первой позиции (при записи вся имевшаяся в нём старая информация будет стёрта); • Append - если файл открывается для записи в него данных не с первой, а с конечной позиции, так что вся имевшаяся в нём старая информация будет сохранена; • Input - если файл открывается для чтения из него текстовых данных. ДескрипторФайла — это любое целое число от 1 до 511. Оно служит идентификатором файла в программе. Закрытие файлов Все открытые текстовые файлы закрываются одинаково — с помощью оператора Close. Его синтаксис следующий: Close # [СписокДескрипторов] Запись в файл Записать данные в текстовый файл можно двумя способами: • с помощью оператора Write; • с помощью оператора Print. Оба оператора записывают данные в файл текстовыми строками. Синтаксис операторов записи в текстовый файл одинаков: Write #ДескрипторФайла, [СписокЗначений] Print #ДескрипторФайла, [СписокЗначений] Дескриптор Файла — это целое число, совпадающее с идентификатором открытого для записи файла. Список Значений — это записанные через Разделитель значения (или выражения, значения которых вычисляются, в частности переменные). Если Список Значений отсутствует, в файл будет записана пустая строка. Логика работы операторов Write и Print различна. Оператор Write Разделителем в Списке Значений является запятая. Список Значений просматривается последовательно, и элементы этого списка записываются в одну текстовую строку файла через запятую. Элементы типа String заключаются в кавычки. После записи последнего элемента записывается символ перехода на новую строку. Оператор Print Элементы Списка Значений в этом операторе должны быть разделены либо точкой с запятой, либо запятой. От этого зависит, как они будут записаны в текстовую строку файла: • если Разделитель — это точка с запятой (;), значения будут записываться подряд, без промежутков между ними; • если Разделитель — это запятая (,), значения будут записываться в 14-символьные зоны вывода. Кроме того, в Списке Значений оператора Print могут присутствовать функции: • Spc(n) — для вставки п пробелов между значениями в текстовой строке; • Tab(n) — для указания номера п позиции для записи следующего значения. Оператор Print удобен для тщательного редактирования текста выходного файла, а оператор Write лучше применять в том случае, когда выходной файл будет использоваться в дальнейшем как входной для других программ. Например: Private Sub Command1_Click() Open «Результат.txt» For Output As #1 Print #1, Label1.Caption Close #1 End Sub Чтение из файла Читать данные из текстового файла можно разными способами: - с помощью операторов Input и Line Input - с помощью функции Input. Оператор Input Оператор Input имеет следующий синтаксис: Input #Дескритор Файла Список Переменных Дескриптор Файла — это целое число, совпадающее с идентификатором открытого для чтения файла. Список Переменных — это записанные через запятую переменные любого типа. Например: Фамилия$, Имя$, Год Рождения% (Напомним, что суффиксы $ и % указывают на тип переменных - String и Integer соответственно. Их можно использовать вместо объявления типа переменных с помощью оператора Dim.) В каждой текстовой строке файла количество и тип значений должны совпадать с количеством и типом переменных в Списке Переменных. Чаще всего чтение из текстового файла производится циклически, с помощью оператора цикла с условием (Do While ... Loop или Do Until ... Loop). Условием окончания цикла является попытка прочитать данные после чтения последней текстовой строки. Эта попытка приводит к тому, что значением функции EOF будет True (Истина). Например: Private Sub Command1_Click() Open «Год рождения1.txt» For Input As #1 Do Until EOF(1) Input #1, Famili$, Imja$, God_Rogdenia$ Label1.Caption= Famili$ Label2.Caption= Imja$ Label3.Caption= God_Rogdenia$ Loop Close #1 End Sub Оператор Line Input Оператор Line Input имеет следующий синтаксис: LineInput #ДескриторФайла Переменная Переменная – переменная типа String ил Variant. Результатом работы оператора является присвоение Переменной – всей очередной текстовой строки. Функция Input – это функция двух аргументов. Первый её аргумент - это количество символов, которые надо прочесть из входного файла. Второй аргумент идентификатор (дескриптор) файла, открытого для чтения. Возвращаемое значение - прочитанный текст в виде символьной строки. Чаще всего эту функцию используют для одновременного чтения всего текстового файла и размещения его в тестовом поле экранной формы. Для этого необходимо выяснить размер файла в символах. Делается это с помощью функции LOF (Значение функции LOF имеет тип Long), единственным аргументом которой является идентификатор файла, открытого для чтения. Разработка теста с вопросами, прочитанными из файла. 1. Разработайте форму в соответствии с рисунком. 2. Напишите программу, которая - считывает 10 вопросов теста из файла Voprosy.txt и выводит их по одному в текстовое окно (каждый по щелчку на кнопке [Вопрос]); - проверяет и анализирует результат сразу же после выбора варианта ответа и выводит в метку поощряющее или ругающее сообщение; - после ответа пользователя на последний вопрос выводит в метку количество правильных ответов. 3. Дополнительно - после ответа пользователя на последний вопрос, кнопка [Вопрос] заменяется на кнопку [Сохранить]; - при нажатии на кнопку [Сохранить] – результат тестирования записывается в файл Resultat.txt. - появляется панель сообщений с сообщением о том, что сохранение прошло успешно, например, «Результат успешно сохранен». Урок 10 - 11. Файловый ввод/вывод. Использование меню в интерфейсе приложения. 1. Разбор решения задачи «Тест с вопросами, прочитанными из файла». Напишите программу, которая - считывает 10 вопросов теста из файла Voprosy.txt и выводит их по одному в текстовое окно (каждый по щелчку на кнопке [Вопрос]); - проверяет и анализирует результат сразу же после выбора варианта ответа и выводит в метку поощряющее или ругающее сообщение; - после ответа пользователя на последний вопрос выводит в метку количество правильных ответов. Дополнительно - после ответа пользователя на последний вопрос, кнопка [Вопрос], заменяется на кнопку [Сохранить]; - при нажатии на кнопку [Сохранить] – результат тестирования записывается в файл Resultat.txt. - появляется панель сообщений с сообщением о том, что сохранение прошло успешно, например, «Результат успешно сохранен». 1. Создадим в БЛОКНОТЕ файл Voprosy.txt. Организуем его следующим образом: в первой строке 1-й вопрос, во второй – ответ на 1-й вопрос (0 или 1); в третьей строке 2-й вопрос, в четвертой – ответ на 2-й вопрос и т.д. 2. Сохраним файл в папку будущего проекта. 3. В качестве основы проекта воспользуемся программой из предыдущего упражнения. 4. Добавим в оформление теста картинку. 5. В процедуре Private Sub Form_Load() организуем загрузку вопросов в массив Vopr из файла: Open "Vopr.txt" For Input As #1 For i = 1 To 10 Line Input #1, Vopr(i) Input #1, Otv(i) Next i Close #1 6. В процедуре Private Sub CmdVopr_Click() изменим количество вопросов на 10 и дополним условие окончания тестирования выводом результата в метку Label1 num = num + 1 If num > 10 Then Text1.Text = "" Label1.Caption = Str(sum) + " из 10" CmdVopr.Visible = False Text1.Enabled = False Exit Sub End If 7. В процедуре Private Sub Opt_Click(Index As Integer) дополним условие проверки правильности ответа счетчиков правильных ответов Sum. Дополнительно 8. Чтобы кнопка [Вопрос] заменялась на кнопку [Сохранить], нужно разместить их одна над другой. И так как кнопка [Сохранить] большую часть времени не видна, установим для нее свойство Visible=False. 9. Дополним процедуру Private Sub CmdVopr_Click() еще одной строкой: CmdSave.Visible = True – сделать видимой кнопку [Сохранить] num = num + 1 If num > 10 Then Text1.Text = "" Label1.Caption = Str(sum) + " из 10" CmdVopr.Visible = False CmdSave.Visible = True Text1.Enabled = False Exit Sub End If 10. Добавим новую процедуру Private Sub CmdSave_Click() Private Sub CmdSave_Click() Open "Resultat.txt" For Output As #1 Print #1, Label1.Caption Close #1 End Sub 11. Для того чтобы после сохранения результата появлялась панель сообщений, добавим в конец процедуры Private Sub CmdSave_Click() оператор: MsgBox “ Результат успешно сохранен ”,64, “Информация” 2. Использование стандартного компонента Common Dialog Control 6.0 для открытия файла. Разработка главного меню приложения с использованием Menu Editor. 1. Включим в панель инструментов компонент Common Dialog Control 6.0. Для этого выберем в меню:Project – Components..– Common Dialog Control 6.0 2. Разместим на форме экземпляр класса Common Dialog, изменим его свойства: Name–dlgOpen; DialogTitle–“Загрузить вопросы ”; Filter – "Файл с вопросами"|*.txt|. 3. Создадим меню приложения. Меню будет состоять из двух пунктов: «Файл» с подпунктами «Открыть» и «Сохранить», и «Выход». 4. Выберите в меню VB: Tools – Menu Editor 5. Создайте меню по образцу, задав Name для пункта «Файл»–mnuFile, для «Открыть»–mnuOpen, для «Сохранить»– mnuSave, для «Выход»–mnuExit: 6. За основу приложения возьмем программу из предыдущего упражнения. 7. Удалим в процедуре Private Sub Form_Load() строки, связанные с открытием файла. 8. Создадим процедуру для объекта mnuOpen: Private Sub mnuOpen_Click() dlgOpen.ShowOpen ‘метод ShowOpen открывает стандартное диалоговое окно «Открыть..» Open dlgOpen.FileName For Input As #1 ’ dlgOpen.FileName– используется вместо имени файла For i = 1 To 10 Line Input #1, Vopr(i) Input #1, Otv(i) Next i Close #1 CmdVopr.Enabled = True mnuOpen.Enabled = False End Sub 9. Создадим процедуру для объекта mnuSave: Private Sub mnuSave_Click() Open "Resultat.txt" For Output As #1 Print #1, Label1.Caption Close #1 mnuSave.Enabled = False End Sub 10. Процедура для пункта «Выход» Private Sub mnuExit_Click() End End Sub Урок 12. Создание приложения 1 «Графический редактор» Написать простейший графический редактор, позволяющий рисовать линии с помощью нажатия и перемещения левой кнопки мыши, а также стирать аналогичными действиями правой кнопки. Дополнительно Предусмотреть выбор цвета линии из палитры цветов в меню приложения. Глушаков С.В., Мельников В.В., Сурядный А.С. Программирование в среде Windows: Учебный курс – Харьков: Фолио, М.: АСТ, 2000–стр. 226-229. 1 Решение Dim Risov As Boolean, Tol As Integer Option Explicit Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Risov = True CurrentX = X CurrentY = Y 'Режим карандаш (нажата левая кнопка мыши) Цвет черный, толщина 1 If Button = vbLeftButton Then DrawWidth = 1 ForeColor = ClgColor.Color End If 'Режим стерка (правая кнопка мыши) If Button = vbRightButton Then DrawWidth = 20 ForeColor = BackColor End If End Sub Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) 'Рисование линии If Risov = True Then Line -(X, Y) End Sub Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Risov = False End Sub Private Sub mnuPalet_Click() ClgColor.ShowColor End Sub Урок 13. Работа с таймером 2 В языке Visual Basic существует возможность выполнения через одинаковые промежутки времени операций, которые не зависят от действий пользователя во время работы приложения. Для этого используется элемент управления Timer; основная область его применения - определение промежутка времени, в течение которого выполнялись определенные действия в приложении. Следует отметить, что данный элемент не отображается на форме при работе программы. Глушаков С.В., Мельников В.В., Сурядный А.С. Программирование в среде Windows: Учебный курс – Харьков: Фолио, М.: АСТ, 2000 – стр. 260-263. 2 Название Описание Enabled Позволяет таймеру начать отсчет (Enabled = True) (СВОЙСТВО) Interval Задает количество миллисекунд для интервала времени между (свойство) событиями Timer для таймера Timer Выполняется каждый раз, по истечении очередного (событие) промежутка времени, заданного свойством Interval Например, обновляясь созданная по форме часов, которые будут показывать текущее время, через каждую секунду, нужно на этапе разработки поместить таймер на форму, задать свойство Interval = 1000 (I секунда), а также предусмотреть объект для отображения времени. Как правило, с этой целью используется метка, у которой, при выполнении процедуры обработки события Timer для таймера, соответствующим образом изменяется значение свойства Caption. Следует отметить тот факт, что существует несколько особенностей, связанных со свойством Interval, влияющих на обработку таймера: значения, которые может принимать свойство Interval, находятся в диапазоне [0; 64767], т.е. событие Timer для таймера не может выполняться реже, чем 1 раз в 65 секунд; несмотря на то, что Interval принимает значения, измеряемые в миллисекундах, реальная частота возникновения события Timer не может превышать 18 раз в секунду, т.к. именно с такой частотой система генерирует отсчеты (ticks) времени. Создание приложения «Мишень» Написать программу, в которой за короткий промежуток времени – 30 секунд – необходимо как можно больше раз щелкнуть указателем мыши по изображению мишени. Последняя, при очередном попадании перемещается в случайное место на форме. Элемент Форма Свойство (Name) Border Style Caption Изображение (Name) мишени Picture Таймер (Name) Enabled Interval Метка для секундомера (Name) Метка для подсказки (Name) Caption Метка для результата (Name) Значение frmCel 1 - Fixed Single Мишень imgCel (Icon) Timer1 True 1000 LblTimer Label2 "Количество:" LblResult Решение Dim Num As Integer, CurrentTime As Integer Option Explicit Private Sub Form_Load() Call Init End Sub Private Sub Init() Инициализация Num = 0: CurrentTime = 30: LblResult.Caption = "0" LblTimer.Caption = CurrentTime Call ShowCel End Sub Private Sub ShowCel() Dim dx, dy As Integer Randomize dx = Int(Rnd * (ScaleWidth - ImgCel.Width)) Координата у смещена из-за меток вверху dy = Int(Rnd * (ScaleHeight - ImgCel.Height - 600)) + 600 ImgCel.Move dx, dy End Sub Private Sub imgCel_click() Num = Num + 1 LblResult = Num Call ShowCel End Sub Private Sub Timer1_Timer() Dim res With Timer1 CurrentTime = CurrentTime - 1 LblTimer.Caption = CurrentTime If CurrentTime = 0 Then res = "Результат" + Str$(Num) res = res + Chr(13) + Chr(10) res = res + "Начать заново?" res = MsgBox(res, vbQuestion + vbYesNo, "Мишень") If res = vbNo Then End Else Call Init End If End If End With End Sub