Студопедия

КАТЕГОРИИ:


Архитектура-(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; Просмотров: 307; Нарушение авторских прав?; Мы поможем в написании вашей работы!


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



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




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