Лекция 2
Функции ВВода и вывода данных. Структура программы
Цель учебная: Ознакомиться со структурой программы и функциями ввода/вывода языка программирования С.
План
1. Структура программы С
2. Комментарии
3. Функция форматированного вывода
4. Функция ввода
Домашнее задание: Самостоятельная работа №1
Структура программы
директивы препроцессора void main()
{
определения объектов;
исполняемые операторы;
}
#include < имя заголовочного файла >
Директива include позволяет вставить в текст программы описания из указанного заголовочного файла. Функция с фиксированным именем main является главной функцией программы, без которой программа не может быть выполнена. Имя этой главной функции для всех программ одинаково (всегда main) и не может выбираться произвольно.
Определения вводят объекты, необходимые для представления в программе обрабатываемых данных. Примером таких объектов служат именованные константы и переменные разных типов. Описания уведомляют компилятор о свойствах и именах объектов и функций, определенных в других частях программы. Операторы определяют действия программы на каждом шаге ее выполнения. Каждое определение, описание и каждый оператор завершается символом (точка с запятой).
Комментарии и пробельные символы
В языке С комментарии начинаются парой символов /* а заканчиваются */. Такой комментарий может занимать сколько угодно строк и аналогичен паскалевскому. В С++ к этим комментариям добавились другие, которые начинаются с двух символов // и заканчиваются концом строки.
Например:
// это комментарий
// это еще комментарий
Вложенные комментарии одного типа не допускаются.
Функция форматированного вывода.
Достаточно часто для вывода информации в программах используется функция printf(). Она переводит данные из внутреннего кода в символьное представление и выводит полученные изображения символов результатов на экран дисплея. При этом у программиста имеется возможность форматировать данные, т.е. влиять на их представление на экране дисплея.
Оператор вызова функции printf() можно представить так:
printf {форматная строка, список_аргументов)\
Форматная строка ограничена двойными кавычками и может включать произвольный текст, управляющие символы и спецификации преобразования данных. Список аргументов (с предшествующей запятой) может отсутствовать. Именно такой вариант использован в классической первой программе на языке С:
#include <stdio.h>
void main()
{
printf ("\n Здравствуй, Мир!\п");
}
Итак, произвольный текст (не спецификации преобразования и не управляющие символы) непосредственно без изменений выводится на экран. Управляющие символы (перевод строки, табуляция и т.д.) позволяют влиять на размещение выводимой информации на экране дисплея.
Спецификации преобразования данных предназначены для управления формой внешнего представления значений аргументов функции printf(). Обобщенный формат спецификации преобразования имеет вид:
% ширина поля.точность спецификатор
Среди элементов спецификации преобразования обязательными являются только два - символ '% ' и спецификатор.
В задачах вычислительного характера этой главы будем использовать спецификаторы:
d - для целых десятичных чисел (тип int);
f - для вещественных чисел в форме с фиксированной точкой (типы float и double);
е - для вещественных чисел в форме с плавающей точкой (с мантиссой и порядком) - для типов double и float.
В список аргументов функции printf() включают объекты, значения которых должны быть выведены из программы. Это выражения и их частные случаи - переменные и константы. Количество аргументов и их типы должны соответствовать последовательности спецификаций преобразования в форматной строке.
Для вывода числовых значений в спецификации преобразования весьма полезны "ширина поля" и "точность".
Ширина поля - целое положительное число, определяющее длину (в позициях на экране) представления выводимого значения.
Точность - целое положительное число, определяющее количество цифр в дробной части внешнего представления вещественного числа (с фиксированной точкой) или его мантиссы (при использовании формы с плавающей точкой).
Некоторые невидимые при печати символы, одинарные и двойные кавычки, а также обратная косая черта записываются двумя символами, первый из которых - обратная косая черта. Например, символ новой строки запишется как '\n'. Такие двойные символы называются управляющими последовательностями или эскейп-последовательностями. К ним относятся, кроме новой строки:
\r - возврат каретки
\t - горизонтальная табуляция
\v - вертикальная табуляция
\a - звонок
\\ - обратная косая черта
\? - знак вопроса
\' - одинарная кавычка
\" - двойная кавычка
Ввод данных.
Для ввода данных с клавиатуры в программе будем использовать функцию
scanf {форматная строка, список аргументов)'.
Функция scanf() выполняет "чтение" кодов, вводимых с клавиатуры. При этом программист может влиять на правила интерпретации входных кодов с помощью спецификаций форматной строки.
И форматная строка, и список аргументов для функции scanf() обязательны. Форматную строку для функции scanfQ будем формировать из спецификаций преобразования вида: % спецификатор
. Для ввода числовых данных используются спецификаторы:
d - для целых десятичных чисел (тип int);
и - для целых десятичных чисел без знака (тип unsigned int); я
f - для вещественных чисел (тип float);
е - для вещественных чисел (тип float).
В отличие от функции printf() аргументами для функции scanf() могут быть только адреса объектов программы, в частном случае - адреса ее переменных. Не расшифровывая понятие адреса (адресам и указателям будет посвящена гл. 4), напомним, что в языке Си имеется специальная унарная операция & получения адреса объекта:
& имя объекта
Контрольные вопросы
1. Какую структуру имеет программа Языка С?
2. Что такое комментарий?
3. Как записывается много строчный комментарий?
4. Описать формат функции printf.
5. Для чего предназначена функция scanf?