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

Записывайся на этот курс на Stepike!

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

Вспомним задачу о сложении двух чисел из прошлого урока.

Программа сложения двух чисел.

Входные данные: два числа, которые нужно сложить.
Выходные данные: одно число, сумма двух чисел, поступивших на вход

Схема программы сложение двух чисел.

Рис.1 Схема программы сложение двух чисел.

Давайте попробуем её решить используя знания, полученные на прошлом уроке. Получится что-то вроде такого:

Листинг 1. Сложение двух чисел v.1

#include <stdio.h>
int main(void) {
  int a, b, res;

  a = 10;
  b = 7;

  res = a + b;  
  return 0;
} 

Такая программа скомпилируется без ошибок и будет работать. В памяти будут созданы три переменные. Двум из них будут присвоены числовые значения «десять» и «семь». Потом в переменную res будет записана сумма этих значений.

Но эта программа, конечно, никуда не годится. Во-первых, она не выводит сумму чисел на экран. Т.е. сумма вычисляется, но мы её не видим. Что-то вроде калькулятора без экрана. А во-вторых, она работает только для чисел 10 и 7. Если мы бы захотели сложить числа 25 и -8, нам нужно было бы открыть программу, изменить её код и снова скомпилировать.

Это ставит перед нами две задачи:

  1. научиться выводить на экран значения, сохранённые в переменных, чтобы посмотреть результат работы программ;
  2. научиться сохранять в переменные данные, которые поступили в программу от пользователя, например, которые он вводит с клавиатуры.

Решению этих задач посвящён этот урок.

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

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

Ну, например, данные может ввести пользователь с клавиатуры. Стандартный калькулятор Windows так и работает. Мы запускаем программу и вводим в неё данные. Кроме того, программы могут получать данные из файлов, из интернета, из других программ, различных устройств, например, с web-камеры или микрофона, и др. В общем, способов получить данные достаточно много.

В этом уроке мы научимся получать данные, которые ввёл пользователь с клавиатуры. В дальнейшем мы разберёмся ещё с тем, как получать данные из текстовых файлов.

Что же касается вывода данных из программы, то мы разберёмся, как выводить данные на экран консоли и как записывать данные в текстовый файл. Хотя, конечно, и для вывода данных существует множество других вариантов (файлы, интернет, другие программы, принтер и др.).

Сохрани в закладки или поддержи проект.

Практика

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

Дополнительные материалы

  1. пока нет

Оставить комментарий

Чтобы код красиво отображался на странице заключайте его в теги [code] здесь писать код [/code]

Комментарии

Анастасия
Например, Word. Данные поступают с клавиатуры, которые вводит пользователь. Введенный текст появляется на экране. Вот этот процесс как раз иллюстрирует взаимодействия программы с внешним миром. Так?
KaDeaT
Да, вполне.
SDK
гитарный тюнер. данные в программу поступают прямиком из микрофона, а на экран выводятся данные о том, какая нота проигрывается.
KaDeaT
да, хороший пример.
Александра
Добрый день! Вопрос не к этому заданию конкретно, а к программе Pelles C. У меня не выходит создавать в одном проекте несколько файлов. Если в проекте более одного файла, то при компиляции всё вроде в порядке: "Project build ended successfully", а после нажатия кнопки Execute выводит "Project build ended in complete failure" и консольное окошко даже не появляется. Если каждый файл создавать в отдельном проекте, такой проблемы нет. Но хотелось бы группировать проекти как-то по темам что ли. Заранее спасибо!
Alex Nelyubov
Страницы сайта. Создатель сайта вводит данные, я получаю их смотря страницу сайта. Выводит в Интернет.
KaDeaT
Не совсем верно. Страницы сайта не являются программами.
Программой будет, например, интернет браузер. Он получает от нас адрес страницы (входные данные), загружает код страницы с сервера и "отрисовывает" элементы страницы его у вас на устройстве. Конечно, это очень упрощённая схема.

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