p align="left"> kr[8].x:=195; kr[8].y:=270; fillpoly(8,kr); {башмаки} setfillstyle(solidfill,red); pieslice(160,360,0,360,10); pieslice(200,370,10,160,20); pieslice(215,360,0,360,10); pieslice(142,370,10,160,20); setfillstyle(solidfill,white); fillellipse(145,115,5,8); fillellipse(163,115,5,8); setfillstyle(solidfill,blue); pieslice(147,115,0,360,3); pieslice(165,115,0,360,3); setcolor(yellow); arc(154,160,30,145,30); setcolor(red); setfillstyle(solidfill,lightmagenta); fillellipse(154,146,5,8); {бабочка} kr[1].x:=140; kr[1].y:=153; kr[2].x:=135; kr[2].y:=163; kr[3].x:=155; kr[3].y:=158; 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; fillpoly(5,kr); 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; fillpoly(5,kr); 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 begin {НЛО достиг границы экрана, меняем направление его движения} 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
|