CIRCLE (Random(640),Random(480), 50)

Примеры решения задач на языке Паскаль

{1. Одна сторона прямоугольника на 5 см. длиннее другой, а сумма их длин равна 17 см. Найти стороны этого прямоугольника.}

Uses crt;

var summa,raz,st:real;

storona1,storona2:real;

Begin

ClrScr;

writeln('Введите сумму длин сторон прямоугольника');

Readln(summa);

writeln('Введите на сколько одна сторона больше другой');

Readln(raz);

st:= (summa - raz) / 2;

storona1:= st;

storona2:= st + raz;

write ('ширина-',storona1:7:2,'см.');

write ('длина-',storona2:7:2,'см.');

End.

{2. Нефтебаза отпустила за два дня 2560 л. бензина. Во второй день база отпустила на 280 л. больше. Сколько литров бензина база отпустила отдельно за каждый день? }

Uses crt;

var summa,raz,st,day1,day2:real;

Begin;

Clrscr;

write('Сколько литров бензина отпустила нефтебаза за 2 дня');

Readln(summa);

writeln('Введите на сколько отпущенное кол-во бензина одного дня больше чем другого');

Readln(raz);

st:= (summa - raz) / 2.0;

day1:= st;

day2:= st + raz;

writeln('первый день-',day1:7:2,'л.');

writeln('второй день-',day2:7:2,'л.');

End.

{3. Одно число в 2 раза больше другого, а их сумма равна 93. Найти эти числа.}

Uses crt;

var summa,raz,st,storona1,storona2:real;

Begin

ClrScr;

writeln('Введите сумму двух чисел');

Readln(summa);

writeln('Введите во сколько раз одно больше другого');

Readln(raz);

st:= summa / (raz + 1);

storona1:= st;

storona2:= st * raz;

write ('1 число-',storona1:7:2,' ед.');

write ('2 число-',storona2:7:2,' ед.');

End.

{4. Составьте алгоритм и программу для определения сдачи после покупки в магазине товара: перчаток стоимостью а руб., портфеля стоимостью б руб., галстука стоимостью с руб. Исходная сумма, выделенная на покупку d руб. В случае нехватки денег сдача получится отрицательной.}

Uses crt;

var change,per,por,gal,cash:longint;

Begin;

Clrscr;

write('введите стоимость перчаток-');

Readln(per);

write('введите стоимость портфеля-');

Readln(por);

write('введите стоимость галстука-');

Readln(gal);

write('введите кол-во денег, имеущихся в наличии-');

Readln(cash);

change:= cash - (per + por + gal);

writeln('Сдача - ',change,'руб.');

End.

{5.В течении месяца продавец доставлялна дом 4 л молока в день. В марте молоко стоило х руб за литр Спервого апреля цена молока увеличилась до [x+a] руб за литр Сколько надо заплатить продавцу за все доставленное молоко в конце апреля? Кол-во покупаемого молока осталось прежним}

Uses crt;

var march,april,payment:real;

Begin;

Clrscr;

writeln('Введите стоимость отпускаемого молока в марте');

Readln(march);

writeln('Введите стоимость отпускаемого молока в апреле');

Readln(april);

payment:= march * 4 * 31 + april * 4 * 30;

writeln('Вы должны заплатить с 1-го марта по 30-е апреля включительно ',payment:7:2, ' руб.')

End.

{6. Хозяин хочет оклеить обоями длинную стену в своем доме. Длина этой стены равна а и высота б. Рулон обоев имеет длину 12 м и ширину 1 м. Сколько будут стоить обои для всей стены если цена одного рулона к руб}

Uses crt;

var a,b,c,d,price,payment,k:real;

Begin;

Clrscr;

writeln('Введите параметры стены(высота)');

Readln(a);

writeln('Введите параметры стены(ширина)');

Readln(b);

writeln('Введите стоимость одного рулона обоев');

Readln(price);

writeln('Введите длину рулона обоев)');

Readln(d);

writeln('Введите ширину рулона обоев');

Readln(c);

k:=b/((d/a)*c)+1;

payment:=k * price;

writeln('Обои для всей стены будут стоить ',payment:7:2,' руб.');

writeln('Вам потребуется купить',k,' рулонов');

End.

{7. Некоторый автомат может запросить два числа и выполнить 3 команды. Команда а преобразует имеющуюся пару чисел (х,у) в пару (х-у,у) команда б преобразует пару чисел (х,у) в пару (х+у,у) команда с преобразует пару (ч,у) в (у,х) Составьте алгоритм и программу работы автомата}

Uses crt;

var x,y,number:integer;

Begin;

Clrscr;

writeln('Введите число (x)');

Readln(x);

writeln('Введите число (y)');

Readln(y);

writeln('Какое преобразование следует выполнить:1.(x-y,y), 2.(x+y,y), 3.(y,x)');

Readln(number);

Case number of

1: writeln(x - y,',',y);

