Статья
Версия для печати
Обсудить на форуме
Урок 2. (Все еще общий)



Предыдущий урок ---- Cледующий урок VB ---- Cледующий урок C/C++


Спецификаторы и идентификаторы. Операции, операнды и операторы.


Всем уже известно из чего состоит программа- из программного кода. Код состоит из строк. Строки- из слов и/или отдельных знаков (символов). Все слова несут определенную смысловую нагрузку. Они могут обозначать действие, область памяти компьютера, особенности других слов ( вернее того, что под этими другими словами подразумевается). Часто при описании кода можно встретить такие слова: идентификаторы, спецификаторы, служебные слова, ключевые слова. В отношении того, что это такое переводная литература расходится и дает иногда чуть ли не противоположные определения. На данный момент не будем разбираться только с идентификаторами, а про остальное запомним, что это слова, зарезервинованные языком для определенных действий или настроек. То есть, это слова самого языка, вы их не придумываете сами, вы их только используете по назначению. Авторы большинства книг по программированию сходятся на том, что определяют идентификатор как последовательность символов (то есть, слово, но не обязательно имеющее смысл), которая может содержать буквы, цифры, символы подчеркивания (_), которая не начинается с цифры. Смысл идентификатора в том, что это имя для созданных вами переменных, функций, классов и т.п. (если есть в этом списке непонятные термины, потерпите, мы их разберем дальше). Идентификатор вы его придумываете, даете его самостоятельно. Идентификатор он потому, что он должен однозначно идентифицировать (определять уникальность) предмета, которому вы даете имя. (Правда некоторые авторы книг трактуют этот термин шире) Чтобы у вас не было проблем, вы должны знать правила по которым можно давать такие имена. Эти правила мы рассмотрим позже, когда будем говорить об именах переменных.


Операции, операнды и операторы.

Итак, программа- это последовательность команд (операций). Что делают эти команды? Ошибка считать, что операции- это понятие, присущее только программированию. Операции постоянно происходят вокруг нас и с нами. Весь наш день наполнен самыми разнообразными операциями. Сейчас мы это рассмотрим подробнее и на примерах. Допустим, у нас есть предмет, или число, или строка, или живое существо, или абстрактное понятие. Это может быть абсолютно что угодно. Назовем это для краткости объектом, пока не вдаваясь в подробности того, что такое объект в программировании. Нам сейчас нужно как-то назвать то, с чем мы будем работать. Итак, мы имеем объект (автомобиль, кастрюля, сосед, строка текста, буква, число, облако и т.д.)

Операция это действие, которое производится над одним или несколькими объектами, после чего они изменяются или возникает новый объект. Итак: операция, это когда с объектом что-то делают. Примеры операций:
  • вымыть тарелку
  • переложить книги со стола в портфель
  • 1+3-2

Сам объект, над которым производится операция называется операнд.

Кроме операндов в операцию входит определение того, что надо сделать инструкция по проведению операции. Эта инструкция называется оператор. Он может быть одним символом, группой символов, группой слов. Вы можете встретить в литературе, что операторы также называют инструкциями или предложениями (по сути, такое разнообразие терминов является следствием переводов и пристрастий переводчиков). Сейчас разберем те примеры, которые приведены выше.

Вымыть тарелку. Это операция. Здесь операнд только один  тарелка. А оператор вымыть. (Инструкция показывает что мы должны сделать с операндом: мы должны его вымыть, следовательно вымыть  это оператор) Переложить книги со стола в портфель. Какие предметы участвуют в операции и меняют свой статус в процессе ее исполнения? Книги перекладываются в другое место. Стол был с лежащими на нем книгами, в результате выполнения операции он остается без книг. Портфель также меняет свои параметры: он был без книг, после операции будет с книгами. Значит, т.к. все эти предметы участвуют в операции и изменяют некоторые свои признаки, все они являются операндами: над ними производится операция. Итак, операнды- книги, стол, портфель. Какова инструкция? Что надо сделать с операндами? Переложить. Это оператор. 1+3-2. Эта операция состоит из двух последовательных операций. 1+3  это первая операция. Числа 1 и 3 это операнды, т.к. операция производится над ними и в результате операции возникает новое число. Хорошо известный знак + является оператором: он несет в себе инструкцию о том, что мы должны сделать с операндами- сложить. Вторая операция: здесь операндами являются результат первой операции и число 2. А оператором знак -.

Что еще нужно знать об операциях?
Существует некоторая классификация операций.

Типы операций:
  • то, что мы разобрали выше можно назвать прямой операцией. Но этот термин имеет смысл только в том случае, если вы сравниваете эту операцию с обратной.
  • обратная операция, которая выполняет ранее выполненную операцию в обратном порядке, когда результатом является то состояние и количество объектов, которые были исходными для предыдущей операции.
     Пример: прямая операция 10+10=20; обратная операция 20-10=10. Или прямая операция закрыть дверь, обратная открыть.
  • необратимая операция, к которой нельзя подобрать обратную. Например: разбить вазу.


