Целочисленные типы данных, их диапазоны значений

Разминка

Задание 1.Найдите ошибки в программе. Напишите правильный вариант программы.

Целочисленные типы данных, их диапазоны значений - student2.ru

Задание 2.Найдите ошибки в программе. Напишите правильный вариант программы.Целочисленные типы данных, их диапазоны значений - student2.ru

Все данные, с которыми работает программа, хранятся в виде переменных – областей оперативной памяти, доступ к которым осуществляется по имени.

Оперативную память можно представить как массив ячеек, в каждой из которых может храниться единица информации, называемая байтом. Вся информация, хранимая компьютером, представляется числами, а одна ячейка ОП может содержать одно целое число от 0 до 255. Однако языки программирования высокого уровня предоставляют возможность использования чисел, больших, чем 255, а также символов, строк и еще множества других видов информации. Мы не будем останавливаться на подробностях хранения этих видов информации в памяти, а только заметим, что для хранения разных видов информации необходимо разное количество ячеек памяти.

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

Переменные описываются в разделе описания переменных, который начинается с ключевого слова Var. При этом указывается имя переменой и ее тип:

Var <имя переменной>:<тип переменной>;

 
  Целочисленные типы данных, их диапазоны значений - student2.ru

Целый тип данных

Существует пять целых типов: Shortint, Integer, Longint, Byte, Word. Они отличаются диапазоном значений, которые могут принимать, а значит, и размером памяти, отводимой для их представления.

Таблица 1

Целочисленные типы данных, их диапазоны значений

Тип Диапазон значений Объем памяти
Byte 0 ... 255 1 байт, без знака
Shortint -128... 127 1 байт, со знаком
Word 0 ... 65535 2 байта, без знака
Integer -32768 ... 32767 2 байта, со знаком
Longint -2147483648 ... 2147483647 4 байта, со знаком

Таблица 2

Выражения и операции над величинами целого типа:

Операция алгебра Pascal
Сложение a+b a+b
Вычитание a-b a-b
Умножение ab, a b, a(b) a*b
Деление вещественное a/b, a:b a/b
Целочисленное деление (выделяется только целая часть от деления одного числа на другое)   a div b
Деление с остатком по модулю (выделяется только остаток от деления одного числа на другое)   a mod b

! Переменной целого типа присваивать значение результата обычной операции деления «/» нельзя, даже если деление может быть произведено без остатка. При попытке компиляции такой программы выдается ошибка Type mismatch(несоответствие типов данных), поэтому ошибки такого типа просто обнаружить и исправить. Сложнее с ошибками выхода за пределы диапазона допустимых значений. Такие ошибки являются динамическими, они проявляются в ходе выполнения программы и зависят от хода ее выполнения.

Пример:

 
  Целочисленные типы данных, их диапазоны значений - student2.ru

Выполнения операций Div и Mod.

19 Div 4 = 4 19 Mod 4 = 3
-19 Div 4 = -4 -19 Mod 4 = -3
19 Div -4 = -4 19 Mod -4 = 3
-19 Div -4 = 4 -19 Mod -4 = -3

-19 Mod 4 = -3, т.к. -19 : 4 — (-4 * 4) -3

19 Mod -4 = 3, т.к. 19 : -4 — (-4 * -4) + 3

19 Mod -4 = -3, т.к. -19 : -4 — (4 * -4) - 3

Задние 4.Создать файл delenie.pas. Вызовите окно для просмотра значений переменных. Введите имя переменной, участвующей в программе. Просмотрите, как будет изменятся значение переменной в результате выполнения команд. Выпишите результаты выполнения каждой команды в виде комментариев.

Целочисленные типы данных, их диапазоны значений - student2.ru

Вещественные типы данных

Вещественные типы данных представляют собой вещественные значения, которые используются в арифметических выражениях и занимают в памяти от 4 до 6 байт. Паскаль допускает представление вещественных значений и с плавающей, и с фиксированной точкой.

Вещественные типы данных

Тип   Диапазон   Мантисса   Требуемая память  
real -2.9*10-39..1.7*1038 11 — 12
single 1.5*10-45..3.4*1038 7 — 8
double 5.0*10-324..1.7*10308 15—16
extended 3.4*10-4932..1.1*104932 19 — 20
comp -9.2*1018..9.2*1018 10 — 20

Вещественные значения могут изображаться в форме с фиксированной точкой, например 7.32, 456.721 или 0.015, а также в форме с плавающей точкой, т. е. парой чисел вида <мантисса> Е<порядок>.

Числа из предыдущего примера в форме с плавающей точкой будут записаны так:7.32Е+00, 4.56721Е+02, I.5E —02.

Совместимость типов

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

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

Еще одна особенность вычисления арифметических выражений состоит в том, что, если в нем используется деление, то результат выражения всегда является вещественным числом, то есть тип результата, например, Real, даже если деление может быть произведено без остатка.

Тем не менее, в ТР существуют специальные средства (процедуры), позволяющие преобразовать одни типы данных в другие.

Процедуры Trunc и Round используются для преобразования вещественного типа данных в целочисленный.

Задание 7.Подпишите значения переменных при выполнении каждой команды в программе.

Program tipi;

Var

R1, R2 : Real;

T1, T2, T3 : Integer;

