Другие языки программирования и технологии

Срочно! Как это написать???

Найти площадь и периметр треугольника по двум сторонам и углу между ними. На Паскале!
Не через синусы, косинусы, а через формулу площади треугольника по двум сторонам и углу между ними
у меня выходит так:

ерунда короче
Что там проходить? sin(x) и cos(x) - элементарно. Только путаница с градусами и радианами. Никогда не любил задачи с ними.
Так вроде решается:
 var  
a, b, y: real;
begin
Write('Сторона A = ');
ReadLn(a);
Write('Сторона B = ');
ReadLn(b);
Write('Угол = ');
ReadLn(y);
y := y * Pi / 180;
WriteLn('Периметр:', Sqrt(Sqr(a) + Sqr(b) - 2 * a * b * Cos(y)) + a + b);
WriteLn('Площадь: ', 1 / 2 * a * b * Sin(y));
end.
Вова Цой
Вова Цой
98 157
Лучший ответ
Формула площади треугольника по двум сторонам и углу - это и есть синус в чистом виде. А длина третьей стороны - косинус. Не веришь - загляни в школьный учебник математики.
 var a, b, alpha, s, p: real;
begin
read(a, b, alpha);
s := a * b * sin(alpha) / 2.0;
p := a + b + sqrt(sqr(a) + sqr(b) - 2 * a * b * cos(alpha));
write(s, ' ', p)
end.
Николай Пуликов можно ли расписать это по-другому? не используя синус
Николай Пуликов для себя решаю, просто попалось, как для 8 класса, невнимательно задание читаю, показалось, что по формуле Герона можно решить
Угол удобнее задавать в градусах, поэтому лучше так:
 uses crt; 
var a, b, gamma, p, s: real;
begin
clrscr();
write('a b γαμμα: ');
readln(a, b, gamma);
gamma := gamma * pi / 180;
s := 0.5 * a * b * sin(gamma);
p := a+b+sqrt(a*a+b*b-2*a*b*cos(gamma));
writeln('Периметр:', p: 10: 4);
writeln('Площадь:', s: 11: 4)
end.
Можно обойтись и без использования встроенных функций sin и cos, но так разве лучше будет? Ничем не лучше будет со своими синусом и косинусом, а не со встроенными...
Артур Драган как же меня это напрягает то что девушка это знает а я нет.
> Не через синусы, косинусы
А для чего интересно в задаче дается угол по твоему?
Площадь треугольника равна половине произведения двух его сторон на синус угла между ними.
Иван Иоаниди
Иван Иоаниди
59 627
Николай Пуликов S = √ p (p - a) (p - b) (p - c). Формула площади треугольника по двум сторонам и углу между ними.
Николай Пуликов А вот в неполной форме у меня x получился как целое число и было уже три условия, включая if x=0.

 var x: integer;  
begin
read(x);
if x>0 then
x:=sqr(x);
if x
Николай Пуликов Либо же у меня вообще ничего правильного нет, либо же я не могу найти свою ошибку...
как может быть формула площади через 2 стороны и угол без тригонометрии?