КАТЕГОРИИ: Архитектура-(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) |
Структура программы. Типы с плавающей точкой
Переменные Тип void Типы с плавающей точкой Стандарт С++ определяет три типа данных для хранения вещественных значений: float, double и long double. Все они имеют знак. Внутреннее представление вещественного числа состоит из мантиссы и порядка. Длина мантиссы определяет точность числа, а длина порядка – его диапазон. Константы с плавающей точкой имеют по умолчанию тип double. Можно явно указать тип константы с помощью суффиксов F, f (float) и L, l (long). Например, константа 2E+6L имеет тип long double. Для вещественных типов в таблице 1.2 приведены абсолютные величины минимальных и максимальных значений.
Тип void используется для определения функций, которые не возвращают значения, для указания пустого списка аргументов функции, как базовый тип для указателей и в операции приведения типов.
Любая программа работает с данными. В простейшем случае данные хранят в переменных. Переменная – это именованная область памяти компьютера, у переменной есть тип, имя и значение. Имя служит для обращения к области памяти, в которой хранится значение, тип определяет диапазон значений и допустимые операции. Во время выполнения программы значение переменной можно изменять. Перед использованием любая переменная должна быть определена. Пример описания целой переменной с именем a и вещественной переменной x:
int a; float x;
Рассмотрим общий вид оператора описания переменных: [класс_памяти] [const] тип имя [инициализатор];
Классы памяти будут рассмотрены позднее в теме 5 Функции. С помощью инициализатора можно присвоить переменной начальное значение (инициализировать переменную), например: short int a = 1; Модификатор const показывает, что данное описание определяет не переменную, а именованную константу. Константа должна быть обязательно инициализирована при объявлении. В одном операторе можно определить несколько величин одного типа, разделяя их запятыми. Примеры:
const char C = '&'; // символьная константа С const int y = 56; // целая константа y char s1, s2 = 'd'; // символьные переменные s1 и s2 // инициализация относится только к s2 float a = 0.22, b=3, sum; // вещественные переменные
Программа на языке С++ состоит из функций, описаний и директив препроцессора. О директивах мы будем говорить позже. Функция – это законченный фрагмент кода, к которому можно обратиться по имени (вызвать функцию). Функция может получать аргументы и возвращать в вызывающий код вычисленное в ней значение. Например, вызов функции, вычисляющей синус угла, может выглядеть примерно так же, как в математике: y = sin(x);. Одна (и только одна) функция программы должна иметь имя main. Выполнение программы начинается с первого оператора этой функции. Ее вызывает на выполнение исполняющая система. Описания представляют собой определения и объявления элементов программы: переменных, функций, классов, типов и т. д. Любой элемент программы должен быть определен только один раз. Это правило в стандарте называется правилом одного определения (one definition rule). Объявление может встречаться в программе столько раз, сколько необходимо. ПРИМЕЧАНИЕ Такие требования естественны: ведь определения требуют от компилятора конкретных действий (например, выделения памяти), а объявления служат для информации. Итак, программа, состоящая из одного модуля, имеет следующую структуру:
директивы препроцессора описания int main() { операторы главной функции } В общем случае программа состоит из нескольких модулей, каждый из которых может содержать все рассмотренные элементы. Любая программа каким-либо образом взаимодействует с внешним миром. В простейшем случае это работа с консолью: ввод с клавиатуры и вывод на экран. В языке С++ нет встроенных средств ввода/вывода – он осуществляется с стандартных библиотечных функций. Рассмотрим пример.
// используются функции ввода/вывода в стиле С #include <stdio.h> // 1 int main() // 2 { const double course = 36.9; // 3 double sum; // 4 printf("\n Введите сумму в рублях "); // 5 scanf("%lf", &sum); // 6 double euro = sum / course; // 7 printf("\n В рублях: %lf В евро: %lf\n", sum, euro); // 8 return 0; // 9 } В первой строке записана директива препроцессора. Директива вида #include <имя_файла>
вставляет содержимое указанного файла (он называется заголовочным) в ту точку исходного файла, где она расположена. В данном случае директива задает включение файла <stdio.h>, в котором содержатся описания используемых в программе функций стандартной библиотеки ввода/вывода. Строка 2 представляет собой заголовок главной (и единственной) функции main(), в строках 3 и 4 описаны две величины с плавающей точкой: константа course и переменная sum. Строка 5 является приглашением к вводу. Функция printf переводит курсор на следующую строку в соответствии с управляющей последовательностью \n, после чего на экран выводится строка "Введите сумму в рублях: ". Функция scanf в строке 6 заносит введенное с клавиатуры число в переменную sum. Знак & обозначает операцию получения адреса переменной sum. Это нужно чтобы функция scanf могла записать в эту переменную введенное с клавиатуры значение. В процессе ввода величина преобразуется из последовательности символов, набранных на клавиатуре, во внутреннее машинное представление числа с плавающей точкой и помещается в ячейку памяти, зарезервированную для переменной sum. В строке 7 определяется переменная euro, которая инициализируется результатом деления переменной sum на переменную course. Оператор в строке 8 выводит на экран указанную в нем строку, заменив спецификации преобразования %lf на значения переменных sum и euro. Здесь происходит обратный процесс: все величины, кроме символов и строк, при выводе преобразуются из внутренней машинной формы представления в последовательность символов. Под величину отводится ровно столько позиций, сколько требуется для ее вывода. В строке 9 в вызывающую среду возвращается значение 0 – признак успешного завершения программы. Оператор return 0 в главной функции записывать не обязательно, поскольку при его отсутствии значение 0 будет возвращено автоматически. Во всех последующих примерах этот оператор опущен для экономии места.
Дата добавления: 2015-04-30; Просмотров: 330; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |