Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ООП 02..05 Прилож Алгоритмы линейной алгебры

.pdf
Скачиваний:
16
Добавлен:
15.02.2015
Размер:
232.93 Кб
Скачать

Алгоритмы задач линейной алгебры

1

АЛГОРИТМЫ ЗАДАЧ ЛИНЕЙНОЙ АЛГЕБРЫ

 

Задача:

C

Заданы координаты двух вершин основания равнобедренного треугольника и его вы-

 

сота. Определить координаты третьей вершины (два решения), его площадь и углы

h

треугольника.

B

Рекомендуемый алгоритм:

Вычисляем вектор AB по координатам его концов.

D

A

 

Поворачиваем вектор AB на 90º

Делим повёрнутый вектор на его длину, умножаем на высоту и получаем вектор DC. Прибавляем вектор DC к точке D и получаем точку С.

Вычисляем вектор AC по координатам его концов. Вычисляем угол между векторами AC и AB.

Для каждого действия удобно объявить соответствующую функцию.

Для вычисления площади целесообразно объявить функцию, которая получает вершины треугольника и возвращает его площадь.

Проверка:

Вычисляем длины всех сторон и значения всех углов треугольника.

Задача:

C

Заданы координаты вершины, основания высоты и площадь равнобедренного тре-

 

угольника. Определить координаты двух других вершин и углы треугольника.

 

Рекомендуемый алгоритм:

Вычисляем вектор DC по координатам его концов. Поворачиваем вектор DC на 90º.

A S

D B

Делим повёрнутый вектор на его длину, умножаем на длину половины основания треугольника и получаем вектор DA.

Прибавляем вектор DA к точке D и получаем точку A.

Умножаем вектор DA на –1 и получаем вектор DB.

Прибавляем вектор DB к точке D и получаем точку B. Вычисляем угол между векторами AC и AB.

Для каждого действия удобно объявить соответствующую функцию.

Проверка:

Вычисляем длины всех сторон, значения всех углов и площадь треугольника.

Выжол Ю.А.

Объектно-ориентированное программирование

Алгоритмы задач линейной алгебры

Задача:

Заданы координаты прямого угла, вершины прямоугольного треугольника и длина его гипотенузы. Определить координаты третьей вершины (два решения), длину катетов, площадь и углы треугольника.

Рекомендуемый алгоритм:

Вычисляем вектор AC по координатам его концов. Вычисляем длину вектора AC.

2

A

φ

d

C

B

Проверяем условие существования прямоугольного треугольника: длина катета меньше длины гипотенузы. Вычисляем cos φ и угол φ.

Поворачиваем вектор на угол φ.

Умножаем повёрнутый вектор на 1/cos φ и получаем вектор AB. Прибавляем вектор AB к точке A и получаем точку B.

Для каждого действия удобно объявить соответствующую функцию.

Для вычисления площади целесообразно объявить функцию, которая получает вершины треугольника и возвращает его площадь.

Проверка:

Вычисляем длины всех сторон и значения всех углов треугольника.

Задача:

Заданы координаты прямого угла, вершины прямоугольного треугольника и длина его катета. Определить координаты третьей вершины (два решения), длину гипотенузы, площадь и углы треугольника.

Рекомендуемый алгоритм:

Вычисляем вектор CB по координатам его концов. Вычисляем длину вектора CB.

Вычисляем tg φ и угол φ. Поворачиваем вектор СB на 90º.

Умножаем повёрнутый вектор на 1/tg φ и получаем вектор CA. Прибавляем вектор CA к точке C и получаем точку A.

Для каждого действия удобно объявить соответствующую функцию.

A

d φ

C

B

Для вычисления площади целесообразно объявить функцию, которая получает вершины треугольника и возвращает его площадь.

Проверка:

Вычисляем длины всех сторон и значения всех углов треугольника.

Выжол Ю.А.

Объектно-ориентированное программирование

Алгоритмы задач линейной алгебры

Задача:

Заданы координаты острых углов прямоугольного треугольника и длина его катета. Определить координаты третьей вершины, длину всех сторон, площадь и углы треугольника (четыре решения).

Рекомендуемый алгоритм:

Вычисляем вектор AB по координатам его концов. Вычисляем длину вектора AB.

3

A

d φ

C

B

Проверяем условие существования прямоугольного треугольника: длина катета меньше длины гипотенузы. Вычисляем cos φ и угол φ.