2: writeln(x + y,',', y);

3: writeln(y,',', x);

End;

End.

{8. Составьте алгоритм и программу выбирающую из трех чисел то которое лежит между двумя другими }

Uses crt;

var a,b,c,low,high,mid:integer;

Begin;

Clrscr;

writeln('Введите три числа(после каждрого ENTER)');

Readln(a);

Readln(b);

Readln(c);

low:=a;

high:=a;

IF b < low THEN low:=b;

IF c < low THEN low:= c;

IF b > high THEN high := b;

IF c > high THEN high := c;

IF low=a THEN begin

if high=b then mid:=c;

if high=c then mid:=b;

End;

IF low=b THEN begin

if high=c then mid:=a;

if high=a then mid:=c;

End;

IF low=c THEN begin

if high=a then mid:=b;

if high=b then mid:=a;

End;

writeln('Между ',low,' и ', high,' лежит ', mid);

End.

Uses crt;

var choice,x,y:integer;

Label 1,2;

Begin;

Clrscr;

writeln('Под какой буквой следует выполнить задание A(1) Б(2)');

Readln(choice);

IF choice = 1 THEN GOTO 1;

IF choice = 2 THEN GOTO 2;

Halt;

1:

Clrscr;

writeln('Введите Х');

Readln(x);

IF x >= 0 THEN writeln('Y=0');

IF x < 0 THEN writeln('Y=2*x', ' y=', x * 2);

Halt;

2:

Clrscr;

writeln('Введите Х');

Readln(x);

IF x < 0 THEN writeln('Y=x^2', ' Y=', x *x);

IF x >= 0 THEN writeln('Y=-(x^2)', ' y=', -(x * x));

Halt;

End.

{10. Определить в какие отряды распределят детей}

Uses crt;

var adge:integer;

Begin;

Clrscr;

writeln('Введите возраст ребенка');

Readln(adge);

IF (adge > 5) and (adge <= 7) THEN writeln('5-й отряд');

IF (adge > 7) AND (adge <= 9) THEN writeln('4-й отряд') ;

IF (adge > 9) AND (adge <= 11) THEN writeln('3-й отряд') ;

IF (adge > 11) AND (adge <= 13) THEN writeln('2-й отряд') ;

IF (adge > 13) AND (adge <= 15) THEN writeln('1-й отряд') ;

IF (adge < 6) OR (adge > 15) THEN writeln('В лагерь не допускается');

End.

{11 Построение треугольника по трем точкам}

Uses crt,graph;

var x,x1,x2,y,y1,y2,gd,gm:integer;

a,b,c:real;

Begin

Clrscr;

writeln('Введите координаты первой точки (X и Y) после каждой коор. ENTER');

Readln(x);

Readln(y);

writeln('Введите координаты второй точки (X1 и Y1) после каждой коор. ENTER');

Readln(x1);

Readln(y1);

writeln('Введите координаты третьей точки (X2 и Y2) после каждой коор. ENTER');

Readln(x2);

Readln(y2);

a:=sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1));

b:=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));

c:=sqrt((x2-x)*(x2-x)+(y2-y)*(y2-y));

if (a+b>c) and (c+b>a) and (a+c>b) then

Begin

writeln('Построение треугольника провести можно ');

initgraph(gd,gm,'c:\bp\bgi');

Line(x,y,x1,y1);

Line(x1,y1,x2,y2);

Line(x2,y2,x,y);

Delay(3000);

End

else writeln('Треугольник не построится ');

End.

{12 Программа проверяющая выполняется ли условие существования треугольника}

Uses crt;

var a,b,c:integer;

p,s:real;

Begin

Clrscr;

writeln('Введите длины сторон тр-ка (a,b,c)');

Readln(a);

Readln(b);

Readln(c);

p:=a+b+c;

s:=sqr(p/2*(p/2-a)*(p/2-b)*(p/2-c));

if (a+b>c) and (a+c>b) and (c+b>a) then

Begin

writeln('Периметр - ',p);

writeln('Площадь - ',s);

End

else writeln('Треугольник не существует');

End.

{13. Определить какая из двух точек находится дальше от: начала координат; окружности заданного радиуса с центром в начале координат }

Uses crt;

var x1,x2,y1,y2,r:real;

Begin;

Clrscr;

writeln('Введите координаты первой точки (X и Y) после каждой коор. ENTER');

Readln(x1);

Readln(y1);

writeln('Введите координаты второй точки (X1 и Y1) после каждой коор. ENTER');

Readln(x2);

Readln(y2);

writeln('Введите радиус окружности(если нет, то r=0)');

Readln(r);

{Т.к. координаты должны браться по модулю, то:}

x1:= SQR(x1*x1);

x2:= SQR(x2*x2);

y1:= SQR(y1 *y1);

y2:= SQR(y2 * y2);

IF r *r > x1 * x1 + y1 *y1 THEN writeln('Первая точка лежит в пределах окружности');

