지송합니다.
기사시험 공부하는데.... 구입한 책에 소스코드가 없어서 이렇게 질문을 드립니다.
label 하나, edit 하나, button 하나를 만들어서 button을 누르면 label에
edit에 입력한 값을 비교한뒤, 해당 문자열이 나오는 겁니다.
소스는 다음과 같습니다.
-------------------------------------------
procedure TForm1.Button1Click(Sender: TObject);
var
input : string;
mon : string;
begin
input := edit1.text;
type
mon = set of {jan, mar, may, jul, aug, oct, dec}
begin
if input in mon then
label1.caption := '한달은 31일로 되어있다.';
else
label1.caption := '한달이 31일이 아닙니다.';
end;
end;
--------------------------------------------
선배님들의 조언을 바라겠습니다.
뭔가 틀렸다는 말씀이신지..
일단은 제가 보기에는여..
집합형을 선언할때 문제가 있지 않나 보는데..
mon은 String형인데..
Set of {} 로 정의했거든여..
Set of {}로 정의 하는것은 실제로
mon = Set of {0, 1,2,3,4,5,6} 이라는 정수들의 집합으로 선언하는
거와 같다고 생각이 드는데..
mon은 String형이거든여..
따라서 잘못된, 집합형 연산이라고 오류가 날꺼 같은데..
제가 잘못알고 있나여?
Set는 실제로 집합연산이지만,
단체로 변수를 선언하여, 매칭시키는 방법을 사용하는것으로
알고 있습니다.
즉, 첫번째 변수(명시적으로 값을 대입하지 않는다면)는 0,
나머진, 1부터 쭈욱~~~~
이렇게 된다고 보는데..
if input in mon then <-- 에서도 에러가 나지 않나여?
제가 틀렸는지는 잘 모르겠지만..
2군데는 틀렸다고 생각이 드네여..
아니면,
mon: String부분에서 String을 Integer나 Longint로 바꾼다면
되지 않을까여? 다시말해서, 정수 숫자형으로 말입니다..