Q&A

  • [왕초보]누구나 대답할수 있는 질문2
저번에 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.

지금 공부중이라...제대로 된 문법인지 확인할길이 없네요...고수님들 초보니까

답답하더라도 이해해주시고 자세한 설명 부탁드립니다...

2  COMMENTS
  • Profile
    cyberia 2001.01.30 10:57
    일단

    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.

    > 지금 공부중이라...제대로 된 문법인지 확인할길이 없네요...고수님들 초보니까

    > 답답하더라도 이해해주시고 자세한 설명 부탁드립니다...

  • Profile
    우진회 2001.01.30 12:30
    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;



    정도가 될 것 같습니다.



    와~ 감사합니다...오타라니..-_-" 쪽팔리군요...^^; 이렇게 간단하게도 되는군요...



    정말 감사합니다...