Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практика алгоритмизации и программирования.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
517.53 Кб
Скачать

Демонстрация

Начало формы

Конец формы

 

Школьный АЯ

алг Пересечение (арг вещ 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);

  end; WriteLn

  end;

ReadLn

END.

Результаты работы Pascal-программы:

Введите количество тестов : 7   Тест 1.  Введите a1, b1, c1 : 0  0  1 <Enter>   Введите a2, b2, c2 : 1  2  2 <Enter>   О т в е т : это не прямая (прямые). 

Тест 2. Введите a1, b1, c1 : 1  2  2   <Enter>     Введите a2, b2, c2 : 0  0  1   <Enter>   О т в е т : это не прямая (прямые). 

Тест 3. Введите a1, b1, c1 : 0  0  0   <Enter>     Введите a2, b2, c2 : 1  2  1   <Enter>   О т в е т : это не прямая (прямые). 

Тест 4. Введите a1, b1, c1 : 1  2  1   <Enter>     Введите a2, b2, c2 : 1  2  1   <Enter>   О т в е т : прямые совпадают. 

Тест 5. Введите a1, b1, c1 : 1  2  1   <Enter>     Введите a2, b2, c2 : 2  4  2   <Enter>   О т в е т : прямые совпадают. 

Тест 6. Введите a1, b1, c1 : 2  3 -1 <Enter>     Введите a2, b2, c2 : 4  6  1 <Enter>   О т в е т : прямые параллельны. 

Тест 7. Введите a1, b1, c1 : 1  2 -4 <Enter>     Введите a2, b2, c2 : 1 -2  1 <Enter>   О т в е т : координаты точки пересечения : x = 1.50, y = 1.25

QBasic

CLS

Input "Введите количество тестов : ", nTest

FOR Test = 1 TO NTest   ' цикл по всем тестам задачи

  PRINT "Тест"; Test;