ВВЕДЕНИЕ
Цель курсовой работы – получение навыков по алгоритмизации и программированию.
В ходе курсовой работы решаются различные задачи по изучению структуры подпрограммы, механизмов передачи параметров и возврата результатов из подпрограммы, вызова подпрограммы на выполнение. Также изучаются теоретические вопросы по использованию системы программирования C. В данной курсовой работе необходимо разработать алгоритмы решения четырех задач с использованием вспомогательных алгоритмов, оформить в виде блок-схемы основной и вспомогательный алгоритмы для каждой задачи, подготовить тесты для отладки программы и написать и отладить комментированные программы на языке С.
В процессе выполнения данной курсовой необходимо разработать программу для решения следующих четырех задач:
1. Используя вторую интерполяционную формулу Ньютона для заданного значения аргумента вычислить приближенное значение функции, заданной таблично;
2. Используя обобщенную формулу Cимпсона, вычислить определенный интеграл с заданной точностью;
3. С помощью метода Коши-Эйлера решить задачу Коши для дифференциального уравнения;
4. Используя метод прогонки, найти решение краевой задачи для обыкновенного дифференциального уравнения второго порядка.
Язык программирования С представляет высокоуровневый компилируемый язык программирования, который подходит для создания самых различных приложений, в том числе и для решения сложных математических задач, в которых присутствуют объёмные вычисления.
Использование современной системы программирования С для решения задач описанных в данной курсовой работе поможет многократно уменьшить время на их решение, избавит от случайных ошибок во время ручных вычислений.
1 ОСОБЕННОСТИ ИСПОЛЬЗОВАНИЯ ПОДПРОГРАММ
Мощность языка С во многом определяется легкостью и гибкостью в определении и использовании функций в С-программах. В отличие от других языков программирования высокого уровня в языке С нет деления на процедуры, подпрограммы и функции, здесь вся программа строится только из функций.
Функция - это совокупность объявлений и операторов, обычно предназначенная для решения определенной задачи. Каждая функция должна иметь имя, которое используется для ее объявления, определения и вызова. В любой программе на С должна быть функция с именем main (главная функция), именно с этой функции, в каком бы месте программы она не находилась, начинается выполнение программы.
При вызове функции ей при помощи аргументов (формальных параметров) могут быть переданы некоторые значения (фактические параметры), используемые во время выполнения функции. Функция может возвращать некоторое одно значение. Это возвращаемое значение и есть результат выполнения функции, который при выполнении программы подставляется в точку вызова функции, где бы этот вызов ни встретился. Допускается также использовать функции не имеющие аргументов и функции не возвращающие никаких значений. Действие таких функций может состоять, например, в изменении значений некоторых переменных, выводе на печать некоторых текстов и т.п..
С использованием функций в языке С связаны три понятия - определение функции (описание действий, выполняемых функцией), объявление функции (задание формы обращения к функции) и вызов функции.
Определение функции задает тип возвращаемого значения, имя функции, типы и число формальных параметров, а также объявления переменных и операторы, называемые телом функции, и определяющие действие функции. В определении функции также может быть задан класс памяти.
В языке С нет требования, чтобы определение функции обязательно предшествовало ее вызову. Определения используемых функций могут следовать за определением функции main, перед ним, или находится в другом файле.
Однако для того, чтобы компилятор мог осуществить проверку соответствия типов передаваемых фактических параметров типам формальных параметров до вызова функции нужно поместить объявление (прототип) функции.
Для решения задач в основном алгоритме main был разработан удобный интерфейс пользователя, позволяющий ознакомиться со списком всех задач и выбрать необходимую для выполнения. В зависимости от введённого значения происходит вызов функции для решения конкретной задачи и вывода результата на экран. После окончания вычислений пользователю вновь предлагается выбрать задачу. Для завершения работы программы достаточно ввести значение отличное от предложенных номеров задач.
При решении второй задачи пользователю также необходимо ввести точность. При этом происходит проверка на корректность введённых данных. Если пользователь ввёл число меньше нуля, либо букву, то программа выводит сообщение об ошибке и предлагает ввести значение еще раз.
Текст алгоритма main представлен в приложении Б. Бок-схема алгоритма на рисунке 1 в приложении А. Результат выполнения представлен на рисунке 2.1.
Необходимо используя вторую интерполяционную формулу Ньютона для заданного значения аргумента х*=0,153 вычислить приближенное значение функции, заданной таблично. Значения функции приведены в таблице 3.1.
Во второй задаче необходимо, используя обобщенную формулу Симпсона, вычислить определенный интеграл с заданной точностью.
В третьей задаче необходимо с помощью метода Коши-Эйлера решить задачу Коши для дифференциального уравнения
В четвертой задаче необходимо, используя метод прогонки, найти решение краевой задачи для обыкновенного дифференциального уравнения второго порядка:
В процессе выполнения курсового проекта были изучены различные теоретические вопросы использования системы программирования С, а также получены навыки по алгоритмизации и программированию.
Были изучена и применена на практике информация по структуре подпрограммы, механизмам передачи параметров в подпрограмму, возврата результатов из подпрограммы и вызова подпрограммы на выполнение.
В ходе выполнения курсового проекта были следующие математические задачи:
1. Используя вторую интерполяционную формулу Ньютона для заданного значения аргумента вычислить приближенное значение функции, заданной таблично;
2. Используя обобщенную формулу Cимпсона, вычислить определенный интеграл с заданной точностью;
3. С помощью метода Коши-Эйлера решить задачу Коши для дифференциального уравнения;
4. Используя метод прогонки, найти решение краевой задачи для обыкновенного дифференциального уравнения второго порядка.
Для каждой задачи разработаны алгоритмы, тесты и комментированный программный код. Алгоритмы для каждой задачи оформлены в виде блок-схем. Программа успешно прошла все разработанные тесты.
Решение задач объединено в одну программу с удобным интерфейсом пользователя. Все вводимые пользователем данные проверятся на корректность и в случае ошибки пользователю выдается соответствующее сообщение.
Использование современной системы программирования С для решения задач описанных в данной курсовой работе многократно уменьшило время на их решение и избавило от случайных ошибок во время ручных вычислений.
СКРИНШОТЫ РАБОТЫ


