Оцените презентацию от 1 до 5 баллов!
Тип файла:
ppt / pptx (powerpoint)
Всего слайдов:
21 слайд
Для класса:
1,2,3,4,5,6,7,8,9,10,11
Размер файла:
175.86 kB
Просмотров:
53
Скачиваний:
0
Автор:
неизвестен
Слайды и текст к этой презентации:
№1 слайд![Язык Си. Часть ПРИВЕДЕНИЕ](/documents_6/a0d3b435b410f835d8f1c587f6e93a9a/img0.jpg)
Содержание слайда: Язык Си. Часть 5
ПРИВЕДЕНИЕ ТИПОВ. СИМВОЛЫ И СТРОКИ.
№2 слайд![Приведение типов](/documents_6/a0d3b435b410f835d8f1c587f6e93a9a/img1.jpg)
Содержание слайда: Приведение типов
№3 слайд![Приведение типов Некоторые](/documents_6/a0d3b435b410f835d8f1c587f6e93a9a/img2.jpg)
Содержание слайда: Приведение типов
Некоторые операции в зависимости от своих операндов могут инициировать преобразование значений из одного типа в другой.
Приведение типов (cast) в языке Си может быть явным (explicit) и неявным (implicit).
При явном приведении типов перед выражением ставится имя нужного типа в круглых скобках.
Пример: float k = (float) 1/3; // k = 0.333…
Неявное приведение типов выполняется компиляторов автоматически по указанным далее правилам.
№4 слайд![Преобразования целых типов](/documents_6/a0d3b435b410f835d8f1c587f6e93a9a/img3.jpg)
Содержание слайда: Преобразования целых типов
Знаковые и беззнаковые значения типа char, short int и enum могут использоваться в выражениях везде, где разрешено применение целых чисел. Если тип int позволяет представить все значения исходного типа операнда, то операнд приводится к int, в противном случае— к unsigned int. Эта процедура называется расширением целочисленного типа (integral promotion).
При преобразовании signed-типа А к unsigned-типу В если длина с битах А > В, то лишние левые биты отбрасываются, иначе – недостающие заполняются нулями.
В результате приведения unsigned-типа к signed его значение не меняется, если оно представимо в этом новом типе; в противном случае результат зависит от реализации.
№5 слайд![Преобр-е целое веществ-е При](/documents_6/a0d3b435b410f835d8f1c587f6e93a9a/img4.jpg)
Содержание слайда: Преобр-е «целое – веществ-е»
При преобразовании из вещественного типа в целочисленный дробная часть числа отбрасывается; если полученное при этом значение нельзя представить величиной заданного целочисленного типа, то результат не определен.
Если число преобразуется из целого в вещественное и находится в допустимом диапазоне, но представляется в новом типе недостаточно точно, то результатом будет большее или меньшее ближайшее значение нового типа. Если результат выходит за границы диапазона допустимых значений, результат не определен.
№6 слайд![Преобр-е вещественных типов](/documents_6/a0d3b435b410f835d8f1c587f6e93a9a/img5.jpg)
Содержание слайда: Преобр-е вещественных типов
При преобразовании из вещественного типа меньшей точности к типу большей точности число не изменяется. (float -> double)
Если преобразование выполняется от большей точности к меньшей и число остается в допустимых пределах нового типа, то результатом будет большее или меньшее ближайшее значение нового типа. Если результат выходит за границы допустимого диапазона, результат не определен:
double R = 2e+100;
float R2 = R; /* Исключение типа Floating overflow – переполнение типа float */
№7 слайд![](/documents_6/a0d3b435b410f835d8f1c587f6e93a9a/img6.jpg)
№8 слайд![Арифметические преобразования](/documents_6/a0d3b435b410f835d8f1c587f6e93a9a/img7.jpg)
Содержание слайда: Арифметические преобразования
№9 слайд![Преобразования указателей](/documents_6/a0d3b435b410f835d8f1c587f6e93a9a/img8.jpg)
Содержание слайда: Преобразования указателей
Любой указатель можно привести к типу void * без потери информации. Если результат подвергнуть обратному преобразованию, получится исходный указатель. Указатели типа void * можно употреблять совместно с указателями любого типа в операциях присваивания и сравнения каким угодно образом.
При преобразовании указателей других типов по факту ничего не происходит, но транслятор «запоминает», что операции адресной арифметики и разыменования нужно выполнять в соответствии с новым типом данных.
№10 слайд![Работа со строками и символами](/documents_6/a0d3b435b410f835d8f1c587f6e93a9a/img9.jpg)
Содержание слайда: Работа со строками и символами
№11 слайд![Кодировки символов Для](/documents_6/a0d3b435b410f835d8f1c587f6e93a9a/img10.jpg)
Содержание слайда: Кодировки символов
Для представления текста в цифровом формате необходимо придумать систему кодирования, в которой каждой букве соответствовал бы уникальный двоичный код. Свои коды понадобятся и для цифр, и для знаков препинания, поскольку без них в тексте не обойтись.
Кодирование – это представление чего-либо чем-нибудь другим.
Кодировка (набор символов, чарсет, charset, кодовая страница) – это набор правил, описывающий способ перевода одного представления в другое, т.е. таблица кодов, закрепляющая за символом набор битов.
№12 слайд![Кодировка ASCII год](/documents_6/a0d3b435b410f835d8f1c587f6e93a9a/img11.jpg)
Содержание слайда: Кодировка ASCII 1967 год
– американский стандартный код для обмена информацией (American Standard Code for Information Interchange).
ASCII — это 7-битовая кодировка. Ее коды принимают значения от 0000000 до 1111111 или в шестнадцатеричном выражении от 00h до 7Fh.
Первые 33 кода – управляющие и непечатные символы (например: ‘\t’ – 09h, ‘\n’ – 0Ah), остальные – буквы латинского алфавита, цифры и знаки препинания.
Для кодирования национальных символов используют расширенную ASCII-таблицу и коды 128-255. Для Windows это кодировка Windows CP-1251. Кодировка букв в консоли Windows по умолчанию MS-DOS CP-866.
Кириллицу также содержат кодовые страницы ISO-8859-5 (Linux), CP KOI-8U и CP KOI-8R (СССР). Для других языков существуют свои кодовые таблицы.
№13 слайд![](/documents_6/a0d3b435b410f835d8f1c587f6e93a9a/img12.jpg)
№14 слайд![Unicode год таблица](/documents_6/a0d3b435b410f835d8f1c587f6e93a9a/img13.jpg)
Содержание слайда: Unicode 1988 год
– таблица кодирования символов, которая содержит 1 114 112 кодов для символов всех языков.
Первые 128 символов — с кодами от 0000h до 007Fh — совпадают с символами ASCII.
Unicode в первую и главную очередь определяет таблицу пунктов для символов. Это такой способ сказать «65 – A, 66 – B, 9731 – ☃». Как эти пункты кодируются в байты зависит от конкретной кодировки. Для представления 1 114 112 значений двух байт недостаточно. Трех достаточно, но 3 – странное число, так что 4 является комфортным минимумом.
UTF-32 – это кодировка, которая переводит все символы в наборы из 32 бит.
UTF-16 и UTF-8 являются кодировками с переменной длиной кодирования. Если символ может быть закодирован одним байтом, UTF-8 закодирует его одним байтом. Если нужно 2 байта, то используется 2 байта. Кодировка сообщает старшими битами, сколькими битами кодируется текущий символ.
UTF-16 является компромиссом: все символы как минимум двухбайтные, но их размер может увеличиваться до 4 байт, если нужно.
№15 слайд![Тип char Переменная типа char](/documents_6/a0d3b435b410f835d8f1c587f6e93a9a/img14.jpg)
Содержание слайда: Тип char
Переменная типа char занимает 1 байт памяти и хранит целое число, обозначающее код символа в какой-либо стандартной кодировке.
Отсюда следует, что, во-первых, с типом char можно работать, как с обычным целым числом. А во-вторых, что значения типа int тоже можно воспринимать как коды символов.
В случае с типом int по умолчанию подразумевается модификатор знака signed. Но что касается типа char, то в стандарте указано, что тип char должен совпадать либо с signed char, либо с unsigned char, и это зависит от компилятора! То есть в общем случае, типы signed char, unsigned char и char – это 3 разных типа!*
№16 слайд![Функции для работы с char](/documents_6/a0d3b435b410f835d8f1c587f6e93a9a/img15.jpg)
Содержание слайда: Функции для работы с char
Ввод/вывод:
1. Указание типа в printf/scanf - %c. Пример: вывод всей кодовой таблицы:
int main(){
int i;
for( i = 0; i < 256; i++)
printf("symbol: %c, code = %d\n", i, i);
}
2. Ввод: функция getchar() – возвращает код введенного символа.
Вывод: функция putchar(char c).
3. Для ввода/вывода в файл – функции getc(), putc().
4. Функции ungetch(), getch() – посмотреть самостоятельно!
№17 слайд![](/documents_6/a0d3b435b410f835d8f1c587f6e93a9a/img16.jpg)
№18 слайд![](/documents_6/a0d3b435b410f835d8f1c587f6e93a9a/img17.jpg)
№19 слайд![Строки Строка это массив](/documents_6/a0d3b435b410f835d8f1c587f6e93a9a/img18.jpg)
Содержание слайда: Строки
Строка – это массив элементов типа char, заканчивающийся символом ‘\0’ (NULL).
№20 слайд![](/documents_6/a0d3b435b410f835d8f1c587f6e93a9a/img19.jpg)
№21 слайд![](/documents_6/a0d3b435b410f835d8f1c587f6e93a9a/img20.jpg)