Вычисление площадей геометрических фигур

Задача: 

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

Алгоритм решения задачи: 

Площадь прямоугольника: area = a * b
Площадь треугольника: area = sqrt(s * (s – a) * (s – b) * (s – c)), где s = (a + b + c) / 2
Площадь круга: area = pi * sqr(d) / 4

Пользователь осуществляет выбор фигуры, площадь которой он хочет получить, путем ввода цифр 1, 2 или 3.
Для выбора ветви вычисления используется конструкция if-else, которая включает вторую конструкцию if-else, а та, в свою очередь, - третью:

if 1 then
    вычисление площади прямоугольника
else 
    if 2 then
        вычисление площади треугольника
    else
        if 3 then
            вычисление площади круга
        else
            ошибка
Программа на языке Паскаль: 

const
    pi = 3.14;
 
var
    figure: byte;
    area, s, a, b, c, d: real;
    ok: boolean;
 
begin
   ok := true;
   write('Фигура  (1 - прямоугольник, 2 - треугольник',
   ', 3 - круг): ');
   readln(figure);
 
   if figure = 1 then begin
      write('Длины сторон: ');
      readln(a, b);
      area := a * b
   end
   else
      if figure = 2 then begin
         write('Длины сторон: ');
         readln(a, b, c);
         s := 0.5 * (a + b + c);
         area := sqrt(s * (s - a) * (s - b) * (s - c))
      end
      else
         if figure = 3 then begin
            write('Диаметр: ');
            readln(d);
            area := pi * sqr(d) / 4
         end
         else
            ok := false;
 
   if ok then
      writeln('Площадь: ', area:8:2)
   else
      writeln('Ошибка ввода');
 
readln
end.

Примечания: 

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

Комментарии

Моя версия

var
  a,b,c,d,s,area: real;
  num: integer;
begin
writeln('Плошадь какой фигуры найти? (1- Площадь прямоугольника, 2- Площадь треугольника, 3- Площадь круга)');
readln(num);
if num = 1 then
  begin
    write('a = ');
    readln(a);
    write('b = ');
    read(b);
    area:= a * b;
    writeln('Площадь прямоугольника = ', area);
  end
else
  if num = 2 then
    begin
      write('a = ');
      readln(b);
      write('b = ');
      readln(a);
      write('c = ');
      readln(c);
      s:= (a + b + c) / 2;
      area:= sqrt(s * (s - a) * (s - b) * (s - c));
      writeln('Площадь треугольника = ', area);
    end
  else
    begin
      write('d = ');
      read(d);
      area:= pi * sqr(d) / 4;
      writeln('Площадь круга = ', area);
    end;
end.

Зачем использовать if, если

Зачем использовать if, если есть case?

Добрый день. Объясните,

Добрый день.
Объясните, пожалуйста, что за цифры стоят после названия переменной и гле найти, как их ставить?
writeln('Площадь: ', area:8:2)
Спасибо.

Если не написать эти числа,

Если не написать эти числа, то на экран выведется 14-тизначное число. Цифрами вы определяете сколько цифр будет до запятой, а сколько после.

Это значит, что, для того,

Это значит, что, для того, чтобы записать значение переменной area, программа выделит 8 символов ("мест"). Цифра 2 означает, что значение переменной будет округлено до двух знаков после запятой.

Цифры после переменной

Первая цифра означает количество знаков, отведенных для вывода результата, вторая цифра означает количество знаков после запятой. Пожалуйста.

площадь фигур

это не сложная задача