1.2 Первые опыты
программирования на Си.
Наш курс посвящён изучению
одного из самых популярных языков
программирования высокого уровня – языку Си
в сравнении с языком программирования - Паскаль. Сотрудник фирмы Bell Labs Деннис Ритчи создал этот язык в 1972
году.
Язык Си был разработан как
инструмент для программистов – практиков,
сочетающий в себе удобство и полезность.
Давайте рассмотрим простейшую
программу на Си и Паскале. Далее будут даны
пояснения к каждой строчке, но перед тем как Вы с
ними познакомитесь, просто поглядите на
программу и попробуйте догадаться, что она
делает.

Замечание! Для
выполнения программы в среде Borland
C нажмите ту же
комбинацию клавиш, что и в среде Паскаль: Ctrl-F9.
Итак, наша программа вывела да
экран монитора одну фразу. Выполним два
просмотра нашей программы. Во время первого
объясним смысл каждой строки, а во время второго
– рассмотрим дополнительные вопросы и детали.
Первой строкой в данном случае
обе программы имеют комментарий. Комментарии
– это примечания, помогающие понять смысл
программы. Они предназначены для пользователя и
игнорируются компилятором.
Строка #include <stdio.h> указывает компилятору, что нужно
включить информацию, содержащуюся в файле stdio.h,
выполняющем ту же роль, что и
внешний, автоматически подключаемый, модуль system в Паскале.
Любая программа на языке Си
состоит из одной или более функций. Наша программа состоит из одной
функции main(), и круглые
скобки прямо указывают на то, что main() – имя функции.
Открывающая фигурная скобка
отмечает начало последовательности операторов,
образующих тело функции.
Закрывающая фигурная скобка
отмечает конец последовательности операторов,
образующих тело функции. На этой скобке
выполнение функции и программы завершается.
printf() – Функция вывода на
печать. С помощью этого оператора выводится на
печать фраза, заключённая в кавычки. Комбинация
символов \n означает, что
после вывода текста будет переведена строка на
устройстве вывода.
А теперь рассмотрим нашу
программу более внимательно.
Использование комментариев
облегчает процесс понимания Вашей программы
любым программистом (включая автора). Всё что
находится между символами начала и конца
комментария, игнорируется компилятором.
Файл и именем stdio.h является частью пакета, имеющегося в
любом компиляторе языка Си и содержащего
информацию о вводе и выводе. Между прочим, эта
строка не является даже оператором языка Си.
Символ # указывает, что
она должна быть обработана “препроцессором”
языка Си. Препроцессор осуществляет некоторую
предварительную обработку текста программы
перед началом компиляции. Данная
операция представляет собой то же, что и
подключение внешних библиотек в языке Паскаль.
Имя main в
качестве названия нашей функции понятно, более
того, назвать её иначе и нельзя. Программа,
написанная на языке Си, всегда начинает
выполняться с функции, называемой по-английски
главной – main(). Мы имеем
возможность выбирать имена для всех создаваемых
нами функций кроме той, с которой начинается
выполнение программы. Круглые скобки указывают
на то, что main() – имя
функции. В круглых скобках в общем случае
содержится информация, передаваемая функции. В
нашем простом примере передача информации
отсутствует и, следовательно, в скобках ничего не
содержится.
Как видно из программы: у Си
отсутствует зарезервированное в Паскале слово program, с которого начинается программа.
Также отсутствует идентификатор программы.
Их роль выполняет название функции.
Естественно отсутствует зарезервированные
понятия procedure и function,
вместо которых, как только что
говорилось, используется непосредственно имя
функции с перечислением всех её аргументов.
Фигурные скобки отмечают
начало и конец тела функции. Они применяются
также для того, чтобы объединить несколько
операторов программы в составной оператор или “блок”.
Те же функции в Паскале выполняют операторы begin и end, которые
также начинают и закрывают тело программы и
блоки составных операторов. Кроме того, отпадает
необходимость ставить знаки “;” и “.”
после end, что избавляет от
некоторых ошибок.
Для вывода на экран
используется функция printf(); скобки указывают на то, что мы имеем
дело с функцией. Строка символов в скобках
является информацией, передаваемой функцией из
нашей главной функции main().
Информация, которая передаётся функции,
называется “аргументом”. В этой строке
даётся пример, как мы “вызываем” функцию или
“обращаемся” к ней, программируя на языке Си.
Для этого требуется указать имя функции и
заключить необходимые аргументы в скобки. Когда
при выполнении программы компьютер “достигнет”
эту строку, он начнет выполнять указанную
функцию (в данном случае printf()). Когда выполнение функции будет
завершено, управление вернётся обратно в
исходную программу. Обратите внимание на наличие
“;” в конце строки. Точка
с запятой указывает на конец оператора языка Си.
В Паскале же вывод на печать и перевод строки
выполняет процедура writeln().
Перевод строки осуществлялся именно благодаря
“окончанию” (-ln). Кстати,
выводимый текст также заключается в апострофы и
в конце оператора также ставится точка с запятой.
Теперь рассмотрим несколько
общих правил, касающихся программ, написанных на
языке Си. |