|
|
fuss.PAS |
|
{* Заполнение стакана водой *}Unit FUSS;Interface Implementation Begin writeln('В графическом режиме изображается заполнение водой стакана из бутылки '); End. Program FIP; Uses fuss.pas; {* Эту строку можно удалить *} Uses GRAPH, crt; {* Вызов внешних функций *} label 1; Var {* Объявление переменных *} GD : INTEGER; GM : INTEGER; X : INTEGER; Y : INTEGER; I : INTEGER; K : INTEGER; t : INTEGER; h : INTEGER; m : INTEGER; s : Array[1..30] Of integer; d : Array[1..30] Of integer; Begin clrscr; {* Очистка экрана *} gd := detect; initgraph(gd, gm, ''); s[1] := 466; d[1] := 400 * 5; s[2] := 294; d[2] := 400 * 5; d[3] := 30 * 5; s[4] := 294; d[4] := 400 * 5; s[5] := 466; d[5] := 400 * 5; d[6] := 30 * 5; s[7] := 466; d[7] := 1000 * 5; s[8] := 294; d[8] := 400 * 5; d[9] := 30 * 5; s[10] := 294; d[10] := 400 * 5; s[11] := 466; d[11] := 400 * 5; d[12] := 30 * 5; s[13] := 466; d[13] := 400 * 5; s[14] := 294; d[14] := 400 * 5; s[15] := 311; d[15] := 400 * 5; s[16] := 294; d[16] := 400 * 5; d[17] := 30 * 5; s[18] := 294; d[18] := 400 * 5; s[19] := 262; d[19] := 400 * 5; d[20] := 30 * 5; s[21] := 262; d[21] := 400 * 5; s[22] := 440; d[22] := 400 * 5; d[23] := 30 * 5; s[24] := 440; d[24] := 400 * 5; s[25] := 440; d[25] := 400 * 5; d[26] := 30 * 5; setcolor(15); {стакан} ellipse(140, 330, 0, 360, 68, 10); ellipse(140, 430, 180, 360, 35, 10); line(72, 330, 105, 430); line(208, 330, 175, 430); line(140, 340, 140, 440); line(102, 338, 123, 438); line(178, 338, 157, 438); {бутылка} ellipse(500, 400, 180, 360, 70, 25); ellipse(500, 200, 180, 360, 70, 25); ellipse(530, 200, 0, 80, 40, 30); ellipse(470, 200, 100, 180, 40, 30); ellipse(500, 170, 180, 360, 37, 10); ellipse(500, 30, 0, 360, 30, 10); ellipse(500, 30, 0, 360, 20, 5); ellipse(500, 40, 180, 360, 30, 10); ellipse(500, 250, 180, 360, 70, 25); line(530, 30, 530, 40); line(470, 30, 470, 40); line(570, 200, 570, 400); line(430, 200, 430, 400); setcolor(14); line(568, 259, 568, 400); line(432, 259, 432, 400); ellipse(500, 398, 180, 360, 68, 25); ellipse(500, 255, 180, 360, 68, 25); setcolor(15); setfillstyle(11, 15); floodfill(500, 300, 14); line(537, 170, 520, 100); line(463, 170, 480, 100); line(520, 100, 520, 50); line(480, 100, 480, 50); delay(4000); setcolor(0); setfillstyle(11, 0); floodfill(500, 300, 14); line(568, 259, 568, 400); line(432, 259, 432, 400); ellipse(500, 398, 180, 360, 68, 25); ellipse(500, 255, 180, 360, 68, 25); {бутылка стерлась} setcolor(0); ellipse(500, 400, 180, 360, 70, 25); ellipse(500, 200, 180, 360, 70, 25); ellipse(530, 200, 0, 80, 40, 30); ellipse(470, 200, 100, 180, 40, 30); ellipse(500, 170, 180, 360, 37, 10); ellipse(500, 250, 180, 360, 70, 25); ellipse(500, 30, 0, 360, 30, 10); ellipse(500, 30, 0, 360, 20, 5); ellipse(500, 40, 180, 360, 30, 10); line(530, 30, 530, 40); line(470, 30, 470, 40); line(570, 200, 570, 400); line(430, 200, 430, 400); line(537, 170, 520, 100); line(463, 170, 480, 100); line(520, 100, 520, 50); line(480, 100, 480, 50); delay(500); setcolor(15); {бутылка 1 } ellipse(500, 100, 270, 90, 25, 70); ellipse(300, 100, 270, 90, 25, 70); line(500, 170, 300, 170); line(500, 30, 300, 30); ellipse(305, 130, 190, 260, 30, 40); ellipse(305, 70, 100, 170, 30, 40); ellipse(275, 100, 270, 90, 10, 37); line(275, 65, 205, 82); line(154, 115, 525, 115); line(276, 136, 205, 117); line(133, 115, 140, 115); line(205, 82, 155, 82); line(210, 118, 154, 118); setfillstyle(11, 15); floodfill(400, 120, 15); floodfill(300, 120, 15); ellipse(136, 100, 0, 360, 10, 30); ellipse(136, 100, 0, 360, 5, 20); ellipse(146, 100, 270, 90, 10, 30); line(136, 130, 146, 130); line(136, 70, 146, 70); floodfill(280, 120, 15); floodfill(133, 117, 15); delay(9000); For i := 115 To 440 Do {* Цикл для i => [115 .. 440] *} Begin putpixel(trunc(133 + 4 * sin(i / 30)), i, 15); putpixel(trunc(140 + 4 * sin(i / 30)), i, 15); delay(50); End; m := 430; t := 34; For i := 1 To 26 Do {* Увеличиваем i от 1 до 26 с шагом 1 *} Begin If (i = 3) Or (i = 6) Or (i = 9) Or (i = 12) Or (i = 17) Or (i = 20) Or (i = 23) Or (i = 26) Then Begin nosound; Goto 1; End; sound(s[i]); 1 : ellipse(140, m, 180, 360, t, 10); t := t + 1; m := m - 3; delay(d[i]); End; readln; {* Ждем нажатия Enter *} closegraph; End. 07.08.2014 - Breakpoint - точка остановки 07.08.2014 - Топ-10 самых популярных приложений в Facebook 18.11.2013 - Панель управления и персонализация системы. Windows Vista 18.11.2013 - Логические и физические диски. Windows Vista 18.11.2013 - Удаление файлов и папок 01.11.2013 - Программирование дисковых подсистем: возможности 31.10.2013 - Windows8 или Windows7? 31.10.2013 - Windows8, игры |
|
Non-commercial fansite
|