IF r * r > x2 *x2 + y2 *y2 THEN writeln('Вторая точка лежит в пределах окружности');

IF x1 * x1 + y1 *y1> x2 *x2 + y2 *y2 THEN

Begin

writeln('первая точка находится дальше.');

End

else writeln ('вторая точка находится дальше.');

IF x1 * x1 + y1 *y1> x2 *x2 + y2 *y2 THEN

Begin

writeln('Первая точка лежит дальше от окружности');

End

else writeln('Вторая точка лежит дальше от окружности');

End.

{14. Определите из двух девочек старшую}

Uses crt;

var adge1,adge2:integer;

Begin;

Clrscr;

writeln('Введите годы рождения девочек (первой и второй после каждой ENTER)');

Readln(adge1, adge2);

iF adge1 < adge2 THEN writeln('Первая девочка старше') ELSE writeln('Вторая девочка старше');

End.

{15. Вводятся оценки по физике и математике Выведи на экран "Молодец" если их сумма равна или более 9 в противном случае выведи "Подтянись"}

Uses crt;

var a,b:integer;

Begin;

Clrscr;

writeln('Введите оценки за контрольные работы по физике и математике после каждого пред. Enter');

Readln(a);

Readln(b);

IF a + b >= 9 THEN writeln('Молодец !') ELSE writeln('Подтянись');

End.

{16. Вычисление сдачи с покупки музыкального диска}

Uses crt;

var r,k,r1,k1,how:real;

Begin;

Clrscr;

writeln('Введите стоимость диска(руб.,коп.) через Enter');

Readln(r);

Readln(k);

writeln('Введите размер располагаемой суммы(руб.,коп.) через Enter');

Readln(r1);

Readln(k1);

IF r * 100 + k < r1 * 100 + k1 THEN writeln('Да, вам хватит денег на покупку');

IF r * 100 + k > r1 * 100 + k1 THEN

Begin;

how:= (r * 100 + k) - (r1 * 100 + k1);

r:= INT(how / 100);

k:= how - INT(how / 100) * 100;

writeln('Нет, вам не хватит денег на покупку ',r:7:0,' руб. ', k:7:0, ' коп.');

END;

End.

{17. Написать алгоритм вычисления чисел}

Uses crt;

var x:real;

Begin;

Clrscr;

writeln('Введите число');

Readln(x);

IF x > 0 THEN writeln('положительное число');

if x < 0 then writeln('отрицательное число');

if x=0 then writeln('0 = 0');

End.

{18. Написать алгоритм читающий "N" и выдающий на экран квадраты чисел от 1 до "N"}

Uses crt;

var i,n:integer;

Begin;

Clrscr;

writeln('Введите число N');

Readln(n);

FOR i := 1 TO n do

Begin;

writeln(i * i);

End;

End.

{19. Нахождение точки с координатами (х,у)}

Uses crt;

var x,y:integer;

Begin;

Clrscr;

writeln('Введите координаты точки (x)');

Readln(x);

writeln('Введите координаты точки (y)');

Readln(y);

IF (x = 0) OR (y = 0) THEN writeln ('Точка лежит на разделе четвертей');

IF (x > 0) AND (y > 0) THEN writeln('I-я четверть');

IF (x < 0) AND (y > 0) THEN writeln('II-я четверть');

IF (x < 0) AND (y < 0) THEN writeln('III-я четверть');

IF (x > 0) AND (y < 0) THEN writeln('IV-я четверть');

End.

{20. Определение номера краски}

Uses crt;

var color:string;

a:integer;

Begin;

Clrscr;

writeln('Введите цвет (маленькие буквы)');

Readln(color);

a:=1;

IF color = 'красный' THEN

Begin

writeln('1');a:=0;

End;

IF color = 'зеленый' THEN

Begin

writeln('2');a:=0;

End;

IF color = 'желтый' THEN

Begin

writeln('3');a:=0;

End;

IF color = 'черный' THEN

Begin

writeln('4');a:=0;

End;

IF color = 'белый' THEN

Begin

writeln('5'); a:=0;

End;

IF color = 'синий' THEN

Begin

writeln('6'); a:=0;

End;

IF color = 'коричневый' THEN

Begin

writeln('7');a:=0;

End;

if a=1 then writeln('такой краски нет');

End.

{21. Выбрать лучший результат}

Uses crt;

var a,b,c,high:integer;

Begin;

Clrscr;

writeln('Введите результаты по плаванию для трех спортсменов через Enter');

Readln(a);

Readln(b);

Readln(c);

IF (a > b) AND (a > c) THEN high := a;

IF (b > a) AND (b > c) THEN high := b;

IF (c > a) AND (c > b) THEN high := c;

writeln('Наивысший результат ',high);

End.

Uses crt;

var n,a,k:integer;

nn:real;

Label 1;

Begin

Clrscr;

