650 likes | 981 Views
Программирование. 1. Компьютеры и информация. Литература. Основная Лафоре Р. Объектно-ориентированное программирование в С++ . СПб, Питер, 2003, 928 с. Прата С. Язык программ рования С++. Лекции и упражнения. 5-е издание. М., 2007, 1184 с.
E N D
Программирование 1. Компьютеры и информация
Литература • Основная • Лафоре Р. Объектно-ориентированное программирование в С++. СПб, Питер, 2003, 928 с. • Прата С. Язык программрования С++. Лекции и упражнения. 5-е издание. М., 2007, 1184 с. • Хортон А. Visual C++ 2005. Базовый курс. М., Диалектика, 2007, 1143 с. • Побегайло А.П. С/С++ для студента. СПб, БХВ-Петербург, 2006, 526 с. • Шилдт Г. Полный справочник по С++. 4-е издание. М. Вильямс, 2007, 796 с.
Литература • Дополнительная • Буч Г. Объектно-ориентированный анализ и проектирование с примерами приложений на С++. – М.: Бином, 2001. • Каррано Ф., Причард Д. Абстракция данных и решение задач на С++.Стены и зеркала. 3-е издание. М., Вильямс, 2003, 848 с. • Ахо А., Хопкрофт Д., Ульман Д. Структуры данных и алгоритмы. М., Вильямс, 2000, 384 с. • Макконнелл С. Совершенный код. Мастер-класс. СПб, Питер, 2005, 896 с. • Дейтел Х.М., Дейтел П.Дж. Как программировать на С++. М., Бином-пресс, 2007, 800 с.
1. ЭВМ и информация1.1. Аппаратные и программные средства компьютеров. Архитектура Фон Неймана • КОМПЬЮТЕР (англ. computer, от лат. computo — считаю) - машина для приема, переработки, хранения и выдачи информации в электронном виде, которая может воспринимать и выполнять сложные последовательности вычислительных операций по заданной последовательности инструкций — программе. Maingear eX-L 18 (2009 г.) IBM 5150 (1981 г.)
1. ЭВМ и информация1.1. Аппаратные и программные средства компьютеров. Архитектура Фон Неймана • КОМПЬЮТЕР (англ. computer, от лат. computo — считаю) - машина для приема, переработки, хранения и выдачи информации в электронном виде, которая может воспринимать и выполнять сложные последовательности вычислительных операций по заданной последовательности инструкций — программе. IBM Roadrunner
1. ЭВМ и информация1.1. Аппаратные и программные средства компьютеров. Архитектура Фон Неймана • КОМПЬЮТЕР (англ. computer, от лат. computo — считаю) - машина для приема, переработки, хранения и выдачи информации в электронном виде, которая может воспринимать и выполнять сложные последовательности вычислительных операций по заданной последовательности инструкций — программе. Сетевые коммутаторы Мобильный телефон
1. ЭВМ и информация1.1. Аппаратные и программные средства компьютеров. Архитектура Фон Неймана • КОМПЬЮТЕР (англ. computer, от лат. computo — считаю) - машина для приема, переработки, хранения и выдачи информации в электронном виде, которая может воспринимать и выполнять сложные последовательности вычислительных операций по заданной последовательности инструкций — программе. Цифровой сигнальный процессор на отладочной плате Микроконтроллер
1. ЭВМ и информация1.1. Аппаратные и программные средства компьютеров. Архитектура Фон Неймана Джон Фон Нейман Родился 3 ноября 1903 г. в Венгрии в богатой еврейской семье. Первая научная работа – 1921 г. Диплом инженера-химика и одновременная защита диссертации – 1925 г. Статья «К теории стратегических игр» – доказательство теоремы о минимаксе – 1928 г. Книга «Математические основы квантовой механики» – 1932 г. Разработка методов оптимального бомбометания – 1939 – 1943 гг. Математическая модель атомной бомбы Метод Монте-Карло (совместно с С.Уламом) Современная архитектура компьютера – 1945 год Умер в 1957 г.
1. ЭВМ и информация1.1. Аппаратные и программные средства компьютеров. Архитектура Фон Неймана ЦЕНТРАЛЬНЫЙ ПРОЦЕССОР Устройство управления АЛУ Оперативная ПАМЯТЬ Устройство ВВОДА Устройство ВЫВОДА Данные Программа Внешняя (энергонезависимая) ПАМЯТЬ Выходные данные Входные данные
1. ЭВМ и информация1.1. Аппаратные и программные средства компьютеров. Архитектура Фон Неймана ЦЕНТРАЛЬНЫЙ ПРОЦЕССОР Устройство управления АЛУ Оперативная ПАМЯТЬ Устройство ВВОДА Устройство ВЫВОДА Данные Программа Внешняя (энергонезависимая) ПАМЯТЬ Выходные данные Входные данные
1. ЭВМ и информация1.1. Архитектура Фон Неймана • В компьютере информация хранится в виде последовательности символов двоичного алфавита – 0 и 1, каждый из которых представляется одним из двух устойчивых состояний физического объекта. • Совокупность этих физических объектов (конденсатор динамической оперативной памяти, электронный триггер статической памяти, магнитная частица поверхности жесткого диска и т.п.) составляет память компьютера.
1. ЭВМ и информация1.3. Архитектура Фон Неймана • Память компьютера может быть разделена на несколько уровней: • Память центрального процессора (ЦП) • Регистры АЛУ ЦП • Внутренняя кэш-память ЦП • Оперативная память • Внешняя кэш-память на основе микросхем SRAM (Static Random Access Memory) • Память с произвольным доступом (оперативное запоминающее устройство - ОЗУ) DRAM (Dynamic Random Access Memory) • Постоянное запоминающее устройство ROM (Read-Only Memory) • Внешняя память • Устройства оперативного хранения информации (жесткий диск, гибкие магнитные диски, CD ROM и др.) • Устройства резервного хранения информации (магнитные ленты, магнитооптические диски и др.)
1. ЭВМ и информация1.3. Информация и ее представление в ЭВМ • Размещение данных во внешней памяти • Данные хранятся в виде файлов - именованных областей внешней памяти, содержащих некоторую однородную информацию. • По методу доступа к информации устройства внешней памяти разделяются на: • Устройства с прямым (произвольным) доступом - возможность обращения к блокам информации по их номерам (адресам) в произвольном порядке • Устройства с последовательным доступом – обращение к блокам информации также может осуществляется по номерам (адресам), но доступ к каждому блоку возможен только путем холостого чтения (сканирования) всех предшествующих блоков.
1. ЭВМ и информация1.3. Архитектура Фон Неймана • Обрабатываемые данные и программа обязательно должны быть размещены в оперативной памяти. • Оперативная память представляет собой линейную последовательность элементов, каждый из которых может находиться в состоянии 0 или 1. • Сами элементы (или блоки элементов) нумеруются от 0 и далее. Доступ к ним осуществляется по номерам. бит 8 бит = 1 байт; 1024 байта = 1К; 1024К=1М; 1024 M = 1 Gb
1. ЭВМ и информация1.1. Аппаратные и программные средства компьютеров. Архитектура Фон Неймана • Исполнимый код • Исполняемая ЭВМ программа представляет собой расположенную в оперативной памяти последовательность машинных кодов - двоичных цифр, интерпретируемых устройством управления ЭВМ Конец программы Верхние адреса ветвление Центральный процессор проверка условия Указатель команд данные данные Нижние адреса переход Начало программы
1. ЭВМ и информация1.2. Предмет программирования • ПРОГРАММА - описание действий, которые должен выполнить компьютер, автоматически переводимое на язык машинных команд этого компьютера. • Процесс разработки программ для решения определенных задач называют ПРОГРАММИРОВАНИЕМ. • Группы программ, работающих как единое целое, составляют программное обеспечение (ПО) компьютера. Современный блэйд-сервер Аналитическая машина Ч.Бэббиджа
1. ЭВМ и информация1.2. Предмет программирования • Выполняемая программа хранится в памяти компьютера в виде машинных команд – последовательности нулей и единиц. • Как получить программу в виде машинных команд? • Непосредственно записать эти команды • Написать программу на Ассемблере • Использовать интерпретатор языка программирования • Воспользоваться компилятором языка программирования
1. ЭВМ и информация1.2. Предмет программирования • Выполняемая программа также хранится в памяти компьютера в виде машинных команд – последовательности нулей и единиц. • Как получить программу в виде машинных команд? • Непосредственно записать эти команды НАПИСАНИЕ ЗАГРУЗКА В ОПЕРАТИВНУЮ ПАМЯТЬ ВЫПОЛНЕНИЕ
1. ЭВМ и информация1.2. Предмет программирования • Выполняемая программа также хранится в памяти компьютера в виде машинных команд – последовательности нулей и единиц. • Как получить программу в виде машинных команд? • Написать программу на Ассемблере НАПИСАНИЕ АССЕМБЛИРОВАНИЕ ЗАГРУЗКА В ОПЕРАТИВНУЮ ПАМЯТЬ ВЫПОЛНЕНИЕ
1. ЭВМ и информация1.2. Предмет программирования • Выполняемая программа также хранится в памяти компьютера в виде машинных команд – последовательности нулей и единиц. • Как получить программу в виде машинных команд? • Использовать интерпретатор языка программирования НАПИСАНИЕ ВЫБОРКА ИНСТРУКЦИИ ИНТЕРПРЕТАЦИЯ ВЫПОЛНЕНИЕ
1. ЭВМ и информация1.2. Предмет программирования • Выполняемая программа также хранится в памяти компьютера в виде машинных команд – последовательности нулей и единиц. • Как получить программу в виде машинных команд? • Воспользоваться компилятором языка программирования НАПИСАНИЕ КОМПИЛЯЦИЯ СБОРКА ЗАГРУЗКА ВЫПОЛНЕНИЕ
1. ЭВМ и информация 1.2. Предмет программирования • Исполнимый код • Исполнимая программа во время исполнения хранится в оперативной памяти. Иначе она хранится во внешней памяти в виде файла, содержащего последовательность машинных команд. • Исходный текст • Исходный текст (программа на языке программирования или Ассемблере) – последовательность ASCII – символов. • Объектный код • Объектный код – результат компиляции исходного текста программного модуля. Объектный код также представляет собой последовательность машинных команд, которая, однако, не может быть непосредственно выполнена ЭВМ.
1. ЭВМ и информация 1.2. Предмет программирования Схема реализации Текстовый редактор Исходный текст программы создается текстовым редактором и записывается на диске Центральный процессор выбирает каждую инструкцию и выполняет ее Загрузчик размещает исполняемый файлв оперативной памяти Компоновщик связывает объектный код с библиотеками, создает исполняемый файл и сохраняет его на диске Компилятор создает объектный код и сохраняет его на диске Препроцессор преобразовывает исходный текст Диск Препроцессор Компилятор Компоновщик Оперативная Загрузчик память ЦПУ …
1. ЭВМ и информация 1.2. Предмет программирования • Исправление ошибок в процессе реализации программы Создание исходноготекста Компи- ляция Компо-новка Верифи-кация, тестиро-вание, отладка,эксплуа-тация Исправление синтаксическихошибок Исправление семантических ошибок
1. ЭВМ и информация1.2. Предмет программирования • Процесс создания и использования программного обеспечения, представленный в виде последовательности этапов и выполняемых на этих этапах процессов называется жизненным циклом программного обеспечения. Формирование требований Разработка проекта Реализация • КАСКАДНАЯ МОДЕЛЬ ЖИЗНЕННОГО ЦИКЛА ("модель водопада") предусматривает последовательное выполнение всех этапов проекта в строго фиксированном порядке. Переход на следующий этап означает полное завершение работ на предыдущем этапе Устранение ошибок Эксплуатация и сопровождение
1. ЭВМ и информация1.2. Предмет программирования • КАСКАДНАЯ МОДЕЛЬ ЖИЗНЕННОГО ЦИКЛА была распространена в 70-х - 80-х годах ХХ века. На практике этапы каскадной модели реализуются итерационно, с циклами обратной связи между этапами. Формирование требований Разработка проекта Реализация Устранение ошибок Эксплуатация и сопровождение
1. ЭВМ и информация1.2. Предмет программирования • СПИРАЛЬНАЯ МОДЕЛЬ ЖИЗНЕННОГО ЦИКЛА предусматривает спиралеобразное совершенствование системы путем последовательного создания прототипов (новых версий) этой системы. На каждом витке спирали при создании очередной версии продукта, уточняются требования проекта и планируются работы этого витка. Разработка проекта Формирование требований Реализация Версия 1 Версия 2 Ввод в действие прототипов (версий) системы Устранение ошибок
1. ЭВМ и информация 1.2. Предмет программирования • Основные этапы жизненного цикла: • Формирование требований – процесс сбора требований к системе, их систематизации, документирования, анализа, выявления противоречий и неполноты, разрешения конфликтов. • Разработка проекта - деятельность по созданию проекта, то есть воспроизводимой модели программного обеспечения. • Реализация - этап жизненного цикла программного обеспечения, объединяющий последовательные фазы создания программы в виде исходного кода, объектного кода и исполнимого кода. Результатом реализации является программа, которая может быть исполнена на компьютере. • Устранение ошибок - процесс устранения причин того, что программное обеспечение не работает, либо результат его работы не соответствует выработанным требованиям. • Эксплуатация – деятельность по использованию программного обеспечения для решения практических задач. • Сопровождение - модификация программного обеспечения с целью устранения ошибок, реализации потребностей заказчика в улучшениии тех или иных характеристик, а также его адаптации к использованию в модифицированном окружении.
1. ЭВМ и информация1.3. Информация и ее представление в ЭВМ • ИНФОРМАЦИЯ - сведения, которыми располагает активная система (общество, человек, компьютер и т.п.) о том или ином объекте и которые, будучи представлены в виде сообщений, могут храниться, передаваться и подвергаться преобразованиям. • СООБЩЕНИЕ – совокупность первичных сигналов или знаков, содержащих информацию. Передача сообщений (во времени и в пространстве) происходит с помощью сигнала. • СИГНАЛОМ называется изменение некоторой физической величины во времени.
1. ЭВМ и информация1.3. Информация и ее представление в ЭВМ • Информационное сообщениеможет быть представлено в виде функции x(t), характеризующей изменение во времени какой-либо величины, описывающей состояние приемника сигнала. • Непрерывное (аналоговое)сообщение- функция x(t) может принимать любые вещественные значения в диапазоне изменения аргумента t, • Цифровое сообщение - функция x(t) может принимать набор фиксированных дискретных значений в заданные моменты времени. x t 0
1. ЭВМ и информация1.3. Информация и ее представление в ЭВМ • Дискретизация по времени – процесс представления аналогового сигнала, дискретным сигналом, непрерывные значения которого берутся в дискретные моменты времени, называемые отсчетами. Обычно такие отсчеты берутся через определенные равные интервалы времени. Возможность точного восстановления аналогового сигнала после его дискретизации зависит от интервала времени между отсчётами. x t 0
1. ЭВМ и информация1.3. Информация и ее представление в ЭВМ • Квантование по амплитуде – разбиение диапазона значений некоторого сигнала на конечное число интервалов. Каждому интервалу присваивается n – разрядный двоичный код – номер интервала, записанный двоичным числом. Каждое значение сигнала представляется кодом того интервала, в который попадает это значение. 0000, 0010, 0010, 0011, 0011, 0011, 0011, 0011, 0100, 0101 x 0101 0100 0011 0010 0001 0000 t 0
1. ЭВМ и информация1.3. Информация и ее представление в ЭВМ • Цифровые сообщения формируются в результате последовательной выдачи источником информации последовательности знаков. • ЗНАК – элемент некоторого конечного множества (набора) отличимых друг от друга объектов – символов. Набор знаков, в котором определен их линейный порядок называют алфавитом. • Алфавит компьютера состоит из двух символов, обычно обозначаемых 0 и 1. Единица количества информации - бит - информация, которую может нести сообщение, состоящее из одного двоичного знака.
1. ЭВМ и информация1.3. Информация и ее представление в ЭВМ • Для представления информации в ЭВМ ее необходимо: • Перевести в форму цифрового сообщения - произвести дискретизацию и квантование. В результате эта информация может быть закодирована знаками любого алфавита (русские буквы, десятичные цифры, знаки азбуки Морзе и т.д.) • Представить знаки исходного алфавита в виде последовательности знаков алфавита компьютера – выполнить кодирование. • Кодирование - представление символов одного алфавита символами другого (например, представление десятичной цифры 5 в двоичной системе счисления – 101)
2. Данные в ЭВМ 2.1. Представление в памяти ЭВМ целых чисел • Двоичная и шестнадцатеричные системы счисления • В десятичной позиционной системе счисления: цифры 0 1 2 3 4 5 6 7 8 9 3210 105710 = 1·103 + 0·102 + 5·101 + 7·100 = 105710 • В двоичной системе счисления: цифры 0 1 43210 101012 = 1·24 + 0·23 + 1·22 + 0·21 + 1·100 = 2110 • В шестнадцатеричной системе счисления цифры 0 1 2 3 4 5 6 7 8 9 A B C D E F 43210 F4E1216 = 15·164 + 4·163 + 14·162 + 1·161 + 2·160 = 100302610
2. Данные в ЭВМ 2.1. Представление в памяти ЭВМ целых чисел • Двоично - десятичный код 010 = 00002 510 = 01012 910 = 10012 • Пример (25 бит, бит знака - перед числом): 199810 = 0 0000 0000 0001 1001 1001 10002-10 -56781210 = 1 0101 0110 0111 1000 0001 00102-10 • Прямой двоичный код(положительные целые числа) тип integer в Паскале и Фортране или int в С - 2 байта, включая бит знака: 010 = 0 0000000 000000002 510 = 0 0000000 000001012 3276710 = 0 1111111 111111112
2. Данные в ЭВМ 2.1. Представление в памяти ЭВМ целых чисел • Дополнительный двоичный код(отрицательные целые числа) 7 = 0 0000000 00000111 + -6= 1 1111111 11111010 1= 0 0000000 00000001
2. Данные в ЭВМ 2.1. Представление в памяти ЭВМ целых чисел • Порядок расположения разрядов целого числа в памяти ПЭВМ: 510 = 00000101 0 0000000 2 -110 = 11111111 1 1111111 2 -3276810 = 00000000 1 0000000 2
2. Данные в ЭВМ 2.2. Особенности представления в ЭВМ целых чисел • Отличительные особенности представления целых чисел в ЭВМ: • Ограниченная разрядная сетка ограниченность диапазона представимых целых чисел (наличие наибольшего по абсолютной величине целого числа M, представимого в ЭВМ). • Ошибка арифметических операций (сложения и умножения) над целыми числами - переполнение. • Арифметика по модулю М с переносом в знаковый разряд: 32765 = 0 1111111 11111101 + 5 = 0 0000000 00000101 -32766 = 1 0000000 00000010
2. Данные в ЭВМ 2.3. Представление в памяти ЭВМ вещественных чисел • R=C10P- экспоненциальная форма десятичного числа. • С - мантисса (десятичное число, при представлении в нормализованном виде C имеет значениеменьше 1 и в старшем разряде числа – не 0), • P - порядок числа (целое число со знаком): -5678,56 = -56,7856·102 = -0,0567856·105 = -0,567856·104 0,000234 = 234·10-6 = 0,0234·10-2 = 0,234·10-3
2. Данные в ЭВМ 2.3. Представление в памяти ЭВМ вещественных чисел • R=C2P- экспоненциальная форма по основанию 2. • С - мантисса (двоичное число, при представлении в нормализованном виде C – правильная дробьменьше 1 и в старшем разряде числа – 1), • P - порядок числа (двоичное целое число со знаком)
2. Данные в ЭВМ 2.3. Представление в памяти ЭВМ вещественных чисел • Ошибка мантиссы равна 2-M(например, если M=24, то точность - около 5.10-8. • Показатель ограничен 2E -1 (например, если Е=6, показатель - до 63) • Часто используется представление по основанию 16. • Примеры представления десятичных вещественных чисел в нормализованном виде на ограниченной разрядной сетке (3 десятичных разряда мантиссы, 2 -порядка): R=C10P 2.5285 = 0.253.10 01 1234 = 0.123.10 03 -0.0012 = -0.120.10 -02 2.3. 10 -102 = -0.002.10 -99
2. Данные в ЭВМ 2.4. Особенности представления вещественных чисел на ограниченной разрядной сетке • Основные свойства представления чисел на ограниченной разрядной сетке: • Ограниченный диапазон представимых чисел: от М=0.999.1099 до -М=-0.999.1099 • Конечное число чисел на вещественной оси • Обособленность 0 (близлежащие числа ±i =±0.001.10-99) • Различная плотность множества представимых чисел на числовой оси (на интервале от 10-99 до 10-98 – 999 чисел и на интервале от 10 до 100 тоже 999 чисел).
2. Данные в ЭВМ 2.4. Арифметические операции над вещественными числами на ограниченной разрядной сетке • Умножение и деление • перемножение или деление мантисс • сложение или вычитание показателей • нормализация • Ошибки округления(3 разряда мантиссы, 2 - порядка): 0.123.1002. 0.161.1005=0.019803.1007 = 0.198.1006 • Переполнение(Overflow): 0.823.1046 . 0.101.1065 = 0.83123.10** • Потеря порядка(Underflow): 0.425.10-27/ 0.561.1078 = 0.0757575....10-105 = 0 • Катастрофическая потеря порядка: 0.425.10-27 / 0.561.1078. 0.200.1087 = = 0.0757575....10-105 (= 0) . 0.200.1087 = 0 (вместо 0.1515151.10-19 = 0.152.10-19)
2. Данные в ЭВМ 2.4. Арифметические операции над вещественными числами на ограниченной разрядной сетке • Сложение и вычитание • запись двух чисел с одинаковым (наибольшим из двух) показателем • сложение или вычитание мантисс чисел • возможная повторная нормализация • Переполнение(Overflow): 0.999.1098 + 0.976.1099 = = 0.099.1099 + 0.976.1099 = 0.108.10** • Потеря значащих цифр: 10-9.82=0.18 0.100.1002 - 0.982.1001 = 0.100.1002 - 0.0982.1002 = = 0.100.1002 - 0.098.1002 = 0.002.1002 = 0.200 1000-999 = 1 0.100.1004-0.999.1003 = 0.100.1004-0.0999.1004 = = 0.100.1004-0.100.1004 = 0 (округление) или = 0.100.1004-0.099.1004 = 0.001.1004 = 10 (усечение)
2. Данные в ЭВМ 2.4. Арифметические операции над вещественными числами на ограниченной разрядной сетке Пример: • Вычислениеy(x)=(1-cos x)/x2 . Эта формула не работает для малых х. (Уменьшаемое равно 1, вычитаемое – стремится к 1 и все делим на малое число). • Эквивалентная формула z(x)=2sin2(x/2)/x2=y(x) - хорошо обусловлена при малых x. Аналитически нетрудно показать, что .
2. Данные в ЭВМ 2.4. Арифметические операции над вещественными числами на ограниченной разрядной сетке • Невыполнение ассоциативного закона сложения: • (x+y)+z ≠ x+(y+z)x, y, z – четырехбайтовые вещественные числа x=P, y=-P, z=p; P>0, P~p·108 • Зависимость результата от сохранения промежуточных данных • x+(y+z) ≠x+v, v=y+zx, y, z, v – четырехбайтовые вещественные числа x=P, y=-P, z=p; P>0, P~p·108 P p Разряды мантиссы Одинаковый порядок
2. Данные в ЭВМ 2.4. Арифметические операции над вещественными числами на ограниченной разрядной сетке // Эта программа демонстрирует невыполнениеассоциативного // закона сложенияпри вычислениях с плавающей точкой #include <stdafx.h>// включает <conio.h> , <iostream> using namespace std; int main() { float x = 1.1e7,y = -1.1e7,z = 1.0e2, r, v; r = (x+y)+z; cout <<r<<endl; //100 r = x+(y+z); cout <<r<<endl; //100 v = x+y; r = v+z; cout <<r<<endl; //100 v = y+z; r = x+v; cout <<r<<endl; //100 cout << endl;
2. Данные в ЭВМ 2.4. Арифметические операции над вещественными числами на ограниченной разрядной сетке x = 1.1e8; y = -1.1e8; z = 1.0e2; r = (x+y)+z; cout <<r<<endl; //100 r = x+(y+z); cout <<r<<endl; //100 v = x+y; r = v+z; cout <<r<<endl; //100 v = y+z; r = x+v; cout <<r<<endl; //96 cout << endl; x = 1.1e10; y = -1.1e10; z = 1.0e2; r = (x+y)+z; cout <<r<<endl; //100 r = x+(y+z); cout <<r<<endl; //100 v = x+y; r = v+z; cout <<r<<endl; //100 v = y+z; r = x+v; cout <<r<<endl; //0 cout << endl;
2. Данные в ЭВМ 2.4. Арифметические операции над вещественными числами на ограниченной разрядной сетке x = 1.1e22; y = -1.1e22; z = 1.0e2; r = (x+y)+z; cout <<r<<endl; //100 r = x+(y+z); cout <<r<<endl; //0 v = x+y; r = v+z; cout <<r<<endl; //100 v = y+z; r = x+v; cout <<r<<endl; //0 cout << endl; _getch(); return 0; }