Уроки > Взаимодействие программ с внешним миром
Мы не продаём знания — мы ими делимся!

Если для вас это ценно, то поддержите проект.

Ваша поддержка — топливо для новых уроков!

Как программы взаимодействуют с внешним миром?

Прежде чем начать, скажу пару общих слов о том, как программы взаимодействуют с внешним миром.

Откуда вообще программы могут брать данные?

Один вариант мы уже назвали — данные может ввести пользователь, используя клавиатуру или клавиатуру и мышку. Так работает, например, консольная программа yt-dlp (позволяет скачивать видео с ютуба и других видеохостингов). Или калькулятор Windows.

Программа может брать данные из памяти компьютера. Например, просмотрщик фотографий, медиаплеер или более точный пример — BIOS вашего ПК.

Ещё один вариант: получать данные с различных устройств, например, с web-камеры или микрофона. Например, Zoom или недавно преставившийся Skype.

С учетом развития сетевых технологий важно упомянуть, что программы могут получать данные по сети, например, через Интернет.

Конечно, нельзя забывать и о том, что программы обмениваются данными друг с другом. Например, абсолютно любая программа на вашем компьютере и операционная система. Собственно, все варианты описанные ранее в том или ином виде взаимодействуют с внешним миром через взаимодействие с операционной системой и драйверами устройств.

Да что говорить, ведь даже ваша первая программа "Hello, World!" и та возвращала в вызывающую её программу значение 0 (ещё не забыли про инструкцию return?).

В общем, каналов получения данных достаточно много.

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

В этом уроке мы научим ваши программы получать данные, которые пользователь вводит с клавиатуры.

Что же касается вывода данных из программы, то мы разберёмся, как выводить данные на экран консоли.

Хотя, конечно, для вывода данных доступны все те же варианты, что и для ввода: файлы, другие программы, перефирийные устройства, сеть и пр.

Практика

  • Подумайте, как взаимодействуют с внешним миром программы, которыми вы обычно пользуетесь? Откуда в них поступают данные? Куда эти программы выводят результаты своей работы?