- •Министерство образования россИйСкой федерации
- •Введение 10 Глава 1. Основные термины, понятия и определения информатики 13
- •Глава 2. Операторы 36
- •Глава 3. Основные вcтроенные функции 62
- •Глава 4. Среда разработки Visual Basic 69
- •Глава 5. Основные общие свойства, события и методы 73
- •Глава 6. Объекты, управляющие элементы 79
- •Глава 7. Модули и классы 102
- •Глава 8. Разработка интерфейса 107
- •Глава 9. Работа с базами данных 118
- •Глава 10. Графические средства 174
- •Глава 16. Лабораторный практикум 258
- •Предметный указатель 290 Библиографический список 295
- •Введение
- •Порядок изучения и классификация учебного материала
- •Глава 1. Основные термины, понятия и определения информатики
- •1.1. Алгоритмы
- •1. Словесная форма
- •2. Блок ‑ схема
- •3. Псевдокоды
- •1.2. Языки программирования
- •1. Естественный язык.
- •1.3. Визуальное объектно‑ориентированное программирование
- •1.4. Этапы проектирования программной системы
- •1.5. Общий порядок подготовки программ к выполнению
- •1.6. Типы программ
- •1.7. Информация, данные и их характеристики
- •1.8. Системы счисления
- •1.9. Организация файлов
- •1.10. Структурное программирование
- •1.11. Организация человеко‑машинного интерфейса
- •1.12. Информационные технологии
- •1.13. Защита информации
- •1.14. История возникновения и развития языка Basic
- •Глава 2. Операторы
- •2.1. Объявление данных
- •Типы данных
- •2.1.1. Определение типа пользователя ‑ Type
- •2.1.2. Объявление записи
- •2.1.3. Объявление массива
- •2.1.4. Объявление локальных статических переменных ‑ Static
- •2.1.5. Объявление именованных констант ‑ Const
- •2.1.6. Встроенные именованные константы
- •2.1.7. Перечисленияenum(vb)
- •2.1.8. Коллекции данныхCollection(vb)
- •Вопросы для самопроверки и контроля
- •2.2. Переопределение массивов
- •2.2.1. Инициализация массива ‑ Erase
- •2.2.2. Переопределение массивов ‑ Redim
- •2.2.3. Изменение начала отсчета индексов ‑ Option Base
- •Вопросы для самопроверки и контроля
- •2.3. Работа с внутренними подпрограммами
- •2.3.1. Переход к внутренней подпрограмме ‑ Gosub
- •2.3.2. Возврат из внутренней подпрограммы ‑ Return
- •2.4.2. Безусловный переход ‑ Goto
- •2.4.3. Условный переход ‑ If, Iif
- •Однострочный вид оператора:
- •Пример. Нахождение наибольшего числа из двух чисел a, b.
- •2.4.4. Выбор варианта ‑ Select
- •2.4.5. Цикл ‑ For ... Next
- •2.4.6. Цикл ‑ For Each ... Next(Vb)
- •2.4.7. Цикл ‑ Do... Loop
- •2.4.9. Обмен значениями двух переменных- Swap (qb)
- •Вопросы для самопроверки и контроля
- •2.5. Ввод-вывод
- •2.5.1. Ввод данных с клавиатуры ‑ Input (qb)
- •2.5.2. Ввод строки символов ‑ Line Input (qb)
- •2.5.3. Вывод данных с символами‑разделителями на дисплей ‑ Write (qb)
- •2.5.4. Вывод данных на дисплей ‑ Print
- •2.5.5. Вывод данных на дисплей в заданном формате ‑ Print Using (qb)
- •2.5.6. Вывод данных на принтер ‑ Lprint (qb)
- •2.5.7. Задание числа колонок и строк на экране ‑ Width (qb)
- •2.5.8. Управление курсором- Locate (qb)
- •2.5.9. Чтение из оперативной памяти-Data, Read, Restore (qb)
- •Вопросы для самопроверки и контроля
- •2.6. Работа с файлами
- •2.6.1. Открытие файла или устройства ‑ Open
- •2.6.2. Вывод данных с символами-разделителями в файл ‑ Write #
- •2.6.3. Вывод данных в файл ‑ print #
- •2.6.4. Ввод данных из текстового файла ‑ Input #
- •2.6.5. Ввод строки символов из файла ‑ Line Input#
- •2.6.10. Захват и освобождение файла ‑ Lock, Unlock
- •2.7.2. Задание палитры ‑ Palette (qb)
- •2.7.3. Задание цвета ‑ Color (qb)
- •2.8.3. Изображение окружности и эллипса ‑ Circle (qb)
- •2.8.4. Вычерчивание произвольного изображения ‑ Draw (qb)
- •2.8.5. Окраска изображения ‑ Paint (qb)
- •2.8.6. Запись фрагмента экрана в массив ‑ Get(qb)
- •2.8.7. Восстановление изображения на экране ‑ Put (qb)
- •2.8.8. Копирование страниц экрана ‑ Pcopy (qb)
- •2.10. Вызов внешних процедур и функций
- •2.10.1. Объявление процедур ‑ Declare
- •2.10.2. Задание процедуры ‑ Sub
- •2.10.3. Задание функции ‑ Function
- •2.10.4. Вызов процедуры, функции ‑ Call
- •Вопросы для самопроверки и контроля
- •2.12.4. Конец процедуры обработки прерываний ‑ Resume
- •Глава 3. Основные вcтроенные функции
- •3.1. Математика
- •3.2. Массивы
- •3.3. Строки
- •3.4. Даты и время
- •3.5. Преобразование и контроль данных
- •3.6. Ввод и вывод данных
- •3.7. Установка цвета
- •3.11. Поиск, выбор, замена (vb)
- •3.12. Финансово‑математические функции (vb)
- •Глава 4. Среда разработки Visual Basic
- •4.1. Окна и панели среды разработки
- •4.2. Настройка среды разработки
- •Глава 5. Основные общие свойства, события и методы
- •5.1. Cвойства
- •5.2. События
- •5.3. Методы
- •5.4. Размещение объектов
- •5.5. Экран
- •Вопросы для самопроверки и контроля
- •Глава 6. Объекты, управляющие элементы
- •6.1. Формы
- •6.2. Командные кнопки (CommandButton)
- •6.3. Текстовые поля (TextBox, MaskedEdit, RichTextBox)
- •6.4. Надписи (Label)
- •6.5. Рамки (Frame)
- •6.6. Зависимые переключатели (OptionButton)
- •6.7. Независимые переключатели (CheckBox)
- •6.8. Списки (ListBox)
- •6.9. Комбинированные поля (ComboBox)
- •6.10. Рисунки (Image)
- •6.11. Графические поля (PictureBox)
- •6.12. Таймеры (Timer)
- •6.13. Полосы прокрутки (hScrollBar,vScrollBar,FlatScrollBar)
- •6.14. Ползунок (Slider)
- •6.15. Списки устройств (DriveListBox)
- •6.16. Списки каталогов (DirListBox)
- •6.17. Списки файлов (FileListBox)
- •6.18. Кнопки-счетчики (UpDown)
- •6.19. Полоса процесса (Progressbar)
- •6.20. Контур (Shape)
- •6.21. Линия (Line)
- •6.22. Закладки (ssTab, TabStrip)
- •6.23. Таблицы (msFlexGrid)
- •6.24. Список изображений (ImageList)
- •6.25. Отображение иерархических структур (TreeView)
- •6.26. Отображение списков (ListVew)
- •6.27. Анимация avi (Animation)
- •6.28. Календарь (MonthView, Calendar)
- •6.29. Ввод даты и времени (DateTimePicker)
- •Вопросы для самопроверки и контроля
- •Глава 7. Модули и классы
- •7.1. Модули
- •7.2. Классы
- •Вопросы для самопроверки и контроля
- •Глава 8. Разработка интерфейса
- •8.1. Меню
- •8.2. Всплывающее и динамическое меню
- •8.3. Панель инструментов (ToolBar)
- •8.4. Общий диалог
- •8.4.1. Размещение общего диалога (Common Dialog)
- •8.4.2. Диалог открытия файла
- •8.4.3. Диалог настройки шрифтов
- •8.4.4. Диалог настройки цвета
- •8.4.5. Диалог настройки принтера
- •8.5. Встроенные и специальные диалоги
- •8.6. Панель состояния (StatusBar)
- •Вопросы для самопроверки и контроля
- •Глава 9. Работа с базами данных
- •9.1. Создание баз данных в Data Manager Pro
- •9.2. Создание запросов в Data Manager Pro
- •9.3. Создание форм мастером vb Data Form Wizard
- •9.4. ТехнологияDaOдоступа к базам данных
- •9.4.1. Объект управления Data
- •9.4.2. Объекты управления, связанные с базой данных
- •9.4.3. Методы
- •Уплотнение базы данных методом CompactDatabase
- •9.4.4. Создание базы, таблиц, индексов, связей и запросов
- •9.4.5. Обмен данными с помощью репликаций
- •9.5. Команды языка запросов sql
- •9.5.1. Запросы на выборку данных
- •Указание результатов выборки и источников данных
- •Критерий связи и отбора данных
- •Группировка данных
- •Сортировка
- •Примеры
- •9.5.2. Запросы на обновление данных
- •9.5.5. Изменение структуры таблицы
- •9.5.6. Объединение таблиц
- •9.5.7. Перекрестные запросы
- •9.5.8. Подзапросы
- •9.5.9. Создание и использование базы данных средствами запросов иAdo
- •9.6. Формирование отчетов средствами Crystal Reports
- •9.7. Соединение среды разработки с базой данных
- •9.8. Создание конструктора среды данных
- •9.9. ТехнологияAdOдоступа к базам данных
- •9.9.1. Объект управления ado Data (Adodc)
- •9.9.2. Командные средства
- •9.9.3. Хранимые процедуры (запросы)
- •9.9.4. Отключение наборов данных
- •9.9.5. Копирование набора в двумерный массив (GetRows)
- •9.10. Создание запросов с использованием конструктора среды данных
- •9.11. Формирование отчетов средствами DataReport
- •9.12. Применение отчетов, сформированных субдAccess
- •Вопросы для самопроверки и контроля
- •Глава 10. Графические средства
- •10.1. Общая информация
- •10.2. Отображение точки ‑ pSet, Point
- •10.3. Отображение отрезка и прямоугольника ‑ Line
- •10.4. Изображение окружности, дуг и секторов ‑ Circle
- •10.5. Формирование диаграмм (msChart,ChartFx)
- •Вопросы для самопроверки и контроля
- •Глава 11. Работаcмышью
- •11.1. События и методы
- •11.2. Перенос объектов
- •11.3. Изменение размеров объектов
- •11.4. Рисование
- •X As Single, y As Single) ‘процедура обработки нажатия мышки
- •12.2. Имитация нажатий клавиш
- •12.3. Печать
- •Вопросы для самопроверки и контроля
- •Глава 13. Отладка, компиляция и распространение программ
- •13.1. Отладка
- •13.1.1. Устранение синтаксических и логических ошибок
- •13.1.2. Обработка ошибок, возникающих при выполнении программы
- •13.2. Компиляция
- •13.3. Распространение программ
- •Вопросы для самопроверки и контроля
- •Глава 14. Дополнительные возможности
- •14.1. ActiveX ‑ элементы
- •14.2. Динамически присоединяемые библиотеки (dll,ActiveXdll)
- •14.3. Функции Windows api
- •14.4. Создание справочной системы
- •14.5. Технология ole
- •14.6. Обмен данными через буфер Clipboard
- •14.7. Директивы условной компиляции
- •14.8. Прерывание процессов функцией DoEvents
- •14.9. Параметры настройки приложения
- •14.10. Динамическое создание объектов
- •Вопросы для самопроверки и контроля
- •Глава 15. СозданиеWeb‑страниц
- •15.1. Основные средства созданияWeb‑страниц
- •15.2. ОсновыHtml
- •15.2.1. Правила написания
- •15.2.2. Структура документа
- •15.2.3. Форматирование текста
- •15.2.4. Атрибуты выравнивания текста и управления цветом
- •15.2.5. Шрифты
- •15.2.6. Списки
- •15.2.7. Изображения
- •15.2.8. Таблицы
- •15.2.9. Якорь (элемент привязки документов, их частей, почты)
- •15.2.10. Фреймы
- •15.2.11. Формы, управляющие элементы
- •15.2.12. Использование компонентовActiveX
- •15.2.13. Дополнительные теги
- •15.2.14. Листы стилей
- •15.3. Клиент и сервер
- •15.4. СозданиеAsp‑файла
- •15.5. Основы создания сценариев
- •15.6. Управление броузером
- •15.6.1. ОбъектWindow
- •15.6.2. ОбъектFrame
- •15.6.3. ОбъектLocation
- •15.6.4. ОбъектNavigator
- •15.6.5. Объект History
- •15.6.6. ОбъектDocument
- •15.6.7. ОбъектLinks
- •15.6.8. Объект Anchors
- •15.6.9. ОбъектForms
- •15.6.10. ОбъектElemеnts
- •15.6.10.1. Кнопки (Button, Reset, Submit)
- •15.6.10.2. Переключатели (CheckBox,Radio)
- •15.6.10.3. Поля ввода (Text, TextArea, Password)
- •15.6.10.4. Списки выбора (Select)
- •15.7. ОбъектыAsp
- •15.8. Работа с текстовыми файлами
- •15.9. Работа с базами данных
- •15.10. Визуальный редакторHtml‑документовDreamweaver
- •15.10.1. Палитра основных объектов
- •15.10.2. Настройка Dreamweaver
- •15.10.3. Структура и размещение файлов
- •15.10.4. Создание заготовкиHtml‑документа
- •15.10.5. Создание пустой таблицы
- •15.10.6. Форматирование ячеек таблицы
- •15.10.7. Размещение картинки
- •15.10.8. Создание меню
- •15.10.9. Форматирование текста
- •15.10.10. Режимы работы объектов
- •15.10.11. Команды
- •15.10.12. Анимация
- •Вопросы для самопроверки и контроля
- •Глава 16. Лабораторный практикум
- •16.1. Числовые типы, оператор присваивания
- •16.2. Алгоритмы линейной структуры
- •16.3. Алгоритмы разветвляющей структуры
- •16.4. Алгоритмы циклической структуры
- •16.5. Алгоритмы работы с рядами
- •16.6. Алгоритмы работы с массивами
- •16.7. Обработка символьных данных
- •16.8. Организация подпрограмм
- •16.9. Работа с файлами
- •16.10. Работа с формами в Visual Basic
- •16.11. Совместная работа с файлами, базами и отчетами
- •Пример задачи для Quick Basic
- •Текст программ
- •1. Учет авиапассажиров.
- •16. Учет платежных поручений в банке.
- •2.2. Переопределение массивов
- •2.3. Работа с внутренними подпрограммами
- •2.4. Организация вычислений
- •2.5. Ввод-вывод
- •2.6. Работа с файлами
- •2.10. Вызов внешних процедур и функций
- •5. Основные общие свойства, события и методы
- •6. Объекты, управляющие элементы
- •7. Модули
- •8. Разработка интерфейса
- •9. Работа с базами данных
- •10. Графические средства
- •11. Работа с мышью
- •12. Печать
- •13. Отладка, компиляция и распространение программ
- •14. Дополнительные возможности
- •15. Создание Web‑страниц средствами vbScript, html, asp
- •Приложение 2. Вопросы для экзаменационных билетов
- •Предметный указатель
- •Библиографический список
- •Плещёв Владимир Васильевич Информатика и программирование.
- •С примерами и упражнениями
16.4. Алгоритмы циклической структуры
Часто при решении задач приходится многократно вычислять значение по одним и тем же алгоритмам. Такие многократно повторяемые алгоритмы называются циклами. Различаютциклыс заданныминеизвестным числом повторений. К последним относятся итерационные циклы, характеризующиеся последовательным приближением к искомому значению с заданной точностью.
Для организации цикла необходимо выполнить следующие действия: 1) задать перед циклом начальное значение переменной, изменяющейся в цикле; 2) изменять переменную перед каждым новым повторением цикла; 3) проверять условие окончания или повторения цикла; 4) управлять циклом, т.е. переходить к его началу, если он не закончен, или выходить из него по окончании. Последние три функции выполняются многократно.
Переменная, изменяющаяся в цикле, называется параметром цикла.
Пример.Вычислить и вывести на печать значения функциипри значении х, изменяющемся от 0 до 3 с шагом 0,1.
Этот цикл с заданным числом повторений, вычисляемым по выражению где хки хн‑ конечное и начальное значения аргумента; h ‑ шаг изменения аргумента; скобкиозначают, что берется целая часть от деления.
Перед первым выполнением цикла необходимо задать начальное значение аргумента х, равное 0, а затем 31 раз выполнять вычисление и печать значений функции у. При каждом новом выполнении цикла необходимо изменять аргумент на величину шага, равного 0,1. Чтобы процесс не был бесконечным, необходимо задать условия повторения или окончания цикла.
Схема алгоритма приведена на рис.16.4.1, а. На схеме блок 3 выполняет первую функцию, необходимую для организации цикла, блок 6 ‑ вторую, блок 7 ‑ третью и четвертую. Эта схема получается более компактной и наглядной, если для ее построения использовать блок цикла (п. 2.4.5), который выполняет все функции, необходимые для организации цикла (рис. 16.4.1, б].
Текст программы варианта “A”
Private Sub Command1_Click() ‘процедура решения примера
Dim a As Single, x As Single, y As Single 'объявления переменных
a=Text1.Text‘формирование значенияA
x= 0 ‘присвоение начального значения перменнойX
m:y=a^3/(a^2+x^2) ‘формирование значенияY
Debug.Printy; ‘вывод в окно отладки значения У
x=x+ 0.1 ‘увеличениеXна величину приращения 0.1
Ifx<= 3ThenGoTom‘еслиX<=3, то продолжить вычислениеcметкиM
EndSub‘конец процедуры
Текст программы варианта “Б”
Private Sub Command1_Click() ‘процедура решения примера
Dim a As Single, x As Single, y As Single 'объявления переменных
a=Text1.Text‘формирование значенияA
For x = 0 To 3 Step 0.1 ‘заголовок цикла
y=a^ 3 / (a^ 2 +x^ 2) ‘формирование значенияY
Debug.Printy; ‘вывод в окно отладки значения У
Next‘конец тела цикла
End Sub ‘конец процедуры
Задачи для программирования
Вычислить значения функции , если Х задано массивом, состоящим из 40 элементов.
Вычислить и вывести на печать положительные значения функции у=sin (nx) ‑ cos (n/x) при n = 1, 2, …, 50.
Вычислить значения функции z = xk/k, большие а, если k=1, 2, ….
Вычислить значения функции у = а3/(а2+ х2) при х, изменяющемся от 0 до 3 с шагом 0,1.
Напечатать таблицу значений аргумента х и функции
у(х) = а3/(а2+ х2) при значении х, изменяющихся от 0 до 3 с шагом 0,1.
Составить программу для вычисления значения функции у = при одновременном изменении аргументов t от 2 до 3 с шагом 0,2 и х от 1 до 2 для а = ‑2,1.
Составить программу вычисления n! (1 . 2. 3. 4..... n):
Составить программу, вычисляющую экстремальное значение функции при изменении аргумента х от 0 до 4 с шагом h.
Вычислить:
а) у = (2n ‑1)! = …, n >0;
б) у = (2n)! = …, n >0;
в) у = n!, n > 0.
Вычислить: у = .
Определить, является ли заданное натуральное число совершенным, т.е. равным сумме всех своих делителей, кроме самого этого числа (например, число 6 совершенно: 6=1+2+3).
Дано целое n >2. Напечатать простые числа из диапазона [2, n].
Найти сумму цифр заданного натурального числа.
Вычислить k ‑ количество точек с целочисленными координатами, попадающих в круг радиуса R (R>0) с центром в начале координат.
Напечатать в возрастающем порядке все трехзначные числа, в десятичной записи которых нет одинаковых цифр.
2 3 4 5 6 7 8 Начало Конец а y
x = x+0,1 x
3 ДА НЕТ y
= a3/(a2+x2) 1
2 1 4 5 6 3 Начало Конец а y
y
= a3/(a2+x2) x=0
Рис.
16.4.1. Блок‑схема алгоритма
For x = 0 to 3 step 0.1 а) б) X>3
Даны целое n и вещественные числа Рассматривая парыкак координаты точек на плоскости, определить радиус наименьшего круга (с центром в начале координат), внутрь которого попадают все эти точки.
Напечатать все простые делители натурального числа.
18. Уравнение (предложена М.В. Дякиным).
Дана последовательность , ‑ натуральное число. Квадратные скобкиобозначают в формуле взятие целой части (округление до ближайшего меньшего целого числа). Обозначим .
Написать программу, которая для заданного натурального решает уравнение,
где - обозначение числа- факториал:.
Программа должна найти и сообщить:
1) точное значение xв виде несократимой дроби;
2) сумму цифр числителя и сумму цифр знаменателя этой дроби.
Образец вывода результата:
Число 6, числитель дроби X=10, знаменатель дробиX=63.
Сумма цифр числителя =1, сумма цифр знаменателя =9.
19. Задача “Кучи и яма” (предложена А.Б. Дернятиным).
Имеются яма и несколько куч (не более пяти) кирпичей. Разрешается перекладывать кирпичи из куч в яму по следующему правилу: если количество кирпичей в куче больше, чем в яме, то можно переложить столько кирпичей, сколько находится в яме в данный момент. Требуется разработать алгоритм, который позволяет уложить в яму как можно больше кирпичей.
Образец вывода результатов:
К1=150001 К2=81234 Я=70000 было
К1=150001 К2=11234 Я=140000 в яму из кучи 2‑й
К1=10001 К2=11234 Я=280000 в яму из кучи 1‑й
20. Представления натурального числа (предложена Д.Я.Шараевым).
Известно, что любое натуральное число N(0<N1000) может быть представлено в виде суммы квадратов не более четырех положительных целых чисел. Составьте программу, которая в ответ на ввод числаNвыводит количествоSвсех различных представлений этого числа. Представления, отличающиеся лишь порядком слагаемых, считаются одинаковыми.
Пример.N=4.S=2. (12+12+12+12=4, 22=4)
21. Задача “Многоугольник” (предложена Н.Ю. Лукояновым).
На плоскости декартовыми координатами своих вершин дан выпуклый -угольник. Его вершины пронумерованы от 1 доnв порядке следования против часовой стрелки. Задан номер. Требуется провести через-вершину-угольника два луча (назовем ихaиb) так, чтобы эти лучи делили-угольник на три равновеликие по площади части.
Входные данные: - число вершин; (х1,y1), (x2,y2), … , (xn,yn) - координаты 1-й, 2-й, и т.д.-й вершины соответственно;- номер выделенной вершины.
Выходные величины: координаты (ха,ya) и (xb,yb) точек пересечения лучейaиbс границей-угольника.