Что значит вещественный тип данных

Что значит вещественный тип данных

Или в экспоненциальной форме, например:

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. Арифметические операции над вещественными числами.

Источник

home5 Типы данных

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

Вещественные числа имеют дробные части (3.14159) и экспоненты (2.579×10**24). Они также известны как числа с плавающей точкой.

Булевские выражения имеют только два значения: TRUE или FALSE (истина или ложь). Они используются в условных выражениях.

Целые числа.

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

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

Количество значащих цифр в мантиссе и диапазон значений экспоненты зависят от компьютера. В Turbo Pascal данные вещественного типа Real имеют размер в 6 байт, с 11 значащими цифрами, мантиссы и экспоненты от 10**-38 до 10**38.

Кроме того Turbo Pascal поддерживает стандарт IEEE 754 для двоичной арифметики с плавающей точкой. В этом случае добавляются типы данных с Single, Double, Extended и Comp:

Если у вас есть процессор 8087, и включена работа с числовым сопроцессором (<$N+>), Turbo Pascal генерирует инструкции 8087 для поддержки этих типов и выполнения всех операций с плавающей точкой на 8087.

Если у Вас нет 8087, но Вы хотите использовать IEEE типы, Вы можете указать Turbo Pascal эмулировать процессор 8087, разрешая и эмуляцию 8087 и обработку с плавающей точкой (директивы <$E+,N+>). Turbo Pascal подключает специальную библиотеку, которая выполняет операции с плавающей точкой, так же как процессор 8087.

Сохраним ее в файле DORATIO.PAS с помощью функции основного меню File/Save As. Нажмите ALT-R для компиляции и запуска программы. Введем два значения, 10 и 3, и получим результат 3.000000.

Ожидая ответа 3.3333333333, мы получили результат 3. Получили такой результат, потому что был использован оператор «div» для деления целых чисел.

Исправим оператор «div» на Ratio := A / B; сохраним код (F2), откомпилируем и выполним. Новый результат 3.3333333333, как и ожидали. Оператор деления «/» обеспечивает более точный результат.

+Символьные и строковые типы данных.

После вычисления коэффициента, выдается сообщение:

Do it again? (Y/N). (Повторить? (Да/Нет)).

Программа находится в состоянии ожидания одного из указанных символов и нажатия клавиши «Enter». Если Вы нажмете «n» или заглавную «N», то условие «until» будет выполнено и цикл закончится. В случае, если Вы ответите «Y» («y»), то выполнение цикла будет продолжено.

«N» и «n» не одно и тоже, потому что они имеют различные значения в коде ASCII. Каждый символ имеет свой код ASCII, представленный 8-битным значением (символ занимает 1 байт). Приложение B в Руководстве программиста содержит список кодов ASCII для всех символов.

Читайте также:  Чем является эпиграф к произведению чудище обло озорно огромно стозевно и лаяй

В Turbo Pascal существуют два дополнительных способа описания символьных констант: с помощью символа «^» и символа числа «#».

Например, управляющий символ кода ASCII 7 известен как Bel или CtrlG. Turbo Pascal дает возможность представить символы с помощью «^», за которым следует буква (или символ). Так, «^G» то же самое, что и Ctrl-G. «^G» можно использовать в операторах Turbo Pascal: Writeln (^G). Этот метод применим только к управляющим символам.

В большинстве случаев используются строки символов. В стандартном Паскале не поддерживается тип строк символов. В Turbo Pascal реализована эта возможность. Рассмотрим программу

Переменная Name объявлена, как string (строка), и под нее резервируется 30 байт (для 30 символов). Кроме того, Turbo Pascal отводит еще один байт, в котором содержится текущая длина строки. В этом случае, независимо от того, какой длины будет введено имя, оператор Writeln распечатает имя указанной длины. Если будет введено имя больше 30 символов, то будут использоваться только первые 30 символов, а остальные будут проигнорированы.

Turbo Pascal предлагает несколько процедур и функций, работающих со строковыми переменными. Их описание дано в главе 1 Справочного руководства по библиотеке.

+Булевские данные.

Встроенный тип Boolean данных в Turbo Pascal имеет два возможных значения: True и Falsе (истина и ложь). Можно объявить переменную типа Boolean, и присвоить ей значение True или False, или же, что более важно, присвоить ей значение выражения, которое при вычислении принимает одно из этих значений.

