Форум программистов, компьютерный форум CyberForum.ru

Подскажите пожалуйста решение задачи. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Написать программу, позволяющую http://www.cyberforum.ru/cpp-beginners/thread571340.html
Написать программу, позволяющую получить словесное наименование цифр.
C++ Реализация графа Необходимо реализовать неориентированный, взвешенный граф в виде списка смежности или матрицы смежности. Мне необходим именно список смежности. Подскажите реализацию или, кто может, поделитесь кодом с комментариями... http://www.cyberforum.ru/cpp-beginners/thread571323.html
Переставить столбцы в матрице C++
Добрый день. Есть одномерный массив с порядком следования столбцов друг за другом (ans={0,2,1,3}) Есть двумерный массив 4х4 (mas). Нужно переставить столбцы в нем в порядке, определенном первым массивом. И вывести все это дело на экран. Например: 0,1,2,3 mas={A,B,C,D, A,B,C,D, A,B,C,D A,B,C,D}
C++ помогите дописать программу таймер с релизацией классов
Мне нужно чтобы после завершения таймера программа возвращала меню, незнаю как это можно реализовать. Какие классы еще можно придумать для программы? #include "stdafx.h" #include <iostream> #include "windows.h" #include <conio.h> #include <iomanip> using namespace std;
C++ помогите дописать программу таймер с релизацией классов http://www.cyberforum.ru/cpp-beginners/thread571275.html
Мне нужно чтобы после завершения таймера программа возвращала меню, незнаю как это можно реализовать. Какие классы еще можно придумать для программы? #include "stdafx.h" #include <iostream> #include "windows.h" #include <conio.h> #include <iomanip> using namespace std;
C++ Графический вывод информации Мне надо написать программу, которая имитирует изменение температуры. Я не хочу изменять температуру просто "переменная++" , мне посоветовали взять синусоиду - мол похоже будет на смену дня и ночи и т.д. как еще можно изменять температуру? И второй вопрос: мне надо это изменение температуры показывать на графике, и график должен меняться в реальном времени как и температура. Я пишу это дело в QT... подробнее

Показать сообщение отдельно
TBIKC
web dev
104 / 91 / 1
Регистрация: 23.09.2010
Сообщений: 738
11.05.2012, 15:26     Подскажите пожалуйста решение задачи.
1
Ясно, что обе точки — заданная и искомая — должны лежать на одной прямой, причем эта прямая должна быть перпендикулярна данной. Таким образом, первая часть задачи заключается в том, чтобы найти уравнение прямой, которая была бы перпендикулярна некоторой данной прямой и при этом проходила бы через данную точку.

2
Прямая может быть задана двумя способами. Каноническое уравнение прямой выглядит так: Ax + By + C = 0, где A, B, и C — константы. Также прямую можно определить при помощи линейной функции: y = kx + b, где k — угловой коэффициент, b — смещение.

Эти два способа взаимозаменяемы, и от любого можно перейти к другому. Если Ax + By + C = 0, то y = - (Ax + C)/B. Иными словами, в линейной функции y = kx + b угловой коэффициент k = -A/B, а смещение b = -C/B. Для поставленной задачи удобнее рассуждать, исходя из канонического уравнения прямой.

3
Если две прямые перпендикулярны друг другу, и уравнение первой прямой Ax + By + C = 0, то уравнение второй прямой должно выглядеть Bx - Ay + D = 0, где D — константа. Чтобы найти конкретное значение D, нужно дополнительно знать, через какую точку проходит перпендикулярная прямая. В данном случае это точка (x0, y0).

Следовательно, D должно удовлетворять равенству: Bx0 - Ay0 + D = 0, то есть D = Ay0 - Bx0.

4
После того как перпендикулярная прямая найдена, нужно вычислить координаты точки ее пересечения с данной. Для этого требуется решить систему линейных уравнений:

Ax + By + C = 0,
Bx - Ay + Ay0 - Bx0 = 0.

Ее решение даст числа (x1, y1), служащие координатами точки пересечения прямых.

5
Искомая точка должна лежать на найденной прямой, причем ее расстояние до точки пересечения должно быть равно расстоянию от точки пересечения до точки (x0, y0). Координаты точки, симметричной точке (x0, y0), можно, таким образом, найти, решив систему уравнений:

Bx - Ay + Ay0 - Bx0 = 0,
√((x1 - x0)^2 + (y1 - y0)^2 = √((x - x1)^2 + (y - y1)^2).

6
Но можно поступить проще. Если точки (x0, y0) и (x, y) находятся на равных расстояниях от точки (x1, y1), и все три точки лежат на одной прямой, то:

x - x1 = x1 - x0,
y - y1 = y1 - y0.

Следовательно, x = 2x1 - x0, y = 2y1 - y0. Подставив эти значения во второе уравнение первой системы и упростив выражения, легко убедиться, что правая его часть становится идентична левой. Дополнительно учитывать первое уравнение уже нет смысла, поскольку известно, что точки (x0, y0) и (x1, y1) ему удовлетворяют, а точка (x, y) заведомо лежит на той же прямой.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru