Lab1
.docxЛабораторная работа № 1
Студента ИТ 14-1 Красовского Абхая
Создание и завершение процессов и потоков. Приоритеты выполнения потоков.
Вариант №9
Цель: Получить навыки в следующих предметных областях:
-
планирование и управление процессами и потоками;
-
потоки в многозадачных приложениях и ОС
-
распределение процессорного времени;
-
состояния процессов и потоков;
-
создание и завершение процессов и потоков;
-
приоритеты выполнения потоков.
Индивидуальное задание
Вычислить значения в зависимости от значения аргумента для следующей математической функции:
9. кардиоиды; математическое описание, требования и ограничения
Кардиоида — плоская линия, которая описывается фиксированной точкой окружности, катящейся по неподвижной окружности с таким же радиусом. Получила своё название из-за схожести своих очертаний со стилизованным изображением сердца.
Кардиоида является частным случаем улитки Паскаля, эпициклоиды исинусоидальной спирали.
Код:
#include <iostream>
#include <boost/thread/thread.hpp>
#include <conio.h>
using namespace std;
using namespace boost;
void ThreadFunc()
{
int a;
double x, y, t;
cout << "Работает функция потока!" << endl;
cout << "Кардиоида — плоская линия, которая описывается фиксированной точкой окружности, катящейся по неподвижной окружности с таким же радиусом. \n Получила своё название из-за схожести своих очертаний со стилизованным \n изображением сердца. \n Кардиоида является частным случаем улитки Паскаля, \n эпициклоиды и синусоидальной спирали.\n a - радиус окружностей, t -угол" << endl;
cout << "Введите a" << endl;
cin >> a;
cout << "Введите t(от 0 до 360)" << endl;
while (!(cin >> t) || (t > 360) || (t < 0)) cout << "Неправильный ввод, попробуйте еще раз" << endl;
x = 2 * a * cos(t) - a * cos(2 * t);
y = 2 * a * sin(t) - a * sin(2 * t);
cout << "x = " << x << endl << "y = " << y << endl;
cout << "Функция завершилась!" << endl;
}
void main()
{
setlocale(LC_ALL, "rus");
cout << "Сообщение до потока" << endl;
thread thr(ThreadFunc);
thr.join();
thr.~thread();
cout << "Сообщение после потока, завершение программы" << endl;
_getch();
}