Ввод и вывод
ввод-вывод
Это понятие впервые встречается на программе «Инженерия и системный подход к решению задач» — примерно 11-12 лет (5-6 класс).
Ввод — всё, что машина получает: нажатие кнопки, слово, сигнал. Вывод — всё, что она выдаёт: картинку, звук, свет лампочки.
Кухня: продукты — ввод, готовое блюдо — вывод, а готовка по рецепту — внутри.
Назвать по три примера ввода и вывода у стиральной машины и у планшета.
Обмен данными между программой и внешним миром. Ввод — данные поступают в программу: с клавиатуры, от датчика, из файла. Вывод — программа отдаёт результат: на экран, на светодиод, в файл. Почти любая программа устроена по схеме «ввод → обработка → вывод».
Разметить проект «умный дом» по схеме: датчик освещённости — ввод, сравнение с порогом — обработка, светодиод — вывод; заменить вывод на зуммер и показать, что обработка не изменилась.
Каналы обмена программы со средой: стандартные потоки stdin/stdout, файлы, сеть, порты микроконтроллера. Ввод-вывод на порядки медленнее вычислений в памяти, поэтому данные буферизуют, а медленные операции не ставят в критичные по времени участки. Краевой случай: программа, ждущая ввода, блокируется — выглядит зависшей, хотя работает правильно.
Связать компьютер и плату через Serial: Arduino читает символ из монитора порта и включает светодиод; указать, что для платы ввод, а что вывод, и как то же самое выглядит со стороны компьютера.
Частое заблуждение
«Ввод — это клавиатура, а вывод — экран». Нет: ввод — любые данные, попадающие в программу (датчик, файл, сеть), вывод — любой результат наружу (свет, звук, движение).