值的位置(50分)

  • 主题发起人 主题发起人 AYing
  • 开始时间 开始时间
A

AYing

Unregistered / Unconfirmed
GUEST, unregistred user!
请看:
X Y
---------
1 A
2 B
3
4
问:X及Y的元素量不定,X与Y的结合时,XY的位置方程?
例如1A的位置是1,1B=2,2A=3,2B=4,...xy=?
 
上面的问题可能不好理解[8D],换个方式讲:
一个二维数组A(X,Y),如何确定元素在数组中的位置?
如A(1,1)=1,A(1,2)=2,A(2,1)=3,...A(X,Y)=?
 
A(1,1)=1,A(1,2)=2,A(2,1)=3,...A(X,Y)=?
A(X,Y)=(x-1)*y+y
 
不对吧!按你这个方程a(2,1)=2[:(!]
 
A(X,Y)=(x-1)*y+y 两个小y表示的意思不一样

晕,这样的问题也简单了吧,看你的A(X,Y)在第几行,然后乘上每行的元素个数,在加上当前的列数不就是么
 
A(X,Y)=(x-1)*维度数+y;你上面的例子维度数=2;
 
A(X,Y)=(x-1)*维度数+y:
简单复核:
X Y
-----
1 a
2
A(1,a)=1,A(2,a)=2,按你这个公式计算得A(2,a)=3。
当X>=1,Y>1时,这个公式才会正确。
 
未经仔细验算,
A(X,Y)=(x-1)*维度数+y:完全错误。
to:来如风:
A(X,Y)=(x-1)*y+y能不能解释得更明白一些。按我的意思也是不对的!
 
AYIng,是不是你的问题解释错了
我觉得按你对你的问题的解释,上面的解答没错啊
你还是再清楚点表达一下你的意思吧
 
换个方式提问:
我在做一个加班管理的程序:
选择加班人员,显示在ListBox中,选择起始日期,结束日期(用TDatetimePicker控件)
在起始日期与结束日期中的每一天与人员之间就产生了形如二维数组的内容(人员,日期)?然后把这个产生的数据添加到stringgrid中:请看例子:
人员编号 | 起始日期 结束日期
----------|---------------------------------
1001 | 2005年05月7日 2005年05月9日
1002 |
1003 |
显示在stringgrid中应是:
人员编号 | 加班日期
----------|-----------------
1001 | 2005年5月7日
1001 | 2005年5月8日
1001 | 2005年5月9日
1002 | 2005年5月7日
1002 | 2005年5月8日
1002 | 2005年5月9日
1003 | 2005年5月7日
1003 | 2005年5月8日
1003 | 2005年5月9日
人员及日期都是不固定个数的,
这样是不是有点象求二维数组的元素中的位置,若是我比方不对,那么用什么方法把人员及日期显示在stringgrid上呢?
分不够,另开帖子再加分,只能你开口!
 
这个问题好象和你开始说的没多大关系吧

你直接按人员还有他们的加班日期添加到stringgird中就可以了啊
 
贴出代码来看看:
注:lstSel_Emp:TListBox;
days:=enddate-begindate;
for iEmployee:=1 to lstSel_Emp.Items.Count do
begin
for JDate:=1 to Days do
begin
grdJBD.AddRow;
grdJBD.Cells[0,(iEmployee-1)*2+JDate]:=leftstr(lstSel_Emp.Items[iEmployee-1],4);
end;
end;
 
代码是错的,grid的行对应于人员及日期应如何确定?

 
for JDate:=1 to Days do
begin
//grdJBD.AddRow;
grdJBD.Cells[0,(iEmployee-1)*Days+JDate]:= 'Employee'+IntToStr(iEmployee);
grdJBD.Cells[1,(iEmployee-1)*Days+JDate]:= 'Date :'+IntToStr(JDate);
end;
这样的形式吧,你自己改成你自己的内容
 
to:来如风
你的方法是正确的!非常感谢!
 
后退
顶部