- •Информатика и программирование
- •Лабораторная работа № 04
- •Лабораторная работа № 04
- •1. Краткие теоретические сведения
- •1.1. Операции
- •1.2. Порядок (старшинство) выполнения операций
- •1.4. Разделители
- •1.5. Переменные
- •1.5.1. Объявление переменных
- •1.5.2. Смысловые имена переменных
- •1.5.3. Таблица идентификаторов
- •1.5.4. Слова, которые нельзя использовать для имен переменных
- •1.5.5. Присваивание значения переменной
- •1.5.6. Присваивание значения при объявлении
- •1.5.7. Использование значения переменной
- •1.5.8. Превышение диапазона значений переменной
- •1.5.9. Представление о точности
- •1.5.10. Следите за ошибками переполнения при арифметических операциях
- •1.6. Константы
- •1.7. Перечисления
- •1.8. Выражения
- •1.9. Правила записи выражений
- •1.10. Преобразования типов
- •1.11. Операции (операторы) инкремента и декремента
- •1.11.1. Увеличение значения переменной на 1
- •1.11.2. Представление о префиксной (до) и постфиксной (после) операциях увеличения
- •2. Задание
- •2.11. Задания
- •Варианты задания приведены в табл. 4.14. Вариант соответствует номеру в журнале группы.
- •Варианты задания приведены в табл. 4.15. Вариант соответствует номеру в журнале группы.
- •2.11.3. Задание 3. (Домашнее).
- •2.11.3.1. Содержание работы
- •2.11.3.2. Теоретические сведения
- •2.11.3.3. Варианты задания 3
- •Варианты задания приведены в табл. 4.15. Вариант соответствует номеру в журнале группы.
- •2.11.3.4. Пример программы
- •2.11.3.5. Программа
- •2.11.3.6. Результаты работы программы.
- •2.11.3.7. Типичные ошибки при выполнении работы
- •3. Выводы
- •4. Требование к отчету
- •5. Вопросы для самоконтроля
- •Литература
- •1. Краткие теоретические сведения 2
Кузнецов Л.К.
Министерство финансов Российской Федерации
Всероссийская государственная налоговая академия
Информатика и программирование
Бакалавры: 230700 "Прикладная информатика"
Язык программирования С++
Лабораторная работа № 04
ПРОСТЕЙШИЕ КОНСТРУКЦИИ АЛГОРИТМИЧЕСКОГО ЯЗЫКА С++
Автор профессор кафедры "Прикладной информатики в экономике"
кандидат технических наук Л.К. Кузнецов
13 марта 2012 г.
Москва
ВГНА
2012
Лабораторная работа № 04
Простейшие конструкции алгоритмического языка С++
Цель работы:
ознакомиться с операциями языка С++;
ознакомиться с приоритетом выполнения операций в языке С++;
ознакомиться с операциями инкремента и декремента;
ознакомиться с преобразованием типов;
ознакомиться с правилами записи выражений;
ознакомиться выражениями:
ознакомиться перечислениями;
ознакомиться с константами;
научиться управлять порядком, в котором C++ выполняет операции;
научиться объявлять переменные в программах на языке С++;
научиться правильно выбирать имена переменных;
научиться составлять таблицу идентификаторов;
научиться присваивать значения переменной;
научиться присваивать значения при объявлении;
изучить список ключевых слов языка С++.
В ходе этой лабораторной работы студенту предлагается выполнить ряд действий, которые должны выработать практические навыки: по программированию алгебраических выражений с использованием математических функций библиотеки языка C++; по выбору имен переменных; по записи констант; по объявлению переменных.
Для успешной защиты лабораторной работы студент должен выполнить задания и ответить на вопросы для самоконтроля, приведенные в данной лабораторной работе.
1. Краткие теоретические сведения
1.1. Операции
Операции осуществляют пересылку и преобразование данных в программах. Обозначаются операции одним или несколькими символами, например +, -, >> и т.д. Данные, участвующие в операции, называются операндами. В качестве операндов могут использоваться переменные, константы, выражения.
Над числовыми данными определены следующие группы операций (рис. 4.1).
В соответствии с количеством операндов, которые используются в операциях они делятся на унарные (один операнд), бинарные (два операнда) и тернарную (три операнда).
Унарные операции (один операнд) выполняются справа налево. Некоторые унарные операции приведены в табл. 4.1.
|
|
Операции над числовыми данными в С++ |
|
|
|||||||||||||||||||||||||||||||
|
|
|
|
|
|
||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||
|
1 |
|
|
|
2 |
|
|
|
3 |
|
|
|
4 |
|
|
|
5 |
|
|
|
6 |
|
|||||||||||||
Арифметические операции |
|
Операция присваивания |
|
Операции отношения |
|
Логические операции |
|
Операция запятая (,) |
|
Операция приведения к типу |
|||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||
Рис. 4.1. Операции над числовыми данными |
Таблица 4.1
Унарные операции
Знак операции |
Операция |
Описание |
- |
Унарный минус |
|
~ |
Побитовое логическое отрицание |
|
! |
Логическое отрицание |
В качестве логических значений используется 0 (false) - ложь и не 0 (true) - истина, отрицанием 0 будет 1, отрицанием любого ненулевого числа будет 0. |
+ |
Унарный плюс |
|
++ |
Увеличение (инкремент) на единицу |
префиксная операция - увеличивает операнд до его использования, постфиксная операция увеличивает операнд после его использования. |
-- |
Уменьшение (декремент) единицу |
префиксная операция - уменьшает операнд до его использования, постфиксная операция уменьшает операнд после его использования. |
sizeof |
|
вычисление размера (в байтах) для объекта того типа, который имеет операнд |
& |
|
Получение адреса операнда |
* |
|
Получение значения, находящегося по указанному адресу (разыменование) |
new |
Выделение памяти |
Динамическое распределение памяти. |
delete |
Освобождение памяти |
Динамическое распределение памяти. |
(type) |
|
Преобразование типа |
В отличие от унарных, бинарные операции (два операнда), список которых приведен в табл. 4.2, выполняются слева направо.
Таблица 4.2
Бинарные операции
Знак операции |
Операция |
Группа операций |
Описание |
* |
Умножение |
Арифметические мультипликативные |
умножение операндов арифметического типа |
/ |
Деление |
деление операндов арифметического типа (если операнды целочисленные, то выполняется целочисленное деление) |
|
% |
Остаток от деления |
получение остатка от деления целочисленных операндов |
|
+ |
Сложение |
Арифметические аддитивные |
бинарный плюс (сложение арифметических операндов) |
- |
Вычитание |
бинарный минус (вычитание арифметических операндов) |
|
<< |
Сдвиг влево |
Операции сдвига |
|
>> |
Сдвиг вправо |
|
|
< |
Меньше |
Операции отношения |
меньше, чем |
> |
больше |
больше |
|
<= |
Меньше или равно |
меньше или равно |
|
>= |
Больше или равно |
больше или равно |
|
= = |
Равно |
Равно??? |
|
!= |
Не равно |
не равно |
|
& |
Битовая операция И |
Битовые (поразрядные) операции |
|
| |
Поразрядное ИЛИ |
|
|
^ |
Поразрядное исключающее ИЛИ |
|
|
&& |
Логическое И |
Логические операции |
конъюнкция (И) целочисленных операндов или отношений, целочисленный результат ложь(0) или истина( не 0) |
|| |
Логическое ИЛИ |
дизъюнкция (ИЛИ) целочисленных операндов или отношений, целочисленный результат ложь(0) или истина(не 0) |
|
, |
Последовательное вычисление |
Последовательного вычисления |
|
= |
Присваивание |
Операции присваивания |
присваивание |
*= |
Умножение с присваиванием |
умножение с присваиванием (мультипликативное присваивание) |
|
/= |
Деление с присваиванием |
деление с присваиванием |
|
%= |
Остаток от деления с присваиванием |
деление с остатком с присваиванием |
|
-= |
Вычитание с присваиванием |
вычитание с присваиванием |
|
+= |
Сложение с присваиванием |
сложение с присваиванием |
|
<<= |
Сдвиг влево с присваиванием |
|
|
>>= |
Сдвиг вправо присваиванием |
|
|
&= |
Поразрядное И с присваиванием |
|
|
|= |
Поразрядное ИЛИ с присваиванием |
|
|
^= |
Поразрядное исключающее ИЛИ с присваиванием |
|
Тернарной операцией (три операнда) является операция «условие ?», которая реализует алгоритмическую структуру ветвления (не рассматривается в рамках лабораторного практикума).
Таблица 4.3
Тернарная операция
Знак операции |
Операция |
Описание |
?: |
Условная операция; в ней используется три операнда.
|
Выражение1 ? Выражение2 : Выражение3; Первым вычисляется значение выражения1. Если оно истинно, то вычисляется значение выражения2, которое становится результатом. Если при вычислении выражения1 получится 0, то в качестве результата берется значение выражения3. Например: x<0 ? -x : x ; //вычисляется абсолютное значение x. |