рекомендации исполнителю курсовой работы

advertisement
КОМИТЕТ ПО ОБРАЗОВАНИЮ И НАУКЕ РОССИИ
ВОЛЖСКАЯ ГОСУДАРСТВЕННАЯ ИНЖЕНЕРНО ПЕДАГОГИЧЕСКАЯ
АКАДЕМИЯ
МЕТОДИЧЕСКИЕ УКАЗАНИЯ
по выполнению курсовой работы
для студентов специальности 230100.02
«Сервис транспортных и технологических машин и оборудования»
(Автомобильный транспорт)
специализация 230101.02
«Автосервис и фирменное обслуживание»
Нижний Новгород
2005
ББК 22.18
О
УДК 519.682(075.8)
Методические указания по выполнению курсовой работы для студентов специальности 230100.02 «Сервис транспортных и технологических машин и оборудования» (Автомобильный транспорт) специализация 230101.02
«Автосервис и фирменное обслуживание». – Нижний Новгород: Изд-во
ВГИПА, 2005 г.
Методические указания содержат рекомендации по выполнению курсовой работы для студентов специальности 230100.02 «Сервис транспортных
и технологических машин и оборудования» (Автомобильный транспорт)
специализация 230101.02 «Автосервис и фирменное обслуживание».
Описаны этапы выполнения курсовой работы, даны практические рекомендации по разработке и отладке программ. Представлены задания для
выполнения курсовой работы с кратким описанием вычислительных методов. Представлен пример оформления программы.
Составители: к.ф-м.н., доцент Ю.Г.Орленко
к.т.н., доцент В.А.Соколов
ВВЕДЕНИЕ
Курсовая работа - самостоятельное исследование, имеющее результатом
готовый программный продукт - работающую программу.
Назначение курсовой работы - дать возможность учащимся проявить способности к самостоятельной деятельности.
Целью курсовой работы является построение работающего
алгоритма
решения задачи, реализованного в виде программы. Для достижения этой цели исполнитель должен пройти все этапы разработки программы:
1) Постановка задачи.
2) Построение модели и выбор метода решения.
3) Разработка алгоритма.
4) Написание программы (на QBasic).
5) Тестирование и отладка программы.
6) Выполнение программы с получением результатов.
7) Составление документации.
Результаты каждого этапа должны представляться в виде, соответствующем стандартам.
Ниже рассматриваются требования, предъявляемые к работе, и даются
рекомендации по каждому этапу.
В Приложении представлены образцы оформления блок-схемы программы, а также ее текст на языке QBasic.
3
1. ЭТАПЫ ВЫПОЛНЕНИЯ КУРСОВОЙ РАБОТЫ
Этап 1. П о с т а н о в к а з а д а ч и
На этом этапе от исполнителя требуется понять поставленную задачу.
Хорошая формулировка помогает пониманию задачи. Желательно найти ответы на следующие вопросы:
1) Что дано?
2) Что нужно найти?
3) Как определить решение?
4) Какие сделаны допущения и ограничения?
5) Какова форма выдачи результатов?
Для себя исполнитель должен твердо убедиться, что он понимает условие поставленной задачи и представляет требования, предъявляемые к решению.
Этап 2. П о с т р о е н и е м о д е л и и в ы б о р м е т о д а р е ш е н и я
Модель и выбранный метод решения существенно влияют на остальные этапы в процессе решения. При разработке модели прежде всего необходимо определить, какие математические структуры больше всего подходят для задачи. Исполнитель должен описать математически, что дано и что
требуется найти. Выбор подходящей структуры облегчается тем, что удобных структур не так уж и много. Необходимо учесть удобство представления, простоту и полезность операций, связанных с данной структурой. Модель может считаться подходящей, если можно утвердительно ответить на
вопросы:
- Вся ли важная информация хорошо описана математическими объектами?
- Существует ли математическая величина, ассоциируемая с искомым
результатом?
4
- Выявляются ли какие-нибудь полезные отношения между объектами
модели?
- Удобно ли работать с моделью?
Этап 3. Р а з р а б о т к а а л г о р и т м о в
Важное правило для исполнителя: не начинать программировать первый
пришедший в голову алгоритм , желательно просмотреть по крайней мере
несколько и выбрать лучший из них.
Начальным этапом разработки алгоритма является определение входных
и выходных параметров. Далее формируется интуитивная идея связи между
этими двумя множествами. На заключительном этапе интуитивная идея формулируется в виде формального набора инструкций, которые описывают указанную связь. Этот формальный набор инструкций и является алгоритмом.
Этап 4. Н а п и с а н и е п р о г р а м м ы
Фактором, сравнимым по значению с выбором алгоритма, является
описание данных. Хорошо продуманное описание данных существенно сокращает программу. Следует выбирать такое представление данных, которое
наилучшим образом соответствует рассматриваемой задаче.
Желательно ответить на следующие вопросы:
- Каковы основные переменные?
- Каких они типов?
- Сколько нужно массивов и какой размерности?
- Использовать ли записи, множества, файлы, ссылки?
После того, как разработан алгоритм в виде последовательности шагов и
построена подходящая система структуры данных, можно начать непосредственно написание программы. Прежде всего необходимо разработать ввод вывод, т.к. зачастую выбор метода ввода-вывода существенно влияет на всю
программу. Вопросы, возникающие на этом этапе:
5
- Каковы форматы ввода - вывода ?
- Как обеспечить диалог ?
При разработке программы обращается внимание на следующие критические параметры программы:
- память, требующаяся для ее работы;
- время ее работы;
- сложность.
В настоящее время на первое место по важности выдвинулся третий
параметр - сложность.
Чем сложнее программа, тем ее труднее контролировать, тестировать,
отлаживать и эксплуатировать. В настоящее время разработаны различные
методы ограничения сложности программ.
Основные методы, используемые для управления сложностью, это проектирование сверху-вниз и модульное программирование. Эти методы являются ядром структурного программирования.
Проектирование сверху- вниз
Этот метод предусматривает сначала определение задачи в общих чертах,
а затем постепенное уточнение структуры путем внесения более мелких деталей. Проектирование представляет собой последовательность шагов такого уточнения. На каждом шаге необходимо выявить основные функции, которые нужно выполнить, т.е. данная задача разбивается на ряд подзадач, пока эти подзадачи не станут настолько простыми, что каждой из них будет
соответствовать один модуль.
Модульное программирование
Модульное программирование - это процесс разделения программы на
логические части и последовательное программирование каждой части.
При этом необходимо добиться того, чтобы программный модуль:
- имел размер, удобный для восприятия;
6
- не зависел от источника входных данных, места назначения выходных данных, от предыстории.
Каждый модуль должен иметь свое назначение, отличающееся от назначения других модулей. Это должен быть замкнутый блок, вход и выход которого точно определены. Для модуля также должны быть определены:
- область допустимых входных значений;
- область возможных выходных значений;
- возможные побочные эффекты.
Использование модулей приводит к значительному уменьшению сложности программы.
Этап 5. Т е с т и р о в а н и е и о т л а д к а
На этот этап приходится основной объем времени разработки программы.
Рекомендации по тестированию
Цель тестирования - убедиться в том, что программа решает действительно ту задачу, для которой предназначена, и выдает правильный ответ
при любых условиях.
Принципы тестирования
1. Думать об этой стадии еще на этапе написания программы.
2. Тестирование проводится до тех пор, пока каждая команда
не будет использована хотя бы один раз.
3. Должна быть испытана каждая ветвь алгоритма.
4. Тесты должны содержать все типы данных.
Методы тестирования
1. Снизу - вверх - когда первоначально проверяются модули
нижнего уровня, затем тестируются элементы более высокого уровня
и так далее до тех пор, пока не будет завершено тестирование всей
7
программы.
2. Сверху - вниз - при этом вначале пишется основная программа, а незапрограммированные модули более низкого уровня заменяются так называемыми "заглушками" - простыми программами, имитирующими их функции.
При этом происходит проверка небольших и обозримых частей программы.
Условия тестирования
Тестирование обязательно должно проводится в:
- нормальных (типичных) условиях;
- экстремальных (крайних) условиях;
- исключительных (невозможных) ситуациях;
Проверка в нормальных условиях предполагает тестирование на основе данных, которые характерны для реальных условий функционирования
программы. Проверка в нормальных условиях должна показать, что программа выдает правильные результаты для характерных совокупностей данных.
Проверка в экстремальных условиях производится на граничных данных (т.е. граничных значениях области изменения, которые считаются еще
правильными).
Проверка в исключительных ситуациях производится на данных, значения которых лежат за пределами допустимой области изменения.
Рекомендации по отладке
Цель отладки - локализовать и устранить ошибки в программе, выявленные при тестировании.
Типичные ошибки:
- синтаксические - нарушение правил, определяемых языком программирования;
8
- семантические ошибки из-за недостаточного знания или понимания
программистом языка программирования или самой машины, например, когда оператор действует не так, как предполагает программист;
- ошибки при выполнении синтаксически правильных операторов, например, деление на нуль;
- ошибки, вызванные неверными данными.
Синтаксические ошибки находятся компилятором, но лучше их не делать
вообще, что вполне достижимо.
Собственно отладка начинается с того момента, когда перестают выдаваться сообщения о синтаксических ошибках. В начале процесса отладки
надо использовать простые тестовые данные. Если при этом получаются
верные результаты, следует переходить к тестированию программы посредством более сложных данных. В случае, если результаты неверны, возможны
следующие ситуации:
1. Синтаксических ошибок нет, но программа не скомпилирована.
2. Программа скомпилирована, работает, но не выдает результатов.
3. Программа скомпилирована, работает, но происходит преждевременный останов.
4. Программа скомпилирована, работает, но выдает неправильные результаты.
5. Программа зациклилась.
Принципы отладки
1. Думать о стадии отладки еще на этапе написания программы.
2. Отдавать себе отчет, что ошибки в программе наверняка существуют.
3. Не считать причиной ошибок машину.
4. Возникающие затруднения следует четко разделять и устранять строго
поочередно. Если внести сразу несколько изменений, то при появлении новых трудностей трудно определить, какое из произведенных изменений послужило их причиной.
9
5. Сохранять последние исправленные варианты, так как попытки исправить ту или иную ошибку могут повлечь возникновение новых ошибок, поэтому желательно иметь возможность возврата к предыдущему этапу отладки.
Методы обнаружения ошибок
Процесс обнаружения ошибок характеризуется выявлением двух мест в
программе: точки обнаружения и точки происхождения.
Точка обнаружения - это место в программе, где ошибка себя проявляет или становится очевидной. Точка обнаружения должна выявляться первой.
Точка происхождения - это место в программе, где возникают условия
для появления ошибки. Действительная ошибка исходит не из точки обнаружения, а из точки происхождения, точка же обнаружения служит отправным пунктом для поиска точки происхождения.
Этап 6. В ы п о л н е н и е п р о г р а м м ы с
получением результатов
На этом этапе отлаженная и протестированная программа запускается на
реальных данных, и полученные результаты анализируются.
Этап 7. С о с т а в л е н и е д о к у м е н т а ц и и
Цель документирования - дать пользователю или программисту возможность разобраться в программе и правильно ее использовать.
Разработка документации начинается одновременно с началом работы
над программой и продолжается до полного завершения работы.
В документации отражается следующее:
1. Функциональная спецификация: что программа дает пользователю;
2. Программная спецификация: как использовать или изменять программу;
10
3. Эксплуатационные процедуры: запуск и работа программы;
4. Процедуры тестирования и сопровождения: как тестировать программу.
Описание элементов каждого уровня документации:
1. Функциональная спецификация
Что делает программа:
- задача, которую она решает;
- метод решения;
- требования к входным данным;
- выходная информация;
- ссылки на литературу.
2. Программная спецификация
- подробное описание метода решения;
- блок-схема;
- распечатка;
- пояснения к программе.
3. Эксплуатационные процедуры
- требования к техническому обеспечению (тип ЭВМ,
требуемый объем памяти, периферийные устройства);
- требования к подготовке данных;
- инструкция по запуску и работе программы.
4. Процедуры тестирования и сопровождения
- тестовые данные;
- результаты, соответствующие тестовым данным.
Качественно написанная документация помогает сэкономить значительное время и позволяет избежать многих недоразумений.
Рекомендации по оформлению программы
Главная цель документации - помочь понять программу, чтобы ею можно было пользоваться, чтобы она могла просуществовать долго. В идеале
11
программа должна быть написана так, чтобы она была как бы самодокументируемой, но это удается редко. Этой цели способствует следование следующим правилам:
1. Комментарии должны быть правильными и информативными. Комментарии, которые просто повторяют операторы программы, не дают ничего,
они лишь загромождают программу. Неправильные комментарии опасны;
люди склонны им верить без проверки
текста программы.
2. Комментарии следует писать одновременно с текстом программы.
3. Следует использовать мнемонические имена для программных объектов, указывающих на их функции в программе.
4. В начале программы следует сообщить полезную информацию:
- подробный заголовок, имя автора, дату и т.д.;
- краткое описание того, что делает программа, и, возможно, того,
как она это делает;
- список используемых подпрограмм;
- список и описание тех объектов, назначение которых не видно с
первого взгляда;
- информацию о необходимых входных данных и выдаваемых выходных данных.
Аналогичная информация сообщается и перед подпрограммами.
5. Документации не должно быть слишком много, иначе затеряется сама
программа.
6. Следует стремиться к четкости:
- упорядочивать имена в логической последовательности или по
алфавиту;
- делать отступы в соответствии с логическими уровнями;
- отделять логические блоки или выделять комментарии пустыми
строками;
- разбивать длинные выражения на части.
12
7. Вообще, следует писать такую программу, которую было бы приятно
читать.
2. ЗАДАНИЯ ДЛЯ ВЫПОЛНЕНИЯ КУРСОВОЙ РАБОТЫ
Задание 1. Решение алгебраических и трансцендентных
уравнений
Краткое теоретическое введение. В практических вычислениях довольно
часто приходится решать уравнения вида:
F(x)=0,
(1)
где функция f(x) определена и непрерывна на некотором конечном или бесконечном интервале, а<x<b.
Если функция определяет собой многочлен, то уравнение (1) называют алгебраическим, если же в функцию f(x) входят элементарные (тригонометрические, логарифмические, показательные и т.п.) функции, то такое уравнение
называют трансцендентным.
Всякое значение х*, обращающее функцию f(x) в нуль, т.е. такое, что
f(x*)  0 ,
называется корнем уравнения (1), а способ нахождения этого значения x* и
есть решение уравнения (1).
Найти корни уравнения (1) точно удается лишь в частных случаях. Поэтому разработаны методы численного решения уравнений вида (1), которые
позволяют отыскать приближенное значение корней этого уравнения.
При этом приходится решать две задачи:
1)
отделение корней, т.е. отыскание достаточно малых областей, в каждой из которых заключен один и только один корень уравнения;
2)
вычисление корней с заданной точностью.
При выделении областей, в которых находятся действительные корни
уравнения (1), можно воспользоваться тем, что если на концах некоторого
13
отрезка непрерывная функция f(x) принимает значения разных знаков, то на
этом отрезке уравнение (1) имеет хотя бы один корень.
Для выделения областей, содержащих один и только один корень, можно
воспользоваться, например, графическим способом.
Для решения второй задачи существуют многочисленные методы. Рассмотрим три метода: метод итераций, метод Ньютона и метод половинного деления (дихотомии).
Будем считать, что нам известен отрезок α<x<β, внутри которого существует и располагается один и только один корень уравнения (1).
Задача состоит в нахождении этого корня.
Метод итераций. Уравнение (1) представим в виде
х=φ(х),
(2)
что всегда можно сделать и притом многими способами. Например, можно
выделить из уравнения (1) х, остальное перенести в правую часть (это будет
φ(х)). Или умножить левую и правую части (1) на произвольную константу λ
и прибавить к левой и правой частям х, т.е представить (1) в виде х=х+λf(x).
При этом φ(х)=х+λf(х).
Выберем на отрезке [α,β] произвольную точку х0 – нулевое приближение,
и примем в качестве следующего приближения х1=φ(х0), далее х2=φ(х1), и
вообще пусть хn получается из хn-1 по формуле
хn=φ(хn-1).
(3)
Этот процесс последовательного вычисления чисел хn (n=1,2,3,…) по формуле (3) называется методом итераций.
Если на отрезке [α,β], содержится корень х=х* уравнения (2), а также его
последовательные приближения х1,х2,…хn,…, вычисленные по методу итераций, выполнено условие | φ(х) |≤q<1, то процесс итераций сходится, т.е. увеличивая n можно получить приближение, сколь угодно мало отличающегося
от истинного значения корня х*.
Процесс итераций следует продолжать тех пор, пока для двух последовательных приближений хn-1 и хn не будет обеспечено выполнение неравенства
14
|хn - хn-1|≤
1q
q
≤ε;
(4)
при этом всегда будет выполняться неравенство |х* - хn|≤ε, где ε – заданная
предельная абсолютная погрешность корня х*.
Если q≤0,5, то
1q
q
≥1 и (4) можно пользоваться более простым соотноше-
нием
|хn - хn-1|≤ε,
(5)
при выполнении, которого также будет обеспеченна заданная точность определения корня х*.
При практическом нахождении корней по методу итераций нужно при переходе от уравнений (1) к уравнению (2) стремиться представить φ(х) так,
чтобы производная φ′(х) по абсолютной величине была, возможно, меньше 1.
Метод Ньютона. Пусть уравнение f(x)=0имеет один корень на отрезке
[α,β], причем f′(x) и f′′(x) определены, непрерывны и сохраняют постоянные
знаки на отрезке [α,β].
Выведем формулу для последовательных приближений к корню. Уравнение касательной через точку Р0(х0,f(x0)), имеет вид:
y=f(x0)+f′(x0)(x-x0).
Полагая у=0, находим абсциссу х1 точки пересечения касательной с осью
Ох:
x1=x0-
f ( x 0)
,
f ( x 0)
Следующие приближения находим соответственно по формулам:
x2=x1-
f ( x1)
,
f ( x1)
............
(6)
f(
)
xn=xn-1- x n 1 .
f ( x n 1)
Процесс вычисления приближений прекратим при выполнении условия
|хn - хn-1|≤
15
2m
,
M
где m - наименьшее значение |f′(x)| на отрезке [α,β]; M – наибольшее значение |f′′(x)| на отрезке [α,β].
При этом условии будет выполнено неравенство |х* - хn|≤ε, где ε – заданная предельная абсолютная погрешность корня х*.
Начальное приближение х0 целесообразно выбирать так, чтобы было
выполнено условие f(x0) f′′(x0)>0.
Метод половинного деления. Пусть дано уравнение f(x)=0, где функция
f(x) непрерывна на отрезке [α,β] и f(α)f(β)<0.
Для нахождения корня уравнения (1), принадлежащего отрезку [α,β], делим отрезок пополам, т.е. выбираем начальное приближение равным
х0=(α+β)/2. Если f(x0)=0, то x0 является корнем уравнения. Если f(x0)≠0, то
выбираем тот из отрезков [α,x0] или [x0,β], на концах которого функция f(x)
имеет противоположные знаки. Полученный отрезок делим пополам и проводим то же рассмотрение и т.д.
Процесс деления отрезков пополам проводим до тех пор, пока длина отрезка, на концах которого функция имеет противоположные знаки, не будет
меньше наперед заданного числа ε.
Варианты заданий
Отрезок,
п/п
Уравнение
Метод
Приближен-
содержащий численного ное значение
корень
решения
корня
1
3sin х +0,35х – 3,8=0
[2;3]
Итераций
2,2985
2
– 0,25х3+х – 1,2502=0
[0;2]
Ньютона
1,0001
3
х + х + 3 х – 2,5 =0
[0,4;1]
Дихотомии
0,7376
[0;0,85]
Итераций
0,2624
[1;2]
Ньютона
1,1183
[0;0,8]
Дихотомии
0,3333
1
=0
3  sin 3,6 x
4
х–
5
0,1х2 – х lnx=0
6
tg x– tg3 x+ tg5 x –
1
3
1
5
16
1
=0
3
7
3
arcos x – 1 0,3 x =0
[0;1]
Итераций
0,5629
8
3x – 4 ln x – 5 =0
[2;4]
Ньютона
3,2300
1
2
1
– 2 sin + = 0
х
х
х
[1;2]
Дихотомии
1,8756
1  0,4 х 2 - arcsinx = 0
[0;1]
Итераций
0,7672
[0;1]
Ньютона
0,8814
[1;3]
Дихотомии
1,3749
[1,2;2]
Итераций
1,3077
[3;4]
Ньютона
3,5265
9
cos
10
ex – e-x – 2 = 0
11
12
sin(lnx)–cos(lnx)+2lnx =
0
1
=0
х
13
x – 2 + sin
14
ex +lnx – 10x =0
15
cosx – e-x + x – 1 = 0
[1;2]
Дихотомии
1,0804
16
1 – x + sinx – ln(1+x)=0
[0;1,5]
Итераций
1,1474
17
3x – 14 + ex – e-x =0
[1;3]
Ньютона
2,0692
[0;1]
Дихотомии
0,5768
2
1  х - tgx = 0
18
19
x+cos(x0,52+2)=0
[0,5;1]
Итераций
0,9892
20
3ln2x+6lnx – 5 =0
[1;3]
Ньютона
1,8832
21
sinx2 + cos x2 – 10x = 0
[0;1]
Дихотомии
0,101
22
x2 – ln(1+x) – 3 =0
[2;3]
Итераций
2,0267
23
2x sinx – cosx =0
[0,4;1]
Ньютона
0,6533
24
ex + 1 e 2 x – 2 = 0
[-1;0]
Дихотомии
–0,2877
25
ln x – x +1,8 = 0
[2;3]
Итераций
2,8459
[0,2;1]
Ньютона
0,5472
[1;2]
Дихотомии
1,0769
[1;2]
Итераций
1,2388
26
27
28
tg
x·tgx –
1
=0
3
x
2
x
2
ctg +x =0
0,4+arctg x
x=0
17
29
30
1 x
cos 1  x =0
[0;1]
Ньютона
0,4538
0,6·3x – 2,3x – 3 =0
[2;3]
Дихотомии
2,42
Задание 2. Вычисление определенных интегралов
В научно-технических задачах нередко возникает необходимость вычисления определенного интеграла вида
b
 f ( x )dx .
