|
1 | 1 | # Как программы взаимодействуют с внешним миром? |
2 | | -Вспомним задачу о сложении двух чисел из прошлого урока. |
3 | 2 |
|
4 | | -Программа сложения двух чисел. |
| 3 | +Прежде чем начать, скажу пару общих слов о том, как программы взаимодействуют с внешним миром. |
5 | 4 |
|
6 | | -**Входные данные:** два числа, которые нужно сложить. |
7 | | -**Выходные данные:** одно число, сумма двух чисел, поступивших на вход |
8 | | - |
9 | | - |
10 | | - |
11 | | - |
12 | | -Давайте попробуем её решить используя знания, полученные на прошлом уроке. Получится что-то вроде такого: |
13 | | - |
14 | | -Листинг 1. Сложение двух чисел v.1 |
15 | | -```c |
16 | | -#include <stdio.h> |
17 | | -int main(void) { |
18 | | - int a, b, res; |
19 | | - |
20 | | - a = 10; |
21 | | - b = 7; |
| 5 | +Откуда вообще программы могут брать данные? |
22 | 6 |
|
23 | | - res = a + b; |
24 | | - return 0; |
25 | | -} |
26 | | -``` |
| 7 | +Один вариант мы уже назвали -- данные может ввести пользователь, используя клавиатуру или клавиатуру и мышку. Так работает, например, консольная программа yt-dlp (позволяет скачивать видео с ютуба и других видеохостингов). Или калькулятор Windows. |
27 | 8 |
|
28 | | -Такая программа скомпилируется без ошибок и будет работать. В памяти будут созданы три переменные. Двум из них будут присвоены числовые значения «десять» и «семь». Потом в переменную res будет записана сумма этих значений. |
| 9 | +Программа может брать данные из памяти компьютера. Например, просмотрщик фотографий, медиаплеер или более точный пример -- BIOS вашего ПК. |
29 | 10 |
|
30 | | -Но эта программа, конечно, никуда не годится. Во-первых, она не выводит сумму чисел на экран. Т.е. сумма вычисляется, но мы её не видим. Что-то вроде калькулятора без экрана. А во-вторых, она работает только для чисел 10 и 7. Если мы бы захотели сложить числа 25 и -8, нам нужно было бы открыть программу, изменить её код и снова скомпилировать. |
| 11 | +Ещё один вариант: получать данные с различных устройств, например, с web-камеры или микрофона. Например, Zoom или недавно преставившийся Skype. |
31 | 12 |
|
32 | | -Это ставит перед нами две задачи: |
| 13 | +С учетом развития сетевых технологий важно упомянуть, что программы могут получать данные по сети, например, через Интернет. |
33 | 14 |
|
34 | | -- научиться выводить на экран значения, сохранённые в переменных, чтобы посмотреть результат работы программ; |
35 | | -- научиться сохранять в переменные данные, которые поступили в программу от пользователя, например, которые он вводит с клавиатуры. |
| 15 | +Конечно, нельзя забывать и о том, что программы обмениваются данными друг с другом. Например, абсолютно любая программа на вашем компьютере и операционная система. Собственно, все варианты описанные ранее в том или ином виде взаимодействуют с внешним миром через взаимодействие с операционной системой и драйверами устройств. |
36 | 16 |
|
37 | | -Решению этих задач посвящён этот урок. |
| 17 | +Да что говорить, ведь даже ваша первая программа "Hello, World!" и та возвращала в вызывающую её программу значение 0 (ещё не забыли про инструкцию return?). |
38 | 18 |
|
39 | | -Но сначала пара общих слов о том, как программы взаимодействуют с внешним миром. |
| 19 | +В общем, каналов получения данных достаточно много. |
40 | 20 |
|
41 | | -Откуда вообще программы могут брать данные? |
| 21 | +Зачастую программы получают данные, используя не один, а сразу несколько каналов. Например, веб-браузер. С одной стороны, он получает данные от пользователя (адрес сайта, клики мышкой по элементам сайта), с другой -- получает данные по сети от сервера, где хранится сайт. Кроме того, если мы кому-нибудь позвоним через интернет, то данные будут поступать уже от перефирийных устройств: микрофона и видео-камеры. Про постоянное взаимодействие браузера с операционной системой, думаю, можно и не упоминать. |
42 | 22 |
|
43 | | -Ну, например, данные может ввести пользователь с клавиатуры. Стандартный калькулятор Windows так и работает. Мы запускаем программу и вводим в неё данные. Кроме того, программы могут получать данные из файлов, из интернета, из других программ, различных устройств, например, с web-камеры или микрофона, и др. В общем, способов получить данные достаточно много. |
| 23 | +В этом уроке мы научим ваши программы получать данные, которые пользователь вводит с клавиатуры. |
44 | 24 |
|
45 | | -В этом уроке мы научимся получать данные, которые ввёл пользователь с клавиатуры. В дальнейшем мы разберёмся ещё с тем, как получать данные из текстовых файлов. |
| 25 | +Что же касается вывода данных из программы, то мы разберёмся, как выводить данные на экран консоли. |
46 | 26 |
|
47 | | -Что же касается вывода данных из программы, то мы разберёмся, как выводить данные на экран консоли и как записывать данные в текстовый файл. Хотя, конечно, и для вывода данных существует множество других вариантов (файлы, интернет, другие программы, принтер и др.). |
| 27 | +Хотя, конечно, для вывода данных доступны все те же варианты, что и для ввода: файлы, другие программы, перефирийные устройства, сеть и пр. |
0 commit comments