Как называются ячейки оперативной памяти в которых хранятся данные массива

от admin

# факты | Как работает оперативная память?

Оперативная память (ОЗУ, RAM), самая известная из всех рассмотренных ранее форм компьютерной памяти. Эту память называют памятью «произвольного доступа» («random access»), поскольку вы можете получить доступ к любой ее ячейке непосредственно. Для этого достаточно знать строку и столбец, на пересечении которых находится нужная ячейка. Известны два основных вида оперативной памяти: динамическая и статическая. Сегодня мы подробно рассмотрим принцип «дырявого ведра», на котором основана динамическая память. Некоторое внимание будет уделено и статической памяти, быстрой, но дорогой.

Ячейка памяти подобна дырявому ведру

Оперативная память

Подобно подробно рассмотренному ранее микропроцессору, чип памяти является интегральной микросхемой (ИС, IC), собранной из миллионов транзисторов и конденсаторов. Одним из наиболее распространенных видов памяти произвольного доступа является DRAM (динамическая память произвольного доступа, dynamic random access memory). В ней транзистор и конденсатор спарены и именно они образуют ячейку, содержащую один бит информации. Конденсатор содержит один бит информации, то есть «0» или «1». Транзистор же играет в этой паре роль переключателя (свитча), позволяющего управляющей схеме чипа памяти считывать или менять состояние конденсатора.

Конденсатор можно представить себе в виде небольшого дырявого «ведерка», которое при необходимости заполняется электронами. Если оно заполнено электронами, его состояние равно единице. Если опустошено, то нулю. Проблемой конденсатора является утечка. За считанные миллисекунды (тысячные доли секунды) полный конденсатор становится пустым. А это значит, что или центральный процессор, или контроллер памяти вынужден постоянно подзаряжать каждый из конденсаторов, поддерживая его в наполненном состоянии. Подзарядку следует осуществлять до того, как конденсатор разрядится. С этой целью контроллер памяти осуществляет чтение памяти, а затем вновь записывает в нее данные. Это действие обновления состояния памяти осуществляется автоматически тысячи раз за одну только секунду.

Конденсатор динамической оперативной памяти можно сравнить с протекающим ведром. Если его не заполнять электронами снова и снова, его состояние станет нулевым. Именно эта операция обновления и внесла в название данного вида памяти слово «динамическая». Такая память или обновляется динамически, или «забывает» все, что она «помнила». Есть у этой памяти существенный недостаток: необходимость постоянно обновлять ее требует времени и замедляет работу памяти.

Устройство ячейки динамической оперативной памяти (DRAM)

Оперативная память

Итак, представим себе тетрадный лист. Некоторые клеточки закрашены красным фломастером, а некоторые остались белыми. Красные клеточки это ячейки, состояние которых «1», а белые — «0».

Только вместо листа из тетради в оперативной памяти используется кремниевая пластина, в которую «впечатаны» столбцы (разрядные линии, bitlines) и строки (словарные шины, wordlines). Пересечение столбца и строки является адресом ячейки оперативной памяти.

Динамическая оперативная память передает заряд по определенному столбцу. Этот заряд называют стробом адреса столбца (CAS, Column Adress Strobe) или просто сигналом CAS. Этот сигнал может активировать транзистор любого бита столбца. Управляющий сигнал строки именуется стробом адреса строки (RAS, Row Adress Strobe). Для указания адреса ячейки следует задать оба управляющих сигнала. В процессе записи конденсатор готов принять в себя заряд. В процессе чтения усилитель считывания (sense-amplifier) определяет уровень заряда конденсатора. Если он выше 50 %, бит читается, как «1»; в остальных случаях, как «0».

Осуществляется также обновление заряда ячеек. За порядком обновления следит счетчик. Время, которое требуется на все эти операции, измеряется в наносекундах (миллиардных долях секунды). Если чип памяти 70-наносекундный, это значит, полное чтение и перезарядка всех его ячеек займет 70 наносекунд.