writeln('Введите целое число N(1-100)');

Readln(n);

writeln('Введите число для поиска в разложении ведденого числа');

Readln(k);

a:=0;

nn:=n;

1:

nn:=(nn/k);

if int(nn) <> nn then

Begin

Clrscr;

writeln('Число ',k,' встречается ',a,' раз(а)');

End

else a:=a+1;

Goto 1

End.

{23. Сколько раз встречается цифра К в натуральном М}

Uses crt;

var m:string[79];

k:string[79];

number,i:integer;

position:byte;

Procedure Search;

Begin

Position:=pos(k,m);

IF position<>0 then number := number + 1;

End;

Begin;

Clrscr;

writeln('Введите натуральное число M');

Readln(m);

writeln('Введите число k (так, чтобы 0<=k<=9)');

Readln(k);

Clrscr;

Search;

writeln('В числе ', m, ' число ', k, ' встречается ', number, ' раз');

End.

{24. Вычислить сколько цифр в числе}

Uses crt;

var number:string;

Begin;

Clrscr;

writeln('Введите натуральное число N');

Readln(number);

writeln('В числе ', number, ' цифр ', length(number));

End.

{25. Расписание уроков в определенный день}

Uses crt;

var day:integer;

Label 11,22,33,44,55;

Begin;

Clrscr;

writeln('введите номер дня недели');

Readln(day);

Case day of

Goto 11;

Goto 22;

Goto 33;

Goto 44;

Goto 55;

End;

writeln('А у нас пятидневка');

Halt;

11: writeln ('1.математика');

writeln ('2.математика');

writeln('3.химия');

writeln('4.физика');

writeln('5.биолог');

Halt;

22: writeln ('1.математика');

writeln ('2.литер.');

writeln ('3.ин.яз.');

writeln ('4.физика');

writeln ('5.физ-ра');

Halt;

33: writeln ('1.литер.');

writeln ('2.литер.');

writeln ('3.ин.яз.');

writeln ('4.химия');

Halt;

44: writeln ('1.инф');

writeln ('2.математика');

writeln ('3.биолог');

writeln ('4.географ.');

writeln ('5.географ');

Halt;

55: writeln ('1.математика');

writeln ('2.литер.');

writeln ('3.истор');

writeln ('4.истор');

writeln ('5.литер.');

Halt;

End.

{26. Кол-во дней в месяцах}

Uses crt;

var m,year:integer;

Begin;

Clrscr;

writeln('Високосный ли год (1-да,0-нет)');

Readln(year);

writeln('Введите номер месяца');

Readln(m);

IF m = 1 THEN writeln ('январь, 31-день');

IF (m = 2) AND (year = 0) THEN writeln ('февраль(невисокосный), 28-дней');

IF (m = 2) AND (year = 1) THEN writeln ('февраль(високосный), 29-дней');

IF m = 3 THEN writeln ('март, 31-день');

IF m = 4 THEN writeln ('апрель, 30-день');

IF m = 5 THEN writeln ('май, 31-день');

IF m = 6 THEN writeln ('июнь, 30-день');

IF m = 7 THEN writeln ('июль, 31-день');

IF m = 8 THEN writeln ('август, 31-день');

IF m = 9 THEN writeln ('сентябрь, 30-день');

IF m = 10 THEN writeln ('октябрь, 31-день');

IF m = 11 THEN writeln ('ноябрь, 30-день');

IF m = 12 THEN writeln ('декабрь, 31-день');

End.

{27. Угадывание целых чисел}

Uses crt;

var number,partner:integer;

Label 1;

Begin;

Clrscr;

writeln('Первый игрок, введите число');

Readln(number);

Clrscr;

writeln('Второй игрок, ваш ход');

1:

Readln(partner);

IF partner > number THEN

Begin

writeln ('меньше'); GOTO 1;

End;

IF partner < number THEN

Begin

writeln ('больше'); GOTO 1;

End;

IF partner = number THEN

Begin

writeln ('Вы угадали'); halt;

End;

End.

{28. Подсчитывание кол-во кругов ученика}

Uses crt;

var ask,number:integer;

Label 1;

Begin;

Clrscr;

1:

writeln('Пробежишь еще кружочек ? (1-да, 2-нет)');

Readln(ask);

IF ask = 1 THEN

Begin

number := number + 1; clrscr; GOTO 1;

End;

IF ask = 2 THEN

Begin

writeln('На нет и суда нет. Ты пробежал ', number, ' кругов');

Halt;

End;

End.

{29. }

Uses crt;

var choice:integer;

Begin;

Clrscr;

writeln('Математика(1) Физика(2) Информатика(3)');

Readln(choice);

IF choice = 1 THEN

Begin

clrscr;writeln('Математика-4')

End;

IF choice = 2 THEN

Begin

clrscr;writeln('Физика-3');

End;

IF choice = 3 THEN

Begin

clrscr;writeln('Информатика-5');

