На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила ЧаВо (FAQ) разделов Паскаля
В этом разделе разрешено создавать только темы, в которых описано РЕШЕНИЕ какой-либо общей проблемы, или описание какого-либо аспекта языка Паскаль.
Обсуждение уже созданных тем разрешено, но только конструктивное, например указание на ошибку или уточнение имеющегося текста.

Также читать Требования к оформлению статей
Модераторы: volvo877, Romtek
  
> Что такое массивы и как с ними бороться
    vot вам лекция на тему

    Что такое массивы и как с ними бороться

    © vot


    Как, вы не знаете, что такое "массивы"?! Ну, это враки!
    Вы давно и близко с ними знакомы, еще с детства,
    просто бывают на свете такие талантливые преподаватели,
    которые умудряются так запудрить нам мозги,
    что мы перестаем понимать даже элементарные вещи...

    Итак начнем...

    Тетрадку в клеточку знаете? Ну, конечно, кто ж ее не знает! :)))

    Так вот, представьте себе, что оперативная память компьютера
    весьма похожа на такую тетрадку. У тетрадки есть странички,
    и память тоже может иметь "страницы", но об этом мы поговорим
    как-нибудь отдельно...

    А сейчас обратим внимание на самое главное, на то,
    что, собственно, дает название такой тетрадке!

    Так что же там "главное"? Правильно! Ну конечно же - клетка!

    Память можно рассматривать именно как набор клеточек или ячеек
    (припоминаются еще и пчелиные соты), в которые можно "складывать"
    нашу информацию, по одной штучке в каждую ячейку.
    (Кстати, ячейки памяти могут быть разными, но этот вопрос мы тоже
    рассмотрим попозже.)

    Ну, а теперь перейдем непосредственно к массивам.
    Возьмите ручку и обведите на тетрадном листке несколько ячеек подряд,
    например, пусть это будет горизонтальный прямоугольник высотой в одну
    клетку и шириной в 10 клеток.
    Мы получили группу объединенных клеток (ячеек).
    Теперь пора открыть вам страшный секрет - это и есть массив!

    Давайте придумаем ему название, например Massive1, и подпишем его слева
    от нашей "полоски клеток". Теперь это уже "именованный" массив ячеек.
    Осталось только пронумеровать ячейки нашего массива от 1 до 10:

    ExpandedWrap disabled
                  1  2  3  4  5  6  7  8  9  10
                 -------------------------------
        Massive1 |  |  |  |  |  |  |  |  |  |  |
                 -------------------------------

    Такой массив в Паскале описывается следующим образом:

    ExpandedWrap disabled
      var
        Massive1 = Array[1..10] of тип_данных_в_ячейке.


    Теперь мы можем указать (адресовать) любую ячейку этого массива
    как "ячейка № N в массиве Massive1".

    В языке Паскаль это записывается как Massive1[n],
    например Massive1[2] - вторая ячейка массива,
    или Massive1[10] - десятая ячейка.

    Теперь давайте вспомним игру "Морской бой" и обведем в тетрадке
    прямоугольник высотой 10 клеток и шириной тоже 10 клеток.
    Назовем его, к примеру, SeaBattle, и пронумеруем колонки и строки
    этого массива:

    ExpandedWrap disabled
                  1  2  3  4  5  6  7  8  9  10
                 -------------------------------
      SeaBattle 1|  |  |  |  |  |  |  |  |  |  |
                 -------------------------------
                2|  |  |  |  |  |  |  |  |  |  |
                 -------------------------------
                3|  |  |  |  |  |  |  |  |  |  |
                 -------------------------------
                4|  |  |  |  |  |  |  |  |  |  |
                 -------------------------------
                5|  |  |  |  |  |  |  |  |  |  |
                 -------------------------------
                6|  |  |  |  |  |  |  |  |  |  |
                 -------------------------------
                7|  |  |  |  |  |  |  |  |  |  |
                 -------------------------------
                8|  |  |  |  |  |  |  |  |  |  |
                 -------------------------------
                9|  |  |  |  |  |  |  |  |  |  |
                 -------------------------------
               10|  |  |  |  |  |  |  |  |  |  |
                 -------------------------------

    Такой массив в Паскале описывается следующим образом:

    ExpandedWrap disabled
      var
        SeaBattle = Array[1..10,1..10] of тип_данных_в_ячейке.

    Такой массив называется "двумерным" потому, что любая его ячейка
    может быть указана с помощью двух значений - номера строки,
    и номера колонки (столбца). Двумерный массив - прямой аналог
    понятия "матрица" в математике.

    Вспомните, как адресуется каждая клеточка в игре "Морской бой".
    Помните - А9, В1, Г3... Ну, и здесь почти так же!
    Единственная разница - мы используем для нумерации не буквы,
    а цифры!
    Например, SeaBattle[1,5] - ячейка, расположенная на пересечении
    первой строки и пятого столбца.
    SeaBattle[9,2] - ячейка, расположенная в девятой строке и втором столбце.

    Ну а теперь - зачем это все нужно?
    Да просто затем, что иногда информацию гораздо удобнее представлять
    именно в виде массивов. Например, когда вы работаете с матрицами -
    легче всего разместить ее именно в двумерном массиве.
    Часто исходная информация от природы имеет структуру,
    которая наиболее логично умещается именно в массив.
    Приглядитесь к пофамильному списку студентов вашей группы -
    да ведь это же обыкновенный одномерный массив!
    Только ячейками массива являются не числовые значения,
    а фамилии и имена, т.е. строки символов (strings).
    Еще один пример массивов - карта в какой-нибудь игре.

    Всё, дальше сами придумывайте аналогии, а то мне уже надоело :)))
    0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
    0 пользователей:


    Рейтинг@Mail.ru
    [ Script execution time: 0,0236 ]   [ 16 queries used ]   [ Generated: 24.04.24, 16:08 GMT ]