Помощь - Поиск - Пользователи - Календарь
Полная версия: вычисление площади ромба
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
niga
Написал программу по идее всё правильно, но ответ при тестах выдаёт неверный.
Пример, если взять сторону а=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
Во-первых, пользуйся тегами [CОDE] [/CОDE], с ними твоя программа будет гораздо лучше читаться, а во-вторых, запомни раз и навсегда: тригонометрические функции в Паскале вычисляются для радиан, а не для градусов... Чему будет равен синус 30 радиан? smile.gif

Переводим градусы в радианы:
s:=a*a*sin(b * Pi / 180);
niga
Огромное человеческое спасибо, я даже и не знал, что тригонометрические функции в паскале вычисляются для радиан.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.