소개.

정보로 작업할 때 매우 자주 표 형식 데이터를 처리해야 합니다. 최신 프로그램은 이러한 데이터로 작업하는 경우가 많습니다. 가장 간단한 예는 tic-tac-toe, 체스, 체커 등 체크 무늬 보드에서 게임을 프로그래밍하는 것입니다.

수학에서는 이러한 구조를 행렬이라고 합니다.

 
매트릭스 는 동일한 유형의 요소(숫자, 문자열 등)로 구성된 직사각형 테이블입니다.< /스팬>

C#의 이러한 데이터는 2차원 배열("배열의 배열")로 저장하고 처리할 수 있습니다. .
테이블의 데이터를 처리하려면 각 셀(셀)의 상태를 기억해야 합니다. 각 셀에는 행 번호와 열 번호의 두 가지 숫자가 있습니다.
행렬에서 각 요소에는 두 개의 인덱스가 있습니다. 먼저 행 번호가 표시된 다음 열 번호가 표시됩니다. 행과 열의 번호 매기기는 0부터 시작합니다.
예를 들어 A[1, 2] 요소는 두 번째 행과 세 번째 열에 위치한 요소입니다.

일반 배열과 마찬가지로 행렬을 사용하려면 행렬 생성을 배워야 합니다. 입력, 처리 및 표시합니다.

행렬을 만듭니다.

다음과 같은 메모리 내 매트릭스를 생성할 수 있습니다. 일부 초기 값으로 채워진 주어진 크기.

int[,] 배열 = new int[4, 2]; // 4행 2열

  <사업부>

행렬을 만든 후 임의의 값으로 채울 수 있습니다. 각 요소에는 두 개의 인덱스가 있으므로 중첩 루프를 사용해야 합니다.

<예비> for (int i=1; i <= N, i++) { / / N - 줄 수 for (int j=1; j <= N, j++) { // M은 열의 수입니다. A[i, j] = ...   } } 행렬을 표시합니다.

일반적으로 두 개의 중첩 루프가 목록을 처리하고 표시하는 데 사용됩니다. 첫 번째 루프는 줄 번호에 있고 두 번째 루프는 줄 내의 요소에 있습니다.  행렬을 한 줄씩 화면에 출력하려면 한 줄 내에서 숫자를 공백으로 구분하고 다음 조각을 작성해야 합니다.
  <예비> for (int i=1; i <= N, i++) { for (int j=1; j <= N, j++) { Console.Write(A[i, j] + " ");   }   Console.WriteLine(); // 새 줄로 이동 }

동일하게 할 수 있지만 index ( foreach). 이를 직접 구현하는 서브루틴을 작성해 보십시오.

키보드의 값으로 행렬 채우기

프로그램이  < em>n 문자열, 각각 공백으로 구분된 m 숫자를 포함합니다. 어떻게 세나요? 예를 들면 다음과 같습니다.

<예비> int[,] 배열 = new int[n,m]; // 채울 배열을 만듭니다. for (int i = 0; i <  n; i++) {        문자열 A = Console.ReadLine(); // 라인 읽기        int[] curr = A.Split(' ').Select(int.Parse).ToArray(); // 이 문자열을 1차원 배열로 변환 curr        for (int j = 0; j < m; j++)        {            array[i, j] = curr[j]; // curr 배열의 값으로 필요한 배열의 문자열을 채웁니다.        } }

 

매트릭스의 각 요소에는 두 개의 인덱스가 있으므로 반복하려면 중첩 루프를 사용해야 합니다. 모든 요소.
일반적으로 행렬은 행 단위로 반복됩니다. 외부 루프는 행 인덱스를 반복하고 내부 루프는 열 인덱스를 반복합니다.
그러나 필요한 경우 행렬과 열을 반복할 수 있으며 그러면 주기가 역전됩니다.