Конспект по теме: «Вещественный тип данных»



Скачать 94.99 Kb.
Дата16.10.2012
Размер94.99 Kb.
ТипКонспект

Конспект по теме: « Вещественный тип данных» Учитель: Батракова Л.В.


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

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

Вещественные числа могут быть представлены в виде с фиксированной точкой и с плавающей точкой. Первый вид вам хорошо известен - это обычная запись чисел: 0.1, 3.14 и т.д. Числа с плавающей точкой имеют формат mE+p, где 'm'- целое или дробное число, а E+p означает 10 в степени 'p'.

Пример: 10E-03 = 10 * 10-3 = 0.01

3.14E00 = 3.14 * 100 = 3.14
Существует 5 типов вещественного числа:

Длина, байт

Название

Количество значащих цифр

Диапазон десятичного порядка

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*63-1


Например:

VAR

c, d, e : real;

d1, d2: double;

Вещественное число в Турбо Паскале занимает от 4 до 10 смежных байт и имеет следующую структуру в памяти ПК:

s

e

m

Здесь s - знаковый разряд числа; е - экспоненциальная часть; содержит двоичный порядок; m - мантисса числа.


Мантисса m имеет длину от 23 (для SINGLE) до 63 (для EXTENDED) двоичных разрядов, что и обеспечивает точность 7.. .8 для SINGLE и 19.. .20 для EXTENDED десятичных цифр. Десятичная точка (запятая) подразумевается перед левым (старшим) разрядом мантиссы, но при действиях с числом ее положение сдвигается влево или вправо в соответствии с двоичным порядком числа, хранящимся в экспоненциальной части, поэтому действия над вещественными числами называют арифметикой с плавающей точкой (запятой).

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

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

Следует учесть, что тип REAL оптимизирован для работы без сопроцессора. Если Ваш ПК оснащен сопроцессором, использование типа REAL приведет к дополнительным затратам времени на преобразование REAL к EXTENDED. Поэтому никогда не используйте REAL на ПК с сопроцессором, т.к. дополнительные затраты времени на преобразование типов могут свести на нет все преимущества сопроцессора. При разработке программ, критичных ко времени счета, следует заменять его типами SINGLE или DOUBLE: по сравнению с типом REAL скорость вычислений на машинах с сопроцессором в этом случае увеличивается в 2...3 раза. Если в ПК нет арифметического сопроцессора, скорость обработки данных всех вещественных типов приблизительно одинакова.

Особое положение в Турбо Паскале занимает тип СОМР, который трактуется как вещественное число без экспоненциальной и дробной частей. Фактически, СОМР - это «большое» целое число со знаком, сохраняющее 19...20 значащих десятичных цифр (во внутреннем представлении СОМР занимает 8 смежных байт). В то же время в выражениях СОМР полностью совместим с любыми другими вещественными типами: над ним определены все вещественные операции, он может использоваться как аргумент математических функций и т.д. Наиболее подходящей областью применения типа СОМР являются бухгалтерские расчеты: денежные суммы выражаются в копейках или центах и действия над ними сводятся к операциям с достаточно длинными целыми числами.
Операции над вещественными числами


  1. Операции присваивания.

Примеры присвоения значения:

с := -125.6;

e := 10;

d := 1.e2; {1*102}

d1 := 1.2e-257; { 1.2*10-257 }

b := 32*a+Sin(x);


  1. Арифметические операции (+, -,*,/)

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

1.

( )

2.

*, /

3.

+, -

Операции с равным приоритетом (+ , - ), (*, /) выполняются слева направо в том порядке, как записаны в выражении. Если у программиста нет уверенности в том, что вычисления будут выполняться в нужном порядке, то лучше расставить лишние скобки, помня о том, что вычисления в скобках выполняются в первую очередь. Например, в выражении А+В*С/D-Е, согласно правилам языка Паскаль, сначала будет выполнено B*C, затем результат делится на D, и только после этого наступит очередь сложения и вычитания:



Если сложение и вычитание требуется выполнить в первую очередь, то следует соответствующим образом расставить скобки: (A+B)*C/(D-E), что в форме алгебраической записи будет выглядеть так:




  1. Операции ввода-вывода.

Например, операторы Write(a, b, c); или Write(a); Write(b); Write(c); или Writeln(a, b, c); - выводят значения переменных "a", "b", "c" начиная с текущей позиции курсора.

Например, для вывода значений переменных "a", "b", "c" в трех строках экрана следует написать:

Writeln(a); Writeln(b); Writeln(c);

Оператор Writeln; переводит курсор на начало следующей строки экрана.

В операторах вывода допускается производить арифметические действия, например, оператор Writeln(32*a+Sin(x)); соответствует операторам b:=32*a+Sin(x); Writeln(b);

При выводе данных можно задавать формат вывода. Для этого после имени переменной ставится знак двоеточие " : ", например: Writeln(a:5:2); - при выводе значения переменной вещественного типа отводится 5 позиций (включая отрицательный знак и точку), из них 2 позиции отводится для вывода цифр в дробной части.

Если формат вывода не задавать, то вещественных чисел - в экспоненциальной форме с количеством цифр, соответствующих типу переменной, например, оператор Writeln('а=', a); выведет на экран надпись: a=5.0200000000E+00 (тип Real), либо

a=5. 02000000000000E+0000 (тип Double).

Перед вводом данных с клавиатуры желательно вывести на экран поясняющее сообщение. Для этого в программу следует включить оператор вывода, например: Write('введите значение а='); затем оператор Readln(a); При выполнении программы на экране появится надпись: введите значение а= . Оператор Readln(a); будет ждать ввода данных. Следует набрать на клавиатуре значение переменной "а", например, число и нажать клавишу Enter.

