PROGRAM S_triangle;
VAR
a,b,c,p,r: REAL;
BEGIN
Writeln('Введите стороны треугольника');
Readln(a,b,c);
p:= (a + b + c) / 2;
r:= SQRT (p * (p - a) * (p - b) * (p - c));
WriteLn('Round(r) = ', Round(r));
Writeln('Площадь треугольника: = ',r);
END.
Другие языки программирования и технологии
Как округлить ответ до сотых?
100
Sergey Egorov
Гений...
Если значение переменной не надо округлять, а только вывести то врительн(r:2)
function Round(x: real; digits: integer): real;
Возвращает x, округленное до ближайшего вещественного с digits знаками после десятичной точки
Writeln('Площадь треугольника: = ',r:0:1);
Просто выведет с 6.0 но если надо 6, то Round предпочтительней
Возвращает x, округленное до ближайшего вещественного с digits знаками после десятичной точки
Writeln('Площадь треугольника: = ',r:0:1);
Просто выведет с 6.0 но если надо 6, то Round предпочтительней
Writeln('Площадь треугольника: = ',r:5:2);
Sergey Egorov
Спасибо)
RoundТо(r,2)
Самые распространенные – это функции round(), ceil(), floor() и trunc(). Если первая выполняет математически правильное округление, то есть к ближайшему целому, а 0,5 к более дальнему от 0, то ceil() округляет в сторону большего, а floor() - в сторону меньшего. Последняя функция trunc() скорее не округление, а простое отбрасывание дробной части. Продемонстрируем на примере:
void main( void )
{
double y;
y = floor( 2.8 );
printf( " floor %f\n", y );
y = ceil ( 2.1 );
printf( " ceil %f\n", y );
y = round ( 2.6 );
printf( " round %f\n", y );
y = trunc ( 2.9 );
printf( " trunc %f\n", y );
}
void main( void )
{
double y;
y = floor( 2.8 );
printf( " floor %f\n", y );
y = ceil ( 2.1 );
printf( " ceil %f\n", y );
y = round ( 2.6 );
printf( " round %f\n", y );
y = trunc ( 2.9 );
printf( " trunc %f\n", y );
}
Программа выведет значения 2, 3, 3 и 2.
Для случая, когда надо округлить число до определенного знака, в библиотеке <math.h> отдельной функции нет, потому обычно используют умножение числа и последующее после округления деление, то есть, например, для округления до сотых:
y=floor( 2.463*100 )/100;
1
y=floor( 2.463*100 )/100;
Получим значение 2.46.
void main( void )
{
double y;
y = floor( 2.8 );
printf( " floor %f\n", y );
y = ceil ( 2.1 );
printf( " ceil %f\n", y );
y = round ( 2.6 );
printf( " round %f\n", y );
y = trunc ( 2.9 );
printf( " trunc %f\n", y );
}
void main( void )
{
double y;
y = floor( 2.8 );
printf( " floor %f\n", y );
y = ceil ( 2.1 );
printf( " ceil %f\n", y );
y = round ( 2.6 );
printf( " round %f\n", y );
y = trunc ( 2.9 );
printf( " trunc %f\n", y );
}
Программа выведет значения 2, 3, 3 и 2.
Для случая, когда надо округлить число до определенного знака, в библиотеке <math.h> отдельной функции нет, потому обычно используют умножение числа и последующее после округления деление, то есть, например, для округления до сотых:
y=floor( 2.463*100 )/100;
1
y=floor( 2.463*100 )/100;
Получим значение 2.46.
Похожие вопросы
- Можно ли округлить числа после точки в Базе Данных MYSQL
- как сделать фотографию округленную, как будто внутри объектива сделано? ? ?наподобие этой
- как округлить число полученое при решеии выражения до десятых в VB
- PASCAL - Мне необходимо округлить число в большую сторону
- язык СИ. НУЖНО ОКРУГЛИТЬ ЧИСЛО В БОЛЬШУЮ СТОРОНУ БЕЗ ФУНКЦИИ FLOOR ЗАРАНЕЕ СПАСИБО
- помогите с правильным ответом пожалуйста ,..
- пишу на с++ программу-тест, выбор правильно ответа цифрой, но если я нажимаю символ, то программа сразу вылетает
- Как выбрать лучший ответ???
- Вопрос сисадиминам, web-программистам, ну или "типа хакерам" знающим ответ на мой вопрос...
- Вопрос о работе программы на языке СИ. Каким будет ответ?