Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Переменные. Преобразование типов

Приведем таблицу базовых типов данных Delphi.

Таблица 2.13.

Тип Диапозон Размер в байтах Тип Диапозон Размер в байтах
Boolean 1 байт   Shortint От –128 до 127  
Byte От 0 до 255   Single От ±1.5 х 10 –45 до 3.4 х 10 38  
Char 1 байт   String От 1 до 2 ГБ Перемен.
Ansichar 1 байт   Shortstring Строка до длиной до 255 символов Перемен.
WideChar Символы Unicode (0..65535)   Longstring Длина строки ограничена объемом оперативной памяти ЭВМ Перемен.
Comp От –263 до 2 62   Widestring Строка Unicode. (символ кодирутся 16 битами) Перемен.
Double От 5.0 х 10 –324 до 1.7х 10 308   Word От 0 до 65535  
Extended От 3.4 х 10 –4932 до 1.1х 10 4932   Currency –922337203685477.5808.. 922337203685477.5807  
Integer Oт –2147483648 до 2147483647   Variant Все целые типы, real, string, character, Boolean Перемен.
Longint Oт –2147483648 до 2147483647   Cardinal От 0 до 2147483647  
Real От 2.9х10 –39 до 1.7х 10 38  

 

Функции преобразования типов. Элементы вывода информации требует представления информации в виде строк(текста). Поэтому при вводе и выводе информации в поле ввода очень часто в инструкциях необходимо использовать функции преобразования типов. Например, чтобы вывести на метку значение переменной типа real,необходимо вначале получить изображение числа, являющегося значением данной переменнной. Это делается при помощи функции FloatToStr, которая возвращает строковое представление действительного типа, указанного при вызове функции.

Приведем таблицу функций преобразования типов данных.

Таблица 2.14.

Функция Значение
Chr(n) Символ Ansi c кодом n
IntToStr(n) Строка, являющаяся изображением значения целого n
FloatToStr(n) Строка, являющаяся изображением значения вещественного n
FloatToStrF(n,f, l, m) Строка, являющаяся изображением значения вещественного n. При вызове указываются: f – формат(способ изображения); l – точность(нужное количество цифр); m – количество цифр после десятичной точки.
TimeToStr(t) Cтрока, являющаяся изображением t типа time
DateToStr(d) Cтрока, являющаяся изображением d типа date
CurrToStr(s) Cтрока, являющаяся изображением s типа Currency
StrToInt(s) Целое, изображением которого является строка s
StrToFloat(s) Вещественное, изображением которого является строка s
StrToTime(s) Время, изображением которого является строка s
StrToDate(s) Дата, изображением которой является строка s
StrToCurr(s) Денежный тип, изображением которого является строка s
Round(n) Целое, ближайшее к n
Trunc(n) Целая часть от n
Inc(n) Целая часть от вещественного n
Frac(n) Дробная часть вещественного n
IntToHex(DecN, Kz) Шестнадцатиричное представление десятичного целого DecN, Kz-минимальное количество знаков

 

Рассмотрим программу перевода 10 чисел в 16 –ную систему.

Приведем код модуля.

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

StdCtrls;

type

TForm1 = class(TForm)

Edit1: TEdit;

Label1: TLabel;

Button1: TButton;

procedure Button1Click(Sender: TObject);

private

{Private declarations }

public

{Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);

begin

label1.Caption:=IntToHex(StrToInt(Edit1.Text), 1)

end;

end.

Рассмотрим пример программы “Электронные часы”. Необходимо установить на форме элемент timer и установить интервал в 1000мс.

Рис.46. Рис.47.

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

ExtCtrls, StdCtrls;

type

TForm1 = class(TForm)

Label1: TLabel;

Timer1: TTimer;

procedure Timer1Timer(Sender: TObject);

private

{Private declarations }

public

{Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Timer1Timer(Sender: TObject);

begin

label1.Caption:=TimeToStr(time);

end;

Рассмотрим программу решения системы 3 уравнений с 3 неизвестными. Ввод коэффициентов осуществляется в поле edit.

Установим на форме поля edit1 - edit12 для ввода коэффициентов при неизвестных и свободных членов. На метках изобразим переменные X, Y, Z. Для простоты рассмотрим целочисленные коэффициенты.

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

StdCtrls;

type

TForm1 = class(TForm)

Label1: TLabel;

Edit1: TEdit;

Edit2: TEdit;

Label2: TLabel;

Edit3: TEdit;

Label3: TLabel;

Edit4: TEdit;

Edit5: TEdit;

Label4: TLabel;

Edit6: TEdit;

Label5: TLabel;

Edit7: TEdit;

Label6: TLabel;

Edit8: TEdit;

Edit9: TEdit;

Label7: TLabel;

Edit10: TEdit;

Label8: TLabel;

Edit11: TEdit;

Label9: TLabel;

Edit12: TEdit;

Button1: TButton;

Label10: TLabel;

Label11: TLabel;

Label12: TLabel;

Label13: TLabel;

Label14: TLabel;

Label15: TLabel;

procedure Button1Click(Sender: TObject);

private

{Private declarations }

public

{Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.DFM}

{обратите внимание на правило объявления функции}

function opr3(a11,a12,a13,a21,a22,a23,a31,a32,a33:integer):integer;

begin

opr3:=a11*a22*a33+a12*a23*a31+a21*a32*a13-a13*a22*a31-a23*a32*a11-a21*a12*a33;

end;

procedure TForm1.Button1Click(Sender: TObject);

var a:array [1..3,1..3] of integer;

c:array[1..3] of integer;

det,detx,dety,detz: integer;

x,y,z:real;

begin

a[1,1]:=strToint(edit1.text);

a[1,2]:=strToint(edit2.text);

a[1,3]:=strToint(edit3.text);

a[2,1]:=strToint(edit5.text);

a[2,2]:=strToint(edit6.text);

a[2,3]:=strToint(edit7.text);

a[3,1]:=strToint(edit9.text);

a[3,2]:=strToint(edit10.text);

a[3,3]:=strToint(edit11.text);

c[1]:=strToint(edit4.text);

c[2]:=strToint(edit8.text);

c[3]:=strToint(edit12.text);

det:=opr3(a[1,1],a[1,2],a[1,3],a[2,1],a[2,2],a[2,3],a[3,1],a[3,2],a[3,3]);

detx:=opr3(c[1],a[1,2],a[1,3],c[2],a[2,2],a[2,3],c[3],a[3,2],a[3,3]);

dety:=opr3(a[1,1],c[1],a[1,3],a[2,1],c[2],a[2,3],a[3,1],c[3],a[3,3]);

detz:=opr3(a[1,1],a[1,2],c[1],a[2,1],a[2,2],c[2],a[3,1],a[3,2],c[3]);

if det<>0 then

begin

x:=detx/det;

y:=dety/det;

z:=detz/det;

label13.Caption:=floatTostr(x);

label14.Caption:=floatTostr(y);

label15.Caption:=floatTostr(z);

end

else showmessage('Нет решений');

end;

end.

Теперь рассмотрим примеры вывода текстовых образов прямо на форму без использования меток, текстовых полей. Для этого используется процедура Textout(x,y,’text’) холста (Canvas) формы. Ниже приводится пример вывода на форму целых, вещественных чисел и времени. Приведем кадр выполнения программы.

Рис.48. Рис.49.

 

Рис.50.

Обратите внимание на код модуля, а именно на процедуру обработки щелчка для кнопки c надписью “Вывод”.

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

StdCtrls;

type

TForm1 = class(TForm)

Button1: TButton;

procedure Button1Click(Sender: TObject);

private

{Private declarations }

public

{Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);

{процедура обработки щелчка для кнопки c надписью “Вывод”}

begin

form1.Canvas.Brush.Style:=bsclear;

form1.Canvas.Font.Size:=16;

form1.Canvas.Font.Color:=rgb(200,0,0);

form1.Canvas.TextOut(10,100,'Вывод текста прямо на форму т.е. на холст формы');

form1.Canvas.TextOut(10,150,inttostr(1234));

form1.Canvas.TextOut(10,200,Floattostr(1234.45));

form1.Canvas.TextOut(20,250,timetostr(time));

end;

end.

Необходимо знать, что при сворачивании формы текст выведенный этим методом с формы удаляется.

<== предыдущая лекция | следующая лекция ==>
Вопросы и упражнения. Взаимосвязи графических классов | Структурированнные данные
Поделиться с друзьями:


Дата добавления: 2014-01-05; Просмотров: 397; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.038 сек.