что такое ввод как записывается команда ввода
Ввод/вывод
С информатике, ввод/вывод (в англ. языке часто используется сокращение I/O — input/output) означает взаимодействие между обработчиком информации (например, компьютер) и внешним миром, который может представлять как человек, так и любая другая система обработки информации. Ввод — сигнал или данные, полученные системой, а вывод — сигнал или данные, посланные ею (или из нее). Термин также может использоваться как обозначение (или дополнение к обозначению) определенного действия: «выполнять ввод/вывод» означает выполнение операций ввода или вывода. Устройства ввода-вывода используются человеком (или другой системой) для взаимодействия с компьютером. Например, клавиатуры и мыши — специально разработанные компьютерные устройства ввода, а мониторы и принтеры — компьютерные устройства вывода. Устройства для взаимодействия между компьютерами, как модемы и сетевые карты, обычно служат устройствами ввода и вывода одновременно.
Стоит отметить, что назначение устройства в качестве устройства ввода или вывода зависит от перспективы. Мыши и клавиатуры принимают физическое взаимодействие, осуществляемое человеком-пользователем (кстати, относительно него это будут действия по выводу информации), и превращает его в сигналы, понятные компьютеру. Вывод информации из этих устройств является вводом ее в компьютер. Аналогично, принтеры и мониторы получают на входе сигналы, которые выводит компьютер. Затем они преобразуют эти сигналы в такой вид, который человек сможет увидеть или прочитать. (Для людей-пользователей процесс чтения или просмотра подобных вариантов представления информации является вводом или получением информации).
В компьютерной архитектуре объединение процессора и основной памяти (то есть памяти, из которой процессор может читать и записывать в нее напрямую с помощью особых инструкций) составляет «мозг» компьютера, и с этой точки зрения, любой обмен информацией с этим объединением, например, с дисковым накопителем, подразумевает ввод-вывод. Процессор и его сопутствующие электронные цепи реализуют ввод-вывод с распределением памяти, используемый в низкоуровневом программировании при реализации драйверов устройств.
Высокоуровневая операционная система и программное обеспечение используют другие, более абстрактные концепции и примитивы ввода-вывода. Например, большинство операционных систем реализуют прикладные программы через концепцию файлов. Языки программирования Си и C++, а также операционные системы семейства Unix, традиционно абстрагируют файлы и устройства в виде потоков данных, из которых можно читать и в которые можно записывать, или и то и другое вместе. Стандартная библиотека языка Си реализует функции для работы с потоками для ввода и вывода данных.
Альтернативой специальным простейшим функциям служит монада ввода-вывода, которая позволяет программам просто описывать ввод-вывод, а действия выносятся за рамки программы. Это весьма примечательно, так как функции ввода-вывода имеют побочные эффекты в любом языке программирования, но сейчас получило распространение чисто функциональное программирование.
Содержание
Интерфейс ввода-вывода
Интерфейс ввода-вывода требует управления процессором каждого устройства. Интерфейс должен иметь соответствующую логику для интерпретации адреса устройства, генерируемого процессором.
Установление контакта должно быть реализовано интерфейсом при помощи соответствующих команд типа (ЗАНЯТ, ГОТОВ, ЖДУ), чтобы процессор мог взаимодействовать с устройством ввода-вывода через интерфейс.
Если существует необходимость передачи различающихся форматов данных, то интерфейс должен уметь конвертировать последовательные (упорядоченные) данные в параллельную форму и наоборот.
Должна быть возможность для генерации прерываний и соответствующих типов чисел для дальнейшей обработки процессором (при необходимости).
Компьютер, использующий ввод-вывод с распределением памяти, обращается к аппаратному обеспечению при помощи чтения и записи в определенные ячейки памяти, используя те же самые инструкции языка ассемблера, которые компьютер обычно использует при обращении к памяти.
Режимы адресации
Существует несколько способов, которыми данные могут быть прочитаны или помещены в память. Каждый метод представляет собой режим адресации и имеет собственные преимущества и ограничения.
Режимы адресации делятся на множество типов, как например, прямая адресация, косвенная (непрямая) адресация, непосредственная адресация, индексная адресация, базовая адресация, базово-индексная адресация, предполагаемая адресация и т. д.
Прямая адресация
В этом типе адрес данных сам является частью инструкции. Когда процессор декодирует инструкцию, он получает адрес ячейки памяти, откуда может быть считана (куда может быть записана) требуемая информация.
В данном случае операнд Addr указывает на область памяти, содержащее данные и копирует их в указанный регистр Reg.
Косвенная адресация
В этом случае адрес может храниться в регистре. Инструкции будут обращаться к регистру, содержащему адрес. То есть, для получения данных, инструкция должна декодировать данные соответствующего регистра. Содержимое регистра будет обработано как адрес, используя который, будет считана/записана информация из/в соответствующую область памяти.
Ввод-вывод с распределением (вводимой информации) по портам (памяти)
Ввод-вывод с распределением (вводимой информации) по портам (памяти) обычно требует применения инструкций, специально разработанных для выполнения операций ввода-вывода.
Ввод-вывод данных в Pascal
Компьютерные программы обрабатывают (изменяют) различные данные. Программа получает данные, что-то делает с ними и выводит их в измененной форме или выводит другие данные.
Откуда или с помощью чего можно ввести данные в программу? Обычно это можно сделать с помощью клавиатуры или из файлов.
Куда можно вывести данные? На экран, в файл, на принтер и др.
Стандартным устройством ввода является клавиатура, а вывода — монитор. Стандартные — значит «работающие по-умолчанию»; т.е. если не указано ничего иного, то программа будет считывать данные с клавиатуры, а выводить их на монитор. Вместе клавиатуру и монитор называют консолью. Таким образом консоль представляет собой стандартное устройство ввода-вывода.
Вывод данных на экран. Форматированный вывод
Write() чаще используется, когда надо вывести для пользователя сообщение на экран, после чего получить данные, не переводя курсора на новую строку. Например, выводим на экран «Введи число: » и не переводим курсор на новую строку, а ждем ввода.
Еще один пример. В памяти компьютера хранятся данные. Из программы мы обращаемся к ним с помощью переменных num, fl и st. Вывести их значения на экран можно по-разному.
Во втором случае мы видим, что процедуры вывода (как write() так writeln() ) позволяют конструировать выводимую информацию из различных компонент (строк-констант и переменных).
В третьем случае был осуществлен так называемый форматированный вывод. При этом для выводимого значения указывается ширина поля вывода (количество знакомест). Если мы выводим вещественное (дробное) число, то вторым числом через двоеточие указывается количество знаков после запятой. Если для вещественных чисел не осуществлять форматирование, то они отобразятся так, как определено для данного компьютера. Если указать только число знакомест без фиксирования дробной части, то вывод будет в экспоненциальной форме.
Ввод данных с клавиатуры
Когда данные вводятся, то они помещаются в ячейки памяти, доступ к которым обеспечивается с помощью механизма переменных. Поэтому, когда в программе на Pascal используется процедура read() (или readln() ), то в качестве фактического параметра (аргумента) ей передается имя переменной, которая будет связана с вводимыми данными. Потом эти данные можно будет использовать в программе или просто вывести на экран.
В процедуры ввода можно передавать не один фактический параметр, а множество.
При вводе данных их разделяют пробелом, табуляцией или переходом на новую строку (Enter). Данные символьного типа не разделяются или разделяются переходом на новую строку.
Содержание урока
Алгоритмы работы с величинами
Компьютер как исполнитель алгоритмовВам уже известно, что всякий алгоритм составляется для конкретного исполнителя. Теперь в качестве исполнителя мы будем рассматривать компьютер, оснащенный системой программирования на определенном языке. Компьютер-исполнитель работает с определенными данными по определенной программе. Данные — это множество величин. Величины: константы и переменныеКомпьютер работает с информацией, хранящейся в его памяти. Отдельный информационный объект (число, символ, строка, таблица и пр.) называется величиной.
Существуют три основных типа величин, с которыми работает компьютер: числовой, символьный и логический. Изучая базы данных и электронные таблицы, вы уже встречались с этими типами. В данной главе мы будем строить алгоритмы, работающие с числовыми величинами. Константы записываются в алгоритмах своими десятичными значениями, например: 23, 3.5, 34. Значение константы хранится в выделенной под нее ячейке памяти и остается неизменным в течение работы программы. Переменные в программировании, как и в математике, обозначаются символическими именами. Эти имена называют идентификаторами (от глагола «идентифицировать», что значит «обозначать», «символизировать»). Идентификатор может быть одной буквой, множеством букв, сочетанием букв и цифр и т. д. Примеры идентификаторов: А, X, B3, prim, r25 и т. п. Система командВам известно, что всякий алгоритм строится исходя из системы команд исполнителя, для которого он предназначен. Любой алгоритм работы с величинами может быть составлен из следующих команд: Эти команды существуют во всех языках, поддерживающих структурное программирование: в Паскале, Си и др. Команда присваиванияКоманда присваивания — одна из основных команд в алгоритмах работы с величинами. Записывать ее мы будем так: Значок «:=» читается «присвоить». Например: Z:=X + Y Компьютер сначала вычисляет выражение, затем результат присваивает переменной, стоящей слева от знака «:=». Если до выполнения этой команды содержимое ячеек, соответствующих переменным X, Y, Z, было таким: Прочерк в ячейке Z обозначает, что начальное число в ней может быть любым. Оно не имеет значения для результата данной команды. Если слева от знака присваивания стоит числовая переменная, а справа — выражение, определяющее порядок вычисления числовой величины, то такую команду называют арифметической командой присваивания, а выражение — арифметическим выражением. В частном случае арифметическое выражение в правой части оператора присваивания может быть представлено одной переменной или одной константой. Команда ввода
Команда ввода в описаниях алгоритмов выглядит так: ввод А, Б, С Вот схема выполнения приведенной выше команды. 1. Память до выполнения команды: 2. Процессор компьютера получил команду ввод А, Б, С, прервал свою работу и ждет действий пользователя. 3. Пользователь набирает на клавиатуре: 1 3 5 и нажимает клавишу ( ). 4. Память после выполнения команды: 5. Процессор переходит к выполнению следующей команды программы. При выполнении пункта 3 вводимые числа должны быть отделены друг от друга какими-нибудь разделителями. Обычно это пробелы. Из сказанного выше можно сделать вывод:
Если переменной величине не присвоено никакого значения (или не введено), то она является неопределенной. Иначе говоря, ничего нельзя сказать о том, какое значение имеет эта переменная. Команда вывода
Команда вывода в алгоритмах записывается так: вывод X1, Х2 По этой команде значения переменных X1 и Х2 будут вынесены на устройство вывода (чаще всего это экран). О других командах, применяемых в алгоритмах работы с величинами, вы узнаете позже. Коротко о главномЛюбой алгоритм работы с величинами может быть составлен из следующих команд: присваивание; ввод; вывод; обращение к вспомогательному алгоритму; цикл; ветвление. Программа для компьютера — это алгоритм, записанный на языке программирования. Язык программирования — это фиксированная система обозначений для описания алгоритмов и структур данных. Всякая обрабатываемая программой величина занимает оцреде- ленное поле в памяти компьютера. Значение величины — это информация, хранимая в этом поле. Переменная величина получает значение в результате выполнения команды присваивания или команды ввода. Формат команды присваивания: Сначала вычисляется выражение, затем полученное значение присваивается переменной. Ввод — это занесение данных с внешних устройств в оперативную память компьютера. Исходные данные для решения задачи обычно задаются вводом. Результаты решения задачи выносятся на устройства вывода (монитор, принтер) по команде вывода. Вопросы и задания1. Что такое величина? Чем отличаются переменные и постоянные величины? 2. Чем определяется значение величины? 3. Какие существуют основные типы величин в программировании? 4. Как записывается команда присваивания? 5. Что такое ввод? Как записывается команда ввода? 6. Что такое вывод? Как записывается команда вывода? 7. В схематическом виде (как это сделано в параграфе) отразите изменения значений в ячейках, соответствующих переменным А и B, в ходе последовательного выполнения команд присваивания: 8. Вместо многоточия впишите в алгоритм несколько команд присваивания, в результате чего должен получиться алгоритм возведения в четвертую степень введенного числа (дополнительные переменные не использовать): Следующая страница . = Codder =.Каждый день мы получаем информацию.(Книги, интернет и т.п.). Эту информацию мы обрабатываем (анализируем) и делаем определённые умозаключения, выводы. А затем своими выводами делимся с другими. Коротко это можно обозначить следующими пунктами: 1. Получить информацию (Входящие данные). Программирование (программы) строится по такому же принципу. Сначала программа получает данные, затем обрабатывает соответственно поставленной задаче и выводит результат. Для выполнения данных операций в Паскале существуют команды ввода/вывода информации. С английского слово Read переводится как «ЧИТАТЬ». Его и взяли для считывания данных от пользователя. Общий вид команды: Read (список переменных); Компьютер — это машина для обработки информации, которую получает от пользователя. Затем выполняет с ней определенные действия и выдает пользователю результат. Поэтому для обеспечения общения с ПК придется изучить команды ввода/вывода информации и определенных правил форматирования результатов (на основе работы с числами) Вспомним немного английский язык. Слово «Пиши», или «Напечатай» в нём пишеться Write. В языке Паскаль аналогичная команда отвечает за вывод различных сообщений. Только с различными вариациями. Попробуем разобраться с этим вопросом. Итак … Предположим, что в целочисленной переменной Area находится значение площади фигуры равное 25. Руководитель проекта требует вывести сообщение и значение переменной. Для этого используется следующая запись команды. Write (‘Площадь фигуры= ‘,Area ); команда ( ‘сообщение ‘, значение переменной); считывает из памяти значения величин, встречающихся в выражении из правой части команды; Заметим, что при этом старое значение (если оно было), хранящееся в памяти по указанному адресу, будет затерто. Не путать команду присвоить и знак равно. команда ( ‘сообщение ‘, значение переменной, ‘завершение сообщения’); И опять-таки руководство требует, чтобы был запас для вывода выделить 4 знакоместа в значении площади … И только сейчас руководитель проекта понял, что площадь может быть действительным числом. Поэтому требует рассчитать значение площади фигуры с максимальной точностью. В этом случае — тип переменной Area: Real; Иногда результат выводится в виде Площадь фигуры= = 2.5Е+1 Руководителю не понравилась большое количество цифр. Он решил, что достаточно лишь 5 знаков после запятой. Площадь фигуры= 25.91326 квадратных единиц Площадь фигуры= 25.91326 квадратных единиц и Периметр==2.0035769132E+01 единиц Общая структура команды Writeln. Hello World Hello После вывода на экран слова Hello, текстовый курсор перемещается на новую строку. Поэтому слово World выводится с новой строки. Для перехода на новую строку без вывода сообщений можно использовать команду Writeln; без параметров. Hello Пример из школьной программы по геометрии. Что нужно запомнить: 4. При вводе данных желательно использовать Write/Readln. Дано целое число А. Вывести его квадрат. Например, чем отличаются результаты работы приведенных ниже программных кодов: 1. A:integer Write(‘Результат=’,a:3); Для начала предлагаю Вам простое задание. 3. Для проверки на наличие синтаксических ошибок нажимаем F9. Если нет синтаксических ошибок — появиться мигающая фраза Press any Key/ Если таковые есть — придется исправлять. <****** Для самостоятельного решения ********> S: входящие, S: результат. (промежуточных нет) Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
|