데이터 저장
플레이어가 복잡하고 친근하지 않은 컴퓨터 인터페이스와 경쟁하는 "User Hostile"이라는 컴퓨터 게임을 개발했다고 가정해 보겠습니다. 이제 5년 동안 이 게임의 월별 판매를 추적하는 프로그램을 작성해야 합니다. 또는 Hacker Hero 트레이딩 카드의 인벤토리가 필요하다고 가정해 보겠습니다.
곧 정보를 저장하고 처리하기 위해 단순한 기본 데이터 유형 이상이 필요하다는 결론에 도달하게 될 것입니다.
배열(목록). 소개
많은 양의 데이터로 작업하기 편리하도록 셀 그룹에 공통 이름이 지정됩니다. 이러한 셀 그룹을
배열이라고 합니다.
배열 – 나란히 위치하고 공통 이름을 갖는 동일한 유형의 메모리 셀 그룹입니다. 그룹의 각 셀에는 고유 번호가 있습니다.
배열로 작업할 때 세 가지 작업을
해결하는 방법을 배워야 합니다.
엑스 배열에 필요한 크기의 메모리 할당
엑스 원하는 셀에 데이터 쓰기
엑스 셀에서 데이터 읽기
Pascal의 배열
전통적으로 Pascal은
와 같은 정적 배열을 사용합니다.
<예비>
var a: 정수 배열 [1..10];
배열의 경계는 상수로 설정해야 하며 프로그램 실행 중에는 배열의 크기를 변경할 수 없습니다. 그러나 정수뿐만 아니라 문자나 열거 유형의 인덱스도 만들 수 있습니다. 예를 들어 각 문자의 발생 횟수를 계산하려면 배열을 사용할 수 있습니다.
<예비>
var LettersCount: 정수 배열 ['a'..'z'];
열심히 작업하세요.
<예비>
LettersCount['z'] := 1;
LettersCount['d'] := LettersCount['d'] + 1;
이러한 배열의 단점은 알려져 있습니다. 얼마나 많은 요소를 사용해야 하는지 미리 알 수 없는 경우 최대 크기의 메모리가 배열에 할당됩니다. 결과적으로, 대부분의 경우 우리는 "미래를 위해 비축"하고 때로는 이 "비축" 충분하지 않은 것으로 밝혀졌습니다. 이것이 이러한 배열을 정적이라고 부르는 이유입니다. 크기는 정적이며 프로그램 컴파일 단계에서 설정해야 합니다. 그러나 파스칼에는 크기를 설정할 수 있을 뿐만 아니라 프로그램 과정에서 변경할 수도 있는 동적 배열이 있습니다. 이러한 배열과 이를 사용할 때의 이점에 대해 자세히 설명하겠습니다.
배열 만들기
배열 생성 시 메모리에 공간 할당(일정 개수의 셀)
<예비>
1) 배열은 다음과 같을 수 있습니다. 단순히 요소를 나열하여 생성됨:
<예비>
var a: 정수 배열;
SetLength(a, 3);
a[0] := 1;
a[1] := 2;
a[2] := 3;프리>
2) 배열은 정수 또는 실수, 문자열 등 모든 유형의 데이터로 구성될 수 있습니다.
<예비>
var a: 문자 배열;
SetLength(a, 3);
a[0] := 'a';;
a[1] := 'b';;
a[2] := 'c';;
3) 배열은 항상 "인식" 너의 사이즈.
length
함수는 배열의 크기를 결정하는 데 사용됩니다. 종종 배열의 크기는 별도의 변수에 저장되므로 다른 배열 크기로 작업하도록 프로그램을 쉽게 변경할 수 있습니다. 예:
<예비>
엔 := 10; // 변수 N에 배열의 크기를 저장합니다.
SetLength(a, N); // 배열 및 크기 N 설정
writeln(길이(a)); //배열의 크기 표시
배열의 크기는 키보드에서 설정할 수 있습니다.