Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Инорм и програм - Метод. указания-3-й семестр.doc
Скачиваний:
10
Добавлен:
21.11.2018
Размер:
1.58 Mб
Скачать

Оператор форматного вывода printf

Функция printf() описана в заголовочном файле stdio.h и имеет следующий прототип:

int printf(char *format, ...);

Управляющая строка (format) содержит два типа информации: символы, которые непосредственно выводятся на экран, и спецификаторы формата, определяющие, как выводить аргументы. Спецификатор формата начинается с символа %, за которым следует код формата. Спецификаторы формата следующие:

%с - символ,

%d - целое десятичное число,

%i - целое десятичное число,

%е - десятичное число в виде х.хх е+хх,

%Е - десятичное число в виде х.хх Е+хх,

%f - десятичное число с плавающей занятой хх.хххх,

%F - десятичное число с плавающей запятой хх.хххх,

%g - %f или %е, что короче,

%G - %F или %Е, что короче,

%о - восьмеричное число,

%s - строка символов,

%u - беззнаковое десятичное число,

%х - шестнадцатеричное число например, 5a5f,

%Х - шестнадцатеричное число например, 5A7F,

%% - символ %,

%р - указатель,

Кроме того, к спецификаторам формата могут быть применены модификаторы l и h, например:

%ld - печать long int,

%hu - печать short unsigned,

%Lf - печать long double.

Между знаком % и форматом команды может стоять целое число. Оно указывает на наименьшее поле, отводимое для печати. Если строка или число больше этого поля, то строка или число печатается полностью, игнорируя ширину поля. Нуль, поставленный перед этим числом, указывает на необходимость заполнения неиспользованных мест поля нулями. Например, использование printf("%05d", 15);

даст результат 00015.

Чтобы указать число десятичных знаков после целого числа, ставится точка и целое число, указывающее на количество десятичных знаков. Когда такой формат применяется к целому числу или к строке, то число, стоящее после точки, указывает на максимальную ширину поля печати.

Выравнивание выдачи производится по правому краю поля. Если мы хотим выравнивать по левому знаку поля, то сразу за знаком % следует поставить знак минус (-). В прототипе функции многоточием обозначен список аргументов - переменных или констант, которые следуют через запятую и подлежат печати в соответствующем формате, следующем по порядку.

Рекомендации по выполнению лабораторной работы

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

Для решения первой части задания необходимо в программе определить переменные указанных типов, присвоить одной из них (первой в цепочке) необходимое значение (максимальное для соответствующего типа), а потом присвоить значение этой переменной переменной следующего типа, потом значение новой переменной – переменной другого типа и т.д. После выполнения всех присваиваний для одной величины нужно распечатать значения всех переменных, а потом повторить описанные выше действия для минимального и произвольного значений. Таким образом, в результате выполнения первой части лабораторной работы должно получиться 12 строк результатов – по 4 значения в каждой строке.

При выполнении второго задания лабораторной работы необходимо присвоить переменной заданного типа указанное значение (максимальное или минимальное), распечатать его, затем увеличить (уменьшить) переменную на единицу и распечатать полученное значение.

Содержание отчета

Отчет по лабораторной работе должен содержать:

  • задание лабораторной работы

  • текст программы

  • результаты работы программы

Лабораторная работа 3

Цель работы

Изучение операций языка Си.

Задание

  1. Дано число a. Не используя никаких операций, кроме умножения и присваивания, составить программу, вычисляющую

    Задание

    1

    a7 за 4 операции умножения;

    2

    a15 за 5 операций умножения;

    3

    a8 за 3 операции умножения;

    4

    a21 за 6 операций умножения;

    5

    a13 за 5 операций умножения;

    6

    a28 за 6 операций умножения.

  2. Используя тернарную операцию выражение1 ? выражение2 : выражение3 и необходимые арифметические операции, составить программу, выполняющую следующие действия:

Задание

1

Для заданных целых x,y,z вычислить min(x,y,z) и max(x+y+z,xyz).

2

Для заданных целых x,y заменить меньшее из них на (x+y)/2 , а большее ‑ на x*y.

3

Если сумма заданных вещественных x,y,z меньше 1, то меньшее из них заменить полусуммой остальных, в противном случае меньшее из x и y заменить полусуммой остальных.

4

для заданных целых x,y вычислить z = x-y, если x>y и z= y-x+1, если x<=y

5

для заданных целых x,y,z удвоить их, если x>y>z и заменить их абсолютными значениями в противоположном случае.

6

для заданных целых x,y,z вычислить max(x,y,z) и min2(x+y+z/2,xyz)+1.