Q&A

  • 컴파일 오류는 안뜨고 잘못된 연산(윈도우오류) 오류메세지가... - 답변 감사드립니다.
컴파일 에러가 안나고 다른 에러가 나길래 원인을 찾을수 없어..

무작정 글을 올린게 경솔한 결과를 가져 왔네요...

로직도 제대로 확인을 해 보지 않은 상태였군요..

답변 감사드립니다.










현재 질/답 내용들을 보면 다들 열심히 하시는 분들 같은데

이런 초보적인 질문을 올려도 되는 것인지 모르겠네요...^^

실행/컴파일(run)버튼을 누르면

컴파일 오류메세지가 뜨지 않고(제가 못 봤을지도.. 안뜨는것 같던데..)

윈도우즈 프로그램 에러났을때 나는 잘못된 연산 오류가 뜨네요..

델파이 프로그램의 버그일까요?

아니면 이 메세지를 통해 제가 짠 프로그램의 어디가 잘못 되어

있는지 알 수가 있나요?

오늘 델파이를 처음 코딩해 보는데 그래도 c를 아니까 적당히 응용

이 될줄 알고 놀고 있었는데 엄청 후회되네요 ...^^

아주 간단한 프로그램이니 본문에 코딩내용을 첨부합니다.

폼하나에 메모창(뭐라고 부르는지..)하나 달랑 있는 프로그램입니다.

목적은 동적배열을 이용하여

           *
         ***
       *****

이런 식으로 9줄짜리 피라미드 만드는것....^^

제가 조금 더 수정하였을 수는 있으나 에러가 나는 것은 마찬가지이니..

혹여 제가 해결하면 제가 다시 답변을 달도록 하지요..

(혹시 저같은 분이 또 계실까봐..)

procedure TForm1.FormCreate(Sender: TObject);

var
i : array of array of char;
a,b,c,d,count : integer;

begin
count := 1;
SetLength(i,9);

   for a := 0 to 8 do
   begin
   SetLength(i[a],8+a);

      for b := 8 downto 0 do

      begin
      count := count + (a+(a-1));

         for c :=1 to count do
         begin
         d := b + (c-1);

         i[a,d] := '*';
         memo1.Text := i[a,d];
         end;
      memo1.lines.Add('');
      end;

   memo1.lines.add('');
   end;

end;

end.
1  COMMENTS
  • Profile
    장태원 2003.09.26 23:35
    소스에 문제가 많습니다.
    배열에 문제가 잇습니다.

    a=6 에서
    b=-1
    c=317
    d=315 에서 멈추는 소스입니다. 아마 끝 시점은 있는거 같은데..
    count 로 루프도는곳에서 무한으로 돌고 잇는듯 합니다.
    count := count+ a+(a-1) 을 한게 잘못인듯 합니다.
    그리고 또 memo1.Text := i[a,d]; 이렇게 하심은
    마지막 값만 들어가게 됩니다.
    결과는

    *
    #13#10

    별하나에 엔터값 들어간거.

    하여간 로직에 문제 있습니다.

    씨로 짜면 이거 되나보죵..ㅡㅡ;


    아마도 거의 무한 루프를 돌고 잇는듯 합니다.