(7)
a
При этом подынтегральная функция может быть задана как аналитически, так и таблично. Для приближенного вычисления интеграла (7) существует много численных методов, из которых рассмотрим три: метод прямоугольников, метод трапеций и метод Симпсона.
Метод прямоугольников
b
Вычислить определенный интеграл I=  f ( x )dx методом прямоугольников:
a
I= 
ba
( y 0  y1  ...y n ) , где n-количество отрезков разбиения; y0, y1,…yn –
n
значения функции на концах отрезков.
Метод трапеций.
Приближенное значение интеграла по формуле трапеций имеет вид:
b
 f ( x)  h(y0 + 2y1 + …+ 2yn-1 + yn)/2,
a
где
h=
ва
, x0=a, x1=a+h, …,xn=b.
n
yi=f(xi), xi=a+ih, i=0,1, … , n.
Метод Симпсона.
Приближенное значение интеграла по формуле Симпсона имеет вид:
18
b
 f ( x)  h(y0 + 4y1 +2y2 +…+ 4y2n-1 + y2n)/6,
a
где
h=
ва
, x0=a, x1=a+h, …,x2n=b.
n
yi=f(xi), xi=a+ih, i=0,1, … , 2n.
Варианты заданий
Подынте№
гральная
[a;b]
Метод
функция
1
ln x
x 1  ln x
2
tg2x + ctg2x
3
1
x lg x
[2;3]
4
ln 2 x
x
[1;4]
5
e x 1
x
[1;3,5]
[π/6;
π/3]
[0;ln2]
6
x·e sinx
[0;1]
7
x·shx
[0;2]
8
9
1
9  x2
1
1
sin
2
x
x
Прямоугольников
Трапеций
Симпсона
Точное значение
первообразной
2
(lnx +1)3/2 – 2(lnx+1)1/2 + 4
3
3
tgx–ctgx– 2x –tg



