Лекция "Программирование" Стандртаные типы
план-конспект урока по информатике и икт на тему
В данной лекции предлагается материал для изучения основных типов, которые встроены в зяк программирования С++.
Скачать:
Вложение | Размер |
---|---|
dannye_i_velichiny.doc | 77.5 КБ |
Предварительный просмотр:
Данные и величины
Совокупность величин, с которыми работает ПК, называется данными. По отношению к программе данные делятся на исходные, результаты (окончательные данные) и промежуточные, которые получаются в процессе вычислений.
Например, при решении квадратного уравнения ах+bx+c=0 исходными данными являются коэффициенты a, b, c; результатами - корни уравнения х1, х2; промежуточными данными - дискриминант уравнения D=b - 4ac.
Всякая величина имеет четыре атрибута:
- имя - идентификатор;
- значение;
- тип;
- адрес в памяти.
Любые величины сначала надо объявить (выделить память), а потом уже использовать. Сколько выделить памяти под величину зависит от значения величины: под число 15 выделяется памяти меньше, чем под число 15 000. С помощью имени величины осуществляется доступ к ней из программы. По адресу этой величины ЦП обрабатывает эту величину. Тип величины указывается для определения размера ОП под величину. Значение величины – это содержимое ячеек памяти, выделенных под эту величину. Имя величины задает сам программист, т.к. он пишет текст программы. Правила составления идентификаторов
- Идентификаторы должны быть осмысленными, так легче читать и понимать программу.
- Нельзя использовать русские буквы
- Можно буквы латинского алфавита большие и маленькие
- Можно цифры
- Пробел не разрешается, вместо него можно использовать _
- Нельзя начинать идентификатор с цифры
- Можно произвольной длины, но различаются первые 32 символа в имени
- Имеются различия между большими и малыми буквами, например, такие имена считаются различными:KOL, Kol, kol
- Нельзя использовать служебные слова.
Примеры правильных и неправильных идентификаторов:
Metka45(+), 4Graf (-), Block_2 (+), Nomer.Doma (-), Сумма (-), for (-), Kol Mes (-), _sum (+)
Константы и переменные
Величины делятся на константы и переменные. Константы используются в программах для задания постоянных величин, которые не меняют своего значения в ходе выполнения программы. Например: количество месяцев в году, число Пи, Банковский процент, налоговая ставка и др.
Константы в программе можно задавать двумя способами:
- С использованием строчки вида: #define идентификатор значение
Например: #define GOD 2008
- С использованием строчки вида: const тип идентификатор=значение;
Например: const float NALOG=0.13;
Обычно имена констант пишут с большой буквы, чтобы отличать их от других величин в программе. После создания констант, их имена можно использовать в любом месте программы вместо ее значения.
Преимущества использования констант
- Лучше использовать понятные имена вместо числовых значений. Например: красный цвет имеет значение 4, поэтому лучше создать константу с понятным именем цвета, чтобы потом это имя использовать там, где надо задать красный цвет. #define RED 4
- Упрощает внесение изменений в текст программы. Достаточно в одном месте изменить значение константы, чтобы потом не вносить изменения во всем тексте.
- Работа с константами выполняется значительно быстрее, т.к. они обрабатываются еще на этапе трансляции текста программы.
Переменные могут менять свои значения в ходе выполнения программы. Например: Сумма на банковском счету, текущие показания часов, положение танка на экране монитора и др.
Переменные в программе задаются строчкой вида:
тип идентификатор;
Переменные одного типа можно перечислять через запятую. Например:
float Sum, Premiy;
Встретить такую строчку, компилятор выделяет ячейки памяти под данные переменные.
Система типов языка С
Программам приходится обрабатывать очень разнообразную информацию: тексты, звуки, видео, числа. Для того чтобы указать процессору, как он должен обработать поступающую к нему информацию, для каждой информации указывается ее тип. В каждом языке программирования существует своя система типов. Однако, какой бы язык не был, в него обязательно входит набор основных типов данных: целый, вещественный и символьный. В некоторых языках есть еще логический тип. С типом величины связаны три ее характеристики:
- множество допустимых значений (диапазон);
- форма внутреннего машинного представления в памяти ПК;
- множество допустимых операций.
Целые величины
К целым величинам относят данные, которые не имеют дробной части. Обычно целые величины используются для задания количества, позиций, номеров, координат на экране монитора и другие. С целыми величинами связаны ключевые слова: int, short, long.
Типы отличаются между собой размером отводимой памяти, и, следовательно, диапазоном значений, которые в эту память можно помещать.
Тип short может занимать 1 или 2 байта – зависит от типа ПК
Тип int может занимать 2 или 4 байта – зависит от типа ПК
Тип long всегда занимает 4 байта.
В общем виде: short<=int<=long
Целые величины делятся на беззнаковые и знаковые.
Беззнаковые целые величины
Относятся все положительные целые числа и ноль. Например: 12, 45, 0. Признаком беззнакового числа служит применение ключевого слова unsigned к типам int, short, long. Например:
unsigned short - беззнаковое короткое целое
unsigned int - беззнаковое обычное целое
unsigned long - беззнаковое длинное целое
Целые беззнаковые величины можно указывать в 10-тичной, 8-ричной и 16-ричной системе счисления. Правила указания системы счисления:
- для 8 с/с: 0 перед числом, за ним цифры 0..7
- для 16 с/с: 0х перед числом, за ним цифры 0..9 и буквы a..f (A..F)
- для 10 с/с: цифры 0..9
Пример: 65, 0101, 0х41 – одно и тоже число в разных системах счисления.
Хранение в памяти беззнаковых величин – все биты отданы под число.
Для случая 1 байта = 8 бит: самое маленькое число 000000002=0
самое большое число 111111112=255
Для случая 2 байт=16 бит: самое маленькое число 00000000000000002=0
самое большое число 11111111111111112=65535
Для случая 4 бай=32 бита: самое маленькое число 000000000000000..=0
самое большое число 1111….1112=4 294 967 295
Знаковые целые величины
Относятся все положительные, отрицательные целые числа и ноль. Например: 12, -45, 0. Признаком знакового числа служит отсутствие ключевого слова unsigned у типов int, short, long. Например:
short - знаковое короткое целое
int - знаковое обычное целое
long - знаковое длинное целое
Целые знаковые величины можно указывать в только 10-тичной системы счисления. Хранение знакового числа: один самый старший бит отдан под знак числа, следовательно, в два раза сужен диапазон допустимых значений. Если бит равен 1, то число отрицательное, 0 – число положительное.
Для случая 1 байта: самое маленькое число 100000002=-128
самое большое число 011111112=127
Для случая 2 байт: самое маленькое число 10000000000000002=-32768
самое большое число 01111111111111112=32767
Для случая 4 бай: самое маленькое число 100000000000000..=-2 147 483 648
самое большое число 0111….1112=2 147 483 647
111111112=255 для беззнаковых
111111112=-1 для знаковых целых
Например: Число 3 и число (-3) для случая 1 байта знаковых чисел.
Число 310=000000112. Чтобы число 3 превратить в отрицательное число нельзя просто поменять 0 на 1 в старшем разряде, т.е. 100000112= -12510. Отрицательные числа хранятся в памяти в дополнительном коде. Чтобы получить дополнительный код числа надо выполнить действия:
- взять модуль числа и записать его в 2 с/с;
- поменять 1 на 0, 0 на 1
- прибавить к полученному числу двоичную 1.
Применим эти правила для представления числа (-3)
1. | -3 |=3 000000112
2. 111111002 – замена 1 на 0, 0 на 1
3. 11111100
+ 1
111111012 – двоичное представление числа (-3) в памяти ПК
Чтобы убедиться в правильности вычислений: 3+(-3) должны получить 0
00000011
+11111101
100000000 – старшая 1 вылезла из состава 1 байта, следовательно, она отбрасывается и получаем 000000002= 0.
Вещественные величины
Величины, которые содержат дробную часть, являются вещественными. Вещественные величины в программе можно задавать в форме:
- с фиксированной точкой, например: 1., 0.095, -56.45, .1;
- с плавающей точкой, в виде <мантисса>Е<порядок>
например: 7.32E+00, -4E+02, -1.5е-4, .123е4. Буква Е (е) записывается вместо 10.
Обычно вещественные величины используются в математических и физических расчетах. С вещественными величинами связаны ключевые слова: real – одинарная точность, double – двойная точность.
Вещественные величины всегда считаются со знаком. Их можно в программе задавать только в 10 с/с. Типы отличаются между собой размером отводимой памяти и диапазоном значений, которые в эту память можно помещать.
Тип real занимает 4 байта, диапазон =±3.4е -38 … ±3.4е 38
Тип double занимает 8 байт, диапазон = ±1.7е -308 … ±1.7 е 308
Тип long double 10 байт, диапазон = ±3.4 е -4932 … ±1.1 е 4932
В общем виде: real < double < long double
Работа с вещественными числами очень сильно тормозит ЦП, поэтому для операций с вещественными числами разработано специальное устройство – сопроцессор. Хранение вещественных чисел очень сильно отличается от хранения целых чисел. Например: число 45.56 можно записать в различном виде: 0.4556, 455.6, 0.0004556, 45560*103 и другие. Такая неоднозначность недопустима для ПК. Вещественные числа хранятся в ОП в нормализованном виде: в целой части оставляют одну цифру, все остальное перебрасывают в дробную часть и экспоненту.
45.56 нормализуют 4.556* 101 поэтому хранят: целую часть 4, мантиссу 556, порядок 1.
Символьные величины
Используется для представления какого-либо символа. Сам символ записывается в апострофы. Например: ‘$’, ’F’, ’*’, ‘6’. Каждому символу ставиться соответствующий код по таблице кодировки. Для указания символьного типа используется ключевое слово char. Под тип char отводится 1 байт памяти, в который помещается код символа по кодовой таблице, поэтому на машинном уровне символьный тип рассматривается как целый. Может быть знаковым и беззнаковым.
char – знаковый в диапазоне от -128 до 127. На самом деле для данного типа используется только от 0 до 127 (7 бит из 8), следовательно, для данного типа имеется 128 символов с кодами от 0 до 127 – Стандартная часть таблицы кодировки (латинские буквы, цифры и другие основные символы).
unsigned char – беззнаковый тип от 0 до 255 (все биты), следовательно для такого типа используется 256 символов. Первая половина от 0 до 127 – Стандартная, от 128 до 255 занимают символы расширенной таблицы (Киррилица, псевдографика и другие).
Символы в программе можно задавать двумя способами
- В ‘’ указывается нужный символ, например ‘A’ – подходит только для печатных символов
- Указывается целое число, например 65 – код символа А – может использоваться для любых символов
- В ‘’ указывается \, за которым следует буква, например ‘\n’ – символ перехода на новую строку – используется для ограниченного количества управляющих символов.
Строковые величины
Строковая величина состоит из 0 или более символов, заключенных в парные “”. Например:
#define STROKA “This is stroka\n”
Под строковую величину отводится столько байт, сколько символов в строке + 1 байт на завершающий символ ‘\0’, который явно в строке не указывается. В каждый байт помещается код символа. В нашем случае под величину STROKA отводится 16 байт. В языке С нет служебного слова, описывающего строковый тип, следовательно строки можно задавать только константами.
Рекомендации по выбору типа величины
В математике количество чисел бесконечно, в программировании количество чисел имеет конечный предел, что связано с его разрядной сеткой. Физики считают, что во всей Вселенной количество элементарных частиц, из которых состоят атомы находящегося в ней вещества, не больше 1088. Самое большое число, придуманное человечеством 10100 – число Гугол. ПК может работать с числами в 10 4932 (тип long double).
На диапазон чисел влияет выбранный тип величины. Тип величины выбирает сам программист и от того, как правильно выберет тип, зависит правильность работы программы.
Например: Создадим целую величину
int x; //Под эту величину отводится 2 байта памяти
x=200*300; //Записали в эту величину результат умножения 200 на 300
В результате вычислений получит не ожидаемое число 60 000, а получим число -5536. Рассмотрим, почему так произошло. Тип int соответствует знаковым обычным целым, которые лежат в диапазоне от -32768 до 32767. Число 60 000 вышло за диапазон типа int.
60 000=0xEA60=1110 1010 0110 00002. В старшем разряде стоит 1, следовательно, число отрицательное и храниться в дополнительном коде. Выполним обратные действия по получению исходного числа.
1. 1110 1010 0110 00002
- 12
1110 1010 0101 11112
2. Инвертируем, получим 0001 0101 1010 00002=0х15А0=5536
3. Учитываем знак -5536
ПК по-разному реагирует на превышение диапазона. Для целых чисел происходит искажение чисел. Такие ошибки плохо уловимы, следовательно, их трудно обнаружить и исправить. Для вещественных чисел при выходе из допустимого диапазона возникает аварийное завершение программы с ошибкой OverFlow.
Вывод
Если необходимо выбирать между целыми и вещественными, то надо смотреть от условия задачи. Если нет разницы, то лучше всегда выбирать целые, т.к. они экономят память и ПК работает с ними значительно быстрее. Вещественными числами надо пользоваться только там, где это действительно необходимо. Однако, не в коем случае, нельзя экономить временем ЦП и ОП в ущерб правильности работы программы.
Операция sizeof
Операция sizeof выдает количество байт ОП, занимаемое нужным типом или величиной. В общем виде:
sizeof (тип) или sizeof (величина).
Например:
cout<<”Тип floaf занимает “ << sizeof (float) <<” байт” << ‘\n’;
Выводит на экран количество байт, занимаемых типом float.
Исходные
данные
ПРОГРАММА
Промежуточные данные
Результаты
По теме: методические разработки, презентации и конспекты
Интерактивный кроссворд по теме: "Типы соцветий".
Интерактивный кроссворд содержит вопросы по 8 наиболее распространённым типам соцветий. Возможно использование как на уроке, так и при проведении внеклассного мероприятия по предмету....
Контрольная работа по биологии в 7 классе "Типы червей"
Эта работа поможет провести текущий контроль знаний...
Главные типы почв России
Презентация к уроку географии в 8 классе (2-ой урок темы) показывает главные типы почв России, особенности их строен...
Русский язык. 11 кл. Урок по теме Типы речи. Н и НН в разных частях речи. Для интерактивной доски
Рууский язык Урок в 11 классе по повторению типов речи и Н и НН с применением Интерактивной доски...
«Средства пожаротушения и правила пользования ими. Огнетушители. Их типы и особенности.»
Средства пожаротушения и правила пользования ими.Огнетушители. Их типы и особенности.Урок ОБЖ в 5, 8 классах.Цели урока: рассказать учащимся о средствах пожаротушения, привить элементарные навыки борь...
"Типы речи". Дидактический материал для работы на уроках русского языка.
Данный материал удобен для использования на уроках русского языка, речи и культуры общения при изучении и повторении темы "Типы речи" в 5-9 классах....