Числовой тип данных. Целые числа
При выборе типа данных для переменной следует обратить внимание на размер памяти в байтах, который выделяется для переменной, лучше память экономить, а также на диапазон значений, заданный для этого типа данных. В Delphi определены следующие целые числовые типы данных.
Тип | Диапазон значений | Описание |
Integer | -2147483648..2147483647 | 4 байта, со знаком |
Cardinal | 0..4294967295 | 4 байта, без знака |
Shortint | -128..127 | 1 байт со знаком |
Smallint | -32768..32767 | 2 байта со знаком |
Longint | -2147483648..2147483647 | 4-х байтовое со знаком |
Int64 | -263..263 | 8-ми байтовое со знаком |
Byte | 0..255 | Однобайтовое без знака |
Word | 0..65535 | Двухбайтовое без знака |
Longword | 0..4294967295 | 4-х байтовое без знака |
Наиболее часто используются типы: Integer и Cardinal.
Числовой тип данных. Вещественные числа
В Delphi определены следующие числовые вещественные типы данных:
Тип | Диапазон значений | Описание |
Real | 5.0 x 10-324 .. 1.7 x 10 308 | 8 байт |
Real48 | 2.9 x 10-39 .. 1.7 x 1038 | 6 байт |
Single | 1.5 x 10-45 .. 3.4 x 1038 | 4 байт |
Double | 5.0 x 10-324 .. 1.7 x 10308 | 8 байт |
Extended | 3.6 x 10-4951 .. 1.1 x 104932 | 10 байт |
Comp | -263+1 .. 263 -1 | 8 байт |
Currency | -922337203685477.5808.. 922337203685477.5807 | 8 байт |
Описание данных
Перед использованием данные, как переменные, так и константы необходимо описать. Данные описываются в разделе описаний. Для описания переменной используется следующий синтаксис:
var
<список переменных>:<тип>;
Где ключевое слово var (от variable, что означает переменная) – задает описание переменных.
Например:
Var
i, j, k : integer;
adc,nk : real;
str1 : string;
Для описания константы используется следующий синтаксис:
const
<имя константы>=<значение>
где ключевое слово const задает описание констант.
Обратите внимание, при описании константы не требуется задавать тип, тип константы определяется типом присваемого значения. Например:
const
pi=3.141592;
yes=true; no=false;
Задания для самостоятельной работы
Опишите следующие переменные:
1. В 2-х переменных требуется хранить 3-х значные числа.
2. В переменной требуется хранить количество лет человека.
3. В трех переменных будет храниться зарплата человека, стоимость 1 булки хлеба, 1 брикета мороженого.
4. В переменной будет храниться результат деления 2-х целых чисел.
5. В переменной будет храниться 5-тизначное число.
Операции
На числовом типе данных определены следующие основные операторы:
Оператор | Описание |
+ | Сложение |
- | Вычитание |
* | Умножение |
/ | Деление |
div | Целая часть от деления |
mod | Остаток от деления |
Из констант, переменных, обращений к функциям, операций и скобок можно строить выражения. Примеры выражений:
(a+b)*c , a*2.2, (a+b+c)/3, a div b, c mod 10.
Последовательность действий при вычислении выражений определяется обычными правилами, принятыми в математике.
Присвоение значения переменной. Оператор присваивания
Цель этого оператора - задание переменной некоторого значения. Синтаксис оператора:
<переменная> := <значение>;
Переменная рассматривается как неопределенная, если она описана, но ее значение не задано. Попытка использования такой переменной может вызвать ошибку. Не используйте в выражении такую переменную.
Пример 1:
Var a,b:integer;
Begin
a:=3; b:=5;
a:=a+b;
В примере 1 переменной a будет присвоено значение 8.
Пример 2:
Var a,i,result,j:integer;
begin
a:=9; i:=3;
result:=a+(2+i)*4+j;
i:=i+1;
В примере 2 в выражении
result:=a+(2+i)*4+j;
используется переменная j, значение которой не определено.
Пример 3.
Var
A,b,c:real;
Begin
A:=3.5; b:=6.9; c:=a+b;
End;
Для задания дробных чисел используется точка в качестве разделителя целой и дробной части.
Задания для самостоятельной работы
Написать выражения:
1. Завести две переменных, в которых будут храниться длины сторон прямоугольного треугольника. Написать выражение для вычисления квадрата гипотенузы.
2. Завести две переменных, в которых хранится длина и ширина прямоугольника. Написать выражение для вычисления периметра и площади треугольника.
3. По радиусу написать выражение для длины и площади круга.
4. Даны 5 вещественных переменных. Написать выражение для вычисления значения среднего арифметического этих переменных.
5. Курс доллара 27.34 рублей за доллар хранится в переменной. Напишите выражение для пересчета вводимых пользователем долларов в рубли( и наоборот рублей в доллары).
Задача «Простой калькулятор»
Мы уже достаточно знаем, для того, чтобы выполнить простое упражнение. Рассмотрим следующую задачу: Ввести 2 числа, вывести их сумму, разность, произведение.
Решение
1. Создадим новое приложение.
2. Разработаем форму для удобного ввода чисел. Для ввода чисел будем использовать интерфейсные компоненты типа TEdit, для отображения информации пользователю - будем использовать компоненты типа TLabel. Создадим кнопку, по которой будет запускаться программный код, обеспечивающий решение задачи. Внешний вид формы может быть, например, следующий:
Где объекты Edit1 и Edit2 используются для ввода чисел, объекты Label3, Label4, Label5 используются для отображения результата. Единственной проблемой, с которой мы столкнемся при использовании интерфейсных компонентов, Delphi будет – преобразование строк в числа и наоборот. Дело в том, что свойство Text объекта Edit строкового типа, свойство Caption объекта Label – также строкового типа. Т.е. для выполнения вычислений и отображения результатов необходимо выполнять преобразования.
Нам понадобятся следующие функции преобразования:
Функция преобразования | Тип аргумента | Тип результата | Описание |
IntToStr | Integer | String (строка) | Преобразует целое число в строку |
StrToInt | String (строка) | Integer | Преобразует строку целое в целое число |
FloatToStr | real | String (строка) | Преобразует дробное число в строку |
StrToFloat | String (строка) | real | Преобразует строку в дробное число |
3. Осталось написать обработчик события OnClick на кнопку «Вычислить»:
procedure TForm1.Button1Click(Sender: TObject);
var a,b:real;
begin
a:=StrToFloat(Edit1.Text);
b:=StrToFloat(Edit2.Text);
{ сумма }
Label3.Caption:=' сумма '+FloatToStr(a+b);
{ разность }
Label4.Caption:=' разность '+FloatToStr(a-b);
{ произведение }
Label5.Caption:=' произведение '+FloatToStr(a*b);
end;
4. Выполнить приложение. Обратите внимание, при вводе дробных чисел в форму разделителем дробной и целой части является запятая.
5. Сохранить приложение в отдельной папке.
6. Задание: добавить в приложение возможность расчета целой части и остатка от деления первого числа на второе. (Операции div и mod).
Встроенные функции
Встроенные функции это предопределенные функции, которые поставляются вместе с Delphi. Набор встроенных функций очень обширен. Существуют математические функции, которые реализуют математические операции, например синус, косинус, функции для работы со строками, функции преобразования и т.д. Функция в языках программирования очень напоминает понятие функции, принятое в математике, т.е. функция имеет имя и список аргументов, независимых переменных. Функция может возвращать значение. Например, функция sin(x) вернет значение синуса, соответствующее значению переменной x. Информацию по функциям в Delphi можно получить в Help’е, достаточно в программе ввести имя функции и нажать клавишу F1.
Вызов функции происходит по имени, в скобках указываются значения аргументов. Функция всегда возвращает значение. Список функций, которые наиболее часто используются, приведен в таблице:
Функция | Тип аргумента | Тип результата |
sin(X) | real | real |
cos(x) | real | real |
sqr(X) (возведение в квадрат) | real | real |
sqrt(x) (корень квадратный) | real | real |
abs(x) (абсолютная величина) | real/integer | real/integer |
round(x) (округление) | real | integer |
int(x) (целая часть) | real | real |
frac(x) (дробная часть) | real | real |
random(x) ( случайное число) | word | word(0..x) |
Задания для самостоятельной работы
Используя материал предыдущих занятий решить следующие задачи. Каждую задачу оформлять в виде отдельного приложения. Рекомендуется каждое приложение сохранять в отдельной папке. Продумывать интерфейс с пользователем, чтобы пользователю было удобно работать с вашим приложением. Для разработки интерфейса использовать интерфейсные компоненты : Label, Edit, Bitton.
1. Ввести радиус круга. Вывести длину и площадь круга.
2. Ввести длины сторон прямоугольного треугольника. Вывести длину гипотенузы.
3. Ввести 5 вещественных чисел. Вывести значение среднего арифметического этих чисел.
4. Написать программу, которая преобразует введенное с клавиатуры дробное число в денежный формат. Например: 23,7 это 23 руб. 70 копеек(функция frac).
5. Ввести длины сторон прямоугольного треугольника. Вывести длину гипотенузы. (функции sqr, sqrt).
6. Ввести 2 вещественных числа, округлить их до целых (функция round).
7. Ввести значение аргумента, вывести значение функции sin для этого аргумента. Следует иметь ввиду, что аргумент задается в радианах. То же самое проделать с функцией cos.
8. Ввести значение текущего курса доллара. Ввести сумму в долларах. Выполнить пересчет введенного количества долларов в рубли и вывести результат. Ввести сумму в рублях. Вывести результат в долларах по текущему курсу.
9. Написать программу вычисления стоимости покупки яблок и апельсинов, при этом требуется вводить стоимость 1 кг яблок и апельсинов, а также количество купленных яблок и апельсинов. Рекомендуемый вид экрана:
Вычисление стоимости покупки
Стоимость 1 кг яблок:
Куплено яблок (кг):
Стоимость 1 кг апельсинов:
Куплено апельсинов (кг):
Всего стоимость покупки:
10. Написать программу расчета стоимости поездки на дачу на автомобиле (туда и обратно). Исходными данными являются: расстояние до дачи(км), количество бензина, которое потребляет автомобиль на 100 км пробега, цена 1 литра бензина. Рекомендуемый вид экрана:
Вычисление стоимости поездки на дачу
Расстояние до дачи (км):
Расход бензина ( литров на 100 км пробега):
Цена литра бензина:
Поездка на дачу и обратно обойдется в руб.
11. Написать программу пересчета величины временного интервала, заданного в минутах, в величину, выраженную в часах и минутах. Рекомендуемый вид экрана:
Введите временной интервал ( в минутах): 150
150 минут это 2 ч. 30 минут.
12. Написать программу, которая преобразует введенное с клавиатуры дробное число в денежный формат. Например: 23.7 это 23 руб. 70 копеек.
13. Ввести 3-х значное число. Выделить цифры сотен, десятков и единиц этого числа. Вывести результат. Какое число получится, если поменять местами цифру сотен и единиц. Вывести результат.
Контрольные вопросы
- Что такое алгоритм?
- Какие способы описания алгоритма Вы знаете?
- Какие виды алгоритмов Вам известны?
- Что такое переменная?
- Что такое константа?
- Что такое идентификатор? Какие правила используются в языке Pascal для задания идентификаторов?
- Что задает тип данных? Как и в каком разделе процедуры описываются данные: переменные и константы?
- Какие числовые типы данных Вам известны?
- Какие операции определены на числовом типе данных?
- С помощью какого оператора можно изменить значение переменной?
- Какие функции преобразования типов Вам известны?
- Что такое встроенная функция? Какие встроенные функции Вам мзвестны?