Что такое findslide.org?

FindSlide.org - это сайт презентаций, докладов, шаблонов в формате PowerPoint.


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

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

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

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

Презентация на тему Язык программирования Си. Приведение типов, операции, потоковый ввод-вывод

Содержание

Приведение типовПеременной (параметру функции, результату функции и т. п.) присваивается значение, имеющее не её тип:char K = 100; short P = K;long long T = 100L;float R = 3;double Z = R;float Bound() {return 10;}Это возможно, т. к. программа произведёт приведение
Язык программирования СиПриведение типов, операцииПотоковый ввод-выводЮгов Иван ОлеговичМОУ Гимназия №10, г. Тверь Приведение типовПеременной (параметру функции, результату функции и т. п.) присваивается значение, имеющее не её тип:char K Приведение типовВозможны проблемы:short P = 500; char K = P;Значение может выходить Приведение типовПриведения, не вызывающие проблем:«коротких» целочисленных типов — к более «длинным» с такой же Приведение типовВозможны переполнения при приведении:«длинных» числовых типов — к более «коротким» (сужение типа):char ← Приведение типовВозможны потери точности при приведении:вещественных типов — к целочисленным (отбрасывается дробная часть):short ← Приведение типовМожно явно указать тип, к которому нужно преобразовать значение (операция приведения типа):char K = ОперацииГруппы операций (операторов):арифметические (сложение, умножение…);сравнения («равно», «меньше»…);логические («не», исключающее «или»…);битовые (сдвиги, битовые Свойства операцийОперанд — величина, над которой выполняется операция.По числу операндов операции бывают:унарные (1 операнд):–F, Свойства операцийПо способу записи унарные операции бывают:префиксные — записываются перед операндом:!K, (float)Y, ~6, ПриоритетПриоритет — свойство операции, влияющее на порядок вычисления её результата по отношению к другим операциям.Приоритет ПриоритетПорядок вычисления, как правило, такой:Унарные.Арифметика, сдвиги.Логика: сравнения, битовая, обычная.Условие.Присваивания.Приоритет обычно соответствует «естественному» АссоциативностьАссоциативность — свойство операции, означающее порядок вычисления в цепочке операций с таким же приоритетом. Бывает:слева АссоциативностьАссоциативность операций обычно соответствует «естественному» порядку их понимания:Унарные префиксные — справа налево.Унарные постфиксные — Арифметические операцииОпределены 5 арифметических операций:сложение (+):	5 + 6, a + b + Смена знакаОпределены 2 операции смены знака:плюс (+):	+b, +(e - 2);минус (смена знака) Битовый сдвигОпределены 2 операции битового сдвига:сдвиг вправо (>>):	A >> 7, 0xFF >> p; сдвиг влево ( Битовый сдвигСдвиги используются в операциях над битами, а также для быстрого умножения и деления Операции сравненияОперанды логического типа (целые — 0 или 1), результат логического типа.У операций «равно» и «не равно» Логические операцииОпределены 7 логических операций:Операции «НЕ» — префиксные: ~P, !(K > 5).Типы операндов ПриращенияОпределены 4 операции приращения:префиксный инкремент (++): ++P;префиксный декремент (––): ––P;постфиксный инкремент (++): ПриращенияПрефиксный инкремент (декремент) изменяет значение аргумента и возвращает его новое значение:k = ПрисваиванияОпределены 10 операций присваивания:=, +=, –=, *=, /=, %=, =, &=, ^=, УсловиеЕдинственная тернарная операция — условие:операнд1 ? операнд2 : операнд3Если значение первого операнда «истинно» Потоковый ввод-выводПотоковый ввод-вывод доступен в C++.Используется заголовочный файл iostream.Для его использования пишем Потоковый ввод-выводПоток — способ единообразной работы с файлами, устройствами ввода-вывода и т. п.Обычно определены 4 стандартных Потоковый ввод-выводВывод значений констант, переменных и т. п. на экран — с помощью операции > K;Можно вводить Потоковый ввод-выводМанипуляторы задают некоторые параметры ввода-вывода.Примеры:cin >> oct >> N; cout Потоковый ввод-выводРяд параметров определяется с помощью функций:Примеры:cout.width(4);C = cout.fill();
Слайды презентации

Слайд 2 Приведение типов
Переменной (параметру функции, результату функции и т. п.) присваивается

Приведение типовПеременной (параметру функции, результату функции и т. п.) присваивается значение, имеющее не её тип:char

значение, имеющее не её тип:
char K = 100; short P =

K;
long long T = 100L;
float R = 3;
double Z = R;
float Bound() {return 10;}
Это возможно, т. к. программа произведёт приведение типов — преобразует (приведёт) передаваемое значение к требуемому типу.
Приведение типов выполняется автоматически.

Слайд 3 Приведение типов
Возможны проблемы:
short P = 500; char K

Приведение типовВозможны проблемы:short P = 500; char K = P;Значение может

= P;
Значение может выходить за рамки назначаемого типа — переполнение.
При этом:
либо

геренируется ошибка при выполнении программы (Runtime Error);
либо в результате получается неверное значение.

Контролируйте приведение типов.


Слайд 4 Приведение типов
Приведения, не вызывающие проблем:
«коротких» целочисленных типов — к более

Приведение типовПриведения, не вызывающие проблем:«коротких» целочисленных типов — к более «длинным» с такой

«длинным» с такой же знаковостью (расширение типа):
short ← char,

unsigned long long ← unsigned short;
«коротких» вещественных типов — к более «длинным» (расширение типа):
double ← float, long double ← double;
целых типов — к вещественным достаточной точности:
float ← char, float ← short, double ← long.

Слайд 5 Приведение типов
Возможны переполнения при приведении:
«длинных» числовых типов — к более

Приведение типовВозможны переполнения при приведении:«длинных» числовых типов — к более «коротким» (сужение типа):char

«коротким» (сужение типа):
char ← long (500), float ← double

(7.5E+50);
беззнаковых целочисленных типов — к знаковым целочисленным:
signed short ← unsigned short (40000);
знаковых целочисленных типов — к беззнаковым целочисленным:
unsigned char ← signed char (-1).

Слайд 6 Приведение типов
Возможны потери точности при приведении:
вещественных типов — к целочисленным

Приведение типовВозможны потери точности при приведении:вещественных типов — к целочисленным (отбрасывается дробная часть):short

(отбрасывается дробная часть):
short ← float (6.9);
целочисленных типов — к вещественным недостаточной

точности (потеря младших разрядов):
float ← long (1000000000),
double ← long long (200000000000000000).


Слайд 7 Приведение типов
Можно явно указать тип, к которому нужно преобразовать

Приведение типовМожно явно указать тип, к которому нужно преобразовать значение (операция приведения типа):char K

значение (операция приведения типа):
char K = 120; P = (short)K;
Z =

(unsigned long long)40000;
return (_Bool)F;
При приведении числового типа к типу _Bool значение 0 остаётся 0, любое другое — преобразуется к значению 1.
Явное указание типа не предотвращает возможных проблем.

Слайд 8 Операции
Группы операций (операторов):
арифметические (сложение, умножение…);
сравнения («равно», «меньше»…);
логические («не»,

ОперацииГруппы операций (операторов):арифметические (сложение, умножение…);сравнения («равно», «меньше»…);логические («не», исключающее «или»…);битовые (сдвиги,

исключающее «или»…);
битовые (сдвиги, битовые логические…);
присваивания;
прочие (индекс, разыменование, приведение типа,

инкремент…).

Слайд 9 Свойства операций
Операнд — величина, над которой выполняется операция.
По числу

Свойства операцийОперанд — величина, над которой выполняется операция.По числу операндов операции бывают:унарные

операндов операции бывают:
унарные (1 операнд):
–F, (short)Z, i++;
бинарные (2 операнда):
a =

b, 7 – t, K >> 4, L & 0xFC;
тернарные (3 операнда):
F ? a : b.

Слайд 10 Свойства операций
По способу записи унарные операции бывают:
префиксные — записываются

Свойства операцийПо способу записи унарные операции бывают:префиксные — записываются перед операндом:!K, (float)Y,

перед операндом:
!K, (float)Y, ~6, –F;
постфиксные — записываются после операнда:
i++, j––.


Слайд 11 Приоритет
Приоритет — свойство операции, влияющее на порядок вычисления её результата

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

по отношению к другим операциям.
Приоритет выражается числом.
Больше число — выше приоритет.
Операция

вычисляется только после того, как над её операндами вычислены все операции с бо́льшим приоритетом:
z = C + A * (long)x + B * (long)y;

16

16

16

16

16

16

16

14

14

2

12

12

13

13


Слайд 12 Приоритет
Порядок вычисления, как правило, такой:
Унарные.
Арифметика, сдвиги.
Логика: сравнения, битовая,

ПриоритетПорядок вычисления, как правило, такой:Унарные.Арифметика, сдвиги.Логика: сравнения, битовая, обычная.Условие.Присваивания.Приоритет обычно соответствует

обычная.
Условие.
Присваивания.
Приоритет обычно соответствует «естественному» порядку их понимания.
Приоритет можно менять

с помошью скобок (): R = (2 + 2) * 2;

Слайд 13 Ассоциативность
Ассоциативность — свойство операции, означающее порядок вычисления в цепочке операций

АссоциативностьАссоциативность — свойство операции, означающее порядок вычисления в цепочке операций с таким же приоритетом.

с таким же приоритетом. Бывает:
слева направо: a + 7 –

2 + 6 – f — 2;
справа налево: a = b = c = d = 0.
На порядок вычисления операций влияют их приоритет и ассоциативность.
z = C + A * (long)x + B * (long)y;

16

16

16

16

16

16

16

14
<

14
<

2
<

12
>

12
>

13
>

13
>


Слайд 14 Ассоциативность
Ассоциативность операций обычно соответствует «естественному» порядку их понимания:
Унарные

АссоциативностьАссоциативность операций обычно соответствует «естественному» порядку их понимания:Унарные префиксные — справа налево.Унарные

префиксные — справа налево.
Унарные постфиксные — слева направо.
Присваивания — справа налево.
Остальные бинарные —

слева направо.


Слайд 15 Арифметические операции
Определены 5 арифметических операций:
сложение (+): 5 + 6,

Арифметические операцииОпределены 5 арифметических операций:сложение (+):	5 + 6, a + b

a + b + c, 1.5 + K;
вычитание (–):

9.0 – 7.4, -6E-3 – A;
умножение (*): 10 * a, k * x;
деление (/): 100 / 3, Prime / 5, 4.2 / 0.6;
получение остатка от деления (деление по модулю) (%): 100 % 3, U % p.
Операнды целые или вещественные (для % — только целые).
Тип результата — «больший» из типов операндов.
Если появляется «минус», то знаковый.

Слайд 16 Смена знака
Определены 2 операции смены знака:
плюс (+): +b, +(e

Смена знакаОпределены 2 операции смены знака:плюс (+):	+b, +(e - 2);минус (смена

- 2);
минус (смена знака) (–): –Y, -(B + 2).
Операнды

целые или вещественные.
Тип результата — как у операнда.
Если появляется «минус», то знаковый. Возможно расширение типа.

Слайд 17 Битовый сдвиг
Определены 2 операции битового сдвига:
сдвиг вправо (>>): A

Битовый сдвигОпределены 2 операции битового сдвига:сдвиг вправо (>>):	A >> 7, 0xFF >> p; сдвиг влево (

>> 7, 0xFF >> p;
сдвиг влево (

<< p.
Операнды целые.
Тип результата — int или long long.
Второй операнд может быть отрицательным (сдвиг в обратную сторону).
Сдвиг вправо — арифметический, сохраняет старший бит (знак) операнда.

Слайд 18 Битовый сдвиг
Сдвиги используются в операциях над битами, а также

Битовый сдвигСдвиги используются в операциях над битами, а также для быстрого умножения

для быстрого умножения и деления целых чисел на степени двойки:
K

<< 4 ~ K * 16
P >> 10 ~ P / 1024
(для положительных P)
P >> 10 ~ (P - 1) / 1024
(для отрицательных P)

Слайд 19 Операции сравнения
Операнды логического типа (целые — 0 или 1), результат логического

Операции сравненияОперанды логического типа (целые — 0 или 1), результат логического типа.У операций «равно»

типа.
У операций «равно» и «не равно» приоритет ниже, чем у остальных

операций сравнения.
Не путайте сравнение на равенство (==) с присваиванием (=).

Определены 6 операций сравнения:

равно (==);
больше (>);
меньше (<);

не равно (!=);
меньше или равно (<=);
больше или равно (>=).


Слайд 20 Логические операции
Определены 7 логических операций:
Операции «НЕ» — префиксные: ~P,

Логические операцииОпределены 7 логических операций:Операции «НЕ» — префиксные: ~P, !(K > 5).Типы

!(K > 5).
Типы операндов и результата битовых операций — int или

long long, логических — логический.

Логические:
«НЕ» (!);
«И» (&&);
«ИЛИ» (||).

Битовые:
«НЕ» (~).
«И» (&);
«ИЛИ» (|);
исключающее «ИЛИ» (^).


Слайд 21 Приращения
Определены 4 операции приращения:
префиксный инкремент (++): ++P;
префиксный декремент

ПриращенияОпределены 4 операции приращения:префиксный инкремент (++): ++P;префиксный декремент (––): ––P;постфиксный инкремент

(––): ––P;
постфиксный инкремент (++): P++;
постфиксный декремент (––): P––.
Увеличивают (уменьшают)

значение операнда на единицу. Операнд — только переменная.
Результат того же типа, что и операнд.


Слайд 22 Приращения
Префиксный инкремент (декремент) изменяет значение аргумента и возвращает

ПриращенияПрефиксный инкремент (декремент) изменяет значение аргумента и возвращает его новое значение:k

его новое значение:
k = 7; p = ++k;
k =

7; p = ––k;
Постфиксный инкремент (декремент) возвращает текущее значение аргумента и только потом его изменяет:
k = 7; p = k++;
k = 7; p = k––;

k = 8, p = 8
k = 6, p = 6

k = 8, p = 7
k = 6, p = 7


Слайд 23 Присваивания
Определены 10 операций присваивания:
=, +=, –=, *=, /=,

ПрисваиванияОпределены 10 операций присваивания:=, +=, –=, *=, /=, %=, =, &=,

%=, =, &=, ^=, |=.
Левый операнд — только переменная.
Сами

возвращают присвоенное значение с типом левого операнда: a = b + (c = 6) * 2.
Присваивания с операциями работают так:
k += 7; аналогично k = k + 7;
T *= 7 + e; аналогично T = T * (7 + e);
Приоритет — низкий.
Ассоциативность — справа налево.

Слайд 24 Условие
Единственная тернарная операция — условие:
операнд1 ? операнд2 : операнд3
Если

УсловиеЕдинственная тернарная операция — условие:операнд1 ? операнд2 : операнд3Если значение первого операнда

значение первого операнда «истинно» (не ноль), то возвращает второй операнд,

иначе возвращает третий операнд:
если операнд1 , то операнд2 , иначе операнд3
max = x > y ? x : y;
sign = a == 0 ? 0 : a > 0 ? 1 : -1;
Ассоциативность — справа налево.

Слайд 25 Потоковый ввод-вывод
Потоковый ввод-вывод доступен в C++.
Используется заголовочный файл

Потоковый ввод-выводПотоковый ввод-вывод доступен в C++.Используется заголовочный файл iostream.Для его использования

iostream.
Для его использования пишем в начале кода:
#include
Также включаем

пространство имён:
using namespace std;
Каждая программа в операционной системе по умолчанию уже может работать с несколькими стандартными потоками.

Слайд 26 Потоковый ввод-вывод
Поток — способ единообразной работы с файлами, устройствами ввода-вывода

Потоковый ввод-выводПоток — способ единообразной работы с файлами, устройствами ввода-вывода и т. п.Обычно определены 4

и т. п.
Обычно определены 4 стандартных потока:




Если не указать пространство имён

в заголовке, то придётся это делать перед именами потоков: std::cin, std::cout.

Слайд 27 Потоковый ввод-вывод
Вывод значений констант, переменных и т. п. на экран — с помощью

Потоковый ввод-выводВывод значений констант, переменных и т. п. на экран — с помощью операции > K;Можно

операции

>> K;
Можно вводить (выводить) несколько значений:
cin >> A >> B >> C;

Слайд 28 Потоковый ввод-вывод
Манипуляторы задают некоторые параметры ввода-вывода.





Примеры:
cin >> oct

Потоковый ввод-выводМанипуляторы задают некоторые параметры ввода-вывода.Примеры:cin >> oct >> N; cout

>> N; cout


  • Имя файла: yazyk-programmirovaniya-si-privedenie-tipov-operatsii-potokovyy-vvod-vyvod.pptx
  • Количество просмотров: 157
  • Количество скачиваний: 0