Сделай Сам Свою Работу на 5

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





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

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 ";

 








Не нашли, что искали? Воспользуйтесь поиском по сайту:



©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.