Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ekzamenatsionnye_voprosy_po_Informatike2 от шал...doc
Скачиваний:
33
Добавлен:
20.09.2019
Размер:
1.92 Mб
Скачать

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

Операции присвоения в математике не бывает, её смысл в замене значения выражения слева от операции присвоения значением, полученным после вычисления выражения расположенного справа. Естественно выражение в левой части должно состоят из чего-либо, например, из переменной, свойства или элемента массива, что содержит значение и его можно изменять. Только в языках Delphi и PL-SQL операция присвоения записывается как :=, во всех остальных языках как =.

Языки программирования

C++, C#, Java, PHP, Perl, JavaScript, Transact-SQL, Visual FoxPro, Visual Basic, VBScript

Delphi, PL-SQL

Операция присвоения

=

:=

Кроме обычной операции присвоения существует так называемые дополнительные операции присвоения. Это операция является комбинированные, они состоят из двух символов: первый знак одной из бинарных операций (работающих с двумя аргументами),а второй знак это операция присвоения. Суть такой операции присвоения в том что над аргументами слева и справа от такой операции присвоения производится операция производится операция заданная первым символом, а результат записывается в аргумент, заданный слева от операции присвоения. Это проще показать на примере: если х равно 3, то после выражения х*=5,в переменной х будет записано число 15,т.е. значение переменной х будет увеличено на 5 (Другими словами выражение х*=5 аналогично х=х*5). Дополнительные операции присвоения есть в языках произошедших от С (C++, C#, Java, PHP, Perl, JavaScript) и Basic'a. (Visual Basic.Net и VBScript).

Языки программирования

C++, C#, Java, PHP, Perl, JavaScript, Visual Basic, VBScript

???

Доп.операции присвоения

*= ^= /= \= += -= <<= >>= &=

Внимание:

1) В языках производных от С допускается использовать любое количество операций присвоения в одном операторе.(например допустимо х=у+=z=6).

2) Дополнительные операции присвоения появились в Visual Basic.Net, в Visual Basic их ещё не существовало.

3) В Visual FoxPro кроме обычных операций присвоения есть специальная команда вида: STORE значение TO переменная1, переменная2, ... , переменнаяN. Она присваивает значение всем переменным и свойствам классов перечисленных после TO. Например, команда STORE 5 TO x,y,z присвоит число 5 переменным x, y, z

Операции сравнения (Операции отношений)

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

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

Рассмотрим каждый вид операций сравнений:

1)Больше, меньше, не меньше, не больше

2) Равенство, неравенство

3) Эквивалентность, неэквивалентность

4) Больше/ меньше/равно

5) Строковые операции сравнения

6) Специальные операции языка SQL

Рассмотрим каждый вид операций сравнения более подробно:

1) Операции больше, меньше, не меньше (больше или равно), не больше (меньше или равно) аналогичны в любом в любом языке и обозначаются: >,<,>=,<= соответственно (В Transact-Sql есть ещё две операции !< и !> аналогичные >= и <= соответственно).

больше

меньше

не меньше

не больше

Все языки

>

<

>=

<=

2) Есть два вида операций равенства:

Языки

C++, C#, Java, PHP, Perl, JavaScript, Java

Visual Basic, VBScript , Delphi ,Visual FoxPro, Transact-SQL,PL-SQL

Операция

==

=

Пример

12 == 2

5 = 5

Результат

Ложь

Истина

Так же существует два вида операций неравенства (но в некоторых языках присутствует оба вида операций неравенства):

Языки

C++, C#, Java, Perl, JavaScript, Java

Visual Basic, VBScript , Delphi

Visual FoxPro, PHP, Transact-SQL, PL-SQL

Операция

!=

<>

<> или !=

Пример

12 != 2

5 <> 5

“z” <> “a”

“You” != “You”

Результат

Истина

Ложь

Истина

Ложь

Операции равенства и неравенства во всех языках существуют как для простых типов, так и для указателей, если, конечно, указатели в данном языке присутствуют.

З) Операции эквивалентности и неэквивалентности похожи на операции равенства и неравенства соответственно, единственное отличие в том, что эти операции проверяют не только равенство или неравенство аргументов, но и их тип (два аргумента считаются равными при совпадении и значений и типов аргументов). Естественно, эти операции имеют смысл только для тех языков, у которых типы переменных определены динамически, т.е. у которых тип переменной зависит от её значения. Поэтому подобные операции есть только в двух языках в PHP и JavaScript и записываются в данных языках одинаково: = = = (эквивалентность) и != = (неэквивалентность)

Языки программирования

Эквивалентность

Неэквивалентность

PHP и JavaScript

= = =

!= =

4) В языке Perl, кроме обычных операций сравнения существуют уникальная операция сравнения, она называется больше/меньше/равно и обозначается символом <=>, её суть: если левый аргумент меньше правого она возвращает -1, если равен 0, если больше 1.

5) Строковые операции сравнения.

Сравнение двух строк отличается от сравнения других типов данных в том, что не понятно, как сравнить две строки. Например, сравнить два символа несложно, в любом языке берется код каждого символа, и сравниваются их коды (Причем строчный и заглавный символ будут не равны друг другу, например “а” не будет равен “А”).

Сравнить две строки одинаковой не нулевой длины тоже не проблема: сравниваются по очереди сначала первые символы в каждой строке и если они равны, то вторые и т.д. до тех пор, пока не будет отличных символов в сравниваемых строках и больше будет та строка, у который код первого отличающегося символа больше. Строки будут равны, если в них совпадают все символы. Например, строка "hello, world" больше строки "hello, pеаce" потому что символ “w” больше чем “p”. Строки всегда сравниваются с учетом регистра (т.е. заглавная буква не будет равна строчной), чтобы сравнить две строки без учета регистра нужно сначала их привести с помощью специальных функций в один регистр.

Но при разных длинах строк возникает проблема, например будут ли равны строки "hello, world" и "hello”? А строки "hello, world" и “” (пустая строка)? Или строки "hello” и "hello ”?

Во всех языках, кроме Perl используются те же операции сравнения, что и для остальных типов. В Perl используется операции: gt (аналог <),lt (аналог >), cmp (аналог <=>),ne (аналог !=),eg (аналог == в Visual FoxPro),le (== в Visual FoxPro),ge (аналогично le, но у которой левый и правый аргумент поменялись местами).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]