Первая программа на языке Си
Вагарина Н.С.
Методическое пособие
по дисциплине «Программирование» для направления «Информатика и вычислительная техника»
(заочная (ускоренная) форма обучения)
Саратов, 2015
Оглавление
Первая программа на языке Си. 2
Переменные. Основные типы данных. Форматный ввод-вывод. 5
Операции и выражения. 8
Операторы ветвления. 12
Операторы цикла и передачи управления. 15
Массивы.. 16
Рекомендации к выполнению контрольной работы.. 18
Задание 1 Программирование линейных алгоритмов. 20
Задание 2 Программирование разветвляющихся алгоритмов. 22
Задание 3 Программирование циклических алгоритмов. 26
Задание 4 Работа с одномерными массивами. 29
Задание 5 Работа с двумерными массивами. 31
Пример оформления пояснительной записки. 33
Литература. 35
Приложение 1. Пример оформления титульного листа. 37
Первая программа на языке Си
Си (англ. C) — стандартизированный процедурный язык программирования, разработанный в начале 1970-х годов сотрудниками Bell Labs Кеном Томпсоном и Денисом Ритчи как развитие языка Би. Си был создан для использования в операционной системе UNIX. С тех пор он был портирован на многие другие операционные системы и стал одним из самых используемых языков программирования. Си ценят за его эффективность. Он является самым популярным языком для создания системного программного обеспечения. Его также часто используют для создания прикладных программ. Несмотря на то, что Си не разрабатывался для новичков, он активно используется для обучения программированию. В дальнейшем синтаксис языка Си стал основой для многих других языков. Для языка Си характерны лаконичность, современный набор конструкций управления потоком выполнения, структур данных и обширный набор операций.
Для того чтобы описать структуру программы, написанной на C, рассмотрим простейшую программу, выводящую на экран строку “This is my first program!”.
//PROG1.C - ИМЯ файла с программой.
#include <stdio.h>
int main(void)
{
printf( "\n This is my first program!"); //вызов функции printf
return 0;
}
Результат выполнения программы:
This is my first program!
В первой строке текста программы - однострочный комментарий, начинающийся парой символов '//', заканчивающийся не изображаемым символом "конец строки". Между этими разделителями может быть помещен произвольный текст. В данном примере в комментарии указано имя файла prog1.c, в котором хранится исходный текст программы. В программе может использоваться и многострочный комментарий, который начинается с символов /* и заканчивается символами */.
Вторая строка является директивой препроцессора – указанием компилятору. Препроцессор - программа, специальная часть компилятора, обеспечивающая предварительную обработку входных данных для основной программы. Директивы могут быть разными. Например, позволяющие подключить стандартные библиотеки функций используемого компилятора или оттранслированные модули, написанные самим программистом. В данном случае помещена команда (директива) препроцессора #include, указывающая препроцессору включить в компилируемый файл содержимое другого файла. В этом примере требуется от компилятора включить информацию, хранящуюся в файле stdio.h, который является стандартной частью всех пакетов компилятора языка С. Этот файл обеспечивает поддержку ввода с клавиатуры и отображения вывода. Другими словами, это «подключаемое» содержимое подставляется на место директивы #include.
Если программист хочет использовать в своей программе такие стандартные функции как косинус (cos), синус (sin), степень числа (pow), то он должен использовать директиву #include <math.h>, для использования функции ожидания ввода любого символа с клавиатуры без отображения на экране (getch)- директиву #include <conio.h>, функцию конкатенации строк (strcat)- директиву #include <string.h>. Если в программе, например, используется функция cos (функция вычисления косинуса), но не указана директива include <math.h>, то на этапе компиляции возникнет ошибка. Функциональное значение основных заголовочных файлов:
math.h -математические функции;
сtype.h - функции проверки и преобразования символов;
stdio.h - функции ввода вывода для стандартных файлов;
string.h, stdlib.h— функции для работы со строками;
alloc.h, stdlib.h - функции для выделения и освобождения памяти;
conio. h - функции для работы с терминалом в текстовом режиме;
graphics.h - функции для работы с графикой.
и др.
Замечание: директива не заканчивается точкой с запятой.
Третья строка является заголовком функции с именем main. Программа состоит из единственной функции с названием main(). Функция – фрагмент кода программы, выполняющий логически законченное действие.
Круглые скобки, идущие вслед за именем main, показывают, что main() есть имя функции. Если их нет, компилятор не сможет отличить имя переменной или другого элемента программы от имени функции. Слово int, предваряющее имя функции, указывает на то, что эта функция возвращает значение типа int (то есть результатом ее работы будет целое число), void говорит о том, что функция main не принимает никаких аргументов. Эти детали будут подробно рассмотрены далее. Такая запись определения функции main соответствует стандарту ISO/ANSI. До появления этого стандарта void опускалось, еще ранее использовалась запись void main().
Программа на языке С начинается с выполнения функции main. И первым исполняемым оператором становится первый оператор функции main(). Программа может состоять из множества функций, классов и прочих элементов, но при ее запуске управление всегда передается функции main(). Если в программе нет такой функции, то при попытке ее запустить будет выдано сообщение об ошибке.
Строка 4.Тело функции заключено в фигурные скобки. Они обязательны. В рассмотренном примере тело функции состоит только из двух операторов – printf и return. Первые две строки не входят в тело функции. Тело любой функции - это заключенная в фигурные скобки последовательность описаний, определений и операторов. Каждое описание, определение или оператор заканчивается символом "точка с запятой".
Строка 5. В теле функции main явных описаний констант и\или переменных нет, а есть оператор
printf( "\n This is my first program!"); //вызов функции printf
Это оператор задает действие по выводу фразы, заключенной в кавычки на экран.
Отметим, что обратная косая черта ‘\’ позволяет не только записывать символы, не имеющего графического изображения и некоторые другие, но и выводить символьные константы, явно задавая их коды в восьмеричном или шестнадцатеричном виде. Последовательность литер, начинающаяся с символа ‘\’ называют esc-последовательностями. Их допустимые значения приведены втаблице 1.
Таблица 1. Значения esc-последовательностей
Изображение | Смысл |
\a | Звуковой сигнал |
\b | Возврат на шаг (забой) |
\n | Перевод строки (новая строка) |
\r | Возврат каретки |
\t | Табуляция горизонтальная |
\\ | Обратная косая черта (\) |
\’ | Апостроф (‘) |
\” | Двойная кавычка (“) |
\? | Вопросительный знак |
\000 | Восьмеричный код символа (000 - любые восьмеричные символы) |
\xhh | Шестнадцатеричный код символа (hh – любые шестнадцатеричные символы) |
Строка 6.Оператор return 0 – оператор возврата является завершающим оператором рассматриваемой программы.