Sign in Join
Wiki copytemporary

Basic Pascal Tutorial/Chapter 2/Input/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
332A - Input (author: Tao Yue, state: unchanged)
44
55Ввод - это то, что поступает в программу. Ввод может осуществляться с помощью клавиатуры, мыши, файла на диске, сканера, джойстика и т.д.
66
77Мы не будем рассматривать ввод с помощью мыши, поскольку его синтаксис отличается от машины к машине. Кроме того, сегодняшние событийно-ориентированные, использующие окна операционные системы обычно обрабатывают ввод мышью для вас.
88
99Основной формат для считывания данных:
1010
1111``` pascal
1212read (Variable_List);
1313```
1414
1515`Variable_List` - последовательность идентификаторов переменных, разделяемых запятыми.
1616
1717`read` интерпретирует ввод как поток символов, строки которых разделены специальным символом конца строки. С другой стороны, `readln` будет перескакивать на следующую строку после чтения значения, автоматически перемещаясь за символ конца строки.
1818
1919``` pascal
2020readln (Variable_List);
2121```
2222
2323Предположим, вы имеете следующий ввод от пользователя, а переменные `a, b, c, d` - целые.
2424
2525`45 97 3`\
2626`1 2 3`
2727
2828Ниже приведено несколько примеров `read` и `readln` вместе со значениями, считанными в соответствующие переменные.
2929
30-<table>
3130<thead>
32-<tr>
33-<th>Statement(s)</th>
34-<th>a</th>
35-<th>b</th>
36-<th>c</th>
37-<th>d</th>
38-</tr>
31+
3932</thead>
4033<tbody>
41-<tr>
42-<td>read (a);</td>
43-<td rowspan="2">45</td>
44-<td rowspan="2">97</td>
45-<td rowspan="2"></td>
46-<td rowspan="2"></td>
47-</tr>
48-<tr>
49-<td>read (b);</td>
50-</tr>
51-<tr>
52-<td>readln (a);</td>
53-<td rowspan="2">45</td>
54-<td rowspan="2" style="text-align: right;">1</td>
55-<td rowspan="2"></td>
56-<td rowspan="2"></td>
57-</tr>
58-<tr>
59-<td>read (b);</td>
60-</tr>
61-<tr>
62-<td>read (a, b, c, d);</td>
63-<td>45</td>
64-<td>97</td>
65-<td>3</td>
66-<td>1</td>
67-</tr>
68-<tr>
69-<td>readln (a, b);</td>
70-<td rowspan="2">45</td>
71-<td rowspan="2">97</td>
72-<td rowspan="2">1</td>
73-<td rowspan="2">2</td>
74-</tr>
75-<tr>
76-<td>readln (c, d);</td>
77-</tr>
34+
7835</tbody>
79-</table>
8036
8137Когда читаются целые, все пробелы пропускаются до тех пор, пока не будет найдена цифра. Тогда считываются все последующие цифры, пока не будет встречен нецифровой символ (включая пробел, но не ограничиваясь им).
8238
8339`8352.38`
8440
8541Когда целое читается из указанного выше ввода, его значение становится `8352`. Если сразу после этого вы читаете символ, значение будет '`.`', поскольку читающая головка остановилась на первом алфавитно-цифровом символе.
8642
8743Предположим, вы пытались прочитать два целых. Это не будет работать, поскольку, когда компьютер ищет данные для заполнения второй переменной, он видит '`.`' и останавливается, т.к. не может найти какие-либо данные для чтения.
8844
8945С вещественными значениями, компьютер также пропускает пробелы, а потом считывает столько, сколько может быть считано. Однако, многие компиляторы Pascal накладывают одно дополнительное ограничение: вещественное, которое не имеет целой части, должно начинаться с `0.` Таким образом, `.678` является недопустимым и компьютер не может прочитать это в вещественное, но `0.678` - нормально.
9046
9147Убедитесь, что все идентификаторы в списке аргументов ссылаются на переменные! Ни константам, ни литералам значения присвоены быть не могут.
9248
9349---
9450*From the Free Pascal wiki, page "Basic Pascal Tutorial/Chapter 2/Input/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