C++. Операторы и выражения — презентация онлайн
Похожие презентации:
Операции и выражения. Операторы
Операции и выражения в С++
Операции и выражения. (Лекция 4)
Операции и выражения языка Си
Программирование на языке С++. Лекция 6. Операции и операторы
Простейшие программы. Ввод-вывод. Операции в выражениях. Оператор присваивания
Переменные, операции, выражения
Основные операции. Базовые управляющие конструкции структурного программирования. (Лекция 2.2)
Типы данных, операторы и выражения
Простейшие конструкции языка С
1. C++. Операторы и выражения
ОПЕРАТОРЫ И ОПЕРАНДЫ • ВЫРАЖЕНИЯ • АРИФМЕТИЧЕСКИЕ ИЛОГИЧЕСКИЕ ОПЕРАТОРЫ • ОПЕРАТОРЫ ПРИСВАИВАНИЯ И
СРАВНЕНИЯ
2. Операторы и операнды
3. Оператор
Операторконструкция
в
языках
программирования,
аналогичная
по
записи математическим операциям, то
есть
специальный
способ
записи
некоторых действий.
4. Операнд
Операндоператором.
данные,
которые
обрабатываются
5. Выражение
Выражениекомбинация
переменных,
констант
и
операций,
приводящих
к
вычислению некого конечного значения.
6. Оператор присваивания
ПРАВИЛА ПРИСВАИВАНИЯ В С++7. Оператор присваивания
Операторприсваивания
записывается
символом = (равно) и необходим для
инициализации
переменных
новыми
значениями.
8. Правила присваивания
Результат вычисления выражения, стоящего справа отзнака присваивания возвращается переменной /
оператору, стоящему слева от знака присваивания.
9. Пример работы оператора присваивания
10. Арифметические операторы
СЛОЖЕНИЕ • ВЫЧИТАНИЕ • УМНОЖЕНИЕ • ДЕЛЕНИЕ • ОСТАТОК ОТДЕЛЕНИЯ • ИНКРЕМЕНТ • ДЕКРЕМЕНТ
11. Стандартные арифметические операторы
Стандартные арифметическиеоператоры
С++ поддерживает 4 базовых арифметических операции,
известных всем с самого раннего школьного возраста:
1.
Сложение (+)
2.
Вычитание (-)
3.
Умножение (*)
4.
Деление (/)
12. Арифметические операторы в действии
13. Круглые скобки
Для управления приоритетом выполненияопераций или имитации вычисления дробей в
С++ существуют оператор круглые скобки. Их
действие аналогично действию в линейной
алгебре.
14. Круглые скобки в действии
15. Оператор остатка от деления
Операцияостатка
от
деления
(%)
применяется только к целым числам типа char,
short, int и long. Результатом этой операции
является остаток, получаемый при делении её
левого операнда на правый.
16. Операция остатка от деления в действии
17. Инкремент и декремент
Инкремент (++) — унарная операция, увеличивающая значениеоперанда на 1.
Декремент (—) — унарная операция, уменьшающая значения
операнда на 1.
18. Префиксные и постфиксные формы записи инкремента / декремента
Префиксная форма записи — операция перед операндом:сначала выполняется изменение значения операнда, а потом
все остальные операции в выражении;
Постфиксная форма записи — операция после операнда;
сначала выполняются все операции в выражении, после чего
операнды изменяют своё значение.
19. Комбинированные операторы присваивания
20. Расширенные операторы присваивания
Иногда очень удобно комбинировать арифметические операторыс оператором присваивания.
Увеличить (+=)
Уменьшить (-=)
Умножить (*=)
Разделить (/=)
Остаток от деления (%=)
21. Пример комбинированного оператора присваивания
22. Использование комбинированного оператора
Комбинированныеоператоры
можно
использовать только с инициализированными
заранее переменными.
23. Операторы сравнения
СРАВНЕНИЕ • НЕРАВЕНСТВО • БОЛЬШЕ ЧЕМ • МЕНЬШЕ ЧЕМБОЛЬШЕ ЧЕМ ИЛИ РАВНО • МЕНЬШЕ ЧЕМ ИЛИ РАВНО
24. Зачем нужны операторы сравнения?
Операторы сравнения сравнивают между собойзначения двух операндов. Результатом сравнения
является значение истина (true) или ложь (false).
25. Операторы сравнения
Равно (==)Неравно (!=)
Больше чем (>)
Меньше чем (<)
Больше чем или равно (>=)
Меньше чем или равно (<=)
26.
Примеры операторов сравнения (без ответов)27. Примеры операторов сравнения (с ответами)
28. Логические операторы
И • ИЛИ • ИСКЛЮЧАЮЩЕЕ ИЛИ • НЕ29. Зачем нужны логические операции?
Логические операции составляют основной инструментдля построения булевой логики. Логические операции
позволяют
производить
действия
над
булевыми
переменными, то есть переменными, принимающими
только два значения — истина и ложь.
30. Логические операторы
ЛогическоеИ (&&)
Логическое
ИЛИ (||)
Исключающее
Логическое
ИЛИ (xor)
НЕ (!)
31. Логические И
Логическое И возвращает истину только в томслучае, если оба его операнда — истинны.
32. Логические ИЛИ
Логическое ИЛИ возвращает истину в двухслучаях:
1.
Оба операнда — истинны;
2.
Один из операндов — истина.
33. Исключающее ИЛИ
Исключающее ИЛИ возвращает истину только втом случае, если один из операндов — истина.
34. Логическое НЕ
Логическое НЕ (отрицание) — отрицает текущеесостояние булевой переменной:
НЕ истина = ложь
НЕ ложь = истина
35. Таблица значения логических операторов
36. Приоритеты операторов
37. Таблица приоритетов операций
38. Задача 1: цийры числа в обратной порядке
Дано целое четырёхзначное число (к примеру 9876). Необходимонаписать программу, которая с помощью использования
арифметических операций выведет на экран цифры этого числа в
обратном порядке. То есть, по завершению работы программы на
жкране должно появится число 6789.
39. Задача 2: депозитный калькулятор
Пользователь вводит сумму депозита и количество месяцевхранения денег в банке. Необходимо провести расчёт и вывести
на экран прибыль с депозита в месяц, за весь срок депозита и
общую сумму к выплате в конце срока. Процентная ставка
указывается в коде программы.
English Русский Правила
НОУ ИНТУИТ | Лекция | Основы языка Си: структура Си-программы, базовые типы и конструирование новых типов, операции и выражения
< Лекция 12 || Лекция 8: 1234567
Аннотация: Лекция посвящена введению в язык Си. Объясняются общие принципы построения Си-программы: разбиение проекта на h- и c-файлы, т.е. разделение интерфейса и реализации, использование препроцессора. Приводятся базовые типы языка Си, конструкции массива и указателя, позволяющие строить новые типы, а также модификаторы типов. Рассматриваются всевозможные операции и выражения языка Си.
Ключевые слова: Си, Java, указатель, адрес, массив, программа, контроль, операционная система, API, application program, interface, компилятор, слово, оператор DEFINE, файл, прототип функции, имя функции, константы, переменная, представление, standard input, препроцессор, директива, символическое имя, понимание текста, функция, алгоритм, значение, аргумент, вещественное число, вычисленное значение, вызов функции, стандартный поток вывода, логический тип, класс, тело оператора, специальный тип данных, volatility, Intel 80286, операции, сложение, умножение, оператор присваивания, префиксные операции, сумма элементов массива, аргумент операции, эквивалентное выражение, type cast, неявное преобразование
Основы языка Си
Тем не менее, область применения языка Си не ограничилась разработкой операционных систем. Язык Си оказался очень удобен в программах обработки текстов и изображений, в научных и инженерных расчетах. Объектно-ориентированные языки на основе Си отлично подходят для программирования в оконных средах.
В данном разделе будут приведены лишь основные понятия языка Си (и частично C++). Это не заменяет чтения полного учебника по Си или C++, например, книг [6] и [8].
Мы будем использовать компилятор C++ вместо Cи. Дело в том, что язык Си почти целиком входит в C++, т.е. нормальная программа, написанная на Си, является корректной C++ программой. Слово «нормальная» означает, что она не содержит неудачных конструкций, оставшихся от ранних версий Си и не используемых в настоящее время. Компилятор C++ предпочтительнее, чем компилятор Си, т.к. он имеет более строгий контроль ошибок. Кроме того, некоторые конструкции C++, не связанные с объектно-ориентированным программированием, очень удобны и фактически являются улучшением языка Си. Это, прежде всего, комментарии //, возможность описывать локальные переменные в любой точке программы, а не только в начале блока, и также задание констант без использования оператора #define препроцесора. Мы будем использовать эти возможности C++, оставаясь по существу в рамках языка Си.
Структура Си-программы
intuit.ru/2010/edi»>Любая достаточно большая программа на Си (программисты используют термин проект ) состоит из файлов. Файлы транслируются Си-компилятором независимо друг от друга и затем объединяются программой-построителем задач, в результате чего создается файл с программой, готовой к выполнению. Файлы, содержащие тексты Си-программы, называются исходными.В языке Си исходные файлы бывают двух типов:
- заголовочные, или h-файлы;
- файлы реализации, или Cи-файлы.
Имена заголовочных файлов имеют расширение » .h «. Имена файлов реализации имеют расширения » .c » для языка Си и » .cpp «, » .cxx » или » .cc » для языка C++.
К сожалению, в отличие от языка Си, программисты не сумели договориться о едином расширении имен для файлов, содержащих программы на C++. Мы будем использовать расширение » .h » для заголовочных файлов и расширение » .cpp » для файлов реализации.
Заголовочные файлы содержат только описания. Прежде всего, это прототипы функций. Прототип функции описывает имя функции, тип возвращаемого значения, число и типы ее аргументов. Сам текст функции в h-файле не содержится. Также в h-файлах описываются имена и типы внешних переменных, константы, новые типы, структуры и т.п. В общем, h-файлы содержат лишь интерфейсы, т.е. информацию, необходимую для использования программ, уже написанных другими программистами (или тем же программистом раньше). Заголовочные файлы лишь сообщают информацию о других программах. При трансляции заголовочных файлов, как правило, никакие объекты не создаются. Например, в заголовочном файле нельзя определить глобальную переменную. Строка описания
int x;
определяющая целочисленную переменную x, является ошибкой. Вместо этого следует использовать описание
extern int x;
означающее, что переменная x определена где-то в файле реализации (в каком — неизвестно). Слово extern (внешняя) лишь
Файлы реализации, или Cи-файлы, содержат тексты функций и определения глобальных переменных. Говоря упрощенно, Си-файлы содержат сами программы, а h-файлы — лишь информацию о программах.
Представление исходных текстов в виде заголовочных файлов и файлов реализации необходимо для создания больших проектов, имеющих модульную структуру. Заголовочные файлы служат для передачи информации между модулями. Файлы реализации — это отдельные модули, которые разрабатываются и транслируются независимо друг от друга и объединяются при создании выполняемой программы.
intuit.ru/2010/edi»>Файлы реализации могут подключать описания, содержащиеся в заголовочных файлах. Сами заголовочные файлы также могут использовать другие заголовочные файлы. Заголовочный файл подключается с помощью директивы препроцессора #include. Например, описания стандартных функций ввода-вывода включаются с помощью строки#include <stdio.h>
(stdio — от слов standard input/output). Имя h-файла записывается в угловых скобках, если этот h-файл является частью стандартной Си-библиотеки и расположен в одном из системных каталогов. Имена h-файлов, созданных самим программистом в рамках разрабатываемого проекта и расположенных в текущем каталоге, указываются в двойных кавычках, например,
#include "abcd.h"
Препроцессор — это программа предварительной обработки текста непосредственно перед трансляцией. Команды препроцессора называются директивами. Директивы препроцессора содержат символ диез # в начале строки.
#define PI 3.14159265
задает символическое имя PI для константы 3.14159265. После этого имя PI можно использовать вместо числового значения. Препроцессор находит все вхождения слова PI в текст и заменяет их на константу. Таким образом, препроцессор осуществляет подмену одного текста другим. Необходимость использования препроцессора всегда свидетельствует о недостаточной выразительности языка. Так, в любом Ассемблере средства препроцессирования используются довольно интенсивно. В Си по возможности следует избегать чрезмерного увлечения командами препроцессора — это затрудняет понимание текста программы и зачастую ведет к трудно исправляемым ошибкам. В C++ можно обойтись без использования директив #define для задания констант. Например, в C++ константу PI можно задать с помощью нормального описания
const double PI = 3. 14159265;
Это является одним из аргументов в пользу применения компилятора C++ вместо Си даже при трансляции программ, не содержащих конструкции класса.
Дальше >>
< Лекция 12 || Лекция 8: 1234567
Подобно C, Perl предоставляет операторы && (логическое И) и || (логический ИЛИ) операторы. Они оценивают слева направо (с && имеет несколько более высокий приоритет, чем ||) проверка истинности заявление. Эти операторы известны как операторы короткого замыкания, потому что они определяют истинность утверждения, оценивая наименьшее возможное количество операндов. Например, если левый операнд Оператор && является ложным, правильный операнд никогда не оценивается потому что результат оператора ложный независимо от значения правильный операнд.
Такие короткие замыкания не только экономят время, но и часто используются для управлять потоком оценки. Например, часто встречающаяся идиома в Perl-программы это: В этом случае Perl сначала оценивает открытая функция. Если значение истинно (потому что какой-то файл был успешно открыт), выполнение функции штампа не требуется, и поэтому пропущено. Вы можете прочитать это буквально как «Открой какой-нибудь файл или умри!»открыть(ФАЙЛ, "какой-то файл") || die "Не удается открыть файл: $!\n"; && и || операторы отличаются от C тем, что возвращают не 0 или 1, а последнее оцененное значение. В случае || это имеет восхитительный результат, который вы можете выбрать первым из серии скалярные значения, которые оказываются истинными. Таким образом, достаточно портативный способ узнать домашний каталог пользователя может быть: С другой стороны, поскольку левый аргумент всегда вычисляется в скалярном виде контекст, вы не можете использовать || для выбора между двумя агрегатами для задания:$home = $ENV{HOME} || $ENV{ЛОГКАТАЛОГ} || (получитьpwuid($<))[7] || die "Ты бездомный!\n"; Perl также обеспечивает более низкий приоритет и и или операторы, которые некоторые люди находят более читаемыми и не заставляйте вас использовать круглые скобки в операторах списка. Они также короткое замыкание. См. Таблицу 3-1 для полный список.@а = @б || @с; # Это не правильно @a = скаляр(@b) || @с; # потому что это действительно означает это. @а = @б ? @До нашей эры; # Однако это прекрасно работает.
Авторское право © 2001 O'Reilly & Associates. Все права защищены. |
Quick-R: Операторы
Двоичные и логические операторы R покажутся программистам очень знакомыми. Обратите внимание, что бинарные операторы работают с векторами и матрицами так же, как со скалярами.
Арифметические операторы
Оператор | Описание | |
+ | дополнение | |
- | вычитание | |
* | умножение | |
/ | отдел 9или ** | возведение в степень |
х %% г | Модуль(x mod y) 5%%2 равен 1 | |
х %/% г | целочисленное деление 5%/%2 равно 2 |
Логические операторы
Оператор | Описание |
< | меньше |
<= | меньше или равно |
> | больше |
>= | больше или равно |
== | точно равно |
!= | не равно |
!x | Не х |
х | у | х ИЛИ у |
х и у | х И у |
ИСТИНА(х) | проверить, истинно ли X |
# Пример
x <- c(1:10)
x[(x>8) | (x<5)]
# дает 1 2 3 4 9 10
# Как это работает F F F F F F F F T T
x < 5
T T T T F F F F F F
x > 8 | x < 5
T T T T F F F F T T
x[c(T,T,T,T,F,F,F,F,T,T)]
1 2 3 4 9 10
Идем дальше
Чтобы попрактиковаться в работе с логическими операторами в R, попробуйте бесплатную первую главу об условиях этого интерактивного курса.