Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Операция явного преобразования типов

Операции присваивания

Операция определения размера

 

Операция определения размера sizeof () можно применять к константе, типу

или переменной. В результате будет получено число байтов, занимаемых

аргументом.

Примеры:

1) printf («Размер памяти под целую переменную %d», sizeof (int));

2) char a;

printf («Размер переменной а= %d», sizeof (a));

 

 

Операция присваивания может быть простой и составной. Составное

присваивание состоит из простой операции присваивания,

скомбинированной с какой-либо бинарной операцией. При составном

присваивании сначала выполняется действие, определяемое бинарной

операцией, а затем результат присваивается левому операнду.


 

Операции ++ и - -


 

инкрементируют (увеличивают на единицу) и


декрементируют (уменьшают на единицу) свой операнд. Операндом может

быть целый, плавающий тип или указатель.

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

знак операции записывается перед операндом и его значение сначала

инкрементируется или декрементируется, а потом участвует в вычислениях,

или постфиксными, когда знак операции записывается после операнда и его

инкрементирование или декрементирование выполняется после того как

старое значение операнда использовано в вычислениях.

Примеры:

1) int x=0,y=0;

int z,w;

z=x++; // Значение z=0, х=1;

w=++y; // Значение w=1, y=1;

 

При присваивании тип правого операнда преобразуется к типу

левого операнда.

Примеры:

1) double x;

int y;


x=y; //


Значение у преобразуется к типу double;


2) int a,b=2;

float c=12.5;

a=c; // Значение а= 12;

b+=2; // Эквивалентно операции b=b+2;


 

b++;


 

// Значение b=5;


a/= b; // Эквивалентно a=a/b и имеет значение 2.

 

 

Явное преобразование типов может быть выполнено посредством

операции приведения типа. Формат операции:

(имя-типа) операнд;

 

Пример:

1) int x;

float y;

x=(int) y; // Значение у преобразуется к типу int.

 

Если в выражении появляются операнды различных типов, то они преобразуются к некоторому общему

типу, при этом каждый арифметический операнд подчиняется следующим правилам:

1) char и short преобразуются в int, float - в double (в языке С++ все

действия с вещественными числами производятся с двойной

точностью). Выше уже говорилось о модификаторе unsigned. В С++

существует еще модификатор signed, который явно указывает, что в

значении переменной обязательно есть знак. Он применяется для

документированности и завершенности программ. Модификатор signed,

использованный сам по себе, означает signed int. Тогда имеют место

следующие преобразования: char - int (со знаком); unsigned char - int

(старший байт всегда нулевой); signed char - int (в знаковый разряд int

передается знак из char); short - int (знаковый или беззнаковый); float -

double;

2) enum преобразуется в int;

3) если один из операндов двойной точности (double), то другие тоже

преобразуются к двойной точности (double), и результат будет двойной

точности (double);

4) если один из операндов имеет тип long, то другие тоже преобразуются в

long, и результат будет long;

5) если один из операндов имеет тип unsigne, то другие операнды тоже

преобразуются к типу unsigne, и результат будет unsigne;

6) если все операнды имеют тип int, то результат будет int.

Сложные выражения обычно содержат множество операций,

выполняемых в строгой последовательности. Величина, определяющая

преимущественное право на выполнение той или иной операции,

называется приоритетом. В табл.2.2. перечислены различные операции языка

С++. Их приоритеты для каждой группы одинаковы. Чем большим

преимуществом пользуется соответствующая группа операций, тем выше она

расположена в таблице. Порядок выполнения определяет последовательность

реализации операций (слева направо или справа налево), если отсутствуют


 

круглые скобки и операции относятся к одной группе. Некоторые значки,

используемые в табл.1, еще не рассматривались.

Таблица 1.

Операция Назначение операции Выполнение
() Вызов функции Слева направо
[] Выделение элемента массива  
. Выделение элемента записи  
=> Выделение элемента записи  
! Логическое отрицание Справа налево
7` 0 Поразрядное отрицание  
- Изменение знака  
++ Увеличение на единицу  
-- Уменьшение на единицу  
& Взятие адреса  
* Обращение по адресу  
(тип) Преобразование типа  
sizeof Определение размера в байтах  
* Умножение Слева направо
/ Деление  
% Определение остатка от деления  
+ Сложение Слева направо
- Вычитание  
<<, >> Сдвиг влево, сдвиг вправо Слева направо
< Меньше, чем  
<= Меньше или равно  
> Больше, чем  
>= Больше или равно  
==,!= Равно, не равно Слева направо
& Поразрядное логическое "И" Слева направо
^ Поразрадное "Исключающее ИЛИ" Слева направо
| Поразрядное логическое "ИЛИ" Слева направо
&& Логическое "И" Слева направо
|| Логическое "ИЛИ" Слева направо
?: Условная (тернарная) операция Справа налево
= Присваивание Справа налево
zn= Здесь zn={*,/,%,+,-,<<,>>,&,^,|},например, a*=b  
, Операция запятая Слева направо

 


 

Понятие объектов и классов.

Строение и использование классов.

 

 

1. Введение

 

В настоящее время объектно-ориентированное программирование (ООП)

является доминирующим стилем при создании больших программ.

ООП является результатом эволюции различных стилей в

программировании, которые включают процедурное программирование,

модульное программирование, структурное программирование, ООП.

В программировании широко используется фундаментальный принцип

управления сложными системами, согласно которому при проектировании

сложной программной системы проводится алгоритмическая декомпозиция

решаемой задачи. Целью декомпозиции является представление

разрабатываемой системы в виде взаимодействующих небольших подсистем

(модулей), каждую из которых можно отладить независимо от других.

Наряду с термином декомпозиция, также используется термин

структуризация проблемы, задачи или программы. Идеи разделения программ

на относительно самостоятельные крупные части, реализующие определенные

процедуры и функции и образующие определенную иерархию взаимосвязей,

нашли отражение в структурном подходе к разработке и созданию программных

средств.

Теоретическое оформление структурный подход получил в конце 60-х -

нача-

ле 70-х годов в работах Э. Дейкстры, А.П. Ершова, Э. Йодана, Н. Вирта, Э. Брукса

и других теоретиков и практиков программирования. Следует отметить

появление структурного программирования, в котором нашла определенное

отражение идея упорядочивания структуры программы. Структурное

программирование ориентирует на составление программ, структура которых

близка к «дереву» операторов или блоков.

Дальнейшее развитие структурного подхода привело к модульному

программированию. Оно предусматривает декомпозицию прикладной задачи в

виде иерархии взаимодействующих модулей или программ. Модуль,

содержащий данные и процедуры их обработки, удобен для автономной

разработки и создания.

Развитием идеи модульного программирования является сопоставление

объектам предметной области (моделируемым объектам) программных

конструкций, называемых объектами.

Таким образом, по мере развития технологии программирования

осуществлялась соответствующая интеграция данных и программ в модулях.

Таким образом, при объектном подходе интеграция данных и процедур их

обработки определяется структурой предметной области, то есть набором

моделируемых объектов, их взаимосвязью или взаимодействием в рамках

решаемой задачи.


 

<== предыдущая лекция | следующая лекция ==>
Условная операция | Данные-члены
Поделиться с друзьями:


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


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



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




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