Лекция "Программирование" Стандртаные типы
план-конспект урока по информатике и икт на тему

Матысик Ирина Алексеевна

В данной лекции предлагается материал для изучения основных типов, которые встроены в зяк программирования С++.

Скачать:

ВложениеРазмер
Microsoft Office document icon dannye_i_velichiny.doc77.5 КБ

Предварительный просмотр:

Данные и величины

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

Например, при решении квадратного уравнения ах+bx+c=0 исходными данными являются коэффициенты a, b, c; результатами - корни уравнения х1, х2; промежуточными данными - дискриминант уравнения D=b - 4ac.

Всякая величина имеет четыре атрибута:

- имя - идентификатор;

- значение;

- тип;

- адрес в памяти.

Любые величины сначала надо объявить (выделить память), а потом уже использовать. Сколько выделить памяти под величину зависит от значения величины: под число 15 выделяется памяти меньше, чем под число 15 000. С помощью имени величины осуществляется доступ к ней из программы. По адресу этой величины ЦП обрабатывает эту величину. Тип величины указывается для определения размера ОП под величину. Значение величины – это содержимое ячеек памяти, выделенных под эту величину. Имя величины задает сам программист, т.к. он пишет текст программы. Правила составления идентификаторов

  1. Идентификаторы должны быть осмысленными, так легче читать и понимать программу.
  2. Нельзя использовать русские буквы
  3. Можно буквы латинского алфавита большие и маленькие
  4. Можно цифры
  5. Пробел не разрешается, вместо него можно использовать _
  6. Нельзя начинать идентификатор с цифры
  7. Можно произвольной длины, но различаются первые 32 символа в имени
  8. Имеются различия между большими и малыми буквами, например, такие имена считаются различными:KOL, Kol, kol
  9. Нельзя использовать служебные слова.

Примеры правильных и неправильных идентификаторов:

Metka45(+),   4Graf (-),     Block_2 (+),    Nomer.Doma (-),   Сумма (-),    for (-),   Kol Mes (-),    _sum (+)

Константы и переменные

Величины делятся на константы и переменные. Константы используются в программах для задания постоянных величин, которые не меняют своего значения в ходе выполнения программы. Например: количество месяцев в году, число Пи, Банковский процент, налоговая ставка и др.

Константы в программе можно задавать двумя способами:

  1. С использованием строчки вида:         #define  идентификатор  значение

Например:       #define GOD  2008

  1. С использованием строчки вида:   const   тип  идентификатор=значение;

Например:   const    float    NALOG=0.13;

Обычно имена констант пишут с большой буквы, чтобы отличать их от других величин в программе. После создания констант, их имена можно использовать в любом месте программы вместо ее значения.

Преимущества использования констант

  1. Лучше использовать понятные имена вместо числовых значений. Например: красный цвет имеет значение 4, поэтому лучше создать константу с понятным именем цвета, чтобы потом это имя использовать там, где надо задать красный цвет.            #define RED 4
  2. Упрощает внесение изменений в текст программы. Достаточно в одном месте изменить значение константы, чтобы потом не вносить изменения  во всем тексте.
  3. Работа с константами выполняется значительно быстрее, т.к. они обрабатываются еще на этапе трансляции текста программы.

                   

  Переменные могут менять свои значения в ходе выполнения программы. Например: Сумма на банковском счету, текущие показания часов, положение танка на экране монитора и др.

Переменные в программе задаются строчкой вида:

тип   идентификатор;

Переменные одного типа можно перечислять через запятую. Например:

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-ричной системе счисления. Правила указания системы счисления:

  1. для 8 с/с: 0 перед числом, за ним цифры 0..7
  2. для 16 с/с: 0х перед числом, за ним цифры 0..9 и буквы a..f (A..F)
  3. для 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. Отрицательные числа хранятся в памяти в дополнительном коде. Чтобы получить дополнительный код числа надо выполнить действия:

  1. взять модуль числа и записать его в 2 с/с;
  2. поменять 1 на 0, 0 на 1
  3. прибавить к полученному числу двоичную 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 занимают символы расширенной таблицы (Киррилица, псевдографика и другие).

Символы в программе можно задавать двумя способами

  1. В ‘’ указывается нужный символ, например ‘A’ – подходит только для печатных символов
  2. Указывается целое число, например 65 – код символа А – может использоваться для любых символов
  3. В ‘’ указывается \, за которым следует буква, например ‘\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 классах....