Автор работы: Пользователь скрыл имя, 12 Ноября 2010 в 10:56, Не определен
Курсовой проект
Алгоритм подпрограммы 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,'!',
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!
Заключение
В курсовой работе представлено решение задачи исследования и табулирования квадратичной функции с произвольными коэффициентами.
В курсовой работе представлено условие задачи, получена постановка задачи, определена формализация задачи и алгоритм решения задачи в виде логической блок- схемы программы. Составлена программа на языке программирования Паскаль, выполнен контрольный пример.
По результатам контрольного примера задача решена верно. Программа отлажена в среде программирования TURBO PASCAL 7.0
6
используемая литература
Информация о работе Составление программ для решения задач на языке программирования Turbo Pascal