Программирование для начинающих. Видео-курс.

April 28th, 2015 No Comments »

Вышел видео-курс «Программирование для начинающих». В нём вы сможете написать вашу первую программу на примере игры «Камень-ножницы-бумага».

камень-ножницы-бумага

Объяснение идёт последовательно и спокойно:

Вы открыли консоль языка программирования. Этот язык программирования называется JavaScript.
Всё в порядке, не переживайте, мы не сломали интернет.
Эта консоль ещё называется командная строка — тут вы можете писать команды на языке JavaScript, а браузер будет их исполнять.

Вот забавный трейлер к этому курсу.

Записывайтесь и учитесь программировать — это первый шаг к новой карьере.

Что такое стек и где он применяется

October 14th, 2013 No Comments »

Давайте обсудим, что такое стек, а также где он применяется.

Что такое стек

Когда я начинал знакомиться с информатикой, компьютера у меня не было, и я читал книжки. Так и наткнулся на это новое для меня слово. В книжке говорилось, что английское слово “stack” означает стопку — как правило, стопку тарелок. Поскольку это слово я прочитал, а не услышал, то было трудно понять, как именно его произносить — “стэк”, “стек” или вообще “стёк” (с тарелок же стекала вода при сушке). Логично. Только годы спустя оказалось, что правильно говорить — “стэк”.

Стек — это структура данных, то есть, принцип, по которому однородные элементы данных хранятся и обрабатываются. Понимание структуры данных позволяет представлять себе в голове то, как эти данные перемещаются и изменяются.

Непонятно, что такое однородные элементы и структура данных? Посмотрите на рисунок.

Стопка тарелок

Здесь однороднные элементы — это, конечно, тарелки. Запихнув их в такой деревянный стек, мы можем рассматривать всю кучу тарелок как единый предмет, как единую структуру данных. Так о ней проще говорить и думать (“принеси стек, пожалуйста“), так её проще обрабатывать.

Обратите внимание, что в это специальное тарелочное устройство можно положить и вынуть тарелку только сверху. Если в стопке 4 тарелки, и вы поместили сверху пятую, то вынуть можно сначала только её. Это и есть принцип работы стека.

Очевидно, что у стека есть всего три операции: добавить тарелку (так называемая операция “push“), вытащить (“pop“) и прочитать значение верхнего элемента (посмотреть, остались тарелки или уже пусто).

Где применяется стек

Магазин с обоймой патронов — самый настоящий стек.
Магазин патронов

Когда врач на приёме говорит вам “Подождите пока что за дверью“, вы выходите, но не становитесь в в конец очереди пациентов, а становитесь как бы самым первым (“сказали подождать!“) — отодвигая назад, в толпу того, кто был уже вот-вот у заветной двери, омрачая его счастье. Поздравляю: теперь вы — вершина стека.

Вы применяете стек, когда начинаете бросать одни дела ради более срочных — “потом доделаю!”. Из-за того, что на хранение элементов стека расходуется память, вы устаёте сильно быстрее, чем если бы заканчивали каждую задачу до того, как хвататься за следующую.

Лоток принтера с бумагой, игра “Ханойские башни” — простые примеры стека.

Ханойские башни

Более изощрённые примеры применения стека — любая рекурсивная задача (“так, старую итерацию пока отложу в стопку, а сейчас надо обрабатывать новую итерацию!“), например, перебор маршрутов исследовательского робота в пещере неизвестной конфигурации.

Самые первые калькуляторы были напрямую сделаны как стеки. Вместо “2+2” нужно было ввводить “2 2 +”. Первые два элемента (“операнды”) клались в стек, пока не будет введён плюс (“оператор”).
Калькулятор

Удачи, и следите, чтобы ваш стек не переполнялся!

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