Сами по себе ячейки были бы бесполезны, если бы не существовало способа записать в них информацию и считать ее оттуда. Соответственно, помимо самих ячеек, чип памяти содержит целый набор дополнительных микросхем. Эти микросхемы выполняют следующие функции:

  • Идентификации строк и столбцов (выбор адреса строки и адреса ячейки)
  • Отслеживание порядка обновления (счетчик)
  • Чтение и возобновление сигнала ячейки (усилитель)
  • Донесение до ячейки сведений о том, следует ли ей удерживать заряд или нет (активация записи)

У контроллера памяти есть и другие функции. Он выполняет набор обслуживающих задач, среди которых следует отметить идентификацию типа, скорости и объема памяти, а также проверку ее на ошибки.

Статическая оперативная память

Оперативная память

Статическая оперативная память быстрее, но и стоит дороже. По этой причине статическая память используется в кэше центрального процессора, а динамическая в качестве системной оперативной памяти компьютера. Более подробно о статической памяти написано в разделе «Кэш-память и регистр процессора» материала, посвященного преодолению ограничений компьютерной памяти.

В современном мире чипы памяти комплектуются в компонент, именуемый модулем. Порой компьютерные специалисты называют его «планкой памяти». Один модуль или «планка» содержит несколько чипов памяти. Не исключено, что вам приходилось слышать такие определения, как «память 8×32» или «память 4×16». Разумеется, цифры могли быть иными. В этой простой формуле первым множителем является количество чипов в модуле, а вторым емкость каждого модуля. Только не в мегабайтах, а в мегабитах. Это значит, что результат действия умножения следует разделить на восемь, чтобы получить объем модуля в привычных нам мегабайтах.

К примеру: 4×32 означает, что модуль содержит четыре 32-мегабитных чипа. Умножив 4 на 32, получаем 128 мегабит. Поскольку нам известно, что в одном байте восемь бит, нам нужно разделить 128 на 8. В итоге узнаем, что «модуль 4×32» является 16-мегабайтным и устарел еще в конце минувшего века, что не мешает ему быть превосходным простым примером для тех вычислений, которые нам потребовались.

Тема оперативной памяти настолько обширна, что мы вернемся к ней еще. Нам предстоит узнать о том, какие бывают типы оперативной памяти и как устроен ее модуль. Продолжение следует…

Виды памяти компьютера

Учимся разбираться в различных видах памяти компьютера. Знания помогут при покупке или модернизации ПК. Позволят выбрать подходящее хранилище данных.

Оперативная память устройства

В оперативной памяти (ОЗУ, RAM) хранятся лишь те данные, которые в данный момент используются процессором. ОЗУ — очень быстрая память, хотя и медленнее, чем сам центральный процессор. Применение оперативной памяти ускоряет работу ПК. Процессору не приходится обращаться к медленному накопителю, когда ему требуются данные или инструкция. RAM — один из самых дорогих компонентов компьютера. Оперативная память бывает в основном двух видов — динамическая и статическая.

Оперативная память DDR4 Kingston FURY Beast Black

Что такое DRAM — динамическая оперативная память

Динамическое ОЗУ (DRAM) получило наиболее широкое распространение. В каждой ячейке содержится как транзистор, так и конденсатор. За последние десятилетия появилось много версий DRAM. Самая старая известна как SDR — DRAM с одинарной скоростью передачи данных. В дальнейшем появились новые поколения ОЗУ: DDR2, DDR3, DDR4, DDR5. Чем больше цифра после DDR, тем производительнее и энергоэффективнее память. В одном устройстве используется только один вид DRAM, разные между собой обычно несовместимы.

Что такое SRAM — статическое ОЗУ

SRAM (статическое ОЗУ) быстрее, чем DRAM. При этом значительно дороже и габаритнее, поскольку в каждой ячейке 6 транзисторов. Почти всегда применятеся в качестве кэш-памяти — буфера между основной оперативной памятью и ЦП. Самая быстрая и маленькая SRAM — кэш-память внутри ядра ЦП.

ПЗУ — постоянная память

Постоянная память (ПЗУ, ROM) получила свое название, поскольку данные в ней неизменяемы — не могут быть удалены или изменены обычными методами. Находится в непосредственной близости от процессора устройства. Инструкции в ПЗУ — первое, что ЦП читает и выполняет при включении устройства. Обычно содержит BIOS, который позволяет компьютеру выполнить необходимые шаги для старта ОС.