– ctg +
6
6
3
2,3026(ln lnx – ln ln2)
Прямоугольников
1 3
ln x
3
Симпсона
2 e x  1 – 2arctg e x  1
Трапеций
Прямо-
(x ex (sin x– cos x) + ex cosx –
1))/2
угольников
x (e x  e  x )
e x  ex
–2
2
[0;2]
Трапеций
ln(x+ x 2  9 ) – ln3
[1;2,5]
Симпсона
19
=0
cos
1
– cos1
x
10
11
12
13
x·arctgx
[0; 3 ]
угольников
1
x2
x
arctgx + arctgx
2
2
2
x
1 x
[0;3]
Симпсона
x x (1+lnx)
[1;3]
Трапеций
xx - 1
Прямо-
x  0,75  ( x  0,75) 2  0,06
1
ln
0,75  0,5
2
arcsin
1
1  3x  2 x 2
x  0,16
x
[0;1]
2
14
23x
15
16
Прямо-
[1;2]
1 x2
[0;1]
17
e3x  1
ex 1
[0;2]
18
sin2x
[0; ]
2
4x
x + arctg x
x 2  0,16 - 0,4 arccos
Трапеций
0,4
x
- 0,84 + 0,4 arccos 0,4
[0;1]
x  arctgx
угольников
x
1 x
arcsin