Оно состоит из выражений отношений, булевских операторов, булевских переменных и/или других булевских выражений. Например:

+Указатели.

Обычно указатель указывает на данные определенного типа. Расмотрим следующий пример:

Куда указывает Buf2? В данный момент никуда. Прежде чем использовать BufPtr, необходимо зарезервировать (распределить) память и запомнить ее адрес в Buf2. Вы делаете это, используя процедуру New:

Поскольку Buf2 указывает на тип Buffer, то этот оператор выделит в памяти 256-байтовый буфер и его адрес поместит в Buf2.

Как использовать Buf2 и данные, на которые он указывает? С помощью оператора ^. Например, необходимо поместить строку и в Buf1 и в буфер, на который указывает Buf2:

Теперь, как освободить память, на которую указывает Buf2? Используя процедуру Dispose. Эта процедура освобождает память. После того, как при помощи Dispose освобождена память, следует присвоить указателю значение nil, т.е. указатель ни на что не указывает:

Заметим, что значение nil присваивается указателю Buf2, а не Buf2^.

Источник

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 (только диапазон значений здесь значительно больше).

Примеры того, как описываются (объявляются) переменные в Паскале:

program a1; var x,y:integer; <целочисленный тип>myname:string; <строковый тип>begin x:=1; y:=x+16; myname:=’Петр’; writeln (‘имя: ‘,myname, ‘, возраст: ‘, y) end.

program a1; begin var x, y: integer; <целочисленный тип>var myname: string; <строковый тип>x := 1; y := x + 16; myname := ‘Петр’; print($’имя: , возраст: ‘) end.

Результат:
имя: Петр, возраст: 17

Комментарии в Паскале

[Название файла: L1task5.pas ]

Вещественные типы данных в Паскаль

Вещественные числа в Паскале и вообще в программировании — это название дробных чисел.

Тип real в Паскале — наиболее часто используемый из вещественных типов.

Выше были представлены простые типы данных в Паскаль, к которым относятся:

Для вывода значений переменных вещественного типа обычно используется форматированный вывод:

Наряду с простыми типами в языке еще используются структурированные типы данных и указатели, которым будут посвящены последующие уроки по Паскалю.

Константы в Паскале

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

Объявление константы в Паскале происходит до объявления переменных (до служебного слова var ) и выглядит следующим образом:

Пример описания константы в Паскале:

Pascal PascalABC.NET

const x=17; var myname:string; begin myname:=’Петр’; writeln (‘имя: ‘,myname, ‘, возраст: ‘, х) end.

const x = 17; begin var myname := ‘Петр’; print($’имя: , возраст: ‘) end.

«Красивый» вывод целых и вещественных чисел

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

1 11 15

2 9

Вывод вещественных чисел

Арифметические операции в Паскале

Pascal PascalABC.NET
ДЕЙСТВИЕ РЕЗУЛЬТАТ СМЫСЛ
2 + 3 5 плюс
4 — 1 3 минус
2 * 3 6 умножить
17 div 5 3 целочисленное деление
17 mod 5 2 остаток от целочисленного деления

1 1 1

Порядок выполнения операций

3 3

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)); WriteLn(Odd(4)); end.

Пример использования процедуры 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.

Источник

Структура языка программирования

Содержание

Дополнительно

Классификация типов данных

DataTypes

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

В большинстве языков программирования, простые типы жестко связаны с их представлением в памяти компьютера. Компьютер хранит данные в виде последовательности битов, каждый из которых может иметь значение 0 и 1. Фрагмент данных в памяти может выглядеть следующим образом

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

Числовые типы данных

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

Исходя из машинного представления целого числа, в ячейке памяти из n бит может хранится 2 n для беззнаковых, и 2 n-1 для знаковых типов.

Рассмотрим теперь конкретные целочисленные типы в трёх языках.

У некоторых типов есть приписка «16 разрядов» или «32 разряда». Это означает, что в зависимости от разрядности операционной системы и компилятора данный тип будет находится в соответствующем диапазоне. По-этому, рекомендуется не использовать int, unsigned int, а использовать их аналоги, но уже жестко определенные, short, long, unsigned short, unsigned long.

