Форум программистов, компьютерный форум CyberForum.ru Форум программистов | Компьютерный форум | Форум web-программистов | Форум по электронике и бытовой технике | Форум о софте | Научный форум | Карьера и бизнес
CyberForum.ru - форум программистов и сисадминов > >
Восстановить пароль Регистрация

Ответ Создать новую тему
 
Бандит86
Новичок
0 / 0 / 0
Регистрация: 17.04.2012
Сообщений: 8
17.04.2012, 18:23     Нарисовать трапецию. Вокруг этой трапеции описать окружность
  #1
Ребята помогите пожалуйста написать код программы в паскале...
нужно нарисовать трапецию, длины большего и меньшего основания а также угол при основании запросить у пользователя . Вокруг этой трапеции описать окружность..
AdAgent
Объявления
17.04.2012, 18:23
Puporev
Модератор
42185 / 30699 / 1787
Регистрация: 18.05.2008
Сообщений: 65,342
18.04.2012, 14:33
  #2
Код Pascal
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
uses crt,graph;
type point=record
           x,y:longint;
           end;
procedure Okr(a,b,c:Point;var o:Point;r:integer);
var ab,ac:Point;
    a1,b1,a2,b2,c1,c2:real;
begin
{середины сторон}
ab.x:=(a.x+b.x) div 2;
ab.y:=(a.y+b.y) div 2;
ac.x:=(a.x+c.x) div 2;
ac.y:=(a.y+c.y) div 2;
{координаты центра через уравнения прямых}
a1:=b.x-a.x;
b1:=b.y-a.y;
c1:=ab.x*(b.x-a.x)+ab.y*(b.y-a.y);
a2:=c.x-a.x;
b2:=c.y-a.y;
c2:=ac.x*(c.x-a.x)+ac.y*(c.y-a.y);
o.x:=round((c1*b2-c2*b1)/(a1*b2-a2*b1));
o.y:=round((a1*c2-a2*c1)/(a1*b2-a2*b1));
r:=round(sqrt(sqr(a.x-o.x)+sqr(a.y-o.y)));{радиус}
{рисуем окружность}
setcolor(12);
circle(o.x,o.y,r);
end;
var d,m,a,b,u:integer;{длины оснований и угол}
    t1,t2,t3,t4,o:point;
    xc,yc,r:integer;
begin
clrscr;
repeat
write('Bolshee osnovanie ot 100 do 200 a=');
readln(a);
until a in [100..200];
repeat
write('Menshee osnovanie ot 10 do ',a-20,' b=');
readln(b);
until b in [10..a-20];
repeat
write('Udol pri osnovanii ot 10 do 80 gradusov u=');
readln(u);
until u in [10..80];
initgraph(d,m,'');
xc:=getmaxX div 2;
yc:=getmaxY div 2;
{трапеция}
t1.x:=xc-a div 2;t1.y:=yc;
t4.x:=xc+a div 2;t4.y:=yc;
t2.x:=xc-b div 2;t2.y:=yc-round((a-b)*sin(u*pi/180)/(2*cos(u*pi/180)));
t3.x:=xc+b div 2;t3.y:=t2.y;
line(t1.x,t1.y,t2.x,t2.y);
line(t2.x,t2.y,t3.x,t3.y);
line(t3.x,t3.y,t4.x,t4.y);
line(t1.x,t1.y,t4.x,t4.y);
Okr(t1,t2,t3,o,r);{окружность}
readln
end.
Бандит86
Новичок
0 / 0 / 0
Регистрация: 17.04.2012
Сообщений: 8
18.04.2012, 15:39  [ТС]
  #3
СПАСИБО ВАМ ОГРОМНОЕ)) а вы не можете еще расписать пошагово действия что зачем следует, объяснить?)
Puporev
Модератор
42185 / 30699 / 1787
Регистрация: 18.05.2008
Сообщений: 65,342
18.04.2012, 15:44
  #4
Основное я написал, а описывать каждую строку, это увольте.

Добавлено через 43 секунды
Да и смысла нет, если Вы не знаете геометрию и почитать не хотите.
Бандит86
Новичок
0 / 0 / 0
Регистрация: 17.04.2012
Сообщений: 8
18.04.2012, 16:45  [ТС]
  #5
Ну так то да)) ну все равно Спасибо Вам)
Бандит86
Новичок
0 / 0 / 0
Регистрация: 17.04.2012
Сообщений: 8
24.04.2012, 15:51  [ТС]
  #6
