Урок 3. Основы программирования. Основные структуры данных
У каждой хорошей книги и интересного фильма есть точная структура. Она объединяет отдельные составляющие сюжета в одно целое. Это помогает нашему мозгу лучше воспринять и обработать информацию. То же самое происходит и в программировании, только мозг – это компьютер.
Структура данных – это способ объединения однотипных или логически связанных элементов. Отдельно взятая структура, в которую объединены какие-либо данные, даёт возможность эффективно и быстро ими управлять. А для доступа к этим данным нам понадобятся переменные.
Переменная
Представим, что память компьютера состоит из множества ячеек и каждая ячейка, куда мы сохраняем данные, имеет адрес. Этот адрес и фиксирует переменная. Она имеет название (имя переменной) и указывает, что именно хранится в памяти (значение переменной).
При обращении к ней, мы можем считывать и перезаписывать хранимую информацию. Это происходит так:
1. Создаём переменную.
2. Присваиваем ей значение – указываем данные, которые необходимо сохранить в памяти компьютера.
3. Когда нам нужно использовать или указать эти данные, мы пишем не их, а имя переменной, которой они присвоены.
Правила создания имени переменной в JS
— Можно использовать любые буквы и цифры, символ подчеркивания «_».
— Нельзя начинать имя с цифры.
— Нельзя использовать знаки «-», «/», «#», «@».
— Нельзя использовать пробелы и табуляции.
— Заглавная буква имеет значение. Dogs и dogs – это разные переменные.
— Нельзя назвать переменную именем стандартной команды, которая есть в языке программирования. Например, нельзя создавать переменную с именем «typeof» в JS.
Переменные в JavaScript
Для объявления переменных в языке JavaScript используется слово let либо const.
Сonst – константа – используется для объявления переменных с теми значениями, которые должны оставаться неизменными на протяжении всей программы. Например, для объявления математических или физических постоянных. В остальных случаях используется слово let.
Справка! Для переменных предпочтительно применять глагол «объявить», а не «создать».
Объявим переменную с именем name:
let name;
Чтобы добавить значение используется специальный оператор присваивания – знак равенства «=»:
let name = 'Milhouse';
console.log(name);
В консоли увидим результат:
"Milhouse"
Имя name – это адрес ячеек, где хранится значение 'Milhouse'. По имени переменной мы обращаемся к этим данным в разных частях программы. Простая переменная может иметь любой тип данных (число, строка, логическое значение).
Подробнее о типах данных мы рассказывали в Уроке 2.
Пример
Один из примеров использования переменных – это ввод и сохранение информации, которые вы производите каждый день.
Берём стандартную команду prompt() в JavaScript. Она выводит на экран диалоговое окно, в которое просит ввести какую-то информацию и нажать ОК. После ввода строки и нажатия ОК результат присваивается переменной. Если позже к этой переменной обратиться, то её значением будет информация, введённая пользователем.
Например, выполним команду prompt(), попросим пользователя ввести своё имя и сохраним результат в переменную под именем questionName:
let questionName = prompt('Как вас зовут?');
Результат:
Введём имя «Сергей» и нажём ОК. Теперь попросим вывести в консоль значение переменной questionName:
console.log(questionName);
Результат:
"Сергей"
Массив
Массив – это структура данных , которая объединяет несколько логически связанных элементов, а затем позволяет обратиться к любому из них по индексу. В массиве данные хранятся упорядоченно.
Массив удобен, если одновременно необходимо хранить большое количество данных и иметь доступ к каждому элементу.
В массиве могут содержаться как простые, так и структурированные данные – переменные или другие массивы. Бывает и массив, состоящий из массивов. Он называется многомерный.
Справка! В JavaScript в массив разрешено добавлять элементы любого типа данных, так как это язык со слабой и динамической типизацией. Но во многих других языках (например, в С) в массив допускается включать значения только одного типа данных.
Каждому элементу массива присваивается индекс, благодаря которому получится напрямую обратиться к этому элементу.
Надеемся, вы помните из Урока 2, что индекс – это порядковый номер.
Во многих языках программирования, в том числе в JavaScript, элементы массива записываются в квадратных скобках через запятую. В зависимости от этого им присваивается индекс. Отсчёт ведётся с 0: первый элемент массива имеет индекс 0, следующий 1 и т. д.
Число индексов, которое придётся указать для того, чтобы «достать» значение какого-либо элемента, называется размерностью массива.
Пример на JavaScript
1. Создадим массив из двух элементов. Это происходит по аналогии с созданием переменных:
let productMiniList = ['lemonade', 'Cola'];
2. Теперь создадим массив, куда, помимо прочих элементов, включим и уже созданный массив:
let productList = ['apple', 'milk', 'cheese', productMiniList, 'tea'];
3. Чтобы достать apple из массива, необходимо написать имя массива и порядковый индекс нужного элемента в квадратных скобках:
console.log(productList [0]);
4. А чтобы через основной массив достать Cola из первого массива, необходимо после имени по порядку без запятой написать сначала индекс массива в массиве, а затем индекс элемента внутри этого массива:
console.log(productList [3][1]);
Результат:
"apple"
"Cola"
Помимо массива встречаются и другие структуры данных: очереди, стеки, хэши, списки, таблицы и другие. Но на курсе «Основы программирования» мы их не рассматриваем.
Домашнее задание
Придумайте массив, состоящий из двух массивов и двух переменных, и напишите его на языке JavaScript.