2
Прямоугольников
1  x 2 arctg x – ln(x+ 1  x 2 )
Симпсона
e2x
- ex + x + 0,5
2
Трапеций
x
1
- sin 2x
2
2
Прямо-
2arcsin
x 1
x
- sin(4 arcsin )
2 2
2
19
x
20
ex cos2 x
[0;π]
Трапеций
2 sin 2 x  cos 2 x
ex
(1+
) – 0,6
5
2
21
(x·lnx)2
[1;e]
Симпсона
2
x3
(9 ln2x – 6 lnx + 2) 27
27
22
23
24
arcsin
2
x
1 x
x 2 1
( x 2  1) x 4  1
sinx·ln(tgx)
[0;1,99]
1
(23x – 1)
3 ln 2
Симпсона
[0;3]
[0;1]
[1;1,5]
угольников
Прямоугольников
Симпсона
Прямоугольников
20
x arcsin
-
x
1 x
x + arctg x
2
sin( 2 x arctgx)
arcsin(
)
2
2
ln(tg
x
) – (cosx)(ln(tgx)) –
2
lntg0,5+ +(cos1) lntg1
25
26
27
28
e x (1  sin x)
1  cos x
1
( x  1) x 2  1
1
(3 sin x  2 cos x) 2
 ln x 


 x 