В Java нет беззнаковых целочисленных типов данных.

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

Числа вещественного типа данных задаются в форме чисел с плавающей запятой.

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

Вывод: вещественные типы данных, в отличии от целочисленных, характеризуются диапазоном точности и количеством значащих разрядов.

Рассмотрим конкретные типы данных в наших трёх языках.

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

Символьный тип данных

Значение переменной этого типа данных представляет собой один символ. В действительности, это есть целое число. В зависимости от кодировки, это число превращается в некий символ. Данные типы данных характеризуются лишь размером выделяемой под них памяти.

Логический тип данных

Перечислимый тип данных

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

Чтобы прочувствовать эту концепцию, приведем пример на языке С++ (в С# и Java аналогично)

Теперь переменные перечислимого типа Forms могут принимать лишь значения, определенные в примере кода. Это очень удобно, ведь мы уже оперируем не с числами, а с некими смысловыми значениями, замечу лишь, что для компьютера эти значения всё-равно являются целыми числами.

Массив

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

В языках программирования нельзя оперировать всем массивом, работают с конкретным элементом. Чтобы доступиться до него в трёх рассматриваемых нами языках используют оператор «[]».

Структура

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

Например, есть колесо автомобиля. У колеса есть диаметр, толщина, шина. Шина в свою очередь является структурой, у которой есть свои параметры: материал, марка, чем заполнена. Естественно, для каждого параметра можно создать свою переменную или константу, у нас появится большое количество переменных, которые, чтобы понять к чему они относятся, нужно в именах общую часть выделять. Имена будут нести лишнюю смысловую нагрузку. Получается запутанная история. А так мы определяем две структуры, а затем параметры в них.

Класс

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

Источник

Основные понятия языка

Вещественные типы

Существует несколько вещественных типов, различающихся точностью и диапазоном представления данных ( таблица 1.8). Точность числа определяется длиной мантиссы, а диапазон — длиной порядка.

Таблица 1.9. Арифметические операции для вещественных величин

Операция Знак операции Операция Знак операции
Сложение + Умножение *
Вычитание Деление /

В общем случае при выполнении любой операции операнды должны быть одного и того же типа, но целые и вещественные величины смешивать разрешается.

К вещественным величинам можно также применять операции отношения.

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

Таблица 1.10. Стандартные функции и процедуры для вещественных величин

Имя Описание Результат Пояснения
abs Модуль Вещественный |x| записывается abs(x)
arctan Арктангенс угла Вещественный arctg x записывается arctan(x)
cos Косинус угла Вещественный cos x записывается cos(x)
exp Экспонента Вещественный e x записывается exp(x)
frac Дробная часть аргумента Вещественный frac(3.1) даст в результате 0,1
int Целая часть аргумента Вещественный int(3.1) даст в результате 3,0
ln Натуральный логарифм Вещественный log ex записывается ln(x)
pi Значение числа 4f08e3dba63dc6d40b22952c7a9dac6d Вещественный 3,1415926536
round Округление до целого Целый
sin Синус угла Вещественный sin x записывается sin(x)
sqr Квадрат Вещественный x 2 записывается sqr(x)
sqrt Квадратный корень Вещественный 7a6a6a83d41446ad80f0690824bf1933записывается sqrt(x)
trunc Целая часть аргумента Целый trunc(3.1) даст в результате 3
Символьный тип
Таблица 1.11. Стандартные функции для символьных величин

Имя Описание Результат Пояснения
ord Порядковый номер символа Целый
pred Предыдущий символ Символьный pred(‘b’) даст в результате ‘ a ‘
succ Последующий символ Символьный succ(‘b’) даст в результате ‘ c ‘
upcase Перевод в верхний регистр (только для символов из диапазона ‘ a ‘ … ‘ z ‘) Символьный upcase (‘b’) даст в результате ‘ B ‘
Порядковые типы

В группу порядковых объединены целые, символьный, логический, перечисляемый и интервальный типы. Сделано это потому, что они обладают следующими общими чертами:

При изучении операторов Паскаля мы увидим, что в некоторых из них допускается использовать только величины порядковых типов.

Приведение типов

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

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

Источник

Adblock
detector