kr[4].x:=175; kr[4].y:=163;
kr[5].x:=170; kr[5].y:=153;
kr[6].x:=155; kr[6].y:=158;
kr[7].x:=140; kr[7].y:=153;
fillpoly(7,kr);
{тазик}
setfillstyle(solidfill,blue);
kr[1].x:=243; kr[1].y:=225;
kr[2].x:=255; kr[2].y:=280;
kr[3].x:=325; kr[3].y:=280;
kr[4].x:=335; kr[4].y:=225;
kr[5].x:=255; kr[5].y:=225;
fillpoly(5,kr);
sector(290,230,0,360,50,12);
setfillstyle(solidfill,lightcyan);
fillellipse(290,230,40,10);
{руки}
setfillstyle(solidfill,brown);
kr[1].x:=184; kr[1].y:=164;
kr[2].x:=295; kr[2].y:=225;
kr[3].x:=300; kr[3].y:=215;
kr[4].x:=175; kr[4].y:=150;
kr[5].x:=180; kr[5].y:=160;
pieslice(295,224,0,170,12);
pieslice(265,244,0,360,10);
kr[1].x:=136; kr[1].y:=184;
kr[2].x:=265; kr[2].y:=255;
kr[3].x:=270; kr[3].y:=245;
kr[4].x:=135; kr[4].y:=170;
kr[5].x:=136; kr[5].y:=184;
end else halt(1);
readln; end.
Prim58 демонстрирует возможности мультипликации: по фоновому рисунку – дом, луна, висящий "базовый" НЛО; мечется с переменной скоростью малый НЛО и издает звуки случайными частотами.
Program Prim58;
Uses CRT,Graph;
Label loop;
Const r=30; p=600; pr=1000; {константы, определяющие скорость}
{рисования и перемещения объектов}
Var d,m,e,xm,ym,x,y,lx,ly,rx,ry,size,i,dx,dy,
width,height,grDriver,grMode,errCode,a,b,c,
f,s,j:integer;
saucer:pointer;
Begin grDriver:=Detect;
InitGraph(grDriver,grMode,'');
errCode:=GraphResult;
if errCode=grOK then
Begin x:=r*3; y:=r*2; xm:=GetMaxX div 2; ym:=GetMaxY div 2;
{тарелка}
SetBkColor(blue);
SetFillStyle(solidfill,red);
Ellipse(x,y,0,360,r+40,r div 10);
Ellipse(x,y-4,0,360,r-1,r);
Line(x+7,y-6,x+10,y-12);
Line(x-7,y-6,x-10,y-12);
Circle(x+10,y-12,2);
Circle(x-10,y-12,2);
Floodfill(x+1,y+4,White);
{определяем габариты НЛО и помещаем данные о нем в кучу}
lx:=x-r-1;
ly:=y-14;
rx:=x+r+1;
ry:=y+r div 6;
Width:=rx-lx+1;
Height:=ry-ly+1;
Size:=Imagesize(lx-9,ly,rx+3,ry+10);
GetMem(Saucer,size);
GetiMage(lx-9,ly,rx+10,ry+3,saucer^);
{создаем звездное небо}
Rectangle(xm,ym,3*xm,3*ym);
SetViewPort(xm+1,ym+1,3*xm-1,3*ym-1,Clipon);
xm:=2*xm;
ym:=2*ym;
for i:=1 to 200 do
PutPixel(random(xm),random(ym),white);
{дом}
SetFillStyle(solidfill,DarkGray);
bar(320,240,640,480); Delay(p*10); {дом}
bar(370,220,600,240); Delay(p*10); {чердак}
Line(320,240,640,240); Delay(p*10); {крыша}
Line(370,240,370,220); Delay(p*10); {левая стена чердака}
Line(600,220,600,240); Delay(p*10); {правая стена чердака}
Line(370,220,600,220); Delay(p*10); {крыша чердака}
Line(430,220,430,180); Delay(p*10); {мачта антенны}
Line(430,180,410,170); Delay(p*10); {верхний ус антенны}
Line(430,180,410,190); Delay(p*10); {нижний ус антенны}
Line(430,180,410,180); Delay(p*10); {средний ус антенны}
bar(0,460,640,480); Delay(p*10); {земля}
Line(0,460,640,460); Delay(p*10);
SetFillStyle(solidfill,Yellow);
b:=270; {окна}
for i:=1 to 4 do
begin a:=350; f:=b+20; c:=a+15; Delay(p*5);
for j:=1 to 8 do
begin
bar(a,b,c,f); Delay(p*5);
SetColor(DarkGray);
Line(a,b+8,c,f-12); Delay(p*5);
Line(a+5,b+8,a+5,b+20); Delay(p*5);
a:=a+35; c:=c+35; end;
b:=b+50; end; Delay(p*10);
Pieslice(500,80,300,100,20); {месяц}
SetColor(green); Delay(p*10);
Line(150,460,150,400); Delay(p*10); {дерево}
Circle(170,365,25); Delay(p*10);
Circle(165,375,25); Delay(p*10);
Circle(150,375,25); Delay(p*10);
Circle(135,365,25); Delay(p*10);
Circle(155,345,25); Delay(p*10);
{задаем начальное положение нло и направление движения}
x:=xm div 2;
y:=ym div 2;
dx:=100;
dy:=100;
{основной цикл}
Repeat
PutImage(x,y,Saucer^,XorPut);
Sound(Random(2*2000));
Delay(pr*2); NoSound;
Putimage(x,y,Saucer^,XorPut);
{получаем новые координаты}
loop:x:=x+dx;
y:=y+dy;
if (x<0) or (x+width+1>xm) or (y<0) or (y+height+1>ym) then
{НЛО достиг границы экрана, меняем направление его движения}
x:=x-dx; y:=y-dy;
dx:=GetMaxX div 10 - random(GetMaxX div 5);
dy:=GetMaxY div 30 - random(GetMaxY div 15);
goto loop;
end until KeyPressed;
if ReadKey=#0 then x:=ord(ReadKey);
end else CloseGraph;
end.
Список использованной и рекомендуемой литературы:
1. А.Н. Воловачев, В.С. Крисевич. Программирование на языке Паскаль для персональных ЭВМ ЕС. – Минск: "Высшая школа", 1989.
2. В.Я. Сердюченко. Розробка алгоритмів та програмування мовою TURBO PASCAL. – Харьков: "Паритет", 1995.
3. В.В. Фаронов. TURBO PASCAL 7.0 /Практика программирования/ – "Нолидж", 1997.
4. В.В. Фаронов. TURBO PASCAL 7.0 /Начальный курс/ – "Нолидж", 1997.
ОГЛАВЛЕНИЕ
1. Предварительные сведения...................................................... 4
1.1. Алфавит................................................................................................. 4
1.2. Решение задач.................................................................................... 4
2. Простейшие программы............................................................. 5
2.1. Оператор присваивания................................................................ 5
2.2. комментарии...................................................................................... 7
2.3. Программа............................................................................................ 7
2.4. Простейший ввод-вывод............................................................... 8
2.5. Арифметические выражения....................................................... 9
2.6. Описания переменных.................................................................. 12
2.7. Раздел описания типов............................................................... 14
3. Разветвляющиеся программы.............................................. 16
3.1. Общие положения........................................................................... 16
3.2. Оператор goto, раздел описания меток............................. 17
3.3. Оператор if......................................................................................... 19
3.4. Оператор case (оператор выбора)........................................... 25
4. Циклические программы.......................................................... 27
4.1. Оператор for..................................................................................... 27
4.2. Оператор repeat. Общий вид...................................................... 32
4.3. Оператор While................................................................................. 33
4.4. Вложенные циклы.......................................................................... 34
5. Ввод – вывод...................................................................................... 37
5.1. Общие положения........................................................................... 37
5. 2. Ввод...................................................................................................... 38
5. 3. Вывод................................................................................................... 39
5. 4. Некоторые возможности ввода-вывода........................... 39
6. Массивы............................................................................................... 41
6. 1. Описание массивов...................................................................... 41
7. Подпрограммы................................................................................. 49
7.1. Общие положения........................................................................... 49
7.2. Подпрограммы-функции, определенные пользователем 51
7.3. Подпрограммы-процедуры......................................................... 54
7.4. Локальные и глобальные описания объектов................. 58
8. Строковые данные........................................................................ 59
8.1. Общие замечания............................................................................ 59
8.2. Строковые выражения................................................................. 60
8.3. Стандартные процедуры и функции для обработки строк 61
8.3.1. Процедуры обработки строк.................................................. 61
8.3.2. Функции обработки строк....................................................... 62
9. Записи.................................................................................................... 63
9.1. Комплексные данные................................................................... 68
9.2. Запись с вариантами.................................................................... 70
10. Файлы.................................................................................................. 71
10.1. Общие замечания.......................................................................... 71
10.2. Стандартные процедуры и функции для работы с файлами 72
10. 3. Стандартные файлы................................................................... 73
10.4. Файлы последовательного доступа, созданные пользователем........................................................................................................................ 74
10.5. Файлы произвольного доступа............................................. 80
10.6. Текстовые файлы.......................................................................... 83
11. Использование библиотеки CRT......................................... 85
11.1. Программирование клавиатуры............................................ 85
11.2. Текстовый вывод на экран...................................................... 88
11.3. Программирование звукового генератора...................... 96
12. Графика в Паскале....................................................................... 99
12.1. Инициализация графического режима.............................. 99
12.2. Процедуры и функции библиотеки Graph.......................... 99
12.3. Примеры программ..................................................................... 102
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ............................................109
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26