[0;1,5]
Симпсона
[0;3/4]
Трапеций
[0;1]
Симпсона
Прямо-
3
[1;2]
29
x3
3 x
30
x2
x 4  3x 2  2
[1;2]
[1;2]
arcsin a  arccos 1  a 2  arctg
arctga  arcctg
угольников
Симпсона
ex tg
1  x  2( x 2  1)
1 2
1
 ln
( ln
)
2
2( x  1)
2
3
3 cos x  2 sin x

26 13(2 cos x  3sin x)

(ln x ) 3  3(ln x ) 2 / 2  3(ln x ) / 2  3 / 4 3

8
2x 2
9x 
3x 2 x 3
47
  27 ln( 3  x )   27 ln 4
2
3
6
Трапеций
a
1 a
2
x
2
1
x2 1 1 2
 ln 2
 ln
2
x 2 2 3
a
; arccos a  arcsin 1  a 2  arcctg
1 a2
1
a
1
 arcsin
 arccos
a
1 a2
1 a2
e x  ex
shx 
;
2
e x  ex
chx 
2
Задание №3. Вычисление конечных сумм
Краткое теоретическое введение. Работа содержит задачи, которые сводятся к нахождению суммы некоторого количества слагаемых s   an ( x) при
n
различных значениях параметра суммирования х.
Каждое слагаемое суммы зависит от параметра х и номера n, определяющего место этого слагаемого в сумме.
Обычно формула общего члена суммы принадлежит к одному из следующих трех типов:
21
а)
xn
;
n!
(1) n
cos nx
x 2 n1
; б)
;
n
(2n  1)!
sin( 2n  1) x
x 4 n1
в)
;
2n  1
4n  1
cos nx
.
n2
(1) n
В случае а) для вычисления члена суммы целесообразно использовать
рекуррентные соотношения, т. е. выражать последующий член суммы через
предыдущий. Это позволит существенно сократить объем вычислительной
работы.
В случае б) применение рекуррентных соотношений нецелесообразно.
Вычисления будут наиболее эффективными, если каждый член суммы вычислять по общей формуле.
В случае в) член суммы целесообразно представить в виде двух сомножителей, один из которых вычисляется по рекуррентному соотношению, а
другой – непосредственно. Например если an 
вычисляем рекуррентно сn  cn1 x 4 , а
x 4 n1
, то полагая cn  x 4 n1 и
4n  1
1
- непосредственно.
4n  1
Варианты заданий
№
1
Сумма
S= 
n
2
3
[π/5;9π/5]
20
Y=  ln 2 sin
x 2 n1
(2n  1)!
[0,1;1]
10
Y=sinx
sin nx
n
[π/5;4π/5]
20
Y=
[1;2]
15
Y= e x
[0,1;1]
20
S=  (1) n
S=  (1) n1
S= 
S= 
n
Y=3x
cos nx
n
n
6
Функция у
10
n
5
N
[0,1;1]
n
4
аргумента
ln n 3 n
x
n!
S= 
n
Изменение
xn
n!
cos n
n!

