Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Переделать исходник под задание.

Автор: Andrewshkovskii 4.06.2008 2:20

Сразу скажу,задача нужна не мне.Я лишь посредник.
Вычислить значение у на отрезке (а,b) с шагом h.
функция :
Y= x+a/x-a при x>b
Ln(x-a) при x<=b.
как видно,фунция задана не верно.Автор задания предложил :

возьми интервал не ab, а какой-нить cd, то б,которое в условии не влияет на интервал! просто поменяй буквы в интервале."

Исходник похожей задачи :

Program ex2;
{Вычислить значение у на отрезке (а,b) с шагом h}
{uses crt;}
const b=2;
var y: real;
a,c,x,h:integer;
begin
{clrscr;}
writeln ('Input a,h,b,c');
readln(a,h,c);
x:=a;
while x<c do
begin
if x>b then
begin
if x>0 then
begin
if (ln(x)-x)>=0 then

begin y:=SQRT(ln(x)-x);
writeln('y:=',y:4:4, 'x:',x:4);
end
else writeln('Fynkciya ne opredelena')
end

else writeln ('funkciya ne opredelena')
end
else
if (x*x-1)<>0 then
begin y:=x/(x*x-1);
writeln('y:=',y:4:4, 'x:',x:4);
end
else writeln ('funkciya ne opredeena');
x:=x+h
end;
readln;
end.


Я прощу помощи здесь,не только потому что самому щас некогда писать,а потом..потому что другу надо срочно,а я защиваюсь с электроникой..Возможно вознаграждение в ВМР..

Автор: compiler 4.06.2008 15:09

Если запись (a, b) подразумевает что a&b НЕ входят в отрезок, и шаг положительный, то попробуй посмотреть это:

const
b = 2;
eps = 1;
var
a, c, x, h : integer;
begin
writeln ('Input a,h,c');
readln(a,h,c);
x := a + eps;
while x < c do begin
if (x > b) then writeln( 'x=',x, #9, 'y=', (x+a)/(x-a):4:4)
else writeln('x=',x, #9, 'y=', ln(x-a) :4:4);
x := x + h;
end;
end.

если все же входит, то в точке a функция не опреднленна.