ПЗУ — энергонезависимая память, которая не теряет свои данные, когда не подается электропитание (например, когда компьютер выключается). ПЗУ применяется не только в ноутбуках и «стационарах», но и другой электронике, в том числе: игровых консолях, автомобильных радиоприемниках и навигационных системах.

Бывают различные виды ПЗУ. Программируемое ПЗУ (ППЗУ, PROM) производится пустым. Можно запрограммировать с помощью программатора или специального записывающего устройства. Информация в СППЗУ (стираемом программируемом ПЗУ) может быть стерта, а затем перепрограммирована. Сегодня ПЗУ зачастую называют также накопитель устройства — телефона, планшета или компьютера.

Что такое накопители данных

Накопители данный порой также называют «вторичной памятью». Отличаются сравнительно большой емкостью. Стоят дешевле ОЗУ. Предназначены для установки операционной системы и ПО — игр, приложений и сервисов. Используются для хранения файлов — документов, таблиц, баз данных, мультимедийного контента: фото, видео, музыки. Для этих задач применяют диски (жесткие, твердотельные и оптические), а также дисковые массивы. Широкое распространение получили облачные хранилища. В архивах применяют ленточные накопители.

Классический жесткий диск — дешевый, но шумный и медленный

Жесткие диски (классические HDD) порой также называют «винтами» или «винчестерами». Являются электромеханическими устройствами, предназначенными для длительного хранения данных. Состоят из стопки вращающихся дисков, удерживаемых шпинделями. Пластины покрыты магнитным материалом, который и хранит данные. Оснащены головкой, которая перемещается по пластине, чтобы читать и записывать информацию. Диск вращается быстро, что позволяет головке довольно эффективно считывать данные.

Жесткие диски — самое дешевое долгосрочное хранилище данных из рассчета на гигабайт информации. И не самое надежное решение — можно потерять данные, если поверхность пластины поцарапана. В HDD много движущихся частей, каждая из которых может сломаться или сбойнуть. Жесткий диск издает довольно громкие звуки, потребляет много электричества. Довольно медленны для операционных систем, игр и приложений. Зато отлично подходят для длительного хранения и архивирования.

HDD Toshiba X300

SSD — быстрый и тихий носитель данных

SSD (твердотельные диски, «твердотельники») — полупроводниковые долговременные энергонезависимые накопители. Для хранения данных применяется флэш-память NAND. Альтернатива жесткому диску в ноутбуке или настольном ПК для ОС, ПО, личных или рабочих файлов. Содержат контроллеры, флэш-памяти NAND для хранения информации и DRAM. Три компонента работают в связке. Каждая микросхема флэш-памяти состоит из массива блоков, расположенных в виде сетки. Внутри отдельных блоков находятся ячейки памяти, в которых хранятся данные.

SSD лишен движущихся компонентов, поэтому шума не производит. Отсутствие механических компонентов сводит к минимуму риск физического повреждения. «Твердотельники» менее долговечны, чем HDD — служат до 5 лет. Поэтому менее эффективны для архивного хранения. Впрочем, ситуация меняется. На некоторые модели производители дают гарантию до 10 лет. Быстрее и компактнее, чем HDD. И дороже жестких дисков.

Оптические носители информации — CD, DVD, Blu-ray

Наиболее распространенные оптические носители информации:

Не забудьте подписаться на наш Дзен

  • CD — компакт-диски:

Для записи и считывания данных используется лазер. Некоторые оптические диски могут быть многократно перезаписаны: старые данные стерты и записаны новые. Для чтения (порой записи) CD, DVD или Blu-ray требуется специальный оптический привод. Дисковод может быть встроен в ноутбук или «стационар». Или подключаться с помощью кабеля — в таком случае будет внешним устройством.

Оптический привод посылает лазерный луч, который сканирует поверхность вращающегося диска. Скорость записи и чтения зависит от скорости вращения диска. На оптическим дисках есть миниатюрные канавки и выступы, которые оптический привод обнаруживает, анализируя, как лазер отражается от поверхности диска.

