Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Выводимого значения в функции printf




Тип выводимого значения Назначение
i, d Знаковое десятичное целочисленное значение
u Беззнаковое десятичное целочисленное значение
o Беззнаковое восьмеричное целочисленное значение
x Беззнаковое шестнадцатеричное целочисленное значение, цифры a, b, c, d, e, f обозначаются маленькими латинскими буквами.
X Беззнаковое шестнадцатеричное целочисленное значение, цифры A, B, C, D, E, F обозначаются большими латинскими буквами.
f Вещественное значение в формате с фиксированной точкой.
e Вещественное значение в экспоненциальном формате. Символ e выводится маленькой буквой.
E Вещественное значение в экспоненциальном формате. Символ E выводится большой буквой.
g Вещественное значение в экспоненциальном формате или в формате с фиксированной точкой. Символ e выводится маленькой буквой.Экспоненциальный формат используется, если значение экспоненты меньше, чем -4, или больше либо равно значения точности. Незначащие нули отбрасываются, десятичная точка выводится в случае необходимости.
G Вещественное значение в экспоненциальном формате или в формате с фиксированной точкой. Символ E выводится большой буквой.Экспоненциальный формат используется, если значение экспоненты меньше, чем -4, или больше либо равно значения точности. Незначащие нули отбрасываются, десятичная точка выводится в случае необходимости.
a Знаковое шестнадцатеричное вещественное значение в экспоненциальном формате, цифры a, b, c, d, e, f обозначаются маленькими латинскими буквами. В среде Microsoft Visual Studio 6.0 использование такого типа выводимого значения невозможно.
A Знаковое шестнадцатеричное вещественное значение в экспоненциальном формате, цифры A, B, C, D, E, F обозначаются большими латинскими буквами. В среде Microsoft Visual Studio 6.0 использование такого типа выводимого значения невозможно.
с Целочисленнное значение интерпретируется как 1-байтный код символа.
С Целочисленнное значение интерпретируется как 2-байтный код символа. Этот тип выводимого значения характерен только для компиляторов Microsoft.
s Предназначен для вывода строки 1-байтных символов. Если указатель на строку равен NULL, то на экран выведется (null).
S Предназначен для вывода строки 2-байтных символов. Если указатель на строку равен NULL, то на экран выведется (null). Этот тип выводимого значения характерен только для компиляторов Microsoft.
p Предназначен для вывода адреса аргумента в шестнадцатеричном формате. Этот тип выводимого значения характерен только для компиляторов Microsoft.

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

Функция printf возвращает либо количество выведенных символов, либо целое отрицательное число в случае ошибки.

 

Для ввода данных с клавиатуры (вообще говоря - для ввода со стандартного входного потока stdin, ввод из которого, как правило, соответствует вводу с клавиатуры) в консольных приложениях, написанных на языке C++, может применяться функция scanf. Синтаксис ее вызова во многом схож с синтаксисом вызова функции printf и в общем виде выглядит следующим образом:

 

scanf(”Строка форматного ввода”, обязательный_перечень_адресов);

При этом:

1. Строка форматного ввода - представляет собой обычную строковую константу, которая должна содержать специальные спецификаторы форматного ввода. Кроме этого эта строка может содержать другие символы, например, пробел, \t, \n, которые показывают, что эти символы будут использоваться как разделители между значениями и не могут входить в считываемое значение.

2. Обязательный_перечень_адресов - представляет собой список адресов переменных, с которыми будут связаны прочитанные значения. Для получения адреса переменной (что является обязательным) используется унарная операция &. Количество адресов равно количеству спецификаторы форматного ввода.

3. Спецификатор форматного ввода во многом похож на спецификатор форматного вывода и вобщем виде выглядит следующим образом:

%[*][ширина поля ввода][{h | l | ll | I64 | L}]тип_вводимого_значения

В этой записи:

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

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

- * - означает, что следующее прочитанное значение будет считано, интерпретировано, но связано НЕ БУДЕТ.

- ширина поля вывода - неотрицательное целое десятичное число, которое задает минимальную длину поля вывода. Если количество выводимых символов больше чем заданная длина, то поле вывода автоматически расширяется.

- префикс типа вводимого значения - совпадает с аналогичными значениями, описанными в табл. 12.

- тип выводимого значения - совпадают с аналогичными значениями, описанными в табл. 13 с некоторым исключениями:

a) Типы g, G, f, e, E приводят к тому, что будет прочитано значение типа float, которое должно быть связано с переменной такого типа. Такими образом, соответствующим аргументом в списке адресов должен быть адрес переменной (элемента массива и т.п.) типа float, в противном случае связывание значения не произойдет.

b) Типы a, A, p для функции scanf не применяются.

Функция scanf возвращает либо количество прочитанных и связанных значений, либо EOF (константа, соответствующая значению -1), что является признаком конца файла (строки) или ошибки.

 

Следует отметить, что в языке C++ для ввода/вывода с использованием стандартных потоков обычно применяются экземпляры классов istream и ostream cin и cout, соответственно, и перегруженные операторы >> и <<, для чего нужно выполнить подключение iostream.h (т.е. написать строку #include <iostream.h>). Например,

cin >> a >> b;

cout << a << endl << b << endl;

В описанном примере в первой строке вводятся два значения, которые будут связаны переменными a и b. Считанные значения приводятся к типу этих переменных, соответственно, если это возможно (например, если при чтении числа ввести буквенные символы, то, начиная с них, все остальные символы будут проигнорированы). Во второй строке значения переменных выводятся на экран, при этом endl означает переход на новую строку. Достоинством этого подхода является возможность определения ввода из потока или вывода в поток для пользовательских типов данных. Недостатком - неудобство управления форматированием.

 

При выполнении лабораторных работ необходимо использовать вышеописанные механизмы ввода/вывода с помощью функций scanf / printf.

Задание

Написать программу для решения квадратного уравнения. Корни квадратного уравнения вида могут вычисляться по следующей формуле:

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

 

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

2. Для получения 80% от числа баллов, отводимых на лабораторную работу, необходимо корректно реагировать на наличие нулей среди коэффициентов квадратного уравнения и на отрицательное значение дискриминанта (в этом случае должно быть выведено сообщение об отсутствии решений в поле действительных чисел).

3. Для получения 65% от числа баллов, отводимых на лабораторную работу, рассматривать частные случаи не нужно.

 




Поделиться с друзьями:


Дата добавления: 2017-01-14; Просмотров: 420; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.