Площадь и длина окружности круга на языке C

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

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом практическом занятии (лабораторной работе) мы напишем программу на языке C, которая вычисляет площадь и длину окружности. Эта простая программа демонстрирует несколько фундаментальных концепций программирования, включая объявление переменных, обработку пользовательского ввода, математические вычисления и форматированный вывод.

Circle Area and Circumference in C

Мы будем использовать следующие математические формулы:

  • Площадь круга = π × радиус²
  • Длина окружности = 2 × π × радиус

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


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL c(("C")) -.-> c/BasicsGroup(["Basics"]) c(("C")) -.-> c/FileHandlingGroup(["File Handling"]) c(("C")) -.-> c/UserInteractionGroup(["User Interaction"]) c/BasicsGroup -.-> c/variables("Variables") c/BasicsGroup -.-> c/data_types("Data Types") c/BasicsGroup -.-> c/constants("Constants") c/BasicsGroup -.-> c/operators("Operators") c/FileHandlingGroup -.-> c/create_files("Create Files") c/UserInteractionGroup -.-> c/user_input("User Input") c/UserInteractionGroup -.-> c/output("Output") subgraph Lab Skills c/variables -.-> lab-123197{{"Площадь и длина окружности круга на языке C"}} c/data_types -.-> lab-123197{{"Площадь и длина окружности круга на языке C"}} c/constants -.-> lab-123197{{"Площадь и длина окружности круга на языке C"}} c/operators -.-> lab-123197{{"Площадь и длина окружности круга на языке C"}} c/create_files -.-> lab-123197{{"Площадь и длина окружности круга на языке C"}} c/user_input -.-> lab-123197{{"Площадь и длина окружности круга на языке C"}} c/output -.-> lab-123197{{"Площадь и длина окружности круга на языке C"}} end

Создание файла программы и ее базовой структуры

Начнем с создания файла нашей программы на языке C и настройки базовой структуры. Мы создадим файл с именем circle.c в каталоге ~/project/circle_program.

  1. Перейдите в каталог проекта:

    cd ~/project/circle_program
  2. Создайте новый файл с именем circle.c с помощью редактора WebIDE. Нажмите на меню "File" в верхней части WebIDE, затем выберите "New File". В качестве альтернативы вы можете щелкнуть правой кнопкой мыши в панели проводника файлов и выбрать "New File".

  3. Назовите файл circle.c и сохраните его в каталоге ~/project/circle_program.

  4. Теперь добавим базовую структуру нашей программы на языке C в файл:

    #include <stdio.h>
    
    int main() {
        // We will add our code here
    
        return 0;
    }

В приведенном выше коде:

  • #include <stdio.h> - это препроцессорная директива, которая сообщает компилятору включить стандартную библиотеку ввода-вывода (Standard Input/Output library), которая предоставляет такие функции, как printf() и scanf().
  • int main() определяет главную функцию, которая является точкой входа в любую программу на языке C.
  • Фигурные скобки { } обозначают начало и конец тела главной функции.
  • return 0; указывает, что программа успешно выполнилась.
  1. Сохраните файл, нажав Ctrl+S или используя меню "File" и выбрав "Save".

Объявление переменных и констант

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

  1. Откройте файл circle.c в редакторе (если он еще не открыт).

  2. Нам понадобятся несколько переменных:

    • Переменная для хранения радиуса круга
    • Константа для хранения значения π (пи)
    • Переменные для хранения вычисленной площади и длины окружности
  3. Обновите свой код следующим образом:

    #include <stdio.h>
    
    int main() {
        // Declare variables and constants
        float radius;         // to store the radius of the circle
        const float PI = 3.14159; // the mathematical constant π (pi)
        float area;           // to store the calculated area
        float circumference;  // to store the calculated circumference
    
        return 0;
    }

Понять объявления переменных:

  • float radius; - Мы используем тип данных float, так как радиус может быть десятичным числом.
  • const float PI = 3.14159; - Мы определяем PI как константу, так как ее значение не должно изменяться во время выполнения программы. Ключевое слово const обеспечивает это.
  • float area; и float circumference; - Эти переменные будут хранить результаты наших вычислений, которые могут быть десятичными числами.

В программировании на языке C обычно все переменные объявляются в начале функции. Эта практика делает программу более организованной и легкой для понимания.

  1. Сохраните файл (Ctrl+S).

Получение пользовательского ввода

Теперь добавим код, который попросит пользователя ввести радиус круга и прочитает его ввод.

  1. Откройте файл circle.c в редакторе (если он еще не открыт).

  2. Добавьте код для запроса у пользователя ввода и чтения этого ввода:

    #include <stdio.h>
    
    int main() {
        // Declare variables and constants
        float radius;         // to store the radius of the circle
        const float PI = 3.14159; // the mathematical constant π (pi)
        float area;           // to store the calculated area
        float circumference;  // to store the calculated circumference
    
        // Prompt user for radius
        printf("Please enter the radius of the circle: ");
    
        // Read the radius value from user input
        scanf("%f", &radius);
    
        // Validate input (optional but good practice)
        if (radius <= 0) {
            printf("Error: Radius must be a positive number\n");
            return 1;  // Exit with error code
        }
    
        return 0;
    }

Понять, что мы добавили:

  • printf("Please enter the radius of the circle: "); - Это выводит сообщение, в котором просит пользователя ввести радиус.
  • scanf("%f", &radius); - Это читает вещественное значение от пользователя и сохраняет его в переменной radius.
    • %f - это спецификатор формата для вещественных чисел.
    • &radius передает адрес памяти переменной radius, позволяя функции scanf() изменить ее значение.
  • Мы добавили простую проверку валидации, чтобы убедиться, что радиус положительный, так как у круга не может быть нулевого или отрицательного радиуса.

Функция scanf() используется для чтения форматированного ввода со стандартного ввода (клавиатуры). Важно использовать правильный спецификатор формата (%f для типа float) и передавать адрес переменной с помощью оператора &.

  1. Сохраните файл (Ctrl+S).

Вычисление площади и длины окружности

Теперь, когда у нас есть радиус, мы можем вычислить площадь и длину окружности с использованием наших формул.

  1. Откройте файл circle.c в редакторе (если он еще не открыт).

  2. Добавьте код для вычислений:

    #include <stdio.h>
    
    int main() {
        // Declare variables and constants
        float radius;         // to store the radius of the circle
        const float PI = 3.14159; // the mathematical constant π (pi)
        float area;           // to store the calculated area
        float circumference;  // to store the calculated circumference
    
        // Prompt user for radius
        printf("Please enter the radius of the circle: ");
    
        // Read the radius value from user input
        scanf("%f", &radius);
    
        // Validate input
        if (radius <= 0) {
            printf("Error: Radius must be a positive number\n");
            return 1;  // Exit with error code
        }
    
        // Calculate the area of the circle
        area = PI * radius * radius;
    
        // Calculate the circumference of the circle
        circumference = 2 * PI * radius;
    
        return 0;
    }

Понять, как выполняются вычисления:

  • area = PI * radius * radius; - Это вычисляет площадь по формуле π × r², где r - это радиус.
  • circumference = 2 * PI * radius; - Это вычисляет длину окружности по формуле 2 × π × r.

В языке C оператором умножения является *. Чтобы вычислить r², мы просто умножаем радиус на самого себя (radius * radius). Для более сложных математических операций мы бы использовали функции из библиотеки math.h, но наши вычисления достаточно просты и без нее.

  1. Сохраните файл (Ctrl+S).

Отображение результатов и тестирование программы

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

  1. Откройте файл circle.c в редакторе (если он еще не открыт).

  2. Добавьте код для отображения результатов:

    #include <stdio.h>
    
    int main() {
        // Declare variables and constants
        float radius;         // to store the radius of the circle
        const float PI = 3.14159; // the mathematical constant π (pi)
        float area;           // to store the calculated area
        float circumference;  // to store the calculated circumference
    
        // Prompt user for radius
        printf("Please enter the radius of the circle: ");
    
        // Read the radius value from user input
        scanf("%f", &radius);
    
        // Validate input
        if (radius <= 0) {
            printf("Error: Radius must be a positive number\n");
            return 1;  // Exit with error code
        }
    
        // Calculate the area of the circle
        area = PI * radius * radius;
    
        // Calculate the circumference of the circle
        circumference = 2 * PI * radius;
    
        // Display the results
        printf("\nResults for a circle with radius %.2f units:\n", radius);
        printf("Area: %.2f square units\n", area);
        printf("Circumference: %.2f units\n", circumference);
    
        return 0;
    }

Понять код вывода:

  • printf("\nResults for a circle with radius %.2f units:\n", radius); - Это отображает радиус с двумя знаками после запятой.
  • printf("Area: %.2f square units\n", area); - Это отображает вычисленную площадь с двумя знаками после запятой.
  • printf("Circumference: %.2f units\n", circumference); - Это отображает вычисленную длину окружности с двумя знаками после запятой.

Спецификатор формата %.2f сообщает функции printf(), что нужно отображать вещественные числа с двумя знаками после запятой, что делает вывод более читаемым.

  1. Сохраните файл (Ctrl+S).

  2. Теперь скомпилируем программу. В терминале перейдите в каталог проекта и используйте компилятор gcc:

    cd ~/project/circle_program
    gcc circle.c -o circle

    Опция -o circle сообщает компилятору создать исполняемый файл с именем circle.

  3. Если компиляция прошла успешно, вы можете запустить программу с помощью команды:

    ./circle
  4. Когда появится запрос, введите значение радиуса (например, 5) и нажмите Enter. Вы должны увидеть вывод, похожий на следующий:

    Please enter the radius of the circle: 5
    
    Results for a circle with radius 5.00 units:
    Area: 78.54 square units
    Circumference: 31.42 units
  5. Попробуйте запустить программу еще раз с разными значениями радиуса, чтобы убедиться, что она работает правильно.

Поздравляем! Вы успешно создали программу на языке C, которая вычисляет и отображает площадь и длину окружности круга на основе пользовательского ввода.

Резюме

В этом практическом занятии вы успешно создали программу на языке C, которая:

  1. Запрашивает у пользователя ввод радиуса круга
  2. Читает и проверяет корректность пользовательского ввода
  3. Вычисляет площадь круга по формуле π × r²
  4. Вычисляет длину окружности круга по формуле 2 × π × r
  5. Отображает вычисленные результаты с правильным форматированием

В процессе вы изучили несколько важных концепций программирования на языке C:

  • Включение заголовочных файлов с помощью #include
  • Определение и использование переменных и констант
  • Чтение пользовательского ввода с помощью scanf()
  • Выполнение математических вычислений
  • Отображение отформатированного вывода с помощью printf()
  • Компиляцию и запуск программы на языке C

Эти фундаментальные навыки являются основой для создания более сложных программ на языке C. Теперь вы можете расширять свои знания и создавать более сложные приложения, которые предполагают взаимодействие с пользователем и выполнение математических вычислений.