Flatik.ru

Перейти на главную страницу

Поиск по ключевым словам:

страница 1

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


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

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

Вещественные числа могут быть представлены в виде с фиксированной точкой и с плавающей точкой. Первый вид вам хорошо известен - это обычная запись чисел: 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.



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

Определение: Вещественный тип – это простой стандартный тип, предназначенный для хранения подмножества вещественных чисел и выполнения операций над ними

94.99kb.

11 10 2014
1 стр.


Тип данных set множество

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

50.85kb.

08 10 2014
1 стр.


Конспект урока химии в 8 классе по теме «Элементы знакомые и незнакомые. Элементы жизни» Короткова Елена Ивановна, учитель химии II квалификационная категория Тип урока

Образовательные цели: -повторить и закрепить знания по теме «Атомы химических элементов», обобщить единичные знания в систему

96.46kb.

03 09 2014
1 стр.


Конспект по Паскалю. Целочисленный тип

Целочисленный тип – это стандартный простой порядковый тип, предназначенный для хранения подмножества целых чисел и для выполнения над ними операций

60.89kb.

13 10 2014
1 стр.


Форма занятия: Урок повторение с применением икт презентация к теме Конспект урока Тема урока: " Моя семья" Тип урока: Урок повторения с использованием икт

Урок-закрепление по теме "Моя семья" с использованием икт на уроках английского языка

38.68kb.

10 10 2014
1 стр.


Конспект урока математики в 6 классе по теме: ''Признаки делимости на 3, на Цели урока: Образовательные повторить, обобщить, систематизировать материал по теме «Признаки делимости»

План- конспект урока математики в 6 классе по теме: ''Признаки делимости на 3, на 9”

96.23kb.

16 12 2014
1 стр.


Конспект занятия по учебной дисциплине «Психология» 3 курс по теме «Темперамент»

Конспект занятия по учебной дисциплине «Психология» 3 курс по теме «Темперамент» с использованием приемов технологии «Развитие критического мышления через чтение и письмо»

153.18kb.

13 10 2014
1 стр.


План-конспект открытого урока немецкого языка в 3 классе по теме Учитель: Ендовицкая Л. А. 2012-2013 учебный год

Задачи урока: Обучение диалогической речи по теме урока Тренировка навыков чтения и инсценирования полилога. Закрепление лексики по теме «Дни недели. Занятия в выходные»

27.97kb.

28 09 2014
1 стр.