Виды операторов

Операторы тоже можно объединить на группы по сходности действия
  • арифметические операторы. Например: +,/,* и т.д. Выполняют математические действия.
  • операторы сравнения: <, >, =(в С это ==:двойное равно), >= (больше или равно), <=(меньше или равно), != (не равно- в VB этого оператора нет). Выполняют сравнение операнда слева от оператора и справа от оператора.
  • логические операторы: И (and), ИЛИ (or), НЕ (not). Выполняют логические выражения. Как это делается мы разберем позже.
  • оператор присваивания: =. Обратите внимание! Если вы вспомните школьный курс математики и переменные, то там, если вы встречали выражение х=4, это значило, что х сравнивается с 4. В математике = означает, что значение слева от = такое же, как и справа от него. То есть в математике = действует как оператор сравнения! В программировании есть оператор сравнения (как мы уже сказали == в С и такое же  обычное = в VB), а есть оператор присваивания, у которого качественно иное действие. Значение переменной слева от = может не равняться значению операнда справа от него. Этот оператор значит, что переменной ПРИСВАИВАЕТСЯ значение операнда, который стоит справа от =. Какое бы значение не было у переменной, после выполнения операции присваивания ее значение становится равным значению правого операнда.

Примеры:
а=10  так мы присвоили переменной а значение 10, теперь, если мы напишем
с=9 ,то значение переменной с будет равно 9, а
х=а*10    будет равно 100.
Если теперь написать   а=2, то значение переменной а меняется на 2, хотя значения переменных с и х НЕ МЕНЯЮТСЯ! Потому что они уже были выполнены до того, как мы присвоили переменной а новое значение. Мы выполняем эти операции по очереди сверху вниз. После операции
   а=2
мы не можем в данном случае опять вернуться вверх и выполнить операцию
   х=а*9.


Операции и операторы

(домашняя работа к уроку 7)

1. Даны примеры операций. Их нужно проанализировать и записать в таблицу, в колонки соответствующие им переменные и знаки присутствующие в данной операции. Для операций 1 и 2 виды операторов не писать

ОперацииОперандыОператорыВиды операторов
1. Помыть пол тряпкой
2. Выбросить бутылку в мусорный ящик
3. 1*50
4. x+y-200
5. х=50 (не сравнение)
6. x<25

2.   Дана операция. Определить обратима она или нет и найти обратную ей, если она обратима.
  • завязать бант
       
    • выкинуть бант
    • выстирать бант
    • развязать бант
  • разрубить бревно на дрова
       
    • сложить дрова в сарай
    • сжечь дрова в печи
    • кинуть дрова в кучу
    • связать дрова веревкой
3. Найти операции, обратные данной
  • 2*4
       
    • отнять от результата 4
    • отнять от результата 2
    • разделить результат на 4
    • разделить результат на 2
    • выучить таблицу умножения
  • раскрасить картинку
       
    • зарисовать все черной краской
    • зарисовать все белой краской
    • протереть дырку резинкой
    • опустить картинку в хлорку
  • заменить в слове машина букву ш на букву л
       
    • заменить в слове малина букву л на букву ш
    • заменить слово малина на слово машина
    • заменить русский алфавит на английский
    • перестать разговаривать
4. Лена налила в кастрюлю воду, положила соль, крупу и поставила на огонь. Каков результат этой операции?

5. Какое значение будет у переменной х после выполнения следующих операций:
  •    
    • х=15+а
    • а=10-5
    • х= -а
  •    
    • х= 100
    • а=х
    • с=а/100+200
    • х=а
    • х=с
  •    
    • а=0
    • х= -а
    • х= а+1
    • х= а+1
  •    
    • а=12/4
    • х=2*а
    • а=0
    • х=х+а
Высчитать х и уметь объяснить почему вы получили такой результат.

Дополнительно
6. Задать с помощью оператора присваивания следующие действия:

а) переменной а присвоить значение, равное полусумме значений переменных х и у
б) удвоить значение переменной а
в) значение переменной х увеличить на 0,1
г) изменить знак значения переменной а

7. Пусть значения переменных  х и у равны 0,3 и 0,2. Какие значения будут иметь эти переменные после выполнения операторов присваивания:
  •    
    • х= х+2*у
    • у= у/2
  •    
    • у= -у
    • х= х+у
    • у= у+1
  •    
    • х=1
  •    
    • у=х+у
х=?
у=?

8. Даны две последовательности операторов, которые отличаются только порядком следования операторов.
  •    
    • х=х+у
    • у=2*у
  •    
    • у=2*у
    • х=х+у
Верно ли, что для любых начальных значений х и у выполнение этих последовательностей операторов приводит к одинаковому изменению значений переменных х и у?
Версия для печати
Обсудить на форуме