Не отобразилась форма расчета стоимости? Переходи по ссылке

Не отобразилась форма расчета стоимости? Переходи по ссылке

Курсовая работа на тему «Программа для расчета корня уравнения»

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

Содержание

Введение

. Задача

. Математическая модель решаемой задачи

.1 Поиск корней функции

. Алгоритм решения задачи

.1 Описание блок-схемы алгоритма

.1.1 Описание процедуры DrawGraph()

.1.2 Описание функции MaxABSValue()

.1.3 Описание функции f()

Заключение

Список использованных источников

Приложение А

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Заказать курсовую

Приложение Б

Приложение В

Введение

В самом начале нашей истории для передачи информации использовался язык жестов, затем появилась устная речь. Информация должна быть полной и точной, чтобы человек мог точно ориентироваться в окружающем мире. Получение полной и точной информации о технике, обществе и о природе задача науки. Процесс научного познания начался после изобретения книгопечатания. Современный человек живет, взаимодействуя с «морем информации». Получает определенную информацию с помощью органов чувств. Хранит в памяти. С помощью мышления анализирует ее. И обменивается с другими людьми информацией.

Понятие «Информационное общество» было введено в научный оборот в 1960-х годах. В зарождающемся информационном обществе в ресурс превратилась сама информация. Существует такая поговорка: «Кто владеет информацией, тот владеет всем» и это надо помнить.

В современном информационном обществе главным ресурсом является информация. Процессы с ней базируются на информационных и коммуникационных технологиях. Информационные и коммуникационные технологии — это методы, устройств и производственных процессов, используемых обществом для сбора, хранения, обработки и распространения информации [1].

Информационные технологии (ИТ, от англ. information technology, IT) — это класс областей деятельности, относящихся к технологиям управления и обработкой огромного потока информации с применением вычислительной техники.

Согласно определению, принятому ЮНЕСКО, Информационные Технологии (ИТ) — это комплекс взаимосвязанных научных, технологических, инженерных наук, изучающих методы эффективной организации труда людей, занятых обработкой и хранением информации с помощью вычислительной техники и методы организации и взаимодействия с людьми и производственным оборудованием, их практические применение, а также связанные со всем этим социальные, экономические и культурные проблемы.

Информационные технологии (ИТ) — это процессы, использующие совокупность средств и методов сбора, обработки и передачи данных (первичной информации) для получения информации нового качества о состоянии объекта, процесса или явления (информационного продукта). Информационная технология является процессом, состоящим из четко регламентированных правил выполнения операций, действий, этапов разной степени сложности над данными, хранящимися в компьютерах. Составляющие информационной технологии.

Используемые в производственной сфере такие технологические понятия, как норма, норматив, технологический процесс, технологическая операция и т.п., могут применяться и в информационной технологии. Прежде чем разрабатывать эти понятия в любой технологии, в том числе и в информационной, всегда следует начинать с определения цели. Затем следует попытаться провести структурирование всех предполагаемых действий, приводящих к намеченной цели, и выбрать необходимый программный инструментарий [2].

Информационная технология, как и любая другая, должна отвечать следующим требованиям:

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

.        включать весь набор элементов, необходимых для достижения поставленной цели;

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

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

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Заказать курсовую

Освоение информационной технологии и дальнейшее ее использование должны свестись к тому, что нужно сначала хорошо овладеть набором элементарных операций, число которых ограничено. Из этого ограниченного числа элементарных операций в разных комбинациях составляется действие, а из действий, также в разных комбинациях, составляются операции, которые определяют тот или иной технологический этап. Совокупность технологических этапов образует технологический процесс (технологию). Он может начинаться с любого уровня и не включать, например, этапы или операции, а состоять только из действий [3].

1. Задача

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

Корень уравнения находится с помощью двух способов, в зависимости от варианта:

1.      метод Ньютона — касательных.

.        метод дихотомии — деления пополам.

Так как мой вариант — 19, следовательно, мне необходимо решить следующее уравнение:

                                                                   (1)