а не могли бы вы пояснить что написано с 49 по 57 строку..а то все догнать не могу..и что значит запись например в 15 строке-одни символы черным а одни синим..
Puporev
Модератор
42185 / 30699 / 1787
Регистрация: 18.05.2008
Сообщений: 65,342
24.04.2012, 16:04
  #7
Цитата Сообщение от Бандит86 Посмотреть сообщение
-одни символы черным а одни синим..
Это форматирование кода тегами PASCAL, это не я...

Добавлено через 10 минут
Цитата Сообщение от Бандит86 Посмотреть сообщение
что написано с 49 по 57 строку.
Так просто вычисляются координаты четырех вершин трапеции и соединяются линиями, пос этого рисуется окружность с вычисленным центром и радиусом, сплошная геометрия, а я не учитель этого предмета.
Бандит86
Новичок
0 / 0 / 0
Регистрация: 17.04.2012
Сообщений: 8
24.04.2012, 16:05  [ТС]
  #8
а что значит вот это : a1:=b.x-a.x;...b точка x-это типо координата точки б по оси х?
Puporev
Модератор
42185 / 30699 / 1787
Регистрация: 18.05.2008
Сообщений: 65,342
24.04.2012, 16:08
  #9
Код Pascal
1
2
3
a1:=b.x-a.x;
b1:=b.y-a.y;
c1:=ab.x*(b.x-a.x)+ab.y*(b.y-a.y);
Это такие формулы вычисления коэффициентов прямой вида ax+by+c=0 проведенной через 2 точки с координатами a.x,a,y,b.x,b.y
Бандит86
Новичок
0 / 0 / 0
Регистрация: 17.04.2012
Сообщений: 8
24.04.2012, 16:34  [ТС]
  #10
а вот в 21 и 22 строке что там вычисляется?

Добавлено через 5 минут
а все понял)))
Бандит86
Новичок
0 / 0 / 0
Регистрация: 17.04.2012
Сообщений: 8
02.05.2012, 15:19  [ТС]     Нарисовать трапецию. Вокруг этой трапеции описать окружность
  #11
а в виде блок схем не сможете помочь?
Yandex
Объявления
02.05.2012, 15:19
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать новую тему

Похожие темы
Тема Раздел Автор Дата
Pascal ABC Нарисовать трапецию и квадратик 50 на 50
Нарисуйте трапецию и квадратик 50на50, который будет бегать по той трапеции.
Pascal ABC Dron 07.06.2014 13:09
Pascal ABC Нарисовать трапецию, которая будет двигаться от стенки до стенки, длины сторон трапеции задаются пользователем
Нарисовать трапецию, которая будет двигаться от стенки до стенки, длины сторон трапеции задаются пользователем.
Pascal ABC BLRDron 06.06.2014 17:56
Turbo Pascal Треугольник и окружность. Нарисовать и определить длину радиуса окружности,чтобы треугольник был вписан в окружность
Даны треугольник и окружность , координаты центра окружности и углов треугольника,задаются пользователем. Нарисовать и определить, какой длины должен быть радиус окружности,чтобы треугольник был...
Turbo Pascal kapelka_leta 23.04.2014 09:37
C++ Описать окружность вокруг объекта
Описать окружность вокруг объекта (буква Р), используя простой алгоритм построения окружностей.Закруглить заданный угол объекта, используя программу построения дуг с начальным и конечным...
С++ для начинающих ElegantLady 31.05.2013 21:45
PascalABC.NET Какая окружность (вписанная в треугольник, описанная вокруг него или не та и не другая)
Помогите написать программу. Ни одной мысли ...хотя бы как начать. Дан равнобедренный треугольник и окружность некоторого радиуса. Нужно узнать какая это окружность, вписанная в треугольник,...
PascalABC.NET MMSblack 27.05.2013 20:55
C++ Нарисовать трапецию в движении
В интернете ничего не могу найти, не примеров, не объяснений. Помогите пожалуйста. Буду очень благодарен.
С++ для начинающих johncoffey 11.12.2012 00:40
Pascal ABC Нарисовать узор из отрезка прямой линий, вращающегося вокруг своего "центра" (N-раз) за один оборот вокруг центра узора.
Нарисовать узор из отрезка прямой линий, вращающегося вокруг своего "центра" (N-раз) за один оборот вокруг центра узора.
Pascal ABC saya 10.12.2011 22:33
Опции темы

Текущее время: 11:03. Часовой пояс GMT +4.

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.7 PL3
Copyright ©2000 - 2014, vBulletin Solutions, Inc.