关于 delphi 数组查询问题(跪求高手帮忙)(100分)

  • 主题发起人 主题发起人 lljimo
  • 开始时间 开始时间
L

lljimo

Unregistered / Unconfirmed
GUEST, unregistred user!
问题是这样的:
1 2 3 4 5 6
edt1 edt2 edt3 edt4 edt5 edt6
1 2 3 4 5 6
edt7 edt8 dt9 edt10 edt11 edt12
shap1 shap2 shap3 shap4 shap5 shap6
二维数据表如下:
6 7 8 9 A B C D E F G H
0 15 15 15 15 15 15 15 15 15 15 15 15
1 14 14 14 15 15 15 15 15 15 15 15 15
2 14 14 14 14 14 14 14 15 15 15 15 15
3 13 13 13 13 14 14 14 14 14 14 15 15
4 13 13 13 13 13 14 14 14 14 14 14 14
A 12 12 12 12 12 12 12 12 12 12 12 13
B 12 12 12 12 12 12 12 13 13 13 13 13
C 11 11 11 11 11 11 12 12 12 12 12 12
D 11 11 11 11 11 11 11 11 11 11 11 11
E 11 11 11 11 11 11 11 11 11 11 11 11
其中 11代表兰色 12代表黑色 13代表绿色 14 代表橘色 15代表栗色
现在在第一行的1--6下的6个edit控件中随即输入 6个数 ,然后在第二行1--6 个edit控件中在输入6个数,每行的(1,1) (2,2),。。(6,6)构成以个数组,比如;
第一行 输入的 是 c 6 8 d h f
第二行 输入的 是 e 0 1 a 4 b
我们就在表中查找 ce对应的数是11 , 60对应的数是15 , 81对应的数是14 da对应的数是12 ,h4对应的数是14, fb对应的数是13
得到对应的数后,然后按照每个数所代表的颜色 ,在相应的shap 空间中将其颜色显示出来
如果每行输入的数在数据库中找不到,将提示信息,没有相对应的数,请重新输入
数据库是sql server 用数组来做 如何来进行查找实现
请各位高手解答:
 
无非是数组index影射的问题,楼主觉得这个很复杂吗?
1 定义一个2唯数组保存这些数据,0..11,0..11
2 数组中索引定位算法,核心
//把你的输入做个判断,只传一个小写字符转化成int过来,使用ord函数,也可以在这里
//就对输入全部做判断,用户输入不正确就不进行后继的工作
procedure map(var row,var col: integer);
begin
if not row in [6..9,64..71] then
输入的行参数有问题;
if not col in [0..4,64..68] then
输入的列参数有问题
if row in [6..9] then
row := row - 6
else
row := row - 64 + 4;
if col in [64..68] then
col := col + 5;
既然行列都有了,取数组值总知道了吧,还有的工作自己完成吧
end;
 
楼上高手,您能将步骤在详细点吗??我还是有点蒙,从定义数组开始谢谢您了!!
if not row in [6..9,64..71]
if not col in [0..4,64..68]
这里的 [6..9,64..71]和[0..4,64..68]是什么意思,另外,我填完数字,我要去数据库中查找他们,我们是不是应该利用2个循环啊!!
 
64就是A啊,65就是B嘛
s := UpperCase(trim(edt1.text));
if length(s) > 1 then
输入错误,也可以做更多的判断
传参数的时候map(Ord(s[1]),...)
数组直接定义成
type TMyColor = array[0..11, 0..11] of Integer;
ColorArr: TMyColor;
把那里面的数据赋值到数组会吧,不会就查下帮助
调用map(i,j)返回i,j
colorArr[i,j]就是对应的颜色嘛
 
type TMyColor = array[0..11, 0..11] of Integer;
[0..11, 0..11]什么意思 怎么是11呢
 
高手!!您还是把整个编程步骤一步一步的写下来吧!!我自己研究研究!!太谢谢您了!!!
 
难道就没有高手来帮帮忙吗[:(]
 
接受答案了.
 
后退
顶部