Программа в Pascal: Найти периметр треугольника

Обложка к статье "Программа в Pascal: Найти периметр треугольника" Задачи

Сегодня разберем написание программы для нахождение периметра треугольника. В статье рассмотрим два примера программ. Первая — для нахождения периметра треугольника по трём его сторонам, вторая — для нахождения периметра прямоугольного треугольника по его катетам. Также в этой статье мы затронем работу с циклами, для реализации цикличной проверки ввода пользователя на положительное число.

Программа для нахождение периметра треугольника по трем сторонам

Начнём с кода для первой программы. Наша программа должна поочередно принять от пользователя три числа с длинами сторон треугольника, после чего вывести периметр треугольника. Давайте для начала посмотрим на код программы, а после разберём как он работает.

Код программы

program TrianglePerimeter;

var
    a, b, c, perimeter: real;

begin
    writeln('Введите длину первой стороны треугольника: ');
    readln(a);
    
    writeln('Введите длину второй стороны треугольника: ');
    readln(b);

    writeln('Введите длину третьей стороны треугольника: ');
    readln(c);

    perimeter := a + b + c;

    writeln('Периметр треугольника равен ', perimeter:0:2);
end.

Объяснение кода

  1. program TrianglePerimeter; — Объявление программы с именем TrianglePerimeter.
  2. var a, b, c, perimeter: real; — Объявление переменных a, b, c для длин сторон треугольника и переменной perimeter для хранения периметра треугольника. Все переменные имеют тип real, что позволяет хранить вещественные числа.
  3. begin — Начало основной части программы.
  4. writeln('Введите длину первой стороны треугольника: '); — Вывод на экран сообщения, запрашивающего у пользователя ввод длины первой стороны треугольника.
  5. readln(a); — Считывание введенного пользователем значения длины первой стороны треугольника и сохранение его в переменную a.
  6. Аналогичные действия выполняются для второй и третьей стороны треугольника.
  7. perimeter := a + b + c; — Вычисление периметра треугольника по формуле и сохранение результата в переменную perimeter.
  8. writeln('Периметр треугольника равен ', perimeter:0:2); — Вывод на экран значения периметра треугольника с точностью до двух знаков после запятой.

Учет ввода нуля и отрицательных чисел

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

program TrianglePerimeter;

var
    a, b, c, perimeter: real;

begin
    repeat
        writeln('Введите длину первой стороны треугольника (должна быть положительным числом и не нулем): ');
        readln(a);
    until a > 0;
    
    repeat
        writeln('Введите длину второй стороны треугольника (должна быть положительным числом и не нулем): ');
        readln(b);
    until b > 0;

    repeat
        writeln('Введите длину третьей стороны треугольника (должна быть положительным числом и не нулем): ');
        readln(c);
    until c > 0;

    perimeter := a + b + c;

    writeln('Периметр треугольника равен ', perimeter:0:2);
end.

В этой версии программы мы использовали три различных цикла repeat...until, чтобы запросить у пользователя ввод длин каждой стороны треугольника до тех пор, пока он не введет положительное число (больше нуля). Только после этого программа продолжит выполнение и вычислит периметр треугольника.

Разберём работу цикла подробнее:

  1. repeat: Это ключевое слово начала цикла repeat...until. Это указывает, что следующий блок кода будет выполняться до тех пор, пока условие until не будет истинным.
  2. writeln('Введите длину первой стороны треугольника (должна быть положительным числом и не нулем): ');: Это команда вывода на экран приглашения к вводу длины первой стороны треугольника.
  3. readln(a);: Эта команда считывает значение, введенное пользователем, и сохраняет его в переменную a.
  4. until a > 0;: Это условие выхода из цикла repeat...until. Цикл будет продолжаться до тех пор, пока значение переменной a не будет больше нуля.

Нахождение периметра прямоугольного треугольника по катетам

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

Для реализации этой программы мы можем использовать следующий алгоритм:

  1. Запросить у пользователя значения катетов и .
  2. Найти гипотенузу с помощью теоремы Пифагора.
  3. Вычислить периметр, сложив длины всех сторон.

Код программы

program RectangleTrianglePerimeter;

var
    a, b, c, perimeter: real;

begin
    writeln('Введите длину первого катета треугольника: ');
    readln(a);

    writeln('Введите длину второго катета треугольника: ');
    readln(b);

    c := sqrt(a * a + b * b); // Находим гипотенузу по теореме Пифагора
    perimeter := a + b + c; // Находим периметр, сложив длины всех сторон

    writeln('Периметр прямоугольного треугольника равен ', perimeter:0:2);
end.

Объяснение кода

  1. program RectangleTrianglePerimeter; — Объявляет начало программы с именем RectangleTrianglePerimeter.
  2. var a, b, c, perimeter: real; — Объявляет переменные a, b, c для хранения длин катетов и гипотенузы треугольника, а также perimeter для хранения значения периметра. Все переменные имеют тип real, что позволяет работать с вещественными числами.
  3. begin — Начало основной части программы.
  4. writeln('Введите длину первого катета треугольника: '); — Выводит на экран сообщение, запрашивающее ввод пользователя для длины первого катета.
  5. readln(a); — Считывает введенное пользователем значение и сохраняет его в переменную a.
  6. writeln('Введите длину второго катета треугольника: '); — Выводит на экран сообщение, запрашивающее ввод пользователя для длины второго катета.
  7. readln(b); — Считывает введенное пользователем значение и сохраняет его в переменную b.
  8. c := sqrt(a * a + b * b); — Вычисляет длину гипотенузы треугольника по теореме Пифагора, используя введенные пользователем длины катетов. Функция sqrt используется для вычисления квадратного корня.
  9. perimeter := a + b + c; — Вычисляет периметр треугольника, сложив длины всех его сторон.
  10. writeln('Периметр прямоугольного треугольника равен ', perimeter:0:2); — Выводит на экран значение периметра треугольника с точностью до двух знаков после запятой.
  11. end. — Завершает программу.

Учет ввода нуля и отрицательных чисел

Наша программа сейчас может принимать ноль и отрицательные числа в качестве длины катетов прямоугольного треугольника. Давайте доработаем код и добавим циклическую проверку:

program RectangleTrianglePerimeter;

var
    a, b, c, perimeter: real;

begin
    repeat
        writeln('Введите длину первого катета треугольника (должна быть положительным числом и не нулем): ');
        readln(a);
    until a > 0;

    repeat
        writeln('Введите длину второго катета треугольника (должна быть положительным числом и не нулем): ');
        readln(b);
    until b > 0;

    c := sqrt(a * a + b * b);
    perimeter := a + b + c;

    writeln('Периметр прямоугольного треугольника равен ', perimeter:0:2);
end.

В данном случае цикл repeat-until будет повторяться, пока вводимые пользователем значения не будут удовлетворять условию a > 0 и b > 0. Таким образом, пользователь не сможет ввести нулевые или отрицательные значения для длин катетов.

Оцените статью
Обучение Pascal
Добавить комментарий