где x — неизвестная переменная.

Промежуток, на котором мне необходимо найти корень — , а метод, по которому он будет найден — метод дихотомии — деления пополам.

Программа может быть выполнена на любом языке программирования, кроме Ассемблера, поэтому мой выбор остановился на — C++.

2. Математическая модель решаемой задачи

Дихотомия (греч. διχοτομία: δῐχῆ, «надвое» + τομή, «деление») — раздвоенность, последовательное деление на две части, не связанные между собой. Способ логического деления класса на подклассы, который состоит в том, что делимое понятие полностью делится на два взаимоисключающих понятия. Дихотомическое деление в математике, философии, логике и лингвистике является способом образования подразделов одного понятия или термина и служит для образования классификации элементов.

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

Она известна также благодаря достаточно широко используемому методу поиска, так называемому методу дихотомии. Он применяется для нахождения значений действительно-значной функции, определяемых по какому-либо критерию (это может быть сравнение на минимум, максимум или конкретное число) [4].

.1 Поиск корней функции

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

Пусть функция  непрерывна на отрезке ,  и  — единственный корень уравнения . Поделим отрезок  пополам. Получим точку  и два отрезка .

·        Если , то корень  найден .

o   Если нет, то из двух полученных отрезков  и  надо выбрать один  такой, что , то есть , если  или , если .

Новый отрезок  делим пополам. Получаем середину этого отрезка  и так далее.

Для того, чтобы найти приближённое значение корня с точностью до , необходимо остановить процесс половинного деления на таком шаге , на котором  и вычислить . Тогда можно взять  [5].

3. Алгоритм решения задачи

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Подробнее

Чтобы решать данную задачу, первым делом необходимо определиться с отрезком, на котором будет происходить поиск корня по методу деления пополам, и точностью вычислений . Так как отрезок определен по задачу, то пользователю нету необходимости его вводить в программу. Для точности же, чтобы сделать программу чуть более универсальной, можно реализовать её ввод пользователем. Однако, необходимо удостовериться, что введенное число подходит под условие — .

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

Для более точного понимания алгоритма на рисунке 1 представлена структурная схема алгоритма.

Рисунок 1 — Структурная схема алгоритма

Код программы представлен в приложении Б, а результат работы программы в приложении В.

.1 Описание блок-схемы алгоритма

Описываемая блок-схема представлена в приложении А.

Сначала инициализируются переменные a, b, c, d типа double. Дальше для пользователя выводятся: решаемое уравнение, отрезок и метод решения. После чего для продолжения от пользователя требуется нажать . Теперь начинается непосредственно решение уравнения. Для начала пользователю необходимо ввести точность решения, при чем данный ввод реализован через цикл while, для того чтобы, значение удовлетворяло условию , если это не так, то программа выведет соответствующее сообщение и предложит ввести заново. Дальше к переменным a и b присваиваются значения соответствующим концам отрезка. После этого программа входит в цикл while и идет расчет корня уравнения по методу дихотомии — деления пополам. Для этого к переменной с присваивается значение половины суммы от произведения переменных a и b. Дальше если произведение функции от b на функцию от c меньше нуля, то к переменной a присваивается переменная с, иначе к переменной b присваивается переменная с. После того как условие цикла while, а именно — разность b и a больше е, не выполняется, происходит выход из него. И к переменной с присваивается значение половины суммы от произведения переменных a и b, что является конечным ответом — корнем уравнения. Теперь, когда корень уравнения известен, он выводится на экран. Снова для продолжения от пользователя требуется нажать после чего будет нарисован график. Для того чтобы нарисовать график первым делом рассчитываются точки по оси X и по оси Y, также определяется нулевой X и индексы для отрезка, чтобы обозначить его на графике отдельным цветом. Данные рассчитанные в прошлом шаге сообщаются в процедуру DrawGraph(), в которой происходит непосредственное рисование графика.

.1.1 Описание процедуры DrawGraph()