4 xn
22
Y= e
x cos
x
2
x
2

4
cos( x sin

4
)
7
S=  (1) n
n
8
x 2n
(2n)!
S=  x n sin n
9
n
12
S= 
14
Y= e cos x cos(sin x)
2n  1 2 n
x
n!
[0,1;1]
10
Y=(1+2x2) e x
[0,1;0,8]
20
1 1 x 1
y   ln
 arctgx
2 1 x 2
[0,2;1]
10
1
y  ln x
2
1 2 2
y  (x  )
4
3
x n cos n
21
x 2 n1
4n 2  1
[0,1;1]
20
sin( 2n  1) x
2n  1
[0,1;0,8]
20
x 2n
(2n)!
[π/10;9π/10]
10
cos 2nx
4n 2  1
[0,1;1]
20
( 2 x) n
n!
[0,1;1]
20
Y=e2x
[0,1;1]
20
 x 2 x  2x
y     1e
 4 2 
[0,1;0,5]
20
y=arctgx
S=  (1) n1
S= 
S= 
S= 
n 21  x 
S= 
 
n!  2 
n
S=  (1) n
n
2 n 1
20
n
20
2
[π/5;π]
n
19
1 x 1
 arctgx
1 x 2
cos nx
n2
n
18
3
1
4
Y= ln
n
S=  (1) n
n
17

1  x 1 
S= 


n 2n  1  x  1 
S= 
4
 x2
15
n
16
1  2 x cos
4

[0,1;1]
n
15
Y=
cos nx
n!
n
13
20
20
S= 
S= 
[0,1;0,8]
4

[0,1;0,8]
n
11
Y= cos x
x 4 n1
4n  1
S= 
n
10
10
x sin

n
[0,1;1]
n
x 2 n1
2n  1
23
y
1 x2
x
arctgx 
2
2
y
y
y

4
e x  ex
2
1 
 sin x
2 4
22
S=  (1) n
n
23
2n n  1 2 n
x
(2n)!
[0,1;1]
15
(2 x) 2 n
(2n)!
[0,1;1]
15
y  2(cos 2 x  1)
[-2;-0,1]
20
y  ln
[0,1;1]
15
y
[0,2;0,8]
15
S=  (1) n
n
24
25
(1  x) 2 n
S=  (1)
n
n
n
S= 
n
26
x 2 n1
(2n  1)!
S=  (1) n
n
27
S=  x n cos n
n
28
29

4
S=  n(n  2) x n
n
S= 
n
30
n2 xn
(2n  1)!
cos( 2n  1) x
(2n  1) 2
S=  (1) n1
n
x 2n
2n(2n  1)
[0,1;0,8]
20
[0,1;0,8]
20
[π/5;π]
20
[0,1;0,8]
10
y  (1 
x2
x
) cos x  sin x
2
2
1
2  2x  x2
e x  ex
2
1 x 1
y (
sh x  ch x )
4
x
x cos
y

 x2
4
1  2 x cos
y
y

4
 x2
x(3  x)
(1  x) 3
2
8


4
x
y  xarctgx  ln 1  x 2
Задание 4. Использование подпрограмм
При программировании различных задач довольно часто возникают ситуации, когда те или иные однотипные вычисления встречаются несколько
раз в одной и той же программе, либо повторяются в различных задачах. В
таких случаях целесообразно алгоритм указанных вычислений один раз запрограммировать в общем виде, т.е. описать как подпрограмму, и по мере
надобности использовать, т.е. производить обращение к подпрограмме.
Варианты заданий
24
1. Заданы четыре вектора
x  x1 , x2 , x3 , y  y1 , y2 , y3 ,
z  z1 , z 2 , z3 
и
p  p1 , p2 , p3  . Логической переменной а присвоить значение TRUE, если ска-
лярное произведение векторов x и у больше скалярного произведения векторов z и p, и значение FALSE в противном случае.
Вычисление скалярного произведения оформить в виде процедуры.
2. Решить уравнение dx=c, где d – длина вектора z  z1 , z2 , z3  и с – длина
вектора p  p1 , p2 , p3  .
Вычисление длины вектора оформить в виде функции.
3. Заданы две матрицы
 a11 a12

A   a21 a22
a
 31 a32
a13 
 b11 b12


a23  , и B   b21 b22
b
a33 
 31 b32
b13 

b23  .
b33 
Проверить, является ли произведение этих матриц перестановочным, т.е.
проверить равенство AB=BA. В случае положительного ответа напечатать
«AB=BA», иначе напечатать «ПРОИЗВЕДЕНИЕ НЕПЕРЕСТАНОВОЧНО».
Вычисление произведения двух матриц оформить в виде процедуры.
4. Заданы два вектора x  x1 , x2 , x3 и у  у1 , у2 , у3 . Логической переменной
а присвоить значение TRUE, если длина векторов x больше длины вектора у,
и значение FALSE в противном случае.
Вычисление длины вектора оформить в виде процедуры.
5. Заданы два вектора x  x1 , x2 , x3 и у  у1 , у2 , у3 .Определить угол φ между векторами х и у по формуле
  arccos
