Информатика 10-11. Книга 2. Практика алгоритмизации и программирования. Шауцукова Л.З. - 13 стр.

UptoLike

Составители: 

6 Прямые параллельны 2 3 -1 4 6 1 Прямые
параллельны
7 Прямые пересекаются 1 2 -4 1 -2 1 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)
все
все
все
кон
Turbo Pascal
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);
   6   Прямые параллельны        2   3 -1 4   6   1   Прямые
                                                      параллельны
   7   Прямые пересекаются       1   2 -4 1 -2    1   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)
                  все
          все
    все
кон

Turbo Pascal
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);