Изначально CD предназначались для музыки, а DVD — для фильмов. Но благодаря невысокой стоимости как дисков, так и приводов, использовались также для автономного (без интернета и локальной сети) обмена данными между людьми. Применяются до сих пор, хотя и реже. В значительной мере вытеснены вместительными флэшками, внешними дисками и облачными хранилищами.

Ленточные накопители — надежные, но медленные

Ленточные накопители — энергонезависимые устройства для долговременного хранения данных. Для хранения, чтения и записи битов информации применяется магнитная лента. Гибкую ленту защищает корпус. Чтобы записать или считать данные, требуется специальное оборудование. Оптимальное решение для архивного и долговременного хранения, поскольку средний срок эксплуатации накопителя — до 30 лет.

Экономичны и просты в обслуживании, поэтому подходят для хранения больших объемов данных. Редко используются с домашними и офисными настольными ПК и ноутбуками, поскольку громоздкие и медленные. Ведь ленточному накопителю приходится перематывать ленту, чтобы достичь определенной точки и считать данные. Метод доступа к информации менее эффективен, чем в твердотельных и жестких дисках.

Дисковые массивы — NAS, DAS

Для хранения больших объемов данных применяют дисковые массивы. Кроме дисков такое хранилище оснащено блоком питания, вентилятором для охлаждения, лотками для дисков и контроллерами. Позволяют установить несколько дисков и получать доступ к данным с одного или нескольких устройств — в том числе: компьютеров, смартфонов, планшетов.

Широко используются NAS (Network Attached Storage, сетевые хранилища). Такое хранилище подключено к компьютерной сети. Позволяет группам пользователей и разным устройствам получать доступ к информации — извлекать и записывать данные по мере необходимости.

NAS Synology DS1621+

NAS представляют собой специальные серверы с лотками для дисков. Оснащены процессорами и оперативной памятью. Термин NAS относится как к программному, так и к аппаратному обеспечению. ПО содержит набор протоколов связи и обмена файлами по сети. Контролируют, как авторизированные устройства и учетные записи пользователей могут получать доступ к данным. NAS применяются корпорациями и предприятиями. Могут быть полезны небольшим группам профессионалов. Оптимальны для сценариев работы, когда к одним и тем же данным требуется доступ с нескольких устройств. Удобны для совместной работы.

Применяются также DAS — хранилища с прямым подключением. Соединены с компьютером кабелем. В корпусе — несколько дисков с данными. Своего рода большие внешние диски. В ряде моделей предусмотрен продвинутый функционал, характерный для NAS — настройка зеркалирования RAID. Разъяснил в «Блоге системного администратора», как RAID защищает данные при выходе из строя SSD или HDD:

Облака — доступ к данным через интернет

Облачное хранилище — данные находятся вне дома или офиса на серверах дата-центра. Термин «облако» относится к физическим устройствам хранения, которые охватывают несколько серверов. Сервера принадлежат провайдеру сервиса, который также обслуживает и содержит оборудование. Крупные компании с удаленными друг от друга филиалами предпочитают создавать собственные облачные хранилища. Необходимые составляющие облачного хранения: программное обеспечение, оборудование и услуги.

Читать:
Как считать квартиль в excel

Чтобы получить доступ к данным в «облаке», нужен интернет. Преимущество — доступ к файлам можно получить из любой точки мира и с любого устройства. Не требуется локальный накопитель. Облачное хранилище не рекомендуется компаниям, которые работают с конфиденциальной информацией. Лучше не использовать для данных, которые критически важны в работе. Ведь потеря соединения ведет к простою.

Массивы
Задание 1
Вопрос:
Сколько байт оперативной памяти будет занимать описанный массив?
t: array [1..80] of boolean;
Выберите один из 4 вариантов ответа:
1) 160 2) 10 3) 0 4) 80
Задание 2
Вопрос:
Сколько элементов в описанном массиве?
d: array [byte] of byte;
Запишите число:
___________________________

