Пример 2.1.
Создать программу преобразования численных данных из типа Start в типы Fin1, Fin2:
- Для вещественных чисел: Start = Real, Fin1 = Extended, Fin2 = Single.
- Для целых чисел: Start = Smallint, Fin1 = Cardinal, Fin2 = Longint.
Для контроля размеров данных в программе используется встроенная функция SizeOf, возвращающая размер аргумента в байтах. Каждый раз данные выводятся в виде значения, размера в байтах и типа данных. Числа для наглядности отображаются в формате с фиксированной точкой. При этом задается число позиций под выводимое значение, что позволяет позиционировать выводимые данные в строке.
Листинг программы
program prg_2_1;
{$mode objfpc}{$H+}
uses
Classes, SysUtils, RusTrans;
const
real_0:real=123.456789;
int_0:smallint=-1111;
var
real_1:extended;
real_2:single;
int_1:cardinal;
int_2:longint;
begin
writeln(Rus(‘Вещественное число в разных типах’));
writeln;
real_1:=real_0;
real_2:=real_0;
writeln(Rus(‘Значения и размер в байтах в разных типах’));
writeln(‘real_0=’,real_0:10:6,sizeof(real_0):4,’ real’);
writeln(‘real_1=’,real_1:10:6,sizeof(real_1):4,’ extended’);
writeln(‘real_2=’,real_2:10:6,sizeof(real_2):4,’ single’);
readln;
writeln(Rus(‘Целое число в разных типах’));
int_1:=int_0;
int_2:=int_0;
writeln;
writeln(Rus(‘Значения и размер в байтах в разных типах’));
writeln(‘int_0=’,int_0:10,sizeof(int_0):4,’ smallint’);
writeln(‘int_1=’,int_1:10,sizeof(int_1):4,’ cardinal’);
writeln(‘int_2=’,int_2:10,sizeof(int_2):4,’ longint’);
readln;
end.
В листинге программы в разделе констант (const) объявлены, как типизированные константы, стартовые числа Start. Значение int_0 выбрано таким, чтобы оно умещалось в формате выбранного типа. В разделе переменных (var) объявлены группы переменных Fin1, Fin2 для каждого вида чисел.
Консоль перед закрытием программы: