Открыть сервисСервис

Input — ввод данных в информатике

Input (от англ. input — «ввод») — процесс передачи данных в компьютер или другое электронное устройство, а также само устройство или канал, через которые эта передача осуществляется. В русскоязычной информатике закрепился калькированный термин «инпут», но в официальных и учебных текстах используется «ввод». Input является одним из трёх базовых компонентов информационной системы наряду с обработкой и выводом (output).

Общие сведения

Любая вычислительная система работает по схеме «ввод — обработка — вывод». Input служит точкой входа внешних данных в систему: без него процессор не имеет над чем выполнять вычисления, а программа — над чем работать. Данные, поступающие на вход, могут быть самыми разными: текст, изображения, звук, координаты, показания датчиков, команды пользователя.

В широком смысле input — это не только физическое устройство, но и логическая операция: вызов функции или процедуры, запрашивающей данные у пользователя или другой программы. В языках программирования для этого существуют специальные конструкции: input() в Python, scanf() и cin в C/C++, Scanner в Java, Console.ReadLine() в C#.

Устройства ввода

Устройства ввода (input-устройства) делятся на несколько основных категорий:

КатегорияПримерыТип данных
ТекстовыеКлавиатура, телетайпСимволы, строки
УказывающиеМышь, тачпад, трекбол, стилусКоординаты, жесты
ГрафическиеСканер, камера, веб-камераИзображения
ЗвуковыеМикрофон, MIDI-клавиатураАудиосигнал, ноты
ИгровыеГеймпад, руль, джойстикПоложение осей, кнопки
ПромышленныеДатчики температуры, давления, GPS-модульПоказания, координаты
БиометрическиеСканер отпечатков пальцев, камера распознавания лицаБиометрические шаблоны

Клавиатура и мышь остаются основными интерфейсами ввода для персональных компьютеров. С развитием мобильных устройств и интерактивных дисплеев на первый план вышли сенсорные экраны, реагирующие на касания, многопальцевые жесты (свайпы, щипки) и распознающие силу нажатия. В игровой индустрии и VR-системах используются контроллеры движения, отслеживающие положение рук и головы пользователя.

Ввод в программировании

В программировании input — это получение данных из внешнего источника: от пользователя, файла, сети или другого процесса. Способы организации ввода различаются:

  • Буферизованный ввод — данные накапливаются в буфере и обрабатываются пачками (типично для файлового и сетевого ввода).
  • Потоковый ввод — данные читаются последовательно по одному элементу или блоку (стандартный ввод в Unix-подобных системах, stdin).
  • Событийный ввод — программа не запрашивает данные активно, а реагирует на события: нажатие клавиши, клик мыши, сообщение из сети (модель, используемая в графических интерфейсах и асинхронном программировании).

В операционных системах Unix и Linux стандартный поток ввода обозначается stdin (файловый дескриптор 0) и может быть перенаправлен из файла или другого процесса с помощью механизма перенаправления и конвейеров (pipes). Это одна из ключевых идей философии Unix: программы читающие данные из stdin легко комбинируются друг с другом.

Ввод и безопасность

Некорректно обработанный ввод — одна из распространённых категорий уязвимостей программного обеспечения. Классическая атака SQL-инъекция основана на том, что пользовательский ввод подставляется в запрос к базе данных без проверки и экранирования. Аналогичные проблемы возникают при переполнении буфера, межсайтовом скриптинге (XSS) и других атаках, эксплуатирующих недостаточную валидацию входных данных.

Основные принципы безопасной работы с вводом:

  • Валидация всех входных данных на допустимость и формат.
  • Экранирование специальных символов перед передачей в интерпретируемые контексты (SQL, HTML, shell).
  • Принцип минимальных привилегий: программа не должна доверять данным, полученным на вход.
  • Ограничение размера входных данных для предотвращения переполнений.

Input в других областях

Термин «input» вышел за пределы информатики. В теории управления и кибернетике input — это воздействие на систему извне. В экономике «входные факторы» (труд, капитал, ресурсы) — это то, что подставляется в производственную функцию. В психологии и педагогике «сенсорный input» — поток информации, поступающий через органы чувств.

В контексте искусственного интеллекта и больших языковых моделей input — это промпт или запрос пользователя, на основе которого модель генерирует ответ. Качество и формулировка входного запроса напрямую определяет качество результата, что породило отдельное направление — prompt engineering.

Источники:

  • Кормен Т., Лейзерсон Ч., Ривест Р., Штейн К. — «Введение в алгоритмы»
  • Таненбаум Э. — «Современные операционные системы»
  • Райс Д., Линдейл Дж. — «Язык программирования C»
  • Сборник статей Википедии: «Устройство ввода», «Стандартные потоки ввода-вывода»
Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru