Введение
В этом лабораторном практикуме вы изучите вычисление степеней и показателей в языке программирования C. Практикум охватывает два основных этапа: ввод значений основания и показателя от пользователя, а затем вычисление степени с помощью цикла или встроенной функции pow(). К концу этого практикума вы получите глубокое понимание того, как выполнять вычисления степеней в C, что является фундаментальной операцией во многих математических и научных приложениях.
Чтение Основания и Показателя
В этом шаге вы узнаете, как читать значения основания и показателя для вычисления степеней в программе на C. Мы создадим простую программу, которая попросит пользователя ввести эти значения.
Сначала создадим новый файл C в каталоге ~/project:
cd ~/project
nano power_calculation.c
Теперь введите следующий код для чтения основания и показателя:
#include <stdio.h>
int main() {
int base, exponent;
// Запрос ввода основания
printf("Enter the base number: ");
scanf("%d", &base);
// Запрос ввода показателя
printf("Enter the exponent: ");
scanf("%d", &exponent);
// Вывод введенных значений
printf("Base: %d\n", base);
printf("Exponent: %d\n", exponent);
return 0;
}
Теперь скомпилируем и запустим программу:
gcc power_calculation.c -o power_calculation
./power_calculation
Пример вывода:
Enter the base number: 5
Enter the exponent: 3
Base: 5
Exponent: 3
Описание кода:
- Функция
scanf()используется для чтения целочисленного ввода от пользователя %d— спецификатор формата для целых чисел&baseи&exponentпередают адреса памяти, где будут храниться введенные значения- Программа просто считывает и отображает значения основания и показателя.
Этот шаг закладывает основу для вычисления степеней, сначала получив необходимые данные от пользователя.
Использование Цикла или Функции pow()
В этом шаге вы изучите два метода вычисления степеней в C: с помощью цикла и с использованием встроенной функции pow() из библиотеки math.
Сначала изменим предыдущий файл power_calculation.c, чтобы реализовать вычисление степени:
cd ~/project
nano power_calculation.c
Метод 1: Использование Цикла
#include <stdio.h>
int calculate_power_loop(int base, int exponent) {
int result = 1;
for (int i = 0; i < exponent; i++) {
result *= base;
}
return result;
}
int main() {
int base, exponent;
printf("Enter the base number: ");
scanf("%d", &base);
printf("Enter the exponent: ");
scanf("%d", &exponent);
int power_result = calculate_power_loop(base, exponent);
printf("%d raised to the power of %d is: %d\n", base, exponent, power_result);
return 0;
}
Метод 2: Использование Функции pow()
#include <stdio.h>
#include <math.h>
int main() {
int base, exponent;
printf("Enter the base number: ");
scanf("%d", &base);
printf("Enter the exponent: ");
scanf("%d", &exponent);
// Примечание: pow() возвращает double, поэтому мы приводим к int
int power_result = (int)pow(base, exponent);
printf("%d raised to the power of %d is: %d\n", base, exponent, power_result);
return 0;
}
Скомпилируйте программу с библиотекой math:
gcc power_calculation.c -o power_calculation -lm
Пример вывода:
Enter the base number: 2
Enter the exponent: 3
2 raised to the power of 3 is: 8
Описание кода:
- Метод цикла вручную умножает основание на себя
exponentраз - Функция
pow()изmath.hпредоставляет встроенное вычисление степени - Флаг
-lmнеобходим для линковки математической библиотеки при компиляции - Мы приводим результат
pow()к типуint, чтобы соответствовать нашему целочисленному вычислению.
Вывод Результата
В этом шаге вы улучшите программу вычисления степеней, чтобы обеспечить более подробный и отформатированный вывод, продемонстрировав различные способы представления результатов в C.
Изменим файл power_calculation.c:
cd ~/project
nano power_calculation.c
Добавьте следующий расширенный код:
#include <stdio.h>
#include <math.h>
void print_power_result(int base, int exponent, int result) {
// Базовый формат вывода
printf("Basic Result: %d^%d = %d\n", base, exponent, result);
// Отформатированный вывод с выравниванием
printf("Formatted Result: %2d raised to the power of %2d equals %5d\n",
base, exponent, result);
// Научная запись для больших чисел
printf("Scientific Notation: %d^%d = %.2e\n", base, exponent, pow(base, exponent));
}
int calculate_power_loop(int base, int exponent) {
int result = 1;
for (int i = 0; i < exponent; i++) {
result *= base;
}
return result;
}
int main() {
int base, exponent;
printf("Enter the base number: ");
scanf("%d", &base);
printf("Enter the exponent: ");
scanf("%d", &exponent);
int power_result = calculate_power_loop(base, exponent);
// Вызов функции для вывода результатов
print_power_result(base, exponent, power_result);
return 0;
}
Скомпилируйте программу:
gcc power_calculation.c -o power_calculation -lm
Запустите программу:
./power_calculation
Пример вывода:
Enter the base number: 5
Enter the exponent: 3
Basic Result: 5^3 = 125
Formatted Result: 5 raised to the power of 3 equals 125
Scientific Notation: 5^3 = 1.25e+02
Описание кода:
print_power_result()демонстрирует несколько форматов вывода- Базовый вывод показывает простое вычисление
- Отформатированный вывод использует спецификаторы ширины для выравнивания
- Научная запись полезна для больших чисел
%.2eотображает число в научном формате с 2 десятичными знаками.
Резюме
В этом лабораторном практикуме вы изучили, как считывать значения основания и показателя степени от пользователя, а затем вычислять степень двумя различными методами: с помощью цикла и встроенной функции pow(). Вы реализовали функцию вычисления степени с помощью цикла и вызов функции pow(), а затем сравнили результаты. Это позволило вам понять различные подходы к вычислению степеней и показателей степени в программировании на языке C.



