Lazarus. Урок № 5.
Урок 5. Типы данных
В этом уроке Вы познакомитесь с основными элементами языка программирования: переменными, их типами, основными операциями и функциями.
Данные в языке Free Pascal
Для решения задач в любой программе выполняется обработка каких-либо данных. Данные хранятся в памяти компьютера и могут быть самых различных типов: целые и вещественные числа, символы, строки, массивы.
Типы данных определяют способ хранения чисел или символов в памяти компьютера. Они задают размеры ячейки, в которую будет записано то или иное значение, определяя тем самым его максимальную величину или точность задания.
Участок памяти (ячейка), в которой хранится значение определенного типа, называется переменной. У переменной есть имя (идентификатор), тип и значение.
Имя служит для обращения к области памяти, в которой хранится значение.
Во время выполнения программы значение переменной можно изменить.
В Lazarus каждая переменная перед использованием должна быть описана (объявлена). При объявлении переменной задается ее имя и тип. В оперативной памяти выделяется место для хранения переменной.
Для описание переменных используется служебного слова var.
Общий вид оператора:
Var имя_переменной: тип_переменной;
Например:
Var a: integer; //Объявлена целочисленная переменная
b, c: real; //Объявлены две вещественные переменные.
Целочисленный тип данных
Целочисленные типы данных могут занимать в памяти компьютера один, два, четыре или 8 байтов.
Тип | Диапазон | Размер (байт) |
Shortint | -128 .. 127 | 1 |
Integer | -32768 .. 32767 | 4 |
Longint | -2147483648 .. 2147483647 | 4 |
Byte | 0 .. 255 | 1 |
Word | 0 .. 65535 | 2 |
Вещественный тип данных
Внутренне представление вещественного числа в памяти компьютера отличается от представления целого числа. Вещественное число представлено в экспоненциальной форме mE±p, где m – мантисса (целое или дробное число с десятичной точкой), p – порядок (целое число).Чтобы перейти от экспоненциальной формы к обычному представлению числа, необходимо мантиссу умножить на десять в степени порядок.
Вещественное число может занимать от 4 до 10 байтов.
Вещественные типы | Диапазон | Кол-во значащих цифр | Размер, байт |
Real | 2.9e-39 ..1.7e+38 | 11-12 | 8 |
Single | 1.5-e45 .. 3.4e+38 | 7-8 | 4 |
Double | 5.0e-324.. 1.7e308 | 15-16 | 8 |
Extended | 3.4e-4932 ..1.1e4932 | 19-20 | 8 |
Пример описания вещественных переменных:
Var
r1, r2: real; d: double;
Операции и выражения
Выражение задает порядок выполнения действий над данными и состоит из операндов (констант, переменных, обращений к функциям), круглых скобок и знаков операций.
Например a + b*sin(x).
В таблице представлены основные алгебраические операторы языка программирования Free Pascal.
Оператор | Действие |
+ | Сложение |
– | Вычитание |
* | Умножение |
/ | Деление |
DIV | Целочисленное деление |
MOD | Вычисление остатка от деления |
Операторы целочисленной арифметики DIV и MOD применяются только к целочисленным операндам.
DIV позволяет получать целую часть результата деления одного числа на другое.
Например, 15 DIV 7 = 2.
Оператор MOD получает остаток от деления одного числа на другое.
Например, 15 MOD 7 = 1, Для задания нужного порядка выполнения операций в выражении можно использовать скобки.
Стандартные функции
В языке определены стандартные функции. Некоторые арифметические функции представлены в таблице ниже.
Обозначение | Действие |
Abs(n) | Абсолютное значение n. |
Sqrt(n) | Квадратный корень из n. |
Sqr(n) | Квадрат n. |
Exp(n) | Экспонента n. |
Ln(n) | Натуральный логарифм n. |
Random(n) | Случайное целое число в диапазоне от 0 до n-1. (перед первым обращением к функции необходимо вызвать функцию Randomize, которая выполнит инициализацию программного генератора случайных чисел) |
Sin() | Синус выраженного в радианах угла |
Cos() | Косинус выраженного в радианах угла |
Arctan() | Арктангенс выраженного в радианах угла |
Величина угла тригонометрических функций должна быть выражена в радианах. Для преобразования величины угла из градусов в радианы используется формула:
(α * 3.1415256 ) / 180,
где α – величина угла в градусах, 3.1415256 –число π.
Вместо константы 3.1415256 можно использовать стандартную именованную константу PI.
Функции преобразования
Функции преобразования типов часто используются при вводе и выводе информации
Например, для того чтобы вывести в поле вывода (компонент Label) диалогового окна значение переменной Real, необходимо преобразовать число в строку символов, изображающую данное число. Это можно сделать при помощи функции FloatToStr, которая возвращает строковое представление значения выражения, указанного в качестве параметра функции.
Основные функции преобразования типов
Обозначение | Действие |
Chr(n) | Символ, код которого равен n. |
IntToStr(k) | Строка, являющаяся изображением целого k. |
FloatToStr(n) | Строка, являющаяся изображением вещественного n. |
FloatToStrF(n,f,k,m) | Строка, являющаяся изображением вещественного n. При вызове функции указывают: f – формат; k – точностью (общее количество цифр); m – количество цифр после десятичной точки.Возможны следующие значения параметра Format: ffGeneral – общий числовой формат; ffFixed – фиксированный формат; ffCurrency – денежный формат. |
StrToInt(s) | Целое, изображением которого является строка s. |
StrToFloat(s) | Вещественное, изображением, которого является строка s. |
Round(n) | Целое, полученное путем округления n по известным правилам. |
Trunc(n) | Целое, полученное путем отбрасывания дробной части n. |
Frac(n) | Дробное, представляющее собой дробную часть вещественного n. |
Int(n) | Дробное, представляющее собой целую часть вещественного n. |
Наиболее часто программа может получать исходные данные из окна ввода или из поля редактирования (компонент Edit). Для преобразования данных в числовой тип используют соответствующую функцию.
Например, для преобразования в вещественный тип используется оператор:
Funt:= StrToFloat(Edit1.Text);