[ домой ] | [ следующий ] [ начало главы ] [ предыдущий ] | [ содержание ] |
|
|
|
| |||||
Первая прямая не существует | Это не прямая | |||||||
Вторая прямая не существует | Это не прямая | |||||||
Все коэффициенты одной или обеих прямых равны нулю | Это не прямая (прямые) | |||||||
Коэффициенты попарно равны | Прямые совпадают | |||||||
Коэффициенты попарно пропорциональны | Прямые совпадают | |||||||
Прямые параллельны | Прямые параллельны | |||||||
Прямые пересекаются | 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
[ домой ] | [ следующий ] [ начало главы ] [ предыдущий ] | [ содержание ] |