В вышеупомянутой блок-схеме присутствует также процедура DrawGraph(), которая реализовывает вывод графика функции на экран. Для начала идёт очистка экрана, после которой определяются окно для рисования и устройство, которое будет в нём заниматься рисованием. В зависимости от количества точек, определяется шаг в пикселях по оси X между ними. С помощью функции MaxABSValue() находится максимальное абсолютное число по оси Y, для того чтобы промасштабировать график под размер окна. Рисуются прямые системы координат, обозначаются оси и их нули. И наконец происходит вывод графика. После всего окно и устройство освобождаются от рисования.

.1.2 Описание функции MaxABSValue()

Для того, чтобы промасштабировать график под размер окна по оси Y, необходимо знать максимально возможное значение функции. Необходимо также учесть, что отрицательные значения также должны быть учтены, для этого значение функции возвращается абсолютное — по модулю.

Входные данные:

1.      Массив arr[] типа float;

.        Размер массива size типа int.

Первым делом инициализируется переменная max и к ней присваивается нулевое значение из массива. Дальше с помощью цикла for, программа проверяет, нету ли значения больше чем max и если есть, то присваивает его. После того как цикл закончился, переменная max возвращается.

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Подробнее

3.1.3 Описание функции f()

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

.        Значение x типа double.

В уравнение вместо неизвестной переменной x подставляется число со входа и функция возвращает получившийся ответ.

Заключение

программа расчет корень уравнение

В ходе написания программы, мною было изучено рисование в окне консоли на языке программирования C++, вывод различного текста и работа с типом данных LPTSTR — указатель на строку с завершающим нулевым символом из 8-разрядных символов Windows (ANSI). Также была написана универсальная процедура, которая выводит график функции на экран. Данная процедура требует минимальных изменений или не требует вообще, при использовании в других расчетах или программах. Она автоматически масштабирует график под размер окна, вне зависимости от его значений. Также обозначается система координат и значения. Нельзя не отметить одну интересную возможность данной процедуры — выделение заданного отрезка другим цветом, его значений и проекции, при необходимости.

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

Итак, я считаю, что с поставленной задачей я справился, программа удовлетворяет заданным требованиям.

Список использованных источников

1. Гейн А.Г., Сенокосов А.И., Юнерман Н.А. Информатика за 11 класс. Издание: 6-е изд. — М.: Просвещение, 2005 г.

. Ядов Г.Б. Информация и общество// Вокруг света. — 2004. — № 2.

. MSDN — сеть разработчиков Microsoft [Сайт]. URL: https://msdn.microsoft.com/. (19.05.2017).

. Левитин А. В. Глава 11. Преодоление ограничений: Метод деления пополам // Алгоритмы. Введение в разработку и анализ — М.: Вильямс, 2006. — С. 476-480. — 576 с. — ISBN 978-5-8459-0987-9.

. MachineLearning.ru — профессиональный информационно-аналитический ресурс, посвященный машинному обучению, распознаванию образов и интеллектуальному анализу данных [Электронный ресурс]. Метод дихотомии. (Дата публикации: 23 ноября 2008). URL: #»897066.files/image032.gif»>

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Цена курсовой

Приложение Б

Код программы

#include ;

#include ;

#include ;

#include ;

