Студопедия — Файл 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; просмотров: 258. Нарушение авторских прав; Мы поможем в написании вашей работы!



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

Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...

Важнейшие способы обработки и анализа рядов динамики Не во всех случаях эмпирические данные рядов динамики позволяют определить тенденцию изменения явления во времени...

ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...

Философские школы эпохи эллинизма (неоплатонизм, эпикуреизм, стоицизм, скептицизм). Эпоха эллинизма со времени походов Александра Македонского, в результате которых была образована гигантская империя от Индии на востоке до Греции и Македонии на западе...

Демографияда "Демографиялық жарылыс" дегеніміз не? Демография (грекше демос — халық) — халықтың құрылымын...

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

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

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

Ведение учета результатов боевой подготовки в роте и во взводе Содержание журнала учета боевой подготовки во взводе. Учет результатов боевой подготовки - есть отражение количественных и качественных показателей выполнения планов подготовки соединений...

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