Коротун Ольга Викторовна, учитель информатики моу «сош №71», г. Саратов пояснительная записка
Вид материала | Пояснительная записка |
- Булавина Александра Викторовна, Моисеенко Ольга Михайловна. Моу-сош №39 пояснительная, 104.7kb.
- Чернакова Оксана Юрьевна, учитель информатики моу сош №21 Класс 8; количество часов, 69.11kb.
- Киселева Мария Геннадьевна учитель информатики моу сош №2 им. И. А. Сухана г. Кстово, 346.34kb.
- Киселева Мария Геннадьевна учитель информатики моу сош №2 им. И. А. Сухана г. Кстово, 328.22kb.
- Киселева Мария Геннадьевна учитель информатики моу сош №2 им. И. А. Сухана г. Кстово, 428.62kb.
- Садовникова Наталья Витальевна учитель информатики моу «Логовская сош» Калачёвского, 131.16kb.
- Фролова Ольга Николаевна моу «сош п. Чернореченский» учитель начальных классов 1 квалификационная, 354.7kb.
- Гудкова Ольга Яковлевна, учитель истории и обществознания м боу г. Владимира «сош №7»., 139.2kb.
- Киселева Мария Геннадьевна учитель информатики моу сош №2 им. И. А. Сухана kis-marya@rambler, 346.32kb.
- Калашникова Татьяна Викторовна, учитель истории моу «Тополинская сош». Рецензенты:, 87.81kb.
СРЕДА BORLAND DELPHI
Коротун Ольга Викторовна, учитель информатики МОУ «СОШ №71», г. Саратов
Пояснительная записка
Информатика как учебный предмет открывает школьникам для систематического изучения одну из важнейших областей действительности – область информационных процессов в живой природе, обществе, технике. Развивая единый подход к изучению, обосновывая общность процессов восприятия, передачи, преобразования информации в системах различной природы, информатика вносит существенный вклад в формирование современного научного представления о мире, его единстве. Наличие и значительная роль информационных процессов в системах различной природы (биологических, социальных, технических) определяют востребованность элективных курсов по информатике в различных профилях обучения на старших ступенях школы.
Изучение информатики имеет важное значение для развития мышления школьников. Информатика превносит в учебный процесс новые виды учебной деятельности, многие умения и навыки, формируемые при её изучении, носят в современных условиях общенаучный, общеинтеллектуальный характер. К ним, в частности, относятся:
- поиск, сбор, анализ, организация, представление, передача информации в открытом информационном обществе и всей окружающей реальности;
- проектирование на основе информационного моделирования объектов и процессов;
- умение решать принципиально новые задачи, порождённые привнесенным информатикой новым информационным подходом к анализу окружающей действительности.
^ Место курса в образовательном процессе.
Данный элективный курс является надпредметным и предназначен для изучения учащимися 11 классов школ, гимназий, колледжей информационно-технологического профиля среды программирования Borland Delphi, которая хорошо известна практически всем профессионалам. Delphi позволяет быстро создавать приложения различной степени сложности на основе применения технологии визуального программирования. Курс рекомендуется учащимся, решившим в будущем стать программистами или профессионально решать технические и математические задачи на современном уровне.
^ Связь с другими курсами.
Курс требует знания информатики за 7–9 классы, операционной системы MS Windows, методики построения алгоритмов и программирования на языке Pascal. Обратите внимание! Данный курс невозможно изучить без предварительного изучения курсов «Алгоритмика» и «Программирование на языке Turbо Pascal».
В этом курсе даются основы объектно-ориентированного подхода, много практических примеров программирования. Все эти примеры подразумевают, что учащийся уже имеет навык самостоятельного программирования на язык Turbo Pascal и способен самостоятельно написать обработчик по заданному алгоритму.
^ Учебно-методическое обеспечение курса.
Наряду с лекциями по каждому из разделов курса предлагаются тестовые задания и практикумы. Практикумы представляют собой большие практические работы, ориентированные на получение целостного содержательного результата, осмысленного и интересного для учащихся. Задача практикума – познакомить учащихся с основными видами широко используемых программных средств ИКТ в их профессиональных версиях (тогда, как правило, используются только базовые функции) и учебных версиях. В рамках такого знакомства учащиеся выполняют соответствующие, представляющие для них смысл и интерес проекты, относящиеся к другим школьным предметам, жизни школы, сфере их персональных интересов. В результате они получают базовые знания и умения, относящиеся к соответствующим сферам применения ИКТ, могут быстро включиться в решение производственных задач, получают профессиональную ориентацию.
Основным методом обучения в данном элективном курсе является метод проектов, который позволяет развить исследовательские и творческие способности учащихся.
Курс рассчитан на 34 часа (по 1 часу в неделю).
^ Цели и задачи курса.
Основной целью курса является развитие навыков программирования на языке Delphi. Объектно-ориентированная парадигма программирования является сейчас наиболее перспективной и широко востребованной в различных областях.
^ Задачи курса:
- активизация познавательного интереса учащихся, их профессионального самоопределения;
- адаптация выпускников к современным социально-экономическим условиям жизни.
^ Образовательные результаты.
В результате освоения курса учащиеся получат представление об интегрированной среде разработки Borland Delphi, познакомятся с интерфейсом, научатся создавать программы, а также создавать, сохранять и загружать проекты.
^ Учебно-тематическое планирование курса
№ | Тема | Количество часов | Форма проведения | ^ Образова-тельный продукт | ||
всего | теория | практика | ||||
1 | Основные сведения о среде разработчика. Delphi как развитие Pascal. | 1 | 0,5 | 0,5 | Лекция, тест | Конспект, результаты тестирования |
2 | Элементы интерфейса программы. | 1 | 0,5 | 0,5 | Лекция, тест | Конспект, результаты тестирования |
3 | Объектно-ориентированный подход к программированию | 2 | 1 | 1 | Семинар, тест | Конспект, результаты тестирования |
4 | Объектная модель Delphi. | 2 | 1 | 1 | Лекция, тест | Конспект, результаты тестирования |
5 | Создание форм. Простейшие программы. | 1 | 0,5 | 0,5 | Лекция, практическая работа «Термометр» | Конспект,, результаты практической работы |
6 | Структура программ | 2 | 1 | 1 | Лекция, тест | Конспект, результаты тестирования |
7 | Сложные программы с многооконным интерфейсом. Используем диалоги. Создаём формы. | 2 | 1 | 1 | Лекция, тест | Конспект, результаты тестирования |
8 | Контрольная работа | 1 | | | Тест | Результаты контрольного тестирования |
Создание мини-проектов на Delphi | ||||||
9 | Проект «Параметры шрифта» | 2 | 1 | 1 | Лекция, практическая работа | Результаты практической работы |
10 | Проект «Сложение чисел» | 2 | 1 | 1 | Лекция, практическая работа | Результаты практической работы |
11 | Проект «Меню» | 2 | 1 | 1 | Лекция, практическая работа | Результаты практической работы |
12 | Проект «Подбор цвета» | 2 | 1 | 1 | Лекция, практическая работа | Результаты практической работы |
13 | Проект «Редактор текста» | 2 | 1 | 1 | Лекция, практическая работа | Результаты практической работы |
14 | Проект «Рисование картинки» | 2 | 1 | 1 | Лекция, практическая работа | Результаты практической работы |
15 | Проект «Вечное движение» | 2 | 1 | 1 | Лекция, практическая работа | Результаты практической работы |
16 | Проект «Графический редактор» | 2 | 1 | 1 | Лекция, практическая работа | Результаты практической работы |
17 | Проект «Расчёт оплаты» | 2 | 1 | 1 | Лекция, практическая работа | Результаты практической работы |
Проектная деятельность учащихся | ||||||
18 | Проекты:
| 4 | | 4 | Конференция | Защищаемый проект, зачёт |
Всего часов: | 34 | | | | |
Приложение
Примерный план разработки урока
^ Урок №7
«Создание форм. Простейшие программы»
Цель урока: познакомить учащихся с основными принципами создания простейших программ на языке программирования Borland Delphi.
^ Задачи урока:
- создание простой программы, обладающей функциями рисования фрактала, задания границ картинки с клавиатуры, масштабирования с помощью мышки, сохранения полученных картинок в файл;
- создание однооконной программы, которая переводит градусы из шкалы Цельсия в шкалу Фаренгейта и обратно, а также отображает температуру с помощью термометра.
Тип урока: усвоение новых знаний.
Ход урока
1. Организационный этап.
Определение готовности учащихся к уроку.
^ 2. Подготовка учащихся к активному и сознательному усвоению нового материала. Лекция сопровождается показом слайдов.
Вы уже знаете достаточно много для того, чтобы создать первую, пока простую, но полноценную программу.
Одно из популярных сейчас научных направлений, синергетика, изучает всяческие нелинейные явления и процессы. В ее арсенале имеется множество интересных и поучительных эффектов, которые можно достаточно просто реализовать на компьютере. Приобщимся и мы к великому и создадим программу, рисующую фрактальное множество.
Самым известным фрактальным множеством является множество Мандельброта. Бенуа Мандельброт, обнаружив его, фактически заложил основу новой науки.
При всей многогранности и богатстве образов, содержащихся в этом фрактале, для построения его используется очень простое, но, что важно, нелинейное уравнение в комплексных переменных.
Это уравнение может быть приведено к действительным переменным, если его разбить на вещественную и мнимую часть.
Фрактал строится следующим образом. В комплексном пространстве фиксируется точка с координатами p и q, начальные x и y полагаются равными нулю, а затем просчитывается последовательность преобразований.
В результате этих преобразований комплексное число может начать расти, и в этом случае его модуль рано или поздно превысит некоторое критическое значение L. В этом случае точка окрашивается в цвет, соответствующий количеству циклов преобразований, прошедших с начала расчета.
Однако не все точки обладают таким свойством. Для некоторых из них модуль комплексного числа никогда не превысит ^ L. Если модуль не превысил L за определенное время, то преобразования останавливаются, и точка окрашивается в темный цвет.
Такой простой алгоритм приводит к построению потрясающего фрактала. Бесконечно увеличивая его, мы никогда не перестанем сталкиваться с новыми причудливыми картинами.
^ 3. Усвоение новых знаний
Начните новый проект, поместите на форму Image кнопку Button, четыре поля ввода Edit, четыре надписи Label и линейку прогресса ProgressBar.
Установите свойства компонентов.
Значения этих полей ввода будут задавать прямоугольную часть комплексной плоскости, которая будет отображаться на компоненте Image.
Итак, по нажатию кнопки мы делаем следующее.
Определяем временные и пространственные ограничения.
Считываем данные из полей ввода.
Обеспечиваем цикл по точкам картинки, переводя их координаты в координаты на комплексной плоскости.
Обнуляем x, y и t.
Реализуем преобразования.
Оканчиваем цикл преобразований, когда модуль превысил L или время истекло.
В зависимости от условия выхода из цикла, окрашиваем точку.
Меняем значение у линейки прогресса, чтобы пользователь знал, скоро ли картинка обновится.
procedure TForm1.Button1Click(Sender: TObject);
var i, j, t, Time, Size, L: integer;
p0, q0, p1, q1, p, q, x, y, xx: double;
begin
Time := 500;
Size := 250;
L := 100;
p0 := StrToFloat(Edit1.Text);
p1 := StrToFloat(Edit2.Text);
q0 := StrToFloat(Edit3.Text);
q1 := StrToFloat(Edit4.Text);
for i := 0 to Size - 1 do
begin
p := p0 + i * (p1 - p0) / (Size - 1);
for j := 0 to Size - 1 do
begin
q := q0 + j * (q1 - q0) / (Size - 1);
x := 0;
y := 0;
t := 0;
repeat inc(t);
xx := x;
x := sqr(x) - sqr(y) + p;
y := 2 * xx * y + q;
until (x * x + y * y > L) or (t = Time);
if t = Time then Image1.Canvas.Pixels[i, j] := clNavy
else Image1.Canvas.Pixels[i, j] := RGB(250 - t div 2,
250 - t div 2, 250);
end;
ProgressBar1.Position := round(i * 100 / Size);
end;
end;
Запустите программу и нажмите кнопку. Вы видите фрактальное множество Мандельброта:
Самое интересное произойдет, когда вы попробуете увеличить какой-нибудь его кусочек.
Для этого задайте границы другими значениями и нажмите кнопку.
При увеличении вы увидите, что картинка не упрощается, а наоборот, оказывается все более сложной, самоповторяющейся. Попробуйте сами проникнуть в глубину фрактала, увидеть его красоту и многогранность.
Увеличивать картинку, задавая каждый раз с клавиатуры четыре числа и нажимая кнопку, не очень удобно. Лучше добиться этого одним нажатием мыши.
Сделаем так, чтобы при нажатии на Image картина увеличивалась в два раза, с центром в точке, на которую мы нажали. Выделите Image и в Инспекторе Объектов дважды щелкните справа от события OnMouseDown. В создавшемся обработчике введите код. Здесь мы считываем из полей ввода данные.
В зависимости от того, какая кнопка мыши была нажата – левая или правая, мы вычисляем новые границы картинки – увеличенные или уменьшенные.
Эти границы записываем в поля ввода.
Затем вызываем метод Click кнопки Button1. Фактически мы имитируем нажатие на кнопку и, следовательно, вызываем обработчик этого нажатия, перерисовывая картинку.
procedure TForm1.Image1MouseDown(Sender: TObject;
Button: TMouseButton;
Shift: TShiftState;
X, Y: Integer);
var p0, q0, p1, q1, x0, y0, x1, y1: double;
begin
p0 := StrToFloat(Edit1.Text);
p1 := StrToFloat(Edit2.Text);
q0 := StrToFloat(Edit3.Text);
q1 := StrToFloat(Edit4.Text);
if Button = mbLeft then
begin
x0 := p0 + (p1 - p0) * X / Image1.Width - (p1 - p0) / 4;
y0 := q0 + (q1 - q0) * Y / Image1.Height - (q1 - q0) / 4;
x1 := p0 + (p1 - p0) * X / Image1.Width + (p1 - p0) / 4;
y1 := q0 + (q1 - q0) * Y / Image1.Height + (q1 - q0) / 4;
Image1.Repaint;
end
else
begin
x0 := p0 + (p1 - p0) * X / Image1.Width - (p1 - p0);
y0 := q0 + (q1 - q0) * Y / Image1.Height - (q1 - q0);
x1 := p0 + (p1 - p0) * X / Image1.Width + (p1 - p0);
y1 := q0 + (q1 - q0) * Y / Image1.Height + (q1 - q0);
end;
Edit1.Text := FloatToStr(x0);
Edit2.Text := FloatToStr(x1);
Edit3.Text := FloatToStr(y0);
Edit4.Text := FloatToStr(y1);
Button1.Click;
end;
В результате теперь нам не нужно задавать размеры с клавиатуры, а можно увеличивать и уменьшать картинку, нажимая левую и правую кнопку мыши.
Запустите программу и попробуйте сами.
Для того чтобы наша программа приобрела еще более привлекательный вид, добавим несколько оформительских штрихов.
Во-первых, установим компоненту Image курсор мыши в виде руки, чтобы пользователю было ясно, что нужно нажимать на картинку.
Во-вторых, при увеличении будем рисовать рамку, обозначая новые границы отображаемой области. Для этого добавим в обработчик нажатия мыши соответствующий код.
В-третьих, предоставим пользователю возможность сохранять полученные картинки. Для этого добавим на форму еще один Edit, еще один Button и настроим их соответствующим образом.
В Edit пользователь должен указать имя файла без расширения, в который будет сохранена картинка в формате bmp. В обработчике нажатия на кнопку вызовем процедуру сохранения картинки.
В-четвертых, заметим, что раскраску фрактала можно производить каким-то другим способом, отличным от того, который предложили мы. Попробуйте на досуге сами поэкспериментировать.
Теперь ваша первая полноценная программа приобрела вполне привлекательный и профессиональный вид. Не забудьте сохранить и продемонстрировать ее вашим родителям, друзьям и знакомым.
Практикум
Этот практикум посвящен созданию однооконной программы, которая будет переводить градусы из шкалы Цельсия в шкалу Фаренгейта и обратно, а также отображать температуру с помощью термометра. Вы должны проявить свои знания в области ввода и вывода данных, произведения расчетов и графического оформления приложения.
Обратите внимание! Это задание очень большое и сложное. Сложность задания от шага к шагу нарастает. Необязательно проходить до конца все упражнения. По окончании урока остановитесь и покажите учителю, до какого упражнения вы дошли.
Поместите на форму два поля ввода Edit и две кнопки.
Левое поле для ввода температуры по Цельсию, правое – для температуры по Фаренгейту. При нажатии кнопки в другом поле ввода должно появиться приведенное к соответствующей шкале значение температуры.
Указания:
- Шкалы связаны соотношением: [°F] = 1,8 [°C] + 32
- Для перевода строк в числа и обратно используйте StrToFloat и FloatToStr.
Введите в левое поле число 50
Нажмите на кнопку «по Цельсию»
Если в правом поле появится 122, то измените значение в левом поле и нажмите «по Фаренгейту», если в этом поле опять появится 50, то вы успешно справились с заданием, можете двигаться дальше; в противном случае доработайте программу.
Ограничьте вводимые температуры диапазоном от 0°C до 100°C (если введено значение, превышающее 100°C или 212°F, то при нажатии кнопки в полях ввода должно отобразиться 100 и 212 соответственно; если значение, превышающее 0°C или 32°F, то 0 и 32).
Запустите программу, введите 150 в левое поле и нажмите кнопку «по Цельсию». В полях должно появиться 100 и 212.Введите 10 в правое поле и нажмите кнопку «по Фаренгейту». В полях должно появиться 0 и 32. Если все правильно – идем дальше.
Чтобы пользователь не путался в кнопках, сделайте так, чтобы кнопка «по Фаренгейту» пропадала, как только пользователь начинает редактировать значение в левом поле. Аналогично при редактировании правого поля должна исчезать кнопка «по Цельсию».
При этом, разумеется, когда прячется ненужная кнопка, другая, нужная, должна быть видна.
Указания:
- Используйте события полей ввода OnEnter, возникающие, когда поле получает фокус ввода для сокрытия и вывода кнопок.
- Видна кнопка или не видна, это определяет свойство Visible.
Если при работе с программой вы видите подобные картинки, то вы справились с задачей и можете идти дальше.
Теперь давайте отобразим столбик термометра графически. Добавьте компонент Image.
В зависимости от значения температуры он будет отображать высоту столбика. При t = 0°C столбик минимален, при t = 100°C он должен рисоваться «во весь рост».
Указания:
Используйте свойства Pen, Brush и метод Rectangle холста Canvas вашей картинки.
Не забывайте перерисовывать фон.
Вот что у вас должно получиться:
Если получилось, то идем дальше.
Сделайте еще, чтобы цвет столбика термометра менялся в зависимости от температуры: при t = 0°C – синий цвет, при t = 100°C – красный.
Указание:
- Для определения цвета по трем компонентам используется функция RGB(R, G, B: byte): TColor, значения R и B зависят от температуры, значение G равно нулю.
Должно получиться нечто похожее:
Если получилось – вперед!
Если вы быстро и успешно добрались до данного задания, то вы, несомненно, опытный программист. Чтобы вам не было скучно, попробуйте справиться с этим последним заданием.
Сделайте так, чтобы термометр имел привлекательный вид: тени, блики и т.п. Подойдите к программе творчески.
Указание:
Неплохо бы предварительно распланировать, где будут располагаться элементы картины и только потом приступать к программированию. Иногда это помогает сэкономить массу времени.
Вот и всё:
^ Список используемой литературы:
- Гутман Г.Н. Учебные мини-проекты на Delphi. – Чистые пруды, 2005 (Библиотечка «Первого сентября», серия «Информатика»).
- Гофман В.Э., Хомоненко А.Д. Delphi: экспресс-курс. - СПб.: БХВ-Петербург, 2005.
- Элективные курсы в профильном обучении: Образовательная область «Информатика»/Министерство образования РФ - Национальный фонд подготовки кадров. – М.: Вита-Пресс, 2004.
^
Список рекомендуемой литературы
Для школьников:
- Гуденко Д.А., Петроченко Д.В. Сборник задач по программированию. – СПб.: Питер, 2001.
- Жуков В.А. Изучаем Delphi. – СПб.: Питер, 2003.
- Попов В.Б. Паскаль и Дельфи. Самоучитель. – СПб.: Питер, 2001.
Для профессионалов:
- Бобровский С.И. Delphi 7. Учебный курс. – СПб.: Питер, 2002.
- Гофман В., Хомоненко А. Delphi. Быстрый старт. – BHV, 2002.
- Лишнер Рэй. Delphi. Справочник. – Символ, 2001.
- Тейксейра С., Паченко К. Delphi 5. Руководство разработчика, в 2-х томах. – М.: Диалектика, 2001.
- Фаронов В.В. Учебный курс Delphi 6. – Нолидж, 2001.
- Фаронов В.В. Программирование баз данных в Delphi 7. Учебный курс. – СПб.: Питер, 2003.