Pascal语言怎样表示函数定义域以外区域? ( 积分: 100 )

  • 主题发起人 主题发起人 shijies
  • 开始时间 开始时间
S

shijies

Unregistered / Unconfirmed
GUEST, unregistred user!
例如如下函数:
当x<-1时,y值不存在
当-1<x<1时,y=x
当1<x<10时,y=2x-1
当x>10时,y=3x-11
怎样编程计算y值?
参考程序如下:
var x,y:integer;
result:string;
begin
x:=strtoint(edit1.text);
if x<1 then
y:=x
else
if x<10 then
y:=2*x-1
else
y:=3*x-10
str(y,result);
label2.caption:='函数值为:'+result;
end;

 
例如如下函数:
当x<-1时,y值不存在
当-1<x<1时,y=x
当1<x<10时,y=2x-1
当x>10时,y=3x-11
怎样编程计算y值?
参考程序如下:
var x,y:integer;
result:string;
begin
x:=strtoint(edit1.text);
if x<1 then
y:=x
else
if x<10 then
y:=2*x-1
else
y:=3*x-10
str(y,result);
label2.caption:='函数值为:'+result;
end;

 
看的有点迷糊,大概说个不知道是否理解错误
function GetY(x:integer):integer;
begin
if x<1 then
Result:=x
else
if x<10 then
Result:=2*x-1
else
Result:=3*x-10
end;
//这里对于y不存在不知道怎么定义,不过你可以自己约定在一个在程序中不会出现的值来标识啊
这样子
Y:=GetY(x);不就可以达到想要的效果了吗?
 
我不知道怎么约定在一个在程序中不会出现的值来标识,结果又怎样在屏幕上显示出来。
 
y值不会小于-1, 所以, 你用任何一个小于-1的值都可以表示y值不存在, 在屏幕上
就显示“y值不存在”,另外,你对于x=-1,1,10的时侯,y值也没有定义[:(]
 
这个函数在1和10是连续的,不过我确实不知道在断点处,怎样用Pascal语言进行描述。
 
是连续的啊,就是不知道你要表达的到底是什么意思!
想实现什么功能![:(]
 
怎样用Pascal语言描述端点处?
 
实在不明白你要什么啊[:D]
function GetY(x:integer):integer;
begin
if x<1 then
Result:=x
else
if x<10 then
Result:=2*x-1
else
if x>10 then
Result:=3*x-10
else
Result:=-1;//这里假定-1表示不存在
end;

Y:=GetY(x);
if y=-1 then
lable.caption:='不存在的值'
else
label.caption:=inttostr(y);
还不是这样子就说清楚点你到底是要什么用..........
 
我的意思是x的定义域是x>-1,上述程序可以使x=-1时,返回函数值-1, lable.caption:='不存在的值',在所有x<-1时,能否都出现
lable.caption:='不存在的值'。
 
function GetY(x:integer):integer;
begin
if x>10 then
Result:=3*x-10
else
if (x>1) and (x<10) then
Result:=2*x-1
else
if (x>-1) and (x<1) then
Result:=x
else
Result:=-1;//这里假定-1表示不存在
end;
//这里对于你没有定义的如1,10都归到不存在去了
真的有点晕了
 
我也来一个,如下:
//根据条件获取Y的值
//这只是原题的直译,算法还可以优化
//同时,如果不要等于的话,那么可以将逻辑比较中的等于去掉
function TForm1.GetY(const X: Integer): Integer;
begin
Result := -2;
//不存在
if (X >= -1) and (X <
1) then
Result := X
else
if (X >= 1) and (X <
10) then
Result := 2 * X -1
else
if X >= 10 then
Result := 3 * X - 11;
end;

//将函数将得到的Y值转为字符串
//当Y值为-2时,则返回“不存在的值”
//其它值时,则为Y值的字符串值
function TForm1.GetStringY(const Y: Integer): string;
begin
if Y = -2 then
Result := '不存在的值'
else
Result := IntToStr(Y);
end;

//在窗体上放两个TEdit控件,一个TButton控件
procedure TForm1.Button1Click(Sender: TObject);
begin
Edit2.Text := GetStringY(GetY(StrToIntDef(Edit1.Text, 0)));
end;
 
其实这不是pascal的问题了,而是楼主的数学问题了![:)]
 
抱歉了,有些东西描述的不清楚,不过确实不是什么数学问题,函数的描述应该是:
当x<=-1时,y值不存在
当-1=<x<=1时,y=x
当1=<x=<10时,y=2x-1
当x>=10时,y=3x-11
很长时间不碰,一些符号忘了怎么写。
 
抱歉了,有些东西描述的不清楚,不过确实不是什么数学问题,函数的描述应该是:
[red]当x<=-1时,y值不存在
当-1<x<=1时,y=x
当1<x=<10时,y=2x-1
当x>10时,y=3x-11     应该如此吧[/red]
很长时间不碰,一些符号忘了怎么写。
[green]有一个不明,你的X值是什么类型的。是自然数还是实数?[/green]




 
x,y都是实数,var x,y:real;
 
多人接受答案了。
 

Similar threads

I
回复
0
查看
687
import
I
I
回复
0
查看
720
import
I
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部