Часть 3. Функция вывода на экран: буквы на экране — не всё так просто!

Итак, мы убрали из всех примеров строки "Hello, World!", чтобы нам было проще анализировать структуру программы дальше. И для языков Python и C мы получили следующее:

Python:

print(...)

C:

#include <stdio.h>

int main() {
    printf(...);
}

JavaScript и C++ мы обсудим отдельно, так как там потребуются более подробные объяснения.

В обоих языках мы видим очень схожие названия функций: print и printf. Print — в переводе с английского означает «печатать» (от этого слова происходит и слово «принтер» — «тот, кто печатает», которое проникло в наш язык как есть, без изменений).

Суффикс f в конце слова printf в языке Си — это сокращение от formatted — означает, что вывод на экран может быть отформатированным. Об этом мы позже ещё поговорим. Пока же, если вы пишете на Си, не забывайте про букву f в конце.

Постойте, а что такое функции?

Помните наш алгоритм покупки кефира? — У нас была инструкция купить(что, где, вот_деньги), за которой стояла целая последовательность действий — начиная от выхода из дома и заканчивая оплатой покупок на кассе.

Вот print (в Питоне) и printf (в Си) — это пример высокоуровневых инструкций, или правильнее говорить, функций. И устроены они похожим образом: print(что).

Круглые скобки здесь — это как бы «руки» функции: в них мы кладём то, с чем функция должна работать — это как записка от мамы, в которой написано, что именно надо купить, если вернуться к нашему примеру про кефир.

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

А что такое буквы на экране дисплея?

Hello pixels

Если вы всмотритесь внимательно в изображение, или посмотрите на дисплей под лупой, то вы увидите, что каждая буква состоит из множества маленьких точек (пикселей).

Дисплей ничего не знает про буквы, он умеет рисовать только точки в заданных местах заданным цветом. Чтобы нарисовать букву — её надо сложить из точек.

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

То есть за таким простым, казалось бы, действием как вывод букв на экран стоит огромное количество инструкций, и все они прячутся под коротким названием функции print в Питоне или printf в Си.

Ок, у нас есть функция print. Мы можем её вызвать и попросить отобразить нужную нам строку:

print("Hello, World!")

Давайте подытожим, что мы узнали:

  • print — это команда (функция)

  • () — означают «выполни эту команду»

  • всё, что внутри () — это информация для команды

Таким образом, print("Hello, World!") означает выполни команду print с текстом "Hello, World!".