Типы данных языка программирования TP 7.0 . Вещественный тип
Оценка 4.7
Рабочие тетради
doc
информатика
10 кл—11 кл +1
25.04.2017
Занятие строится таким образом, что после прослушивания теоретического материала (10 –15 мин.), учащимся предлагается практическое задание, которое выполняется ими за 20 - 30 мин. и корректируется в процессе изучения материала в более сложную задачу по изучаемой теме.
Автор сознательно избегал сложных примеров, будучи убежденными, в том, что гораздо важнее для учащихся понимание алгоритмов предлагаемых задач, приобретение навыков разработки алгоритмов, их программирования и выполнения на компьютере в течение одного занятия. Такой подход к изучению языка программирования позволяет сосредоточить внимание на самом процессе программирования, который в данном случае более важен для изучения языка, чем решение сложной задачи, наверняка трудной большинству учащихся. Такие задачи, по мнению авторов, неоправданно занимают большое количество учебного времени, превращая учителя из инициатора процесса обучения в диктатора.
Занятие 4ч1.doc
Типы данных языка программирования TP 7.0 . Вещественный тип
Занятие 4
1. Урок 1. Типы данных языка программирования (я. п.) TP 7.0.
2. Урок 2. Основные математические функции и процедуры я. п. TP 7.0.
3. Урок 3. Практическая работа.
4. Контрольные вопросы и упражнения.
Урок 1. Типы данных языка программирования Turbo Pascal 7.0
1.1. Вещественный тип данных.
1.2. Представление вещественных чисел в компьютере. Форматный вывод вещественных чисел.
Арифметические операции над вещественными числами.
1.3. Практический пример.
1.1. Вещественный тип данных
В TP 7.0 определено пять стандартных вещественных (действительных) типов: Real (вещественный), Single
(одинарной точности), Double (двойной точности), Extended (повышенной точности) и Comp (целое в формате
вещественного числа). Диапазон действительных типов приведен в таблице 1.
Тип
Допустимые значения модулей числа
Real
Single
Double
Extended
Comp
2.9*1039 : 1.738
1.5*1045 : 3.4*1038
5.0*10324 : 1.7*10308
3.4*104932 : 1.1*104932
1 : 9.2*1018 (263 1)
Таблица 1
Формат
(байт)
Точность
(знаков)
11 : 12
7 : 8
15 : 16
19 : 20
19 : 20
6
4
8
10
8
Тип Real доступен всегда. Действия над типами Single, Double, Extended и Comp могут выполняться только
при наличии числового сопроцессора, либо программой эмуляции (моделирования) сопроцессора, осуществляемой
директивой {$N+ или $E+} в начале программы. Тип Comp обеспечивает точную обработку много разрядных
математически целых чисел.
В TP 7.0 любое значение, которое относится к вещественному типу, может быть записано в виде дробного
числа, например, a:=7.63; b:=125.0 (переменным a и b присвоены значения вещественных чисел 7.63 и 125.0
соответственно). По обеим сторонам записи должна располагаться хотя бы одна цифра (например, 0.5 0.0).
Или в экспоненциальной форме, например:
5.0000000000E – 01 = 5 * 10 1 = 0.5
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
1.2. Представление вещественных чисел в компьютере. Форматный вывод вещественных чисел
Представление вещественных чисел в компьютере не является точным. Эти числа приближенные с
определенной степенью точности, достаточной для получения удовлетворяющего практическим целям результата.
1.2.1. Представление вещественных чисел в компьютере
Вещественные числа в компьютере обычно представляются в форме с плавающей точкой, т.е., число
представляется в виде его цифровой части (мантиссы ) и порядка (показателя степени 10). Количество
разрядов, отводимых на порядок, определяет диапазон допустимых чисел, а количество разрядов, отводимое под
мантиссу, определяет точность числа.
Машинное число представляет собой с некоторой точностью некоторый диапазон вещественных чисел, где
числа в верхней части рисунка обозначают номера двоичных разрядов (см. рис.1). Арифметические операции над ними
производятся не точно, как это бывает с целыми числами, а по правилам действий над приближенными числами. По
этой причине следует избегать логических операций сравнения вещественных чисел на их точное равенство.
0
Знак
мантиссы
1 : 10
Модуль
мантиссы
11 12 : 15
Модуль
порядка
порядка
Знак
Рис. 1. Представление машинного числа в формате с плавающей точкой.
26 При выводе на экран дисплея вещественных чисел оператором Write () индицируются числа в формате с
плавающей точкой (экспоненциальная форма).
1.2.2. Форматный вывод вещественных чисел
Для вывода вещественного числа на экран дисплея или на твердый носитель (бумага) необходимо определить
формат выводимого числа, т.е. количество цифр до десятичной точки и количество цифр после десятичной точки.
Форматный вывод вещественных чисел определяет количество выводимых чисел, включая десятичную точку и
количество чисел после десятичной точки. Все необходимые инструкции для этого описываются в операторе Write
(), например, Write (c:5:2);, а это значит, что выводится переменная ‘c’ в виде пяти цифровых символов, один из
которых точка, две цифры выводится до десятичной токи и две после точки.
1.2.3. Арифметические операции над вещественными числами.
Арифметические операции производятся над вещественными числами по законам арифметики. Как и в целом
типе, отсутствие операции возведения в степень отчасти возмещается наличием функции Sqr(x) – квадрат числа x.
Операция
Унарная
+
Бинарная
+
*
/
Действие
Таблица 2
Пример
Сохранение знака
Изменение знака
Сложение
Вычитание
Умножение
Деление
+A
A
A+B
AB
A*B
A/B
Арифметические выражения строятся из чисел, констант, переменных, стандартных функций и операций над
ними.
Практический пример.
Приведенная ниже программа демонстрирует выполнение арифметических операций над вещественными
числами.
Program V1L05P1; {Демонстрация арифметических операций}
Uses Crt;
Var a,b,ma,mb,c: real;
begin
ClrScr;
Write('Введи два действительных числа через пробел: ');
ReadLn(a,b);
{}
WriteLn(' Унарная операция – изменение знака:');
ma:=a;
mb:=b;
WriteLn(ma:15:7, ' ',mb:15:7);
{}
WriteLn(' Умножение');
c:=a*b;
WriteLn(a:15:7,' * ',b:15:7,' = ',c:15:7);
{}
WriteLn(' Деление, если делитель не равен 0');
c:=a/b;
WriteLn(a:15:7,' / ',b:15:7,' = ',c:15:7);
{}
ReadKey;
end.
{Ввод действительных чисел}
Результат работы программы
Введи два действительных числа через пробел: 12.3456 13.45678
Унарная операция изменение знака:
12.3456000 13.4567800
27 Бинарные операции:
Умножение
12.3456000 * 13.4567800 = 166.1320232
Деление
12.3456000 / 13.4567800 = 0.9174260
Следует обратить внимание, что при делении целых чисел любого типа, тип результата будет всегда real.
Урок 2. Основные математические функции и процедуры языка программирования Turbo Pascal 7.0
2.1. Основные математические функции и процедуры.
2.2. Практические примеры.
2.1. Основные математические функции и процедуры
Основные математические функции и процедуры находятся в библиотечном модуле System, который
вызывается в Pascalпрограмме по умолчанию.
2.1.1. Основные математические функции
Таблица 3
Функция
Abs(x)
Sqr(x)
Sqrt(x)
Exp(x)
Ln(x)
Sin(x)
Cos(x)
Arctan(x)
Pi
Trunc(x)
Frac(x)
Int(x)
Round(x)
Random(x)
Odd(x)
Примечание
Математический аналог
Тип результата совпадает с типом аргумента
Абсолютная величина x > |x|
Квадрат числа x > x2
Тип результата совпадает с типом аргумента
Результат всегда типа real
Квадратный корень из числа
Экспонента ex
Результат типа real
Результат типа real
Логарифм натуральный
Аргумент выражен в радианах
Синус угла
Аргумент выражен в радианах
Косинус угла
Результат угол выраженный в радианах
Арктангенс числа
3.1415922654
Число пи
Целая часть дробного числа
Целое число
Дробная часть дробного числа Целое число
Целая часть дробного числа
Округление дробного числа
Случайное число от 0 до x
TRUE, если x нечетно
FALSE, если x четное
Ближайшее меньшее целое
Целое число
Random – случайное число от 0 до 1
Примечание. Функции Sqrt, Exp, Ln, Sin, Cos, Arctan возвращают результат вещественного типа.
Аргументом этих функций может быть число любого числового типа.
В арифметическом выражении принят следующий приоритет операций.
1. Вычисление арифметического выражения в скобках;
2. Вычисление значений стандартных математических функций;
3. Умножение и деление;
4. Сложение и вычитание.
В языке программирования TP 7.0, математическое выражение записывается в строчку, а порядок выполнения
операций регулируется с помощью скобок.
Программа vv8 демонстрирует выполнение математических функций языка программирования TP 7.0.
Program V1L05P2; {Демонстрация математических функций}
Uses Crt;
Var n: real;
{}
begin
ClrScr;
Write('Введи действительное число: '); ReadLn(n); WriteLn;
{}
WriteLn('Абсолютная величина (модуль) числа');
Abs(',n:15:7,') = ',Abs(n):15:7);
WriteLn('
WriteLn('Квадрат числа');
WriteLn('Sqr(',n:15:7,') = ',Sqr(n):15:7);
WriteLn('Квадратный корень числа');
28 if n>0 then WriteLn('Sqrt(',n:15:7,') = ',Sqrt(n):15:7)
else WriteLn(' Подкоренное число отрицательно!');
WriteLn('Целая часть дробного числа');
WriteLn('Trunc(',n:15:7,') = ',Trunc(n):7);
WriteLn('Дробная часть дробного числа ');
WriteLn('Frac(',n:15:7,') = ',Frac(n):15:7);
WriteLn('Целая часть дробного числа');
WriteLn('Int(',n:15:7,') = ',Int(n):15:7);
WriteLn(' Округление дробного числа');
WriteLn('Round(',n:15:7,') = ',Round(n):7);
{}
ReadKey;
end.
Результаты работы программы
Вариант 1
Введи действительное число: 15.871
Абсолютная величина (модуль) числа
Вариант 2
Введи действительное число: 12.135
Абсолютная величина (модуль) числа
Abs(15.1780000) = 15.8710000
Abs(12.1350000) = 12.1350000
Квадрат числа
Квадрат числа
Sqr(15.1780000) = 251.8886410
Sgr(12.1350000) = 147.2582250
Квадратный корень числа
Квадратный корень числа
Sqr(15.1780000) = 3.9838424
Подкоренное число отрицательно!
Целая часть дробного числа
Trunc(15.1780000) = 15
Дробная часть дробного числа
Целая часть дробного числа
Trunc(12.1350000)
= 12
Целая часть дробного числа
Frac(15.1780000) =
0.8710000
Frac(12.1350000)
= 0.1350000
Округление дробного числа
Round(15.1780000) = 16
Целая часть дробного числа
Round(12.1350000)
= 12
В качестве примера предлагается программа вычисления математического выражения:
C =
72,13
Cos
60
Ln
10
58,7
Sin
60
51,17
30
Cos
Данное математическое выражение представляет собой разность двух математических выражений, которые
вычисляются в программе отдельно, затем находится их разность.
Program V1L05P3; {Вычисление математического выражения}
Uses Crt;
Var a,b,C: real;
{}
begin
ClrScr;
a:=(13.72+Cos(60*pi/180))*(7.58+Sin(60*pi/180))/Ln(10);
{}
b:=Sqrt(17.51/Cos(30*pi/180));
{}
C:=ab;
WriteLn('C = ',C:7:2); {Вывод на экран результата вычислений}
{}
ReadKey;
end.
{Вычисление уменьшаемого}
{Вычисление вычитаемого}
{Вычисление разности}
Результат работы программы
C = 47.66
2.1.2. Математические процедуры
Randomize процедура инициализации генератора случайных чисел, которая обеспечивает несовпадение
последовательностей случайных чисел, функции Random. При генерации случайного числа без процедуры Randomize,
при каждом последующем запуске программы на исполнение будет генерироваться одно и тоже случайное число.
Пример программы генерации случайных чисел приведен ниже.
Program V1L05P4; {Генерация случайных чисел}
Uses Crt;
Var a,b,c :real;
d :integer;
29 {Инициализация генератора случайных чисел}
{Случайное действительное число от 0 до 1}
{Случайное действительное число от 0 до 10}
{Случайное целое число от 10 до 10}
{}
begin
ClrScr;
Randomize;
a:=Random;
b:=Random*10;
c:=10*(RandomRandom);
{}
WriteLn('Случайное действительное число от 0 до 1 = ' a:5:3);
WriteLn('Случайное действительное число от 0 до 10 = ' b:5:3);
WriteLn('Случайное действительное число от 10 до 10 = ' c:5:3);
WriteLn('Случайное целое число от 0 до 10 = ' d:6);
{}
ReadKey
end.
Возможный результат работы программы
Случайное действительное число от 0 до 1 = 0.825
Случайное действительное число от 0 до 10 = 1.798
Случайное действительное число от 10 до 10 = 5.586
Случайное целое число от 0 до 10 = 5
Урок 3. Практическая работа
1. Вычислить математические выражения:
1)
71,87,5
32,4
7,5
2
7,5
71,8
2
32,4
2
2)
,5
2
71653
3
Ln
34,2
65
Sin
Tg
31
;
3)
1
ab2
Ln
ba
ba
при различных a и b.
2. Вычислить площадь треугольника по:
1) трем сторонам. S =
где p = a + b + c периметр треугольника;
()
cpbpapp
()
(
)
, при различных значениях сторон,
2) двум сторонам и углу между ними. S =
1
2
ab
Sin
, при различных значениях сторон и
3) стороне и трем углам. S
2
a
2
Sin
Sin
Sin
= , при различных значениях стороны и
угла;
углов.
3. По известным сторонам треугольника вычислить значения его углов.
Контрольные вопросы и упражнения
1. Как записываются математические выражения в TP 7.0?
2. Чем обеспечивается точность представления вещественного числа в компьютере?
3. Что обеспечивает математическая процедура Randomize?
4. В каких единицах измерения выражается аргумент в тригонометрических функциях языка TP 7.0?
5. Каким приемом можно возвести в целую степень больше 2 вещественное число?
6. Напишите фрагмент программы вычисления 1, 25 1, 25 .
7. Какой прием применяется при вычислении сложных математических выражений?
8. Какие стандартные математические функции возвращают результат вещественного типа?
30 Для заметок, вопросов и ответов
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
______________________________________________________________________________________________________
31
Типы данных языка программирования TP 7.0 . Вещественный тип
Типы данных языка программирования TP 7.0 . Вещественный тип
Типы данных языка программирования TP 7.0 . Вещественный тип
Типы данных языка программирования TP 7.0 . Вещественный тип
Типы данных языка программирования TP 7.0 . Вещественный тип
Типы данных языка программирования TP 7.0 . Вещественный тип
Материалы на данной страницы взяты из открытых истончиков либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.