Министерство образования Российской Федерации
КФ УГАТУ
Кафедра “промышленной автоматики”
Курсовая работа
по дисциплинам «информатика», «программирование и основы алгоритмизации»
на тему «Составление программ для решения задач
на языке программирования
Turbo
Pascal
»
Кумертау
2010
ВВЕДЕНИЕ
С развитием информатики информация становиться стратегическим ресурсом общества, аналогичным по значимости с запасами сырья, энергии и т.д.
Знание и умение использовать технические и программные средства информатики , а также умение правильно применять методы и технологии обработки информации позволяет более эффективно работать специалисту, в любой области в том числе инженеру, экономисту, бухгалтеру и т.д.
Информатика является одной из самых быстроразвивающихся направлений развития человеческого общества.
После изучения информатики студент должен знать и уметь использовать:
- основные способы и формы представления числовой, символьной, графической, звуковой информации,
- технические и программные средства информатики.
После изучения информатики студент должен приобрести навыки алгоритмизации и программирования задач решаемых на ПК.
При выполнении курсовой работы приобретаются навыки и умения разработки программ для решения задач на ЭВМ.
В курсовой работе изучаются все этапы алгоритмизации и программирования конкретной вычислительной задачи на языке программирования Турбо-Раскаль,
1 УСЛОВИЕ ЗАДАЧИ
- Найти первую производную,
- Найти вторую производную,
- Найти критическую точку, если это возможно, по знаку второй производной определить тип экстремума в критической точке (максимум или минимум),
- Найти максимальное значение функции и минимальное значение функции y
на заданном интервале [a
1
;
a
2
].
II. Табулировать заданную квадратичную функцию на заданном интервале [a
1
;
a
2
] с шагом .
Примечание:
Значения переменныхa
, b, c, n, m,
k
,
a
1
,
a
2
являются целыми числами, и должны вводиться с клавиатуры по запросу программы.
Результаты выводиться на экран в следующем виде:
Исходная функция у=…………
Исходный интервал
от …… до…….
Перваяпроизводная у
’=…………..
Вторая производная
y”=………….
Критическая точка х1
=…………
Значения функции
- y
(
a
1
)
=……. – (минимальное или максимальное значение
y
)
- y
(
x
1
)
=……. – (минимальное или максимальное значение
y
)
- y
(
a
2
)
=……. – (минимальное или максимальное значение
y
)
Табулирование функции
y
с шагом
h
=…..
-------------------------------------------------------
!
N
!
x
!
y
!
y
’ !
-------------------------------------------------------
! 1 ! ! ! !
! 2 ! ! ! !
….
Пусть задана функция на интервале
2.
Постановка задачи
2.1
Описание входной информации
Входной информацией называется информация, которая считается известной до начала решения задачи, её запрашивают у пользователя и вводят с клавиатуры оператором READLNили из файла на диске.
Приведем описание входной информации в таблице №1 так, в соответствии с текстом программы.
Таблица №1 - Описание входной информации
Название переменной | Тип переменной | Назначение |
A
|
Integer (целый) | Коэффициенты функции |
B
|
Integer (целый) | |
C
|
Integer (целый) | |
a1
|
Integer (целый) | Начало заданного интервала |
a2
|
Integer (целый) | Конец заданного интервала |
2.2
Описание промежуточной информации
Промежуточной информацией называется информация, которая рассчитывается по формулам из входной информации, не является конечным результатом, но необходима для его определения.
Приведем описание промежуточной информации в таблице №2 так, в соответствии с текстом программы.
Таблица №2 - Описание промежуточной информации
Название переменной | Тип переменной | Назначение |
х1
|
real (вещественный) | Значение критической точки |
H
|
real (вещественный) | Шаг табуляции |
I
|
Integer(целый) | Номер шага |
2.3
Описание выходной информации
Выходной информацией называется информация, которую необходимо определить при решении задачи, её рассчитывают по формулам и выводят на экран или печать оператором WRITE(WRITELN) или в файл на диске.
Приведем описание выходной информации в таблице №3 так, в соответствии с текстом программы.
Таблица №3 - Описание выходной информации
Название переменной | Тип перемен-ной | Назначение |
X
|
REAL(вещественный) | Значение аргумента функции |
Yt
|
REAL(вещественный) | Значение функции |
Yp
|
REAL(вещественный) | Значение первой производной |
F1
|
REAL(вещественный) | Значение функции на концах интервала и в критической точке |
F2
|
REAL(вещественный) | |
F3
|
REAL(вещественный |
3.
Формализация задачи (или словесно-формульное описание)
Формализация задачи или словесно-формульное описание задачи - определяются расчетные формулы и условия, связывающие входные, промежуточные и выходные величины, этот раздел служит для определения последовательности и способов преобразования исходный величин в результатные.
Исходная функция (1)
Первая производная (2)
Вторая производная
Критическая точка, где .Если , то решить задачу невозможно.
Если , то находим :
- экстремум функции : если y
”
(
x
1
)>0
, то х1
– точка минимума, если y
”
(
x
1
)<0
, то х1
– точка максимума,
- у(а1
)
, у(х1
)
и у(а2
)
, среди которых определяет наибольшее и н
На заданном интервале [a
1
;
a
2
] рассчитаем шаг табулирования функции .
Для табулирования функции первой значение х=а1
Следующее значение х=x+h
Последнее значениеx
<=
a
2
,
Значение y
рассчитывается по формуле (1), y
’
- по формуле (2)
4.
Алгоритм задачи
Для решения данной задачи использовались внутренние процедуры и функции, поэтому в этом разделе представлены алгоритмы основной (главной программы) и алгоритмы каждой из подпрограмм – таблица № 4.
Таблица №4 – Описание подпрограмм
Идентификатор подпрограммы | Тип подпрограммы | Возвращаемые величины | Назначение |
Y
|
Функция | y
|
Вычисляет значение функции |
dy | Функция | dy
|
Вычисляет первую производную |
Min_max2 | Процедура | - | Определяет минимум и максимум из двух величин F1 и F2 |
Min_max3 | Процедура | - | Определяет минимум и максимум из трех величин F1, F2, F3 |
Алгоритм основной программы представлен на рис. 1.
Рисунок 1 – Логическая схема основной программы
Алгоритм функции y
представлен на рис. 2
Рисунок 2 – Логическая схема подпрограммы – функции у
Алгоритм функции dy
представлен на рис. 3.
Рисунок 3 – Логическая схема подпрограммы - функции dy
Алгоритм подпрограммы min_max_2 представлен на рис. 4.
Рисунок 4 – Логическая схема подпрограммы-процедуры min_max_2
Алгоритм подпрограммы min_max_3 представлен на рис. 5.
Рисунок 5 – Логическая схема подпрограммы-процедуры min_max3
5 ПОСТРОЕНИЕ ПРОЦЕССА РЕШЕНИЕ ЗАДАЧИ
Программа для курсовой работы составлена на языке Паскаль. Для решения поставленной задачи использовались как стандартные процедуры и функция языка, так и организованные самостоятельно. Нижеприведентекстпрограммы.
program prog;
label 1;
var a,b,c,a1,a2:integer;
min,max,f1,f2,f3:real;
h,x,yt,yp,x1:real;
i:integer;
function y(x:real):real;
begin
y:=sqr(x)/a+x/b+c;
end;
function dy(x:real):real;
begin
dy:=2*x/a+1/b;
end;
procedure min_max2;
begin
if f1>f2 then
begin {max:=f1; min:=f2; }
writeln('наибольшее значение - у(а1)= ',f1:5:3);
writeln('наименьшее значение - у(a2)= ',f2:5:3);
end;
if f1<f2 then
begin {max:=f2; min:=f1;}
writeln('наименьшее значение - у(a1)= ',f1:5:3);
writeln('наибольшее значение - у(а2)= ',f2:5:3);
end;
end;
procedure min_max3;
begin
if (f1>f2)and(f1>f3) then
begin
{max:=f1;}
writeln('наибольшее значение - у(а1)= ',f1:5:3);
if f2<f3 then {min:=f2} writeln('наименьшее значение - у(х1)= ',f2:5:3)
else {min:=f3} writeln('наименьшее значение - у(a2)= ',f3:5:3);
end
else if (f2>f1)and (f2>f3) then
begin
{max:=f2;}
writeln('наибольшее значение - у(x1)= ',f2:5:3);
if f1<f3
then {min:=f1}
writeln('наименьшее значение - у(a1)= ',f1:5:3)
else {min:=f3}
writeln('наименьшее значение - у(a2)= ',f3:5:3);
end
else
begin
{max:=f3;}
writeln('наибольшее значение - у(a2)= ',f3:5:3);
if f1<f3
then {min:=f1}
writeln('наименьшее значение - у(a1)= ',f1:5:3)
else {min:=f3}
writeln('наименьшее значение - у(a2)= ',f3:5:3);
end
end;
begin
writeln('Исследование функции вида y=xx/a+x/b+c' );
1:write('введите целые цисла а=');readln(a);
write('b=');readln(b);
write('c=');readln(c);
writeln('введитеинтервал :');
write('a1='); readln(a1);
write('a2='); readln(a2);
if a*b<>0 then
begin
x1:=-a/(2*b);
f1:=y(a1);
f2:=y(x1);
f3:=y(a2);
write('x=',x1:5:3,' - критическаяточка , y(x1)= ',y(x1):7:3);
if a>0 then writeln (' - min')
else writeln (' - max');
min_max3;
end
else
begin
writeln('aи bне могут быть нулевыми');goto 1;
end;
h:=abs(a1-a2)/10;
x:=a1;
i:=1;
writeln ('табулирование функции вида у=хх/a+х/b+с');
writeln ('-----------------------------------');
writeln ('! N ! x ! y ! y p !');
writeln ('-----------------------------------');
repeat
writeln('!',i:4,'!',x:7:2,'!',y(x):9:3,'!',dy(x):9:3,'!');
i:=i+1;
x:=x+h;
until x>a2;
end.
6 КОНТРОЛЬНЫЙ ПРИМЕР
Исследование функции вида y=xx/a+x/b+c
введите целые цисла а=1
b=1
c=-1
введите интервал :
a1=0
a2=1
x=-0.500 - критическая точка , y(x1)= -1.250 - min
наибольшее значение - у(a2)= 1.000
наименьшее значение - у(a1)= -1.000
табулирование функции вида у=хх/a+х/b+с
-----------------------------------
! N ! x ! y ! y p !
-----------------------------------
! 1! 0.00! -1.000! 1.000!
! 2! 0.10! -0.890! 1.200!
! 3! 0.20! -0.760! 1.400!
! 4! 0.30! -0.610! 1.600!
! 5! 0.40! -0.440! 1.800!
! 6! 0.50! -0.250! 2.000!
! 7! 0.60! -0.040! 2.200!
! 8! 0.70! 0.190! 2.400!
! 9! 0.80! 0.440! 2.600!
! 10! 0.90! 0.710! 2.800!
Заключение
В курсовой работе представлено решение задачи исследования и табулирования квадратичной функции с произвольными коэффициентами.
В курсовой работе представлено условие задачи, получена постановка задачи, определена формализация задачи и алгоритм решения задачи в виде логической блок- схемы программы. Составлена программа на языке программирования Паскаль, выполнен контрольный пример.
По результатам контрольного примера задача решена верно. Программа отлажена в среде программирования TURBOPASCAL 7.0
6 используемая литература
1. Информатика. Учебник. 3-е изд./Под ред. Проф. Н.В. Макаровой, М.:,2000.
2. Информатика. Базовый курс., Симонович С.В. и др.СПб.: Питер. 2001.
3. Новейшая энциклопедия персонального компьютера 2002, В.П. Леонтьев, М., “Олма-пресс”, 2002.
4. Симонович С., Евсеев Г., Практическая информатика, учебное пособие, М.: АСТ-пресс,2000.
5. Фаронов, TurboPascal 7.0., М.: Инфра-М,1998.
6. Фигурнов В.Э.,IBMPC для пользователей, краткий курс, М.: Инфра-М, 1997.
7. Могилев А.В., Пак Н.И., Хеннер Е.К., Информатика, Учебное пособие для студ. пед. вузов, 2-е изд., М.:Изд. центр “Академия”, 2001 – 816с.
8. , Грачева Л.Н., Лекции по информатике
9. Грачёва Л.Н., методические указания к курсовой работе по информатике для заочников, 2010 г.