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

CBeginner
Практиковаться сейчас

Введение

В этом лабораторном практикуме вы научитесь вычислять площадь трапеции с помощью языка программирования C. Практикум охватывает шаги по вводу двух параллельных оснований и высоты трапеции, а затем вычислению её площади по формуле: Площадь = 0.5 _ (a+b) _ h. Программа запрашивает у пользователя необходимые значения, а затем вычисляет и отображает площадь трапеции.

Чтение двух параллельных сторон и высоты

В этом шаге вы узнаете, как считать две параллельные стороны и высоту трапеции для подготовки к вычислению её площади на языке C.

Сначала создадим новый файл C для вычисления площади трапеции:

cd ~/project
nano trapezoid_area.c

Теперь добавим следующий код для чтения параллельных сторон и высоты:

#include <stdio.h>

int main() {
    float side1, side2, height;

    // Запрос ввода первой параллельной стороны
    printf("Введите длину первой параллельной стороны: ");
    scanf("%f", &side1);

    // Запрос ввода второй параллельной стороны
    printf("Введите длину второй параллельной стороны: ");
    scanf("%f", &side2);

    // Запрос ввода высоты
    printf("Введите высоту трапеции: ");
    scanf("%f", &height);

    // Вывод введенных значений для проверки
    printf("Первая сторона: %.2f\n", side1);
    printf("Вторая сторона: %.2f\n", side2);
    printf("Высота: %.2f\n", height);

    return 0;
}

Компилируем и запускаем программу:

gcc trapezoid_area.c -o trapezoid_area
./trapezoid_area

Пример вывода:

Введите длину первой параллельной стороны: 5
Введите длину второй параллельной стороны: 7
Введите высоту трапеции: 3
Первая сторона: 5.00
Вторая сторона: 7.00
Высота: 3.00
Объяснение
  • Мы используем float для хранения десятичных чисел для длин сторон и высоты
  • printf() используется для запроса ввода у пользователя
  • scanf() считывает введенные пользователем значения с плавающей точкой
  • Мы выводим введенные значения для проверки, что они были правильно получены

Вычисление площади = 0.5*(a+b)*h

В этом шаге вы измените предыдущую программу на C для вычисления площади трапеции по формуле: Площадь = 0.5 _ (a+b) _ h.

Откройте существующий файл и обновите код:

cd ~/project
nano trapezoid_area.c

Замените предыдущий код следующим:

#include <stdio.h>

int main() {
    float side1, side2, height, area;

    // Запрос ввода первой параллельной стороны
    printf("Введите длину первой параллельной стороны: ");
    scanf("%f", &side1);

    // Запрос ввода второй параллельной стороны
    printf("Введите длину второй параллельной стороны: ");
    scanf("%f", &side2);

    // Запрос ввода высоты
    printf("Введите высоту трапеции: ");
    scanf("%f", &height);

    // Вычисление площади по формуле площади трапеции
    area = 0.5 * (side1 + side2) * height;

    // Вывод вычисленной площади
    printf("Площадь трапеции: %.2f\n", area);

    return 0;
}

Компилируем и запускаем программу:

gcc trapezoid_area.c -o trapezoid_area
./trapezoid_area

Пример вывода:

Введите длину первой параллельной стороны: 5
Введите длину второй параллельной стороны: 7
Введите высоту трапеции: 3
Площадь трапеции: 18.00
Объяснение
  • Мы добавили новую переменную area для хранения вычисленной площади
  • Формула 0.5 * (side1 + side2) * height вычисляет площадь трапеции
  • printf() отображает вычисленную площадь с двумя десятичными знаками
  • Вычисление использует стандартную формулу площади трапеции: S = 0.5(a+b)h

Вывод площади

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

Откройте существующий файл и обновите код:

cd ~/project
nano trapezoid_area.c

Замените предыдущий код следующим:

#include <stdio.h>

int main() {
    float side1, side2, height, area;

    // Валидация ввода
    printf("Калькулятор площади трапеции\n");
    printf("----------------------------\n");

    // Запрос ввода первой параллельной стороны
    printf("Введите длину первой параллельной стороны: ");
    if (scanf("%f", &side1) != 1 || side1 <= 0) {
        printf("Ошибка: Неверный ввод для первой стороны.\n");
        return 1;
    }

    // Запрос ввода второй параллельной стороны
    printf("Введите длину второй параллельной стороны: ");
    if (scanf("%f", &side2) != 1 || side2 <= 0) {
        printf("Ошибка: Неверный ввод для второй стороны.\n");
        return 1;
    }

    // Запрос ввода высоты
    printf("Введите высоту трапеции: ");
    if (scanf("%f", &height) != 1 || height <= 0) {
        printf("Ошибка: Неверный ввод для высоты.\n");
        return 1;
    }

    // Вычисление площади по формуле площади трапеции
    area = 0.5 * (side1 + side2) * height;

    // Форматированный вывод результатов
    printf("\nРезультаты вычисления площади трапеции:\n");
    printf("-------------------------------------\n");
    printf("Первая сторона:  %.2f\n", side1);
    printf("Вторая сторона: %.2f\n", side2);
    printf("Высота:      %.2f\n", height);
    printf("Площадь:        %.2f квадратных единиц\n", area);

    return 0;
}

Компилируем и запускаем программу:

gcc trapezoid_area.c -o trapezoid_area
./trapezoid_area

Пример вывода:

Калькулятор площади трапеции
----------------------------
Введите длину первой параллельной стороны: 5
Введите длину второй параллельной стороны: 7
Введите высоту трапеции: 3

Результаты вычисления площади трапеции:
-------------------------------------
Первая сторона:  5.00
Вторая сторона: 7.00
Высота:      3.00
Площадь:        18.00 квадратных единиц
Объяснение
  • Добавлена валидация ввода для предотвращения некорректных значений.
  • Улучшен форматированный вывод с заголовками и ясными метками.
  • Добавлена обработка ошибок для некорректных типов ввода.
  • Включен описательный вывод со всеми входными параметрами и вычисленной площадью.
  • Используется %.2f для отображения чисел с плавающей точкой с двумя десятичными знаками.

Резюме

В этом лабораторном практикуме вы сначала изучили, как считывать две параллельные стороны и высоту трапеции с помощью функций printf() и scanf(). Затем вы вычислили площадь трапеции по формуле: Площадь = 0.5 _ (a+b) _ h, где a и b — параллельные стороны, а h — высота. Наконец, вы вывели вычисленную площадь на консоль.