Студопедия — Файл DotVec.cpp
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Файл DotVec.cpp






#include "DotVec.h"

 

//////////////////////////// РЕАЛИЗАЦИЯ функциЙ, дружественных классу Dot //////////////////////////////////

// выводит на экран имя точки и значения координат заданной точки

void Print (const Dot & D) // константная ссылка на заданную точку

{

char S [ ] ="Координаты точки "; // объявляет и инициализирует строку заголовка

CharToOem (S, S); // преобразует символы строки в кириллицу

cout<<S<<D.name<<":"; // выводит на экран заголовок и имя точки

cout<<"\tx = "<<D.x<<"\ty = "<<D.y<<'\n'; // выводит на экран значения координат

}

// вводит значения координат заданной точки с клавиатуры

void Input (Dot & D) // ссылка на заданную точку

{

char S [ ] =”Введите координаты точки ”; // объявляет и инициализирует строку приглашения

CharToOem (S, S); // преобразует символы строки в кириллицу

cout<<S<<D.name<<'\n'; // выводит на экран приглашение и имя точки

cout <<"\tx="; cin >>D.x; // вводит значение абсциссы точки с клавиатуры

cout <<"\ty="; cin >>D.y; // вводит значения ординаты точки с клавиатуры

}

// возвращает расстояние между заданными точками

double Dist (const Dot & A, const Dot & B) // константные ссылки на заданные точки

{

double X = A.x – B.x; // объявляет и инициализирует

double Y = A.y – B.y; // катеты прямоугольного треугольника

return sqrt (X*X + Y*Y); // возвращает значение гипотенузы прямоугольного треугольника

}

// возвращает значение площади треугольника, образованного заданными точками

double Area (const Dot & A, const Dot & B, const Dot & C)

{ // константные ссылки на вершины треугольника

double a = Dist (C, B); // объявляет и вычисляет

double b = Dist (C, A); // длины сторон треугольника

double c = Dist (A, B);

double p = (a+b+c) / 2.0; // объявляет и вычисляет длину полупериметра

return sqrt (p*(p – a)*(p – b)*(p – c)); // вычисляет площадь треугольника по формуле Герона

}

// возвращает значение угла в градусах с вершиной в точке B

double Angle (const Dot & A, const Dot & B, const Dot & C)

{ // константные ссылки на заданные точки

const double pi = 4*atan (1.0); // объявляет константу π

Vec BA ("BA"), BC ("BC"); // объявляет вектора

Vector (B, A, BA); Vector (B, C, BC);// вычисляет вектора

return acos (Scalar (BA, BC) / (Modul (BA) * Modul (BC)))*180 / pi;

} // вычисляет угол между векторами в градусах

 

//////////////////////////// РЕАЛИЗАЦИЯ функциЙ, дружественных классу Vec //////////////////////////////////

// выводит на экран имя и значения проекций заданного вектора

void Print (const Vec & V) // константная ссылка на заданный вектор

{

char S [ ] ="Проекции вектора "; // объявляет и инициализирует строку заголовка

CharToOem (S, S); // преобразует символы строки в кириллицу

Cout << S << V.name << ":"; // выводит на экран заголовок и имя вектора

cout<<"\tx = "<<V.x<<"\ty = "<<V.y<<'\n'; // выводит на экран значения проекций

}

// возвращает длину заданного вектора

double Modul (const Vec & V) // константная ссылка на заданный вектор

{

return sqrt (V.x * V.x + V.y * V.y); // возвращает длину заданного вектора

}

// возвращает скалярное произведение заданных векторов

double Scalar (const Vec & V, const Vec & W)// константные ссылки на заданные вектора

{

return (V.x * W.x + V.y * W.y);

}

// поворачивает заданный вектор на заданный угол

void Rotate (const Vec & V, // константная ссылка на заданный вектор

double f, // угол поворота в градусах

Vec & W) // ссылка на повёрнутый вектор

{

const double pi = 4 * atan (1.0); // объявляет константу π

f *= pi / 180.0; // пересчитывает градусы в радианы

W.x = V.x * cos (f) – V.y * sin (f); // вычисляет проекцию вектора на ось X

W.y = V.x * sin (f) + V.y * cos (f); // вычисляет проекцию вектора на ось Y

}

 

///////////////////////// РЕАЛИЗАЦИЯ функциЙ, дружественных классАм Vec и Dot ////////////////////////////

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

void Vector (const Dot & N, // константная ссылка на начало вектора

const Dot & K, // константная ссылка на конец вектора

Vec & V) // ссылка на вычисляемый вектор

{

V.x = K.x – N.x; // вычисляет проекцию вектора на ось X

V.y = K.y – N.y; // вычисляет проекцию вектора на ось Y

}

// вычисляет координаты конца заданного вектора

void EndVec (const Dot & N, // константная ссылка на начало вектора

const Vec & V, // константная ссылка на заданный вектор

Dot & K) // ссылка на конец вектора

{

K.x = N.x + V.x; // вычисляет абсциссу конца вектора

K.y = N.y + V.y; // вычисляет ординату конца вектора

}

 







Дата добавления: 2015-10-01; просмотров: 255. Нарушение авторских прав; Мы поможем в написании вашей работы!



Вычисление основной дактилоскопической формулы Вычислением основной дактоформулы обычно занимается следователь. Для этого все десять пальцев разбиваются на пять пар...

Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...

Кардиналистский и ординалистский подходы Кардиналистский (количественный подход) к анализу полезности основан на представлении о возможности измерения различных благ в условных единицах полезности...

Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

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

Конституционно-правовые нормы, их особенности и виды Характеристика отрасли права немыслима без уяснения особенностей составляющих ее норм...

Толкование Конституции Российской Федерации: виды, способы, юридическое значение Толкование права – это специальный вид юридической деятельности по раскрытию смыслового содержания правовых норм, необходимый в процессе как законотворчества, так и реализации права...

ПУНКЦИЯ И КАТЕТЕРИЗАЦИЯ ПОДКЛЮЧИЧНОЙ ВЕНЫ   Пункцию и катетеризацию подключичной вены обычно производит хирург или анестезиолог, иногда — специально обученный терапевт...

Ситуация 26. ПРОВЕРЕНО МИНЗДРАВОМ   Станислав Свердлов закончил российско-американский факультет менеджмента Томского государственного университета...

Различия в философии античности, средневековья и Возрождения ♦Венцом античной философии было: Единое Благо, Мировой Ум, Мировая Душа, Космос...

Studopedia.info - Студопедия - 2014-2024 год . (0.008 сек.) русская версия | украинская версия