问一个问题,用枚举写法!
已知对应
状态A ---101
状态B ---102
状态C ---103
状态d ---104
TABLE car_STATE1
code carnum STATE
1 A001 状态A
2 A002 状态B
3 A003 状态C
4 A004 状态d
把car_STATE1 导出到car_STATE2中,得到以下效果
TABLE car_STATE2
code carnum STATE
1 A001 101
2 A002 102
3 A003 103
4 A004 104
用2个数据集ADOQUERY1和ADOQUERY2分别连这2个表,用枚举写法,如何实现?谢谢!
[解决办法]
需要的是sql吗?
sql里好像没枚举的概念
[解决办法]
type
A=(状态A=101,状态B,状态C,状态B);
[解决办法]
又见题目,又见题目。。。。。
是不是现在学校里面开始学Delphi了。。。
[解决办法]
in运算:in的右边为集合,左边为与集合基类型相同的表达式,为布尔值。in测试一个元素是否在集合中。相当于集合论中的∈。它们都是二目运算,且前4个运算符的运算对象都是相容的集合类型。例如:a in[b,c] 为false。
设集合a:=[1..10]; x 为integer,如x在集合a中即删除a中的元素x,否则把元素x添加到集合a中。程序段如下:
if x in a then a:=a-[x] else a:=a+[x]
例1、设全集E={1,2,3,4,5},集合A={1,4},B={1,2,5},C={2,4},则集合
(A∩B)∪~C 为( )。 ( NOIP2003单选8 )
A)空集 B){1} C){3,5} D){1,5} E){1,3,5}
例2、输入一系列字符,对其中的数字字符、字母字符和其它字符分别计数。输入'?'后结束。
var ch:char;
letter:set of char;
digit:set of '0'..'9';
i,j,k:integer;
begin
letter:=['a'..'z','A'..'Z']; digit:=['0'..'9'];
i:=0; j:=0; k:=0;
repeat
read(ch);
if ch in letter
then i:=i+1
else if ch in digit then j:=j+1 else k:=k+1;
until ch='?';
writeln('letter:',i,'digit:',j,'other:',k)
end.
例3、求出2~n之间的素数。
由希腊数学家Eratosthense提出“筛法”,步骤如下:(以2到20为例)
①将所有的候选数放入筛子集合中;[1,2,3,4,…,20], 素数集合为 []。
②找筛中最小数(必为素数)next,放入素数集合中;
③将next的所有倍数从筛中筛去;
④重复②~③,直到筛空。素数集合中即所求。每次循环如下:
筛子集合 素数集合
[3,5,7,9,11,13,15,17,19] [2]
[5,7,11,13,17,19] [2,3]
[7,11,13,17,19] [2,3,5]
…… ……
[] [2,3,5,7,11,13,17,19]
const n=200;
var sieve,primes:set of 2..n;
j,next:integer;
begin
sieve:=[2..n]; primes:=[]; { 将所有的候选数放入筛中,素数集合置空 }
next:=2;
repeat
while not(next in sieve) do
next:=succ(next); { 找筛中最小数next }
primes:= primes+[next]; { 将筛中最小数next,放入素数集合中 }
j:=next;
while j<=n do
begin sieve:= sieve-[j]; j:=j+next end { 将next的倍数从筛中筛去 }
until sieve=[];
for next:=2 to n do
if next in primes then write(next:5); { 输出素数集合中的所有元素}
writeln
end.