3.5. Операции, операторы и выражения

Содержание

3.5.1. Оператор присваивания

3.5.2. Арифметические операции и выражения

3.5.3. Операции сравнения

3.5.4. Логические операции и выражения

3.5.5. Операции над строками

3.5.6. Упражнения

3.5.7. Контрольные вопросы

3.5.8. Источники

3.5.1. Оператор присваивания.

Вы научились пользоваться переменными (обычными и массивами) для сохранения их в памяти.

Сохранение в памяти осуществляется с помощью оператора присваивания, который конструируется с помощью операции присваивания (=).  В левой части от операции присваивания должна находиться переменная, а в правой — то, что присваивается (запоминается). В правой части может находиться константа или переменная, которой уже что-то присвоено, а также выражение. Выражения будут рассматриваться далее в этом подразделе.

Что такое операторы?  По своему смыслу оператор подобен завершенному предложению в английском языке (и других языках тоже). Вы их уже вовсю используете. Все программы на языке JavaScript, независимо от их размеров и сложности, представляют собой последовательность операторов. Например, когда вы вызываете в сценарии метод alert(x) для вывода на экран значения переменной x то это – оператор. Пример другого оператора - строка x=x+10, в которой значение x увеличивается на 10 с помощью выражения в правой части и это значение с помощью операции присваивания помещается в переменную x, в которой до этого хранилось предыдущее значение. Как уже упоминалось, в конце каждого оператора необходимо ставить точку с запятой (;), разделяющую операторы. Если оператор размещается в отдельной строке, то разделитель можно опустить.

Итак, ещё раз о переменных, константах и операторе присваивания.

Переменная – это имя, присваиваемое группе ячеек памяти компьютера, в которой могут содержаться данные во время исполнения программы. Имена переменных не могут начинаться с цифры, содержать пробелы, точки, слэджи и ещё некоторые символы. В данном пособии мы будем использовать лишь латиницу и символ подчёркивания.

Чтобы создать переменную в языке JavaScript используется оператор var, вслед за которым указывается имя, которое вы хотите присвоить переменной, например:
var a1, a_1, b;. В этом примере созданы три переменные без присвоения значений.

Переменной при создании можно присвоить начальное значение:
var а1=314, a_1=3.14, b='Crimea'. В этом примере созданы три переменные и им присвоены значения: первым двум переменным — числа, переменной b — строка.

Знак «=» называется операцией присваивания. С помощью операции присваивания создаются операторы присваивания: в левой части — переменная, в правой — то, что заносится в эту переменную.

Переменную можно образовать и без ключевого слова var,  простым присваиванием:  а1=314;.

На этом этапе вам следует знать о переменных также следующее:

Константы определяются при помощи ключевого слова const, например:
const  pi=3.141592653589, e=2.718281828459045;

Отличие константы от переменной состоит в том, что переменной можно присваивать данные много раз и каждый раз прежнее значение в переменной будет заменяться новым, а значение константы изменить невозможно.

3.5.2. Арифметические операции и выражения.

Арифметические операции – это элементарные математические действия: сложение (+), вычитание (-), деление (/), умножение (*), остаток от деления (%).  

Арифметические выражения строятся с использованием арифметических операций, переменных, констант и математических функций.

Выше перечисленные операции служат для построения выражений с двумя с двумя операндами. Операции с двумя операндами называют бинарными операциями. Есть ещё арифметические операции с одним операндом — унарные. С унарными операциями вы сможете разобраться самостоятельно по справочнику, например этому - http://javascript.ru/manual .

Все арифметические операции известны вам из арифметики и алгебры. Единственная операция, нуждающаяся в пояснении, - остаток от деления нацело. Например, 9 делится на 5 с остатком 4. Иногда эту операцию также называют взятием по модулю. При использовании в качестве операндов целых чисел – результат также будет представлять целое число. Но если операндами будут не целые, а вещественные числа (с плавающей точкой), в результате также получится вещественное число, например: 5.5 % 2.2 = 1.1.

Выше упоминались математические функции, которые можно использовать в арифметических выражениях. Далее  мы научимся самостоятельно создавать необходимые  функции.  Однако в языке Javascript имеются наиболее употребимые математические функции, принадлежащие объекту Math. Функции, встроенные в объект, называются методами. Обращение к методам любого объекта осуществляется с использованием следующего синтаксиса:

имя_объекта.имя_метода(параметры)

Обращение к методам объекта Math выполняется, соответственно, так:

Math.имя_метода(параметры)

Например, a1=Math.sqrt(2) приведёт к вычислению корня квадратного из двух. Если параметров несколько, то они разделяются запятой, например, выполнение оператора  a1=Math.pow(a1,5), приведёт к возведению в пятую степень, числа, находящегося до этого в переменной a1.

Свойства объекта Math — это константы, в которых хранятся наиболее употребимые математические постоянные, например, в Math.PI хранится число π, а свойство Math.EXP — это число e (неперово число или основание натурального логарифма).