( x, y)
.
( x, x)( y, y)
Вычисление скалярного произведения оформить в виде функции.
6. Заданы две матрицы
a12 
a
 ,
A   11
a
a
22 
 21
25
 b11 b12

B   b21 b22
b
 31 b32
b13 

b23  .
b33 
Выяснить и напечатать, сколько из них являются симметрическими
(нуль, одна или две). Матрица называется симметрической, если транспонированная матрица равна исходной.
Транспонирование матрицы оформить в виде процедуры.
7. Заданы два . массива x  x1 , x2 , x3 и у  у1 , у2 ,..., у6 . Переменной S присвоить значение -1, если максимальный элемент массива х больше максимального элемента массива у; 0, если максимальные элементы массивов х и у
равны; 1, если максимальный элемент массива х меньше максимального элемента массива у.
Поиск максимального элемента массива оформить в виде процедуры.
8. Четыре точки заданы своими координатами x  x1 , x2 , x3 , y  y1 , y2 , y3 ,
z  z1 , z 2 , z3  и p  p1 , p2 , p3  .Выяснить какие из них находятся на максималь-
ном расстоянии друг от друга, и вывести значение этого расстояния.
Вычисление расстояния между точками оформить в виде процедуры.
9. Четыре точки заданы своими координатами x  x1 , x2 , x3 , y  y1 , y2 , y3 ,
z  z1 , z 2 , z3  и p  p1 , p2 , p3  . Выяснить какие из них находятся на минималь-
ном расстоянии друг от друга, и вывести значение этого расстояния.
Вычисление расстояния между точками оформить в виде функции.
10. Заданы две матрицы
a12 
a
 ,
A   11
 a21 a22 
 b11

b
B   21
b
 31
b
 41
b12
b22
b32
b42
b13 b14 

b23 b24 
.
b33 b34 

b43 b44 
Построить таблицу функции у=сх2+d при х, меняющемся от 0 до 1 с шагом 0,1, где с есть след матрицы А, d есть след матрицы В. Следом матрицы
называется сумма элементов главной диагонали.
Вычисление следа матрицы оформить в виде процедуры.
11. Заданы три массива x  x1 , x2 , x3 , y  y1 , y2 , y3 , и p  p1 , p2 , p3 , p4 , p5 .
Упорядочить по возрастанию три числа а,в и с, где а – минимальный элемент
26
массива х, в – минимальный элемент массива у, а с минимальный элемент
массива р.
Поиск минимального элемента оформить в виде функции.
12. Заданы два вектора z  z1 , z2 , z3 , p  p1 , p2 , p3  и матрица
 b11 b12

B   b21 b22
b
 31 b32
b13 

b23  .
b33 
Найти сумму двух векторов с и d, где вектор с есть произведение вектора
z на матрицу А, а вектор d – произведение вектора р на матрицу А.
Вычисление произведения вектора на матрицу оформить в виде процедуры.
13. Заданы три матрицы
a12 
a
 ,
A   11
 a21 a22 
 b11 b12

B   b21 b22
b
 31 b32
 с11 с12

b13 

с
с
b23  , С   21 22
с
с
 31 32
b33 
с
 41 с42
с13
с23
с33
с43
с14 

с24 
.
с34 

с44 
Найти минимальное из трех чисел х, у и z, где х есть след матрицы А, у –
след матрицы В, z – след матрицы С. Следом матрицы называется сумма
элементов главной диагонали.
Вычисление следа оформить в виде функции.
14. Заданы стороны двух треугольников: ABC (стороны a, b, c) и PLF
(стороны p, l, f). Переменной S присвоить значение – 1, если площадь треугольника ABC меньше или равна площади треугольника PLF, и значение 1,
если площадь треугольника ABC больше площади треугольника PLF.
Вычисление площади треугольника оформить в виде процедуры.
15. Построить таблицу функции z=sh(x+y), где х меняется от 1 до 2 с шагом 0,2; у меняется от 2 до 3 с шагом 0,1. Гиперболический синус вычисляется по формуле
shx 
e x  ex
.
2
Вычисление гиперболического синуса оформить в виде процедуры.
27
16. Заданы стороны двух треугольников: ABC (стороны a, b, c) и PLF
(стороны p, l, f). Найти сумму и разность площадей треугольников ABC и
PLF.
Вычисление площади треугольника оформить в виде функции.
17. Построить таблицу функции z=сh(x2+y2), где х меняется от 3 до 4 с
шагом 0,1; у меняется от 2 до 3 с шагом 0,2. Гиперболический косинус вычисляется по формуле
сhx 
e x  ex
.
2
Вычисление гиперболического косинуса оформить в виде функции.
18. Заданна последовательность чисел a  a1 , a2 ,..., a6  . Выбрать из них
принадлежащие отрезку [x,y]. Из выбранных чисел образовать вектор.
Проверку на принадлежность числа отрезку оформить в виде функции.
19. Четыре точки заданы своими координатами x  x1 , x 2 , y  y1 , y 2 ,
z  z1 , z2  и p  p1 , p2 . Выяснить и напечатать, сколько из них принадлежат
полосе, аналитически заданной неравенствами: f<Ma1+Na2<r.
Проверку на принадлежность точки полосе оформить в виде процедуры.
20.
Три
точки
заданы
своими
декартовыми
координатами
x  x1 , x2 , x3 , y  y1 , y2 , y3 , z  z1 , z 2 , z3 . Выяснить и напечатать полярные коор-
динаты этих точек. При выдаче на печать координаты точек упорядочить по
возрастанию полярного радиуса ρ, Полярный радиус ρ и полярный угол φ
вычисляются по следующим формулам:
  x12  x22 ,   arctg
