КАТЕГОРИИ: Архитектура-(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) |
Имя функции max3– это идентификатор
Определение функции описывает, как она работает, т.е. какие действия надо выполнить, чтобы получить искомый результат. Определение функции состоит из заголовка и тела. Определение функции задает: - тип возвращаемого значения, - имя функции, - типы и число формальных параметров, - объявления локальных переменных, - операторы (тело функции), определяющие действие функции. Функция выполняет определенные действия и возвращает в качестве результата значение в вызывающую программу. Оно называется возвращаемым значением. Тип этого значения объявляется в заголовке функции. Об отсутствии возвращаемого значения сообщают ключевым словом void. Действия, которые выполняет функция, составляют ее тело; тело заключается в фигурные скобки. Подпрограммы бывают двух типов: процедуры и функции. В С и С ++ есть только функции. Любая программа на C++ состоит из функций, одна из которых должна иметь имя main (с нее начинается выполнение программы). Описание функции имеет следующий вид: [модификаторы] тип_возвр_значения имя_фукции([формальн_параметры]) {тело_функции} Функцию можно рассматривать как операцию, определенную пользователем. Операнды функции, или формальные параметры, задаются в списке параметров через запятую. Список параметров заключается в круглые скобки. Через параметры в функцию можно передавать значения. Параметр описывает тип значения, которое будет передано в функцию при ее вызове. При решении задач довольно часто встречается ситуация, когда приходится многократно повторять одни и те же группы операторов, или требуется выполнить одни и те же вычисления, но с различными данными. Чтобы облегчить процесс программирования таких задач, в языки программирования было введено понятие подпрограмм. Подпрограмма– это именованная группа операторов, оформленная специальным образом, которая может вызываться по имени. При вызове подпрограммы управление вычислительным процессом передается подпрограмме. После выполнения подпрограммы осуществляется возврат на оператор основной (вызывающей) программы, следующий за вызовом подпрограммы.
Для явного преобразования типа выражения используется оператор преобразования типа: Синтаксис: (тип) выражение где в скобках – один из простых типов данных. (int)(1.5 / 0.3); // тип int (float)(1.5 / 0.3); // тип float В выражении приоритет преобразования типов данных приравнивается к приоритету унарных операторов. Такое приведение типов называется неявным. Стиль приведения на С поощряет неявное преобразование типов данных. Любое арифметическое выражение, включающее операнды, типы которых не превышают int, перед вычислением всегда преобразовывается в тип int. Составные операторы присваивания Остальные операторы будут рассмотрены позднее. В первом случае вычисляется размер для значения выражения, во втором – размер любой переменной заданного типа. Рассмотрим примеры (предполагается, что переменная t имеет тип int, а переменная f – тип float). Что вычисляется в следующем операторе? Lt; 2) // =0 X < y) || (x > =y) // =1 Примеры: (x < y) && (x > y) // =0 Сравнивать можно операнды любого типа, но либо они должны быть оба одного и того же встроенного типа, либо между ними должна быть определена соответствующая операция сравнения, сравнение на равенство и неравенство может быть для двух величин любого типа. Результат сравнения – логическое значение trueили false. Операторы сравнения и логические операторы не изменяют значения своих операндов, а только вычисляют значение ложь или истина.
Логические операторы
Условный оператор |
|
|
Примеры выражений:
(x + y) – 12*sin(с)
Sqrt(c*c – a*a)
Abs(s1–s2)/(3*x+7*y*z)–1/(sqr(a)+sqr(b))
Sin(x*x)+cos(2*pi–alpha)
Приоритет операций
Приоритетом операции называется очередность выполнения операции в выражении, в котором должно быть выполнено несколько операций. Так как в С++ операции задаются с помощью операторов, можно говорить о приоритете операторов. Далее приведены основные операторы С++, сгруппированные в порядке убывания приоритетов:
разрешение области действия :: умножение * меньше <
больше >
меньше или равно <=
больше или равно >=
равно ==
не равно !=
поразрядное логическое И &
поразрядное исключающее ИЛИ ^
поразрядное логическое ИЛИ |
логическое И &&
логическое ИЛИ ||
тернарный условный оператор ?:
присваивание = операция последовательного вычисления запятая ,
постфиксный инкремент ++
постфиксный декремент --
----------------------------------------------- логическое отрицание! Если в выражение входят константы и перемненные различных типов, они последовательно, по ходу выполнения вычислений, преобразуются к одному, "покрывающему" типу (типу с наибольшим диапазоном значений.). Последовательность типов в С++ от "покрывающих" к "покрываемым": Вызов этой функции в головной программе:
-----------------------------------------------
индексация [ ]
вызов функции и подвыражение ()
доступ к члену структуры.
доступ к члену структуры через указатель ->
префиксный инкремент ++
префиксный декремент --
------------------------------------------------
выделение памяти new
освобождение памяти delete
освобождение памяти из-под массива delete[ ]
разыменование *
взятие адреса &
унарный +
унарный -
логическое отрицание!
поразрядное логическое НЕ ~
получение размера sizeof
получение типа typeid
преобразование типа: (type), const_cast, dynamic_cast, reinterpret_cast, static_cast
-----------------------------------------------
деление /
остаток от деления %
-----------------------------------------------
сложение +
вычитание –
-----------------------------------------------
поразрядный сдвиг влево <<
поразрядный сдвиг вправо >>
-----------------------------------------------
-----------------------------------------------
-----------------------------------------------
-----------------------------------------------
-----------------------------------------------
-----------------------------------------------
-----------------------------------------------
-----------------------------------------------
-----------------------------------------------
*= /= %= += -= <<= >>= &= ^=
-----------------------------------------------
Сокращенный вариант:
Приоритет операторов
1. Вычисления в круглых скобках
2. Вычисления значений функций
3. Унарные операторы:
! -(изменение знака) +
4. Операторы типа умножение: * / %
5. Операторы типа сложения: + -
6. Операторы сдвига: << >>
7. Операторы отношения:
< <= > >= = =!=
8. Оператор &
9. Оператор ^
10.Оператор |
11.Оператор &&
12.Оператор ||
13.Условный оператор?:
14. Оператор,
Порядок вычисления операторов
В С++ все операторы выполняются (имеют ассоциативность) слева направо, кроме операторов:
разрешения области действия ::
выделение памяти new
освобождение памяти delete
освобождение памяти из-под массива delete[ ]
разыменование *
взятие адреса &
унарный +
унарный –
поразрядное логическое НЕ ~
получение размера sizeof
получение типа typeid
преобразование типа (type) const_cast dynamic_cast reinterpret_cast static_cast
Эти операторы имеют асссоциативность справа налево.
Приведение типов в выражениях
Пример 7.1. Функция нахождения максимального числа среди трех целых чисел.
int max3(int a,int b,int c)//заголовок ф-ии
{ //начало тела функции
int max;
if (a > b)
max = a;
else
max = b;
if (c > max)
max = c;
return max;
} //конец тела функции
int m, x=67, y=98, z=56;
cout << max3(x,y,z)<< endl; //98
cout << max3(9,7,111)<< endl; //111
Объявление и определение функций
Различают объявление и определение функции.
Объявление (прототип) функции совпадает с ее заголовком, отличие лишь в том, что оно заканчивается точкой с запятой:
int max3(int a,int b,int c);
В объявлении можно не указывать имена формальных параметров:
int max3(int,int,int);
int max3(int x,int n)
//это заголовок функции
|
|
|
Дата добавления: 2013-12-13; Просмотров: 318; Нарушение авторских прав?; Мы поможем в написании вашей работы!
Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет