컴파일 에러가 안나고 다른 에러가 나길래 원인을 찾을수 없어..
무작정 글을 올린게 경솔한 결과를 가져 왔네요...
로직도 제대로 확인을 해 보지 않은 상태였군요..
답변 감사드립니다.
현재 질/답 내용들을 보면 다들 열심히 하시는 분들 같은데
이런 초보적인 질문을 올려도 되는 것인지 모르겠네요...^^
실행/컴파일(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.
배열에 문제가 잇습니다.
a=6 에서
b=-1
c=317
d=315 에서 멈추는 소스입니다. 아마 끝 시점은 있는거 같은데..
count 로 루프도는곳에서 무한으로 돌고 잇는듯 합니다.
count := count+ a+(a-1) 을 한게 잘못인듯 합니다.
그리고 또 memo1.Text := i[a,d]; 이렇게 하심은
마지막 값만 들어가게 됩니다.
결과는
*
#13#10
별하나에 엔터값 들어간거.
하여간 로직에 문제 있습니다.
씨로 짜면 이거 되나보죵..ㅡㅡ;
아마도 거의 무한 루프를 돌고 잇는듯 합니다.