Элективный курс «Программирование задач по теме функция».
методическая разработка по информатике и икт (10 класс) на тему
В настоящее время возросла роль первичного профессионального самоопределения для учащихся, заканчивающих основную школу. Это связано с тем, что проводится эксперимент по совершенствованию структуры и содержания общего образования, ядром которого является переход в старших классах на профильное обучение в соответствии с Постановлением Правительства РФ №224 от 23.03.2001. Профиль обучения предопределяет профессиональный выбор учащихся, от которого в немалой степени зависят и успешность учения в старших классах, подготовка школьников к переходу на следующую образовательную ступень, а в целом и к будущей профессиональной деятельности. Чем точнее будет самоопределение, тем больше вероятность того, что общество получит хорошего специалиста-профессионала.
Скачать:
Вложение | Размер |
---|---|
elektivnyy_kurs.doc | 661.5 КБ |
Предварительный просмотр:
Департамент образования г. Нижневартовска
Муниципальная общеобразовательная средняя школа №7
ПРОГРАММА
«Программирование задач по теме функция»
(элективный курс для учащихся 10-11 классов информационно-технологического или математического профилей)
Автор программы:
Острожная Елена Валериевна
учитель информатики МОСШ №7
Пояснительная записка.
В настоящее время возросла роль первичного профессионального самоопределения для учащихся, заканчивающих основную школу. Это связано с тем, что проводится эксперимент по совершенствованию структуры и содержания общего образования, ядром которого является переход в старших классах на профильное обучение в соответствии с Постановлением Правительства РФ №224 от 23.03.2001. Профиль обучения предопределяет профессиональный выбор учащихся, от которого в немалой степени зависят и успешность учения в старших классах, подготовка школьников к переходу на следующую образовательную ступень, а в целом и к будущей профессиональной деятельности. Чем точнее будет самоопределение, тем больше вероятность того, что общество получит хорошего специалиста-профессионала.
Профильное обучение информатике реализуется через введение разнообразных интегрированных и профильных курсов. Интегрированный элективный курс по теме «Программирование задач по теме функция» предназначен для учеников 10 или 11 класса. Изучение этого курса позволяет сформировать представление учеников о графиках многих функций, закрепить умения графически решать уравнения, неравенства, изучить графические возможности языка программирования Visual Basic, способы программирования ветвящихся и циклических алгоритмов, создание меню. Таким образом, данный курс позволяет расширить и углубить знания учеников в области информатики и является поддержкой курса алгебры 10 - 11 класса. Курс рассчитан на 34 урока. Можно произвести деление курса на две части (по полугодиям): «Основы программирования на Visual Basic» - 16 часов и «Программирование графиков функций» - 18 часов. Если учащиеся знакомы со средой программирования Visual Basic, то можно начать сразу с части 2.
Рекомендуемые формы занятий – индивидуальные работы, работа в парах, проектная деятельность. По завершению обучения учащимся предлагается итоговая работа в виде проекта. Выполнение заданий на программирование графиков функций способствует развитию алгоритмического стиля мышления, умений анализировать и синтезировать, обобщать.
Практические работы с №4 по № 17 в готовом виде представлены на CD –диске.
Профиль: физико-математический, информационно-технологический.
Цель курса: формирование у учащихся умений составлять программы для решения задач по алгебре на тему «функция».
Реализации данной цели способствует решение следующих задач:
- расширить и углубить знания учащихся в области программирования;
- ознакомить учащихся со средой программирования Visual Basic;
- формирование практических навыков работы с интегрированной средой программирования Visual Basic;
- показать практическую значимость знаний по информатике;
- систематизировать и обобщить знания учащихся, полученных в курсе информатики и алгебры;
- организовать практическую работу учащихся;
- способствовать формированию алгоритмического стиля мышления; аналитических способностей, структурного мышления;
- способствовать формированию пространственного воображения.
Оборудование: компьютеры, программа Visual Basic 6.0.
Требования к знаниям и умениям учащихся после изучения курса:
Учащиеся должны знать:
- окно программы Visual Basic и основные управляющие элементы;
- структуру основных алгоритмических конструкций;
- основные типы данных и операторы языка Visual Basic;
- графические возможности языка Visual Basic;
- свойства и графики тригонометрических, степенных функций;
- правила решения простейших тригонометрических уравнений на единичной окружности;
- определение касательной к графику, уравнение касательной;
- понятие монотонности функции, правила нахождения точек максимума и минимума.
Учащиеся должны уметь:
- использовать алгоритмические конструкции для построения алгоритмов;
- использовать графические возможности языка программирования Visual Basic;
- разрабатывать и записывать на языке программирования типовые алгоритмы;
- создавать проекты с использованием визуального объектно-ориентированного программирования;
- создавать программы на построение графиков различных функций, построение касательных, нахождение промежутков возрастания и убывания функций;
- программировать графическое решение уравнений и неравенств.
Содержание курса:
Тема 1. Введение в объектно-ориентированное программирование.
Объекты: свойства, методы, события. Задание атрибутов объекта. Описание методов объекта. Событийные процедуры.
Тема 2. Интегрированная среда разработки языка Visual Basic.
Окно программы, форма и управляющие элементы. Тип, имя и значение переменной. Выражения. Оператор присваивания. Метод Print, Show.
Тема 3. Программирование основных алгоритмических конструкций.
Условный оператор. Программирование циклических конструкций: цикла со счётчиком, цикла с предусловием и с постусловием.
Тема 3. Графические возможности языка Visual Basic.
Графические методы Scale, Pset, Line, Circle. Построение графика функции.
3.1. Построение графиков функций, содержащих ограничения на области определения или модуль.
3.2. Построение графиков сложных функций.
3.3. Построение касательных к графику функции.
3.4.Составление программ, реализующих нахождение промежутков возрастания, убывания и построение графика функции.
3.5. Построение окружностей. Решение тригонометрических уравнений на единичной окружности.
3.6. Графическое решение уравнений и неравенств.
3.7. Зачётная работа «Построение графика функции».
Календарно-тематический план
№ | тема | Форма занятий | |
теория | Практика (ч) | ||
1 | Введение в объектно-ориентированное программирование. | 1 | 1ч - работа №1 |
2 | Интегрированная среда разработки языка Visual Basic. | 1 | 2ч – работа №2, № 3 |
3 | Программирование основных алгоритмических конструкций. | 1 | 6ч – работа №4-№8 |
4 | Графические возможности языка Visual Basic. | 1 | 3ч – работа №9, №10 |
5 | Построение графиков функций, содержащих ограничения на области определения или модуль. | 2ч – работа №11, №12 | |
6 | Построение графиков сложных функций. | 3ч – работа №13 | |
7 | Построение касательных к графику функции. | 2ч – работа №14 | |
8 | Составление программ, реализующих нахождение промежутков возрастания, убывания и построение графика функции. | 2ч – работа №15 | |
9 | Построение окружностей. Решение тригонометрических уравнений на единичной окружности. | 2ч – работа №16 | |
10 | Графическое решение уравнений и неравенств. | 2ч – работа №17 | |
11 | Итоговая работа «Построение графика функции». | 2ч | |
12 | Защита итоговой работы | 1ч | |
13 | Резерв – 1ч. | ||
Итого: 34 ч. | 4ч | 29ч |
Тематика практических работ
№1.
Работа со свойствами объектов и событийными процедурами в редакторе Word.
Задание: Создать в текстовом документе кнопку «шрифт», при нажатии на которую символы текстового поля получают начертание «полужирный курсив», изменяют свой цвет на красный.
№2.
Работа с управляющими элементами, организация перехода между формами, функция Val.
Задание: Создать программу решения линейного уравнения. Ответ вывести на отдельной форме.
№3.
Работа со строковыми переменными.
Задание: Составить программу, демонстрирующую и определяющую операцию конкатенации. Продумать графический интерфейс программы.
№4.
Условный оператор If…Then…Else. Вложенные операторы.
Задание: Составить программу решения квадратного уравнения. Продумать графический интерфейс. Составить 2 варианта программы с использованием нескольких операторов If…then и использованием вложенных операторов.
№5.
Условный оператор If…THEN…ELSE, сложные условия, оператор безусловного перехода GoTo. (2 урока)
Задание: Составить программу, определяющую истинность математического выражения. Предложить выбор знака отношения пользователю с помощью командных кнопок. Ещё одной кнопкой осуществить проверку истинности. Продумать выход из программы.
№6.
Циклы. (для демонстрации цикла со счётчиком и условием)
Задание: Составить программу вычисления суммы всех чётных (нечётных) чисел, меньших 100.
№7
(Самостоятельная работа).
Задание: Составить программы вычисления факториала числа, используя циклы с предусловием, постусловием, счётчиком.
№8.
Вложенные циклы, циклы с ветвлением, функция Int().
Задание: Дано целое число п>2. Составить программу, печатающую все простые числа из диапазона [2, n].
№9.
Графические возможности Visual Basic. Задание системы координат. Рисование линий, точек, дуг.
Задание: Составить программу демонстрации всех видов треугольников.
№10.
Графические возможности Visual Basic. Задание системы координат. Рисование линий, точек, дуг, прямоугольников.
Задание: Составить программу построения рисунка, состоящего из геометрических фигур.
№11.
Задание системы координат, рисование линий, точек. Использование циклических конструкций и ветвления.
Задание: Составить программу построения графика функции.
a) ; ;;; ; ; ;
b)
№12.
Задание системы координат, рисование линий, точек. Использование циклических конструкций и ветвления (самостоятельная работа)
Задание: Составить программу построения графика функции и определения непрерывности функции.
x-1, при x-1; 2-x, при x1;
F(x)= F(x)=
1-x2, при x>-1. 2x-1, при x>1.
x+2, при x<1;
F(x)=
, при х1.
№13.
Построение графиков сложных функций.
Задание: Составить программу построения графика функции.
; ; ; ;
; ; ; ;
; ; ; ; .
№14.
Построение графика функции, линий, использование циклов и ветвления. Функция MsgBox.
Задание: Составить программу, реализующую построение графика квадратичной функции, касательной к ней и определяющую знак углового коэффициента. Значение абсциссы точки касания задаётся с клавиатуры.
№15.
Построение графика функции, линий, использование циклов и ветвления.
Задание: Составить программу, реализующую нахождение точек максимума, минимума и построение графика функции.
;
;
;
;
;
;
;
.
№16
Задание: Составить программу графического решения тригонометрических уравнений на единичной окружности. Выбор уравнения организовать через меню.
№17.
Задание: Составить программу, отражающую графическое решение уравнений и неравенств.
, , , , , , при , при , .
Методические рекомендации для учителя.
Урок 1.
Введение в объектно-ориентированное программирование.
Системы объектно-ориентированного программирования дают возможность визуализировать процесс создания графического интерфейса разрабатываемого приложения, то есть позволяют создавать объекты и задавать значения их свойств с помощью диалоговых окон системы программирования.
Основной единицей в объектно-ориентированном программировании является программный объект. Каждый объект описывается свойствами и методами (средствами обработки данных). Также программные объекты реагируют на события, например, что произойдёт, если кликнуть на нём мышкой.
Классы объектов являются «шаблонами», определяющими наборы свойств, методов и событий. По этим шаблонам создаются объекты. Каждый из классов обладает специфическим набором свойств, методов и событий. Рассмотрим класс объектов «Документ» в приложении Word. Какими свойствами обладает этот класс? Каждый документ будет иметь имя, полное имя, размер, дату создания. Что можно сделать с документом? Открыть, сохранить, напечатать, просмотреть и т.д. Это методы данного класса. Какие события могут произойти с документом? (создание, открытие, закрытие).
Объект, созданный по шаблону класса объектов, является экземпляром класса и наследует весь набор свойств, методов и событий данного класса. Каждый экземпляр класса имеет уникальное имя. Различные экземпляры класса обладают одинаковым набором свойств, однако значение этих свойств у них может отличаться (например, размер документа, дата создания).
Семейство объектов представляет собой объект, содержащий несколько объектов, экземпляров одного класса. Например, все открытые на данный момент документы приложения Word.
Каждый объект обладает определённым набором свойств, первоначальные значения которых можно установить с использованием диалогового окна системы программирования (окно Properties). Значения свойств объекта можно изменять и в программном коде. Для этого в окне программного кода пишут команду: Объект.Свойство=Значение
Пример1. Для изменения имени кнопки записывают
Command1.Caption =”Выполнение”
Command1 – экземпляр семейства всех кнопок в программе, Caption – свойство, обозначающее надпись на объекте, «Выполнение» - значение данного свойства.
Пример2.
Для изменения начертания в текстовом окне на курсив: TextBox1.Font.Italic = True
TextBox1 – экземпляр семейства всех текстовых полей в документа, Font – свойство, обозначающее «шрифт», Italic – начертание (дополнительный параметр), True – истина.
Для того, чтобы объект выполнил какую-либо операцию, необходимо применить метод, которым он обладает. Многие методы имеют аргументы, которые позволяют задать параметры выполняемых действий. Например, для сохранения документа Word: Documents(1).save
Событие представляет собой действие, распознаваемое объектом. Событие может создаваться пользователем (например, щелчок мышью или нажатие клавиши) или быть результатом воздействия других программных объектов. В качестве реакции на события вызывается определённая процедура, которая может изменять значения свойств объекта, вызывать его методы и т.д.
Составим схему основных понятий и взаимоотношений между ними.
Класс объектов (свойства, методы, события)
Экземпляры класса: Объект1 Объект2 Объект3
Семейство объектов
Урок 2.
Практическая работа №1.
Работа со свойствами объектов и событийными процедурами в редакторе Word.
Задание: Создать в текстовом документе кнопку «шрифт», при нажатии на которую символы текстового поля получают начертание «полужирный курсив», изменяют свой цвет на красный.
Алгоритм выполнения:
- Откройте панель Visual Basic, выполнив команду Вид – Панели инструментов - Visual Basic.
- Нажмите на кнопку , появиться панель элементов управления.
- На панели элементов управления выберите 2 элемента: кнопка и поле ( и ).
- Выделите кнопку и выберите на панели элементов управления пиктограмму , которая называется окно свойств.
- В появившемся окне измените свойство Caption на слово «Шрифт».
- Произведите двойной щелчок мыши на кнопке, откроется окно событийной процедуры. Напишите там команды изменения свойств объекта textBox1.
Private Sub CommandButton1_Click()
TextBox1.Font.Bold = True
TextBox1.Font.Italic = True
TextBox1.ForeColor = &HFF&
End Sub
8) Закройте окно событийной процедуры, нажмите на кнопку , напишите текст в поле и нажмите на кнопку «Шрифт».
9) Создайте ещё одно поле и измените процедуру в кнопке так, чтобы во втором поле шрифт был курсивный и размером 16 пт.
Урок 3.
Интегрированная среда разработки языка Visual Basic.
Интегрированная среда разработки языка Visual Basic предоставляет пользователю удобный графический интерфейс в процессе разработки приложения. После запуска приложения появляется окно создания объекта, в котором необходимо выбрать standart.exe. Появиться окно программы.
- Окно «Конструктор форм» - основное рабочее окно. По умолчанию ему присваивается имя project1.
- Панель инструментов содержит управляющие элементы – объекты, являющиеся элементами графического интерфейса приложения и реагирующие на события, производимые пользователем или программными объектами.
- Форма – это объект, представляющий собой окно на экране, в котором размещаются управляющие элементы.
- Окно программного кода. В данном окне пишутся команды.
- Окно «Проводник проекта». Оно отображает в виде иерархического каталога все составные части текущего проекта.
- Окно «Свойства объектов». Оно содержит список объектов и их свойств. Список свойств разделён на 2 части, слева – имена свойств, справа – их значения.
- Окно расположения формы. Оно показывает, где будет располагаться
На форме устанавливают объекты, изменяют им свойства и для некоторых объектов программируют реакцию на события. Проект сохраняется в несколько файлов, поэтому для каждого проекта необходимо создавать отдельную папку.
Некоторые свойства объектов:
- Name – имя объекта, по которому к нему обращается программа.
- Backcolor – цвет фона
- Caption – надпись на объекте
- Font –шрифт
- ForeColor – цвет шрифта
- Height – высота объекта
- Picture – установка рисунка в качестве фона
- Width – ширина объекта
- Text – надпись в текстовом поле
Обычно проекты состоят из нескольких форм. Для добавления новой формы используется пункт меню Project → Add Form. В окне «Проводника проекта» появиться вторая форма. В данном окне можно переходить от одной формы к другой. Для загрузки формы во время выполнения проекта используется метод show. То есть в окне программного кода нужно написать Form2.show.
Создадим проект, в котором на форме будет размещена всего 1 кнопка и при нажатии на неё будет печататься слово «Привет!».
Для этого изменим свойства объекта Form1: Caption на «Приветствие», Backcolor на голубой цвет, Font – размер 14. Разместим командную кнопку Command1. Изменим свойства этой кнопки: Caption на «Пуск». Произведём двойной щелчок левой клавишей мыши на кнопке. Откроется окно программного кода. В данном окне будет написано:
Private Sub Command1_Click
End Sub
Что означает «что делать, если произведён щелчок мыши на кнопке». Внутри этой процедуры написать одну команду: Form1.Print “Привет!”
Команда означает, напечатать на форме слово Привет!
Запустите проект, нажав на панели инструментов синий треугольник. Нажмите кнопку «Пуск». Остановите проект, нажав на панели инструментов, на синий квадрат.
Сохраните проект. Для этого выберите пункт меню File →Save Project. Проект сохранять в отдельную папку.
Чтобы сохранить готовый проект как программу, выбрать File → Make Project1.exe и указать новое имя.
Урок 4.
Практическая работа №2.
Работа с управляющими элементами, организация перехода между формами, функция Val.
Задание: Создать программу решения линейного уравнения. Ответ вывести на отдельной форме.
Алгоритм выполнения:
- Измените размеры формы и задайте цвет формы. Для этого в окне Properties измените свойство Backcolor (вкладка Palette).
- Измените свойство Caption на «решение линейного уравнения».
- На форме разместите 2 метки (на панели инструментов пиктограмма ), 3 текстовых поля (), и командную кнопку () в соответствии с образцом.
- Для меток изменить свойство Caption на «*Х+» и «=» соответственно. Также изменить свойство Font на размер 24 и свойство Backcolor на тот же цвет, что и форма.
- Для текстовых полей изменить свойство Text на пустое поле и свойство Font на 24 размер шрифта.
- Для командной кнопки изменить свойство Caption на «Ответ» и свойство Font на 18 размер шрифта.
- Добавить новую форму: Project →Add Form
- Для form2 изменить свойство caption на «Ответ». Разместить на ней 1 метку с надписью «Х=» и 1 текстовое поле для вывода ответа. Установить шрифт для метки и текстового поля размером 24.
- Перейти на первую форму и произвести двойной щелчок левой клавишей мыши на кнопке для написания событийной процедуры.
- В открывшемся окне напишите команды преобразования текстовых значений в числовые, вычисления значения Х, открытия формы2 и изменения свойства text для объекта textbox1.
Private Sub Command1_Click()
a = Val(Text1.Text)
b = Val(Text2.Text)
c = Val(Text3.Text)
x = (c - b) / a
Form2.Show
Form2.Text1.Text = x
End Sub
- Запустите программу с помощью команды Run →Start или с помощью пиктограммы на панели инструментов .
- Протестируйте программу.
- Самостоятельно составьте программу для нахождения суммы решений двух линейных уравнений. Ответ должен выводиться на новой форме. Продумайте интерфейс программы.
Урок 5.
Практическая работа №3.
Работа со строковыми переменными.
Задание: Составить программу, демонстрирующую и определяющую операцию конкатенации. Продумать графический интерфейс программы.
Алгоритм выполнения:
1) Изменить название формы на «Операция конкатенации».
2) На первой форме разместить 2 командные кнопки: «Определение» и «Демонстрация», каждая из которых открывает новую форму.
3) Добавить 2 формы.
4) Для формы2 изменить название на «Определение» и разместить на ней текстовое поле. Изменить свойство text на « ».
5) В кнопке «Определение» написать команду открытия формы2 и записи в текстовое поле определения.
Form2.show
Form2.text1.text=”операцией конкатенации называется слияние значений строковых переменных ”
6) Для формы3 изменить название на «Демонстрация» и разместить на ней 3 текстовых поля для ввода значений строковых переменных и ответа, 2 метки для знаков «+» и «=» и 1 командную кнопку.
7) Изменить свойство text для всех текстовых полей на « », название кнопки задать «Ответ», название меток изменить на «+» и «=».
8) Задать на форме1 переход на форму3 в кнопке «Демонстрация».
9) Задать в кнопке «Ответ» команду конкатенации
text3.text=text1.text+text2.text
10) Самостоятельно подобрать цвета и шрифт для всех форм, меток, текстовых полей.
11) Запустите программу. Протестируйте её на данных: 1 и 2; «Ворон» и «еж».
Урок 6.
Программирование основных алгоритмических конструкций.
Рассмотрим задачу: Пусть требуется составить программу для вычисления значения выражения . Для этого значения переменных будут браться из текстовых полей 1, 2, а ответ записываться в текстовое поле 3. Как будет выглядеть процедура?
x= Val(Text1.Text)
y = Val(Text2.Text)
c=x+y-x/y
text3.text=c
В этой программе все команды выполняются по порядку, как они записаны. Как называется такая алгоритмическая конструкция? (ЛИНЕЙНАЯ)
Рассмотрим другую задачу: Пусть даны 2 числа x и y. Требуется определить, какое из чисел больше и вывести ответ.
На форме разместим также 3 текстовых поля и 1 кнопку.
Как узнать, какое из чисел больше? (сравнить)
Если x>y то что? (max=x)
А иначе? (то max=y)
Мы используем слова ЕСЛИ ….. ТО….. ИНАЧЕ.
Как они звучат по английски? If ….. THEN …..ELSE
Это алгоритмическая конструкция ветвление. Почему её так назвали? Потому что в зависимости от условия, будут выполняться разные команды, то есть в программе появиться разветвление.
Как же записать процедуру?
x= Val(Text1.Text)
y = Val(Text2.Text)
if x>y then max=x else max=y
text3.text=max
Возможны варианты записи оператора IF и не в одну строку, тогда в общем виде он запишется так:
If условие THEN
Серия операторов 1
ELSE серия операторов 2
END IF
Когда условие истинное, то выполняются операторы, записанные после THEN (серия операторов 1), если условие ложное, то выполняются операторы, записанные после ELSE (серия операторов 2). Может быть ситуация, что требуется выполнить команды, только если условие истинное, в этом случае ELSE можно опустить.
Рассмотрим следующую задачу: Пусть требуется на форме напечатать 10 раз слово «ПРИВЕТ!». Как можно выполнить эту задачу? Для этого можно написать 10 раз команду Form1.Print “ПРИВЕТ!”
Когда в программе какая-то команда или блок команд повторяются многократно, лучше использовать конструкцию ЦИКЛА. Какие же бывают циклы?
- циклы со счётчиком, в которых тело цикла выполняется определённое количество раз.
- Циклы с условием, в которых тело цикла выполняется, пока условие истинно.
Какой цикл подойдёт в нашем случае? Конечно же цикл со счётчиком, так как команду повторяется 10 раз.
Чтобы его записать используется оператор FOR …. NEXT.
FOR счётчик = нач_значение TO кон_значение STEP шаг
Тело цикла
NEXT счётчик
В начале выполнения цикла значение переменной Счётчик устанавливается равным Нач_значение. При каждом проходе цикла переменная Счётчик увеличивается на величину шага. Если она достигает величины, большей Кон_значение, то цикл завершается и выполняются следующие за ним операторы.
Если нач_значение больше кон_значение, то тело цикла будет выполняться только, если шаг отрицательная величина. Если счётчик увеличивается каждый раз на 1, то слова STEP шаг можно не писать. По умолчанию счётчик увеличивается на 1.
Как же записать процедуру для нашей задачи?
For i=1 to 10
Form1.print “ПРИВЕТ!”
Next i
Рассмотрим такую задачу: Пусть каждый раз с клавиатуры вводиться произвольное число, и оно записывается на форму. Как только пользователь ввёл 0, то пишется сообщение «КОНЕЦ».
В данной задаче есть условие, и пока оно не выполниться, должно выполняться тело цикла.
Циклы с условием бывают 2 видов:
1) с предусловием, когда сначала проверяется условие, а затем выполняется тело цикла. Такой цикл записывается с помощью оператора Do … Loop
Do While условие
Тело цикла
Loop
Такой цикл выполняется, пока условие истинное.
Do Until условие
Тело цикла
Loop
Такой цикл выполняется, если условие ложное.
2) с постусловием, когда сначала 1 раз выполняется тело цикла, а затем проверяется условие. После этого вновь выполняется тело цикла.
Do
Тело цикла
Loop While условие
Такой цикл выполняется, пока условие истинное.
Do
Тело цикла
Loop Until условие
Такой цикл выполняется, если условие ложное.
Для нашей задачи подойдёт цикл с постусловием.
Тогда в процедуре запишется:
A=Val(InputBox (“Введите число”))
Do While A<>0
Form1.Print A
A=Val(InputBox (“Введите число”))
Loop
Form1.print “КОНЕЦ”
Оператор InputBox позволяет вводить значение переменных с клавиатуры.
Примечание: Решение всех задач желательно продемонстрировать ученикам. Программы составить заранее или оформлять процедуры в ходе урока и демонстрировать с помощью медиапроектора.
Урок №7.
Практическая работа №4.
Условный оператор If…Then…Else. Вложенные операторы.
Задание: Составить программу решения квадратного уравнения. Продумать графический интерфейс. Составить 2 варианта программы с использованием нескольких операторов If…then и использованием вложенных операторов.
Алгоритм выполнения.
1.Разместить на форме 5 меток для пояснений, 4 текстовых поля для коэффициентов и ответа и 1 командную кнопку. Можно ориентироваться на образец.
2. В кнопке «Решение» организовать присваивание переменным a, b, c числовых значений из текстовых полей, вычисление дискриминанта, и подсчёта ответов. Учесть, что при разном значении дискриминанта может либо не быть решения, либо имеется 1 решение, или 2 решения.
Ответ выводить в текстовое поле 4.
3. Добавить ещё 1 кнопку «Заново», в которой организовать очищение текстовых полей.
Примеры для сравнения:
Примечание: 1 вариант разбирается коллективно с учениками и выполняется. Самостоятельно ученики преобразуют программу для второго варианта.
Урок №8.
Практическая работа №5.
Условный оператор If…THEN…ELSE, сложные условия, оператор безусловного перехода GoTo. (2 урока)
Задание: Составить программу, определяющую истинность математического выражения. Предложить выбор знака отношения пользователю с помощью командных кнопок. Ещё одной кнопкой осуществить проверку истинности. Продумать выход из программы.
Примечание: Существуют разные подходы к выполнению данного задания. Первый самый простой вариант, ввод двух чисел и знака отношения в текстовые поля. Этот вариант можно разобрать коллективно. Второй вариант - сравнение математических выражений, содержащих операции сложения и вычитания. При этом ввод выражений осуществляется постепенно нажатием соответствующих кнопок на форме. Третий вариант – математические выражения содержат все знаки операций. Это задание можно дать в качестве творческого проекта ученика.
Сначала необходимо разобрать первый вариант. Для этого обсудить, что должно быть на форме: 2 текстовых поля для ввода чисел, ещё одно текстовое поле для ввода знака отношения. 1 командная кнопка для проверки истинности выражения и 1 текстовое поле для вывода сообщения.
Алгоритм выполнения (1 вариант):
- На форме разместить 4 текстовых поля и 1 командную кнопку.
- Оформить вид формы, кнопки и текстовых полей.
- Определить две переменных как числовой тип, например a и b.
- В командной кнопке написать программу сравнения двух величин a и b, и записи в текстовое поле 4 соответствующего выражения «истина» или «ложь».
Какие случаи могут быть?
- если знак > и это верно
- если знак < и это верно
- если знак = и это верно
- если знак и результат сравнения не совпадают
Значит, необходимо проверить первое условие, если оно окажется ложным, то тогда проверять второе условие, если и оно окажется ложным, то проверять третье условие, а если и оно окажется ложным, то вывести ответ «Ложь». То есть оператор ветвления IF будет содержать в себе вложенные операторы. А как записать сложное условие? Какие используются логические операции? К логическим операциям относятся союзы И, ИЛИ (AND, OR).
Программа для сравнения (примерная):
Dim a, b as double
Private Sub Command1_Click()
a=val(text1.text)
b=val(text3.text)
if (a>b) and (text2.text= “>”) then
text4.text= “истина”
elseif (a
text4.text= “истина”
elseif (a=b) and (text2.text= “=”) then
text4.text= “истина”
else text4.text= “ложь”
end if
End sub
А теперь пусть в программе выражения состоят не из одного числа, а являются математическими выражениями, содержащими знаки сложения и вычитания. При чём, ввод выражения осуществляется постепенно, путём нажатия на соответствующие кнопки (как в калькуляторе).
На этом уроке требуется оформить форму и продумать ход выполнения программы.
1. Оформить форму в соответствии с образцом:
Для этого разместить на ней 2 метки для пояснений и командную кнопку «Приступить». Эта кнопка открывает форму2.
2. Добавить форму (Project →Add Form), в кнопке «Приступить» написать команду открытия формы2 (Form2.show)
3. На форме2 разместить 17 командных кнопок, 4 текстовых окна (в соответствии с образцом).
4. Кнопка «Ввод левой части» указывает программе, что при нажатии чисел или выбора операций, выражение отображается в текстовом поле1. Для этого служит переменная Ch. Она может быть равна 1 или 2, в соответствии с тем, какую часть пользователь вводит. Поэтому в этой кнопке необходимо написать команду Ch=1.
Урок №9.
Практическая работа №5 (продолжение)
На прошлом уроке ученики начали составлять программу для определения истинности математического выражения, в котором обе части могут содержать математические операции сложения и вычитания. Ввод выражений осуществляется с помощью кнопок на форме.
5. Запрограммируем кнопки с числами. В этой кнопке должна быть определена запись числа в соответствующее текстовое поле, причём если пользователь забыл нажать кнопку «Ввод левой части» или «Ввод правой части», то должна появляться подсказка и процедура закончиться. При этом Ch будет равно нулю. Необходимо использовать условный оператор, функцию Msgbox. Для случая Ch=0 необходимо использовать оператор перехода Goto на конец процедуры. Для определения числа необходимо ввести строковую переменную, например a.
Пример для сравнения:
Private Sub Command1_Click()
If Ch = 0 Then
MsgBox ("нажмите кнопку ВВОД ЛЕВОЙ ЧАСТИ или ВВОД ПРАВОЙ ЧАСТИ")
GoTo nach
End If
If Ch = 1 Then Text1.Text = Text1.Text + "1"
If Ch = 2 Then Text3.Text = Text3.Text + "1"
a1 = a1 + "1"
nach:
End Sub
Аналогично написать в каждой кнопке для других чисел.
6. В кнопке «+» будет определяться число для сложения, то есть преобразование строковой переменной а в числовую. И формирования ответа математического выражения, чтобы потом можно было организовать сравнение. Если кнопку «+» нажали первый раз, то ответ будет равен самому числу. Если до этого уже были заданы операции, то необходимо посчитать их, а потом определить, что была нажата операция сложения. В конце процедуры необходимо очистить переменную для запоминания числа.
Пример для сравнения:
Private Sub Command11_Click()
chislo = Val(a1)
If otv1 = 0 Then
otv1 = chislo
oper = 0
End If
If oper = 1 Then otv1 = otv1 + chislo
If oper = 2 Then otv1 = otv1 - chislo
oper = 1
a1 = ""
If Ch = 1 Then Text1.Text = Text1.Text + "+"
If Ch = 2 Then Text3.Text = Text3.Text + "+"
End Sub
7. В кнопке «-» написать аналогичную программу, только заменить значение переменной oper на 2.
Private Sub Command12_Click()
chislo = Val(a1)
If otv1 = 0 Then
otv1 = chislo
oper = 0
End If
If oper = 1 Then otv1 = otv1 + chislo
If oper = 2 Then otv1 = otv1 - chislo
oper = 2
a1 = ""
If Ch = 1 Then Text1.Text = Text1.Text + "-"
If Ch = 2 Then Text3.Text = Text3.Text + "-"
End Sub
8. В кнопке «ввод правой части» необходимо закончить подсчёт левой части и очистить все переменные, присвоить значение Ch=2.
Пример для сравнения.
Private Sub Command16_Click()
chislo = Val(a1)
If otv1 = 0 Then otv1 = chislo
If oper = 1 Then otv1 = otv1 + chislo
If oper = 2 Then otv1 = otv1 - chislo
otv2 = otv1
otv1 = 0
a1 = " "
Ch = 2
oper = 0
End Sub
9. Проверка определяется следующим образом: в кнопке сначала происходит подсчёт второго выражения, а потом сравнения числовых значений выражений со знаком отношения.
Private Sub Command13_Click()
chislo = Val(a1)
If otv1 = 0 Then otv1 = chislo
If oper = 1 Then otv1 = otv1 + chislo
If oper = 2 Then otv1 = otv1 - chislo
If (otv1 = otv2) And (Text2.Text = "=") Then
Text4.Text = "истина"
ElseIf (otv1 > otv2) And (Text2.Text = "<") Then
Text4.Text = "истина"
ElseIf (otv1 < otv2) And (Text2.Text = ">") Then
Text4.Text = "истина"
Else: Text4.Text = "ложь"
End If
End Sub
10. В кнопке «Заново» обнулить значения всех переменных и очистить текстовые поля.
Пример для сравнения.
Private Sub Command14_Click()
Ch = 0
a1 = ""
otv1 = 0
otv2 = 0
oper = 0
chislo = 0
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
End Sub
11. В кнопке выход организовать остановку программы.
Private Sub Command17_Click()
End
End Sub
Примечание: если по пояснению ученики не могут справиться с частью задания, то учитель может им показать «Пример для сравнения».
Урок №10.
Практическая работа №6.
Циклы (для демонстрации цикла со счётчиком и условием)
Задание: Составить программу вычисления суммы всех чётных (нечётных) чисел, меньших 100.
Алгоритм выполнения:
1. Оформить форму в соответствии с образцом.
2. В кнопке «Ответ» записать цикл For…Next для подсчёта суммы всех чётных чисел. В этом вам помогут ответы на вопросы:
Какое первое чётное число?
Как указать программе, что нужно взять только чётные числа?
Как записать счётчик, который складывает эти числа?
После цикла напишите оператор вывода ответа в текстовое поле.
Пример для сравнения:
Private Sub Command1_Click()
For i = 2 To 100 Step 2
s = s + i
Next i
Text1.Text = Str(s)
End Sub
3. Что необходимо изменить в программе, чтобы вычислялась сумма всех нечётных чисел? Измените программу.
4. Сформулируйте условие в этой программе.
5. Измените программу, записав её с помощью цикла с условием.
Обратите внимание, что число должно изменяться в цикле.
Пример для сравнения:
Private Sub Command1_Click()
i = 1
Do While i <= 100
S = S + i
i = i + 2
Loop
Text1.Text = Str(S)
End Sub
6. Что произойдёт, если убрать первую команду в программе (i=1)?
7. Измените программу, используя цикл с постусловием.
Пример для сравнения.
Private Sub Command1_Click()
i = 1
Do
S = S + i
i = i + 2
Loop While i <= 100
Text1.Text = Str(S)
End Sub
Урок №11.
Практическая работа №7
(Самостоятельная работа).
Задание: Составить программы вычисления факториала числа, используя циклы с предусловием, постусловием, счётчиком.
Примечание: перед работой разбирается понятие факториала. В программе должно быть учтено, что 0!=1, что нет факториала у отрицательных чисел.
Примеры для сравнения:
Вариант 1
Private Sub Command1_Click()
f = 1
n = Val(Text1.Text)
If n = 0 Then GoTo ex
If n < 0 Then
Text2.Text = "число не может быть отрицательным"
GoTo ex1
End If
For i = 1 To n
f = f * i
Next i
ex:
Text2.Text = Str(f)
ex1:
End Sub
Вариант 2
Private Sub Command1_Click()
f = 1
n = Val(Text1.Text)
If n = 0 Then GoTo ex
If n < 0 Then
Text2.Text = "число не может быть отрицательным"
GoTo ex1
End If
i = 1
Do While i <= n
f = f * i
i = i + 1
Loop
ex:
Text2.Text = Str(f)
ex1:
End Sub
Вариант 3.
Private Sub Command1_Click()
f = 1
n = Val(Text1.Text)
If n = 0 Then GoTo ex
If n < 0 Then
Text2.Text = "число не может быть отрицательным"
GoTo ex1
End If
i = 1
Do
f = f * i
i = i + 1
Loop While i <= n
ex:
Text2.Text = Str(f)
ex1:
End Sub
Урок №12.
Практическая работа №8.
Вложенные циклы, циклы с ветвлением, функция Int().
Задание: Дано целое число п>2. Составить программу, печатающую все простые числа из диапазона [2, n].
Алгоритм выполнения:
- На форме разместить 2 метки с подсказками, 1 текстовое поле для ввода значения n и 1 командную кнопку «напечатать».
- Добавить форму, на которой будут печататься простые числа.
- В кнопке ввести команду для определения числового значения переменной n.
- Задать цикл просмотра всех чисел от 2 до n.
- Задать цикл определения числа на простоту (то есть проверку делимости только на 1 и на само себя).
- Сохранить программу.
- Протестировать программу.
Пример для сравнения:
Private Sub Command1_Click()
n = Val(Text1.Text)
For i = 2 To n
For j = 1 To i
y = i / j
If y = Int(y) Then k = k + 1
Next j
If k = 2 Then
Form2.Show
Form2.Print i
End If
k = 0
Next i
End Sub
- Измените программу так, чтобы в ней ещё находилась сумма всех простых чисел, не превышающих n.
Пример для сравнения:
Private Sub Command1_Click()
n = Val(Text1.Text)
For i = 2 To n
For j = 1 To i
y = i / j
If y = Int(y) Then k = k + 1
Next j
If k = 2 Then
Form2.Show
Form2.Print i
S = S + i
End If
k = 0
Next i
Form2.Show
Form2.Print "сумма всех простых чисел = ", S
End Sub
Урок №13
Графические возможности языка Visual Basic.
Язык программирования Visual Basic позволяет организовывать работу с графическими объектами. В качестве объекта на котором происходит создание изображения можно использовать объект PictureBox. Рассмотрим графические методы применительно к экземпляру Picture1.
Picture1.Scale (x1,y1) – (x2, y2) - позволяет задать систему координат и масштаб. (x1, y1) - координаты правого нижнего угла.
Picture1.Pset (x,y) [,color] - рисование точки с заданными координатами. Параметр [,color] является необязательным. Задать цвет можно различными способами:
1) константами:
Название цвета | значение | Название цвета | значение |
Черный | vbBlack | Зелёный | vbGreen |
Синий | vbBlue | Голубой | vbCyan |
Красный | vbRed | Желтый | vbYellow |
Сиреневый | vbMagenta | Белый | vbWhite |
2) С помощью функции QBColor(n), где n принимает одно из значений от 0 до 15.
3) с помощью функции RGB(bytRed, bytGreen, bytBlue), где bytRed, bytGreen, bytBlue принимают одно из значений от 0 до 255.
Рисование графических примитивов:
А) Рисование линии, прямоугольника или закрашенного прямоугольника заданного цвета:
object.Line (x1,y1)-(x2,y2) [,color] [,B] [,BF]
(x1,y1) и (x2,y2) – координаты концов линии или координаты левого верхнего и правого нижнего углов прямоугольника. Для рисования прямоугольника без заливки указывается параметр В, а для рисования прямоугольника с заливкой только BF.
Б) Рисование окружности, овала, дуги.
Object.Circle (x,y), radius, [,color] [,start, end, aspect]
(x,y) – координаты центра окружности
radius – радиус окружности
color – цвет окружности
start – начальный угол дуги (в радианах)
end – конечный угол дуги ( в радианах)
aspect – коэффициент сжатия
Составим программу рисования всех видов графических примитивов.
Алгоритм выполнения:
- На форме разместите экземпляр класса Picture1 и кнопку.
- Наберите в кнопке код:
Для задания системы координат, например: Picture1.Scale (-20, 20)-(20, -20)
Для рисования точки в центре Picture1.Pset (0,0). Цвет точки можно указать любой.
Для рисования линии Picture1.Line (-10,0)-(0,0), QBColor(2), прямоугольника (не закрашенного и залитого красным цветом)
Picture1.Line (10,10)-(20,5), ,В
Picture1.Line (10,10)-(20,5), vbRed, ВF
окружности, дуги размером в 900, овала.
Picture1.Circle (0,0), 4, QBColor(2)
Picture1.Circle (-5,-5), 4, QBColor(2), 0 ,1.57
Picture1.Circle (8, 3.4), 4, QBColor(2), , , 0.8
3. Создайте из графических примитивов простую композицию.
Урок № 14, 15
Практическая работа №9.
Графические возможности Visual Basic. Задание системы координат. Рисование линий, точек, дуг.
Задание: Составить программу демонстрации всех видов треугольников.
- Оформить форму в соответствии с образцом, разместив на неё 6 командных кнопок.
- Добавить форму, на которой разместить метку и графическое окно PictureBox.
- В кнопке «Остроугольный» организовать открытие формы 2. Задать систему координат, изменить свойство Caption метки на «все углы острые». Написать команды рисования трёх линий. Написать команды рисования трёх дуг, обозначающих углы. Радианные меры подобрать самостоятельно.
Пример:
Private Sub Command1_Click()
Form2.Show
Form2.Label1.Caption = "все углы острые"
Form2.Picture1.Scale (-10, 10)-(10, -10)
Form2.Picture1.Line (-8, -3)-(1, 5), QBColor(10)
Form2.Picture1.Line (4, -1)-(1, 5), QBColor(10)
Form2.Picture1.Line (-8, -3)-(4, -1), QBColor(10)
Form2.Picture1.Circle (-8, -3), 1, , 0.1, 0.6
Form2.Picture1.Circle (1, 5), 1, , 3.8, 5.3
Form2.Picture1.Circle (4, -1), 1, , 2.2, 3.3
End Sub
- Аналогично написать программы для всех остальных видов треугольников.
- Задать выход из программы.
Примечание: У учащихся много времени уходит на подбор значений углов для рисования дуг в треугольнике. На одном уроке разбирается само задание и составляется код для рисования двух видов треугольников, на втором работу завершают.
Урок №16.
Практическая работа №10.
Графические возможности Visual Basic. Задание системы координат. Рисование линий, точек, дуг, прямоугольников.
Задание: Составить программу построения рисунка, состоящего из геометрических фигур.
Примечание: ученикам заранее можно дать задание составить рисунок на бумаге из геометрических фигур, просчитать координаты. На уроке они составляют программу реализации своего рисунка.
Желательно использовать несколько графических окон, изменять свойства Backcolor – цвет фона, BorderStyle – вид окна, FillColor – цвет заливки замкнутых фигур, FillStyle – тип заливки.
Урок №17
Практическая работа №11.
Построение графиков функций, содержащих ограничения на области определения или модуль.
Задание системы координат, рисование линий, точек. Использование циклических конструкций и ветвления.
Задание: Составить программу построения графика функции.
На уроке одну функцию разобрать коллективно, а затем дать на самостоятельное выполнение одну из оставшихся функций.
a) ; ;;; ; ; ;
b)
Алгоритм выполнения:
- На форме разместить метку с заданием, 2 кнопки «Построение» и «Выход».
- Добавить форму с графическим окном для графика.
- Запрограммировать кнопку «Выход».
- В кнопке «Построение» указать следующие команды:
- Задать систему координат на графическом окне Picture1.
- Нарисовать 2 линии, являющиеся осями координат.
- Задать в цикле построение точек на осях координат и их подпись, используя другой цвет.
- Задать построение графика функции по точкам, используя цикл и шаг изменения абсциссы 0.001. При этом учесть область определения функции. В случае обратной пропорциональности, например в качестве условия выбрать |x|>0.00001, так как делить на ноль нельзя.
- Установить другой цвет рисования графика.
- Запустить программу на выполнение.
Пример для сравнения (для функции ):
Private Sub Command1_Click()
Form2.Show
Form2.Picture1.Scale (-10, 10)-(10, -10)
Form2.Picture1.Line (-10, 0)-(10, 0)
Form2.Picture1.Line (0, -10)-(0, 10)
For i = -10 To 10
Form2.Picture1.PSet (0, i), QBColor(14)
Form2.Picture1.Print i
Form2.Picture1.PSet (i, 0), QBColor(14)
Form2.Picture1.Print i
Next i
For x = -10 To 10 Step 0.001
If (Abs(x - 2) > 0.00001) Then
Form2.Picture1.PSet (x, 1 / (x - 2)), QBColor(12)
End If
Next x
End Sub
Урок №18
Практическая работа №12.
Задание системы координат, рисование линий, точек. Использование циклических конструкций и ветвления (самостоятельная работа)
Задание: Составить программу построения графика функции и определения непрерывности функции.
Примечание: Перед выполнением самостоятельной работы, необходимо повторить, в каком случае функция будет непрерывной, а в каком иметь разрыв.
Функция называется непрерывной, если ……
Чтобы проверить функцию на непрерывность, надо сравнить значения функции в точке разрыва. Если значения совпадут, то вывести сообщение «Функция непрерывна в точке …», в противном случае «Функция имеет разрыв в точке с абсциссой …».
Пример для сравнения (для третьей функции):
Private Sub Command1_Click()
Form2.Show
Form2.Picture1.Scale (-10, 10)-(10, -10)
Form2.Picture1.Line (-10, 0)-(10, 0)
Form2.Picture1.Line (0, -10)-(0, 10)
For i = -10 To 10
Form2.Picture1.PSet (0, i), QBColor(14)
Form2.Picture1.Print i
Form2.Picture1.PSet (i, 0), QBColor(14)
Form2.Picture1.Print i
Next i
For x = -10 To 10 Step 0.001
If x < 1 Then
Form2.Picture1.PSet (x, 2 + x), QBColor(12)
Else: Form2.Picture1.PSet (x, 1 / x), QBColor(12)
End If
Next x
x = 1
If (2 + x) = (1 / x) Then
MsgBox ("функция непрерывна")
Else: MsgBox ("Функция имеет разрыв в точке с абсциссой х=1")
End If
End Sub
Уроки №19,20,21
Практическая работа №13.
Построение графиков сложных функций.
Задание: Составить программу построения графика функции.
; ; ; ;
; ; ; ;
; ; ; ; .
Алгоритм выполнения:
- На форме разместить метку с заданием, 2 кнопки «Построение» и «Выход» и графическое окно для функции.
- Добавить форму с графическим окном для графика.
- Запрограммировать кнопку «Выход».
- В кнопке «Построение» указать следующие команды:
- Задать систему координат на графическом окне Picture1.
- Нарисовать 2 линии, являющиеся осями координат.
- Задать в цикле построение точек на осях координат и их подпись, используя другой цвет.
- Задать построение графика функции по точкам, используя цикл и шаг изменения абсциссы 0.001. При этом учесть область определения функции, если необходимо.
- Установить другой цвет рисования графика.
- Если есть точки на графике, которые следует выколоть, то необходимо организовать рисование окружностей в этих точках.
- Запустить программу на выполнение.
Примечание: Функция y={x} – дробная часть числа. {x}=x-[x]
Пример для функции
Private Sub Command1_Click()
Form2.Show
Form2.Picture1.Scale (-10, 5)-(10, -5)
Form2.Picture1.Line (-10, 0)-(10, 0)
Form2.Picture1.Line (0, -5)-(0, 5)
For i = -5 To 5
Form2.Picture1.PSet (0, i), QBColor(14)
Form2.Picture1.Print i
Next i
For i = -10 To 10
Form2.Picture1.PSet (i, 0), QBColor(14)
Form2.Picture1.Print i
Next i
For x = -10 To 10 Step 0.001
Form2.Picture1.PSet (x, (1.5 * x - 1) - Int(1.5 * x - 1)), QBColor(12)
If ((1.5 * x - 1) - Int(1.5 * x - 1)) > ((1.5 * (x + 0.001) - 1) - Int(1.5 * (x + 0.001) - 1)) Then Form2.Picture1.Circle (x, (1.5 * x - 1) - Int(1.5 * x - 1)), 0.1
Next x
End Sub
Пример для функции
Private Sub Command1_Click()
Form2.Show
Form2.Picture1.Scale (-10, 10)-(10, -10)
Form2.Picture1.Line (-10, 0)-(10, 0)
Form2.Picture1.Line (0, -10)-(0, 10)
For i = -10 To 10
Form2.Picture1.PSet (0, i), QBColor(14)
Form2.Picture1.Print i
Next i
For i = -10 To 10
Form2.Picture1.PSet (i, 0), QBColor(14)
Form2.Picture1.Print i
Next i
For x = -10 To 10 Step 0.001
If Abs(x * x - 16) > 0.00001 Then
Form2.Picture1.PSet (x, (12 + x - x * x) / (x * x - 16)), QBColor(12)
Else: Form2.Picture1.Circle (x + 0.01, (12 + x + 0.01 - (x + 0.01) * (x + 0.01)) / ((x + 0.01) * (x + 0.01) - 16)), 0.05
End If
Next x
End Sub
Пример для функции
Private Sub Command1_Click()
Form2.Show
Form2.Picture1.Scale (-10, 10)-(10, -10)
Form2.Picture1.Line (-10, 0)-(10, 0)
Form2.Picture1.Line (0, -10)-(0, 10)
For i = -10 To 10
Form2.Picture1.PSet (0, i), QBColor(14)
Form2.Picture1.Print i
Next i
For i = -10 To 10
Form2.Picture1.PSet (i, 0), QBColor(14)
Form2.Picture1.Print i
Next i
For x = -10 To 10 Step 0.001
If Abs(Cos(x)) > 0.00001 And (1 - Cos(x) * Cos(x)) > 0 Then
Form2.Picture1.PSet (x, Sqr(1 - Cos(x) * Cos(x)) / Cos(x)), QBColor(12)
End If
Next x
End Sub
Пример для функции
Private Sub Command1_Click()
Form2.Show
Form2.Picture1.Scale (-10, 10)-(10, -10)
Form2.Picture1.Line (-10, 0)-(10, 0)
Form2.Picture1.Line (0, -10)-(0, 10)
For i = -10 To 10
Form2.Picture1.PSet (0, i), QBColor(14)
Form2.Picture1.Print i
Next i
For i = -10 To 10
Form2.Picture1.PSet (i, 0), QBColor(14)
Form2.Picture1.Print i
Next i
For x = -10 To 10 Step 0.001
If Abs(x + 1) > 0.00001 And (1 + 2 * x + x * x) > 0 Then
Form2.Picture1.PSet (x, Sqr(1 + 2 * x + x * x) / (x + 1)), QBColor(12)
End If
If Abs(x + 1) < 0.00001 Then
Form2.Picture1.Circle (x + 0.01, 1), 0.05
Form2.Picture1.Circle (x - 0.01, -1), 0.05
End If
Next x
End Sub
Пример для функции
Private Sub Command1_Click()
Form2.Show
Form2.Picture1.Scale (-10, 2)-(10, -2)
Form2.Picture1.Line (-10, 0)-(10, 0)
Form2.Picture1.Line (0, -2)-(0, 2)
For i = -2 To 2
Form2.Picture1.PSet (0, i), QBColor(14)
Form2.Picture1.Print i
Next i
For i = -10 To 10
Form2.Picture1.PSet (i, 0), QBColor(14)
Form2.Picture1.Print i
Next i
For x = -10 To 10 Step 0.001
Form2.Picture1.PSet (x, (Sin(x) * Sqr(Cos(x) * Cos(x)) + Cos(x) * Sqr(Sin(x) * Sin(x)))), QBColor(12)
Next x
End Sub
Пример для функции
Private Sub Command1_Click()
Form2.Show
Form2.Picture1.Scale (-10, 2)-(10, -2)
Form2.Picture1.Line (-10, 0)-(10, 0)
Form2.Picture1.Line (0, -2)-(0, 2)
For i = -2 To 2
Form2.Picture1.PSet (0, i), QBColor(14)
Form2.Picture1.Print i
Next i
For i = -10 To 10
Form2.Picture1.PSet (i, 0), QBColor(14)
Form2.Picture1.Print i
Next i
For x = -10 To 10 Step 0.001
If (1 - Cos(x) * Cos(x)) > 0 Then Form2.Picture1.PSet (x, Sqr(1 - Cos(x) * Cos(x)) + Sin(x)), QBColor(12)
Next x
End Sub
Пример для функции
Private Sub Command1_Click()
Form2.Show
Form2.Picture1.Scale (-10, 10)-(10, -10)
Form2.Picture1.Line (-10, 0)-(10, 0)
Form2.Picture1.Line (0, -10)-(0, 10)
For i = -10 To 10
Form2.Picture1.PSet (0, i), QBColor(14)
Form2.Picture1.Print i
Next i
For i = -10 To 10
Form2.Picture1.PSet (i, 0), QBColor(14)
Form2.Picture1.Print i
Next i
For x = -10 To 10 Step 0.0001
If (Tan(x)) > 0 Then Form2.Picture1.PSet (x, Sin(x) * Sin(x) * Sqr(Tan(x)) + Cos(x) * Cos(x) * Sqr(Tan(x))), QBColor(12)
Next x
End Sub
Пример для функции
Private Sub Command1_Click()
Form2.Show
Form2.Picture1.Scale (-10, 2)-(10, -2)
Form2.Picture1.Line (-10, 0)-(10, 0)
Form2.Picture1.Line (0, -2)-(0, 2)
For i = -2 To 2
Form2.Picture1.PSet (0, i), QBColor(14)
Form2.Picture1.Print i
Next i
For i = -10 To 10
Form2.Picture1.PSet (i, 0), QBColor(14)
Form2.Picture1.Print i
Next i
For x = -10 To 10 Step 0.0001
If (1 - Sin(x) * Sin(x)) > 0 Then Form2.Picture1.PSet (x, Sqr(1 - Sin(x) * Sin(x)) + Cos(x)), QBColor(12)
Next x
End Sub
Пример для функции
Private Sub Command1_Click()
Form2.Show
Form2.Picture1.Scale (-10, 2)-(10, -2)
Form2.Picture1.Line (-10, 0)-(10, 0)
Form2.Picture1.Line (0, -2)-(0, 2)
For i = -2 To 2
Form2.Picture1.PSet (0, i), QBColor(14)
Form2.Picture1.Print i
Next i
For i = -10 To 10
Form2.Picture1.PSet (i, 0), QBColor(14)
Form2.Picture1.Print i
Next i
For x = -10 To 10 Step 0.0001
Form2.Picture1.PSet (x, Abs(x - Int(x) - 1 / 2)), QBColor(12)
Next x
End Sub
Пример для функции
Private Sub Command1_Click()
Form2.Show
Form2.Picture1.Scale (-1, 10)-(20, -1)
Form2.Picture1.Line (0, 0)-(20, 0)
Form2.Picture1.Line (0, 0)-(0, 10)
For i = 0 To 10
Form2.Picture1.PSet (0, i), QBColor(14)
Form2.Picture1.Print i
Next i
For i = 0 To 20
Form2.Picture1.PSet (i, 0), QBColor(14)
Form2.Picture1.Print i
Next i
For x = 0 To 20 Step 0.0001
Form2.Picture1.PSet (x, Sqr(Int(x))), QBColor(12)
Next x
For x = 1 To 20 Step 0.1
If (Sqr(Int(x)) - Sqr(Int(x - 0.1))) > 0.1 Then Form2.Picture1.Circle (x, Sqr(Int(x - 0.1))), 0.1
Next x
End Sub
Пример для функции
Private Sub Command1_Click()
Form2.Show
Form2.Picture1.Scale (-1, 2)-(10, -1)
Form2.Picture1.Line (-1, 0)-(10, 0)
Form2.Picture1.Line (0, -1)-(0, 2)
For i = -1 To 2
Form2.Picture1.PSet (0, i), QBColor(14)
Form2.Picture1.Print i
Next i
For i = -1 To 10
Form2.Picture1.PSet (i, 0), QBColor(14)
Form2.Picture1.Print i
Next i
For x = 0 To 10 Step 0.0001
If Abs(x - Int(x)) >= 0 Then Form2.Picture1.PSet (x, Sqr(x - Int(x))), QBColor(12)
Next x
For x = 0 To 10 Step 0.01
If (Sqr(x - Int(x)) - Sqr((x + 0.01) - Int(x + 0.01))) > 0.5 Then Form2.Picture1.Circle (x, Sqr(x - Int(x))), 0.05
Next x
End Sub
Пример для функции
Private Sub Command1_Click()
Form2.Show
Form2.Picture1.Scale (-10, 2)-(10, -1)
Form2.Picture1.Line (-10, 0)-(10, 0)
Form2.Picture1.Line (0, -1)-(0, 2)
For i = -1 To 2
Form2.Picture1.PSet (0, i), QBColor(14)
Form2.Picture1.Print i
Next i
For i = -10 To 10
Form2.Picture1.PSet (i, 0), QBColor(14)
Form2.Picture1.Print i
Next i
For x = -10 To 10 Step 0.0001
Form2.Picture1.PSet (x, (x - Int(x)) * (x - Int(x))), QBColor(12)
If ((x - Int(x)) * (x - Int(x)) - (x + 0.0001 - Int(x + 0.0001)) * (x + 0.0001 - Int(x + 0.0001))) > 0.5 Then Form2.Picture1.Circle (x, (x - Int(x)) * (x - Int(x))), 0.1
Next x
End Sub
Пример для функции
Private Sub Command1_Click()
Form2.Show
Form2.Picture1.Scale (-5, 2)-(5, -1)
Form2.Picture1.Line (-5, 0)-(5, 0)
Form2.Picture1.Line (0, -1)-(0, 2)
For i = -1 To 2
Form2.Picture1.PSet (0, i), QBColor(14)
Form2.Picture1.Print i
Next i
For i = -5 To 5
Form2.Picture1.PSet (i, 0), QBColor(14)
Form2.Picture1.Print i
Next i
For x = -5 To 5 Step 0.0001
Form2.Picture1.PSet (x, (x * x - Int(x * x))), QBColor(12)
Next x
For x = 0 To 5 Step 0.0001
If ((x * x - Int(x * x)) - ((x + 0.0001) * (x + 0.0001) - Int((x + 0.0001) * (x + 0.0001)))) > 0.9 Then Form2.Picture1.Circle (x, (x * x - Int(x * x))), 0.05
Next x
For x = -5 To -0.5 Step 0.0001
If ((x + 0.0001) * (x + 0.0001) - Int((x + 0.0001) * (x + 0.0001))) - (x * x - Int(x * x)) > 0.9 Then Form2.Picture1.Circle (x + 0.0001, ((x + 0.0001) * (x + 0.0001) - Int((x + 0.0001) * (x + 0.0001)))), 0.05
Next x
End Sub
Примечание: обратить внимание на масштаб рисования графика, на выколотые точки, так как поведение графика разное. На (-∞;0) – убывает, а (0; +∞) возрастает.
Пример для функции
Private Sub Command1_Click()
Form2.Show
Form2.Picture1.Scale (-5, 2)-(5, -2)
Form2.Picture1.Line (-5, 0)-(5, 0)
Form2.Picture1.Line (0, -2)-(0, 2)
For i = -2 To 2
Form2.Picture1.PSet (0, i), QBColor(14)
Form2.Picture1.Print i
Next i
For i = -5 To 5
Form2.Picture1.PSet (i, 0), QBColor(14)
Form2.Picture1.Print i
Next i
For x = -5 To 5 Step 0.0001
If Int(x) <> 0 Then Form2.Picture1.PSet (x, (x - Int(x)) / Int(x)), QBColor(12)
Next x
For x = 1 To 5 Step 0.0001
If ((x - Int(x)) / Int(x) - ((x + 0.0001) - Int(x + 0.0001)) / Int(x + 0.0001)) > 0.1 Then Form2.Picture1.Circle (x, (x - Int(x)) / Int(x)), 0.05
Next x
For x = -5 To -0.001 Step 0.0001
If ((x - Int(x)) / Int(x) - ((x + 0.0001) - Int(x + 0.0001)) / Int(x + 0.0001)) < -0.1 Then Form2.Picture1.Circle (x, (x - Int(x)) / Int(x)), 0.05
Next x
x = -0.0001
Form2.Picture1.Circle (x, (x - Int(x)) / Int(x)), 0.05
End Sub
Примечание: обратить внимание при рисовании окружностей для выкалывания точек, что для отрицательной числовой прямой у последнего отрезка точка не будет выкалываться, так как конечное значение -0.001. Поэтому надо задать отдельно рисование окружности в этой точке.
После построения графиков сложных функций желательно провести самостоятельную работу.
Уроки №22, 23
Практическая работа №14.
Построение касательной к графику функции.
Построение графика функции, линий, использование циклов и ветвления. Функция MsgBox.
Задание: Составить программу, реализующую построение графика квадратичной функции, касательной к ней и определяющую знак углового коэффициента. Значение абсциссы точки касания задаётся с клавиатуры.
Алгоритм выполнения:
- Переименовать форму1 в «Построение графика функции и касательной».
- Разместить на форме метку, содержащую задание, и кнопку «НАЧАТЬ», открывающую форму2.
- Добавить две формы.
- Изменить название формы2 на «Задание функции и Хо».
- Разместить на форме2 3 метки с пояснениями, 3 графических окна для функции и «х2» и «х», 4 текстовых поля, кнопку «Выполнение».
- Открыть текстовый редактор Word и набрать там общий вид квадратичной функции с помощью редактора формул. Нажать на клавиатуре кнопку «Prt Sc», тем самым скопировать изображение экрана в буфер обмена. Затем открыть графический редактор Paint, применить команду ПРАВКА – ВСТАВИТЬ. Выделить только надпись с видом функции, скопировать. Перейти в окно Visual Basic, выделить графическое окно PictureBox1 и вставить туда содержимое буфера обмена.
- Аналогично произвести вставку «х2» и «х» в объекты PictureBox2 и PictureBox3.
8) В командной кнопке написать процедуру построения графика функции, касательной и определения угла ксательной:
Private Sub Command1_Click()
‘Определение значения коэффициентов и Хо
a = Val(Text1.Text)
b = Val(Text3.Text)
c = Val(Text5.Text)
Xo = Val(Text2.Text)
Form3.Show
‘Задание системы координат и координатных линий
Form3.Picture1.Scale (-10, 10)-(10, -10)
Form3.Picture1.Line (-10, 0)-(10, 0)
Form3.Picture1.Line (0, -10)-(0, 10)
‘Рисование точек на оси ОХ и их подпись
For i = -10 To 10
Form3.Picture1.PSet (i, 0), QBColor(4)
Form3.Picture1.Print i
Next i
‘ Рисование точек на оси ОУ и их подпись
For i = -10 To 10
Form3.Picture1.PSet (0, i), QBColor(4)
Form3.Picture1.Print i
Next i
‘Рисование графика квадратичной функции
For i = -10 To 10 Step 0.01
Form3.Picture1.PSet (i, a * i * i + b * i + c)
Next i
‘ Рисование касательной, используя уравнение касательной
For i = -10 To 10 Step 0.01
Form3.Picture1.PSet (i, (2 * a * Xo + b) * (i - Xo) + a * Xo * Xo + b * Xo + c)
Next i
‘ Определение знака углового коэффициента
If (2 * a * Xo < 0) Then
MsgBox ("угловой коэффициент касательной < 0")
ElseIf (2 * a * Xo = 0) Then
MsgBox ("угловой коэффициент касательной = 0")
Else: MsgBox ("угловой коэффициент касательной > 0")
End If
End Sub
9) На форме3 разместить объект PictureBox и кнопку «заново», которая открывает форму2.
10) Протестировать программу.
Примечание: сама программа, описанная в п8. ученикам не выдаётся, можно лишь выдать подсказки в виде алгоритма последовательности записи. До выполнения программы необходимо вспомнить уравнение касательной, нахождение углового коэффициента. Также функцию MsgBox.
Уроки 24, 25
Практическая работа №15.
Составление программ, реализующих нахождение точек максимума и минимума.
Построение графика функции, линий, использование циклов и ветвления.
Задание: Составить программу, реализующую нахождение точек максимума, минимума и построение графика функции.
;
;
;
;
;
;
;
.
Разъяснение для учеников:
Что это за точка – «точка максимума»? Это значит, что при х1
Одну функцию разбирают коллективно на уроке, на второй урок дать на самостоятельное выполнение для закрепления ещё 2 функции на выбор.
Алгоритм выполнения:
1. Переименовать форму1 в «Задание».
2. Разместить на форме метку, содержащую задание, и кнопку «НАЧАТЬ», открывающую форму2.
3. Добавить форму.
4. Изменить название формы2 на «График».
5. Разместить на форме1 графическое окно для функции.
6. Открыть текстовый редактор Word и набрать там вид функции с помощью редактора формул. Нажать на клавиатуре кнопку «Prt Sc», тем самым скопировать изображение экрана в буфер обмена. Затем открыть графический редактор Paint, применить команду ПРАВКА – ВСТАВИТЬ. Выделить только надпись с видом функции, скопировать. Перейти в окно Visual Basic, выделить графическое окно PictureBox1 и вставить туда содержимое буфера обмена.
7. На форме2 разместить графическое окно справа, оставив слева область для вывода точек максимума и минимума.
8. В кнопке «Начать» записать программу рисования графика функции.
9. Для нахождения экстремумов надо рассматривать по 3 точки одновременно, например (х-0.1), х, (х+0.1) и сравнивать значение ординат в этих точках. Чтобы рассмотреть все точки с шагом 0.1 на заданной области, необходимо использовать цикл. Если обозначить значение ординат за у1, у, у3, то при (у1 < y) And (y > y3) получим точку максимума (х, у); при (у1 > y) And (y < y3) получим точку минимума (х, у).
10. Ответ выводить с помощью метода Print на форму2.
Пример для функции
Private Sub Command1_Click()
Form2.Show
Form2.Picture1.Scale (-10, 30)-(10, -30)
Form2.Picture1.Line (-10, 0)-(10, 0), QBColor(5)
Form2.Picture1.Line (0, -50)-(0, 50), QBColor(5)
For i = -50 To 50 Step 5
Form2.Picture1.PSet (0, i), QBColor(12)
Form2.Picture1.Print i
Next i
For i = -10 To 10
Form2.Picture1.PSet (i, 0), QBColor(12)
Form2.Picture1.Print i
Next i
For x = -10 To 10 Step 0.001
Form2.Picture1.PSet (x, x ^ 3 + 3 * x ^ 2 - 9 * x + 1), QBColor(4)
Next x
For x = -10 To 10 Step 0.1
X1 = x - 0.1
x3 = x + 0.1
Y1 = X1 ^ 3 + 3 * X1 ^ 2 - 9 * X1 + 1
y = x ^ 3 + 3 * x ^ 2 - 9 * x + 1
y3 = x3 ^ 3 + 3 * x3 ^ 2 - 9 * x3 + 1
If (Y1 < y) And (y > y3) Then Form2.Print x, y, " -точка максимума"
If (Y1 > y) And (y < y3) Then Form2.Print x, y; " -точка минимума"
Next x
Пример для функции
Private Sub Command1_Click()
Form2.Show
Form2.Picture1.Scale (-10, 30)-(10, -30)
Form2.Picture1.Line (-10, 0)-(10, 0), QBColor(5)
Form2.Picture1.Line (0, -50)-(0, 50), QBColor(5)
For i = -50 To 50 Step 5
Form2.Picture1.PSet (0, i), QBColor(12)
Form2.Picture1.Print i
Next i
For i = -10 To 10
Form2.Picture1.PSet (i, 0), QBColor(12)
Form2.Picture1.Print i
Next i
For x = -10 To 10 Step 0.001
Form2.Picture1.PSet (x, 4 * x ^ 3 - 1.5 * x ^ 4), QBColor(4)
Next x
For x = -10 To 10 Step 0.1
X1 = x - 0.1
x3 = x + 0.1
Y1 = 4 * X1 ^ 3 - 1.5 * X1 ^ 4
y = 4 * x ^ 3 - 1.5 * x ^ 4
y3 = 4 * x3 ^ 3 - 1.5 * x3 ^ 4
If (Y1 < y) And (y > y3) Then Form2.Print x, y, " -точка максимума"
If (Y1 > y) And (y < y3) Then Form2.Print x, y; " -точка минимума"
Next x
Пример для функции:
Private Sub Command1_Click()
Form2.Show
Form2.Picture1.Scale (-10, 30)-(10, -30)
Form2.Picture1.Line (-10, 0)-(10, 0), QBColor(5)
Form2.Picture1.Line (0, -50)-(0, 50), QBColor(5)
For i = -50 To 50 Step 5
Form2.Picture1.PSet (0, i), QBColor(12)
Form2.Picture1.Print i
Next i
For i = -10 To 10
Form2.Picture1.PSet (i, 0), QBColor(12)
Form2.Picture1.Print i
Next i
For x = -10 To 10 Step 0.001
Form2.Picture1.PSet (x, 2 + 9 * x + 3 * x ^ 2 - x ^ 3), QBColor(4)
Next x
For x = -10 To 10 Step 0.1
X1 = x - 0.1
x3 = x + 0.1
Y1 = 2 + 9 * X1 + 3 * X1 ^ 2 - X1 ^ 3
y = 2 + 9 * x + 3 * x ^ 2 - x ^ 3
y3 = 2 + 9 * x3 + 3 * x3 ^ 2 - x3 ^ 3
If (Y1 < y) And (y > y3) Then Form2.Print x, y, " -точка максимума"
If (Y1 > y) And (y < y3) Then Form2.Print x, y; " -точка минимума"
Next x
Пример для функции:
Private Sub Command1_Click()
Form2.Show
Form2.Picture1.Scale (-10, 30)-(10, -30)
Form2.Picture1.Line (-10, 0)-(10, 0), QBColor(5)
Form2.Picture1.Line (0, -50)-(0, 50), QBColor(5)
For i = -50 To 50 Step 5
Form2.Picture1.PSet (0, i), QBColor(12)
Form2.Picture1.Print i
Next i
For i = -10 To 10
Form2.Picture1.PSet (i, 0), QBColor(12)
Form2.Picture1.Print i
Next i
For x = -10 To 10 Step 0.001
Form2.Picture1.PSet (x, x ^ 4 - 2 * x ^ 2), QBColor(4)
Next x
For x = -10 To 10 Step 0.1
X1 = x - 0.1
x3 = x + 0.1
Y1 = X1 ^ 4 - 2 * X1 ^ 2
y = x ^ 4 - 2 * x ^ 2
y3 = x3 ^ 4 - 2 * x3 ^ 2
If (Y1 < y) And (y > y3) Then Form2.Print x, y; " -точка максимума"
If (Y1 > y) And (y < y3) Then Form2.Print x, y; " -точка минимума"
Next x
Пример для функции:
Private Sub Command1_Click()
Form2.Show
Form2.Picture1.Scale (-10, 30)-(10, -30)
Form2.Picture1.Line (-10, 0)-(10, 0), QBColor(5)
Form2.Picture1.Line (0, -50)-(0, 50), QBColor(5)
For i = -50 To 50 Step 5
Form2.Picture1.PSet (0, i), QBColor(12)
Form2.Picture1.Print i
Next i
For i = -10 To 10
Form2.Picture1.PSet (i, 0), QBColor(12)
Form2.Picture1.Print i
Next i
For x = -10 To 10 Step 0.001
If Abs(0.5 * x - 1) > 0.0001 Then Form2.Picture1.PSet (x, 2 - 4 / (0.5 * x - 1)), QBColor(4)
Next x
For x = -10 To 10 Step 0.1
X1 = x - 0.1
x3 = x + 0.1
Y1 = 2 - 4 / (0.5 * X1 - 1)
y = 2 - 4 / (0.5 * x - 1)
y3 = 2 - 4 / (0.5 * x3 - 1)
If (Y1 < y) And (y > y3) And Abs(Y1 - y) < 0.1 And Abs(y3 - y) < 0.1 Then Form2.Print x, y; " -точка максимума"
If (Y1 > y) And (y < y3) And Abs(Y1 - y) < 0.1 And Abs(y3 - y) < 0.1 Then Form2.Print x, y; " -точка минимума"
Next x
Примечание: Важно, так как функция имеет разрыв, то необходимым условием экстремума ещё будет Abs(у1 - y) < 0.1 And Abs(y3 - y) < 0.1.
Пример для функции
Private Sub Command1_Click()
Form2.Show
Form2.Picture1.Scale (-10, 30)-(10, -30)
Form2.Picture1.Line (-10, 0)-(10, 0), QBColor(5)
Form2.Picture1.Line (0, -50)-(0, 50), QBColor(5)
For i = -50 To 50 Step 5
Form2.Picture1.PSet (0, i), QBColor(12)
Form2.Picture1.Print i
Next i
For i = -10 To 10
Form2.Picture1.PSet (i, 0), QBColor(12)
Form2.Picture1.Print i
Next i
For x = -10 To 10 Step 0.001
Form2.Picture1.PSet (x, Abs(x - 3) - 2), QBColor(4)
Next x
For x = -10 To 10 Step 0.1
X1 = x - 0.1
x3 = x + 0.1
Y1 = Abs(X1 - 3) - 2
y = Abs(x - 3) - 2
y3 = Abs(x3 - 3) - 2
If (Y1 < y) And (y > y3) Then Form2.Print x, y; " -точка максимума"
If (Y1 > y) And (y < y3) Then Form2.Print x, y; " -точка минимума"
Next x
Пример для функции
Private Sub Command1_Click()
Form2.Show
Form2.Picture1.Scale (-10, 30)-(10, -30)
Form2.Picture1.Line (-10, 0)-(10, 0), QBColor(5)
Form2.Picture1.Line (0, -50)-(0, 50), QBColor(5)
For i = -50 To 50 Step 5
Form2.Picture1.PSet (0, i), QBColor(12)
Form2.Picture1.Print i
Next i
For i = -10 To 10
Form2.Picture1.PSet (i, 0), QBColor(12)
Form2.Picture1.Print i
Next i
For x = -10 To 10 Step 0.001
Form2.Picture1.PSet (x, 8 * x ^ 2 - x ^ 4), QBColor(4)
Next x
For x = -10 To 10 Step 0.1
X1 = x - 0.1
x3 = x + 0.1
Y1 = 8 * X1 ^ 2 - X1 ^ 4
y = 8 * x ^ 2 - x ^ 4
y3 = 8 * x3 ^ 2 - x3 ^ 4
If (Y1 < y) And (y > y3) Then Form2.Print x, y; " -точка максимума"
If (Y1 > y) And (y < y3) Then Form2.Print x, y; " -точка минимума"
Next x
Пример для функции
Private Sub Command1_Click()
Form2.Show
Form2.Picture1.Scale (-8, 20)-(8, -20)
Form2.Picture1.Line (-8, 0)-(8, 0), QBColor(5)
Form2.Picture1.Line (0, -20)-(0, 20), QBColor(5)
For i = -20 To 20 Step 5
Form2.Picture1.PSet (0, i), QBColor(12)
Form2.Picture1.Print i
Next i
For i = -8 To 8
Form2.Picture1.PSet (i, 0), QBColor(12)
Form2.Picture1.Print i
Next i
For x = -8 To 8 Step 0.0001
If Abs(x) > 0.0001 Then Form2.Picture1.PSet (x, Abs(1 / x - 1)), QBColor(4)
Next x
For x = -8 To 8 Step 0.1
X1 = x - 0.1
x3 = x + 0.1
Y1 = Abs(1 / X1 - 1)
y = Abs(1 / x - 1)
y3 = Abs(1 / x3 - 1)
If (Y1 < y) And (y > y3) And Abs(y - Y1) < 0.1 And Abs(y - y3) < 0.1 Then Form2.Print x, y; " -точка максимума"
If (Y1 > y) And (y < y3) Then Form2.Print x, y; " -точка минимума"
Next x
Уроки 26, 27
Практическая работа №16.
Построение окружностей. Решение тригонометрических уравнений на единичной окружности.
Задание: Составить программу графического решения тригонометрических уравнений на единичной окружности. Выбор уравнения организовать через меню.
Учащиеся делятся на 4 группы, каждой группе предлагается составить программу для отображения угла на единичной окружности для одного из тригонометрических уравнений. Требование: программа должна состоять из одной формы. На ней разместить задание, значение а вводиться в программу с формы. Разместить 3 кнопки: построение, повторить, в меню. Задание можно дать на дом, чтоб к следующему уроку ученики повторили решение тригонометрических уравнений. В группе можно распределить обязанности: математик, программист, дизайнер. Каждый продумает свою работу.
Программный код кнопки «Построение» содержит:
1. команду задания системы координат
2. Рисование координатных линий
3. Рисование единичной окружности с центром в т. (0,0)
4. Определение числового значения тригонометрической функции (вводимого в текстовое поле)
5. Учесть, что введённое значение должно принадлежать отрезку [-1,1] для функции sin и cos. Если значение не лежит в этом диапазоне, то вывести сообщение об ошибке и перейти в программе на конец процедуры.
6. Вычислить для функции
sinx: х1 и х2, равные
cosx: y1 и y2, равные
tgx: x1 и x2, равные и у1 и у2, равные tgx*x1 и tgx*x2
ctgx: y1 и y2, равные и х1 и х2, равные y1*ctgx, y2*ctgx , для построения линий на окружности, определяющих угол
7. Построить 2 линии.
8. Рассмотреть в каком случае функция отрицательна, а в каком положительна и выбрать нужную область на окружности.
9. Построить 2 дуги в нужных частях окружности. Для записи углов начала дуги и конца дуги воспользоваться формулами: ; ; ; ;
; sin(arcsin y)=y; cos(arcos y)=y
10. Для фунции sin(x) и cos(x) учесть рисование дуг для случаев равенства y=
11. Запрограммировать кнопку «Повторить», которая открывает соответствующую форму заново и очищает текстовое поле для ввода.
12. Запрограммировать кнопку «В меню», которая открывает форму1.
13. Сохранить формы. Скопировать выполненные формы с другими функциями.
14. На первой форме создать меню. Для этого воспользоваться помощью Menu Editor. Создать 2 пункта меню: Функции и выход. В пункте функции создать подпункты sinx=a, cosx=a, tgx=a, ctgx=a.
После создания пунктов меню, выбрать каждый и написать код для открытия каждой формы, используя метод show.
В пункте выход написать:
Private Sub ex_Click(Index As Integer)
a = MsgBox("вы действительно хотите завершить работу?", vbYesNo)
If a = 6 Then End
End Sub
Например для функции sin(x):
Код кнопки ПОСТРОЕНИЕ.
Private Sub Command1_Click()
Picture1.Scale (-2, 2)-(2, -2)
Picture1.Line (-2, 0)-(2, 0)
For i = -2 To 2
Picture1.PSet (i, 0), QBColor(3)
Picture1.Print i
Next i
Picture1.Line (0, -2)-(0, 2)
For i = -2 To 2
Picture1.PSet (0, i), QBColor(3)
Picture1.Print i
Next i
Picture1.Circle (0, 0), 1, QBColor(5)
y = Val(Text3.Text)
If Abs(y) > 1 Then
MsgBox ("не верно введено значение синуса")
GoTo nach
Else
X1 = Sqr(1 - y * y)
X2 = -Sqr(1 - y * y)
Picture1.Line (X2, y)-(0, 0), QBColor(12)
Picture1.Line (X1, y)-(0, 0), QBColor(12)
End If
If (y > 0) And (y <> 1) Then
Picture1.Circle (0, 0), 0.5, QBColor(4), 0, Atn(y / Sqr(1 - y * y))
Picture1.Circle (0, 0), 0.5, QBColor(4), 3.1428 - Atn(y / Sqr(1 - y * y)), 3.1428
End If
If (y <= 0) And (y <> -1) Then
Picture1.Circle (0, 0), 0.5, QBColor(4), (6.28 + Atn(y / Sqr(1 - y * y))), 6.28
Picture1.Circle (0, 0), 0.5, QBColor(4), 3.14, (3.14 - Atn(y / Sqr(1 - y * y)))
End If
If y = 1 Then Picture1.Circle (0, 0), 0.5, QBColor(4), 0, 1.57
If y = -1 Then Picture1.Circle (0, 0), 0.5, QBColor(4), 4.71, 6.28
nach:
End Sub
Например для функции cos(x):
Код кнопки ПОСТРОЕНИЕ
Private Sub Command1_Click()
Picture1.Scale (-2, 2)-(2, -2)
Picture1.Line (-2, 0)-(2, 0)
For i = -2 To 2
Picture1.PSet (i, 0), QBColor(3)
Picture1.Print i
Next i
Picture1.Line (0, -2)-(0, 2)
For i = -2 To 2
Picture1.PSet (0, i), QBColor(3)
Picture1.Print i
Next i
Picture1.Circle (0, 0), 1, QBColor(5)
x = Val(Text3.Text)
If Abs(x) > 1 Then
MsgBox ("не верно введено значение косинуса")
GoTo nach
Else
Y1 = Sqr(1 - x * x)
Y2 = -Sqr(1 - x * x)
Picture1.Line (x, Y1)-(0, 0), QBColor(12)
Picture1.Line (x, Y2)-(0, 0), QBColor(12)
End If
If (x <> 1) And (x <> -1) Then
Picture1.Circle (0, 0), 0.5, QBColor(12), 0, (1.57 - Atn(x / Sqr(1 - x * x)))
Picture1.Circle (0, 0), 0.5, QBColor(7), (6.28 - 1.57 + Atn(x / Sqr(1 - x * x)))
End If
If x = 1 Then MsgBox ("угол 0 градусов")
If x = -1 Then Picture1.Circle (0, 0), 0.5, QBColor(12), 0, 3.14
nach:
End Sub
Например для функции tg(x):
Код кнопки ПОСТРОЕНИЕ.
Private Sub Command1_Click()
Picture1.Scale (-2, 2)-(2, -2)
Picture1.Line (-2, 0)-(2, 0)
For i = -2 To 2
Picture1.PSet (i, 0), QBColor(3)
Picture1.Print i
Next i
Picture1.Line (0, -2)-(0, 2)
For i = -2 To 2
Picture1.PSet (0, i), QBColor(3)
Picture1.Print i
Next i
Picture1.Circle (0, 0), 1, QBColor(5)
a = Val(Text3.Text)
X1 = 1 / Sqr(1 + a * a)
X2 = -1 / Sqr(1 + a * a)
Y1 = a * X1
Y2 = a * X2
Picture1.Line (X1, Y1)-(X2, Y2)
If a > 0 Then
Picture1.Circle (0, 0), 0.3, QBColor(4), 0, Atn(a)
Picture1.Circle (0, 0), 0.3, QBColor(11), 3.1428, 3.1428 + Atn(a)
Else
Picture1.Circle (0, 0), 0.3, QBColor(4), 6.28 + Atn(a), 6.28
Picture1.Circle (0, 0), 0.3, QBColor(11), Atn(a) + 3.1428, 3.1428
End If
End Sub
Например для функции tg(x):
Private Sub Command1_Click()
Picture1.Scale (-2, 2)-(2, -2)
Picture1.Line (-2, 0)-(2, 0)
For i = -2 To 2
Picture1.PSet (i, 0), QBColor(3)
Picture1.Print i
Next i
Picture1.Line (0, -2)-(0, 2)
For i = -2 To 2
Picture1.PSet (0, i), QBColor(3)
Picture1.Print i
Next i
Picture1.Circle (0, 0), 1, QBColor(5)
a = Val(Text3.Text)
Y1 = 1 / Sqr(1 + a * a)
Y2 = -1 / Sqr(1 + a * a)
X1 = a * Y1
X2 = a * Y2
Picture1.Line (X1, Y1)-(X2, Y2)
If a > 0 Then
Picture1.Circle (0, 0), 0.3, QBColor(4), 0, Atn(1 / a)
Picture1.Circle (0, 0), 0.3, QBColor(11), 3.1428, 3.1428 + Atn(1 / a)
Else
Picture1.Circle (0, 0), 0.3, QBColor(4), 6.28 + Atn(1 / a), 6.28
Picture1.Circle (0, 0), 0.3, QBColor(11), Atn(1 / a) + 3.1428, 3.1428
End If
End Sub
Уроки 28, 29
Практическая работа №17.
Графическое решение уравнений и неравенств.
Задание: Составить программу, отражающую графическое решение уравнений и неравенств.
, , , , , , при , при , .
Что значит «графически решить неравенство?» Значит построить 2 графика функции. Если знак стоял «<» между частями неравенства, то найти область, где график первой функции ниже, чем график второй функции. Если знак стоял «>» между частями неравенства, то найти область, где график первой функции выше, чем график второй функции.
Как это отразить в программе? Можно показать данную область цветом и выделить точку пересечения.
Алгоритм выполнения (на примере первого неравенства)
- Оформить форму по образцу:
- Добавить форму2.
- Разместить на форме2 графическое поле.
- В кнопке написать программу:
Private Sub Command1_Click()
Form2.Show
‘задание системы координат
Form2.Picture1.Scale (-10, 30)-(10, -30)
‘рисование графиков функций у=4-3х и у=х+2
‘Вычисление значений функций в каждой точке
For x = -10 To 10 Step 0.001
Form2.Picture1.PSet (x, (4 - 3 * x)), QBColor(4)
Form2.Picture1.PSet (x, (x + 2)), QBColor(2)
У1 = 4 - 3 * x
У2 = x + 2
‘Сравнение значений функции в каждой точке, для поиска ‘точки пересечения графиков. Рисование окружности в ‘этой точке.
If Abs(У1 - У2) < 0.00001 Then
Form2.Picture1.Circle (x, (x + 2)), 0.1, QBColor(14)
otv = x
End If
Next x
‘Рисование оси ОУ с точками на ней.
Form2.Picture1.Line (0, 30)-(0, -30)
For i = -30 To 30 Step 3
Form2.Picture1.PSet (0, i), QBColor(14)
Form2.Picture1.Print i
Next i
‘Рисование оси ОХ, содержащую ответ, отмеченный ‘жёлтым цветом.
For x = -10 To 10 Step 0.0001
If (4 - 3 * x) <= (x + 2) Then
Form2.Picture1.PSet (x, 0), QBColor(14)
Else
Form2.Picture1.PSet (x, 0)
End If
Next x
‘Рисование точек на оси ОХ и их подпись
For i = -10 To 10
Form2.Picture1.PSet (i, 0), QBColor(6)
Form2.Picture1.Print i
Next i
End Sub
Примечание. До выполнения программы, обсудить с учениками алгоритм выполнения, обратить внимание на п.3. Сравнение идёт не У1=У2, а именно по модулю |у1-у2|<0.0001, то есть маленькой величины. Это связано с тем, что значения функций вычисляются дискретно, и может быть пропущено точное значения условия равенства.
Уроки 30, 31
Выполнение итоговой работы.
Ученикам предлагаются функции, для которых необходимо составить программу, содержащую график функции, с выделением областей, на которых функция принимает положительные значения, указанием точек максимума и минимума функции.
Y=|sin(x)|-0,3
Y=sin(x+3)-|x-4|+2
Y=cos(x)-|x|+1
Y=cos(x)-|x-2|+4
Y=2cos(x)-|x|
Y=2sinx-|cos(x)|
Y=2+sinx-|cos(x)|
Y=cos(x)
Y=sin(x)
Y=+cos(x)
Урок 32.
Защита итоговой работы.
Защита происходит коллективно. Учащиеся по очереди демонстрируют свои программы, высказываются о сложностях выполнения, где им было трудно, в каких местах пришлось исправлять.
Резерв отводиться для дополнительного времени при выполнении итоговой работы.
Литература
- Лукин С.Н. Visual Basic. Самоучитель для начинающих. – М.: Диалог – МИФИ, 2004.
- Мордкович А. Г. Алгебра и начала анализа. 10-11 кл.: Ч. 1.,2 Учебник (базовый уровень). -6-е изд. –М.: ИОЦ Мнемозина, 2005
- Шварцбург С. И., Ивлев Б. М., Абрамов А. М., Дудницын Ю. П., Колмогоров А. Н. Алгебра и начала анализа. 10-11 класс./ под. ред. А.Н. Колмогорова. 11-е изд. – М.: Просвещение, 2004.
- Угринович Н.Д. Информатика и информационные технологии. Учебник для 10-11 кл. / Н.Д. Угринович. – М.: Бином. Лаборатория Знаний, 2003
Рекомендуемая литература для учащихся и учителей:
- Лукин С.Н. Visual Basic. Самоучитель для начинающих. – М.: Диалог – МИФИ, 2004.
- Симонович С.В., Евсеев Г.А. Занимательное программирование: Visual Basic: Книга для детей, родителей и учителей. – М.: АСТ-ПРЕСС КНИГА: Инфорком-Пресс, 2001.
- Программирование игр на уроках информатики //Информатика в школе: Приложение к журналу «Информатика и образование» №7 – 2005. – М.: Образование и Информатика, 2005.
- Visual Basic в курсе информатики // Информатика в школе: Приложение к журналу «Информатика и образование» №3 – 2005. – М.: Образование и Информатика, 2005.
- Житкова О.А., Кудрявцева Е.К. Алгоритмы и основы программирования. (Тематический контроль по информатике)/ - М.: Интеллект-Центр, 1999.
- Житкова О.А., Кудрявцева Е.К. Бейсик и Паскаль в вопросах и задачах. (Рабочая тетрадь №1 и №2)/ - М.: Интеллект-Центр, 2001.
- Энциклопедический словарь юного математика /Сост. А.П. Савин. – 3-е изд., испр. и доп. – М.: Педагогика-Пресс, 1999.
Приложение 1
Тематические блоки элективного курса «Программирование задач по теме функция».
Приложение 2
Лекции - 4
Практические работы - 18:
Виды практических работ по форме деятельности | всего | номера |
практические работы репродуктивного характера | 4 | №1, №3, №6, №9 |
самостоятельные практические работы | 9 | №2, №4, №7, №8, №11, №12, №13, №14, №15 |
практические работы творческого характера, проекты | 4 | №5, №10, №17, итоговая работа |
групповая практическая работа | 1 | №16 |
Приложение 3
По теме: методические разработки, презентации и конспекты
Рабочая программа элективного курса «Программирование в Adobe Flash»
Данная рабочая программа составлена на основе авторской программы элективного курса доктора технических наук К.Ю. Полякова «Программирование в Adobeflash». Программа имеет рецензию Р...
Тематическое планирование элективного курса по математике по теме: «Избранные вопросы по математики. Нестандартные задачи» 10-11 классы, Петрашова Валентина Николаевна - учитель математики высшей категории
Тематическое планирование элективного курса по математике по теме: «Избранные вопросы по математики. Нестандартные задачи» 10-11 классы, Петрашова Валентина Николаевна - учитель математики высшей кате...
Программа элективного курса «Программирование на языке Basic. Начало изучения».
Авторская программа Основным методом обучения в данном элективном курсе является метод проектов. Проектная деятельность позволяет развить исследовательские и творческие способности учащихся. Роль учи...
элективный курс "Программирование математических задач"
элективный курс"Программирование математических задач" - предпрофильный курс, проводимый в 9 классе....
Элективный курс_программирование_10б класс
Элективный курс_программирование_10б класс...
Программа элективного курса «программирование алгоритмов»
В рамках часов, отводимых «Примерной программой» в базовом курсе информатики на алгоритмизацию и программирование, овладение даже основами программирования на языках высокого уровня представляется нев...
Элективный курс Программирование на языке Паскаль
Элективный курс Программирование на языке Паскаль...