![]() |
|
сделать стартовой | добавить в избранное |
![]() |
Компьютеры, Программирование
Программное обеспечение
Операторы ввода-вывода |
С.А. Григорьев Простейший оператор ввода в Паскале - оператор READ, он записывается в виде: READ(имя,имя,.); где имя - имена переменных или типизированных констант. Вводимые значения задаются в виде допустимых в Паскале констант и разделяются любым количеством пробелов. Для окончания ввода следует нажать клавишу E er. Оператор ввода можно записать и как READL , при вводе числовых переменных они эквивалентны. Кроме того, оператор READL без списка в скобках можно использовать для организации задержки в работе программы - он будет ожидать нажатия клавиши E er. Простейший оператор вывода записывается в виде: WRI E(выражение,выражение,.); или WRI EL (выражение,выражение,.); Вывести можно любое выражение, если необходимо вывести текст, он заключается в апострофы. Оператор WRI EL отличается от оператора WRI E тем, что после вывода происходит переход на новую строку. Можно использовать оператор WRI EL без списка вывода для пропуска строки. Запишем пример программы, осуществляющей ввод и вывод : VAR i : I eger; w : Word; r : Real; BEGI WRI EL ; {------------- ввод -------------} WRI E('Введите целое число '); READ(i); WRI EL ; WRI E('Введите натуральное число '); READ(w); WRI EL ; WRI E('Введите вещественное число '); READ(r); WRI EL ; {------------- вывод -------------} WRI EL ('Вы ввели : ',i,' ',w,' ',r,' их сумма=',i w r); WRI EL ('Нажмите E er для выхода'); READL ; E D. Впервые записав осмысленную программу, остановимся и обсудим ее внешний вид. Даже на таком тривиальном примере мы можем понять некоторые основные правила оформления программы. 1. Организация диалога с пользователем. Прежде чем записать оператор READ, вы обязаны записать хотя бы один WRI E, который выведет на экран приглашение "Введите .", причем из этого приглашения пользователь должен понять, какие именно данные ему следует ввести. Так, в нашем примере операторы WRI E('Введите i '); READ(i); были бы неуместны, так как пользователю неизвестно, что такое i, и он мог бы ввести, например, вещественное число, что привело бы к аварийному завершению программы. 2. Оформление текста программы. Хорошо оформленная программа легко читается и быстрее отлаживается, следует стремиться к "прозрачности" текста, но не к некоторой, вполне субъективной, "красоте". Так, скажем, операторы, выполняющиеся последовательно, следует и записывать строго друг под другом, но не "елочкой" или какой-либо другой фигурой. Средства, используемые для оформления текста, крайне просты и доступны всякому - это пробелы, пустые строки и комментарии. При выводе чисел можно их форматировать, т.е. управлять формой их представления. Для этого в списке вывода после выводимого выражения можно указывать модификаторы : “:L:d“ - для вещественных значений и “:L” для вещественных и целых. L и d - целочисленные выражения, первое из них определяет, сколько всего позиций отводится для выводимого числа на экране, а второе - сколько выводится цифр после десятичной точки.
Если при выводе вещественного числа задан модификатор “:L:d“, то оно выводится с фиксированной точкой, если же задан модификатор “:L” или он отсутствует - то с плавающей точкой. Пусть значение переменной X равно 123.45678, тогда оператор WRI E(X); выведет " 1.2345678000E 02" WRI E(X:8:2); выведет " 123.46" WRI E(X:10:5); выведет " 1.235E 02" WRI E(X:10); выведет " 1.235E 02" WRI E(X:8); выведет " 1.2E 02" WRI E(X:1); выведет " 1.2E 02" По умолчанию вещественные числа всегда разделяются при выводе пробелами, но если вы выводите подряд несколько целых чисел, не форматируя их и не выводя между ними пробелов, они будут выводиться подряд и сольются в одно число.
Предположим, что второй процесс выполняет следующий набор операторов: fd1 = open("/etc/passwd", O_RDONLY); fd2 = open("private", O_RDONLY); Рисунок 5.3. Структуры данных после открытия На Рисунке 5.4 показана взаимосвязь между соответствующими структурами данных, когда оба процесса (и больше никто) имеют открытые файлы. Снова результатом каждого вызова функции open является выделение уникальной точки входа в таблице пользовательских дескрипторов файла и в таблице файлов ядра, и ядро хранит не более одной записи на каждый файл в таблице индексов, размещенных в памяти. Запись в таблице пользовательских дескрипторов файла по умолчанию хранит смещение в файле до адреса следующей операции ввода-вывода и указывает непосредственно на точку входа в таблице индексов для файла, устраняя необходимость в отдельной таблице файлов ядра. Вышеприведенные примеры показывают взаимосвязь между записями таблицы пользовательских дескрипторов файла и записями в таблице файлов ядра типа «один к одному». Томпсон, однако, отмечает, что им была реализована таблица файлов как отдельная структура, позволяющая совместно использовать один и тот же указатель смещения нескольким пользовательским дескрипторам файла (см. [Thompson 78], стр.1943)
2. Аппаратно-программные средства ввода/вывода аналоговой информации в системах реального времени
3. Базовая система ввода-вывода: BIOS ПК
4. NGIO (система ввода-вывода нового поколения)
5. Применение рекурсии в алгоритмах с возвратом. Файловый тип. Ввод/вывод
10. Выполнение ввода и вывода информации с носителей. Работа с клавиатурой
11. Устройство графического ввода - Сканер
12. Устройства ввода
13. Вывод информации
14. Реализация языкового процессора оператора FOR языка BASIC
15. Оператор присваивания языка FORTRAN
16. Разработка подсистемы вывода в диагностической экспертной системе
18. Операторы в вейвлетном базисе
19. Устройство вывода на экран
20. Расчет характеристик канала вывода СИ (синхротронного излучения)
21. Вывод уравнения Шрёдингера
25. Исследование рынка операторов сотовой связи
26. Программа вывода промышленных предприятий из центра столицы
27. Мониторинг школьных конфликтов: причины, анализ, выводы
28. Оценка качества труда оператора
29. Формальная логика и мышление, вывод и рассуждение
30. Фонема: аксиоматика и выводы
32. Устройство ввода
33. Вывод на экран текущего каталога в графическом режиме (со скроллингом)
34. Вывод на экран текущий каталог в графическом режиме (со скролингом)
37. Концепция управления доходами для операторов связи
41. Метки. Оператор GOTO. Процедура Halt
42. Оператор сдвига
44. Робоче місце оператора ЕОМ
45. Оценка рабочего места оператора ПЭВМ
46. Ввод автомобілів до експлуатації та приведення їх у готовність до використання за призначенням
47. Повышение эффективности производства на компании ТНК путем ввода новых скважин
48. Реализация когнитивных стратегий ввода темы дискурса в подборке научно-популярных статей
49. Анализ входного файла программы и вывод результатов в выходной файл
50. Ввод стандартных форм и форматированных документов
51. Однопроходный/двухпроходный транслятор с языка математических выражений на язык деревьев вывода
52. Оператори й основні типи даних мови С++
57. Системы распознания текста и ввода данных
58. Способы описания алгоритма. Виды операторов
59. Устройства вывода информации
61. Вывод текста
62. Выражения и условный оператор IF. Операторы циклов. Массивы и подпрограммы
63. Возможности биллинговых систем для операторов фиксированной связи
64. ПЛМ, воспроизведение скобочных форм переключательных функций, схемы с двунаправленными выводами
65. Вывод на рынок нового продукта в условиях ограниченного рекламного бюджета
66. Маркетингові війни мобільних операторів України
67. Разработка нового товара и вывод его на рынок
68. Еволюційні рівняння з псевдо-Бесселевими операторами
73. Достоверные и артефактные выводы в экспериментальном исследовании
74. Інвестиційний проект розвитку ТОВ "Базіс" - підприємства як оператора фіксованого зв’язку