Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб 5-7.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
222 Кб
Скачать
☆

Примеры выполнения заданий

Задание 1

Исходные данные.

Фамилия

Тип заливки

«Гагаев»

«Г»-6; «А»-1; «Г»-5; «А»-1; «Е»-1; «В»-4.

Код программы.

program primer1;

uses crt,graph; { подключение модулей crt.tpu и graph.tpu }

var

gd,gm,n:integer; { объявление целочисленных переменных типа integer }

begin

gd:=detect; { тип графического адаптера определяется автоматически }

gm:=1;

initgraph(gd,gm,''); { инициализация графического режима}

{ рисование буквы «Г»}

line(50,50,50,130);

line(50,50,100,50);

line(100,50,100,60);

line(100,60,60,60);

line(60,60,60,130);

line(50,130,60,130);

{ рисование буквы «А»}

line(210–80,50,220–80,50);

line(210–80,50,190–80,130);

line(220–80,50,240–80,130);

line(190–80,130,200–80,130);

line(240–80,130,230–80,130);

line(200–80,130,210–80,95);

line(230–80,130,220–80,95);

line(210–80,95,220–80,95);

line(212–80,85,218–80,85);

line(212–80,85,215–80,70);

line(215–80,70,218–80,85);

{ рисование буквы «"Г»}

line(185,50,185,130);

line(185,50,235,50);

line(235,50,235,60);

line(235,60,195,60);

line(195,60,195,130);

line(185,130,195,130);

{ рисование буквы «А»}

line(210+40,50,220+40,50);

line(210+40 ,50,190+40,130);

line(220+40,50,240+40,130);

line(190+40,130,200+40,130);

line(240+40,130,230+40,130);

line(200+40,130,210+40,95);

line(230+40,130,220+40,95);

line(210+40,95,220+40,95);

line(212+40,85,218+40,85);

line(212+40,85,215+40,70);

line(215+40,70,218+40,85);

{ рисование буквы «Е»}

line(290,50,290,130);

line(290,50,330,50);

line(330,50,330,60);

line(330,60,300,60);

line(300,60,300,85);

line(300,85,330,85);

line(330,85,330,95);

line(330,95,300,95);

line(300,95,300,120);

line(300,120,330,120);

line(330,120,330,130);

line(290,130,330,130);

{ рисование буквы "В"}

line(360,50,360,130);

line(360,50,370,50);

line(360,130,370,130);

ellipse(370,70,270,90,40,20);

ellipse(370,110,270,90,40,20);

ellipse(370,70,270,90,30,10);

ellipse(370,110,270,90,30,10);

line(370,60,370,80);

line(370,100,370,120);

randomize;{инициализация встроенного генератора случайных чисел}

{циклическое изменение цветов заливки, происходящее до тех пор, пока

не будет нажата клавиша ENTER}

repeat

{заливка буквы «Г»}

n:=1+random(14);

setfillstyle(6,n);

floodfill(75,52,15);

{заливка буквы «А»}

n:=1+random(14);

setfillstyle(1,n);

floodfill(140,52,15);

{заливка буквы «Г»}

n:=1+random(14);

setfillstyle(5,n);

floodfill(186,52,15);

{заливка буквы «А»}

n:=1+random(14);

setfillstyle(1,n);

floodfill(252,52,15);

{заливка буквы «Е»}

n:=1+random(14);

setfillstyle(1,n);

floodfill(292,52,15);

{заливка буквы «В»}

n:=1+random(14);

setfillstyle(4,n);

floodfill(380,52,15);

until keypressed;

readln;

end.

Задание 2

Исходные данные.

Исходная расстановка

Ходы

Белые: 2, 6; 7, 5

Чёрные: 1, 5; 6, 6

Белые G5 бьют черные F6

Чёрные A5 бьют белые B6

Код программы.

PROGRAM primer2; {заголовок программы}

uses crt,graph; {подключение модулей graph.tpu и crt.tpu}

var

gd,gm,h,i,j,p,h1,h2,k:integer; {объявление целочисленных переменных типа integer}

begin

gd:=detect; {тип графического адаптера определяется автоматически}

gm:=1;

initgraph(gd,gm,''); {инициализация графического режима}

rectangle(20,20,getmaxy–20,getmaxy–20); {рисование квадратной области}

h:=(getmaxy–40) div 8; {определение длины ребра одного квадрата на

игральной доске}

for i:=1 to 7 do

begin

line(i*h+20,20,i*h+20,getmaxy–20);{рисование вертикальных линий}

line(20,i*h+20,getmaxy–20,i*h+20);{рисование горизонтальных линий}

end;

for i:=1 to 8 do

begin

outtextxy(i*h–10,10,chr(64+i)); {расстановка букв по горизонтальной оси}

outtextxy(10,i*h–10,chr(48+i)); {расстановка цифр по вертикальной оси}

end;

{цикл закраски квадратов на игральной доске}

for i:=1 to 8 do

for j:=1 to 8 do

begin

if (i+j) mod 2<>0 then p:=7 else p:=0;

setfillstyle(1,p);

floodfill(20+i*h–2,20+j*h–2,15);

end;

h1:=h div 2;

{Рисование белой шашки}

setcolor(1);

circle(2*h+20–h1,6*h+20–h1,h1–4);

setfillstyle(1,15);

floodfill(2*h+20–h1,6*h+20–h1,1);

{Рисование черной шашки}

circle(1*h+20–h1,5*h+20–h1,h1–4);

setfillstyle(1,6);

floodfill(1*h+20–h1,5*h+20–h1,1);

{Рисование белой шашки}

circle(7*h+20–h1,5*h+20–h1,h1–4);

setfillstyle(1,15);

floodfill(7*h+20–h1,5*h+20–h1,1);

{Рисование черной шашки}

circle(6*h+20–h1,6*h+20–h1,h1–4);

setfillstyle(1,6);

floodfill(6*h+20–h1,6*h+20–h1,1);

repeat

{пустой цикл выполняется до тех пор, пока не будет нажата клавиша «1»}

until (keypressed) and (readkey='1');

{Удаление белой шашки}

setcolor(0);

circle(7*h+20–h1,5*h+20–h1,h1–4);

setfillstyle(1,0);

floodfill(7*h+20–h1,5*h+20–h1,0);

{Рисование белой шашки}

setcolor(1);

circle(5*h+20–h1,7*h+20–h1,h1–4);

setfillstyle(1,15);

floodfill(5*h+20–h1,7*h+20–h1,1);

{Удаление черной шашки}

setcolor(0);

circle(6*h+20–h1,6*h+20–h1,h1–4);

setfillstyle(1,0);

floodfill(6*h+20–h1,6*h+20–h1,0);

repeat

{пустой цикл выполняется до тех пор, пока не будет нажата клавиша «2»}

until (keypressed)and(readkey='2');

{Удаление белой шашки}

setcolor(0);

circle(2*h+20–h1,6*h+20–h1,h1–4);

setfillstyle(1,0);

floodfill(2*h+20–h1,6*h+20–h1,0);

{Рисование черной шашки}

setcolor(1);

circle(3*h+20-h1,7*h+20-h1,h1-4);

setfillstyle(1,6);

floodfill(3*h+20–h1,7*h+20–h1,1);

{Удаление черной шашки }

setcolor(0);

circle(1*h+20–h1,5*h+20–h1,h1–4);

setfillstyle(1,0);

floodfill(1*h+20–h1,5*h+20–h1,0);

repeat

{пустой цикл выполняется до тех пор, пока не будет нажата клавиша «3»}

until (keypressed) and (readkey='3');

readln;

end.