Решение и оформление задачи по теоретической механике в TeХ, с использованием языка С
Создание однотипных задач по теоретической механике. Определение собственной угловой скорости, абсолютной угловой скорости и абсолютного углового ускорения их теоремы синусов. Программирование выходного файла формата.tex с условиями задачи и ответами.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 11.01.2020 |
Размер файла | 172,5 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Санкт-Петербургский государственный политехнический университет Петра Великого
Институт прикладной математики и механики
Кафедра «Теоретическая механика»
КУРСОВАЯ РАБОТА
Решение и оформление задачи по теоретической механике в TeХ, с использованием языка С
по дисциплине «Языки программирования»
Выполнил студент гр.23632/1 В.В. Филиппова
Руководитель Ассистент А.Ю. Панченко
Санкт-Петербург 2018
Содержание
- Введение
- 1. Аналитическое решение задачи
- 1.1 Постановка задачи
- 1.2 Аналитическое решение задачи
- 2. Реализация задачи на языке программирования С
- 2.1 Принцип работы программы
- 2.2 Алгоритм работы программы
- 2.3 Использованные функции
- 2.4 Вывод программы
- 2.5 Выходные данные программы
- Заключение
- Список использованной литературы
Введение
Основной целью нашей работы является создание однотипных задач по теоретической механике, в данном случае мы генерируем задачу с вращением. Данная работа востребована, поскольку в результате мы получаем неограниченное число различных типовых задач с соответствующим решением.
Вычисления в нашем проекте основываются на фундаментальных законах пространственной геометрии и теоретической механики.
Мы рассматриваем задачу со следующими характеристиками: конус неподвижно лежит на своём основании, диск закреплён на конусе посредством соединения центра масс диска и вершины самого конуса, диск вращается по конусу без проскальзывания.
В качестве объекта исследования был взят процесс программирования решения. В результате мы добились следующего: в качестве входных данных программа принимает файл формата.txt, в котором мы определяем значения известных по задаче параметров (относительную угловую скорость, относительное угловое ускорение, тангенсальную скорость точки М, тангенсальное ускорение точки М, радиус диска и угол; иллюстрация задачи приведена во входных данных), а также количество получаемых типовых вариантов (в данной работе генерируются 6 различных вариантов с соответствующими ответами). При завершении операций, описанных в нашей программе, на «выходе» мы получаем файл формата.tex, в котором содержатся исходные данные, и данные, которые необходимо найти (абсолютную угловую скорость, переносную угловую скорость, первую и вторую составляющую углового ускорения, вращательную скорость, первую и вторую составляющую вращательного ускорения, вращательное ускорение, ускорение точки, ускорение Кориолиса и ускорение точки М).
В качестве предмета исследования была взята задача по теоретической механики, описанная выше, для решения которой мы и написали программу.
1. Аналитическое решение задачи
1.1 Постановка задачи
Условие задачи:
Диск АОВ обкатывает неподвижный конус. Также известны следующие параметры:
· ОВ -- радиус диска
· угол б
· Vr- относительная скорость т.М
· Wr- относительное ускорение т.М
· щe - переносная угловая скорость диска
· еe - переносное угловое ускорение диска
Необходимо найти:
· собственную угловую скорость щr
· абсолютную угловую скорость щa
· абсолютное угловое ускорение еa
· скорость и ускорение точки B vB, wB
· абсолютную скорость и ускорение точки M vMа, wMа
1.2 Аналитическое решение задачи
1.Из теоремы синусов находятся собственная угловая скорость и абсолютная угловая скорость:
Вектор абсолютной угловой скорости:
щa = щe + щr
2. Вектор абсолютного углового ускорения определяется как производная по времени от вектора абсолютной угловой скорости:
3. Скорость точки B определяется как скорость этой точки во вращательном движении вокруг мгновенной оси по формуле
vB = v0 + щa Ч OB = щa Ч OB (т.к. v0 = 0),
где OB - радиус-вектор точки, проведённый из неподвижной точки О
Ускорение в точке B:
wB = w0 + еaЧOB + щaЧ ( щaЧOB ) = еaЧOB + щa Ч ( щaЧOB ) (т.к. w0 = 0)
4. Абсолютная скорость точки M складывается из скорости точки B и скорости движущейся по основанию конуса точки M:
vMа = vrM + vB
Абсолютное ускорение в точке M:
wMа = w0 + еaЧOB + щaЧ(щaЧOM) + wr + wcor, где
w0 + еaЧOB + щaЧ(щaЧOВ) = wB,
wcor = 2(щaЧvrM) - ускорение Кориолиса,
wr = wrn + wrф -- ускорение относительного движения
2. Реализация задачи на языке программирования С
2.1 Принцип работы программы
Для генерирования типовых вариантов задач, достаточно запустить программу. Она случайно выбирает входные параметры и решает по формулам, написанные в главе I.
2.2 Алгоритм работы программы
В качестве входных данных программа генерирует случайные значения, задаваемые в определенном диапазоне.
Далее программа открывает файл для чтения и template.tex. Этот файл представляет собой шаблон выходного файла с маркерами, с которыми впоследствии программа и работает.
in_file = fopen("input_file.txt", "r");
textpl_file = fopen("template.tex", "r");
После данных действий программа заходит в цикл, где создаются и открываются шесть вариантов файлов типа.tex, содержащие условия рассматриваемой нами задачи с ответами и где выбираются случайным образом параметры, необходимые для решения задачи. В этом же цикле программа работает с маркерами, которые упоминались ранее.
Суть работы с маркерами состоит в следующем: внутри цикла программа начинает работать с шаблоном, считывая каждую стоку и копируя ее в созданный нами выходной файл типа.tex. Если в начале строки находится слово [MOD]
[MOD]\settext{Wb}{%.2f}
то эту строку копируем в выходной файл с пятого элемента, заменяя %.2f на параметр, который случайным образом генерируется. В результате данных действий получаем следующее выражение
\settext{Wb}{15},
которое запишется в выходной файл. В конце каждого цикла производится закрытие выходного файла.
2.3 Использованные функции
fopen("template.tex", "x") -- функция, открывающая файл "template.tex" для чего-либо, в зависимости от параметра x.
· x = r - файл используется только для чтения, при отсутствии файла, создает его.
· x = w - файл используется только для записи, при отсутствии файла, создает его.
· x = r+ - файл используется как для чтения так и для записи, при отсутствии создает его.
· x = w+ - файл используется как для чтения так и для записи, при отсутствии создает его.
printf("Cannot open file: %x1\n", x2) -- функция, печатающая в командную строку выражение "Cannot open file:" и при наличии второго выводимого слагаемого x2 необходимо вместо x1 ввести тип x2, при отсутствии второго выводимого слагаемого команда будет выглядеть следующим образом:
printf("Cannot open file\n",).
while(x) - цикл, который выполняется до тех пор, пока значение (x) -истинна; x - условие, которое позволяет войти в цикл.
rewind(textpl_file) -- функция, ставящая курсор в начало строки файла textpl_file.
*mod_pos = strstr(&str3[0], "[MOD]") - функция, ищущая подстроку [MOD] в строке, которая находится в массиве str3 начиная с 0 позиции. А переменная mod_pos сохраняет адрес первого символа искомой подстроки в строке str3.
fwrite(str, strlen(str), 1, out_file) - функция, дописывающая в выходной файл строку, содержащуюся в массиве str.
fclose(textpl_file) -- функция, закрывающая файл textpl_file.
2.4 Вывод программы
На выходе из программы мы получаем шесть различных файлов типа.tex с условием и соответствующими ответами, также присутствуют иллюстрации задач, которые были реализованы следующим образом.
Для начала необходимо задать координаты начальной точки, относительно которой будет построен рисунок:
\begin{picture}(20,20)(-290, 40),
чтобы масштабировать рисунок, можно использовать команду
\setlength{\unitlength}{0.5mm}
далее начинается рисование с помощью следующих команд:
\put(-75,-20)
\put(0,0){\vector(0,1){70}}
\put(0,0){\line(-1,-1){55}}
\qbezier(-40,-53)(0,-75)(40,-53)
\multiput(0,0)(0,-7){10}%
{\circle*{1}}
Команда \put(x,y) позволяет рисовать точку с координатами (x,y) относительно выбранной ранее точки -- центра рисунка.
Команда \put(x,y){\vector(x1,y1){n}} позволяет рисовать вектор, начало которого находится в точке (x,y) и концом в (x1,y1) длиной n.
Команда put(x,y){\line(x,y){n}} аналогична команде \put(x,y){\vector(x1,y1){n}}. Различие их состоит в том, что в первом случае рисуется линия, во втором -- вектор.
Команда \qbezier(x1,y1)(x2,y2)(x3,y3) позволяет рисовать кривую по заданным точкам; (x1,y1) и (x2,y2) - крайние точки, (x3,y3) - промежуточная точка.
Команда \multiput(x1,y1)(x2,y3){N}% {\circle*{N2}} позволяет рисовать пунктиром, где (x1,y1) -- начало линии, (x2,y3) - расстояние между координатами по двум осям двух точек, N - количество точек, {\circle*{N2}} -- форма точек и их размер соответственно.
2.5 Выходные данные программы
Рис. 1 Пример выходных данных
По окончанию работы, программа предоставляет 6 файлов типа.tex - варианты однотипных задач с ответами. При желании эти фалы можно скомпилировать, в результате чего получаем файлы типа.pdf (пример конвертированного файла показан на рис.1)
Заключение
файл механика угловой скорость
Для решения поставленной задачи было произведено распределение обязанностей: численное решение задачи было получено Кравченко И.С., программированием выходного файла формата.tex с условиями задачи и ответами занималась Филиппова В.В.; решением задачи движения диска по конусу занимались Кравченко И.С. и Филиппова В.В.
В ходе данной работы были получены знания по работе с TeX и С, осуществлена работа с различными пакетами и командами. Для поставленной задачи был сделан рисунок, заданы начальные условия и вычислены значения собственной угловой скорости, абсолютной угловой скорости, абсолютного углового ускорения, скорости и ускорения точки B, абсолютной скорости и ускорения точки M.
Список использованной литературы
1. Онлайн компилятор файлов типа.tex: https://ru.sharelatex.com- (дата обращения 24.05.2018).
2. С. М. Львовский. Набор и верстка в системе LaTex - 2003: https://www.mccme.ru/free-books/llang/newllang.pdf - (дата обращения 24.05.2018).
3. Справочник по функциям по языкам программирования С/С++: http://en.cppreference.com -- (дата обращения 25.05.2018).
4. Брайан Керниган, Деннис Ритчи. Язык программирования С: второе издание, переработанное и дополненное. Изд-во Вильямс, 2017. 288 с.
Размещено на Allbest.ru
...Подобные документы
Логические конструкции в системе программирования Паскаль. Команды языка программирования, использование функций, процедур. Постановка и решение задач механики в среде системы Паскаль. Задачи статики, кинематики, динамики решаемые с помощью языка Паскаль.
курсовая работа [290,9 K], добавлен 05.12.2008Принципиальная и структурная схема системы стабилизации угловой скорости ДПТ. Критерий устойчивости Гурвица. Передаточная функция разомкнутой системы. Исследование САР в среде Simulink. Проверка расчетов с помощью моделирования системы в среде Matlab.
курсовая работа [3,3 M], добавлен 21.08.2012Разработка программ с помощью Turbo Pascal для решения задач, входящих в камеральные работы маркшейдера: решение обратной геодезической задачи и системы линейных уравнений методом Гаусса, определение координат прямой угловой засечки и теодолитного хода.
курсовая работа [1,5 M], добавлен 05.03.2013Интегрированная среда разработки Delphi и элементы, входящие в ее состав. Математическая модель, алгоритм решения и его свойства. Описание операторов, процедур, функций и методов. Создание приложений по аналитической геометрии и теоретической механике.
курсовая работа [1,8 M], добавлен 26.05.2010Использование вычислительных возможностей программ общего назначения при решении базовых геодезических задач. Решение прямой угловой засечки по формулам Юнга и обратной геодезической задачи. Решение с помощью системы для математических расчетов MATLAB.
курсовая работа [11,4 M], добавлен 31.03.2015Анализ решения задачи линейного программирования. Симплексный метод с использованием симплекс-таблиц. Моделирование и решение задач ЛП на ЭВМ. Экономическая интерпретация оптимального решения задачи. Математическая формулировка транспортной задачи.
контрольная работа [196,1 K], добавлен 15.01.2009Определение зависимости скорости вала двигателя от времени. Математическая модель решения задачи. Решение задачи Коши на интервале методом Эйлера и Рунге-Кутта четвертого порядка точности. Алгоритм решения задачи. Текст программы и результаты ее работы.
контрольная работа [108,9 K], добавлен 08.03.2013Математические основы оптимизации. Постановка задачи оптимизации. Методы оптимизации. Решение задачи классическим симплекс методом. Графический метод. Решение задач с помощью Excel. Коэффициенты целевой функции. Линейное программирование, метод, задачи.
реферат [157,5 K], добавлен 21.08.2008Структура предприятия ОАО "Златмаш" и основные задачи Информационно-вычислительного центра. Разработка локального сервера, использующего движок Mediawiki на операционной системе Linux Ubuntu. Выбор языка и среды программирования, создание интерфейса.
отчет по практике [1,2 M], добавлен 16.09.2012Особенности регулирования угловой скорости вращения двигателя постоянного тока с независимым возбуждением при помощи широтно-импульсного регулятора. Выбор микроконтроллера и языка программирования, составление принципиальной схемы электропривода.
курсовая работа [2,3 M], добавлен 10.06.2019Методы решения задач линейного программирования: планирования производства, составления рациона, задачи о раскрое материалов и транспортной. Разработка экономико-математической модели и решение задачи с использованием компьютерного моделирования.
курсовая работа [607,2 K], добавлен 13.03.2015Решение задачи нелинейного программирования с определением экстремумов функции. Этапы процесса нахождения решения задачи нелинейного программирования с использованием ее геометрической интерпретации. Определение гиперповерхности уровней функции.
курсовая работа [1,5 M], добавлен 25.09.2010Разработка тестирующей программы для проверки знаний студента по математике на языке программирования Turbo Pascal с использованием подпрограмм "Vvod" (создание файла с вопросами и ответами) и "Initialization" (запуск тестирование и инициализация файла).
курсовая работа [137,7 K], добавлен 28.03.2010Рассмотрение способов построения алгоритмов для решения конкретных задач. Программирование с помощью базовых операторов языка Turbo Pascal. Решение задачи определения площади и объема трехмерных фигур. Математическое моделирование геометрических тел.
курсовая работа [365,3 K], добавлен 24.07.2014Методика решения некоторых геодезических задач с помощью программ MS Excel, MathCad, MatLab и Visual Basic. Расчет неприступного расстояния. Решение прямой угловой засечки по формулам Юнга и Гаусса. Решение обратной засечки по формулам Пранис-Праневича.
курсовая работа [782,2 K], добавлен 03.11.2014Решение задачи линейного программирования симплекс-методом: постановка задачи, построение экономико-математической модели. Решение транспортной задачи методом потенциалов: построение исходного опорного плана, определение его оптимального значения.
контрольная работа [118,5 K], добавлен 11.04.2012Краткие сведения об электронных таблицах MS Excel. Решение задачи линейного программирования. Решение с помощью средств Microsoft Excel экономической оптимизационной задачи, на примере "транспортной задачи". Особенности оформления документа MS Word.
курсовая работа [1,1 M], добавлен 27.08.2012Восстановление математической модели задачи нелинейного программирования. Решение уравнений прямых. Метод линеаризации: понятие, особенности применения при решении задач. Нахождение точки максимума заданной функции. Решение задачи графическим методом.
задача [472,9 K], добавлен 01.06.2013Решение задачи расчета структуры и объема товарооборота методом линейного программирования. Формулы ограничений, транспортная задача оптимизации доставки товаров. Решение задачи о назначениях на основе матрицы стоимостей в электронной таблице Excel.
контрольная работа [1023,6 K], добавлен 27.05.2013Решение задач прикладного программирования. Оформление разработанных алгоритмов в виде графических схем. Написание программ с использованием подпрограмм, их отладка. Блок-схемы и листинг программ. Наборы тестов для отладки разработанных программ.
курсовая работа [575,8 K], добавлен 06.12.2013