Sign in Join
Wiki copytemporary

Basic Pascal Tutorial/Chapter 1/Assignment and Operations/ru: what changed

Revision 1 to 2. Removed lines have a minus sign; added lines have a plus sign.

OldNewLine
1-<font size="5">Присвоение и операции</font>
1+Присвоение и операции
22
331E - Assignment and Operations (author: Tao Yue, state: unchanged)
44
55После того, как вы объявили переменную, вы можете хранить в ней значения. Это называется присвоением.
66
77Для присвоения значения переменной используйте следующий синтаксис:
88
99``` pascal
1010имя_переменной := выражение;
1111```
1212
1313Обратите внимание, что в отличие от других языков, в которых операция присвоения обозначается просто знаком равенства, Pascal использует двоеточие со знаком равенства, как это делается в большинстве систем компьютерной алгебры.
1414
1515Выражение может быть либо единственным значением:
1616
1717``` pascal
1818some_real := 385.385837;
1919```
2020
2121либо арифметической последовательностью:
2222
2323``` pascal
2424some_real := 37573.5 * 37593 + 385.8 / 367.1;
2525```
2626
2727**Арифметические операции в Pascal:**
2828
2929| Операция | Действие | Операнды | Результат |
3030|----|----|----|----|
3131| \+ | Сложение или унарный плюс | real или integer | real или integer |
3232| \- | Вычитание или унарный минус | real или integer | real или integer |
3333| * | Умножение | real или integer | real или integer |
3434| / | Вещественное деление | real или integer | real |
3535| div | Целочисленное деление | integer | integer |
3636| mod | Деление по модулю (остаток от деления) | integer | integer |
3737
3838**`div`** и **`mod`** работают только с *integer*.\
3939Вещественное деление **`/`** работает как с *real*, так и с *integer*, но результат всегда будет *real*.\
4040Другие операции работают и с *real*, и с *integer*. Когда смешиваются *integer* и *real*, результат всегда будет *real*, поскольку в противном случае будет потеря данных. Именно поэтому Pascal использует две разные операции для деления и целочисленного деления. `7 / 2 = 3.5` (real), но `7 div 2 = 3` (и `7 mod 2 = 1`, поскольку это остаток).
4141
4242Каждой переменной может быть присвоено значение только такого-же типа. Таким образом, вы не можете присвоить вещественное значение целочисленной переменной. Однако, некоторые типы данных могут преобразовываться к более высокому типу. Чаще всего это делается, когда присваивается целое значение вещественной переменной. Допустим, вы имеете такую секцию объявлений:
4343
4444``` pascal
4545var
4646 some_int : integer;
4747 some_real : real;
4848```
4949
5050Тогда после выполнения следующего блока операторов:
5151
5252``` pascal
5353some_int := 375;
5454some_real := some_int;
5555```
5656
5757`some_real` будет иметь значение `375.0`.
5858
5959Изменение одного типа данных на другой называется приведением типа. Современные компиляторы Pascal поддерживают явное приведение типа в стиле языка C, с несколько отличающимся синтаксисом. Однако, приведение типов обычно используется в низкоуровневых ситуациях или в связи с объектно-ориентированным программированием, и студенту-новичку в программировании, нет небходимости его использовать. Здесь вы сможете найти [информацию о приведении типов в GNU Pascal manual](http://www.gnu-pascal.de/gpc-es/Type-Casts.html).
6060
6161В Pascal знак минуса может быть использован, чтобы сделать значение отрицательным. Знак плюса также может быть использован, чтобы сделать значение положительным, но обычно он опускается, поскольку значения по умолчанию положительны.
6262
6363Не пытайтесь использовать две операции одну за другой, как в следующем примере:
6464
6565``` pascal
6666some_real := 37.5 * -2;
6767```
6868
6969Это может иметь правильный смысл для вас, поскольку вы пытаетесь выполнить умножение на отрицательное число -2. Однако, Pascal будет путаться — он не будет знать, что делать: умножать или вычитать. Вы можете избежать этого, используя для проясненя ситуации скобки:
7070
7171``` pascal
7272some_real := 37.5 * (-2);
7373```
7474
7575Компьютер соблюдает тот-же порядок операций, который соблюдаете вы, выполняя арифметические операции. Умножение и деление (`* / div mod`) идут до сложения и вычитания (`+ -`), а скобки всегда имеют приоритет. Таким образом, например, значение выражения `3.5*(2+3)` будет `17.5.`
7676
7777Pascal не может выполнять стандартные арифметические операции с типом Boolean. Есть специальный набор логических операций. Вы также не должны применять арифметические операции к символам.
7878
7979---
8080*From the Free Pascal wiki, page "Basic Pascal Tutorial/Chapter 1/Assignment and Operations/ru", as it stood on 2022-08-20 after a change by Kai Burghardt, out of the wiki's dump of 2024-05-26. 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).*

Back to history