문제

당신은 어떻게 설명 중첩 배열을 프로그래머입니다.내가 생각하는 사람은 항목이 이해할 수 있는 프로그래밍하지만,더 많은 일을 하려고 하는 복잡한 코딩이다.

으로 배열을 배열 작동 하지만,그들은 확실히 그들의 마음에서 주변에는 아이디어.

편집: 의 예에는 중첩된 배열:

array(
    'array1' => array(
        'key1' => 'val1',
        'key2' => 'val2',
    ),
    'array2' => array(
        'key1' => 'val1',
        'key2' => 'val2',
    ), 
);

물론 그들은 일반적으로 더 복잡하게 보이는 문제입니다.

도움이 되었습니까?

해결책

그들에게 말을 생각 배열의 목록으로-그것을 그들에게 덜 뭔가 추상적인처럼,식료품 목록입니다.그런 다음,중첩된 배열순서 목록.

어쩌면 내가 일 목록,식료품 목록,그리고 이스트에서 amazon.com .지금 나는 목록의 내 모든 목록을 볼 수 있습니 사람들의 모든 요소에서는 각 목록으로 족답합니다.

다른 팁

중첩 어레이는 세트 내에서 세트입니다. 따라서 도서관에는 책 세트가 있고 책에는 챕터 세트가 있습니다. 장에는 일련의 단락이 있으며 단락에는 일련의 문장이 있습니다. 문장에는 단어 세트가 있습니다.

For each book in library

    For each chapter in book

        For each paragraph in chapter

등...

어떻게 설명 했습니까? 하나의 차원 배열을 이해하는 사람에게는 큰 점프처럼 보이지 않아 각 배열 요소가 대신 다른 배열을 포함하는 int 또는 문자열 대신 개념을 파악할 수 있습니다.

아마도 디렉토리를 비교하는 비유가 도움이 될 것입니다. 1 차원 배열은 파일 무리를 포함하는 디렉토리, 여러 다른 디렉토리가 포함 된 디렉토리에 2 차원 배열, 각각의 파일 등이 포함 된 디렉토리에 유사합니다.

그려 봐.

변수는 상자입니다
1 차원 배열은 상자 행입니다.
2 차원 배열은 상자의 그리드입니다.
3 차원 배열은 상자 큐브입니다.

그들이 일반적인 개념에 어려움이 있다면, 4 차원을 시각적으로 설명하려고 시도하지 마십시오.

비트 맵을 예로 사용하십시오. C에서는 비트 맵을 만들 수 있습니다. X 이와 같이:

int x[5][5] = {
    { 1,0,0,0,1 },
    { 0,1,0,1,0 },
    { 0,0,1,0,0 },
    { 0,1,0,1,0 },
    { 1,0,0,0,1 }
};

그런 다음 중첩을 사용하는 방법을 보여주십시오 for 비트 맵을 표시하는 고리.

예는 항상 도움이되며, 이는 중첩 어레이를 다차원 배열로 생각하게됩니다. 실제로 동일한 배열에서 다른 레벨의 중첩을 가질 수있는 Python과 같은 언어로 된 "중첩 된"어레이에 대해 배우기 전에 C와 같은 언어로 다차원 배열을 이해하는 것이 좋습니다.

스포츠는 중첩 어레이 적용을 설명하기 위해 적절한 유사성을 제공 할 수 있습니다. 팀은 수많은 사람들이며, 경쟁은 서로 대항하는 팀의 배열입니다.

그러나 학습자와 클릭하는 비유를 찾는 경우입니다. 올바른 비유를 찾으면 가장 느린 학습자조차 이해할 수 있습니다. 유추가 꽉 조이는지 확인하십시오. 추상화와 마찬가지로 새는 것입니다.

구체적인 예는 책 뒷면의 색인입니다. 단어 목록, 페이지 번호 목록과 관련된 각 단어.

사과 -1, 2, 3-4
곰 -32-35, 79, 83
고양이 -14, 15

C 유형, 비 동체, 배열, 숫자와 비교하고 기본 10 부분을 비교하고 숫자가 도움이 될 수 있습니다. 이 같은 효과에 대한 또 다른 좋은 소스는 균일하지 않은베이스 60s = 1m, 60m = 1h, 24h = 1day, 7day = 1 주를 갖기 때문에 시간이 될 것입니다.

다중 차원 어레이를 설명하기 위해 선생님이 한 것을 기억하는 것은 약간 휴대용 인덱스 카드 파일을 가져 오는 것이 었습니다 (얼마 전에 도서관에서 찾을 수있는 오래된 Dewey Decimal System Cabinets와는 달리).

각 슬롯은 2 차원 배열입니다 (즉, 각 인덱스는 메모 카드 배열을 보유하고 있음). 그러나 컨테이너 자체는 3 차원 배열의 색인이었다 (즉, 각 인덱스는 메모가있는 배열을 보유한 배열을 보유하고 있음). 그런 다음 거기에서 이론은 쉬웠습니다.

구체적인 예는 매우 유용합니다.

2 차원은 설명하기 쉽습니다. 테이블 만 생각하십시오. 3 차원은 큐브 또는 기타 3D 이미지를 생각합니다. 4 차원은 4 차원이 시간 인 영화와 같은 일련의 이미지를 생각합니다.

4+ 치수는 해당 모델을 사용하여 시각화하기가 어렵습니다. 그러나 내부에 다른 파일 캐비닛이있는 파일 캐비닛으로 생각하십시오. 서랍을 열고 출원 캐비닛을 팝업합니다. 당신은 당신이 원하는 서랍을 찾아서 그 서랍을 열고 밖으로 다른 서류 캐비닛을 터뜨립니다 .... 마침내 종이를 얻을 때까지 계속해서.

아마도 당신은 배열 배열을 이해하는 사람의 맥락에서 그것을 설명하고있을 것입니다. 나는 그들이 가장 작은 (내부 배열 읽기)에서 시작하여 이미 그들을 이해하고 천천히 확장하여 그들이 끝날 때까지 질문을 할 충분한 시간을 주었다는 것을 깨닫게하려고 시도 할 것입니다.

그림은 도움이되지만이 경우 학생에게 정보를 제공하고 천천히 가야합니다. 내가 아는 대부분의 프로그래머는 빨리 가고 청취자가 더 이상 말하는 것을 추적하지 않을 때에도 설명하는 경향이 있습니다.

나는 은유적인 사람이므로 아마 각각의 상자에 걸쳐 일련의 상자에 대해 무언가를 요리 할 것입니다. 각 상자에는 비슷한 (그러나 훨씬 작은 시리즈)가 포함되어 있습니다. 나는 이것을 두 가지 수준으로 이해하고 이해하기 위해 3 차원에 대해 이야기 할 것입니다. 그러나 나는 그들이 4 차원과 같은 것이 없거나 시간을 측정 할 수 없다는 생각이나 다른 은유 적 지뢰/산만 함 ... 다른 문제의 원인이라는 생각에 매달릴 수 있다는 이유로 4 차원을 피할 것입니다. , 프로그래머는 추가하고 측면 추적을 즐기는 경향이 있습니다.

또한 왜 해시 해시를 사용하지 않으며 참조하기가 훨씬 쉽습니다. :)

결론, 아기 발걸음.

배열은 단지 물체 일뿐입니다. 일단 이해하기 쉬워야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top