Сердце любого алгоритма – это предпринимаемые действия. Эти действия определяются операторами. Операторы бывают простые и сложные (или структурные).
Пока мы с вами в основном пользовались только простыми операторами, и давайте в этом уроке рассмотрим их подробней.
Сами простые операторы делятся на: оператор присваивания, оператор процедуры, оператор безусловного перехода (GOTO) и пустой оператор.
Оператор присваивания задает значение переменной и имеет вид:
Имя переменной := выражение;
Двоеточие и равно (“:=”) читается как присвоить значение, и оно же является этим самым оператором присвоения.
С именем переменной мы уже знакомы и думаю подробно о нем говорить нет смысла. А что с выражениями? Выражение – это конструкция, возвращающая значение некоторого типа. Выражение может быть арифметическим (т.е. переменной присваивается число), логическим (о нем мы поговорим позже) и символьным (переменной присваивается буква или строка).
Также выражения могут быть простыми и сложными. Простые выражения – это когда мы присваиваем переменной просто значение или другую переменную, типа a:=5; или a:=b. А сложные выражения – это когда мы используем уже с операндами знаки операции или(и) обращаемся к функциям.
В классическом Pascal оператор присваивания только один, который мы с вами выше рассмотрели, но в PascalABC.Net есть еще 4 оператора присваивания, и так как они есть и в других языках программирования, давайте их изучим.
А для этого давайте создадим программу assignmentOperators (т.е. операторы присваивания), создадим переменную и присвоим ей значение.
Первый из 4 новый операторов мы рассмотрим “+=”. Данный оператор просто прибавляет к значению переменной выражение, а не заменяет, как это было с оператором “:=”.
Т.е. по сути запись i+=5; эквивалентно i:=i+5;.
Думаю, теперь остальные 3 оператора нам изучить вообще не составляет никакого труда: это “-=” (т.е. отнимает от значения), “*=” (умножает значение переменной на выражение), “/=” (делит значение переменной на выражение).
Вот и все с операторами присваивания. Идем дальше.
Следующим оператором у нас идет оператор вызова процедуры. Данным оператором мы уже пользовались – с помощью него мы можем вызвать процедуру или функцию. Сперва мы пишем имя процедуры, затем скобки (если у этой процедуры или функции есть параметры) и точку с запятой. Здесь все просто. Переходим к следующему оператору.
Оператор безусловного перехода Goto переносит выполнение программы к оператору, помеченному меткой. Имеет следующий вид:
goto метка;
Чтобы пометить оператор меткой, необходимо перед оператором указать метку с последующим двоеточием. Сейчас будет понятней. Создадим программу goto и также сразу в ней создадим переменную.
Теперь во втором разделе познакомимся с разделом описания меток, так как для оператора goto мы должны создать метку. Там все просто, сперва пишите ключевое слова label, а затем через пробел ее название. Название метки практически идентично названием переменной, только вы можете пользоваться также только цифрами, т.е. вы можете назвать метку просто 1 или 845.
Создадим метку с именем over_here (т.е. “сюда”). Здесь я решил для разделения слов воспользоваться нижним подчеркиванием.
Далее в третьем разделе присваиваем значение переменной.
Далее пишем оператор goto и название метки.
Теперь присвоим переменной другое значение.
И отметим меткой оператор Write().
Когда мы запустим программу и она дойдет до оператора goto, то компилятор сразу же перескочит на выполнение оператора помеченного меткой over_here, и пропустит код до той метки. Т.е. в выводе у нас будет число 5.
Это, конечно не самый лучший вариант для использование goto, который я написал, но главное вы поняли как он работает. А сейчас вообще не рекомендуют пользоваться этим оператором, так как есть более лучшие структурные операторы, которые мы ского изучим.
И последний простой оператор – это пустой оператор. Пустой оператор не включает никаких символов, не выполняет никаких действий и используется в двух случаях:
- Как вы знаете, знак “;” в разделе операторов разделяет эти операторы друг от друга, но после последнего оператора и словом end на самом деле не должно быть точки с запятой.
И если вы поставите двоеточие и точку после Write(), то говорят, что после оператора Write() идет пустой оператор, а затем уже слово end. - Если вы просто хотите пропустить несколько операторов с помощью оператора goto.
Как видите, в этом примере метка a указывает на пустой оператор.
На этом с простыми операторами все, а на следующем уроке мы уже рассмотрим структурные операторы и структурный стиль программирования.