подпись, инициалы, фамилия
Задание принял к исполнению _________
дата и подпись студента _________________________
Введение
--------------------------------------------------------------------------------3
1 Постановка задачи------------------------------------------------------------------4
2 Моделирование--------------------------------------------------------5
3 Построение алгоритма-----------------------------------------------6
Программирование------------------------------------------------------------------7
Отладка и тестирование программы---------------------------------------------8
Анализ результатов--------------------------------------------------------------------9
Уточнение модели---------------------------------------------------------------------10
Программа на языке Pascal с комментариями--------------------------------11
4 Руководство пользователя для работы в программе-----------------------16
Заключение----------------------------------------------------------------------------17
Список использованной литературы---------------------------------------------18
Содержание
Постановка задач:
1 Моя проблема: мне нужно уметь создавать анимацию в программе Паскаль.
2 Моя цель: знать анимационные возможности в программе Паскаль.
Что такое Паскаль?
|
|
Паскаль (англ. Pascal) — один из наиболее известных языков программирования[4], используется для обучения программированию в старших классах и на первых курсах вузов, является базой для ряда других языков.
Глоссарий:
Модули - это отдельные файлы, содержащие дополнительные процедуры.
Компью́терная гра́фика (также маши́нная графика) — область деятельности, в которой компьютеры используются в качестве инструмента, как для синтеза (создания) изображений, так и для обработки визуальной информации, полученной из реального мира.
Компью́терная анима́ция — вид мультипликации, создаваемый при помощи компьютера. В отличие от более общего понятия «графика CGI», относящегося как к неподвижным, так и к движущимся изображениям, компьютерная анимация подразумевает только движущиеся.
Процедура — это независимая именованная часть программы, которую после однократного описания можно многократно вызвать по имени из последующих частей программы для выполнения определенных действий.
Функция - это подпрограмма специального вида, которая, кроме получения параметров, выполнения действий и передачи результатов работы через параметры имеет ещё одну особенность— она всегда должна возвращать результат. Вызов функции является, с точки зрения языка программирования, выражением, он может использоваться в других выражениях или в качестве правой части присваивания.
Массив - набор однотипных элементов, расположенных в памяти непосредственно друг за другом, доступ к которым осуществляется по индексам[10], либо по ключу (ассоциативный массив).
Описание данных:
|
|
Чтобы подключить модуль CRT к программе нужно использовать служебное слово USES.Далее мы сможем использовать некоторые нужные нам процедуры из этого модуля.
1 Процедура ClrScr от английского Clear Screen- очищает экран.
2 Процедура GotoXY(X, Y: Byte;) -осуществляет переход на указанную переменными X и Y позицию экрана. При этом номер строки - это Y, а номер позиции в строке (короче, номер символа) - это X.
3 Процедура Delay от английского Задержка- выполняет задержку программы на указанное количество миллисекунд.Чтобы замедлить выполнение программы используют эту процедуру.
4 Функция ReadKey: Char-возвращает от своей работы последнюю нажатую клавишу.
5 Функция KeyPressed: Boolean-возвращает TRUE если была нажата клавиша.Это опрос клавиатуры.То есть При опросе нет ожидания и если клавиша сразу не была нажата, то программа продолжает свою работу.
6 Раздел Const - В нем описываются константы, используемые в программе. Далее все понятно на наглядном примере. Так можно описывать и строку и символ и даже массив:
const
S='Here is string.'; { Константа - строка }
A: Array[1..5] of Char = ('a','b','c','d','e'); { Массив }.
Альтернативные версии моей программы.Я находила множество различных аналогов моей программы.Но все таки выбрала только одну альтернативную версию:
Версия №1-
uses crt,graph;
type mas= array [1..500] of Pointtype;
var gd,gm,i,j,k,n: integer;
a:mas;
Begin
randomize;
gd:=0;
initgraph(gd,gm,'');
{рисуем массив снежинок, можно и пикселями}
for i:=1 to 500 do
Begin
a[i].x:=random(getmaxX);
a[i].y:=random(getmaxY);
circle(a[i].x,a[i].y,1);
end;
k:=0;n:=0;
Repeat
k:=k+1;
delay(200); {задержка}
setcolor(0); {рисуем его цветом фона-стираем}
for i:=1 to 500 do
circle(a[i].x,a[i].y,1);
{сдвигаем все точки по оси Х-наклон и оси У-вниз}
for i:=1 to 500 do
Begin
if a[i].y>getmaxY-n-10 then a[i].y:=1
else a[i].y:=a[i].y+3;
if a[i].x<0 then a[i].x:=getmaxX
else a[i].x:=a[i].x-1;
end;
setcolor(15); {снова рисуем белым цветом} for i:=1 to 500 do circle(a[i].x,a[i].y,1); {внизу рисуем выпавший снег линиями} if k mod 20=0 then begin n:=n+1; line(0,getmaxY-n,getmaxX,getmaxY-n); end; until keypressed; {повторяем до нажатия любой клавиши} readln end.В этой версий автор использовал не только модуль Crt но и модуль Graph.К тому же автор использовал процедуру Initgraph.Что бы менять линии цветов использовалась Setcolor,а для того чтобы рисовать линии кругами написал и графическую процедуру Circle;