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

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

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




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


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


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


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

ТЕХНИКА ПОСЕВА, МЕТОДЫ ВЫДЕЛЕНИЯ ЧИСТЫХ КУЛЬТУР И КУЛЬТУРАЛЬНЫЕ СВОЙСТВА МИКРООРГАНИЗМОВ. ОПРЕДЕЛЕНИЕ КОЛИЧЕСТВА БАКТЕРИЙ Цель занятия. Освоить технику посева микроорганизмов на плотные и жидкие питательные среды и методы выделения чис­тых бактериальных культур. Ознакомить студентов с основными культуральными характеристиками микроорганизмов и методами определения...

САНИТАРНО-МИКРОБИОЛОГИЧЕСКОЕ ИССЛЕДОВАНИЕ ВОДЫ, ВОЗДУХА И ПОЧВЫ Цель занятия.Ознакомить студентов с основными методами и показателями...

Меры безопасности при обращении с оружием и боеприпасами 64. Получение (сдача) оружия и боеприпасов для проведения стрельб осуществляется в установленном порядке[1]. 65. Безопасность при проведении стрельб обеспечивается...

Значення творчості Г.Сковороди для розвитку української культури Важливий внесок в історію всієї духовної культури українського народу та її барокової літературно-філософської традиції зробив, зокрема, Григорій Савич Сковорода (1722—1794 pp...

Постинъекционные осложнения, оказать необходимую помощь пациенту I.ОСЛОЖНЕНИЕ: Инфильтрат (уплотнение). II.ПРИЗНАКИ ОСЛОЖНЕНИЯ: Уплотнение...

Приготовление дезинфицирующего рабочего раствора хлорамина Задача: рассчитать необходимое количество порошка хлорамина для приготовления 5-ти литров 3% раствора...

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