저번에 1부터 100까지 홀수만 더하기 질문을 한 초보입니다..^^;(나그네님 감사합니다)
이번엔 비슷한데요...에디트박스에 제가 쓴 숫자중에서 홀수만 더하려고 하거든요..
에디트 박스1, 버튼1, 라벨1 이렇게 만들었구요...
procedure TForm1.Button1Click(Sender: TObject);
var
ixa,ixb : Integer;
hap : Integer;
begin
hap := 0;
ixa := StoToInt(edtFirst.Text); <= 요기서 에러가 나더라구요.(맞는거 같은데..-_-")
For ixa := 1 to ixa(edtFirst.Text) do <= 이건 이렇게 써도 되는지 잘몰라서..^^;
begin
ixb := ixa mod 2;
If ixb = 1 then hap := hap + ixa;
end;
sume.Caption := IntToStr(hap);
end;
end.
지금 공부중이라...제대로 된 문법인지 확인할길이 없네요...고수님들 초보니까
답답하더라도 이해해주시고 자세한 설명 부탁드립니다...
ixa := StoToInt(edtFirst.Text); 문장은 StoToInt가 아니라 StrToInt입니다.
따라서, ixa := StrToInt(edtFirst.Text); 가 되겠군요.
그다음 For ixa := 1 to ixa(edtFirst.Text) do 에서 ixa(edtFirst.Text)역시 안됩니다.
따라서, for ixa := 1 to StrToInt(edtFirst.Text) do 라고 하셔야 합니다.
ixa는 integer형의 변수이므로 ixa(edtFirst.Text)와 같이 string 형을 integer형으로
타입캐스팅하는데 사용할 수 없습니다.
님의 코드를 다시 정리해보면,
procedure TForm1.Button1Click(Sender: TObject);
var
ixa: integer;
hap: integer;
begin
hap := 0;
for ixa := 1 to StrToInt(edtFirst.Text) do
if (ixa mod 2) = 1 then
hap := hap + ixa;
sume.caption := IntToStr(hap);
end;
정도가 될 것 같습니다.
우진회 wrote:
> 저번에 1부터 100까지 홀수만 더하기 질문을 한 초보입니다..^^;(나그네님 감사합니다)
>
> 이번엔 비슷한데요...에디트박스에 제가 쓴 숫자중에서 홀수만 더하려고 하거든요..
>
> 에디트 박스1, 버튼1, 라벨1 이렇게 만들었구요...
>
> procedure TForm1.Button1Click(Sender: TObject);
> var
> ixa,ixb : Integer;
> hap : Integer;
> begin
> hap := 0;
> ixa := StoToInt(edtFirst.Text); <= 요기서 에러가 나더라구요.(맞는거 같은데..-_-")
> For ixa := 1 to ixa(edtFirst.Text) do <= 이건 이렇게 써도 되는지 잘몰라서..^^;
> begin
> ixb := ixa mod 2;
> If ixb = 1 then hap := hap + ixa;
> end;
> sume.Caption := IntToStr(hap);
> end;
>
> end.
> 지금 공부중이라...제대로 된 문법인지 확인할길이 없네요...고수님들 초보니까
> 답답하더라도 이해해주시고 자세한 설명 부탁드립니다...