Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Функция форматного вывода на экран.



Для форматного вывода на экран используется функция

printf(строка формата, список вывода), где

¨ список вывода - перечисленные через ', ' выражения, значения которых хотим вывести на экран.

¨ строка формата - символьная строка, указывающая:

a) формат отображения этих значений на экране;

b)

спецификации формата
сопровождающий их текст.

Например,

список вывода
строка формата
printf(" \nЭтап %d длится %f секунд. ", i, (t-3.)/2.);

 

Функция printf последовательно выводит на экран символы строки формата. При этом символы входящих в строку спецификаций формата заменяются значениями выражений из списка вывода в порядке их следования. Для вывода значений каждого из имеющихся типов данных применяется своя спецификация формата:

Тип данного Спецификация формата
Целый %d или %nd (n - число)
Вещественный %f или %n.mf (n, m - числа)
Символьный %c
Строковый %s

Если i=2 и t=60. 0, то при выполнении оператора, указанного в примере, на экране будет напечатано с новой строки:

Этап 2 длится 28.500000 секунд.

Элементов списка вывода должно быть не меньше, чем спецификаций в строке формата. Типы элементов списка и спецификаций должны соответствовать друг другу. Несоответствия компилятор не выявляет, но будут неверными выводимые результаты.

Имеется возможность управлять формой выводимых на экран целых и вещественных чисел. Числа n и m в спецификациях формата задают соответственно общее количество позиций на экране (включая знак '-' и десятичную точку) и количество разрядов, выводимое после десятичной точки. Например, оператор

printf(" \nЭтап %3d длится %6.2f секунд. ", i, (t-3.)/2.);

выведет значение переменной i в 3-х позициях, а значение выражения (t-3.)/2. в 6 позициях с двумя разрядами после десятичной точки:

Этап ú ú 2 длится ú 28.50 секунд. (символами ú показаны пробелы, которые выводятся, если цифр в числе меньше, чем позиций, указанных в соответствующей спецификации).

Если заданных позиций не хватает для вывода числа, место для вывода отводится автоматически.

Функция ввода символа с клавиатуры.

Функция getch() приостанавливает выполнение программы до нажатия пользователем любой клавиши и возвращает введенный символ. В примере на экран выводится нажатая пользователем клавиша:

char sim;

sim=getch();

printf(" Нажата клавиша %c.", sim);

Составной оператор.

Иногда требуется выполнить несколько операторов там, где по правилам синтаксиса можно указать только один. Язык Си позволяет объединить эти операторы в один, заключив их в фигурные скобки:

{ Например: {
оператор1 a = 1;
оператор2 b += sin(a);
···················· c *= b;
} }

Такой оператор называется составным или блоком. После символа " }" символ "; " указывать не надо.

Операторы управления.

Операторы в программе выполняются последовательно один за другим. Операторы управления предназначены для изменения последовательности выполнения операторов. Блок-схемы этих операторов приведены в разделе 1.2.3.

Обратите внимание на сдвиги на две позиции вложенных в операторы управления конструкций при записи их в тексте программы. Такая запись не предусмотрена синтаксисом языка, однако позволяет визуально структурировать программу и облегчает понимание и проверку правильности алгоритма. Поэтому мы настаиваем на применении такого приема.

Условные операторы.

3.1.1 Оператор if - else.

Условный оператор if - else предназначен для изменения последовательности выполнения операторов программы в зависимости от выполнения условия (т.е. для принятия решений) и имеет вид (синтаксис):

if (условие) Например: if (x> y)
оператор1   {max=x; y=0; }
[else   else
оператор2]   {max=y; x=0; }

Оператор if выполняется следующим образом (семантика):

1. Вычисляется условие. 2. Если оно истинно (¹ 0), то выполняется оператор1. Иначе Если есть else-часть выполняется оператор2. Иначе переход к следующему после if оператору    

В примере в переменную max заносится большее из x и y, а меньшее обнуляется (см.2.4.3.3). Скобки {}, образующие блоки, здесь существенны, поскольку по синтаксису после if и else должен стоять только один оператор.

Операторы, входящие в if, сами могут содержать оператор if (т.е. оператор if может быть вложенным). Если у вложенного if нет своей else-части, то можно неоднозначно толковать, куда относится else-часть - ко внешнему или внутреннему if. В Си else всегда относят к ближайшему if, у которого нет своего else. Для изменения этого порядка используют блоки.

Пример 7. Сравним для иллюстрации два оператора if:

if (a> b)   if (a> b)
if(c< 0)   { if(c< 0)
x += 3;   x += 3;
else   }
x += 2;   else
    x += 2;

 

В первом операторе else относится к внутреннему if, а во втором - к внешнему. Совет: всегда заключайте внутренний if в скобки.

3.1.2 Оператор else - if.

Для многоступенчатого принятия решений используют конструкцию else-if (синтаксис):

if (условие1)

оператор1

else if (условие2)

оператор2

else if (условие3)

оператор3

·························

[else оператор]

Семантика: условия операторов “ if” проверяются сверху вниз. Как только встречается истина, выполняется соответствующий оператор и последовательность проверок прекращается. Последняя else-часть срабатывает, если все предыдущие условия ложны. Эта часть может отсутствовать.

Пример 8. Пусть reit - рейтинг студента после сессии. Предлагаемый оператор показывает, кто он такой.

if (reit > = 45)

cout < < " Вы - отличник! \n";

else if (reit > 34)

cout < < " Вы неплохо учитесь! \n";

else if (reit > 25)

{ if (reit > 29)

cout < < " Вам нужно подтянуться! \n";

else

cout < < " Такие инженеры нам не нужны! \n";

}

else

cout < < " Вас давно ждут в призывном пункте! \n ";


Поделиться:



Популярное:

Последнее изменение этой страницы: 2016-07-14; Просмотров: 530; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.015 с.)
Главная | Случайная страница | Обратная связь