End;

End.

{30. Вычеркивание по выбору граф элементы}

Uses graph,crt;

var gd,gm,choice:integer;

Begin

initgraph(gd,gm,'');

outtext('Выберите длину отрезка:1-50 точек(1), 2-150 точек(2)');

Readln(choice);

Case choice of

LINE (295, 240,345, 240);

LINE (245, 240,395, 240);

End;

Repeat;

Until keypressed;

Closegraph;

End.

{30. Выполнение граф построений}

Uses graph,crt;

var gd,gm:integer;

Begin

initgraph(gd,gm,'c:\bp\bgi');

LINE (150, 100,67, 100);

LINE (67, 100,102, 68);

LINE (102, 68,150, 100);

Floodfill (100, 90, 15);

Delay(2000);

Clearviewport;

Bar(73, 49,141, 109);

Delay(2000);

Clearviewport;

LINE (73, 49,103, 79);

LINE (103, 79,92, 120);

LINE (92, 120,50, 120);

LINE (50, 120,31, 79);

LINE (31, 79,73, 49);

Floodfill (90, 90, 15);

Delay(2000);

Clearviewport;

LINE (73, 49,111, 49);

LINE (111, 49,132, 71);

LINE (132, 71,111, 93);

LINE (111, 93,73, 93);

LINE (73, 93,52, 71);

LINE (52, 71,73, 49);

Floodfill (100, 90, 15);

Repeat;

Until keypressed;

Closegraph;

End.

{32. Начертить N окружностей}

Uses graph,crt;

var gd,gm,n,i:integer;

Begin

initgraph(gd,gm,'c:\bp\bgi');

outtext('Введите кол-во окружностей');

Readln(n);

Clearviewport;

FOR i:= 1 TO n do

Begin;

CIRCLE (Random(640),Random(480), 50)

End;

Repeat;

Until keypressed;

Closegraph;

End.

{33. Построить многоугольник со сторонами 60 и 20 точек}

Uses graph,crt;

var gd,gm,x,x1,y,y1:integer;

Begin

initgraph(gd,gm,'c:\bp\bgi');

outtextxy(20,0,'Введите координаты левого верхнего угла прямоугольника (x,y)');

Readln(x);

Readln(y);

outtextxy(20,10,'Введите координаты правого нижнего угла прямоугольника (x1,y1)');

Readln(x1);

Readln(y1);

Rectangle(x,y,x1,y1);

Repeat;

Until keypressed;

Closegraph;

End.

{34. Построить и закрасить круг}

Uses graph,crt;

var gd,gm,x,y,r:integer;

Begin

initgraph(gd,gm,'c:\bp\bgi');

outtextxy(40,0,'Введите координаты центра окружности');

Readln(x);

Readln(y);

outtextxy(40,20,'Введите радиус окружности');

Readln(r);

CIRCLE (x, y, r);

Floodfill(x,y, 15);

Repeat;

Until keypressed;

Closegraph;

End.

{35. Построить из окружностей рисунок облака}

Uses graph,crt;

var gd,gm:integer;

Begin

initgraph(gd,gm,'c:\bp\bgi');

SetFillStyle(1, 15);

Setcolor(15);

CIRCLE (320, 240, 100);

Floodfill (320, 240, 15);

CIRCLE (220, 240, 80);

Floodfill (200, 240, 15);

CIRCLE (420, 240, 80);

Floodfill (440, 240, 15);

Repeat;

Until keypressed;

Closegraph;

End.

{36 Построение звезды}

Uses graph,crt;

var gd,gm:integer;

Begin

initgraph(gd,gm,'c:\bp\bgi');

Setcolor(15);

Line(220,240,320,100);

Line(320,100,420,240);

Line(220,140,420,140);

Line(220,140,420,240);

Line(420,140,220,240);

Delay(3000);

End.

{37. Построение квадрата}

Uses graph,crt;

var gd,gm,x,y,side:integer;

Begin

initgraph(gd,gm,'c:\bp\bgi');

outtextxy(30,0,'Введите сторону квадрата.');

Readln(side);

Clearviewport;

outtextxy(30,0,'Введите координаты центра квадрата(X и Y через ENTER)');

Readln(x);

Readln(y);

Clearviewport;

rectangle(x-side,y - side ,x + side , y + side );

Repeat;

Until keypressed;

Closegraph;

End.

{38 Рисование луны}

Uses crt,graph;

var gd,gm,choice:integer;

Label 1,2,3;

Begin;

Clrscr;

writeln('1.полнолуние, 2.1/2 луны, 3.месяц');

Readln(choice);

initgraph(gd,gm,'c:\bp\bgi');

IF choice = 1 THEN GOTO 1;

IF choice = 2 THEN GOTO 2;

IF choice = 3 THEN GOTO 3;

Halt;

1:

CIRCLE (320, 240, 100);

Floodfill(320,240,15);

Repeat;

