Программирование на языке C для начинающих: Hello World!

Данный пост это попытка написать курс по основам программирования на языке C, а затем, С++.

Введение

 

Одна из проблем, которая всегда возникала при изучении основ программирования это сложность сделать первые шаги. Так как, для того, чтобы даже просто скомпилировать и запустить HelloWorld, требуется приложить немалые усилия:

  • установить компилятор;
  • установить IDE;
  • набрать исходный текст программы;
  • скомпилировать программу;
  • увидеть кучу ошибок;
  • долго и нудно пытаться исправить их;
  • и наконец, прогнать программу.

В рамках данной серии статей  я попытался избавиться, хотя бы от части их этих сложностей, а именно от установки компилятора и IDE. Для этого для демонстрации работы программ я буду использовать облачные IDE. Пока будет использоваться вот эта: http://ideone.com/. Возможно, что в дальнейшем перейду на какую-то более функциональную IDE.

Disclaimer: я не считаю, что всем надо срочно переходить на облачные IDE в своей повседневной работе. Но для задач обучения основам программирования мне этот вариант кажется весьма перспективным. Во всяком случае, “попытка – не пытка,  не правда ли, товарищ Берия” (с).

Итак, самая первая работа. Первая программа.

Простейшие программы на языке C

Hello World

Рассмотрим простейшую программу на языке C: http://ideone.com/W0kjlP. Рассмотрим эту программу построчно.

А подать сюда Тяпкина-Ляпкина! Н.В.Гоголь, Ревизор

В строке №1 указана директива препроцессора include. Что такое директивы препроцессора мы будем рассматривать позже. Пока для нас будет достаточен тот факт, что директивы препроцессора существуют. Все директивы препроцессора начинаются с символа #. Директива include позволяет “включить” указанный файл. То есть, подать его на вход компилятора.

В данном случае, включается библиотечный заголовочный файл stdio.h. Заголовочные файлы обычно имеют расширение .h, от слова header – заголовок. Данные файлы включают информацию о библиотечных функциях, переменных и константах. Файл stdio.h содержит информацию о стандартной библиотеке ввода вывода и расшифровывается, как STAndard Input/Output. Если коротко, данная строка, записанная в таком виде позволяет нам пользоваться в программе функциями для отображения информации в консоле и ввода данных из консоли.

Строка №2 пустая. Язык не требует делать пустые строки, но рекомендуется использовать их для визуального отделения частей (секций) программы друг от друга. То есть, для того, чтобы программу было проще читать. Вообще, может быть, это может показаться странным но читать программу приходится намного чаще, чем писать её, поэтому, текст программы должен быть максимально читабельным.

В строка №3 содержится объявление главной функции программы. Эта функция имеет имя ‘main‘. В любой законченной программе на языке C должна быть ровно одна функция main. Данная функция по другому называется точкой входа. То есть, с этой функции начинается работа программы.

Слева от имени функции указан тип возвращаемого значения. В данном случае, это тип int – стандартный целый тип данных. Функция main обязана возвращать тип int.  Справа от имени функции указываются входные параметры этой функции. В данном случае, в качестве входных параметров указывается void. Это означает, что данная функция не использует входных параметров. Примечание: о параметрах функции main расскажу отдельно.

В строке 4 открывается, а в строке 7 закрывается тело функции main. При реализации любой функции необходимо обозначить тело данной функции именно таким образом: парой из открывающей и закрывающей фигурной скобки. Эти скобки по синтаксису языка не обязаны находится на отдельных сроках. Однако, закрывающую строку всегда принято писать на отдельной строке. С открывающей скобкой не все так однозначно. Часто ее пишут в конце предыдущей строки. Но мы будем писать эту фигурную скобку на отдельной строке.

Строка 5 содержит, собственно, основную функциональность этой простой программы: вызов функции printf со строкой “Hello World!”, в качестве параметра. Имя функции printf расшифровывается, как print formatted, то есть, форматированная печать. С богатыми возможностями этой функции по форматирвоанию печати мы еще познакомимся. Пока нам достаточно того, что она, в принципе, умеет печатать что-то. Эта функция находится в библиотеке stdio, описание которой мы подключили в первой строке. “Вызов функции” для нас в данном случае означает “выполнение”. То есть, здесь будет выполнена печать значения в консоли.

Вызывая любую функцию мы должны справа от ее имени указать список параметров в круглых скобках. Примечание: даже если у Вас нет необходимости в передаче параметров, Вы все равно обязаны указать пару круглых скобок, хотя бы пустую. Но в данном случае, параметр есть. В качестве такого параметра передается строка Hello World!. Данная строка взята в кавычки для того, что бы указать компилятору, что это строка символов, а не посто случайный набор. Подробнее строки в языке C будем изучать позже.

Строка 6 возвращает значение 0 из функции main при помощи оператора return. Поскольку мы указали, что наша функция main возвращает значение типа int, мы обязаны возвратить значение этого типа.

Обратите внимание, что строки 5 и 6 начинаются не с первой позиции в строке, а с позиции “4 символа”. Такие серии пробелов в начале сроки называются отступами. Отступы не являются частью синтаксиса языка C, и их можно не делать. Но они используются для форматирования исходного текста. То есть, для того, чтобы текст был более читабелен. Поэтому, делать отступы необходимо в обязательном порядке.

Строка 8 пустая строка. В общем случае, эта строка не обязательна, но правила хорошего тона (и некоторые версии компиляторов) требуют ее наличия. Я рекомендую всегда в последней строки программы ставить такую пустую строку.

Строки 1-4 и 6-8 можно считать стандартным оформлением любой C программы. Мы можем использовать именно такое оформление для всех наших простых программ.

Задания для самостоятельной работы:

  • Откройте исходный текст по указанной ссылке.
  • Изучите исходный текст.
  • Если хотите продолжать изучать программирование на C online, создайте себе аккаунт на этом сайте (IDEONE.com).
  • Сделайте форк этой программы (нажмите на ссылку fork).
  • Запустите программу (кнопка ‘Run‘ или ‘ideone it!‘). Убедитесь, что программа выполняется. В процессе запуска Вы можете увидеть стадии: waiting for compilation, compilation, running. Это программа очень маленькая, поэтому стадии меняются быстро (можете некоторые из них не заметить).
  • Сделайте в программе некоторые изменения (перечислены ниже) и запустите программу после каждого изменения. Посмотрите, что произошло. Попытайтесь объяснить что произошло.

Модификации программы, которые рекомендуются сделать:

  1. Измените строку для печати. Вместо Hello World сделайте печать Hello <Ваше Имя>.
  2. Уберите строку ‘return 0;’.
  3. Верните удаленную строку и удалите символ ; (точка с запятой) в конце строки printf(“Hello World!”);
  4. Верните удаленную точку с запятой и уберите вторую из кавычек в строке “Hello World!”.

Следующий параграф

К оглавлению

Лицензия

Attribution-NonCommercial-ShareAlike 3.0 Unported (CC BY-NC-SA 3.0)

Programming in C for beginners by Sergey Borisov (AKA risik) is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.

Программирование на языке C для начинающих автор Сергей Борисов (AKA risik) доступна на условиях лицензии Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.

Leave a Reply