Процедура для нахождения точки пересечения двух прямых - Pascal
Формулировка задачи:
составить процедуру для нахождения точки пересечения двух прямых.Найти попарно точки пересечения прямых a1x+b1y+c1=0;a2x+b2y+c2=0 и a3x+b3y+c3=0.в процедуре предусмотреть случай параллельности и совпадения прямых
Решение задачи: «Процедура для нахождения точки пересечения двух прямых»
textual
Листинг программы
uses crt;
procedure Peres(a1,b1,c1,a2,b2,c2:integer; var x,y:real);
begin
if a1*b2-a2*b1=0 then writeln('Прямые параллельны или совпадают!')
else
begin
x:=(c2*b1-c1*b2)/(a1*b2-a2*b1);
y:=(a2*c1-a1*c2)/(a1*b2-a2*b1);
end;
end;
var a1,b1,c1,a2,b2,c2,a3,b3,c3:integer;
x,y:real;
begin
clrscr;
writeln('Введите коэффициенты первой прямой:');
readln(a1,b1,c1);
writeln('Введите коэффициенты второй прямой:');
readln(a2,b2,c2);
writeln('Введите коэффициенты третьей прямой:');
readln(a3,b3,c3);
writeln('Точка пересечения прямых 1 и 2:');
Peres(a1,b1,c1,a2,b2,c2,x,y);
writeln('x=',x:0:2,' y=',y:0:2);
writeln('Точка пересечения прямых 1 и 3:');
Peres(a1,b1,c1,a3,b3,c3,x,y);
writeln('x=',x:0:2,' y=',y:0:2);
writeln('Точка пересечения прямых 2 и 3:');
Peres(a2,b2,c2,a3,b3,c3,x,y);
writeln('x=',x:0:2,' y=',y:0:2);
readln
end.
Объяснение кода листинга программы
- В начале кода подключается библиотека crt, которая предоставляет функции для работы с консолью.
- Затем объявляются переменные a1, b1, c1, a2, b2, c2, a3, b3, c3: integer; и переменные x, y: real;
- Далее идет блок clrscr, который очищает экран консоли.
- После этого пользователю предлагается ввести коэффициенты для первой, второй и третьей прямых.
- Затем вызывается процедура Peres, которая принимает коэффициенты первой и второй прямых, а также переменные a1, b1, c1, a2, b2, c2, a3, b3, c3: integer; и переменные x, y: real; в качестве параметров.
- Внутри процедуры Peres выполняется проверка на равенство нулю выражения a1b2-a2b1. Если это выражение равно нулю, то выводится сообщение о том, что прямые параллельны или совпадают.
- Если же выражение не равно нулю, то вычисляются значения x и y по формулам x=(c2b1-c1b2)/(a1b2-a2b1) и y=(a2c1-a1c2)/(a1b2-a2b1).
- После выполнения процедуры Peres выводятся значения x и y с помощью функции writeln.
- Конец программы оформлен в виде блока readln, который позволяет пользователю вводить данные для следующих вычислений.