소개
정보로 작업할 때 표 형식 데이터를 처리해야 하는 경우가 매우 많습니다. 최신 프로그램은 이러한 데이터로 작업하는 경우가 많습니다. 가장 간단한 예는 tic-tac-toe, 체스, 체커 등 체크 무늬 보드에서 게임을 프로그래밍하는 것입니다.
수학에서는 이러한 구조를 행렬이라고 합니다.
행렬은 동일한 유형의 요소(숫자, 문자열 등)로 구성된 직사각형 테이블입니다. .)< /div>
파스칼의 이러한 데이터는 2차원 배열("배열의 배열")로 저장 및 처리될 수 있습니다.
테이블의 데이터를 처리하려면 각 셀(셀)의 상태를 기억해야 합니다. 각 셀에는 행 번호와 열 번호의 두 가지 숫자가 있습니다.
행렬에서 각 요소에는 두 개의 인덱스가 있습니다. 먼저 행 번호가 표시된 다음 열 번호가 표시됩니다. 행과 열의 번호 매기기는 0부터 시작합니다.
예를 들어, 요소 A[1][2]는 두 번째 행과 세 번째 열에 위치한 요소입니다.
일반 배열(목록)과 마찬가지로 행렬을 사용하려면 행렬을 만들고 입력하고 처리하고 표시하는 방법을 배워야 합니다.
매트릭스 생성
과제
0으로 채워진 주어진 크기의 행렬을 메모리에 생성합니다.
<사업부>
행렬을 올바르게 생성하려면 컴파일러가 메모리의 모든 문자열을 다른 개체로 생성하도록 강제해야 합니다.
이렇게 하려면 먼저 빈 배열을 만든 다음 행렬의 행 수를 지정하고 루프에서
setLength()
메서드를 사용하여 각 행의 요소 수를 지정해야 합니다.
엔 := 3
남 := 2
setLength(A, N);
for i := 0에서 N - 1 do
setLength(A[i], M);
임의 값으로 행렬 채우기
행렬을 만든 후 임의의 값으로 채울 수 있습니다. 각 요소에는 두 개의 인덱스가 있으므로 중첩 루프를 사용해야 합니다.
for i := 0에서 N까지 시작
for j := 0에서 M까지 시작
A[i][j] := ...
끝;
끝;
매트릭스 표시
두 개의 중첩된 루프는 일반적으로 목록을 처리하고 표시하는 데 사용됩니다. 첫 번째 주기는 줄 번호로, 두 번째 주기는 줄 내부의 요소로 이루어집니다.
행렬을 행별로 표시하려면 한 행 내에서 숫자를 공백으로 구분하고 다음 조각을 작성해야 합니다.
for i := 0 to length(A) - 1 do begin // length(A) - 행렬 A의 행 수 반환
for j := 0 to length(A[i]) - 1 do // length(A[i]) - 문자열 i의 요소 수 반환
write(a[i][j], ' ');
writeln(); // 라인이 표시된 후 개행을 수행합니다.
끝;
동일하지만 인덱스가 아닌 목록 값으로 순환합니다(for 루프는 목록(배열), 문자열의 모든 요소를 반복할 수 있음):
for row in a do begin // 행렬 a의 모든 행을 반복합니다.
for elem in row do // 행의 모든 요소를 반복합니다.
write(요소, ' ');
writeln();
종료;