Файл: Технологии программирования. Операции, производимые с данными.pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 25.04.2023

Просмотров: 327

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

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

Операции присвоения в математике не бывает, её смысл в замене значения выражения слева от операции присвоения значением, полученным после вычисления выражения расположенного справа. Естественно выражение в левой части должно состоят из чего-либо, например, из переменной, свойства или элемента массива, что содержит значение и его можно изменять. Только в языках 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, но у которой левый и правый аргумент поменялись местами).

Логические операции

Когда необходимо объединить несколько операций сравнения в одном выражение используются логические операции, это необходимо так как операции сравнения сравнивают только два аргумента, а обычно условие бывает намного сложнее.

Например, чтобы записать условие приема на работу: возраст до 45 лет и опыт работы от 3 лет нужно использовать оператор И(And): (x<=45) And (y>=3), где х- возраст, y-опыт.

Существует четыре вида логических операций:


1) Логическое ИЛИ (OR). Возвращает ложь, только в том случае, если оба аргумента ложны.

2) Логическое И (AND). Возвращает истина, только в том случае, если оба аргумента истина.

3) Логическое НЕТ (Not). Возвращает истину, если аргумент ложный и ложь, если аргумент истинный.

4) Исключающие И(Xor).Возвращает истину, если оба аргумента или вместе истины, или вместе ложны.

Сначала рассмотрим символы каждой из операций:

Языки

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

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

Delphi

Visual FoxPro

Perl, PHP

ИЛИ (OR)

||

Or

|| или Or

И (AND)

&&

And

&& или And

НЕТ (NOT)

!

Not

Not или !

!

Искл.ИЛИ (XOR)

Нет!

Xor

Нет!

Можно заметить из таблицы, что бывает два вида логических операций:

а) С++ подобные это ||,&&,!

б) SQL подобные, это символы And, Or, Not.

Единственное отличие действий логических операций в разных языках заключается в том выполняется ли расчет второго условия в операции ИЛИ (OR) и И (AND), если первое условие окажется истинным (в операции OR) или ложным (в операции AND),так результат будет уже известным (например, если возраст претендента из примера 1 оказался больше 45 лет, то опыт проверять нет необходимости, так как и так понятно, что претендент не подходит).

Как правило, во всех языках, проверяется только первое условие, исключение составляет Visual Basic.Net и VBScript, если в них используется операции Or и And, то проверяются оба условия, если OrElse и AndElse, то в подобных случаях проверяется только первое условие.

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

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

y x

Ложь

Истина

Ложь

Ложь

Истина

Истина

Истина

Истина


x OR y (ИЛИ)

y x

Ложь

Истина

Ложь

Ложь

Ложь

Истина

Ложь

Истина

x AND y (ИЛИ)

y x

Ложь

Истина

Ложь

Истина

Ложь

Истина

Ложь

Истина

x XOR y (Исключающее ИЛИ)

x

Ложь

Истина

NOT x

Истина

Ложь

NOT x (НЕ)

Побитовые операции

Побитовые операции выполняют действия над каждым битом в числе. Бит минимальная единица представления информации компьютере, он может хранить только два значения 0 или 1.

Вся информация в компьютере представляется в двоичном виде, то есть в виде последовательностей бит, но бит слишком маленькая величина, поэтому минимальная единица, которую компьютеры могут хранить и с которой они могут работать это байт(впрочем, обычно компьютеры работают с 32 или 64 битами).В одном байте 8 бит.

Все числа в компьютере составлены из бит, например числа 131 это следующая последовательность бит 10000011. К сожалению, более подробные объяснения в книгу не поместятся.

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

Рассмотрим виды побитовых операций:

1) Аналог логических операций: Or, And, Not, Xor.

2) Сдвиг влево и вправо (безнаковый сдвиг влево, знаковый сдвиг влево)

3) Циклические сдвиги.

Рассмотрим их более подробно:

1)Аналог логических операций (работают точно так же как логичные, если истину заменить на 1,ложь на 0

y x

0

1

0

0

1

1

1

1

x OR y (ИЛИ)

y x

0

1

0

0

0

1

0

1

x AND y (И)

y x

0

1

0

1

0

1

0

1

x XOR y (Исключающее ИЛИ)

x

0

1

NOT x

1

0

NOT x (НЕ)

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