Скачать 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 типов вещественного числа:
Например: VAR c, d, e : real; d1, d2: double; Вещественное число в Турбо Паскале занимает от 4 до 10 смежных байт и имеет следующую структуру в памяти ПК:
Здесь 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 смежных байт). В то же время в выражениях СОМР полностью совместим с любыми другими вещественными типами: над ним определены все вещественные операции, он может использоваться как аргумент математических функций и т.д. Наиболее подходящей областью применения типа СОМР являются бухгалтерские расчеты: денежные суммы выражаются в копейках или центах и действия над ними сводятся к операциям с достаточно длинными целыми числами. Операции над вещественными числами
Примеры присвоения значения: с := -125.6; e := 10; d := 1.e2; {1*102} d1 := 1.2e-257; { 1.2*10-257 } b := 32*a+Sin(x);
При записи формул (выражений) в программе следует учитывать такую особенность: компьютер будет в первую очередь выполнять вычисления в скобках, затем операции умножения и деления, и в последнюю очередь- сложение и вычитание:
Операции с равным приоритетом (+ , - ), (*, /) выполняются слева направо в том порядке, как записаны в выражении. Если у программиста нет уверенности в том, что вычисления будут выполняться в нужном порядке, то лучше расставить лишние скобки, помня о том, что вычисления в скобках выполняются в первую очередь. Например, в выражении А+В*С/D-Е, согласно правилам языка Паскаль, сначала будет выполнено B*C, затем результат делится на D, и только после этого наступит очередь сложения и вычитания: Если сложение и вычитание требуется выполнить в первую очередь, то следует соответствующим образом расставить скобки: (A+B)*C/(D-E), что в форме алгебраической записи будет выглядеть так:
Например, операторы 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.
Желательно избегать равенства, т.к. значения приблизительные (с разной точностью). Можно использовать в операторах сравнения 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;
Для работы с вещественными данными могут использоваться встроенные математические функции,
В Паскале отсутствует функция возведения числа в степень, а также нет тригонометрических функций 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). Примеры:
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.
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. |
Урока информатики по теме «Табличные базы данных». (Открытый урок.) Данный урок «База данных. Системы управления базами данных» является первым уроком по теме «Технологии хранения, поиска и сортировки... | Конспект по теме: ‘Строковый тип данных в паскале’ Планирование составлено на основе : «Программы воспитания и обучения в детском саду» под редакцией М. А. Васильевой, В. В гербовой,... | ||
Урок по информатике по теме "Системы управления базами данных. Создание... Повторить понятие “База данных”, “поле базы данных”, “запись базы данных”, “субд” | Тема: Создание таблиц базы данных Microsoft Office Access. Тип урока Оборудование: компьютеры, интерактивная доска, карточка участника конкурса, тест «База данных», задание к практической работе | ||
План конспект урока английского языка в 6-ом классе по теме «Seasons»... Тип урока: урок закрепления изученного лексико-грамматического материала по теме | Конспект урока-закрепления по теме «Животные» Тип урока закрепляющий урок по теме «How people live in the city» (глава 3 «Being happy in the country and in the city» ) к умк биболетовой... | ||
Конспект открытого урока по теме: "I love food" Тип урока закрепляющий урок по теме «How people live in the city» (глава 3 «Being happy in the country and in the city» ) к умк биболетовой... | Конспект урока русского языка. Тема: «Сложные предложения. Работа... Цель: обучающая: закрепить пройденный материал; тренировать навык определения предложений в тексте, данных конструкций в речи | ||
Урок по теме «Тип Хордовые» Тема урока по учебно тематическому плану: Контрольно- обобщающий урок по теме «Тип Хордовые» | Конспект урока биологии в 7-м классе по теме: "Класс млекопитающие" Оборудование: Таблицы “Тип хордовые. Класс Млекопитающие. Скелет собаки”, “Тип хордовые. Класс Пресмыкающиеся”, “Внутреннее строение... | ||
Конспект интегрированного занятия в старшей группе детского сада Тип урока: урок закрепления изученного лексико-грамматического материала по теме | Конспект образовательной деятельности Тип урока: Совершенствование знаний по теме «Снятие измерений, анализ измерений» | ||
Конспект урока Тип урока Закрепление знаний по теме «Спорт» и их использование в устной и письменной речи | Рабочая программа для студентов направления 010100. 62 Математика.... Девятков А. П. Граничные свойства аналитических функций. Учебно-методический комплекс. Рабочая программа для студентов направления... | ||
Конспект урока по информатике Тема урока: «Язык програмирования Паскаль.... Развивать навыки программирования на алгоритмическом языке высокого уровня на примере языка Паскаль | Базы данных, экспертные системы реферат «Реляционная модель данных... ... |