Написал программу по идее всё правильно, но ответ при тестах выдаёт неверный.
Пример, если взять сторону а=2, а острый угол b=30, то ответ s=-3.95 (площадь вообще отрицательная ), а должно получиться равная 2.
program S_romb;
var
a,b,s: real;
begin
writeln('Vvedite znacheniya: A - storona romba, B - ostrui ygol');
readln(a,b);
if b<=90 then
begin
s:=a*a*sin(b); {Formula nahozhdeniya ploshadi romba cherez storony and ostrui ygol}
writeln('Plosad romba S=', s:5:2);
end
else
writeln('Neobhodimo vvesti ostrui ygol B');
end.
Во-первых, пользуйся тегами [CОDE] [/CОDE], с ними твоя программа будет гораздо лучше читаться, а во-вторых, запомни раз и навсегда: тригонометрические функции в Паскале вычисляются для радиан, а не для градусов... Чему будет равен синус 30 радиан?
Переводим градусы в радианы:
s:=a*a*sin(b * Pi / 180);
Огромное человеческое спасибо, я даже и не знал, что тригонометрические функции в паскале вычисляются для радиан.