Лабораторная работа № 1
ВВЕДЕНИЕ В СИ/СИ++
Если, имея перед глазами только исходный текстовый файл, вы попытаетесь определить, что именно делает программа, то в первый момент будете обескуражены. Хотя большинство ключевых слов языка Си представляют собой простые английские слова (например, for) и большинство функций также обычно представлены словами или аббревиатурами (например scanf, от английского scan format) при комбинировании ключевых слов и функций с синтаксисом (знаками пунктуации и пробелами), характерным для языка Си, получается программа, которая зачастую выглядит написанной совершенно не по-человечески. Не удивительно, что программисты называют этот текст «кодом». Пусть подобные трудности не пугают вас — как только вы получше познакомитесь с языком, то сможете читать программу в кодах Си так же легко, как приключенческий роман.
В этой лабораторной работе вы познакомитесь со структурой языка Си и с некоторыми основными понятиями программирования.
Замечания по Си++ | |
Си и Си++ имеют сходную структуру. Научившись писать программу на языке Си, вы сумеете писать и на Си++. |
Структура программы
Программа, составленная на языке Си, может содержать одну или больше функций. Вы, наверное, еще помните, что функцией называется ряд последовательных инструкций, говорящих компьютеру, как выполнить определенную задачу. Многие функции, которые могут вам понадобиться, уже написаны, откомпилированы и помещены в библиотеки, так что вам достаточно просто указать компилятору использовать одну из стандартных функций. Необходимость написания собственной функции возникает только в том случае, если подходящей нет в библиотеках.
Все программы на Си (и Си++) должны начинаться с функции, называемой main(). Она выглядит так:
main()
Круглые скобки являются частью имени функции и ставить их надо обязательно, так как именно они указывают компилятору, что имеется в виду функция, а не просто английское слово main. В противном случае компиляция не будет завершена. Фактически каждая функция включает в свое имя круглые скобки, но в большинстве случаев в них содержится некая информация. В дальнейшем в тексте книги, ссылаясь на функцию, мы всегда будем ставить после ее имени круглые скобки.
Следом за main() вводятся инструкции. Инструкции могут быть представлены в виде стандартных команд и имен функций, содержащихся в библиотеках или написанных вами самостоятельно.
Прямая, или открывающая фигурная скобка ({) помещается перед первой инструкцией, а обратная, или закрывающая фигурная скобка (}) следует за последней инструкцией*. Таким образом, простейшая структура программы, написанной на языке Си, такова:
main() Функция, означающая начало программы — точку входа{ Здесь начинается функция……………………;………………………; Здесь помещаются инструкции, которые должен выполнить компьютер……………………..;} Здесь функция заканчивается
Рис..1. Структура программы на Си/Си++
Открывающая и закрывающая фигурные скобки называются ограничителями и служат для выделения части кода в единый блок. Когда вы пишете функцию, она всегда должна начинаться и заканчиваться фигурными скобками. Кроме того, отдельные блоки внутри функции также могут отмечаться при помощи своих собственных пар фигурных скобок.
При запуске программы компьютер начинает ее выполнение с первой инструкции функции main(). Ниже приведена завершенная программа на Си/Си++, которая выводит на экран монитора слово «OK»:
main() { puts(OK); }
______________________________
Последовательность инструкций, составляющих функцию, часто называют телом функции.
Эта программа содержит всего одну инструкцию, которая, тем не менее, задана в строгом соответствии с правилами языка Си. Кавычки, отмечающие слово внутри круглых скобок не выводятся на экран. В языке Си они означают, что на экран следует вывести заключенную в них последовательность символов, а не константу или переменную, имеющую имя OK (о том, что такое константы и переменные вы узнаете в лабораторной работе 2). Рис.1 иллюстрирует работу каждой части этой простой программы.
Точка с запятой в языке Си является разделителем и отмечает конец инструкции. Разделитель показывает компилятору, что данная инструкция завершена и дальше начинается следующая инструкция или заканчивается программа. Точку с запятой необходимо ставить после каждой отдельной инструкции:
main() { puts(У меня все в порядке); puts(А у тебя?); }
Вышесказанное не означает, что точку с запятой надо ставить в конце каждой строки. Иногда инструкция занимает больше одной строки и в этом случае точку с запятой надо ставить только один раз, отмечая конец команды.
В нашем примере после выполнения функции puts(), компьютер переводит курсор в начало следующей строки, так что при запуске этой программы, содержащей две инструкции puts(), мы увидим на экране две строки сообщений.
Си и Си++ являются языками свободного формата. Это означает, что для них не имеет значения, где будут помещены ограничители и начало строки. С таким же успехом можно написать программу следующим образом:
main(){puts(OK);}
и компилятор обработает ее так же, как и предыдущую. Но для того, чтобы сделать программу более читабельной, принято следовать определенным правилам:
- помещать функцию main() на отдельной строке;
- помещать фигурные скобки на отдельных строках;
- создавать в тексте программы отступы с помощью табуляции. Когда ваша программа станет достаточно длинной, вы увидите, что с помощью отступов можно сделать более понятной структуру программы и выделить логические единицы.
Некоторые компиляторы выполняют функцию puts() без автоматического перевода строки. |
Старайтесь следовать этим и другим принятым в языке Си правилам. Они кажутся не слишком важными, когда имеешь дело с программами небольшого размера, но зато существенно облегчают работу с большими и сложными программами.
В то время как наличие или отсутствие пробелов не оказывает влияния на код, создаваемый компилятором, правильная расстановка всех знаков пунктуации имеет принципиальное значение. Если вы пропустите скобку, кавычку или точку с запятой, компилятор немедленно остановит работу и сообщит об ошибке. Такие ошибки называются синтаксическими, и для того, чтобы компилятор мог создать исполняемый код программы, вам придется исправить их.
Статьи к прочтению:
Андрей Щербаков про каллиграфию
Похожие статьи:
-
Вызовы функции и процесс выполнения программы
Лабораторная №4 Функции Понятие функции в языке C++ не сильно отличается от понятия функции в математике, если вы вспомните алгебру высшей школы или…
-
Конструкция выбора и составная инструкция
Рассмотрим пример программы, которая находит квадратный корень из числа, введенного пользователем (рис. 7). Рис. 7 Пример программы Первый пять строк не…