Задание 3
Вопрос:
Сколько байт занимает описанный массив?
a: array [boolean] of real;
Запишите число:
___________________________
Задание 4
Вопрос:
Как называются ячейки оперативной памяти, в которых хранятся данные массива?
Выберите один из 4 вариантов ответа:
1) Пункты массива 2) Строки 3) Индексы 4) Элементы массива
Задание 5
Вопрос:
Какие действия возможны над массивами, как над единым целым?
Выберите несколько из 4 вариантов ответа:
1) Присваивание 2) Проверка неравенства
3) Сложение 4) Проверка равенства

Задание 6
Вопрос:
Как обратится к элементу массива а с индексом 5?
Запишите ответ:
__________________________________________
Задание 7
Вопрос:
Как называется структурный тип данных, используемый для хранения пронумерованных величин одного типа?
Выберите один из 4 вариантов ответа:
1) Регулярный тип 2) Комбинированный тип
3) Составной тип 4) Строковый тип
Задание 8
Вопрос:
Какие варианты описания элементов массива являются правильными?
Выберите несколько из 4 вариантов ответа:
1) c: array [char] of 1..7; 2) m: array [integer] string;
3) t: array [real] of real; 4) a: array [1..2] of byte;
Задание 9
Вопрос:
Сколько байт оперативной памяти в среде Pascal ABC занимает описанный двумерный массив?
a: array [1..50, 1..70] of integer;
Выберите один из 4 вариантов ответа:
1) 7 000 2) 70 3) 3 500 4) 50
Задание 10
Вопрос:
Какая величина в языке Pascal называется массивом?
Выберите один из 4 вариантов ответа:
1) Величина составного типа
2) Величина одного из числовых типов
3) Величина регулярного типа
4) Величина символьного типа

Массивы

В данный момент вы не можете посмотреть или раздать видеоурок ученикам

Чтобы получить доступ к этому и другим видеоурокам комплекта, вам нужно добавить его в личный кабинет.

Получите невероятные возможности

Конспект урока «Массивы»

· Хранение массивов в оперативной памяти компьютера.

· Описание массивов и обращение к ним на языке Pascal.

· Ввод и вывод элементов массива.

Массив – это величина регулярного типа. Регулярный тип данных – это структурный тип данных, который используется для хранения пронумерованных величин одного типа. Это означает, что массив состоит из ячеек оперативной памяти, в которых хранятся данные одного типа. Эти ячейки называются элементами массива. Они расположены в оперативной памяти компьютера последовательно и каждая из них имеет порядковый номер, который называется индексом элемента массива.

На языке Pascal массивы описываются в блоке описания используемых данных. Например, в разделах описания констант и переменных. Рассмотрим описание массива в разделе описания переменных. Сначала, как у любой переменной, у массива указывается имя или идентификатор дальше после двоеточия, через пробел, записывается служебное слово array, что в переводе с английского языка означает «массив». После него, через пробел, в квадратных, или иначе индексных, скобках указывается тип индексов элементов массива. После квадратных скобок, через пробел, следует служебное слово of, после которого, через пробел, указывается тип элементов массива.

<имя>: array [<тип индексов>] of <тип элементов>;

Чаще всего в качестве типа индексов указывается ограниченный тип, который представляет собой набор значений в указанном диапазоне. Диапазон указывается следующим образом:

[<Начальное значение>..<Конечное значение>]

Описание ограниченного типа

В качестве примера зададим массив, который будет хранить количество яблок в каждой из восьми корзин. Назовём массив k. Очевидно, что индексами элементов массива будут номера корзин – целые числа от 1 до 8. Поэтому в квадратных скобках укажем число 1, через две точки, после которого будет следовать число 8. Дальше запишем служебное слово of. После него укажем тип элементов массива. Пока мы не знаем количества яблок в корзинах, но очевидно, что это будут целые неотрицательные числа и мы предположим, что в одной корзине будет находиться не больше 255 яблок. Поэтому в качестве типа элементов массива укажем тип byte.

k: array [1..8] of byte;

Описание массива для хранения количества яблок в корзинах

При описании массивов важно понимать, что они занимают некоторый объём оперативной памяти, который в некоторых случаях может быть достаточно большим. Например, описанный нами массив для хранения количества яблок содержит 8 элементов типа byte. Переменные этого типа занимают объём оперативной памяти равный одному байту. Таким образом, нам нужно указанный объём оперативной памяти умножить на количество элементов массива.

