- •Т.Э. Шульга основы программирования на языке с
- •1. Структура программы на языке с
- •Задание 1. Вывод строки на экран с использованием esp-последовательности
- •2. Переменные. Основные типы данных
- •Задание 2. Описание переменных и преобразование типов
- •3. Ввод – вывод значений переменных
- •Задание 3. Форматирование вывода
- •4. Основные операции языка с
- •Заданиe 4. Простейшие вычисления
- •5. Конструкции выбора
- •Задание 5. Обработка введенного символа
- •Задание 6. Вычисление значения функции
- •Задание 7. Применение разветвляющихся алгоритмов при решении простейших задач
- •Задание 8. Mультиветвление
САРАТОВСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
им. Гагарина Ю.А.
Т.Э. Шульга основы программирования на языке с
Учебное пособие
Саратов 2012
1. Структура программы на языке с
Для того чтобы описать структуру программы, написанной на C, рассмотрим простейшую программу, выводящую на экран строку Hello, world.
// Program1.cpp
#include <stdio.h>
#include <conio.h>
void main()
{
printf("%s","\nHello, world\n");
getch();
}
В первой строке данной программы находится однострочный комментарий. В приведенном комментарии указано имя файла, в котором хранится исходный текст программы. В С комментарии могут быть заданы двумя способами. Для однострочных комментариев используют символы //, как в нашем примере. Для многострочных комментариев можно использовать символы /* , */, между которыми и должен находится сам текст комментария. В тексте комментария могут содержаться любые символы, а вся последовательность символов эквивалентна символу пропуска (например, символу пробела). Комментарии одного типа не могут быть вложенными, однако можно использовать символы // для того, чтобы закомментировать символы /*… */, а символами /*…*/можно закомментировать //.
Во второй и третьей строке программы помещены команды препроцессора (директивы) #include. Данная декрктива позволяет подключить стандартные библиотеки функций используемого компилятора или оттранслированные модули, написанные самим программистом. Директива #include имеет два формата:
#include <имя_файла>
#include “имя_файла”.
В первом случае имя_файла определяет текстовый (заголовочный) файл, содержащий прототипы (описания) той или иной группы стандартных для данного компилятора функций. Например, в нашем случае директива #include <stdio.h> обеспечивает включение стандартных функций ввода даннях с клавитуры и вывода на экран. Если программист хочет использовать в своей программе такие стандартные функции как косинус (cos), синус (sin), степень числа (pow), то он должен использовать директиву #include <math.h>, для использования функции ожидания ввода любого символа с клавиатуры без отображения на экране, то есть функции задержки экрана (getch) – директиву #include <conio.h>, функцию конкатенации строк (strcat)– директиву #include <string.h>. Если в программе, например, используется функция cos (функция вычисления косинуса), но не указана директива #include <math.h>, то на этапе компиляции возникнет ошибка. Ниже приведено функциональное значение основных заголовочных файлов:
math.h –математические функции;
ctype.h – функции проверки и преобразования символов;
stdio.h – функции ввода–вывода данных;
string.h, stdlib.h – функции для работы со строками;
alloc.h – функции для выделения и освобождения памяти;
conio.h – функции для работы с терминалом в текстовом режиме;
graphics.h – функции для работы с графикой.
Если имя_файла после директивы #include указано в кавычках, это означает, что используется не стандартный заголовочный файл, а файл, созданный самим программистом.
Четвертая строка программы является заголовком функции с именем main. Каждая программа должна содержать функцию с именем main, и работа программы начинается с выполнения этой функции. Перед именем main помещено служебное слово void – спецификатор типа, указывающий, что функция main в данной программе не возвращает никакого значения. Круглые скобки после main требуются в связи с синтаксисом заголовка любой функции и содержат список параметров. В нашем примере параметры не нужны и этот список пуст.
Тело любой функции в языке С – это заключенная в фигурные скобки последовательность описаний и операторов. Каждое описание и оператор заканчивается символом ‘;’. В данном примере в теле функции main нет явных описаний, а есть только один оператор
printf ("\nHello, world\n");
В соответствии с информацией, содержащейся в файле stdio.h, printf является именем функции, который обеспечивает вывод информации на экран монитора. (Поэтому, если строка #include <stdio.h> будет отсутствовать в программе, то имя printf будет воспринято как неизвестное на этапе компиляции программы). В нашем примере экран будет вывдена это строковая константа "\nHello, world\n". Строковая константа в языке С –это последовательность символов, заключенная в двойные кавычки. В строке символ обратной косой черты ‘\’, за которым следует другой символ, обозначает один специальный символ, в данном случае, ‘\n’ является символом новой строки. Таким образом, выводимые символы в данном случае состоят из символа перевода строки, символов Hello, world и еще одного символа перевода строки.
Отметим, что обратная косая черта ‘\’ позволяет не только записывать символы, не имеющего графического изображения и некоторые другие, но и выводить символьные константы, явно задавая их коды в восьмеричном или шестнадцатеричном виде. Последовательность литер, начинающаяся с символа ‘\’ называют esc–последовательностями (ескейп–последовательностями). Их допустимые значения приведены в таблице 1.
Методы организации вывода и ввода данных будут подробно рассмотрены в главе 3.
Последняя строка программы представляет собой вызов функции gecth() – функции задержки экрана до нажатия пользователем любой клавиши.
Таблица 1. Допустимые ESC–последовательности
Изображение |
Смысл |
\a |
Звуковой сигнал |
\b |
Возврат на шаг (забой) |
\n |
Перевод строки (новая строка) |
\r |
Возврат каретки |
\t |
Табуляция горизонтальная |
\\ |
Обратная косая черта (\) |
\’ |
Апостроф (‘) |
\” |
Двойная кавычка (“) |
\000 |
Восьмеричный код символа (000 – любые восьмеричные символы) |
\xhh |
Шестнадцатеричный код символа (hh – любые шестнадцатеричные символы) |