Существует ли треугольник и, если да, определить его характеристики - Free Pascal
Формулировка задачи:
Дано массив чисел.
Требуется в процедуре отобрать все возможные варианты "тройняшек".
Далее определить существует ли данный треугольник, если да, то определить его периметр, площадь и тип. Каждое действие выполнить в отдельной функции.
Помогите дописать программу. Спасибо
Листинг программы
- procedure t(...:real);
- for i:=1 to N-2 do
- for j:=i+1 to N-1 do
- for k:=j+1 to N do
- end;
Листинг программы
- function max(a, b, c, max: real):real;
- begin
- if a >= b then
- max:=a;
- else
- max:=b;
- if c > max then
- max:=c;
- end;
- function p(a, b, c: real):real;
- begin
- p:=a+b+c;
- end;
- function s(a, b, c, s: real):real;
- begin
- s:=sqrt(p(a,b,c)/2*(p(a,b,c)/2-a)*(p(a,b,c)/2-b)*(p(a,b,c)/2-c)); {находим площать через функцию, которая находит периметр}
- function isn(a, b, c: real):boolean; {если true - треугольник существует}
- begin
- isn:=(a < b+c) and (b < a+c) and (c < a+b);
- end;
- function type(a, b, c, p: real):real;
- begin
- if a*a+b*b = c*c then writeln('Прямоугльный')
- else if a*a+b*b > c*c then writeln('Остроугольный')
- else writeln('Тупоугольный')
- end;
Решение задачи: «Существует ли треугольник и, если да, определить его характеристики»
textual
Листинг программы
- uses crt;
- const n=8;
- arr:array[1..8] of integer=(5,7,9,11,13,15,17,19);
- function myisn(a,b,c:integer):boolean;
- begin
- myisn:=(a < b+c) and (b < a+c) and (c < a+b);
- end;
- function myp(a,b,c:integer):integer;
- begin
- myp:=a+b+c;
- end;
- function mys(a,b,c:integer):real;
- begin
- mys:=sqrt(myp(a,b,c)/2*(myp(a,b,c)/2-a)*(myp(a,b,c)/2-b)*(myp(a,b,c)/2-c));
- end;
- function mytype(a,b,c:integer):string;
- var mx,sr,mn:integer;
- begin
- if a>b then mx:=a else mx:=b;
- if c>mx then mx:=c;
- if a<b then mn:=a else mn:=b;
- if c<mn then mn:=c;
- sr:=a+b+c-mn-mx;
- if mn*mn+sr*sr = mx*mx then mytype:='Прямоугольный'
- else if a*a+b*b > c*c then mytype:='Остроугольный'
- else mytype:='Тупоугольный';
- end;
- var i,j,k,q:byte;
- begin
- clrscr;
- writeln('Длины отезков');
- for i:=1 to n do
- write(arr[i]:3);
- writeln;
- q:=0;
- for i:=1 to n-2 do
- for j:=i+1 to n-1 do
- for k:=j+1 to n do
- if myisn(arr[i],arr[j],arr[k]) then
- begin
- q:=q+1;
- writeln('Треугольник со сторонами ',arr[i]:3,arr[j]:3,arr[k]:3,
- mytype(arr[i],arr[j],arr[k]):15,'P=',myp(arr[i],arr[j],arr[k]):3,' S=',mys(arr[i],arr[j],arr[k]):6:2);
- if q mod 20=0 then
- begin
- write('Press Enter');
- readln;
- end;
- end;
- readln;
- end.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д