Модуль CRT.

advertisement
ГОУ Педагогическая академия
ИТОГОВАЯ РАБОТА
по курсу
«МЕТОДИКА ПРЕПОДАВАНИЯ АЛГОРИТМИЗАЦИИ
И ПРОГРАММИРОВАНИЯ В КУРСЕ ИНФОРМАТИКИ В СРЕДНЕЙ ШКОЛЕ»
«Модули CRT и GRAPH»
Выполнил:
учитель
информатики
МОУ Алабинской СОШ с
углубленным изучением
отдельных
предметов
Наро-Фоминского района
Московской области
Подгузова Оксана Алексеевна
Руководитель:
В.В. Кащей
Москва, 2011
1
Содержание:
1. Введение………………………………………………………….3
2. Модуль CRT………………………………………………………5
3. Модуль GRAPH………………………………………………….13
4. Конспект урока «Моделирование движения»…………………19
5. Список используемой литературы…………………………… 25
6. Приложение : работа учащегося……………………………….26
2
Введение.
Изучение модулей CRT и GRAPH полезно в самом начале программирования, после изучения основных алгоритмических структур ветвления и циклов.
Не секрет, что в настоящее время математическая подготовка у многих
учащихся достаточно слабая, что отражается на изучении предмета информатика, так как в курсе информатики в основном решаются математические и
расчетные задачи. У учащихся со слабыми знаниями по математике это вызывает определенные трудности, что понижает их интерес к учебе, снижает
мотивацию к обучению информатики и программированию, что непосредственно сказывается на их успеваемости и качестве обученности.
Но детям, как правило, очень нравится рисовать и экспериментировать с
цветом, проявляя свое творчество. Поэтому, чтобы отработать основные алгоритмические конструкции, которые являются базой для дальнейшего изучения материала по программированию, я предлагаю использовать модули
CRT и GRAPH. Уроки по изучению этого материала проходят, как правило, в
более непринужденной обстановке. Учащиеся с удовольствием реализуют
алгоритмы, позволяющие организовать движение объектов на экране со сменой цветов, работают со звуком, создают рисунки. Как правило, у них очень
хорошо получается. Многие учащиеся даже пробуют программировать музыку. Параллельно отрабатываются различные виды циклов, происходит осознание идеи модульности, в основе которой лежит принцип структурного
программирования.
Модуль – это набор ресурсов (функций, процедур, констант, переменных,
типов и тд), разрабатываемых и хранимых независимо от использующих их
программ. Существуют стандартные модули Турбо Паскаля: system, crt,
graph, dos, printer.
3
Модуль system ввиду исключительной важности подключается к любой
программе автоматически, все остальные необходимо подключать, указывая
их за словом user.
Модуль system представляет основную библиотеку стандартных подпрограмм Турбо Паскаля, без которой не может быть выполнена ни одна программа.
В модуль crt входят процедуры и функции, обеспечивающие управление
текстовым режимом работы экрана, а также управление клавиатурой и звуком.
Модуль graph содержит обширный набор типов, констант, процедур и
функций для управления графическим режимом работы экрана. С помощью
подпрограмм, входящих в модуль, можно создавать разнообразные графические изображения.
Модули crt и graph предоставляют начинающим программистам большой
набор несложных в использовании, но мощных средств управления устройствами компьютера: экраном, клавиатурой и динамиками. Использование
модулей позволит превратить программы учеников в полноценные программные продукты, обладающие удобным пользовательским интерфейсом и
красивым оформлением.
4
Модуль CRT.
При работе на персональном компьютере пользователь обычно работает с
операционной системой Windows и ее приложениями, поэтому более привычным кажется графический режим. Однако программы, написанные на
Turbo Pascal, часто используют текстовый режим, особенно если они предназначены для делового применения. Сам по себе этот режим заслуживает
внимания, поскольку использует видеопамять значительно экономнее графического.
В текстовом режиме наименьшей единицей изображения являетсяс не отдельный пиксел, а символ целиком, иногда говорят – знакоместо. Разумеется,
каждый символ состоит из отдельных пикселов, но процесс прорисовки каждого символа берет на себя операционная система.
В видеопамяти изображение в текстовом режиме хранится следующим образом. Под каждое знакоместо экрана отводится по два байта. Первый байт
хранит код символа, который занимает данное знакоместо, а второй – так
называемый цветовой атрибут символа. Байт цветового атрибута включает
цвет символа (четыре младших бита), цвет фона (3 старших бита), а также
специальный бит мерцания, установка которого в единицу позволяет получить мерцающее изображение. Оно используется, в основном, только для
выдачи сообщений, которые должны привлечь внимание пользователей программы.
В текстовом режиме возможны 16 различных цветов для символов. Они
обозначаются числами от 1 до 15 или константами, определенными в модуле
CRT. При этом последние восемь цветов отличаются от первых только повышенной яркостью.
Можно установить только 8 различных цветов фона, так как под цвет фона
отведено 3 бита.
5
Текстовый режим характеризуется двумя важными параметрами: максимальным числом символов в строке и количеством строк на экране. Стандартные значения этих параметров – 25 строк по 80 символов в каждой строке. Однако можно установить и ряд других значений этих параметров с помощью стандартной процедуры:
Textmode (m);
где m – константа целого типа word.
По умолчанию устанавливается режим m=3.
Положение каждого знакоместа текстового экрана можно определить двумя координатами, при этом считается, что левый верхний угол экрана имеет
координаты (1, 1). Координата x обозначает позицию символа в строке, а координата y – номер строки, отсчитываемый по направлению от верха экрана
к его низу.
Goto (x,y) – установка курсора на экране в позицию с координатами (x,y).
Clrscr – процедура очистки экрана.
Пример 1. Написать программу, которая очищает экран и выставляет в
центр экрана символ «*».
Program Pr1;
Uses crt;
begin
Clrscr;
Goto (40,13);
Write (‘*’);
End.
6
Текстовое окно – прямоугольное пространство на экране, в котором производится вывод символов. Положение окна определяется координатами
верхнего левого угла и нижнего правого угла прямоугольника.
Если окно занимает весь экран, то в режиме CO80 его координаты (1,1) –
(80,25). Изменить положение и размер текстового окна можно с помощью
процедуры:
Window (x1,y1,x2,y2);
После определения окна попытки вывода символов за его пределы оказываются безрезультатными. Повторное обращение к процедуре Window с новыми параметрами отменяет предыдущее назначение.
Управление цветом:
Textbackground ( c ); - процедура назначения цвета фона.
Textcolor ( c ); - процедура назначения цвета символа.
Если цвет фона назначается до очистки текстового окна, то после очистки
окно заливается этим цветом. Если фон устанавливается после очистки экрана, то чистое окно будет иметь черный цвет ( по умолчанию), а назначенный
цвет фона будет устанавливаться в тех позициях, в которых выводятся символы.
Константы цветов:
Цвет
Значение константы
Черный
0
Синий
1
Зеленый
2
Бирюзовый
3
Красный
4
Малиновый
5
7
Коричневый
6
Светло-серый
7
Темно-серый
8
Светло-голубой
9
Светло-зеленый
10
Светло-бирюзовый
11
Светло-красный
12
Светло-малиновый
13
Желтый
14
Белый
15
Задержка при выполнении программы:
Иногда работу компьютера приходится искусственно замедлять. Для этих
целей используется процедура, которая реализует задержку в выполнении
программы:
Delay (t);
где t - время задержки в миллисекундах.
Эта процедура особенно часто используется при выводе различных изменяющихся изображений на экране.
Также можно организовать задержку окна результатов на экране функциями:
Keypressed – опрашивает клавиатуру и проверяет, не нажата ли какаянибудь клавиша. Выдает логическое значение true, если нажата любая клавиша, и значение false в противном случае.
Например, следующий пустой цикл может быть использован для реализации в программе паузы до нажатия любой клавиши:
8
Repeat
Until Keypressed;
Readkey - возвращает значение типа char, считывает код символа из буфера клавиатуры и удаляет его из буфера. Если буфер был пуст, то возникает
пауза до нажатия любой клавиши.
Управление звуком:
Для создания звуковых эффектов в Турбо Паскале используются стандартные процедуры:
Sound (i: word); - активизирует звуковые средства компьютера. Целочисленное значение i указывает частоту звучания звука в Гц. Звук указанной частоты будет генерироваться до тех пор, пока не будет отменен процедурой
Nosound.
Для указания времени, в течение которого будет продолжаться звучание,
используется процедура Delay .
Пример 2. Вывести на экран элемент заставки «Экспертная система» в сопровождении звукового сигнала.
Program Pr2;
Uses crt;
Var i: word;
begin
Clrscr;
Goto (18,13);
Writeln (‘Экспертная система’);
For i:=1 to 20 do
9
Begin
Soud (5000);
Delay (70);
Nosound;
End;
End.
Набор частот, соответствующий нотам первой октавы:
Нота
Первая октава
До
523
Ре
587
Ми
659
Фа
698
Соль
785
Ля
880
Си
898
Задания для работы с модулем crt.
1. Написать программу, в которой по очереди открываются четыре
окна, и каждое из них будет залито своим фоновым цветом.
2. На белом фоне в середине экрана вывести номера первых пятнадцати цветов. Каждый номер должен быть того цвета, который он обозначает.
3. Написать программу, которая выводит на экран фразу «Каждый
охотник желает знать, где сидят фазаны», позволяющую запомнить
10
порядок следования цветов радуги. Каждое слово фразы должно быть
выведено своим цветом.
4. Заполнить экран 500 случайными числами в диапазоне от 0 до 9
стандартным белым цветом на красном фоне ярко-зелеными буквами.
5. Покажите восемь возможных фонов экрана с задержкой в три секунды. В левый верхний угол экрана выведите номер текущего цвета.
6. Выведите на экран 15 случайных чисел 15-ю разными цветами на
черный экран.
7. Выведите 200 символов «*» случайного цвета в точки экрана со
случайными координатами на черном фоне.
8. Постройте окно красного цвета и выведите в него «База данных
Алабинской
СОШ» черным цветом. Сделав паузу в 3 с, очистите
экран черным цветом.
9. Постройте семейство разноцветных прямоугольников, расположенных по горизонтали, в каждом из которых стоит знак «?».
10.
Нарисовать на экране несколько вложенных друг в друга
разноцветных прямоугольников.
11.
Выведите на предварительно очищенный экран строку
«Яркий и тусклый» таким образом, чтобы первое слово было ярким,
«и» - менее ярким, а последнее слово - тусклым, пользуясь процедурами Highvideo, Lowvideo, Normvideo.
12.
Постройте 2 окна по верхним углам экрана и выведите в
каждом сообщении «Окно 1» и «Окно 2». Сделайте паузу 3 секунды и
очистите экран (обратите внимание, что для перехода от окна к полному экрану надо обязательно выполнить оператор window (1,1,80,25).
Эта программа – подход к выводу данных в различные места экрана и
11
первый шаг к созданию заставок, содержащих название и назначение
программы)
13.
Напишите программу, которая вводит в цикле целые числа,
и если число превышает 100, подает звуковой сигнал
14.
Напишите программу, которая генерирует 100 целых слу-
чайных чисел в диапазоне 1..300, если случайное число попало в диапазон 60..100, подайте звуковой сигнал и выведите это число на экран.
15.
Исследуйте датчик случайных чисел системы Турбо Пас-
каль. Для этого сгенерируйте 5000 случайных чисел и подсчитайте
число четных и нечетных. Если число четных чисел превысит 2500,
подайте 1 звуковой сигнал, если количество нечетных чисел превысит
2500 – подайте 3 звуковых сигнала.
16.
На основе функции random постройте программу исполни-
теля «случайной» электронной музыки. Продолжительность сигнала
также случайна и может длиться от 0 до 500 мс.
17.
Напишите программу, которая 3 раза проигрывает гамму
от си до до.
18.
Нарисовать на экране прямоугольник и заставить его дви-
гаться, сопровождая движение звуком:
a) По горизонтали;
b) По вертикали;
c) По диагонали;
19.
Нарисовать бегущую строку с текстом внизу экрана.
20.
Создать движущееся по экрану изображение змейки из
разноцветных квадратиков.
21.
Постройте «взрывающееся» окно.
22.
Постройте «сходящееся» окно.
12
Модуль Graph
В настоящее время графический режим является основным режимом работы видеоадаптера современного компьютера. Этот режим гораздо более требователен к видеопамяти, чем текстовый режим, но и преимущества его очевидны. Видео память в графике используется так – для каждого пиксела хранится его цвет. Таким образом, в этом режиме программист имеет уникальную возможность управлять каждым пикселом, что позволяет строить на
экране любые изображения. Графическая библиотека Турбо Паскаля проста и
удобна в использовании, что делает разработку графических программ увлекательным занятием для учеников.
Загрузка графического драйвера и инициализация графики осуществляется
с помощью процедуры
Initgraph (драйвер, режим, путьКдрайверу);
Драйвер – переменная целого типа, определяющая тип графического драйвера.
Режим – переменная целого типа, устанавливающая режим работы адаптера.
ПутьКдрайверу – выражение строкового типа, содержащее путь к файлу
драйвера.
Возможно автоматическое определение типа драйвера и установка режима.
Например:
Program PR;
Uses graph;
Var driver, mode: integer;
Begin
13
Driver:= detect; {автоматическое определение драйвера и режима}
Initgraph (driver, mode, ‘C:\...’);
…
Closegraph; {перед выходом из программы графический режим нужно закрыть}
End.
В графическом режиме вместо видимого курсора есть невидимый текущий
указатель CP.
Процедура moveto (x,y) перемещает текущий указатель в точку (х,у)
Процедура moverel (dx,dy) перемещает текущий указатель на dx точек по
горизонтали и dy точек по вертикали.
Контроль местоположения текущего указателя осуществляется с помощью функции:
GetX, GetY – возвращают соответственно значения X и Y координаты CP.
GetmaxX, GetmaxY – возвращают максимально возможные для установленного режима значения X и Y координат.
В графических режимах довольно часто приходится определять координаты центра экрана по горизонтали и вертикали:
Xc := getmaxX div2;
Yc:= getmaxY div2;
Putpixel (xc, yc, lightgreen);
Такой способ избавляет нас от настройки на конкретный тип монитора и
расширяет область применения программы.
14
Процедура, устанавливающая положение графического окна на экране:
Setviewport (x1,y1, x2,y2, cl);
X1, y1 – координаты левого верхнего угла
Х2, у2 – координаты правого нижнего угла
CL – переменная логического типа, ограничитель фигур. Если принимает
значение true, то все построения вводятся только в пределах окна. Текущий
указатель устанавливается в левую верхнюю точку окна с координатами
(0,0).
Clearviewport – очистка окна
Setbkcolor (c) - цвет фона
Setcolor (c) - цвет линий
Cleardevice – очистка экрана
Putpixel (x,y,c) – процедура «поставить точку»
Графические примитивы:
Line (x1,y1,x2,y2) – линия с заданными координатами
Lineto (x,y) – линия от текущей точки до точки с координатами (х,у)
Linerel (dx,dy) – линия от текущей точки до точки с заданными приращениями координат
Circle (x,y,r) – окружность с центром в точке (х,у) и радиусом r
Arc (x,y,bega, enda, r) – дуга окружности
Ellipse (x,y,bega, enda, rx, ry) – эллипсоидная дуга.
Закраски и заполнения:
15
Setfillstyle (fc) – процедура определения типа заполнения и цвета заполнения
Bar (x1,y1, x2,y2) – заполненная прямоугольная область с заданными координатами.
Fillellipse (x, y, rx, ry) – обведенный линией и закрашенный эллипс
Sector (x, y, bega, enda, rx, ry) – обведенный линией и закрашенный эллипсоидный сектор
Можно закрасить любую область, ограниченную замкнутой линией. Для
этого нужно указать какую-нибудь точку внутри этой области и цвет граничной линии в процедуре Floodfill (x,y,b).
Модуль graph позволяет управлять стилями линий с помощью процедуры
Setlinestyle (l,p,t). Коды типов и толщины линий смотри в соответствующих
таблицах.
Модуль graph позволяет выводить на графический экран тексты.
Outtext (t) – выводит строку текста начиная с текущего положения указателя
Outtextxy (x,y,t) – выводится в графическое окно символьная строка t, начиная с указанной позиции
Settextstyle (f,d,ch) – установка шрифта.
Иногда требуется периодически переходить из текстового режима в графический и наоборот.
Setgraphmode (m) – процедура переводит систему в графический режим и
очищает экран
Restorecrtmode - процедура восстанавливает видеорежим, который был до
инициализации графики.
16
Задания для работы с модулем graph.
1. Составить программу «звездное небо»: в черном окне случайным
образом появляются белые точки. Работа программы заканчивается по
нажатию клавиши.
2. Составить программу, рисующую голову робота по заданному
эскизу.
3. Нарисовать различные геометрические фигуры различными типами линий и закрасить их разными цветами.
4. Построить семейство одинаковых кругов, центры которых расположены на синусоиде.
5. Построить семейство одинаковых окружностей, центры которых
лежат на окружности большего диаметра.
6. Построить семейство разноцветных случайным образом расположенных квадратиков и секторов окружностей.
7. Составить программу рисования на экране шахматного поля.
8. Построить по периметру экрана семейство разноцветных квадратиков, а в середине – множество разноцветных точек.
9. Построить семейство разноцветных окружностей, радиусы которых увеличиваются.
10.
Построить движущееся изображение НЛО на фоне звезд-
ного неба.
11.
Вывести 2 строки: вертикальную и горизонтальную – раз-
ной величины.
12.
Построить движущееся изображение двух прямоугольни-
ков и круга, на которых помещены слова из фразы «Кто сказал мяу?»
13.
Составить программу, демонстрирующую различные виды
шрифтов и размер вводимых символов на слове «Шрифт», чтобы каждая буква, вводимая с клавиатуры, была нарисована различным шрифтом и размером.
17
14.
Составить программу построения графика функции на экране
дисплея y=sin(X).
15.
Составить программу табулирования функции y= x/cos (x) на от-
резке [0, 2π] и построить график функции на этом отрезке, учитывая область
определения функции. (Задания 14 и 15 вызывают сложности у учащихся,
поэтому их надо научить связывать компьютерную систему координат с системой координат, в которой будет строиться график функции)
18
КОНСПЕКТ УРОКА ПО ИНФОРМАТИКЕ
«Процедуры и функции модуля GRAPH. Моделирование движения»
Тип урока: Урок-обобщение изученного материала, урок-зачет.
Цели урока:

