Основные операции. Базовые управляющие конструкции структурного программирования. (Лекция 2.2) презентация

Содержание

Повторение Вопрос 1. Укажите НЕВЕРНЫЕ идентификаторы и поясните почему R025 d_25d 4ab Угол PS/2

Слайд 1Лекция 2
Основные операции

Базовые управляющие конструкции


Слайд 2Повторение
Вопрос 1. Укажите НЕВЕРНЫЕ идентификаторы и поясните почему
R025
d_25d
4ab
Угол
PS/2


Слайд 3Повторение
Вопрос 2. Назовите тип константы
'A‘
true
"А”
0xA
0e1


Слайд 5ОТВЕТ
Вопрос 1.
3 – начинается с цифры
4 – нельзя использовать русские буквы
5

– нельзя использовать знак “/”

Вопрос 2.
символьная
логическая
строковая
целая в 16-ой системе
вещественная

Слайд 6Состав языка (формальные языки)
Символы - набор неделимых знаков, с помощью которых

пишутся все тексты;
лексемы – минимальная единица языка, имеющая самостоятельный смысл;
выражение – задает правило вычисления некоторого значения;
оператор – задает законченное описание некоторого действия.

Слайд 7Выражение
Выражение – это конструкция, составленная из констант, переменных, знаков операций, функций

и скобок.
Основное назначение выражения:
определить порядок вычисления некоторого выражения;
найти значение выражения.
Если результатом вычисления выражения является число, то данное выражение – арифметическое.
Если результатом будет значение «истина» или «ложь», то это логическое выражение.

Слайд 8Операции
Операции можно разделить на три группы:
УНАРНЫЕ :
требуют один объект:

<операнд>
<операнд> <оп>
БИНАРНЫЕ
требуют двух объектов: < операнд> <оп> <операнд>
ТЕРНАРНЫЕ
Требуют трех объектов (условная операция)

Слайд 9Приоритет выполнения операций
Унарные операции
Бинарные и тернарная операции
Арифметические операции
Операции сравнения
Побитовые операции
Логические операции
Условная

операция
Операции присваивания
Последовательное вычисление



Слайд 10Унарные операции
++ увеличение на 1
– – уменьшение на 1
sizeof размер
~ поразрядное отрицание
! логическое отрицание
– унарный минус
+ унарный

плюс
& взятие адреса
* разадресация
new выделение памяти
delete освобождение памяти
(<тип>) преобразование типа



Слайд 11Арифметические операции
++ (инкремент) - увеличивает значение переменной на единицу (+1)
--

(декремент) - уменьшает значение переменной на единицу (–1)
Применяются только к переменным!
Префиксная форма: ++a; --b;
Суффиксная (постфиксная) форма: c++; d--;

Слайд 12Инкремент. Декремент
Префиксная форма: сначала значение переменной увеличивается на единицу, а затем

измененное значение подставляется в выражение.
Суффиксная форма: в выражение подставляется старое значение переменной и только после этого значение переменной увеличивается на единицу.
Пример 1
int a=3, b=5, с;
c=(a++)+(++b); // c=3+6=9; a=4; b=6
Пример 2
int a=3, b=5,c;
c=(a--)+(--b); // c=3+4=7; a=2; b=4




Слайд 13Арифметические операции
Мультипликативные операции
* умножение
/ деление
% остаток от деления
Аддитивные операции
+ сложение
– вычитание
Операции сдвига
>> сдвиг вправо


Слайд 14Арифметические операции. Деление
Вещественное деление: если один из операндов имеет вещественный тип.
1.2/0.4=3.0 //

Вещественное деление (double):
12/0.4=30.0
1.2/4=0.3
Деление нацело (аналог div в языке Паскаль):
12/4=3 (int)
1/4=0
12/5=2
Пример. Вычислить 1/n.
n=10;
h=1/n; // неверно!
h=1.0/n; // верно

Слайд 15Арифметические операции
% остаток от деления нацело (аналог mod в Паскале)
Применяется только

к операндам целого типа.
При выполнении операции деления если знаки делимого и делителя совпадают, то результат – положительный, и ответ будет отрицательным, если знаки разные.
5%2=1 5/2=2
-5%2=-1 -5/2=-2
5%-2=1 5/-2=-2
-5%-2=-1 -5/-2=2

Слайд 16Операции сравнения
Сравнение на «больше-меньше»
>
>=


Слайд 17Побитовые операции
Поразрядная конъюнкция (И)
&
Поразрядное исключающее ИЛИ
^
Поразрядная дизъюнкция (ИЛИ)
|


Слайд 18Логические операции
Логическое И
&&
Логическое ИЛИ
||


Слайд 19Условная операция (тернарная)
? :




Слайд 20Операции присваивания
=
*=
/=
%=
+=
–=
=
&=
^=
|=


Слайд 21
Оператор присваивания
Общая структура:
Арифметическое выражение может включать
константы (постоянные)
имена переменных
знаки арифметических операций:

+ - * / %

вызовы функций
круглые скобки ( )

умножение

деление

остаток от деления

имя переменной = выражение;

куда записать

что


Слайд 22
Сокращенная запись операций в Си
инкремент
декремент
a = a + 1;
a++;
a = a

+ b;

a += b;

a = a - 1;

a--;

a = a – b;

a -= b;

