Программирование - это долгий, творческий процесс. Достаточно тяжело научиться чему-либо в этой области, если у вас нет никаких способностей к пониманию принципов, по которым должны выстраиваться программы и приложения. Сегодня мы с вами поговорим про массив, элементы массива и простейшие операции с ними.
Определение
Перед работой с данным элементом среды программирования нам необходимо понять, с чем же мы имеем дело. Преподаватели в университетах могут твердить вам заумные определения и требовать от вас зубрить их, но это неважно, для настоящего программиста важно понимать саму суть, а не уметь объяснить её другим. Что же такое массив? Элементы массива все вместе и составляют данный объект. Другими словами, это набор, таблица, строка различных значений. Все вместе они составляют нумерованный список элементов. Выглядит массив так:
- M(i), где М - это сам массив, его название. i - это номер элемента массива. Вместе эти два числа можно прочитать как i-й элемент массива М.
В различных языках программирования этим значениям могут присваиваться разные типы. Например, в Паскале нумерация может происходить исключительно цифрами и переменная i может быть только типа integer. В PHP всё обстоит по-другому. Там i - это ключ, по которому в массиве можно отыскать элемент, и не важно, если ключом окажется целое слово - array ("bar"). При этом сами элементы массива могут быть абсолютно любого типа.
Циклы
Данное понятие пригодится нам при рассмотрении некоторых операций с массивами. Циклы - это условные выражения, позволяющие повторять одну и ту же операцию снова и снова до тех пор, пока не будет выполнено условие повторения. Можно выделить два типа циклов.
- "Пока не". В данном случае тело цикла будет повторяться, пока не наступит окончательное условие. То есть сначала изменится счетчик, затем пройдут вычисления, и только потом цикл завершит работу.
- "Пока". С этим вариантом немного по-другому. Сначала проверяется условие выполнения, затем выполняется программа цикла, и только потом меняется счетчик.
В принципе, оба варианта равносильны, в нашем случае не важно, какой из них использовать, но каждому будет удобен свой метод.
Сложение
В некоторых случаях программисту необходимо узнать, какова сумма элементов массива. Под этим заданием подразумевается, что нам необходимо сложить все элементы массива. С этим нам помогут циклы. В данном примере мы не будем зацикливаться на конкретном языке программирования и просто построчно опишем, что в какой строке должно содержаться.
- Объявляем переменные. Нам потребуется объявить массив "М", счетчик номера элемента массива "i", переменную, обозначающую количество элементов массива "к", а также переменную "R", которая выведет нам результат операции.
- Вводим количество элементов массива "к" любым способом.
- Ввод элементов массива. Вы можете организовать его через ряд диалоговых окон с пользователем либо просто присвоить значения каждому по отдельности.
- Присваиваем i=1, R=0.
- Теперь самое сложное. Нам необходимо организовать цикл. Для этого сначала надо выбрать его тип. Ниже приведем пример цикла по подсчету элементов. Для примера мы использовали язык программирования - Pascal.
repeat
R=R+M[i];
i=i+1;
until i>k
Что мы видим? Сначала открывается цикл командой "repeat". После этого к предыдущему значению переменной, означающей сумму всех элементов массива, мы добавляем очередной элемент массива. Увеличиваем счетчик (номер массива). Далее командой "until" мы проверяем, вышел ли счетчик цикла за пределы массива. Ведь если у нас всего 5 элементов (к=5), то прибавлять М[6] нет смысла, оно будет пустым.
Условие
Перед тем как переходить к следующей задачке с массивами, давайте вспомним про условные операторы. В большинстве языков программирования его синтаксис выглядит так:
if (условие) then (ряд команд) else (команды, если условие неверно);
Общее описание может звучать так: "Если условие верно, то сделать первый блок команд, иначе сделать второй блок". Условные операторы полезны при сравнивании различных значений и определении дальнейшей их "судьбы". В совокупности с циклами они превращаются в мощный инструмент анализа массива данных.
Сравнение
Что еще позволяет нам делать массив? Элементы массива можно отсортировать, проверить, подходят ли они определённым условиям, и сравнить между друг другом. Еще один из любимых примеров университетских преподавателей - найти максимальный элемент массива. Для примера используем язык С++.
- Не вдаваясь в подробности, надо объявить те же переменные, что и в предыдущем примере, за небольшим исключением. С другим типом цикла придется немного схитрить. В новом случае "i=0". Зачем это нужно, разъясним чуть ниже.
while (i<=k)
{
i=i+1; //либо можно заменить на i +=1;
if (R <= M[i])
{
R=M[i]
}
}
Как видим, данный тип цикла сначала проверяет условие, а только затем запускает подсчет суммы. Что именно происходит? Сначала проверяется верность неравенства i<=к, если это так, мы переходим к первому элементу массива М[1] и сравниваем его с нашей проверяющей переменной "R". Если "R" меньше, чем элемент массива, то ей присвоится значение этого элемента. Таким образом, к моменту когда мы пройдем весь массив, там будет содержаться самое большое число.
PHP
На данный момент это один из наиболее востребованных языков программирования. Странно, что в большинстве даже самых именитых университетов учат не ему, а самым банальным основам, освоить которые в состоянии и пятиклассник. Чем же он так отличается от других, рассмотренных нами языков?
РНР позволяет программисту составить самый разносторонний массив. Элементы массива в нем могут быть абсолютно любого типа. Если в том же Паскале нам нужно указать единственный тип (например, числовой), то мы уже никак не запишем туда строчку с текстом, без смены типа массива... Но если сменить тип, то и числовые данные в нем станут просто текстом, а значит мы не сможем выполнять с ними никакие математические операции без дополнительного кода и головной боли.
В PHP элемент массива - это самостоятельная единица. Массив используется исключительно для удобства хранения информации и обращения к ней. А главное, что для тех, кто привык к работе с массивами по другим ЯП, вы можете организовать точно такие же счетчики элементов. Обращение к элементам массива в РНР немного сложнее, чем в других языках, но это того стоит.
Итог
Что можно сказать в заключение? Массивы - это многомерные хранилища данных, позволяющие оперировать во время работы с ними большими объёмами информации. В данной статье не были рассмотрены многомерные массивы, поскольку эта тема для отдельного разговора. Напоследок небольшой совет. Для того чтобы проще понимать тему массивов, представьте перед собой ряд чисел - вот первое, вот второе и так далее. Это и есть массив. Если вам нужно обратиться к одному из них, просто укажите программе его номер. Такое восприятие намного упростит вам жизнь в учебе. Запомните, что не всегда стоит слушать заумные речи преподавателей, лучше найдите свой путь к пониманию темы.