| [ домой ] | [ следующий ] [ начало главы ] [ предыдущий ] | [ содержание ] |
|
|
|
|
| |||||
| Первая прямая не существует | Это не прямая | |||||||
| Вторая прямая не существует | Это не прямая | |||||||
| Все коэффициенты одной или обеих прямых равны нулю | Это не прямая (прямые) | |||||||
| Коэффициенты попарно равны | Прямые совпадают | |||||||
| Коэффициенты попарно пропорциональны | Прямые совпадают | |||||||
| Прямые параллельны | Прямые параллельны | |||||||
| Прямые пересекаются | x=1.50, y=1.25 | |||||||
алг Пересечение (арг вещ a1, b1, c1, a2, b2, c2,
рез вещ x, y, рез лит t)
нач
если (a1 = 0 и b1 = 0) или ( a2 = 0 и b2 = 0)
то t := "Это не прямая (прямые)"
иначе если (a1*b2 = a2*b1) и (a1*c2 = a2*c1)
то t := "Прямые совпадают"
иначе если a1*b2 = a2*b1
то t := "Прямые параллельны"
иначе x := (c1*b2-c2*b1)/(b1*a2-b2*a1)
y := (c2*a1-c1*a2)/(b1*a2-b2*a1)
все
все
все
кон
Program Intersection;
Uses Crt; {подключение библиотеки Crt }
Var a1, b1, c1, {коэффициенты уравнения первой прямой}
a2, b2, c2, {коэффициенты уравнения второй прямой}
x, y : Real; {координаты точки пересечения }
Test, NTest : Integer;
BEGIN
ClrScr; {очистка экрана}
Write('Введите количество тестов : ');
ReadLn(NTest);
For Test := 1 to NTest do {цикл по всем тестам задачи}
begin
Write('Тест ', Test, '. Введите a1, b1, c1 : ');
ReadLn( a1, b1, c1);
Write(' Введите a2, b2, c2 : ');
ReadLn( a2, b2, c2);
WriteLn; Write('О т в е т : ');
If ( (a1=0) and (b1=0) ) or ( (a2=0) and (b2=0) )
then WriteLn( 'это не прямая (прямые). ' )
else
if (a1*b2=a2*b1) and (a1*c2=a2*c1) {условие совпадения}
then WriteLn( 'прямые совпадают.' )
else
if a1*b2 = a2*b1 {условие параллельности}
then WriteLn('прямые параллельны.')
else begin x:=(c1*b2-c2*b1)/(b1*a2-b2*a1);
y:=(c2*a1-c1*a2)/(b1*a2-b2*a1);
WriteLn('координаты точки пересечения :',
' x = ', x : 5 : 2 , ', y = ', y : 5 : 2);
end; WriteLn
end;
ReadLn
END.
| Введите количество тестов
: 7
Тест 1. Введите a1, b1, c1 : 0 0 1 <Enter> Введите a2, b2, c2 : 1 2 2 <Enter> О т в е т : это не прямая (прямые). Тест 2. Введите a1, b1, c1 : 1 2
2 <Enter>
Тест 3. Введите a1, b1, c1 : 0 0
0 <Enter>
Тест 4. Введите a1, b1, c1 : 1 2
1 <Enter>
Тест 5. Введите a1, b1, c1 : 1 2
1 <Enter>
Тест 6. Введите a1, b1, c1 : 2 3
–1 <Enter>
Тест 7. Введите a1, b1, c1 : 1 2
–4 <Enter>
|
CLS INPUT "Введите количество тестов : ", NTest FOR Test = 1 TO NTest ' цикл по всем тестам задачи PRINT "Тест"; Test; INPUT ". Введите a1, b1, c1 : ", a1, b1, c1 INPUT " Введите a2, b2, c2 : ", a2, b2, c2
PRINT : PRINT "О т в е т : ";
IF (a1 = 0) AND (b1 = 0) OR (a2 = 0) AND (b2 = 0) THEN
PRINT "это не прямая (прямые)."
ELSE
IF (a1*b2=a2*b1) AND (a1*c2=a2*c1) THEN
PRINT "прямые совпадают."
ELSE
IF a1*b2 = a2*b1 THEN
PRINT "прямые параллельны."
ELSE x=(c1*b2 - c2*b1) / (b1*a2 - b2*a1)
y=(c2*a1 - c1*a2) / (b1*a2 - b2*a1)
PRINT "координаты точки пересечения: x="; x ; ", y="; y
END IF
END IF
END IF
PRINT
NEXT Test
END
| [ домой ] | [ следующий ] [ начало главы ] [ предыдущий ] | [ содержание ] |