Принципы использования объектов и свойств объекта Math очень просты. Обо всех объектах и методах этого объекта, предусмотренных в языке Javascript, можно узнать в справочниках, например в этом - http://javascript.ru/manual.

Чтобы убедиться в том, что вы владеете арифметическими операциями и умеете строить арифметические выражения, повторите следующий пример:

Листинг 3.5.1

<html><head>

<title>Пример 3.5.1.</title>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

</head>

<body>

<h2>Пример 3.5.1. Арифметические операции и выражения</h2>

<h3>Вычисление значений синусоиды на интервале от 0 до 90 градусов с шагом 45 градусов)</h3>

<script type="text/javascript">

h_grad=45.0; // шаг в градусах

h_rad=h_grad*Math.PI/180.0; // шаг в радианах

//

//вычисляем первое значение аргумента и функции

//

i=0;

x_grad=0.0+i*h_grad;;

x_rad=x_grad*Math.PI/180.0;;

y=Math.sin(x_rad);

document.write("<p>угол в градусах = "+x_grad+"; угол в радианах = "+x_rad+"; sin("+x_grad+") = "+y+"</p>")

//

//вычисляем второе значение аргумента и функции

//

i=1;

x_grad=0.0+i*h_grad;;

x_rad=x_grad*Math.PI/180.0;;

y=Math.sin(x_rad);

document.write("<p>угол в градусах = "+x_grad+"; угол в радианах = "+x_rad+"; sin("+x_grad+") = "+y+"</p>")

//

//вычисляем третье значение аргумента и функции

//

i=2;

x_grad=0.0+i*h_grad;;

x_rad=x_grad*Math.PI/180.0;;

y=Math.sin(x_rad);

document.write("<p>угол в градусах = "+x_grad+"; угол в радианах = "+x_rad+"; sin("+x_grad+") = "+y+"</p>")

</script>

</body></html>

3.5.3. Операции сравнения

Операции сравнения используются для построения логических выражений. В Javascript предусмотрены следующие операции сравнения: меньше (<), меньше или равно (<=), больше (>), больше или равно (>=), равно (==), не равно (!=). Это – операции с двумя операндами.

Сравниваться могут как числовые данные, так и строки. Единственное условие состоит в том, что нужно сопоставлять значения, относящиеся к одному и тому же типу. В противном случае JavaScript попытается перевести данные из одного типа в другой, что не всегда удается. Чтобы избежать ошибок сравнивайте данные только одного типа.

Результатом выполнения выражения с использованием операции сравнения является данное логического типа. Например, после выполнения оператора  а = 2<3 в переменную а будет занесено значение, равное true, а при выполнении оператора b = 2>3 в переменную b занесётся false.

3.5.4. Логические операции и выражения.

В Javascript предусмотрены три логические операции: логическое И (&&), логическое ИЛИ (||), логическое НЕ (!). Первые две - операции  с двумя операндами, а логическое НЕ – операция с одним операндом.  

Логическое И означает, что обе части выражения должны быть истинны.

Логическое ИЛИ означает, что, по крайней мере, одна часть выражения должна быть истинной.  

Логическое НЕ изменяет значение истина/ложь на обратное.

Логические операции позволяют свести воедино результаты сравнений нескольких переменных.  Например, после выполнения оператора a = (2<3)&&(3<5) в переменную а будет занесено true, а после выполнения a = (2<3)&&(3>5)false.

Чтобы убедиться в том, что вы владеете построением логических выражений с помощью операций сравнения и логических операций, повторите следующий пример:

Листинг 3.5.2.

<html><head>

<title>Пример 3.5.2.</title>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

</head>

<body>

<h2>Пример 3.5.2. Логические операции и выражения</h2>

<h3>Вычисление значений функции y=(x>=0)&&(x%2==0)<br>

    для значений аргумента x на интервале от -2 до +2<br>

    с шагом h = 1</h3>

<script type="text/javascript">

var x = new Array(); y = new Array()

x_0=-2;

h=1;

//

//вычисляем первое значение аргумента и функции

//

i=0;

x[i]=x_0+i*h;

y[i]=(x[i]>=0)&&(x[i]%2.0==0)

document.write("<p>x = "+x[i]+"; y = "+y[i]+"</p>")

//

//вычисляем второе значение аргумента и функции

//

i=1;

x[i]=x_0+i*h;

y[i]=(x[i]>=0)&&(x[i]%2.0==0)

document.write("<p>x = "+x[i]+"; y = "+y[i]+"</p>")

//

//вычисляем третье значение аргумента и функции

//

i=2;

x[i]=x_0+i*h;

y[i]=(x[i]>=0)&&(x[i]%2.0==0)

document.write("<p>x = "+x[i]+"; y = "+y[i]+"</p>")

//

//вычисляем четвёртое значение аргумента и функции

//

i=3;

x[i]=x_0+i*h;

y[i]=(x[i]>=0)&&(x[i]%2.0==0)

document.write("<p>x = "+x[i]+"; y = "+y[i]+"</p>")

//

//вычисляем пятое значение аргумента и функции

//

