В этом уроке Вы познакомитесь с основными элементами языка программирования: переменными, их типами, основными операциями и функциями.
Создадите простейший калькулятор, который будет выполнять сложение целых чисел, введенных с клавиатуры.
Данные в языке 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);
Основные сведения об переменных, числовых типах данных и функциях преобразования типов мы повторили. Теперь переходим к практической части нашего занятия.
Проект «Калькулятор»
Задание. Создать приложение для вычисления суммы двух чисел. Окно программы должно выглядеть так, как показано на рисунке.
Ход выполнения
- Создайте приложение. Сохраните проект в папке Калькулятор.
- Создайте интерфейс по образцу.
- Настройте свойства объектов в соответствии с таблицей.
Компонент |
Свойство |
Значение |
Form1 |
Caption |
Калькулятор |
Label1 |
Caption |
Первое число |
Label2 |
Caption |
Второе число |
Label3 |
Caption |
Результат |
Edit1 |
Text
Name
|
Пусто
EditNum1
|
Edit2 |
Text
Name
|
Пусто
EditNum2
|
Edit3 |
Text
Name
|
Пусто
EditResult
|
Button1 |
Coption |
Вычислить |
- Написать процедуру обработки щелчка на кнопке Вычислить (btnMath).Для этого выполните двойной щелчок на кнопке Вычислить. Это приведет к созданию процедуры TForm1.Button1Clic в разделе implementation:
procedure TForm1.Button1Click(Sender: TObject);
begin
end;
Понятно, что созданная процедура не содержит ни одной команды. Ваша задача – заполнить шаблон операторами. Все команды, указанные в процедуре между begin и end, будут выполнены при щелчке на кнопке Выполнить.
В нашем случае процедура TForm1 . But ton1Cl ick будет иметь вид:
procedure TForm1.Button1Click(Sender: TObject);
var num1, num2, result: integer;
begin
num1:=StrToInt(editNum1.text);
num2:=StrToInt(editNum2.text);
result:=num1+num2;
EditResult.text:=IntToStr(result);
end;
Обратите внимание, что были написаны всего 5 команд, предназначенных для решения поставленной задачи. Остальной текст в окне редактора создается автоматически
- Сохранить проект. Проверьте работу приложения. Введите в первые два поля целые числа, нажмите кнопку Вычислить. В поле результат должна отобразиться сумма этих чисел.
В этом уроке мы повторили основными элементы языка программирования: переменные, числовые типы, основные арифметические операции и функции. Создали простейший калькулятор.
В следующем уроке рассказывается о вводе и выводе данных.
Следующий урок: «Ввод и вывод данных».
|