Pascal-Паскаль
Программирование. Числовые типы данных Pascal-Паскаль
Программирование. Числовые типы данных Pascal-Паскаль
Числовые типы данных Pascal-Паскаль
Наиболее распространенные в математике числовые типы – это целые числа, которые представляют бесконечное множество дискретных значений, и действительные числа, которые представляют неограниченный континуум значений.
Описание числовых типов данных (целые) Паскаля
В пределах одного языка могут быть реализованы различные подмножества множества целых чисел. Диапазон возможных значений целых числовых типов зависит от их внутреннего представления, которое может занимать один, два или четыре байта. Так, в Паскале 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 |
С целыми числовыми типами данных Паскаля можно выполнять следующие операции:
В Паскале используются следующие типы вещественных чисел, которые определяют произвольное число лишь с некоторой конечной точностью, зависящей от внутреннего формата вещественного числа:
При описании вещественной переменной типа real в памяти компьютера будет создана переменная размерностью 4 байта. При этом 3 байта будут отданы под мантиссу, а один – под порядок.
Над действительными числовыми типами данных можно выполнять следующие операции:
Исходники Pascal (127)
Справочник
Справочник по паскалю: директивы, функции, процедуры, операторы и модули по алфавиту
#4 Real Вещественный тип данных в Паскаль. Неявное приведение типа. Примеры
Primary tabs
Forums:
Вещественный тип данных
Тип Real служит для описания и хранения данных, являющихся вещественными числами.
Переменные типа Real
Переменные типа real могут быть объявлены стандартным способом (подобно integer):
Таким переменным можно присваивать литералы вещественных чисел:
А также результаты любых арифметических выражений:
Сравнение с Real с Integer
Выражения, возвращающие Integer
Если значение арифметического выражения присваивается переменной типа integer, то в него должны входить только:
Выражения, возвращающие Real
Если результат некоего арифметического выражения присваивается переменной типа real, то в это выражения могут входить любые операнды и целого и вещественного типа и над ними могут выполняться все четыре операции:
Можно сказать что тип, который возвращается выражением (тип его результата) определяется двумя моментами:
Неявное приведение (преобразование) типа
Когда неявное приведение имеет место быть
Неявное приведение типа возможно в двух случаях:
О втором случае поговорим подробнее.
Если в арифметическом выражении присутствуют целые числа (переменные, литералы или результаты подвыражений типа integer) и эти числа участвуют в одной операции с типом real, то:
Пусть у нас есть выражение:
— этом случае вычисления будут проходить так («под капотом» языка Паскаль):
— знание этой особенности позволяет правильно определить тип переменной для хранения результата выражения.
Что к чему приводится неявно
Если в арифметических выражениях если неявное приведение типа имеет место быть, то это всегда приведения integer к real как к более широкому и универсальному классу чисел.
Рассмотрим разные выражения и прокомментируем когда происходит неявное приведение типа, а когда нет и почему:
Присваивание несовместных типов. Что и чему можно присваивать
Рассмотрим примеры присваивания переменным значений с комментариями, показывающими в каких строках ошибка:
Вывод вещественных чисел на экран
Переменные, литералы и результаты выражений типа real можно выводить точно также как и целые числа (их переменные, литералы и выражения).
В некоторых реализациях Паскаля, при выводе на экран может использоваться экспоненциальная форма записи числа, то есть дробное число записывается (две особенности):
Примеры экспоненциальной записи чисел
Разбор задач
Пример №1
Самое простое решение:
Хотя по хорошему выводить данные с пояснениями, например используя в качестве первого аргумента литерал:
Или пример с выводом произведения переменных:
— тут вторым аргументом процедуры writeln() оказывается арифметическое выражение.
Ну и наконец, если требуется дополнительно записать результат арифметического выражения в переменную и уже потом вывести её значение, то:
Пример №2
Видео-пояснения
Для данного урока есть следующие видео:
Вопросы & Задачи
Теоретические вопросы:
— поясните почему, также скажите какого типа будет результат каждого из этих выражений
Pascal: Занятие №1. Часть 3: Типы данных в Паскаль
Типы данных в Паскале
Паскаль — это типизированный язык программирования. Это означает, что переменные, в которых хранятся данные, имеют определенный тип данных. Т.е. программе напрямую надо указать, какие данные могут храниться в той или иной переменной: текстовые данные, числовые данные, если числовые — то целочисленные или дробные, и т.п. Это необходимо в первую очередь для того чтобы компьютер «знал», какие операции можно выполнять с этими переменными и как правильно их выполнять.
Например, сложение текстовых данных, или как это правильно называется в программировании — конкатенация — это обычное слияние строк, тогда как сложение числовых данных происходит поразрядно, кроме того, дробные и целые числа складываются тоже по-разному. То же самое касается и других операций.
Рассмотрим наиболее распространенные в Pascal типы данных.
Целочисленные типы данных в Паскаль
| Тип | Диапазон | Требуемая память (байт) |
| byte | 0..255 | 1 |
| shortint | -128..127 | 1 |
| integer | -32768.. 32767 | 2 |
| word | 0..65535 | 2 |
| longint | -2147483648..2147483647 | 4 |
Нужно иметь в виду, что при написании программ в паскале integer (в переводе с англ. целое) является наиболее часто используемым, так как диапазон значений наиболее востребуем. Если необходим более широкий диапазон, используется longint (long integer, в переводе с англ. длинное целое). Тип byte в Паскале используется, когда нет необходимости работать с отрицательными значениями, то же самое касается и типа word (только диапазон значений здесь значительно больше).
Примеры того, как описываются (объявляются) переменные в Паскале:
| Pascal | PascalABC.NET | ||||||||||||||||||
| Pascal | PascalABC.NET | ||||||||||||||||
| ДЕЙСТВИЕ | РЕЗУЛЬТАТ | СМЫСЛ |
|---|---|---|
| 2 + 3 | 5 | плюс |
| 4 — 1 | 3 | минус |
| 2 * 3 | 6 | умножить |
| 17 div 5 | 3 | целочисленное деление |
| 17 mod 5 | 2 | остаток от целочисленного деления |
Порядок выполнения операций
var a: integer; b: real; begin a := 1; writeln(‘a := 1; a = ‘,a); a += 2; // Увеличение на 2 writeln(‘a += 2; a = ‘,a); a *= 3; // Умножение на 3 writeln(‘a *= 3; a = ‘,a); writeln; b := 6; writeln(‘b := 6; b = ‘,b); r /= 2; writeln(‘b /= 2; b = ‘,b); end.
Стандартные арифметические процедуры и функции Pascal
Здесь стоит более подробно остановиться на некоторых арифметических операциях.
Пример операции inc:
Более сложное использование процедуры inc:
Inc(x,n) где x — порядкового типа, n — целого типа; процедура inc увеличивает x на n.
Пример использования функции odd:
begin WriteLn(Odd(5));
Пример использования процедуры sqr в Pascal:
var x:integer; begin x:=3; writeln(sqr(x)); <ответ 9>end.
Однако в компиляторе pascal abc возведение в степень осуществляется значительно проще:
Пример использования процедуры sqrt в Pascal:
var x:integer; begin x:=9; writeln(sqrt(x)); <ответ 3>end.
Вещественные типы
В языке Паскаль существует несколько типов для представления действительных (вещественных) чисел. Чаще всего используется тип Real.
Вещественные типы в Pascal
Число цифр определяет точность, с которой будет храниться вещественное число. Например, для Real разрядность мантиссы может составлять не более восьми десятичных знаков. Тип Comp содержит только целые значения, которые представляются в вычислениях как вещественные.
Над действительными числами выполнимы операции сложения (+), вычитания (-), умножения (*) и деления (/). Результатом этих операций является также действительное число. Даже если хотя бы один из операндов вещественный, то результат этих операций также будет вещественным.
Операция деления (/) дает вещественный результат и в случае двух целых операндов. Например, 6 / 2 = 3.0.
Для действительных чисел допустимы такие же операции отношения (сравнения), что и для целых чисел.
Функции, которые дают вещественный результат, как для вещественного, так и для целого аргумента:
Функция int возвращает в виде действительного значения целую часть аргумента, frac возвращает дробную часть аргумента.
Функции trunc и round возвращают результат целого типа. Первая отсекает дробную часть от аргумента, а вторая выполняет округление до ближайшего целого.
Функция random без аргументов возвращает равномерно распределенное случайное число от 0 до 1.
Не имеющая аргументов функция pi возвращает число Пифагора.
Нельзя использовать переменные и константы вещественного типа:
Что значит real в информатике
Или в экспоненциальной форме, например:
5.0000000000E + 00 = 5 * 10 0 = 5.0
5.0000000000E + 01 = 5 * 10 1 = 50.0
6.3710421431E + 03 = 6.3710421431 * 10 3 = 6371.0421431
2. Представление вещественных чисел в компьютере. Форматный вывод вещественных чисел
Представление вещественных чисел в компьютере не является точным. Эти числа приближенные с определенной степенью точности, достаточной для получения удовлетворяющего практическим целям результата.
2.1. Представление вещественных чисел в компьютере
Вещественные числа в компьютере обычно представляются в форме с плавающей точкой, т.е, число представляется в виде его цифровой части (мантиссы ) и порядка (показателя степени 10). Количество разрядов, отводимых на изображение порядка, определяет диапазон допустимых чисел, а количество разрядов, отводимое под мантиссу определяет точность числа.
Машинное число представляет собой с некоторой точностью некоторый диапазон вещественных чисел (см. рис.1) и арифметические операции над ними производятся не точно, как это бывает с целыми числами, а по правилам действий над приближенными числами. По этой причине следует избегать логических операций сравнения вещественных чисел на их точное равенство.
Рис. 1. Представление машинного числа в формате с плавающей точкой.
При выводе на экран дисплея вещественных чисел оператором Write (); индицируются числа в формате с плавающей точкой (экспоненциальная форма).
2.2. Форматный вывод вещественных чисел
Для вывода вещественного числа на экран дисплея или на твердый носитель (бумага) необходимо определить формат выводимого числа, т.е количество цифр до десятичной точки и количество цифр после десятичной точки.
Форматный вывод вещественных чисел определяет количество выводимых чисел, включая десятичную точку и количество чисел после десятичной точки.
Все необходимые инструкции для этого описываются в операторе Write (), например, Write ( c :5:2);, а это значит, что выводится переменная ‘ c ’ в виде пяти цифровых символов, один из которых точка, две цифры выводится до десятичной токи и две после точки.
2.3. Арифметические операции над вещественными числами.






