Вот решил выложить старую статью по азам программирования в Adobe Flash, то есть введение в ActionScript.
Если поискать в сети – то можно наткнуться на огромное количество аналогичных статей, и я думаю, что данная поведает не намного больше остальных. Но это все лирика…
Значит программирование! Что это есть такое? Это никакое не волшебство и к эльфам отношения не имеет = ).
Программирование – это создание программы путем построения определенных алгоритмов используя понятные для машины команды!
Первой статьей из цикла HelloWorld, будет статья о переменных и простейших операциях для работы с ними.
Переменные.
Первое с чего мы начнем наши азы – это переменные. В программировании мы оперируем определенными данными – цифры, буквы, слова, объекты, итд. Для того чтобы их как-то отличать друг от друга в коде, им дают определенные названия – идентификаторы, простым языком – имена. Но для того чтобы оперировать этими данными, их нужно их где-то хранить. Хранятся наши данные в памяти. Но при этом нужно знать, сколько этой памяти нам потребуется. Для того чтобы упростить жизнь, разработчики языков программирования, придумали типы данных(но о них, немного позже).
На первый взгляд ничего не ясно! Так что объясню по-простому. Мы все учились или же учимся в школе, и все решали на физике или же математике какие-то задачи. При этом нам давались некие условия задачи.
Например: Скорость пешехода, скорость автомобиля, высота падения груза с определенным весом. Мы эти данные записывали в таком виде:
Vпешехода = 10км / час
Vавтомобиля = 60км / час
h = 15м
m = 3кг
Если взглянуть на эти 4 параметра, можно сказать о них такое:
Они имеют имя(идентификатор):Vпишехода, Vавтомобиля, h, m.
Они имеют свой тип: км / час, м, кг.
Они имеют свои значения: 10, 60, 15, 3.
То есть каждый из этих параметров является переменной, и с помощью неких инструментов мы можем ними оперировать!
Подытожим.
Переменная – это ячейка памяти, которая имеет определенный размер, в зависимости от типа данных, и определенное имя, по которому мы можем обратиться к этим данным.
Если говорить о типе, то в примере у нас указан не совсем тип (км / час, м, кг), на самом деле тип переменной это немного другое. Тип переменной говорит нам и самому компьютеру о том, сколько места будет занимать наша переменная в памяти, является ли она числом или же словом. Примерно так. В основном типы переменных делятся на 3 основные группы:
Числовые типы.
Текстовые.
Логический.
Объекты.
Давайте о них по порядку.
Числовые типы.
К числовым, можно отнести следующие типы:
int – целочисленный тип. Полное название Integer. Значения данного типа, могут быть только целые числа. В памяти занимает 32 бита. Диапазон значения от -2147483648 (-2^31) до 2147483647 (2^31-1).
uint – целочисленный тип. Полное название Unsigned Integer. В памяти занимает 32 бита. Даный тип является беззнаковым, т.е. значение не может быть отрицательным. По этому диапазон возможных значений 0 до 4294967295 (2^32-1).
Number – тип с плавающей точкой, т.е дробный тип. Диапазон значений очень велик, хотя я не могу сказать насколько точно, но я думаю что достаточно велик. Значениями такого типа могут быть целые и дробные числа, как положительные, так и отрицательные.
Текстовый тип.
Основным (и практически единственным) текстовым типом данных является тип String (строка). Данный тип представляет собой обычное предложение, символ или отдельное слово. Примером может служить «Hello World !!!». Данный тип не имеет конкретного диапазона значений, так как являет из себя массив (о массивах мы поговорим позже) символов. Каждый символ в данном типе занимает 1 байт. По этому для строки «Hello World !!!», мы можем сказать что она имеет 15 символов (включая пробелы) и занимает в памяти 15 байт.
В текстовых типах, значения указываются в кавычках, которые не являются символами, входящими в само значение (круто завернул). Например, строка “Мама мыла раму”, значением ее будет: Мама мыла раму.
Логический.
Логический тип, является одним из саммых счасто применяемых. В AS3, таким типом есть тип Boolean. Данный тип может принимать только 2 значения, true (истина) и false (ложь).
Объекты.
Само понятие объектов говорит нам, что эти типы относятся к ООП (Объектно-Ориентированному Программированию). Мы рассмотрим их поверхностно, так как я уже рассказывал о них в предыдущей статье. Сами объекты представляют из себя сложный тип данных, описанный определенными «правилами» – классами. Примером объекта может быть тип MovieClip. Метод хранения таких типов в памяти отличается от тех типов, которые представлены выше (ну это в идеале). Если у нас есть переменная Z типа int со значение 28, то это означает, что при обращении к переменной Z мы обращаемся непосредственно к значению. Но если у нас есть переменная типа MovieClip, то при обращении к такой переменной мы будем иметь дело не со значение а с ссылкой на созданный в памяти объект. Такие переменные, в фундаментальных языках называют – ссылочными или же указателями.
Вот примерно и все по типам данных. Теперь же давайте разберемся: «зачем нам это было нужно?». Я кстати забыл сказать, что для людей использующих ActionScript 1.0/2.0 эти данные могут быть бесполезными, так как в отличии от ActionScript 3.0, там типизация переменных не обязательна. Но в ActionScript 3.0 такой шары (и проклятия) нет. Так что можно легко ответить на поставленный выше вопрос – нам это нужно для того что бы научится создавать свои переменные!
Процесс создания переменных в программировании называется – «объявлением переменной». Для того что бы объявит переменную нужно использовать слово var (Variable – переменная), далее указать ее идентификатор – имя, поставить двоеточие «:» и указать тип данной переменной. Вот в принципе и все. Так же можно переменную сразу же и инициализировать, то есть присвоить ей значение.
Пример:
var A: int; // Объявление переменной А имеющей тип int var B: uint = 47; // Объявление переменной B имеющей тип uint, и присвоение ей значения 47.
Вот в принципе и все что касается объявления переменных.
Так же хотелось сказать следующее, представленное выше описание типов переменных, относится ко всем фундаментальным языкам программирования, и может отличаться только синтаксисом.
Теперь давайте поговорим о простейших действиях, которые мы можем использовать для работы с переменными. Для начала хочу вас разочаровать! На самом деле, все компьютеры в мире, какими бы сильными и мощными они не были, умею выполнять только 5 операций. Это: суммировать, вычитать, умножать, делить и сравнивать. Вот такая вот печальная реальность =). По этому, давайте рассмотрим эти операции.
Но перед этим давайте вспомним об инициализации. Инициализация или же присвоение – это процесс указания переменной ее значения. Для этого используется символ «=». То есть для того что бы указать нашей переменной ее значение нам нужно поставить = и написать само значение. Пример, используем те переменные, которые мы создали выше:
A = -154;
B = 14;
Я думаю здесь все понятно, поэтому двигаемся дальше. Рассмотрим простейшие арифметические операции. В реальном мире мы привыкли для вычисления простейших арифметических действий использовать такую конструкцию как А + В = С. В программирование для этих целей используется такая же самая конструкция, только наоборот. Сначала мы указываем переменную, которая будет принимать результат, ставим знак присвоения (равно), и пишем само действие.
Пример:
var a:int = 5; var b: int = 8; var c: int; c = a + b; trace(c); //результат 13
Таким образом, мы получаем сумму двух переменных, которая помещается в третью. Все остальные арифметические операции выполняются таким же образом. Но при этом например, у нас есть две переменные типа uint, значение одной равно 5 а второй 12, и если мы от первой отымем вторую то получим -7, по этому тип переменной, которая должна получать результат данной операции не может быть без знаковым, то есть uint, так как это приведет в ошибке и вы можете просто напросто получить несуразице (в данном случае ответ будет 4294967289, так как мы вышли за предел диапазона типа данных).
Так же могут возникнуть проблемы и с операцией деления, так как результатом деления двух целых чисел может быть дробное число. Но в случае деления ошибка не возникнет, так как срабатывает процесс приведения типов данных. То есть, как это понимать: при делении в случае, когда целому типу будет присваиваться дробное значение, в переменную попадет только целая часть, а дробная часть будет отброшена. Для наглядности приведу пример по первому и по второму случаю.
// первый случай var a: uint = 5; var b: uint = 8; var c: uint; c = a - b; trace(c); // на экране будет выведено значение 4294967293 // второй случай var d:int = 20; var e:int = 14; var f:int; f = d/e; trace(f); // на экране будет выведено значение 1, хотя истинным значением является 1.4285714285714286
Вот так вот. Так что во второй случай можно назвать операцией – деление нацело.
Так же существует операция, которая показывает остаток от деления «%». Пример использования данной операции:
var a:int = 15; var b:int = 6; var c:int; c = a%b; trace(c); // результат 3
Так же в решении математических задач можно использовать и обычные числа, не помещая их значения в переменные:
var a:int = 15; var b:int = 6; var c:int; с = 2+14; а = 12 – b; b = a+c+12-(a+4);
Вот примерно и все что можно сказать об основных арифметических операциях.
Кстати я забыл сказать одну вещь, в коде не может быть объявлено две или более переменных с одним именем.
Еще, хотелось попросить при создании переменных, додерживаться определенных правил подбора имен, это облегчит работу в дальнейшем и является правилом хорошего тона в программировании. Одним их таких стандартов, есть договорённость RDSN сообщества. Оно гласит следующее, все имена переменных должны передавать как можно больше информации о данной переменной. Имя переменной должно начинаться с маленькой буквы и не содержать никаких вспомогательных символов. Если имя переменной состоит из нескольких слов, то для их разделения использовать большие буквы.
Пример:
var count:int =5; var maxValue:Number = 4.7; var userFirstName: String =”Pupkin”;
Для логического типа, существует своя операция. Называется она инвертирование и обозначается значком "!". Т.е. что такое инвертирование, это процесс, который меняет значение переменной на противоположное. Например ложь на правде и наоборот. Пример:
var switcher:Boolean = true; var isEnd:Boolean = !switcher; // isEnd получит значение false;
Вот и все что можно сказать о переменных. Я думаю, что здесь все легко и ясно. В дальнейшем, я постараюсь поведать вам о простейших функциях обработки данных, таких как условия и циклы, также мы рассмотрим массивы и методы работы с ними.

Комментариев нет:
Отправить комментарий