Для ввода значений нескольких переменных, например, a, b, c применяются конструкции вида: Readln(a); Readln(b); Readln(c); или Readln(a, b, c);

При вводе нескольких числовых данных, например, оператором Readln(a, b, c); необходимо после набора каждого значения переменной нажимать клавишу «Пробел», а в конце ввода - Enter.


  1. Операции отношения (>,<,<>,>=,<=).

Желательно избегать равенства, т.к. значения приблизительные (с разной точностью).

Можно использовать в операторах сравнения if, в операторах цикла while и repeat.

Например:

If x<=0.1 then writeln(‘точка принадлежит плоскасти’);

While e<=0.1E-6 do begin … end;

Repeat … x:=x+0.1;… until x>2.5;


  1. Стандартные функции

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

Стандартные математические функции Турбо Паскаля

Обращение

Тип параметра

Тип результата

Примечание

abs (x)

Real

Real

Модуль аргумента

АrсТаn (х)

Real

Real

Арктангенс ( значение в радианах)

cos (х)

To же

То же

Косинус, угол в радианах

ехр (х)

"

"

Экспонента

frас (х)

"

"

Дробная часть числа

int(x)

"

"

Целая часть числа

ln(x)

"

"

Логарифм натуральный

Pi

-

"

л = 3.141592653...

Random

-

"

Псевдослучайное число, равномерно распределенное в диапазоне 0...[1]

Randomize

-

-

Инициация генератора псевдослучайных чисел

sin(x)

Real

Real

Синус, угол в радианах

sqr (x)

To же

То же

Квадрат аргумента

sqrt (x)

"

"

Корень квадратный


В Паскале отсутствует функция возведения числа в степень, а также нет тригонометрических функций tg(), ctg(), arcsin() и arccos(), но они могут быть реализованы сочетанием стандартных функций:

X n = EXP(N*LN(X));

tg(X) = SIN(X)/COS(X);

ctg(X) = COS(X)/SIN(X);

arcsin(X) = ARCTAN(X/SQRT(1-SQR(X)));

arccos(X) = ARCTAN(SQRT(1-SQR(X))/X).
Примеры:

  1. Программа возведения положительного числа "x" в степень"n", т. е. y = xn. Расчет производится по формуле: y=Exp(n*ln(x)).

Program N_2; {возведение положительного числа в степень}

Var n, x, y : real;

BEGIN

Writeln('Возведение положительного числа x степень n');

Writeln('x = ');

Readln(x);

Write('n = ');

Readln(n);

y := exp(n*ln(x));

Writeln('результат y=', y:10:6);

readln; {задержка экрана до нажатия Enter}

END.

  1. Программа вычисления конечной суммы денежного вклада в банк через N месяцев при ежемесячной процентной ставке "pr" (5% cоответствует pr=5).

PROGRAM VKLAD; {расчет конечной суммы вклада в банк}

var

S, Sn, pr : Real;

i, N : Integer;

Begin

Write('Введите начальную сумму вклада S=');

readln(S);

Write('Введите процент по вкладу pr=');

readln(pr);

Write('Введите количество месяцев вклада N=');

readln(N);

For i:= 1 to N do S:= S*(1+pr/100); { цикл произведений }

Writeln('Конечная сумма вклада S=', S:10:2);

readln

End.



Похожие:

Конспект по теме: «Вещественный тип данных» iconБилеты к выпускному экзамену по информатике
Структура программы в Паскале. Вещественный и целый тип данных. Стандартные функции и процедуры для работы с целым и вещественным...
Конспект по теме: «Вещественный тип данных» icon«простые типы данных. Символьный тип данных» Простые типы данных делятся на порядковые и ве­щественный типы данных
Под порядковым типом понимают тип данных, областью значений которых является упорядоченное счетное множество. Каждому элементу такого...
Конспект по теме: «Вещественный тип данных» iconМетодические указания к лабораторным работам по теме: «База данных»
Для определения структуры базы данных необходимо определить количество полей, их название и тип, а также указать ключевое поле
Конспект по теме: «Вещественный тип данных» iconСтроковый тип данных
Вы уже познакомились с символьным типом данных char, который позволяет работать с отдельными символами текста. Для обработки более...
Конспект по теме: «Вещественный тип данных» icon«Перечисляемый тип данных»
Этот тип данных получил название перечисляемого, потому что он задается в виде перечисления некоторых значений. Эти значения образуют...
Конспект по теме: «Вещественный тип данных» iconТип данных set множество
В языке Паскаль для задач подобного рода предусмотрен специальный тип данных set. Значения переменных этого типа всевозможные подмножества...
Конспект по теме: «Вещественный тип данных» iconЯзыки программирования. Лекция 7
На прошлой лекции обсуждались арифметические типы данных и перечислимый тип. Перечислимый тип является разновидностью порядкового...
Конспект по теме: «Вещественный тип данных» iconКонспект урока биологии в 7-м классе по теме: "Класс млекопитающие"
Тип урока: изучение нового материала. Технология развития критического мышления
Конспект по теме: «Вещественный тип данных» iconПлан-конспект урока по информатике в 4а классе Шариповой Индиры Мансуровны по теме «Умозаключение» Тема урока: Умозаключение. Тип урока: Изучение нового материала. Цели и задачи урока
Итак, на прошлом уроке мы разобрали с вами понятие «суждение», а сегодня переходим к завершающей 2ую главу теме «Умо
Конспект по теме: «Вещественный тип данных» iconПонятие базы данных, реляционной базы данных, субд, ключа, отношения
Базовые понятия реляционных баз данных (тип данных, домен, атрибут, кортеж, первичный ключ, отношение)
Разместите кнопку на своём сайте:
ru.convdocs.org


База данных защищена авторским правом ©ru.convdocs.org 2016
обратиться к администрации
ru.convdocs.org