Помощь - Поиск - Пользователи - Календарь
Полная версия: Табулирование функции
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
РЕЗИНОВАЯ ЗИНА
помоги составить программу табылирования функции

Цитата
    Ln^2|x-2|+sqrt(x+3) , x<=2

y=
 
    E^(6-2x)+2cos^3(x-3), x>2

на отрезке [1,3] c шагом 0.2
чето я совсем запутался.
Altair
Цитата
Ln^2|x-2|

не понял.
sqr(Ln(abs(x-2))) или что-то другое ?

Цитата
2cos^3(x-3)

аналогично. что во что возводим ?



Function F1(x:double):double;
begin
f1:=sqr(ln(abs(x-2)))+sqrt(x+3);
end;

Function F2(x:double):double;
begin
f2:=exp(6-2*x)+2*sqr(cos(x-3))*cos(x-3);
end;

Const
a:double = 1;
b:double = 3;
step:double = 0.1;
eps:double = 0.00001;
var
x,r:double;
begin
x:=a;
while abs (b-x)>eps do begin
if x<=2 then r:=f1(x) else r:=f2(x);
writeln(x:10, r:10);
x:=x+step
end;
readln
end.

функции можешь подправить сама (f1 f2)
...
Guest
Ln^2|x-2|
логорифм квадратный от х-2 по модулю
2cos^3(x-3)
2 сos куб(х-3)
а без функций никак нельзя?
step:double = 0.1;
а почему step=0,1? или если double, то оно удваивается?
пасиб большое!! wink.gif
Altair
Цитата
Ln^2|x-2|
логорифм квадратный от х-2 по модулю
2cos^3(x-3)
2 сos куб(х-3)

тебье повезло я так и подумал.
Цитата
а без функций никак нельзя?

можно.

Const
a:double = 1;
b:double = 3;
step:double = 0.1;
eps:double = 0.00001;
var
x,r:double;
begin
x:=a;
while abs (b-x)>eps do begin
if x<=2 then r:=sqr(ln(abs(x-2)))+sqrt(x+3)
else r:=exp(6-2*x)+2*sqr(cos(x-3))*cos(x-3);
writeln(x:10, r:10);
x:=x+step
end;
readln
end.


Цитата
а почему step=0,1?

"c шагом 0.2"
прости, ошибся, исправь на 0.2
Цитата
или если double, то оно удваивается?

нет, double протсо вещесвенный тип, "двойной точности" smile.gif
не люблю real.. (причина )
РЕЗИНОВАЯ ЗИНА
пасиб огромное! give_rose.gif
Guest
program labwork2_2;
uses crt;
const
step:double=0.2;
a:double=1;
b:double=3;
eps:double=0.00001;
var
x,y:double;
BEGIN
x:=a;
while abs(b-x)>eps do
begin

if x<=2 then y:=sqr(ln(abs(x-2)))+sqrt(x+3);
if x>2 then y:=Exp(6-2*x)+2*sqr(cos(x-3))*cos(x-3);
writeln(x:10,y:10);
x:=x+step;
readln;


readkey;
END.


у меня почему выдает ошибку
вот тут: x:=a;
volvo
Во-первых, пользуйся тегами CODE, а во вторых - какую именно ошибку выдает?

Кстати, у тебя End перед ReadLn пропущен, программа не будет компилироваться...
Guest
пишет на x:=a следующее
Must be in 8087mode to compile this
volvo
Самой первой строкой программы добавь:
{$N+}
Guest
а что это значит?
volvo
FAQ: Директивы компилятора
Цитата
{$N-} - Использование сопроцессора. (Глобальная директива). При указании режима {$N-} генерируется код для программного выполнения всех вещественных вычислений. При режиме {$N+} генерируется код для выполнения таких вычислений аппаратно с помощью сопроцессора.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.