Введение
В этом лабораторном практикуме вы научитесь оценивать рациональные выражения в программировании на языке C. Лабораторная работа охватывает основные этапы чтения числителя и знаменателя выражений, вычисления значения дроби с безопасностью, обрабатывая деление на ноль, и вывода конечного результата. Это практическое упражнение поможет вам развить необходимые навыки работы с алгебраическими выражениями с помощью языка C.
Лабораторная работа начинается с руководства по процессу чтения входных данных числителя и знаменателя от пользователя, гарантируя, что значения правильно хранятся в вашей программе. Затем она вводит концепцию обработки деления на ноль, распространённой проблемы при работе с дробями, и демонстрирует, как справиться с этой ситуацией. Наконец, лабораторная работа охватывает вычисление значения дроби и вывод конечного результата.
Чтение выражений числителя и знаменателя
В этом шаге вы научитесь читать выражения числителя и знаменателя на языке C, что является фундаментальным навыком для оценки рациональных выражений.
Сначала создайте новый файл C для реализации ввода рациональных выражений:
cd ~/project
nano rational_expressions.c
Теперь добавьте следующий код для чтения числителя и знаменателя:
#include <stdio.h>
int main() {
int numerator, denominator;
printf("Enter the numerator: ");
scanf("%d", &numerator);
printf("Enter the denominator: ");
scanf("%d", &denominator);
printf("Numerator: %d\n", numerator);
printf("Denominator: %d\n", denominator);
return 0;
}
Компилируйте и запустите программу:
gcc rational_expressions.c -o rational_expressions
./rational_expressions
Пример вывода:
Enter the numerator: 10
Enter the denominator: 5
Numerator: 10
Denominator: 5
Давайте разберем код:
scanf()используется для чтения целочисленных входных данных от пользователя- Спецификатор формата
%dиспользуется для целочисленного ввода - Мы сохраняем числитель и знаменатель в отдельных целочисленных переменных
printf()используется для отображения введенных значений
Вычисление значения дроби
В этом шаге вы научитесь вычислять значение дроби безопасно, обрабатывая потенциальное деление на ноль и выполняя вычисление.
Обновите предыдущий файл rational_expressions.c, включив вычисление дроби:
cd ~/project
nano rational_expressions.c
Измените код для вычисления значения дроби:
#include <stdio.h>
int main() {
int numerator, denominator;
float fraction_value;
printf("Enter the numerator: ");
scanf("%d", &numerator);
printf("Enter the denominator: ");
scanf("%d", &denominator);
// Проверка на деление на ноль
if (denominator == 0) {
printf("Ошибка: Деление на ноль запрещено.\n");
return 1;
}
// Вычисление значения дроби
fraction_value = (float)numerator / denominator;
printf("Числитель: %d\n", numerator);
printf("Знаменатель: %d\n", denominator);
printf("Значение дроби: %.2f\n", fraction_value);
return 0;
}
Компилируйте и запустите программу:
gcc rational_expressions.c -o rational_expressions
./rational_expressions
Пример вывода:
Enter the numerator: 10
Enter the denominator: 4
Числитель: 10
Знаменатель: 4
Значение дроби: 2.50
Ключевые моменты в коде:
- Добавлена проверка на деление на ноль для предотвращения ошибок во время выполнения
- Используется приведение типа
(float)для обеспечения деления с плавающей точкой - Значение дроби отображается с двумя десятичными знаками с помощью
%.2f
Вывод результата или обработка деления на ноль
В этом шаге вы улучшите программу для работы с рациональными выражениями, добавив более надежную обработку ошибок и вывод результатов.
Обновите файл rational_expressions.c, чтобы улучшить вывод и обработку ошибок:
cd ~/project
nano rational_expressions.c
Измените код, включив расширенную обработку ошибок и форматирование результатов:
#include <stdio.h>
#include <stdlib.h>
int main() {
int numerator, denominator;
// Валидация ввода и обработка ошибок
printf("Enter the numerator: ");
if (scanf("%d", &numerator) != 1) {
printf("Error: Неверный ввод числителя.\n");
return 1;
}
printf("Enter the denominator: ");
if (scanf("%d", &denominator) != 1) {
printf("Error: Неверный ввод знаменателя.\n");
return 1;
}
// Полная обработка деления на ноль
if (denominator == 0) {
printf("Error: Деление на ноль невозможно. Знаменатель должен быть отличным от нуля.\n");
return 1;
}
// Вычисление и вывод результатов с различными форматами
double fraction_value = (double)numerator / denominator;
printf("\n--- Результаты рационального выражения ---\n");
printf("Числитель: %d\n", numerator);
printf("Знаменатель: %d\n", denominator);
printf("Значение дроби: %.2f\n", fraction_value);
printf("Целочисленное значение: %d\n", numerator / denominator);
printf("Остаток: %d\n", numerator % denominator);
return 0;
}
Компилируйте и запустите программу:
gcc rational_expressions.c -o rational_expressions
./rational_expressions
Примеры вывода:
Успешное вычисление:
Enter the numerator: 10
Enter the denominator: 4
--- Результаты рационального выражения ---
Числитель: 10
Знаменатель: 4
Значение дроби: 2.50
Целочисленное значение: 2
Остаток: 2
Деление на ноль:
Enter the numerator: 10
Enter the denominator: 0
Error: Деление на ноль невозможно. Знаменатель должен быть отличным от нуля.
Неверный ввод:
Enter the numerator: abc
Error: Неверный ввод числителя.
Основные улучшения:
- Добавлена валидация ввода с использованием возвращаемого значения
scanf() - Улучшены сообщения об ошибках для различных сценариев
- Предоставлены несколько представлений результатов
- Используется
doubleдля более точных вычислений с плавающей точкой
Резюме
В этом лабораторном практикуме вы изучили, как читать числитель и знаменатель выражений в C, что является фундаментальным навыком для оценки рациональных выражений. Вы также научились безопасно вычислять значение дроби, обрабатывая потенциальное деление на ноль и выполняя вычисления. Наконец, вы реализовали возможность вывода результата или обработки деления на ноль. Эти шаги создают прочную основу для работы с рациональными выражениями в программировании на языке C.