Until keypressed;

Halt;

2 :

Arc(320, 240, 90, 270, 100);

LINE (320, 140,320, 340);

Floodfill(300,240,15);

Repeat;

Until keypressed;

Halt;

3 :

Arc(320, 240, 90, 270, 100);

Arc(490, 240, 150, 210, 200);

Floodfill(285,240,15);

Repeat;

Until keypressed;

Halt;

Closegraph;

End.

{39 Построение треугольника по заданным координатам}

Uses crt,graph;

var gd,gm,x,y,a,c:integer;

Begin

Clrscr;

writeln('Введите координаты центра звезды X и Y ');

Readln(x);

Readln(y);

writeln('Введите длину луча звезды (не меньше 90)');

Readln(a);

initgraph(gd,gm,'c:\bp\bgi');

c:=round(3/4*a);

line(x,y-a,x+c,y+2*c);

line(x,y-a,x-c,y+2*c);

line(x+c,y+2*c,x-a-10,y-25);

line(x-c,y+2*c,x+a+10,y-25);

line(x+a+10,y-25,x-a-10,y-25);

Delay(3000);

Closegraph;

End.

{40. Построение кораблика}

Uses graph,crt;

var gd,gm:integer;

a,h:real;

Begin

initgraph(gd,gm,'c:\bp\bgi');

outtextxy (30,0,'Введите высоту и длину палубы (H и A через Enter)');

Readln(h);

Readln(a);

LINE (320 + round(a / 2), 240 - round(h / 2),320 + round(a/2), 240 + round(h/ 2));

LINE (320 + round(a / 2), 240 - round(h / 2),320 - round(a / 2), 240 - round(h / 2));

LINE (320 - round(a / 4), 240 + round(h / 2),320 + round(a / 2), 240 + round(h / 2));

LINE (320 - round(a / 4), 240 + round(h / 2),320 - round(a / 2), 240 - round(h / 2));

LINE (320, 240 - round(h / 2),320, 240 - round(h * 2));

LINE (320, 240 - round(h * 2),320 + round(a / 5), round(240 - h));

LINE (320, 240 - round(h),320 + round(a / 5),round( 240 - h));

Repeat;

Until keypressed;

Closegraph;

End.

{41. }

Uses graph,crt;

var gd,gm,i:integer;

x,y:real;

c:char;

Label 0,1,2,3;

const aa=57.32484;

Begin

initgraph(gd,gm,'c:\bp\bgi');

0: outtextxy (1,1,'День(д), ночь(н) (используйте заглавные буквы)');

outtextxy(1,10,'Press Esc to exit');

1:

c:=readkey;

IF c = chr(27) THEN halt;

IF c = 'Д' THEN GOTO 2;

IF c = 'Н' THEN GOTO 3;

GOTO 1;

Clearviewport;

Setcolor(14);

CIRCLE (320, 240, 100);

Floodfill (320, 240, 14);

GOTO 0;

3:

Setcolor(15);

Clearviewport;

arc(320, 240, round(1.57*aa), round(4.71*aa),100);

GOTO 0;

End.

{42. Рожица}

Uses graph,crt;

var gd,gm:integer;

c:char;

Label 0,2,3;

Begin

initgraph(gd,gm,'c:\bp\bgi');

Circle(320, 240, 100);

Ellipse(320, 280, 180, 360, 60,50);

Ellipse(320, 240, 180, 360, 20,50);

Ellipse(280, 200,0,360, 40,5);

Ellipse(360, 200,0,360, 40,5);

outtextxy (1,1,'сон(с) утро(у)');

outtextxy (1,10,'Press Esc to exit');

0:

c:=readkey;

if c = chr(27) then halt;

IF c = 'у' THEN GOTO 2;

IF c = 'с' THEN GOTO 3;

GOTO 0;

2:

Setcolor(0);

Ellipse(280, 200,0,360, 40,5);

Ellipse(360, 200,0,360, 40,5);

Setcolor(14);

Ellipse (280, 200,360,0,30,10);

Ellipse (360, 200,360,0,30,10);

Circle (280, 200,10);

CIRCLE (360, 200, 10);

GOTO 0;

3:

Setcolor (0);

Ellipse (280, 200,360,0,30,10);

Ellipse (360, 200,360,0,30,10);

Circle (280, 200,10);

CIRCLE (360, 200, 10);

Setcolor(14);

Ellipse(280, 200,0,360, 40,5);

Ellipse(360, 200,0,360, 40,5);

GOTO 0;

Repeat;

Until keypressed;

Closegraph;

End.

{43. }

Uses graph,crt;

var gd,gm,a:integer;

c:char;

Label 0,1,2;

Begin

initgraph(gd,gm,'c:\bp\bgi');

Setcolor(12);

outtextxy(1,1,'Press Space key to change color of the fields');

outtextxy(1,10,'Press Esc to exit');

0:

c:=readkey;