1 байт × 8 элементов = 8 байт

Так мы вычислили, что заданный нами массив занимает 8 байт оперативной памяти. Рассмотрим ещё один массив, который содержит элементы с порядковыми номерами с 77 по 1100, принадлежащие к целочисленному типу integer. Количество элементов массива 1100 – 77 + 1 = 1024. Так наш массив содержит 1024 элемента. Одна переменная типа inetger в среде Pascal ABC занимает 4 байта оперативной памяти.

4 байта × 1024 элемента = 4096 байт = 4 Кб

Умножив этот объём на количество элементов, мы получим что данный массив будет занимать 4096 байт или 4 килобайта оперативной памяти.

Рассмотрим, как же можно обратиться к элементам массива из программы. Для этого указывается имя, или идентификатор массива, после которого, в квадратных скобках, указывается индекс одного из его элементов. Так, для того, чтобы узнать сколько яблок находится в пятой корзине, мы должны обратиться к элементу массива k с индексом 5 – k[5].

Индекс элемента можно указывать не только числом, но и выражением. Например, мы можем обратиться к элементу массива k с номером равным остатку от деления 15 на 4 – k[15 mod 4], или с номером, равным сумме 2 и 5 – k [2+5]. Однако если на одном из этапов результатом выражения станет число, находящееся за пределами диапазона индексов –программа выведет сообщение об ошибке.

В качестве типа индексов элементов массива в среде Pascal ABC могут использоваться любые перечисляемые типы размерностью до 2 байт включительно. Например мы можем задать символьный или логический тип индексов массива. Индексами элементов таких массивов будут соответственно значения символьного или логического типа. Тип элементов массива не ограничен.

Часто при написании программы необходимое количество элементов в массиве неизвестно заранее, так как задаётся пользователем. При этом изменение количества элементов массива в теле программы невозможно. Поэтому при описании количество элементов массива задаётся максимально возможным по условию задачи, а при работе программы используется необходимая часть элементов массива в соответствии с данными, введёнными пользователем.

Рассмотрим, как осуществляется ввод массива в программе. Ввод массива происходит поэлементно, поэтому для перечисления индексов элементов массива удобно использовать цикл. Например, нам необходимо ввести первые n элементов в описанном нами массиве, для хранения количества яблок. В начале происходит считывание n. После этого записывается цикл for i:=1 to n do. В теле цикла нам достаточно написать оператор readln (k [i]). При вводе элементов массива через консоль, значение каждого из них задаётся в новой строке. Важно при этом чтобы значение n не превышало, ограничения типа индексов элементов. В нашем случае оно должно быть не больше 8. Иначе при попытке обратиться к несуществующему элементу массива с индексом 9, программа выведет сообщение об ошибке и прекратит свою работу.

for i:=1 to n do

Цикл ввода элементов массива

Описанный нами цикл для ввода элементов массива уже будет работать, однако если потребуется ввести большое количество значений можно запутаться. Поэтому стоит немного изменить описанный нами цикл. Поместим в логические скобки оператор считывания i-того элемента массива и напишем перед ним оператор write, который будет выводить поясняющее сообщение о том какой элемент массива необходимо ввести.

for i:=1 to n do

Цикл ввода элементов массива с поясняющими сообщениями

Теперь рассмотрим, как организовать вывод массива. Вывод массивов также осуществляется поэлементно. Наиболее часто требуется вывести значения элементов массива в одну строку. Для этого достаточно написать такой же цикл с параметром, как и при вводе, только в нём будет следовать оператор write, выводящий на экран значение элемента массива с индексом i. Но так элементы массива будут выведены в одну строку без разделителей. Поэтому в этот же оператор вывода нужно добавить вывод некоторого разделителя после элемента массива, например, символа пробел.

for i:=1 to n do

Цикл вывода элементов массива