Поворачиваем вектор AB на угол φ.

Умножаем повёрнутый вектор на cos φ и получаем вектор AC. Прибавляем вектор AC к точке A и получаем точку C.

Для каждого действия удобно объявить соответствующую функцию.

Для вычисления площади целесообразно объявить функцию, которая получает вершины треугольника и возвращает его площадь.

Проверка:

Вычисляем длины всех сторон и значения всех углов треугольника.

Задача:

Заданы координаты острых углов прямоугольного треугольника и значение острого угла. Определить координаты третьей вершины (четыре решения), длину всех сторон и площадь треугольника.

Рекомендуемый алгоритм:

Вычисляем вектор AB по координатам его концов. Вычисляем длину вектора AB.

Вычисляем cos φ и угол φ. Поворачиваем вектор AB на угол φ.

Умножаем повёрнутый вектор на cos φ и получаем вектор AC. Прибавляем вектор AC к точке A и получаем точку C.

Для каждого действия удобно объявить соответствующую функцию.

A

φ

C

B

Для вычисления площади целесообразно объявить функцию, которая получает вершины треугольника и возвращает его площадь.

Проверка:

Вычисляем значения всех углов треугольника.

Задача:

Заданы координаты острого и прямого углов прямоугольного треугольника и значение острого угла. Определить координаты третьей вершины (два решения), длину всех сторон и площадь треугольника.

Рекомендуемый алгоритм:

Вычисляем вектор AC по координатам его концов. Поворачиваем вектор AC на угол φ.

Умножаем повёрнутый вектор на 1/cos φ и получаем вектор AB. Прибавляем вектор AB к точке A и получаем точку B.

Для каждого действия удобно объявить соответствующую функцию.

A

φ

C

B

Для вычисления площади целесообразно объявить функцию, которая получает вершины треугольника и возвращает его площадь.

Проверка:

Вычисляем значения всех углов треугольника.

Выжол Ю.А.

Объектно-ориентированное программирование

Алгоритмы задач линейной алгебры

Задача:

Заданы координаты центра и вершины правильного треугольника. Определить координаты двух других вершин и его площадь.

Рекомендуемый алгоритм:

Вычисляем вектор OA по координатам его концов. Поворачиваем вектор OA на 120º и получаем вектор OB. Прибавляем вектор OB к точке O и получаем точку B. Аналогично вычисляем точку С.

Для каждого действия удобно объявить соответствующую функцию.

4

A

O

B

C

Для вычисления площади целесообразно объявить функцию, которая получает вершины треугольника и возвращает его площадь.

Проверка:

Вычисляем длины всех сторон и значения всех углов треугольника.

Задача:

Заданы координаты вершины ромба, точки пересечения диагоналей и его площадь. Определить координаты остальных вершин и длину сторон.

Рекомендуемый алгоритм:

Вычисляем вектор OA по координатам его концов.

B A

S

O

C D

Умножаем вектор OA на –1 и получаем вектор OC.

Прибавляем вектор OC к точке O и получаем точку C. Вычисляем длину вектора OA.

Вычисляем длину диагонали BD.

Поворачиваем вектор OA на 90º.

Делим повёрнутый вектор на его длину и умножаем на длину половины диагонали BD и получаем вектор

OB.

Прибавляем вектор OB к точке O и получаем точку B.

Умножаем вектор OB на –1 и получаем вектор OD.

Прибавляем вектор OD к точке O и получаем точку D.

Для каждого действия удобно объявить соответствующую функцию.

Для вычисления площади целесообразно объявить функцию, которая получает вершины треугольника и возвращает его площадь.

Проверка:

Вычисляем длины всех сторон и значения всех углов ромба.

Выжол Ю.А.

Объектно-ориентированное программирование

Алгоритмы задач линейной алгебры

5

Задача:

B

Заданы координаты двух противоположных вершин квадрата. Определить координа-

A

ты двух других вершин и его площадь (два решения).

O

Рекомендуемый алгоритм:

C

Вычисляем середину отрезка AC точку O.

D

Вычисляем вектор OA по координатам его концов.

Поворачиваем вектор OA на 90º и получаем вектор OB.

 

Прибавляем вектор OB к точке O и получаем точку B.

 

Умножаем вектор OB на –1 и получаем вектор OD.

 

Прибавляем вектор OD к точке O и получаем точку D.

 

Вычисляем длину вектора OA и площадь квадрата.

 