if c = chr(27) then halt;

IF (c = ' ') AND (a = 1) THEN GOTO 2;

IF (c = ' ') AND (a = 0) THEN GOTO 1;

GOTO 0;

1:

Setcolor(11);

LINE (320, 0,320, 480);

Setfillstyle(1,15);

Floodfill(1, 1, 11);

Setfillstyle(1,8);

Floodfill(639, 1, 11);

Setcolor(12);

outtextxy(1,1,'Press Space key to change color of the fields');

outtextxy(1,10,'Press Esc to exit');

a:= 1;

GOTO 0;

2:

Setcolor(11);

LINE (320, 0,320, 480);

Setfillstyle(1,8);

Floodfill(1, 1, 11);

Setfillstyle(1,15);

Floodfill(639, 1, 11);

Setcolor(12);

outtextxy(1,1,'Press Space key to change color of the fields');

outtextxy(1,10,'Press Esc to exit');

a:= 0;

GOTO 0;

End.

{44. Изобразить термометр}

Uses graph,crt;

var gd,gm,y,x:integer;

pressedkey:char;

Label 0,1,2;

Begin

initgraph(gd,gm,'c:\bp\bgi');

Ellipse (320, 240, 360, 0, 28,200);

y:= 440;

outtext('Press up arrow key for moving up/down arrow key for moving down');

outtextxy(1,10,'Press Esc to exit');

0:

pressedkey:=readkey;

if pressedkey=chr(27) then halt;

if ord(pressedkey)=72 then goto 1;

if ord(pressedkey)=80 then goto 2;

Goto 0;

1:

x:= 320;

y:= y - 2;

IF y < 45 THEN y:= 47;

Putpixel (x, y, 13);

Goto 0;

2:

Putpixel (x, y, 0);

x:= 320;

y:= y + 2;

IF y > 440 THEN y:= 442;

Putpixel(x, y, 0);

Goto 0;

Repeat;

Until keypressed;

Closegraph;

End.

{45. Построение изображение заказанного четырехугольника}

Uses graph,crt;

var gd,gm,choice:integer;

Label 1,2,3,4;

Begin

writeln ('1-параллеограмм 2-прямоугольник 3-ромб 4-квадрат');

Readln(choice);

initgraph(gd,gm,'c:\bp\bgi');

IF choice = 1 THEN GOTO 1;

IF choice = 2 THEN GOTO 2;

IF choice = 3 THEN GOTO 3;

IF choice = 4 THEN GOTO 4;

1:

Clearviewport;

LINE (320, 240,400, 240);

LINE (350, 290,430, 290);

LINE (320, 240,350, 290);

LINE (400, 240,430, 290);

Repeat;

Until keypressed;

Halt;

2:

Clearviewport;

Rectangle(320, 240,400, 290);

Repeat;

Until keypressed;

Halt;

3:

Clearviewport;

LINE (320, 240,270, 290);

LINE (320, 240,370, 290);

LINE (320, 340,370, 290);

LINE (320, 340,270, 290);

Repeat;

Until keypressed;

Halt;

4:

Clearviewport;

Rectangle(320, 240,420, 340);

Repeat;

Until keypressed;

Halt;

Closegraph;

End.

{46. Построение многогранников}

Uses graph,crt;

var gd,gm,choice:integer;

Label 1,2,3;

Begin

writeln('1-тетраэдр 2-куб 3-четырехугольная пирамида');

Readln(choice);

initgraph(gd,gm,'c:\bp\bgi');

IF choice = 1 THEN GOTO 1;

IF choice = 2 THEN GOTO 2;

IF choice = 3 THEN GOTO 3;

1:

LINE (150, 100,67, 100);

LINE (67, 100,102, 68);

LINE (102, 68,150, 100);

LINE (150, 100,140, 50);

LINE (67, 100,140, 50);

LINE (102, 68,140, 50);

Repeat;

Until keypressed;

Halt;

2:

Rectangle (320, 240,220, 340);

Rectangle (300, 200,200, 300);

LINE (320, 240,300, 200);

LINE (220, 240,200, 200);

LINE (320, 340,300, 300);

LINE (220, 340,200, 300);

Repeat;

Until keypressed;

Halt;

3:

LINE (320, 240,400, 240);

LINE (350, 290,430, 290);

LINE (320, 240,350, 290);

LINE (400, 240,430, 290);

LINE (430, 290,350, 180);

LINE (350, 290,350, 180);

LINE (320, 240,350, 180);

LINE (400, 240,350, 180);

Repeat;

Until keypressed;

Halt;

Closegraph;

End.

{47. Управление точкой на экране}

Uses graph,crt;

var gd,gm,x,y,x1,y1:integer;

c:char;

Label 0,1,2,3,4;

Begin

initgraph(gd,gm,'c:\bp\bgi');

y:= 50;

x:= 50;

outtext('Press up, down, left ,right aroow keys for moving the point');

