Sign in Join
Wiki copytemporary

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

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

Title: Basic Pascal Tutorial/Chapter 1/Assignment and Operations/ru

OldNewLine
1+<font size="5">Присвоение и операции</font>
2+
3+1E - Assignment and Operations (author: Tao Yue, state: unchanged)
4+
5+После того, как вы объявили переменную, вы можете хранить в ней значения. Это называется присвоением.
6+
7+Для присвоения значения переменной используйте следующий синтаксис:
8+
9+``` pascal
10+имя_переменной := выражение;
11+```
12+
13+Обратите внимание, что в отличие от других языков, в которых операция присвоения обозначается просто знаком равенства, Pascal использует двоеточие со знаком равенства, как это делается в большинстве систем компьютерной алгебры.
14+
15+Выражение может быть либо единственным значением:
16+
17+``` pascal
18+some_real := 385.385837;
19+```
20+
21+либо арифметической последовательностью:
22+
23+``` pascal
24+some_real := 37573.5 * 37593 + 385.8 / 367.1;
25+```
26+
27+**Арифметические операции в Pascal:**
28+
29+| Операция | Действие | Операнды | Результат |
30+|----|----|----|----|
31+| \+ | Сложение или унарный плюс | real или integer | real или integer |
32+| \- | Вычитание или унарный минус | real или integer | real или integer |
33+| * | Умножение | real или integer | real или integer |
34+| / | Вещественное деление | real или integer | real |
35+| div | Целочисленное деление | integer | integer |
36+| mod | Деление по модулю (остаток от деления) | integer | integer |
37+
38+**`div`** и **`mod`** работают только с *integer*.\
39+Вещественное деление **`/`** работает как с *real*, так и с *integer*, но результат всегда будет *real*.\
40+Другие операции работают и с *real*, и с *integer*. Когда смешиваются *integer* и *real*, результат всегда будет *real*, поскольку в противном случае будет потеря данных. Именно поэтому Pascal использует две разные операции для деления и целочисленного деления. `7 / 2 = 3.5` (real), но `7 div 2 = 3` (и `7 mod 2 = 1`, поскольку это остаток).
41+
42+Каждой переменной может быть присвоено значение только такого-же типа. Таким образом, вы не можете присвоить вещественное значение целочисленной переменной. Однако, некоторые типы данных могут преобразовываться к более высокому типу. Чаще всего это делается, когда присваивается целое значение вещественной переменной. Допустим, вы имеете такую секцию объявлений:
43+
44+``` pascal
45+var
46+ some_int : integer;
47+ some_real : real;
48+```
49+
50+Тогда после выполнения следующего блока операторов:
51+
52+``` pascal
53+some_int := 375;
54+some_real := some_int;
55+```
56+
57+`some_real` будет иметь значение `375.0`.
58+
59+Изменение одного типа данных на другой называется приведением типа. Современные компиляторы Pascal поддерживают явное приведение типа в стиле языка C, с несколько отличающимся синтаксисом. Однако, приведение типов обычно используется в низкоуровневых ситуациях или в связи с объектно-ориентированным программированием, и студенту-новичку в программировании, нет небходимости его использовать. Здесь вы сможете найти [информацию о приведении типов в GNU Pascal manual](http://www.gnu-pascal.de/gpc-es/Type-Casts.html).
60+
61+В Pascal знак минуса может быть использован, чтобы сделать значение отрицательным. Знак плюса также может быть использован, чтобы сделать значение положительным, но обычно он опускается, поскольку значения по умолчанию положительны.
62+
63+Не пытайтесь использовать две операции одну за другой, как в следующем примере:
64+
65+``` pascal
66+some_real := 37.5 * -2;
67+```
68+
69+Это может иметь правильный смысл для вас, поскольку вы пытаетесь выполнить умножение на отрицательное число -2. Однако, Pascal будет путаться — он не будет знать, что делать: умножать или вычитать. Вы можете избежать этого, используя для проясненя ситуации скобки:
70+
71+``` pascal
72+some_real := 37.5 * (-2);
73+```
74+
75+Компьютер соблюдает тот-же порядок операций, который соблюдаете вы, выполняя арифметические операции. Умножение и деление (`* / div mod`) идут до сложения и вычитания (`+ -`), а скобки всегда имеют приоритет. Таким образом, например, значение выражения `3.5*(2+3)` будет `17.5.`
76+
77+Pascal не может выполнять стандартные арифметические операции с типом Boolean. Есть специальный набор логических операций. Вы также не должны применять арифметические операции к символам.
78+
79+---
80+*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