- •Основные этапы проектирования программ
- •Тема: Числовые типы данных. Выражения. Стандартные функции. Решение задач линейной структуры Числовые типы
- •Выражения и операторы действия
- •Ввод и вывод данных
- •Лабораторная работа №1 Тема: Числовые типы данных. Стандартные функции. Задачи линейной структуры Задание 1
- •Задание 2
- •Указание к выполнению: перед составлением программы необходимо выполнить следующие этапы:
- •Образец выполнения задания
- •Writeln(‘значение искомого выражения равно’, y:8:4); {вывод результата на экран}
- •Образец выполнения задания
- •Тема: Логические выражения. Логический тип. Условный оператор. Оператор выбора. Программирование разветвляющихся алгоритмов
- •Логический тип
- •Условный оператор
- •Оператор выбора
- •Лабораторная работа №2 Тема: Логические выражения. Логический тип. Условный оператор. Оператор выбора. Программирование разветвляющихся алгоритмов
- •Задание 2
- •Образец выполнения задания
- •Текст программы
- •Тема: Циклические структуры. Программирование циклических алгоритмов. Циклы
- •Простой арифметический цикл (цикл с параметром)
- •Арифметический цикл с произвольным шагом
- •Итерационные циклы
- •Оператор цикла с постусловием
- •Оператор цикла с предусловием
- •Лабораторная работа №3 Тема: Циклические структуры. Программирование циклических алгоритмов. Задание 1
- •Текст программы
- •Приложение: работа в среде программирования Паскаль
- •Работа с окнами
- •Редактирование текста программы
- •Пошаговое выполнение программы
- •Как посмотреть результат выполнения программы?
- •Литература
- •Содержание
Тема: Числовые типы данных. Выражения. Стандартные функции. Решение задач линейной структуры Числовые типы
Наиболее распространенные в математике типы чисел – это целые числа, которые представляют бесконечное множество дискретных значений, и действительные числа, которые представляют неограниченный континуум значений.
Описание целых типов
В пределах одного языка могут быть реализованы различные подмножества множества целых чисел. Диапазон возможных значений целых типов зависит от их внутреннего представления, которое может занимать один, два или четыре байта. Так, в Турбо Паскале 7.0 используются следующие целые типы:
ЦЕЛЫЕ ТИПЫ |
||
Название |
Длина, байт |
Диапазон значений |
Byte |
1 |
0 . . 255 |
ShortInt |
1 |
-128 . . +127 |
Word |
2 |
0 . . 65535 |
Integer |
2 |
-32768 . . +32767 |
LongInt |
4 |
-2 147 483 648 . . +2 147 483 647 |
С целыми числами можно выполнять следующие операции:
Арифметические:
сложение (+); вычитание (-); умножение (*); остаток от деления (mod); возведение в степень; унарный плюс (+); унарный минус (-).
Операции отношения:
отношение равенства (=); отношение неравенства (<>); отношение меньше (<); отношение больше (>); отношение не меньше (>=); отношение не больше (<=).
При действиях с целыми числами тип результата будет соответствовать типу операндов, а если операнды относятся к различным целым типам, - типу того операнда, который имеет максимальную мощность (максимальный диапазон значений). Возможное переполнение результата никак не контролируется (это важно!), что может привести к ошибкам.
Особое внимание следует уделить операции деления целых чисел. В Турбо Паскале допускается две операции деления, которые соответственно обозначаются ‘/’ и div. Нужно знать, что результатом деления ‘/’ является не целое, а вещественное число (это справедливо, даже если вы делите 8 на 2, т.е. 8/2=4.0). Деление div – это целочисленное деление, т.е. тип результата целый.
Описание действительных типов
К вещественному типу относится подмножество вещественных чисел, которые могут быть представлены в так называемом формате с плавающей запятой и фиксированным числом цифр. С плавающей точкой каждое число представляется в виде двух групп цифр. Первая группа цифр называется мантиссой, вторая – порядком. В общем виде число в форме с плавающей точкой может быть представлено так: X= {+|-}MP{+ | -} r , где M – мантисса числа; r – порядок числа (r – целое число); P – основание системы счисления. Например, для десятичного основания представление 2Е-1 (здесь Е – основание десятичной системы счисления) будет иметь вид: 2*10-1=0.2, а представление 1.234Е5 будет соответствовать: 1.234*105=123400.0.
В Турбо Паскале используются следующие типы вещественных чисел, которые определяют произвольное число лишь с некоторой конечной точностью, зависящей от внутреннего формата вещественного числа:
Длина, байт |
Название |
Количество значащих цифр |
Диапазон десятичного порядка |
4 |
Single |
7..8 |
-45..+38 |
6 |
Real |
11 .. 12 |
-39 . . +38 |
8 |
Double |
15 . .16 |
-324 . . +308 |
10 |
Extended |
19 . .20 |
-4951 . . +4932 |
8 |
Comp |
19 . . 20 |
-2*1063 +1..+2*1063 -1 |
При описании вещественной переменной типа real в памяти компьютера будет создана переменная размерностью 4 байта. При этом 3 байта будут отданы под мантиссу, а один – под порядок.
Над действительными числами можно выполнять следующие операции:
Арифметические:
сложение (+); вычитание (-); умножение (*); деление (/); возведение в степень; унарный плюс (+); унарный минус (-).
Операции отношения: отношение равенства (=); отношение неравенства (<>); отношение меньше (<); отношение больше (>); отношение не меньше (>=); отношение не больше (<=).
Как видим, Турбо Паскаль характеризуется богатой гаммой вещественных типов, однако доступ к типам single, double и extended возможен только при особых режимах компиляции. Эти типы рассчитаны на аппаратную поддержку арифметики с плавающей точкой и для их эффективного использования в состав ПК должен входить математический сопроцессор.
Особое положение в Турбо Паскале занимает тип comp, который трактуется как вещественное число без экспоненциальной и дробной частей. Фактически, comp – это «большое» целое число со знаком, сохраняющее 19..20 значащих десятичных цифр. В то же время тип comp в выражениях полностью совместим с другими вещественными типами: над ним определены все вещественные операции, он может использоваться как аргумент математических функций и т.д.
О преобразовании числовых типов
В Паскале почти невозможны неявные (автоматические) преобразования типов. Исключение сделано только для типа integer, который разрешается использовать в выражениях типа real. Например, если переменные описаны следующим образом:
Var
X : integer; Y: real;
то оператор
Y := X+2;
будет синтаксически правильным, хотя справа от знака присваивания стоит целочисленное выражение, а слева – вещественная переменная, компилятор сделает преобразование типов автоматически. Обратное же преобразование автоматически типа real в тип integer в Турбо Паскале невозможно. Вспомним, какое количество байт выделяется под переменные типа integer и real: под целочисленный тип integer выделяется 2 байта памяти, а под real – 6 байта. Для преобразования real в integer имеются две встроенные функции: round (x) округляет вещественное x до ближайшего целого, trunc (x) усекает вещественное число путем отбрасывания дробной части.