Для каждого действия удобно объявить соответствующую функцию.

 

Для вычисления площади целесообразно объявить функцию, которая получает вершины треугольника и

возвращает его площадь.

 

Проверка:

 

 

 

Вычисляем длины всех сторон и значения всех углов квадрата.

 

 

 

Задача:

B

S

A

Заданы координаты двух противоположных вершин ромба и его площадь. Опре-

 

 

 

 

делить координаты остальных вершин и длину сторон.

 

O

 

Рекомендуемый алгоритм:

 

 

C

D

 

Вычисляем середину O отрезка AC

 

Вычисляем вектор OA по координатам его концов.

 

 

 

Вычисляем длину вектора OA.

 

 

 

Вычисляем длину диагонали BD.

 

 

 

Делим повёрнутый вектор на его длину и умножаем на длину половины диагонали BD и получаем вектор

OB.

Прибавляем вектор OB к точке O и получаем точку B.

Умножаем вектор OB на –1 и получаем вектор OD.

Прибавляем вектор OD к точке O и получаем точку D.

Вычисляем вектор AB по координатам его концов. Вычисляем длину вектора AB.

Для каждого действия удобно объявить соответствующую функцию.

Для вычисления площади целесообразно объявить функцию, которая получает вершины треугольника и возвращает его площадь.

Проверка:

Вычисляем длины всех сторон и значения всех углов ромба.

Выжол Ю.А.

Объектно-ориентированное программирование

Алгоритмы задач линейной алгебры

Задача:

Заданы координаты двух соседних вершин шестиугольника. Определить координаты остальных вершин и его площадь (два решения).

Рекомендуемый алгоритм:

Вычисляем вектор AB по координатам его концов. Поворачиваем вектор AB на 60º и получаем вектор BC. Прибавляем вектор BC к точке B и получаем точку C. Аналогично вычисляем точки D, E и F.

Для каждого действия удобно объявить соответствующую функцию.

6

C

D

B

E

A

F

Для вычисления площади целесообразно объявить функцию, которая получает вершины треугольника и возвращает его площадь.

Проверка:

Вычисляем длины всех сторон и значения всех углов шестиугольника.

Задача:

Заданы координаты двух противоположных вершин шестиугольника. Определить координаты остальных вершин и его площадь.

Рекомендуемый алгоритм:

Вычисляем середину O отрезка AD

Вычисляем вектор OA по координатам его концов. Поворачиваем вектор OA на 60º и получаем вектор OB. Прибавляем вектор OB к точке O и получаем точку B. Аналогично вычисляем точки C, E и F.

Для каждого действия удобно объявить соответствующую функцию.

A

B

F C O

D E

Для вычисления площади целесообразно объявить функцию, которая получает вершины треугольника и возвращает его площадь.

Проверка:

Вычисляем длины всех сторон и значения всех углов шестиугольника.

Задача:

Заданы координаты двух соседних вершин пятиугольника. Определить координаты остальных вершин и его площадь.

Рекомендуемый алгоритм:

Вычисляем вектор AB по координатам его концов. Поворачиваем вектор AB на 72º и получаем вектор BC. Прибавляем вектор BC к точке B и получаем точку C. Аналогично вычисляем точки D, C и E.

Для каждого действия удобно объявить соответствующую функцию.

D

E

C

A

B

Для вычисления площади целесообразно объявить функцию, которая получает вершины треугольника и возвращает его площадь.

Проверка:

Вычисляем длины всех сторон и значения всех углов пятиугольника.

Выжол Ю.А.

Объектно-ориентированное программирование

Алгоритмы задач линейной алгебры

 

 

7

 

Задача:

 

C

D

C

Заданы координаты вершин четырёхугольника. Определить

 

 

 

 

 

 

 

 

 

 

является ли этот четырёхугольник выпуклым.

 

 

 

 

 

 

Рекомендуемый алгоритм:

 

 

 

 

D

Нетрудно видеть, что для выпуклого треугольника выполняется

 

 

 

 

 

 

равенство SABC + SDBC = SADC + SADB

A

 

 

B A

 

B

 

 

 

Для решения задачи удобно объявить функцию, которая полу-

 

 

 

 

 

 

чает вершины треугольника и возвращает его площадь.

 

 

 

 

 

 

При решении задачи необходимо иметь ввиду, что нецелые значения площади вычисляются с некоторой ошибкой, которая зависит типа вещественных переменных, используемых в программе.

