Найдите стороны треугольника - Pascal ABC

Узнай цену своей работы

Формулировка задачи:

Периметр треугольника ABC равен 15 см.Сторона ВС больше стороны АВ на 2 см, а сторона AB меньше стороны АС на 1 см. Найдите стороны треугольника. Нужна программа на ПАСКАЛЬ с рисунком

Решение задачи: «Найдите стороны треугольника»

textual
Листинг программы
uses graphABC;
var x0,y0,x1,y1,x2,y2,x3,y3:integer;
    a,b,c,p,h,x,l,m:real;
begin
p:=15;
//решаем
//a+b+c=p
//c=a-2
//b=a-1
//a+a-2+a-1=3a-3=p->a=(p+3)/3
a:=(p+3)/3;
b:=a-1;
c:=a-2;
//определим центр экрана
x0:=windowwidth div 2;
y0:=windowheight div 2;
p:=p/2;{полупериметр}
h:=2*sqrt(p*(p-a)*(p-b)*(p-c))/a;//длина высоты, опущенной на сторонону а
if a*a+c*c<b*b then
 begin
  x:=sqrt(c*c-h*h);//дополнение стороны а влево
  l:=a+x;//длина горизонтальной проекции треугольника
 end
else if a*a+b*b<c*c then
 begin
  x:=sqrt(b*b-h*h);{вправо}
  l:=a+x;
 end
else
 begin
  x:=sqrt(b*b-h*h);//часть нижней стороны а слева от основания высоты
  l:=a;
 end;
//определим масштаб изображения на экран
m:=(y0-40)/(h/2);//по вертикали
if (2*x0-60)/l<m then m:=(2*x0-60)/l;//если по горизонтаи меньше, то этот масштаб
if a*a+c*c<b*b then
 begin
  x3:=x0+round(l*m/2);
  x2:=x3-round(x*m);
  x1:=x2-round(a*m);
 end
else if a*a+b*b<c*c then
 begin
  x3:=x0-round(l*m/2);
  x1:=x3+round(x*m);
  x2:=x1+round(a*m);
 end
else
 begin
  x1:=x0-round(l*m/2);//левая вершина
  x2:=x0+round(l*m/2);//правая вешина
  x3:=x1+round(x*m);//верхняя вершина
 end;
y1:=y0+round(h*m/2);
y2:=y1;
y3:=y0-round(h*m/2);
setpencolor(clRed);//рисуем треугольник красным
line(x1,y1,x2,y2);
line(x2,y2,x3,y3);
line(x1,y1,x3,y3);
textout(x3-5,y3-15,'A');
textout(x1-10,y1,'C');
textout(x2+10,y2,'B');
textout((x1+x2)div 2,y1+10,'a='+floattostr(a));
textout((x1+x3)div 2-30,(y1+y3) div 2-10,'b='+floattostr(b));
textout((x3+x2)div 2+10,(y3+y2) div 2-10,'c='+floattostr(c));
end.

Объяснение кода листинга программы

  1. В начале кода подключается библиотека graphABC.
  2. Объявляются переменные: x0, y0, x1, y1, x2, y2, x3, y3: integer; a, b, c, p, h, x, l, m: real;
  3. Переменная p инициализируется значением 15.
  4. Далее решаем уравнение a + b + c = p.
  5. Переменные a, b и c инициализируются значениями, полученными из решения уравнения.
  6. Вычисляем значение переменной p, используя a.
  7. Если a a + c c < b * b, то вычисляем значения x, l и m.
  8. Если a a + b b < c * c, то вычисляем значения x, l и m.
  9. Если a a + b b < c * c, то вычисляем значения x, l и m.
  10. Вычисляем значения x1, x2 и x3.
  11. Вычисляем значения y1, y2 и y3.
  12. Рисуем треугольник, используя функции line и textout.
  13. Выводим текст с помощью функции textout.
  14. Завершаем программу.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.917 из 5
Похожие ответы