КАТЕГОРИИ: Архитектура-(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.
Функции преобразования типов. Элементы вывода информации требует представления информации в виде строк(текста). Поэтому при вводе и выводе информации в поле ввода очень часто в инструкциях необходимо использовать функции преобразования типов. Например, чтобы вывести на метку значение переменной типа real,необходимо вначале получить изображение числа, являющегося значением данной переменнной. Это делается при помощи функции FloatToStr, которая возвращает строковое представление действительного типа, указанного при вызове функции. Приведем таблицу функций преобразования типов данных. Таблица 2.14.
Рассмотрим программу перевода 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; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |