Sign in Join
Wiki copytemporary

Basic Pascal Tutorial/Chapter 2/Input/ru: what changed

Revision 4 to 5. Removed lines have a minus sign; added lines have a plus sign.

OldNewLine
11Ввод
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```text
262645 97 3
27271 2 3
2828```
2929
3030Ниже приведено несколько примеров `read` и `readln` вместе со значениями, считанными в соответствующие переменные.
3131
32-<thead>
33-
34-</thead>
35-<tbody>
36-
37-</tbody>
32+| Statement(s) | a | b | c | d |
33+|---|---|---|---|---|
34+| read (a); | 45 | 97 | | |
35+| read (b); | | | | |
36+| readln (a); | 45 | 1 | | |
37+| read (b); | | | | |
38+| read (a, b, c, d); | 45 | 97 | 3 | 1 |
39+| readln (a, b); | 45 | 97 | 1 | 2 |
40+| readln (c, d); | | | | |
3841
3942Когда читаются целые, все пробелы пропускаются до тех пор, пока не будет найдена цифра. Тогда считываются все последующие цифры, пока не будет встречен нецифровой символ (включая пробел, но не ограничиваясь им).
4043
4144```text
42458352.38
4346```
4447
4548Когда целое читается из указанного выше ввода, его значение становится `8352`. Если сразу после этого вы читаете символ, значение будет '`.`', поскольку читающая головка остановилась на первом алфавитно-цифровом символе.
4649
4750Предположим, вы пытались прочитать два целых. Это не будет работать, поскольку, когда компьютер ищет данные для заполнения второй переменной, он видит '`.`' и останавливается, т.к. не может найти какие-либо данные для чтения.
4851
4952С вещественными значениями, компьютер также пропускает пробелы, а потом считывает столько, сколько может быть считано. Однако, многие компиляторы Pascal накладывают одно дополнительное ограничение: вещественное, которое не имеет целой части, должно начинаться с `0.` Таким образом, `.678` является недопустимым и компьютер не может прочитать это в вещественное, но `0.678` - нормально.
5053
5154Убедитесь, что все идентификаторы в списке аргументов ссылаются на переменные! Ни константам, ни литералам значения присвоены быть не могут.
5255
5356---
5457*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