Вычисление площади поверхности цилиндра

Задача

Допустим, организации часто требуется красить баки цилиндрической формы. При этом они красят только верхнюю часть и стенки с внешней стороны.

Организации требуется программа, которая бы определяла, сколько банок краски необходимо для покраски того или иного бака.

Решение

Программа должна запрашивать у пользователя следующую информацию:

  • диаметр бака;
  • высота бака;
  • расход краски (площадь поверхности, которую можно покрасить одной банкой краски).

В результате программа должна выдавать количество требуемых банок. При получении дробного числа округление должно всегда происходить в большую сторону.

Площадь крыши бака (круга) вычисляется по формуле p * d2 /4 (где p – число пи, d - диаметр).
Площадь боковой поверхности цилиндра: p * d * h (где h – высота).

const pi = 3.14;
 
var
    d, h, b: real;
    top, wall, q: real;
    q_int: integer;
 
begin
    write('Диаметр: ');
    readln(d);
    write('Высота: ');
    readln(h);
    write('Окрашиваемая площадь одной банкой: ');
    readln(b);
 
    top := pi * sqr(d) / 4.0;
    wall := pi * d * h;
    q := (top + wall) / b;
    q_int := trunc(q) + 1;
 
    write('Количество банок: ', q_int);
 
readln
end.

Стандартная функция trunc выполняет "отбрасывание" дробной части и возвращает целое число.

Тема

Линейные алгоритмы

Уровень

Комбинированные задачи

Комментарии

Если у вас в программе q получится в итоге целым числом, то тогда количество банок будет равно q, а у вас в программе оно бы равнялось q+1, что является ошибкой.