L: Longint;

Begin

R1 :=1.25; {Переменная R1 типа Real может иметь вещественное значение}
R2:=2.45; {Переменная R2 типа Real может иметь вещественное значение}
R2 :=3; {переменная R2 типа Real может иметь целое значение, хотя в памяти данное значение будет храниться как вещественное: 3.00}
R2 := R1; {вещественная переменная R2 может принимать любое значение, хранимое в переменной R1, т.к. это переменные одного типа}
T1 := 4; {переменная Т1 типа Integer может иметь целое значение, так как оно входит во множество возможных значений Integer}
T1 := 5.67; {переменная Т1 типа Integer не может иметь вещественные значения}
T2 := Т1; {переменная Т2 типа Integer может иметь любое значение, хранимое в переменной Т1 того же типа}
T2:=R2; {хотя значением переменной R2 является число 3, в памяти оно хранится как 3.00, то есть как вещественное, поэтому переменной Т2 нельзя присвоить данное значение}
   
T1 :=30000;  
T2 :=30000;  
T3:=T1+T2; {попытка некорректного присвоения переменной Т3 значения 60000, выходящего за пределы множества типа Integer}
T3:=T1/T2; {попытка некорректного присвоения переменной значения 1.00, выходящего за пределы множества типа Integer, следовательно, тип результата выражения автоматически становится Real}
L:=105;  
T:=L; {хотя пример и корректен, не рекомендуется использовать такого рода присвоения, так как на этапе выполнения программы в переменной типа Longint может оказаться число, выходящее за пределы множества допустимых значений типа изменяемой переменной. Данная ошибка – динамическая}.
T2:=trunc(R2)  
T1:=round(R2)  

End.

Домашнее задание

  1. Учить теорию по темам «Величины: переменные и константы. Оператор присваивания», «Типы данных: целочисленные типы данных, вещественные типы данных. Совместимость типов».
  2. Дана часть программы.

а:= 15 Div (16 Mod 7);

b:= 34 Mod а*5 — 29 Mod 5 * 2;

а:= 4*5 Div 3 Mod 2;

b:= 4 * 5 Div ( 3 Mod 2);

а) Наберите программу в среде TP (все необходимые части программы).

б) Определите оптимальные типы для всех переменных, участвующих в программе.

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

г) Программу сохраните на дискету под именем DZ_7_2.pas

д) В тетради запишите программу на языке Pascal. К каждой команде напишите комментарии.

  1. Наберите программу по нахождению цифр трехзначного числа. Сохраните файл под именем DZ_7_3. В тетради запишите программу на языке Pascal. К каждой команде напишите комментарии.
  2. Найдите цифры четырехзначного числа. Сохраните файл под именем DZ_7_4. В тетради запишите программу на языке Pascal. К каждой команде напишите комментарии.
  3. Дано двузначное число. Определить сумму, разность, произведение и частное цифр числа. Сохраните файл под именем DZ_7_5. В тетради запишите программу на языке Pascal. К каждой команде напишите комментарии
  4. Дано трехзначное число. Найти число-палиндром (число, образованное перестановкой цифр исходного числа). Сохраните файл под именем DZ_7_6. В тетради запишите программу на языке Pascal. К каждой команде напишите комментарии.
  5. Измените программу задания 7 классной работы, так, чтобы она проходила процесс компиляции. Сохраните файл под именем DZ_7_7. В тетради запишите программу на языке Pascal. К каждой команде напишите комментарии.

Разминка

Задание 1.Найдите ошибки в программе. Напишите правильный вариант программы.

Целочисленные типы данных, их диапазоны значений - student2.ru

Задание 2.Найдите ошибки в программе. Напишите правильный вариант программы.Целочисленные типы данных, их диапазоны значений - student2.ru

Все данные, с которыми работает программа, хранятся в виде переменных – областей оперативной памяти, доступ к которым осуществляется по имени.

Оперативную память можно представить как массив ячеек, в каждой из которых может храниться единица информации, называемая байтом. Вся информация, хранимая компьютером, представляется числами, а одна ячейка ОП может содержать одно целое число от 0 до 255. Однако языки программирования высокого уровня предоставляют возможность использования чисел, больших, чем 255, а также символов, строк и еще множества других видов информации. Мы не будем останавливаться на подробностях хранения этих видов информации в памяти, а только заметим, что для хранения разных видов информации необходимо разное количество ячеек памяти.

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

Переменные описываются в разделе описания переменных, который начинается с ключевого слова Var. При этом указывается имя переменой и ее тип:

Var <имя переменной>:<тип переменной>;

 
  Целочисленные типы данных, их диапазоны значений - student2.ru

Целый тип данных

Существует пять целых типов: Shortint, Integer, Longint, Byte, Word. Они отличаются диапазоном значений, которые могут принимать, а значит, и размером памяти, отводимой для их представления.

Таблица 1

Целочисленные типы данных, их диапазоны значений

Тип Диапазон значений Объем памяти
Byte 0 ... 255 1 байт, без знака
Shortint -128... 127 1 байт, со знаком
Word 0 ... 65535 2 байта, без знака
Integer -32768 ... 32767 2 байта, со знаком
Longint -2147483648 ... 2147483647 4 байта, со знаком

Наши рекомендации