2014-06-13 2 views
0

내 질문은 간단합니다. 파스칼에서 어떻게 배열을 반복합니까? 배열을 통해 루프를 통해 문자 인덱스

P : array[char] of list; 

Here

나는에 대한-에서 루프에 대한 몇 가지 유망한 정보를 찾았지만 그들은 FPC 컴파일하지 못하는 것 같습니다.

감사합니다.

답변

1

도움이되기를 바랍니다.

type 
    ch_array = array[char] of 1..26; 
var 
    alphabet: ch_array; 
    c: char; 
begin 
    ... 
    for c:= 'A' to 'Z' do 
    alphabet[c] := ord(c); 
    (* the ord() function returns the ordinal values *) 

자세한 정보는이 링크에서 확인할 수 있습니다. 당신은 전체 범위를 반복 할 경우,

var c : char; 
for c:=low(P) to high(p) do 
    OperationOn(P[c]); 

또는 시도 http://www.tutorialspoint.com/pascal/pascal_arrays.htm

감사

+0

당신이 당신의 코드를 수정할 수 있습니다 (현대가의 2.6.x + 필요) 그래서 컴파일 될 것입니다 (장래 독자의 이익을 위해)? 'Ord'는 배열이 아닌 내장 함수입니다. 'ord [m]'이 잘못되었습니다. 또한, 당신은 어디에서나 당신의 코드에'm' 변수가 없습니다. (귀하의 답변이 받아 들여 졌음을 알고 있습니다 만, 검색시이를 발견하는 미래의 독자들에게는 혼란 스러울 수있는 부적절한 콘텐츠가 있습니다.) –

+0

@KenWhite 저것을 알아 주셔서 감사합니다. ord [m]을 ord [c]로 변경했습니다. ord() 함수는 단지 서수 값을 반환하기 때문에 우리의 경우 명령문은 단지 대입 연산이므로'alphabet [c] : = c; '와 같은 것이 될 수 있습니다. – Aleem

+0

아니요, 여전히 부분적으로 잘못되었습니다. :-)'Ord'는 ** 함수 **이고, 당신은'[]'로 함수를 호출하지 않습니다; 올바른 코드가'Ord (c)'이기 때문에'()'로 호출합니다. 나는 너를 위해 그것을 고쳤다. :-) –

1

var t: list 
for t in P do 
    writeln(t.count); 
관련 문제