Обобщить и систематизировать знания учащихся основного
назначения модулей GRAPH, CRT языка программирования Turbo
Pascal, их процедур и функций;

Закрепить умение учащихся использовать циклический алгоритм
для моделирования движущихся объектов;

Проконтролировать знания и умения учащихся работать с моду-
лем GRAPH;

Повысить мотивацию учащихся в изучении предмета «информа-
тика» за счет их творчества;

Добиться сознательного усвоения материала.
Оборудование: сеть IBM, цветной лазерный принтер.
Подготовительная работа:
1. На уроках по изучению возможностей модуля CRT учащиеся моделировали движение прямоугольника по вертикали, горизонтали и
диагонали экрана.
2. На уроке по изучению прикладных сред Windows и знакомстве с
растровой графикой учащиеся создали в графическом редакторе Paint
эскиз будущего рисунка.
19
3. На уроке по теме «Вставка графических объектов в текстовый документ» в текстовом процессоре Word создали титульную страницу
своей будущей зачетной работы.
4. На уроках по программированию учащиеся познакомились с
функциями и процедурами модуля GRAPH, создали программу, результатом работы которой является рисунок по эскизу, научились выводить на печать листинг и результат работы своей программы.
5. На дом было задано следующее задание:
- продумать, какой объект рисунка выбрать в качестве движущегося;
- повторить, как моделировалось движение в теме «Модуль CRT».
Ход урока.
1. Оргмомент. Объявление темы урока и его целей.
2. Повторение. Фронтальный опрос.
Вопросы:
- с какими стандартными библиотечными модулями системы Турбо Паскаль мы с вами уже знакомы? (в систему Турбо Паскаль включены 8 модулей. Мы знакомы с модулями System, CRT, GRAPH)
- каково назначение каждого модуля? (модуль System подключается к программе автоматически, и его имя не указывается в разделе uses. Он содержит подпрограммы, обеспечивающие работу всех остальных модулей системы. Модуль CRT содержит средства управления дисплеем и клавиатурой
компьютера, а модуль GRAPH – пакет графических средств)
- в каких режимах может работать дисплей компьютера? (дисплей компьютера может работать в текстовом или графическом режимах, в зависимости
от установленного адаптера)
20
- чем отличаются возможности этих видеорежимов? (текстовые режимы
служат для отображения символов кодовой таблицы компьютера и характеризуются количеством символов в строке и строк на экране. Минимальной
единицей управления является символ. Он строится из нескольких точек –
пикселей, преобразование которых в символ происходит на аппаратном
уровне. В графическом режиме минимальной единицей управления является
пиксель. Появляется возможность управлять цветом любого пикселя. Экран в
графическом режиме представляет собой матрицу пикселей, количество которых зависит от режима работы видеоадаптера)
- как включить графический режим? (для запуска графической системы
необходимо сделать следующее:

Подключить модуль: uses Graph;

Установить графический режим с помощью двух переменных:
Var
Driver; Mode: integer;
Begin
Driver:=detect;
InitGraph (Driver, Mode, ‘c:\bp\bgi’);
С этого момента все графические средства доступны пользователю. Когда
все запланированные графические работы выполнены, необходимо выйти из
графического режима процедурой CloseGraph).
- какие возможности предоставляет нам модуль Graph? (мы имеем возможность рисовать графическими примитивами: линиями, прямоугольниками, окружностями, дугами, а так же по пикселям. Раскрашивать изображение в различные цвета, различными стилями заполнения. Выводить текст
различными текстами и шрифтами)
21
3. Моделирование движения.
На предыдущих уроках каждый из учеников создал программу «Статика»,
рисующую изображение по своему эскизу. Мы сравниваем, насколько программный вариант совпадает с рисунком в графическом редакторе. Цель
нашего сегодняшнего урока – немного «оживить» ваш рисунок, те заставить
«двигаться» любой, выбранный учеником, объект рисунка.
Учащимся предлагается вспомнить алгоритм движения прямоугольника
по горизонтали:
Решение:
Опишем математически движение прямоугольника по горизонтали.
X1
X2
X3
X4
X n-1 Xn
У1
У2
Координаты у1 и у2 при движении не изменяются. Наблюдается приращение только по оси х, при этом выполняются условия:
Х1 < X2 < … < Xn и X2 – X1 = X4 – X3 = … = Xn – Xn-1.
Само движение может быть описано так:
в цикле:
- прорезаем окно контрастного цвета;
- держим его на экране с помощью delay (500);
- закрашиваем окно цветом фона;
- вводим вторую задержку;
22
- прорезаем следующее окно со смещением вправо, например, Х = Х + 2.
Количество итераций цикла высчитываем в зависимости от размеров окна.
Например:
Program zadacha;
Uses CRT;
Var x,y,i: integer;
Begin
Textbackground (2);
Clrscr;
X:=5;
Y:=10;
Delay(500);
For i:=1 to 30 do
Begin
X:= x+2;
Textbackground (9);
Window(x,y,x+18,y+7);
Clrscr;
Delay (500);
Textbackground (2);
Clrscr;
Delay (500);
End;
Readln;
Clrscr;
End.
23
Если прямоугольник движется по вертикали, то наблюдается приращение
только по оси у, при движении по диагонали меняются координаты как х, так
и у.
Учащимся предлагается подумать, что надо учесть для того, чтобы заставить двигаться графический объект на созданном ими рисунке? ( в модуле
Graph другая система координат. Мы не сможем полностью очищать экран,
так как на нем нарисованы другие графические объекты, поэтому нам надо
«привязать» наш объект к какой-либо одной координате и при приращении
этой координаты закрашивать цветом фона только этот объект и его части)
Ученики садятся за компьютеры и изменяют созданную ранее программу
так, чтобы организовать движение выбранного ими объекта. Учитель наблюдает за работой учеников и оценивает ее по результатам выполнения программы. Листинги отлаженных программ распечатываются и подшиваются к
зачетной работе. По окончании урока зачетная работа сдается педагогу.
4.Подведение итогов.
Выставляются оценки тем ученикам, которые успели отладить программу
и сдать свои работы. Неуспевающие ученики дорабатывают свои программы
дома, и их работы проверяются на следующем уроке.
В зачетную работу входит:
- титульный лист, оформленный в текстовом процессоре Word;
- процедуры и функции модуля Graph;
- лист с расчетом координат будущего рисунка;
- листинг программы «Статика»;
- алгоритм моделирования движущегося объекта;
- листинг программы «Движение»;
- результаты работы программы.
24
Используемая литература:
1. В. Б. Попов. TURBO PASCAL для школьников. М. «Финансы и статистика»
2005
2. Г.Г. Рапаков, С.Ю. Ржеуцкая. Turbo Pascal для студентов и школьников. –
СПб.: БХВ-Петербург, 2007.
25
Титульный лист зачетной работы ученика. Рисунок создан в графическом редакторе Paint.
26
Процедуры и функции модуля GRAPH , которыми пользовался ученик.
27
Расчет координат для создания программы «Статика»
28
Листинг программ ученика :
program ctatika;
uses Crt,
GRAPH;
var
driver,mode:integer;
x,y,i:integer;
begin
driver:=detect;
InitGraph(driver,mode,'c:\BP\BGI');
randomize;
for i:=1 to 150 do
begin
x:=random(640);
y:=random(480);
setcolor(14);
circle(x,y,1);
end;
setcolor(black);
setfillstyle(9,red);
fillellipse(640,480,110,130); {•Планета}
setfillstyle(1,red);
fillellipse(610,400,9,25); {Кратер}
fillellipse(570,410,5,9); {Кратер}
fillellipse(570,450,12,12);{ Кратер }
fillellipse(600,460,3,13); { Кратер }
fillellipse(620,460,10,5); { Кратер }
setfillstyle(1,10);
pieslice(540,380,321,360,25);{•Нога}
pieslice(525,395,295,335,30);{•Нога}
fillellipse(520,370,20,23); {Туловище
pieslice(525,348,100,40,15); {•Рука}
pieslice(507,387,270,220,17);{•Рука}
fillellipse(490,350,14,16); {Голова}
pieslice(489,360,250,200,17);{•Нос}
setfillstyle(1,black);
fillellipse(489,342,2,2); {Глаз
fillellipse(483,352,2,2); {Глаз
setcolor(10);
line(473,320,483,335);
{Антена}
setfillstyle(1,10);
fillellipse(473,320,2,2); { Антена }
line(457,343,475,345);
{ Антена }
fillellipse(457,343,2,2); { Антена }
setcolor(black);
setfillstyle(1,red);
x:=152;
pieslice(x,200,143,222,45);{•Ракета}
29
setfillstyle(1,white);
Bar(x-120,175,x-35,228); {• Ракета }
setfillstyle(1,lightblue);
fillellipse(x-55,200,9,15); { Ракета }
fillellipse(x-100,200,9,15); { Ракета
setcolor(white);
setfillstyle(1,white);
pieslice(x-125,155,288,320,35);{ Ракета
pieslice(x-125,248,437,40,35); { Ракета }
readkey;
CloseGraph;
end.
program dvigenie;
uses Crt,
GRAPH;
var
driver,mode:integer;
x,y,i:integer;
begin
driver:=detect;
InitGraph(driver,mode,'c:\BP\BGI');
randomize;
for i:=1 to 150 do
begin
x:=random(640);
y:=random(480);
setcolor(14);
circle(x,y,1);
end;
setcolor(black);
setfillstyle(9,red);
fillellipse(640,480,110,130); {•Планета}
setfillstyle(1,red);
fillellipse(610,400,9,25); {Кратер}
fillellipse(570,410,5,9); { Кратер }
fillellipse(570,450,12,12);{ Кратер }
fillellipse(600,460,3,13); { Кратер }
fillellipse(620,460,10,5); { Кратер }
setfillstyle(1,10);
pieslice(540,380,321,360,25);{•Нога}
pieslice(525,395,295,335,30);{•Нога}
fillellipse(520,370,20,23); {Туловище}
pieslice(525,348,100,40,15); {Рука}
pieslice(507,387,270,220,17);{•Рука}
fillellipse(490,350,14,16); {Голова}
30
pieslice(489,360,250,200,17);{•Нос}
setfillstyle(1,black);
fillellipse(489,342,2,2); {Глаз
fillellipse(483,352,2,2); {Глаз
setcolor(10);
line(473,320,483,335);
{Антена}
setfillstyle(1,10);
fillellipse(473,320,2,2);
line(457,343,475,345);
fillellipse(457,343,2,2);
x:=150;
for i:=1 to 350 do
begin
x:=x+2;
setcolor(black);
setfillstyle(1,red);
pieslice(x,200,143,222,45);{•Ракета}
setfillstyle(1,white);
Bar(x-120,175,x-35,228);
setfillstyle(1,lightblue);
fillellipse(x-55,200,9,15);
fillellipse(x-100,200,9,15);
setcolor(white);
setfillstyle(1,white);
pieslice(x-125,155,288,320,35);
pieslice(x-125,248,437,40,35);
delay(500);
setcolor(black);
setfillstyle(1,black);
pieslice(x,200,143,222,45);
setfillstyle(1,black);
Bar(x-120,175,x-35,228);
setfillstyle(1,black);
fillellipse(x-55,200,9,15);
fillellipse(x-100,200,9,15);
setcolor(black);
setfillstyle(1,black);
pieslice(x-125,155,288,320,35);
pieslice(x-125,248,437,40,35);
end;
readkey;
CloseGraph;
end.
31
32
Download