i=4;

x[i]=x_0+i*h;

y[i]=(x[i]>=0)&&(x[i]%2.0==0)

document.write("<p>x = "+x[i]+"; y = "+y[i]+"</p>")

</script>

</body></html>

3.5.5. Операции над строками

В приведённых выше примерах использовался метод write() объекта document для вывода на экран результатов, получаемых в программе. В качестве входных данных метода (в круглых скобках) формировались строки из переменных и строковых констант (то, что в кавычках). Для формирования нужного текста использовалась операция конкатенации, которая выглядит также, как и арифметическая операция суммирования - «+».

В Javascript предусмотрено много средств для работы со строками. Под строками понимаются строковые переменные и константы. Набор методов и свойств для работы со строками хранится в объекте String. Так, для определения длины строки (количества символов, составляющих строку) можно использовать свойство length. Например,   в результате срабатывания операторов: str="АР Крым"; document.write(str.length) на   экран  будет выведено число 7 (учитывая, что пробел также является символом).

Описания и примеры использования всех методов объекта String вы можете взять в справочниках, например в этом - http://javascript.ru/manual.  

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

 Листинг 3.5.3.

<html><head>

<title>Пример 3.5.3.</title>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

</head>

<body>

<h2>Пример 3.5.3. Операции со строками: операция конкатенации</h2>

<script type="text/javascript">

stroka_1="студент";

stroka_2=prompt("Введите имя","Иван");

stroka_3=prompt("Введите фамилию","Петров");

stroka_1=stroka_1+" "+stroka_2+"_"+stroka_3;

document.write("<h2>"+stroka_1+"</h2>");

</script>

</body></html>

При запуске в браузере скрипт из листинга 3.5.3 сначала занесёт в переменную stroka_1 текст  студент. Затем  в переменную stroka_2 пользователю необходимо ввести имя, иначе будет введено имя по умолчанию (Иван). Тем же способом вводится фамилия. С помощью оператора конкатенации формируется строка и присваивается переменной stroka_1. Для того, чтобы слова не сливались, при формировании строки в качестве разделителей вставлены пробелы. Далее сформированная строка выводится на экран с помощью метода write().  Входной параметр метода сформирован также с помощью оператора конкатенации — слева и справа от переменной, содержащей сформированную строку, добавлены html-тэги заголовка.

Необходимо учесть, что при использовании операции конкатенации происходит автоматическое изменение типа переменной. Например, оператор  x=2+"3" приведёт к тому, что переменной x будет присвоено строковое значение «23», так как если один из операндов является строкой, даже если эта строка содержит цифры, то второй операнд автоматически преобразуется в строку и выполняется конкатенация строк. Все остальные арифметические операции  (-, *, /, %), наоборот: пытаются преобразовать строку в число.

Для закрепления материала настоящего подраздела вам необходимо перейти к пункту   3.5.6  и выполнить два упражнения (упражнение 3.5.1 и 3.5.2).

3.5.6. Упражнения

Упражнение 3.5.1. Повторите пример из листинга 3.5.1, изменив его таким образом, чтобы  рассчитывались значения тангенса для значений угла от 0 до 90 градусов с шагом 30 градусов.

В этом же html-документе поместите ответы на первые пять контрольных вопроса (с 1-го по 5-й).

Упражнение необходимо сохранить в файле exercise_3_5_1.html и оформить его отображение на своём сайте так, как это вы делали с предыдущими упражнениями.

Упражнение 3.5.2. Повторите пример из листинга 3.5.2, изменив его таким образом, чтобы рассчитывались значения функции  для аргумента на интервале от -3 до +3, причём значения функции были бы истинными лишь для положительных  и нечётных значений аргумента.

В этом же html-документе поместите ответы на последние пять контрольных вопроса (с 6-го по 10-й).

Упражнение необходимо сохранить в файле exercise_3_5_2.html и оформить его отображение на своём сайте так, как это вы делали с предыдущими упражнениями.

3.5.7. Контрольные вопросы

      1. 1.Оператор для вычисления котангенса? 

      2. 2.Значение последнего тангенса в упражнении 3.5.1? 

      3. 3.Значение тангенса для угла 45 градусов в упражнении 3.5.1? 

      4. 4.Значение котангенса для угла 90 градусов? 

      5. 5.Значение тангенса для угла в 135 градусов? 

      6. 6.Число истинных значений, полученных при выполнении упражнения 3.5.2? 

      7. 7.Число ложных значений, полученных при выполнении упражнения 3.5.2? 

      8. 8.Число истинных значений, которое могло бы быть получено при замене логического И  на логическое ИЛИ в упражнении 3.5.2? 

      9. 9.Число ложных значений, которое могло бы быть получено при замене логического ИЛИ на логическое И в упражнении 3.5.2? 

      10. 10.Число истинных значений, которое могло бы получиться при выполнении упражнения 3.5.2, в котором для получения значения функции использовался бы оператор
        y[i]=!((x[i]>=0)||(x[i]%2.0==0))? 

3.5.8. Источники