Becomes/ru: what changed
Revision 1 to 2. Removed lines have a minus sign; added lines have a plus sign.
| Old | New | Line | |
|---|---|---|---|
| 1 | - | ||
| 1 | + | := | |
| 2 | 2 | ||
| 3 | 3 | ||
| 4 | - | ||
| 5 | 4 | ||
| 6 | - | ||
| 5 | + | ||
| 6 | + | Символ _** := **_ (состоит из символа [[Colon/ru|двоеточия]] и следующего за ним символа [[Equal/ru|равно]] без пробела или другого символа) читается как _**присвоить**_ и используется в [[Pascal]] для обозначения _присваивания значения_ : | |
| 7 | 7 | ||
| 8 | - | ||
| 8 | + | ||
| 9 | 9 | ||
| 10 | - | ||
| 11 | - | ||
| 12 | - | ||
| 13 | - | ||
| 14 | - | ||
| 15 | 10 | ``` | |
| 16 | - | ||
| 17 | - | ||
| 18 | - | ||
| 19 | - | ||
| 20 | - | ||
| 21 | - | ||
| 22 | - | ||
| 11 | + | A := 4 ; | |
| 12 | + | Circle_Area := Pi * Diameter ; | |
| 13 | + | Name := 'Smith' ; | |
| 14 | + | C := 1000 - C div 2 ; | |
| 15 | + | ``` | |
| 23 | 16 | ||
| 24 | - | ||
| 17 | + | Причина использования двух символов для присваивания (вместо одного, скажем, знака **=**) состоит в том, чтобы отличать присваивание значения от проверки на равенство. | |
| 25 | 18 | ||
| 26 | - | ||
| 19 | + | Например, в языках программирования, кроме Pascal, можно написать так | |
| 27 | 20 | ||
| 28 | - | ||
| 21 | + | A = B = D ; | |
| 22 | + | или так | |
| 23 | + | A = B = D | |
| 29 | 24 | ||
| 30 | - | ||
| 25 | + | в зависимости от того, требуется ли указывать точку с запятой. | |
| 31 | 26 | ||
| 32 | - | ||
| 27 | + | В зависимости от языка программирования смысл этого выражения будет различным. Например, в языках Fortran и Basic данная инструкция будет означать "присвоить переменной A значение ответа на вопрос _равно ли B значению D?_ ". В языке программирования C это выражение будет означать "присвоить переменным A и B значение переменной D". Инструкция такого типа является достаточно распространенной ошибкой в языке программирования C; компилятор часто выдает предупреждение, если вы не сообщите ему, что намеренно сделали это (множественное присваивание) с помощью заключения выражения в круглые скобки. (Правильным способом получить значение результата проверки на равенство в языке C является выражение _**A = B == D;**_ ). | |
| 33 | 28 | ||
| 34 | - | ||
| 29 | + | В языке Pascal такая путаница не происходит, потому что данное выражение синтаксически некорректно. Можно было бы написать выражение | |
| 30 | + | ``` | |
| 35 | 31 | A := B = D; | |
| 36 | 32 | ``` | |
| 37 | 33 | ||
| 38 | - | ||
| 39 | - | ||
| 40 | - | ||
| 41 | - | ||
| 42 | - | ||
| 43 | - | ||
| 34 | + | которое будет означать то же самое, что в языках Fortran или Basic, т.е. присвоить переменной A значение ответа на вопрос "_равны ли переменные B и D?_ " | |
| 44 | 35 | ||
| 45 | - | ||
| 36 | + | Для присваивания переменным A, B и D одинакового значения требуется явное разделение выражений следующим образом | |
| 46 | 37 | ||
| 47 | - | ||
| 38 | + | A := D ; B := D ; | |
| 39 | + | или | |
| 40 | + | B := D ; A := B ; | |
| 41 | + | или | |
| 42 | + | A := D ; B := A ; | |
| 48 | 43 | ||
| 49 | - | ||
| 44 | + | в зависимости от того, есть ли разница в выполнении или побочные эффекты (D может быть динамической переменной, такой как системный [порт](</index.php?title=Port/ru&action=edit&redlink=1> "Port/ru \(page does not exist\)"), [[Function/ru|функцией]] или [свойством](</index.php?title=Property/ru&action=edit&redlink=1> "Property/ru \(page does not exist\)") [объекта](</index.php?title=Object/ru&action=edit&redlink=1> "Object/ru \(page does not exist\)"), таким образом, значение [[Identifier/ru|идентификатора]] D может отличаться между первым и вторым использованием.) | |
| 50 | 45 | ||
| 51 | - | ||
| 46 | + | ||
| 47 | + | **Символы:** [[*/ru|* (звездочка)]] — := (присвоить) — [[Colon/ru|: (двоеточие)]] — [[Equal/ru|= (равно)]]; — [[Greater than/ru|> (больше чем)]] — [[Less than/ru|< (меньше чем)]] — [[Minus/ru|\- (минус)]] — [[Not equal/ru|<> (не равно)]] — [. (точка)](</index.php?title=period/ru&action=edit&redlink=1> "period/ru \(page does not exist\)") — [[Plus/ru|\+ (плюс)]] — [; (точка с запятой)](</index.php?title=;/ru&action=edit&redlink=1> ";/ru \(page does not exist\)") — [[Slash/ru|/ (слеш)]] | |
| 52 | 48 | ||
| 53 | - | ||
| 49 | + | ||
| 50 | + | **** | |
| 54 | 51 | ||
| 55 | 52 | --- | |
| 56 | - | ||
| 53 | + | *From the Free Pascal wiki, page "Becomes/ru", as the Internet Archive kept it on 2023-04-06. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).* |