x2
.
x1
Перевод в полярные координаты оформить в виде процедуры.
21.
Три
точки
заданы
своими
декартовыми
координатами
x  x1 , x2 , x3 , y  y1 , y2 , y3 , z  z1 , z 2 , z3 . Выдать на печать координаты этих то-
чек по возрастанию угла между осью абсцисс и лучом, соединяющим начало
координат с соответствующей точкой.
28
Вычисление угла между осью абсцисс и лучом, соединяющим начало
координат с точкой, оформить в виде функции.
22. Заданы три матрицы
a12 
a
 ,
A   11
 a21 a22 
 b11 b12

B   b21 b22
b
 31 b32
 с11 с12

b13 

с
с
b23  , С   21 22
с
с
 31 32
b33 
с
 41 с42
с13
с23
с33
с43
с14 

с24 
.
с34 

с44 
Упорядочить по убыванию три числа x, y и z, где х есть максимальный
элемент матрицы А, у – максимальный элемент матрицы В, а z – максимальный элемент матрицы С.
Поиск максимального элемента оформить в виде процедуры.
23. Заданы две матрицы
 a11 a12

A   a21 a22
a
 31 a32
a13 
 b11 b12


a23  , и B   b21 b22
b
a33 
 31 b32
b13 

b23  .
b33 
Найти след матрицы, равной произведению AB, и след матрицы, равной
произведению BA. Следом матрицы называется сумма элементов главной
диагонали.
Вычисление произведения двух матриц оформить в виде процедуры.
24.
Три
точки
заданы
своими
декартовыми
координатами
x  x1 , x2 , x3 , y  y1 , y2 , y3 , z  z1 , z 2 , z3 . Выдать на печать координаты точки, для
которой угол между осью абсцисс и лучом, соединяющим начало координат
с точкой, минимальный.
Вычисление угла между осью абсцисс и лучом, соединяющим начало
координат с точкой, оформить в виде процедуры.
25. Заданы три матрицы:
a12 
a
 ,
A   11
 a21 a22 
 b11 b12

B   b21 b22
b
 31 b32
29
 с11 с12

b13 

с
с
b23  , С   21 22
с
с
 31 32
b33 
с
 41 с42
с13
с23
с33
с43
с14 

с24 
.
с34 

с44 
Решить квадратное уравнение px2+dx+r=0, где p есть минимальный
элемент матрицы А, d – минимальный элемент матрицы B, r – минимальный
элемент матрицы С.
Поиск минимального элемента оформить в виде функции.
26. Заданы три квадратных уравнения. Найти минимальное значение
среди корней этих уравнений. В случае комплексных корней принять за корни действительную часть.
Решение квадратного уравнения оформить в виде процедуры.
27. Заданы три матрицы:
a12 
a
 ,
A   11
 a21 a22 
 b11 b12

B   b21 b22
b
 31 b32
 с11 с12

b13 

с
с
b23  , С   21 22
с
с
 31 32
b33 
с
 41 с42
с13
с23
с33
с43
с14 

с24 
.
с34 

с44 
Найти длину вектора х={x1,x2,x3}, где х1 есть сумма элементов матрицы
А, х2 – сумма элементов матрицы В, х3 – сумма элементов матрицы С.
Вычисление суммы элементов матрицы оформить в виде процедуры.
28. Даны три вектора x  x1 , x2 , x3 , y  y1 , y2 , y3 , z  z1 , z2 , z3 . Построить
матрицу А, строками которой являются соответственно векторы x, y, z, упорядоченные в порядке возрастания.
Упорядочение вектора по возрастанию оформить в виде процедуры.
29. Заданы три матрицы
a12 
a
 ,
A   11
a
a
22 
 21
 b11 b12

B   b21 b22
b
 31 b32
 с11 с12

b13 

с
с
b23  , С   21 22
с
с
 31 32
b33 
с
 41 с42
с13
с23
с33
с43
с14 

с24 
.
с34 

с44 
Упорядочить по возрастанию три числа x, y и z, где х есть минимальный
элемент матрицы А, у – минимальный элемент матрицы В, а z – минимальный элемент матрицы С.
Поиск минимального элемента оформить в виде процедуры.
30. Заданы три массива x  x1 , x2 , x3 , y  y1 , y2 , y3 , и p  p1 , p2 , p3 , p4 , p5 .
Упорядочить по убыванию три числа а,в и с, где а – максимальный элемент
30
массива х, в – максимальный элемент массива у, а с максимальный элемент
массива р.
Поиск максимального элемента оформить в виде функции.
Приложение
Изображение алгоритма в виде схемы
Схемой называется наглядное графическое изображение алгоритма, когда отдельные действия (этапы) алгоритма изображаются при помощи различных геометрических фигур (блоков), а связи между этапами (последовательность выполнения этапов) указывается при помощи стрелок, соединяющих эти фигуры.
Существует государственный стандарт (ГОСТ), определяющий правила выполнения схем и обозначения для отдельных операций процесса обработки данных. Полный перечень установленных правил и условных обозначений см. ГОСТ 19.002-80 и ГОСТ 19.003-80.
Типичные алгоритмы изображаются следующими геометрическими
фигурами.
31
да
Ранее
созданная
программа или
подпрограмма
Ввод, вывод
Вычисления
Вывод
на дисплей
Проверка
условия
Печать на
бумаге
нет
Начало,
конец
Комментарий
32
Приложение
Пример оформления программы
Программа «Нахождение максимального числа из десяти полож ительных чисел».
НАЧАЛО
Р= -1
ТЕКСТ ПРОГРАММЫ
I=1
CLS
P=-1
ВВОД Х
I=1
2 INPUT X
PX
IF PX GOTO 1
да
P=X
нет
1 I=I+1
Р= X
IF I10 GOTO 2
PRINT P
END
I=I+1
да
I 10
нет
КОНЕЦ
32
СОДЕРЖАНИЕ
ВВЕДЕНИЕ……………………………………………………………3
1. Этапы выполнения курсовой работы…………………………….4
2. Задания для выполнения курсовой работы……………………..13
ПРИЛОЖЕНИЕ………………………………………………………31
33
Download