outtextxy(10,10,'Press Esc to Exit');

0:

c:=readkey;

if c=chr(27) then halt;

if ord(c)=72 then goto 1;

if ord(c)=80 then goto 2;

if ord(c)=75 then goto 3;

if ord(c)=77 then goto 4;

GOTO 0;

1:

y := y - 1;

IF y < 1 THEN y:= 2;

Putpixel(x1, y1, 0);

Putpixel(x, y, 15);

x1 := x; y1 := y;

Goto 0;

2:

Putpixel(x, y, 0);

y := y + 1;

IF y > 479 THEN y := 478;

Putpixel (x1, y1, 0);

Putpixel (x, y, 15);

x1 := x; y1 := y;

Goto 0;

3:

x := x - 1;

IF x < 1 THEN x := 2;

Putpixel(x1, y1, 0);

Putpixel (x, y, 15);

x1 := x; y1 := y;

Goto 0;

4:

x := x + 1;

IF x > 639 THEN x := 638;

Putpixel (x1, y1, 0);

Putpixel (x, y, 15);

x1:= x; y1 := y;

Goto 0;

End.

{48. }

Uses graph,crt;

var gd,gm:integer;

c:char;

Label 0,1,2,3,4;

Begin

initgraph(gd,gm,'c:\bp\bgi');

0: outtext('прямоугольник(с) треугольник(к) два прямоугольника(о) - заглавные буквы');

outtextxy(1,10,'Press Esc to Exit');

1:c:=readkey;

if c=chr(27) then halt;

IF c = 'С' THEN GOTO 2;

IF c = 'К' THEN GOTO 3;

IF c = 'О' THEN GOTO 4;

GOTO 1;

2:

Rectangle(320, 240,420, 320);

GOTO 0;

3:

LINE (320, 240,370, 180);

LINE (370, 180,420, 240);

LINE (320, 240,420, 240);

GOTO 0;

4:

Rectangle (340, 250,370, 310);

Rectangle (385, 260,415, 290);

GOTO 0;

Closegraph;

End.

{49. Игра "Попади в центр мишени}

Uses graph,crt;

var gd,gm,x,y:integer;

C:CHAR;

Label 1;

Begin

initgraph(gd,gm,'c:\bp\bgi');

Setfillstyle(2,1);

Bar(220, 140,420, 340);

Setfillstyle(4,9);

Bar(270, 190,370, 290);

outtextxy (30,0,'введите координаты(x и y через ENTER)');

outtextxy(30,10,'Press Esc to Exit');

1:c:=readkey;

if c=chr(27) then halt;

Gotoxy(1,1);

Readln(x);

Gotoxy(1,2);

Readln(Y);

Putpixel(x, Y,12);

IF (x < 220) OR (x > 420) OR (Y < 140) OR (Y > 340) THEN

Begin

outtextxy(20,400, '0 очков');

GOTO 1;

End;

IF (x >= 220) AND (x < 420) AND (Y >= 140) AND (Y < 190) OR (x >= 220) AND (x < 420) AND (Y >= 290) AND (Y < 340) THEN

Begin

outtextxy(20,400, '5 очков');

Goto 1;

End;

IF (x >= 270) AND (x < 370) AND (Y >= 190) AND (Y < 290) THEN

outtextxy(20,400, '10 очков');

Begin

GOTO 1;

if c=chr(27) then halt;

End;

End.

{50. Закраска кругов разными цветами}

Uses graph,crt;

var gd,gm:integer;

c:char;

Label 0,2,3,4;

Begin

initgraph(gd,gm,'c:\bp\bgi');

Setcolor(15);

CIRCLE (320, 220,10);

CIRCLE (320, 240,10);

CIRCLE (320, 260,10);

outtextxy(10,10,'красный(к) желтый(ж) зеленый(з) - маленькие буквы');

outtextxy(10,20,'Выход - Esc');

0:

c:=readkey;

if c=chr(27) then halt;

IF c = 'к' THEN GOTO 2;

IF c = 'ж' THEN GOTO 3;

IF c = 'з' THEN GOTO 4;

GOTO 0;

2:

Setfillstyle(1,12);

Floodfill(320, 220, 15);

Setfillstyle(1,0);

Floodfill (320, 240, 15);

Floodfill (320, 260, 15);

GOTO 0;

3:

Setfillstyle(1,14);

Floodfill (320, 240,15);

Setfillstyle(1,0);

Floodfill (320, 260,15);

Floodfill (320, 220,15);

GOTO 0;

4:

Setfillstyle(1,10);

Floodfill(320, 260, 15);

Setfillstyle(1,0);

Floodfill (320, 220, 15);

Floodfill (320, 240, 15);

GOTO 0;

End.

{51. Заполнить массив случайными числами из отрезка (А,В)}

Uses crt;

var a,b,i:integer;

aa : array [1..10] of integer;

Begin

Clrscr;

Наши рекомендации