Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

новая папка 1 / Лабораторная работа №3

.doc
Скачиваний:
36
Добавлен:
25.02.2016
Размер:
97.28 Кб
Скачать

Лабораторная работа №3.

Тема: Математические возможности языка программирования Delphi.

Цель: Познакомиться с математическими возможностями языка программирования Delphi. С помощью арифметических и математических операций и функций научиться находить значения математических выражений.

Для начала познакомимся с типами данных. Любые данные, т.е. константы, переменные, свойства, значения функций или выражения, в Object Pascal характеризуются своими типами. Тип определяет множество допустимых значений, которые может иметь тот или иной объект, а также множество допустимых операций, применимых к нему. Существует несколько типов данных. Рассмотрим некоторые из них, которые часто будем встречать в работах.

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

К любому из порядковых типов применимы функции:

Ord(x) — возвращает порядковый номер значения выражения х

Pred(x) — возвращает предыдущее значение порядкового типа

Succ(x) — возвращает следующее значение порядкового типа

Например,

Succ(10)=11

Ord(‘A’)=65 (код буквы А)

2. Целые типы. Диапазон возможных значений целых типов зависит от их внутреннего представления.

Название

Длина, байт

Диапазон значений

Byte

1

0...255

ShortInt

1

-128...127

SmallInt

2

-32768...32767

Word

2

0...65535

Integer

4

-2147483648...2147483647

LongInt

4

-2147483648...2147483647

LongWord

4

0...4294967295

Int64

8

-9*1018...9*1018

Cardinal

4

0...2147483647

3. Логические типы. К логическим относятся типы Boolean, ByteBool, Bool, WordBool, LongBool. В стандартном паскале определен только тип Boolean, остальные типы введены в Object Pascal для совместимости с Windows. Значениями логического типа может быть одна из предварительно объявленных констант False (ложь) или True (истина).

Например:

procedure TForm1.Button1Click(Sender: TObject);

var

c:Boolean;

begin

c:=True;

end;

4. Символьный тип. К символьному типу относится тип Char. Значениями символьного типа является множество всех символов кодовой таблицы.

Например:

procedure TForm1.Button1Click(Sender: TObject);

Var c:Char;

begin

c:=’A’;

end;

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

Например,

colors=(red,white, blue).

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

Тип-диапазон задается границами своих значений внутри базового типа:

<минимальное значение>..<максимальное значение>.

Например:

Type

dig=0..9

lchr=‘A’..’Z’

7. Вещественные типы. Вещественным типом могут быть действительные числа, комплексные числа и др. (см. таблицу ниже).

Длина, байт

Название

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

Диапазон значений

81

Real

15...16

5,0*10-324...1,7*10308

4

Single

7...8

1,5*10-45...3,4*1038

8

Double

15...16

5,0*10-324...1,7*10308

10

Extended

19...20

3,4*10-4951...1,1*104932

8

Comp

19...20

-263... -263+1

8

Currency

19...20

±922337203685477,5807

С остальными типами мы познакомимся на следующих занятиях.

Математические вычисления в языке программирования Object Pascal

Для записи математических формул в Object Pascal используются выражения. Выражение состоит из операций и операндов.

Например, Y:=X*20.

X*20 - это выражение, * - операция, X и 20 – операнды.

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

Обозначение

Операция

Типы операндов

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

Пример

+

Сложение

Integer, Real

Integer, Real

X+Y

-

Вычитание

Integer, Real

Integer, Real

X-Y

*

Умножение

Integer, Real

Integer, Real

X*Y

/

Деление

Integer, Real

Real

X/Y

Div

Целочисленное деление

Integer

Integer

X div Y

Mod

Остаток целочисленного деления

Integer

Integer

X mod Y

В первых четырех операциях операнды могут быть как целого, так и вещественного типов. Для операций div и mod операндами могут служить только целые числа.

Результат операций +, *, - зависит от типа операндов: если хотя бы один из операндов – действительное число, то и результат – действительное число. Если оба операнда целочисленные, то и результат – целое число. Результат деления всегда является дробным (например, 10/5 – дробное число). Результатом операций div и mod может быть только целое число.

Для вычислений также используются и математические функции.

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

Наименование функции

Тип аргумента

Тип значения

Результат вычисления

Abs(x)

Целый вещественный

целый вещественный

Абсолютное значение "х"

Sin(x)

Cos(x)

Arctan(x)

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

вещественный вещественный вещественный

Синус "х" рад

Косинус "х" рад

Арктангенс "х" ( -Pi/2 <y< Pi/2 )

Sqrt(x)

вещественный

вещественный

Квадратный корень из "х"

Sqr(x)

Целый

вещественный

Целый

вещественный

Значение "х" в квадрате ( х2 )

Exp(x)

вещественный

вещественный

Значение "е" в степени "х"

( ех, где e= 2. 718282. . . )

Ln(x)

вещественный

вещественный

Натуральный логарифм "х" ( х > 0 )

Frac(x)

вещественный

вещественный

Дробная часть "х"

Int(x)

вещественный

вещественный

Целая часть "х"

Pi

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

Значение числа Pi

Нахождение степени числа.

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

В выражениях языка Паскаль это запишется следующим образом:

Заметим, что a может быть только положительным числом. Т.к. степень отрицательного числа в математике для общего случая не определена.

Пример: Найдем значение выражения

Как и ранее вычисления проведем в обработчике события onClick объекта Tbutton и результат выведем на форму с использованием объекта TLabel.

procedure TForm1.Button1Click(Sender: TObject);

Const

a=10;

b=3;

Var

s:Real;

begin

s:=sqrt(a+b+sqr(cos(a*b)))/ln(a);

label1.caption:=FloatToStr(S);

end;

Практическое задание:

Найти значение выражения при заданных значениях переменных:

1 В версиях Delphi ниже 4 этот тип занимал 6 байт.