Введение
В этом лабораторном практикуме вы научитесь находить уравнение прямой, заданной двумя точками, на языке программирования C. Практикум охватывает три основных этапа: вычисление наклона прямой по двум точкам, вычисление y-пересечения с использованием наклона и известной точки и, наконец, вывод полного уравнения прямой в форме y = mx + b. К концу этого практикума вы получите глубокое понимание работы с прямыми в аналитической геометрии с использованием языка C.
Практикум начинается с демонстрации вычисления наклона прямой между двумя точками с использованием формулы (y2 - y1) / (x2 - x1). Затем показано, как определить y-пересечение, перегруппировав уравнение y = mx + b для решения относительно константы b. Наконец, выводится полное уравнение прямой, позволяющее представить прямую в стандартной форме.
Вычисление наклона по двум точкам
В этом шаге вы узнаете, как вычислить наклон прямой, проходящей через две точки, в программе на языке C. Наклон представляет собой крутизну прямой и вычисляется по формуле: наклон = (y2 - y1) / (x2 - x1).
Сначала создайте новый файл C для реализации вычисления наклона:
cd ~/project
nano slope_calculation.c
Теперь напишите следующий код C для вычисления наклона:
#include <stdio.h>
float calculate_slope(float x1, float y1, float x2, float y2) {
// Проверка, лежат ли точки на одной вертикальной прямой
if (x2 - x1 == 0) {
printf("Наклон неопределён (вертикальная прямая)\n");
return 0;
}
// Вычисление наклона по формуле: (y2 - y1) / (x2 - x1)
float slope = (y2 - y1) / (x2 - x1);
return slope;
}
int main() {
float x1 = 2.0, y1 = 3.0; // Первая точка
float x2 = 5.0, y2 = 7.0; // Вторая точка
float slope = calculate_slope(x1, y1, x2, y2);
printf("Точка 1: (%.1f, %.1f)\n", x1, y1);
printf("Точка 2: (%.1f, %.1f)\n", x2, y2);
printf("Наклон: %.2f\n", slope);
return 0;
}
Компилируйте и запустите программу:
gcc slope_calculation.c -o slope_calculation
./slope_calculation
Пример вывода:
Точка 1: (2.0, 3.0)
Точка 2: (5.0, 7.0)
Наклон: 1.33
Давайте разберём код:
- Функция
calculate_slope()принимает четыре параметра: x1, y1, x2, y2 - Она сначала проверяет, образуют ли точки вертикальную прямую (x2 - x1 = 0)
- Если это не вертикальная прямая, она вычисляет наклон по стандартной формуле
- Функция
main()демонстрирует, как использовать вычисление наклона
Наклон представляет собой изменение координаты y, делённое на изменение координаты x между двумя точками. В этом примере наклон приблизительно равен 1.33, что означает, что на каждое изменение x на 1 единицу, y изменяется на 1.33 единицы.
Вычисление отрезка на оси Y, используя y - mx
В этом шаге вы узнаете, как вычислить отрезок на оси Y прямой, используя наклон и известную точку. Отрезок на оси Y — это точка, где прямая пересекает ось Y, и его можно вычислить, используя уравнение: b = y - mx.
Продолжайте работать в той же директории проекта и измените предыдущий файл C:
cd ~/project
nano line_equation.c
Напишите следующий код C для вычисления отрезка на оси Y:
#include <stdio.h>
float calculate_slope(float x1, float y1, float x2, float y2) {
if (x2 - x1 == 0) {
printf("Наклон неопределён (вертикальная прямая)\n");
return 0;
}
return (y2 - y1) / (x2 - x1);
}
float calculate_intercept(float x, float y, float slope) {
// Вычисление отрезка на оси Y по формуле: b = y - mx
float intercept = y - (slope * x);
return intercept;
}
int main() {
float x1 = 2.0, y1 = 3.0; // Первая точка
float x2 = 5.0, y2 = 7.0; // Вторая точка
float slope = calculate_slope(x1, y1, x2, y2);
float intercept = calculate_intercept(x1, y1, slope);
printf("Точка 1: (%.1f, %.1f)\n", x1, y1);
printf("Точка 2: (%.1f, %.1f)\n", x2, y2);
printf("Наклон: %.2f\n", slope);
printf("Отрезок на оси Y: %.2f\n", intercept);
return 0;
}
Компилируйте и запустите программу:
gcc line_equation.c -o line_equation
./line_equation
Пример вывода:
Точка 1: (2.0, 3.0)
Точка 2: (5.0, 7.0)
Наклон: 1.33
Отрезок на оси Y: 0.33
Давайте разберём новый код:
- Функция
calculate_intercept()принимает три параметра: x, y и наклон - Она использует формулу b = y - mx для вычисления отрезка на оси Y
- В функции
main()мы используем ранее вычисленный наклон и точку для нахождения отрезка на оси Y - Отрезок на оси Y представляет собой точку пересечения прямой с осью Y, когда x = 0
Вычисление показывает, что для заданных точек прямая имеет наклон 1.33 и отрезок на оси Y 0.33.
Вывод уравнения прямой y = mx + b
В этом шаге вы научитесь выводить полное уравнение прямой, используя наклон и отрезок на оси Y, вычисленные на предыдущих шагах. Мы изменим существующую программу на C, чтобы отобразить уравнение прямой в стандартной форме y = mx + b.
Продолжайте работать в той же директории проекта:
cd ~/project
nano line_equation_final.c
Напишите следующий код C для вывода уравнения прямой:
#include <stdio.h>
float calculate_slope(float x1, float y1, float x2, float y2) {
if (x2 - x1 == 0) {
printf("Наклон неопределён (вертикальная прямая)\n");
return 0;
}
return (y2 - y1) / (x2 - x1);
}
float calculate_intercept(float x, float y, float slope) {
return y - (slope * x);
}
void print_line_equation(float slope, float intercept) {
printf("Уравнение прямой: y = ");
// Вывод коэффициента наклона
if (slope == 1) {
printf("x");
} else if (slope == -1) {
printf("-x");
} else if (slope != 0) {
printf("%.2fx", slope);
}
// Вывод отрезка на оси Y
if (intercept > 0) {
printf(" + %.2f", intercept);
} else if (intercept < 0) {
printf(" - %.2f", -intercept);
}
printf("\n");
}
int main() {
float x1 = 2.0, y1 = 3.0; // Первая точка
float x2 = 5.0, y2 = 7.0; // Вторая точка
float slope = calculate_slope(x1, y1, x2, y2);
float intercept = calculate_intercept(x1, y1, slope);
printf("Точка 1: (%.1f, %.1f)\n", x1, y1);
printf("Точка 2: (%.1f, %.1f)\n", x2, y2);
printf("Наклон: %.2f\n", slope);
printf("Отрезок на оси Y: %.2f\n", intercept);
print_line_equation(slope, intercept);
return 0;
}
Компилируйте и запустите программу:
gcc line_equation_final.c -o line_equation_final
./line_equation_final
Пример вывода:
Точка 1: (2.0, 3.0)
Точка 2: (5.0, 7.0)
Наклон: 1.33
Отрезок на оси Y: 0.33
Уравнение прямой: y = 1.33x + 0.33
Давайте разберём новый код:
- Функция
print_line_equation()обрабатывает различные случаи наклона и отрезка на оси Y - Она обрабатывает специальные случаи, такие как наклон 1, -1 или 0
- Она форматирует уравнение с правильными знаками для отрезка на оси Y
- Функция обеспечивает чистый и читаемый вывод уравнения прямой
Код демонстрирует, как преобразовать информацию о точках и наклоне в стандартную форму линейного уравнения.
Резюме
В этом лабораторном практикуме вы сначала изучили, как вычислить наклон прямой между двумя точками, используя формулу (y2 - y1) / (x2 - x1). Это значение отражает крутизну прямой. Затем вы научились вычислять отрезок на оси Y прямой, используя наклон и известную точку, перегруппировав уравнение y = mx + b, чтобы найти b. Наконец, вы объединили наклон и отрезок на оси Y, чтобы вывести полное уравнение прямой в форме y = mx + b.



