
Ввод-вывод данных
Функцции ввода-вывода позволяют читать (копировать) данные из файлов в оперативной памяти и получать их с устройства ввода, например с клавиатуры, и записывать (копировать) данные из оперативной памяти в файл или выводить на различные устройства, например, на экран дисплея или принтер. Для вывода на экран дисплея сообщений и значений переменных служит функция printf.
При использовании данной функции следует помнить, что:
-
первым параметром функции printf является строка вывода, определяющая выводимый текст и формат вывода значений переменных, имена которых указаны в качестве остальных параметров функции;
-
формат вывода значений переменных задается при помощи спецификатора преобразования — последовательности символов, начинающейся с символа %;
-
при выводе числовых значений наиболее часто используются следующие спецификаторы: &i — для вывода целых со знаком, &u — для вывода беззнаковых целых, %f — для вывода дробных, в виде числа с плавающей точкой, %n.mf — для вывода дробных в формате с фиксированной точкой, где n — количество цифр целой части, m — дробной;
-
некоторые символы могут быть помещены в строку вывода только как последовательность других, обычных символов: \n — новая строка, \t- — табуляция, \" — двойная кавычка, \\ — символ \;
-
наряду с функцией printf, для вывода на экран сообщений можно использовать функцию puts, которая после вывода текста автоматически переводит курсор в начало следующей строки;
-
чтобы сразу после окончания работы программы окно, в котором программа работала, не было автоматически перекрыто другим окном, например окном редактора текста среды разработки или панелями TotalCommander, в конец программы нужно вставить следующие две инструкции:
printf ( "Для завершения нажмите клавишу <Entег> " };
qetc() ;
Для ввода исходных данных с клавиатуры предназначена функция scanf. При использовании данной функции следует помнить, что:
-
первым параметром функции scanf является управляющая строка (или строка форматирования), остальные параметры — адреса переменных, значения которых должны быть введены;
-
управляющая строка представляет собой заключенный в двойные кавычки список спецификаторов: %i — для ввода целых чисел со знаком, %u — для ввода целых беззнакомых целых %f — для ввода дробных чисел, %с - для ввода символа, %s — для ввода строки;
-
использование имени переменной, а не ее адреса в качестве параметра функции scanf является типичной ошибкой начинающих программистов. Компилятор эту ошибку не обнаруживает (она является логической, а не синтаксической ошибкой).
Программы с линейной структурой
Программы с линейной структурой являются простейшими и используются, как правило, для реализации простых вычислении по формулам. В таких программах инструкции выполняются последовательно, одна за другой;
Алгоритм программы с линейной структурой может быть представлен в виде схемы, показанной на рисунке 1.
Рисунок 1 – Алгоритм линейного вычислительного процесса
Программы с разветвленной структурой
Как правило, в программах не удается ограничиться операторами присваивания. Для большинства реально используемых алгоритмов характерно широкое использование инструкций управления ходом вычислительного процесса – разветвлений и циклов. Разветвления вычислений реализуются условным оператором if. Он имеет сокращенную (без else) или полную (с else).
Рисунок 2 – Схема сокращенной и полной формы условного оператора if
Синтаксис сокращенной формы условного оператора
if (B) S;
Если B истинно, т.е.не равно нулю, то оператор S выполняется, если ложно пропускается.
Полная форма условного оператора if позволяет выбрать для выполнения один из двух возможных альтернатив процесса вычислений.
Синтаксис полной формы условного оператора
if (B) S1; else S2;
Если B истинно, выполняется оператор S1, а оператор S2 пропускается, а если B ложно, то выполняется S2, а S1 пропускается. Перед ключевым словом else точка с запятой:
-
ставится, если S1 – простой оператор, и
-
не ставится, если S2 – составной оператор.
Примеры условных операторов полной формы:
1) if (x < 0) //Полная форма и простые операторы
y = 1;
else
y = 2;
2) if ( a > b) //Полная форма и составные операторы
{ x = 0; y = 1;}
else
{ x = 1; y = 0;}