До этого мы рассматривали одномерные массивы. Однако в языке Паскаль можно использовать многомерные массивы. Начнём с двумерных. Наглядно такие массивы можно представить в виде таблицы значений, состоящей из строк и столбцов. Пример такого массива – таблица Пифагора. Двумерные массивы в языке Паскаль трактуются как массивы массивов. Пусть у нас есть 5 полок, на которых располагается по 8 корзин с яблоками. То есть, для описания количества яблок в корзинах нам нужен массив из 5 элементов. Элементами которого будут массивы из 8 элементов типа byte. Опишем такой массив. Назовём его t. После двоеточия будет следовать служебное слово array, после которого в квадратных скобках укажем тип индексов массива – целые числа от 1 до 5, по числу полок. После служебного слова of, укажем тип элементов массива. Это будут массивы, то есть укажем служебное слово array. В квадратных скобках укажем тип индексов 5 массивов, то есть целые числа от 1 до 8. Элементами этих массивов будут числа типа byte.

t: array [1..5] of array [1..8] of byte;

Описание массива массивов

Если двумерный массив описан таким образом, то при обращении к его элементам необходимо в первых квадратных скобках указывать номер массива – целое число от 1 до 5, а во вторых квадратных скобках – номер элемента в этом массиве – число от 1 до 8.

Обращение к элементу описанного массива

Но возможна и более короткая форма описания массива, при этом в квадратных скобках указывается тип индексов первого массива, в нашем случае целые числа в диапазоне от 1 до 5, после него через запятую указывается тип индексов массивов, из которых он состоит, то есть целые числа в промежутке от 1 до 8. После квадратных скобок следует слово of, после него указывается тип элементов из которых состоят внутренние массивы, то есть byte.

t: array [1..5, 1..8] of byte;

Описание двумерного массива

Индекс элемента такого массива будет состоять из двух целых чисел, указанных через запятую. Первое из них будет в диапазоне от 1 до 5, а второе – от 1 до 8. Аналогично можно описывать массивы и с большим числом измерений, например, трёхмерные и четырёхмерные.

Рассмотрим, как организовать ввод двумерных массивов. Как и в случае с одномерными массивами их размерность может быть заранее неизвестна, поэтому сначала организуем ввод двух чисел: n и m. Первое число будет обозначать, корзины на скольких полках нас интересуют, а второе – какое количество корзин на каждой полке нас интересует. После этого опишем цикл с параметром i, изменяющим от 1 до n. Он будет перебирать номера полок, которые нас интересуют. В нём опишем вложенный цикл, с параметром j, изменяющимся от 1 до m. Он будет перебирать номера корзин на полках. Во внутреннем цикле будет оператор readln, считывающий значение элемента t[i, j]. Таким образом пользователь будет вводить количества яблок от первой полки до полки с номером n, от первой корзины до корзины с номером m. Чтобы облегчить ввод элементов массива, также, как и в случае с одномерным массивом поместим оператор ввода в логические скобки и запишем перед ним оператор write, выводящий на кран поясняющее сообщение, о том какой элемент массива необходимо ввести.

for i:=1 to n do

for j:=1 to m do

Цикл ввода элементов двумерного массива

Вывод элементов двумерного массива будет организован также с помощью вложенного цикла, однако вложенный цикл будет находиться в логических скобках и будет содержать оператор вывода элемента массива t[i, j]. После вложенного цикла во внешнем цикле будет следовать оператор writeln без параметров. Таким образом, мы получим построчный вывод элементов двумерного массива. Но так как значения элементов массива могут быть числами различной длины, стоит указать формат их вывода. Например, выделим для вывода каждого числа по 4 знаковых позиции. Тогда при выводе мы получим ровные столбцы из чисел.

for i:=1 to n do

for j:=1 to m do

Цикл вывода элементов двумерного массива

Помимо поэлементных действий над массивами, есть два случая, когда к массивам можно обращаться как к единому целому. Мы можем присвоить элементам одного массива значения элементов другого массива. Также мы можем проверить равенство и неравенство элементов одного массива элементам другого массива. В обоих случаях случаях у массивов должны совпадать типы индексов и типы элементов.

Важно запомнить:

· Массивы – это переменные, которые используются для хранения пронумерованных величин одного типа.

· Порядковый номер элемента массива называется индексом.

· Большинство операций над массивами, в том числе их ввод и вывод производятся поэлементно.

· Над массивами как над единым целым возможны 3 действия: присваивание, а также проверка их равенства и неравенства.

Похожие статьи