Найдите стороны треугольника - 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.
Объяснение кода листинга программы
- В начале кода подключается библиотека graphABC.
- Объявляются переменные: x0, y0, x1, y1, x2, y2, x3, y3: integer; a, b, c, p, h, x, l, m: real;
- Переменная p инициализируется значением 15.
- Далее решаем уравнение a + b + c = p.
- Переменные a, b и c инициализируются значениями, полученными из решения уравнения.
- Вычисляем значение переменной p, используя a.
- Если a a + c c < b * b, то вычисляем значения x, l и m.
- Если a a + b b < c * c, то вычисляем значения x, l и m.
- Если a a + b b < c * c, то вычисляем значения x, l и m.
- Вычисляем значения x1, x2 и x3.
- Вычисляем значения y1, y2 и y3.
- Рисуем треугольник, используя функции line и textout.
- Выводим текст с помощью функции textout.
- Завершаем программу.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д