a = a * b;

a *= b;

a = a / b;

a /= b;

a = a % b;

a %= b;


Слайд 23Последовательное вычисление





Слайд 24Операции присваивания
int a=55; // операция присваивания
int x, y, z;
x = y = z = a*5;
В выражении

используется два раза операция присваивания и один раз оператор присваивания.
Операция присваивания выполняется справа налево (правоассоциативная):


Слайд 25Правила записи выражений
Все символы, входящие в выражение, записываются в строку.
Проставляются все

знаки операций.
При записи выражений учитываются приоритеты (ранги) операций.
Для изменения приоритета последовательности операций используются круглые скобки.
Замечание:
Если в выражениях встречаются переменные и константы разных типов, то производится автоматическое преобразование типов.

Слайд 26
Порядок выполнения операций
вычисление выражений в скобках
умножение, деление, % слева направо
сложение и

вычитание слева направо

2 3 5 4 1 7 8 6 9
z = (5*a*c+3*(c-d))/a*(b-c)/ b;



Слайд 27Правила преобразования типов
Преобразование типов не происходит, если оба операнда имеют одинаковый

тип.
При наличии разных типов величина с младшим типом приводится к величине старшего типа, исключение составляют операция присваивания и оператор присваивания.
При выполнении операций присваивания величина, полученная в правой части, преобразуется к типу переменной, стоящей в левой части.
Пример:
int x;
float a=2.55, c=1.75; //double преобразуется в
// float
x=a+c;
cout<

Слайд 28Преобразование типов
Преобразование целого типа (от младшего к старшему)
char → short → int → long int
Преобразование вещественного

типа (от младшего к старшему)
float → double → long double

Слайд 29Как выполнять операции одинакового приоритета?
Слева направо (→) все операции кроме…
Справа налево

(←)
Унарные операции

Тернарная операция

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


Слайд 30Задача: поменять местами значения переменных a и b
Используем дополнительную переменную (tmp).

tmp

= a;
a = b;
b = tmp;


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

a = a + b;
b = a – b;
a = a – b;


Слайд 31Вычислить min(a,b)
if (a

b;

min = (a < b)*a + (a >= b)*b;

Еще способы ???

Слайд 32Математические функции
#include

|x| fabs(x)
sin x sin(x)
cos x cos(x)
tg x tan(x)
ex exp(x)
ln x log(x)
xy pow(x,y)
sqrt(x)

Возможности округления:
ceil(x) округление

вверх (ceil(4.3) =5,
ceil(- 4.3)=-4)
floor(x) округление вниз (floor(4.9) =4,
floor(- 4.9) = -5)
(int)x приведение к типу int, дробная часть отбрасывается
(int)4.7 = 4, int(-4.7) = -4

Слайд 33Базовые конструкции структурного программирования


Слайд 34Условный оператор
if (условие) оператор_1; else оператор_2;
Здесь условие - это логическое выражение,

переменная или константа.
Сначала вычисляется значение выражения, записанного в виде условия.
Если оно имеет значение истина (true, не равно 0), выполняется оператор_1.
В противном случае (значение ложное (false), равно 0 ) оператор_2.

Слайд 35Условный оператор
Если в задаче требуется, чтобы в зависимости от значения условия

выполнялся не один оператор, а несколько, их необходимо заключить в фигурные скобки, как составной оператор.
if (условие)
{
оператор_1;
оператор_2;
… }
else
{
оператор_1;
оператор_2; …
}
Альтернативная ветвь else в условном операторе может отсутствовать, если в ней нет необходимости.

Слайд 36Условный оператор
if ( a > b )
{
с =

a;
a = b;
b = c;
}

Слайд 37Вложенные условные операторы
if ( a > b )
printf("Андрей старше");
else





if ( a == b )
printf("Одного возраста");
else
printf("Борис старше");

вложенный условный оператор

Задача: в переменных a и b записаны возрасты Андрея и Бориса. Кто из них старше?


Слайд 38Задача
Даны три целых числа различных между собой: a,b и с.
Перераспределить их

значения таким образом, чтобы в переменной а оказалось самое маленькое из значений, в с – самое большое, в переменную b поместить оставшееся.
Разрешается использовать только одну дополнительную переменную.

Слайд 39Оператор switch
switch ()
{
case конст.выр.1: []

case конст.выр.2: [<список операторов 2>]

case конст.выр.n: [<список операторов n>]
[default: <операторы>]
}

Слайд 40Множественный выбор
if (m == 1) printf("январь");
if (m == 2) printf("февраль");
...
if (m

== 12) printf("декабрь");

switch ( m ) {
case 1: printf("январь");
break;
case 2: printf("февраль");
break;
...
case 12: printf("декабрь");
break;
default: printf("ошибка");
}


Слайд 41Множественный выбор
switch ( m ) {
case 1:

printf("январь");
case 2: printf("февраль");
case 3: printf("март");
default: printf("ошибка");
}

Если не ставить break:

февральмартошибка

При m = 2:






Обратная связь

Если не удалось найти и скачать презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое ThePresentation.ru?

Это сайт презентаций, докладов, проектов, шаблонов в формате PowerPoint. Мы помогаем школьникам, студентам, учителям, преподавателям хранить и обмениваться учебными материалами с другими пользователями.


Для правообладателей

Яндекс.Метрика