Задача:

C

Заданы координаты вершин треугольника и координаты точки.

 

Определить, расположена ли точка внутри треугольника или

 

снаружи.

D

Рекомендуемый алгоритм:

 

 

Нетрудно видеть, что, если точка D находится внутри

тре-

A

угольника ABC, то выполняется равенство SABC = SADC + SCDB

 

+ SABD

 

 

C

D

B A B

Для решения задачи удобно объявить функцию, которая получает вершины треугольника и возвращает его площадь.

При решении задачи необходимо иметь ввиду, что нецелые значения площади вычисляются с некоторой ошибкой, которая зависит типа вещественных переменных, используемых в программе.

Задача:

Заданы координаты центра и вершины квадрата. Определить координаты трёх других вершин и его площадь.

Рекомендуемый алгоритм:

Вычисляем вектор OA по координатам его концов. Поворачиваем вектор OA на 90º и получаем вектор OB. Прибавляем вектор OB к точке O и получаем точку B. Аналогично вычисляем точки С и D.

Для каждого действия удобно объявить соответствующую функцию.

B

A

O

C

D

Для вычисления площади целесообразно объявить функцию, которая получает вершины треугольника и возвращает его площадь.

Проверка:

Вычисляем длины всех сторон и значения всех углов квадрата.

Выжол Ю.А.

Объектно-ориентированное программирование

Алгоритмы задач линейной алгебры

Задача:

Заданы координаты центра и вершины пятиугольника. Определить координаты остальных вершин и его площадь.

Рекомендуемый алгоритм:

Вычисляем вектор OA по координатам его концов. Поворачиваем вектор OA на 72º и получаем вектор OB. Прибавляем вектор OB к точке O и получаем точку B. Аналогично вычисляем точки С, D и E.

Для каждого действия удобно объявить соответствующую функцию.

8

B

C

O A

D

E

Для вычисления площади целесообразно объявить функцию, которая получает вершины треугольника и возвращает его площадь.

Проверка:

Вычисляем длины всех сторон и значения всех углов пятиугольника.

Задача:

Заданы координаты центра и вершины шестиугольника. Определить координаты остальных вершин и его площадь.

Рекомендуемый алгоритм:

Вычисляем вектор OA по координатам его концов. Поворачиваем вектор OA на 60º и получаем вектор OB. Прибавляем вектор OB к точке O и получаем точку B. Аналогично вычисляем точки С, D, E и F.

 

B

 

A

 

 

 

C

 

 

F

 

 

O

 

 

D

E

 

 

 

Для каждого действия удобно объявить соответствующую функцию.

Для вычисления площади целесообразно объявить функцию, которая получает вершины треугольника и возвращает его площадь.

Проверка:

Вычисляем длины всех сторон и значения всех углов шестиугольника.

Задача:

 

D

Заданы координаты двух соседних вершин квадрата. Определить координаты двух

 

 

других вершин и его площадь (два решения).

 

 

Рекомендуемый алгоритм:

A

C

Вычисляем вектор AB по координатам его концов.

 

 

Поворачиваем вектор AB на 90º и получаем вектор AD.

Прибавляем вектор AD к точке A и получаем точку D. B Прибавляем вектор AD к точке B и получаем точку C.

Вычисляем длину вектора OA и площадь квадрата.

Для каждого действия удобно объявить соответствующую функцию.

Для вычисления площади целесообразно объявить функцию, которая получает вершины треугольника и возвращает его площадь.

Проверка:

Вычисляем длины всех сторон и значения всех углов квадрата.

Выжол Ю.А.

Объектно-ориентированное программирование

Алгоритмы задач линейной алгебры

 

9

Задача:

 

C

Заданы координаты двух вершин правильного треугольника. Определить координа-

 

 

 

ты третьей вершины (два решения) и его площадь.

 

 

 

Рекомендуемый алгоритм:

 

 

 

Вычисляем вектор AB по координатам его концов.

A

 

B

 

Поворачиваем вектор AB на 60º и определяем вектор AC.

Если мы знаем вектор AC и координаты его начала A, то нетрудно вычислить координаты конца вектора. Для каждого действия удобно объявить соответствующую функцию.

Для вычисления площади целесообразно объявить функцию, которая получает вершины треугольника и возвращает его площадь.

Проверка:

Вычисляем длины всех сторон и значения всех углов треугольника.

Выжол Ю.А.

Объектно-ориентированное программирование