소개.
정보로 작업할 때 매우 자주 표 형식 데이터를 처리해야 합니다. 최신 프로그램은 이러한 데이터로 작업하는 경우가 많습니다. 가장 간단한 예는 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 em> 문자열, 각각 공백으로 구분된 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 배열의 값으로 필요한 배열의 문자열을 채웁니다.
}
}
코드>스팬>프리>
|
매트릭스의 각 요소에는 두 개의 인덱스가 있으므로 반복하려면 중첩 루프를 사용해야 합니다. 모든 요소.
일반적으로 행렬은 행 단위로 반복됩니다. 외부 루프는 행 인덱스를 반복하고 내부 루프는 열 인덱스를 반복합니다.
그러나 필요한 경우 행렬과 열을 반복할 수 있으며 그러면 주기가 역전됩니다.
|