#include ;MaxABSValue(float arr[], int size) {max = abs(arr[0]);(int i = 1; i < size; i++) {(abs(arr[0]) > max)= abs(arr[0]);

}max;

}f(double x) {

//2x^3-11x^2-17x+1152 * pow(x, 3) — 11 * pow(x, 2) — 17 * x + 115;

}DrawGraph(int steps, float *graphY, int zeroX, LPTSTR minX, LPTSTR maxX, int segStart, LPTSTR segStartVal, int segEnd, LPTSTR segEndVal) {(«cls»);op;hWnd = GetConsoleWindow();hDC = GetDC(hWnd);graphPen = CreatePen(PS_SOLID, 1, RGB(0, 162, 232));segmentPen = CreatePen(PS_SOLID, 1, RGB(237, 28, 36));axisPen = CreatePen(PS_SOLID, 1, RGB(195, 195, 195));projectionPen = CreatePen(PS_SOLID, 1, RGB(136, 0, 21));(hDC, axisPen);substepX = (640 / steps);maxY = MaxABSValue(graphY, steps);(hDC, 0, 150, &op);(hDC, 640, 150);(hDC, zeroX*substepX, 0, &op);(hDC, zeroX*substepX, 480);(hDC, 632, 151, TEXT(«X»), 1);(hDC, 0, 151, minX, lstrlen(minX));(int i = 0; i < steps — 1; i++) {x1 = (i*substepX);y1 = -(graphY[i] / maxY) * (150);x2 = ((i + 1)*substepX);y2 = -(graphY[i + 1] / maxY) * (150);(i >= segStart && i <= segEnd)(hDC, segmentPen);(hDC, graphPen);(hDC, x1, 150 + y1, &op);(hDC, x2, 150 + y2);                 (i == zeroX) {(hDC, (i*substepX) — 8, 151, TEXT(«0»), 1);(hDC, (i*substepX), 0, TEXT(«Y»), 1);

}(i == steps — 2)(hDC, ((i + 1)*substepX), 151, maxX, lstrlen(maxX));(i == segStart) {(y1 >= 0)(hDC, ((i)*substepX), 134, segStartVal, lstrlen(segStartVal));TextOut(hDC, ((i)*substepX), 150, segStartVal, lstrlen(segStartVal));(hDC, projectionPen);(hDC, x1, 150, &op);(hDC, x1, 150 + y1);

}(i == segEnd) {(y2 >= 0)(hDC, ((i + 1)*substepX), 134, segEndVal, lstrlen(segEndVal));TextOut(hDC, ((i + 1)*substepX), 150, segEndVal, lstrlen(segEndVal));(hDC, projectionPen);(hDC, x2, 150, &op);(hDC, x2, 150 + y2);

}

}(hWnd, hDC);::cin.get();

}main() {a, b, c, e;(LC_CTYPE, «rus»);_s(«Поиск корня уравнения 2x^3-11x^2-17x+115 методом дихотомии — деления пополам, на отрезке от -4 включительно до -2 включительно.nn»);_s(«Нажмите чтобы продолжить.»);

_getch();_s(«nnВведите точность вычислений. 0 < e < 1.»);(true) {_s(«ne = «);_s(«%lf», &e);(e > 0 && e < 1);_s(«nВведено неверное значение.»);

}= -4;= -2;(b — a > e) {= (a + b) / 2;(f(b) * f(c) < 0)= c;= c;

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Подробнее

}= (a + b) / 2;_s(«nnКорень уравнения на данном отрезке равен — %f»,c);_s(«nnНажмите чтобы нарисовать график.»);

_getch();graphY[60];substep = 0.25f;x = -7.5f;zeroX = 0;start, end;(int i = 0; i < 60; i++) {value = x + substep*i;(value == -4)= i;(value == -2)= i;[i] = (float)f(value);(value == 0)= i;

}(60, graphY, zeroX, L»-7.5″, L»7.5″, start, L»-4″, end, L»-2″);

_getch();

}

Приложение В

Результат работы программы

Рисунок 1 — Окно программы, вывод уравнения, отрезка и метода решения

Рисунок 2 — ввод точности вычислений, проверка, проверка правильности введенного числа

Рисунок 3 — Вывод ответа

Рисунок 4 — Вывод графика на экран

Средняя оценка 0 / 5. Количество оценок: 0

Поставьте оценку первым.

Сожалеем, что вы поставили низкую оценку!

Позвольте нам стать лучше!

Расскажите, как нам стать лучше?

650

Закажите такую же работу

Не отобразилась форма расчета стоимости? Переходи по ссылке

Не отобразилась форма расчета стоимости? Переходи по ссылке