Добро пожаловать,
|
|
|
|
|
Error: Incorrect password!
|
Книги-online
Практикум Глава 1. Алгоритмы линейной и разветвляющейся структуры
Пример 1.6.
Две прямые описываются уравнениями
a1 x + b1
y + c1 = 0;
a2 x + b2
y + c2 = 0.
Напечатать координаты точки пересечения этих прямых, либо
сообщить, что эти прямые совпадают, не пересекаются или вовсе не
cуществуют.
Система тестов
Номер теста |
Проверяемый
случай |
Коэффициенты прямых |
Результаты |
a1 |
b1 |
c1 |
a2 |
b2 |
c2 |
1 |
Первая прямая не существует |
0 |
0 |
1 |
1 |
2 |
2 |
Это не прямая |
2 |
Вторая прямая не существует |
1 |
2 |
2 |
0 |
0 |
1 |
Это не прямая |
3 |
Все коэффициенты одной или обеих прямых равны нулю |
0 |
0 |
0 |
1 |
2 |
1 |
Это не прямая (прямые) |
4 |
Коэффициенты попарно равны |
1 |
2 |
1 |
1 |
2 |
1 |
Прямые совпадают |
5 |
Коэффициенты попарно пропорциональны |
1 |
2 |
1 |
2 |
4 |
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);
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;
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
Внимание! Если у вас не получилось найти нужную информацию, используйте рубрикатор или воспользуйтесь поиском
.
книги по программированию исходники компоненты шаблоны сайтов C++ PHP Delphi скачать
|
|