Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ вычисление площади ромба

Автор: niga 25.09.2006 17:32

Написал программу по идее всё правильно, но ответ при тестах выдаёт неверный.
Пример, если взять сторону а=2, а острый угол b=30, то ответ s=-3.95 (площадь вообще отрицательная norespect.gif ), а должно получиться равная 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.

Автор: volvo 25.09.2006 17:44

Во-первых, пользуйся тегами [CОDE] [/CОDE], с ними твоя программа будет гораздо лучше читаться, а во-вторых, запомни раз и навсегда: тригонометрические функции в Паскале вычисляются для радиан, а не для градусов... Чему будет равен синус 30 радиан? smile.gif

Переводим градусы в радианы:

s:=a*a*sin(b * Pi / 180);

Автор: niga 25.09.2006 18:08

Огромное человеческое спасибо, я даже и не знал, что тригонометрические функции в паскале вычисляются для радиан.