ТОР 5 статей: Методические подходы к анализу финансового состояния предприятия Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века Характеристика шлифовальных кругов и ее маркировка Служебные части речи. Предлог. Союз. Частицы КАТЕГОРИИ:
|
Листинг 5.1. Инициализация и вывод массиваСурет
1. Жаңа жоба ашамыз. 2. Формаға Label белгісін және екі Button батырмасын орналастырамыз. (2-сурет) 2-сурет 3. Button2 батырмасын белгілеп, Объектілер инспекторы (Object Inspector) терезесінің «Қасиет» (Propeties) бетіне өтеміз. Caption қасиетінен «Button2» сөзін «Выход» сөзімен ауыстырамыз. 4. Объектілер инспекторы (Object Inspector) терезесінің Events (оқиға) бетіне өтіп, OnClick оқиғасын табамыз, оның оң жағына тышқанмен екі рет шертеміз. Программалар кодында пайда болған Button2 батырмасының процедурасына тек қана Close; командасын жазсақ жеткілікті, Close кейін міндетті түрде «;» қойылады. 5. Жобаны сақтаймыз: hel.pas және hello.dpr 6. Программаны орындап, «Выход» батырмасы арқылы одан шығамыз. 7. Форманы белгілеп, Объектілер инспекторына өтіп, Caption қасиетіндегі «Form1» сөзін «Моя первая программа» сөзіне алмастырамыз. Бұл программа тақырыбы болады. 8. Button1 батырмасын белгілеп, Объектілер инспекторы терезесінің Caption қасиетіне «Button1» сөзінің орнына «Hello» сөзін алмастырамыз. 9. Объектілер инспекторы терезесіндегі Оқиға (Events) бетінің OnClick оқиғасын екі рет басамыз. Программалар кодында пайда болған Button1 батырмасының процедурасына төмендегідей жазамыз: Label1.Caption:=‘Hello, мир Windows and Delphi’; 10. Жобаны сақтап, оны тексеріп көреміз.
Жаттығу. Жобаны жетілдіру. 1.: «Hello, мир Windows and Delphi!» сөйлемінің орнына кез келген басқа сөйлем жазамыз. Hello батырмасын екі рет басу арқылы. 2. Енгізілген сөйлемнің шрифін, түсін, өлшемін Объектілер инспекторы (Object Inspector) терезесіндегі Font қасиеті арқылы өзгерт. 3. Выход батырмасын Additional бетінің BitBtn батырмасымен алмастыр. Содан кейін Kind қасиеті арқылы түрін өзгерт. Hello программасының листингі
procedure TForm1.Button1Click(Sender: TObject); begin label1.Caption:='Hello, мир Windows and Delphi! '; end;
procedure TForm1.Button2Click(Sender: TObject); begin close; end; №2 Зертханалық жұмыс Тақырыбы: Сызықтық программалау.
Сурет.
Шешуі: Бұл есепті шығару үшін бізге үш жақты жұмыс жасау керек: 1) Жобаның графикалық сырт пішінін келтіру; 2) Құраушылардың қасиеттерін анықтау; 3) Объектілердің (құрауыштардың) әдістерін анықтап олардың өңдеушісін жазу (программалық кодты енгізу); Формаға Standard қалташасында орналасқан, төмендегі аталған құраушыларды белгілі бір ретпен орналастыру керек: Label1, Label2, Edit1, Button1, Label3.
Осы форманы 1 суреттегідей түрге келтіру үшін құраушылардың қасиеттерімен жұмыс жасау керек. Ол үшін құраушыны ерекшелеп Объектілер инпекторы терезесін пайдалану арқылы әр құраушының қасиеттеріне келесі мәндерді беру керек:
// “Пересчет” түймесін шерту procedure TForm1.Button1Click(Sender: TObject); var ms: integer; // жылдамдық м/с kmh: real; // жылдамдық - км/сағ begin ms:= StrToInt(Edit1.Text); // бастапқы мәліметтерді енгізу kmh:= ms * 3.6; // есептеу // жауабын шығару Label3.Caption:= IntToStr(ms) + ' м/с - это ' + FloatToStr(kmh) + ' км/час' end;
// м/сек өлшемін км/сағ. өлшеміне ауыстыратын процедура procedure WindSpeed; var ms: integer; // жылдамдық - м/с kmh: real; // жылдамдық - км/час begin if Length(Form1.Edit1.Text) = 0 then begin ShowMessage('Надо ввести скорость'); exit; end; ms:= StrToInt(Form1.Edit1.Text); kmh:= ms * 3.6; Form1.Label3.Caption:= IntToStr(ms) + ' м/с - это ' + FloatToStr(kmh) + ' км/час' end; // “Пересчет” түймешелігін шерту procedure TForm1.Button1Click(Sender: TObject); begin WindSpeed; // жылдамдықты есептейтін процедураны шақыру end; // Edit1 өрісінде түймешелерді басу procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); begin // #13 - <Enter> түймешелігі case Key of '0'..'9',#8:; #13: WindSpeed; else Key:= Chr(0); end;
end; №3 Зертханалық жұмыс Тақырыбы:
Сурет. // “Дистанция” өрісіне берілетін мәндер procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); begin case Key of '0'..'9':; // сандар #8:; // <Backspace> #13: Edit2.SetFocus; // <Enter> else Key:=Chr(0); end; end;
// “Время:минут” өрісіне мән беру procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char); begin case Key of '0'..'9':; #8:; // <Backspace> #13: Edit3.SetFocus; // <Enter> else Key:=Chr(0); end; end;
// “Время:секунд” өрісіне мән беру procedure TForm1.Edit3KeyPress(Sender: TObject; var Key: Char); begin case Key of '0'..'9':; ',','.': // бөлшек бөлігі begin Key:= DecimalSeparator; if Pos(DecimalSeparator,Edit3.Text) <> 0 then Key:= Char(0); end; #8:; // <Backspace> #13: Button1.SetFocus; else Key:=Chr(0); end; end;
// “Вычислить” түймесіне басу procedure TForm1.Button1Click(Sender: TObject); var dist: integer; // арақашықтық - метрмен min: integer; // минутпен берілген уақыт sek: real; // секундпен берілген уақыт v: real; // жылдамдық begin dist:= StrToInt(Edit1.Text); min:= StrToInt(Edit2.Text); sek:= StrToFloat(Edit3.Text); if (dist = 0) or ((min = 0) and (sek = 0)) then begin ShowMessage('Надо задать дистанцию и время.'); exit; end; v:= (dist/1000) / ((min*60 + sek)/3600); label5.Caption:= 'Дистанция: '+ Edit1.Text + ' м' + #13 + 'Время: ' + IntToStr(min) + ' мин ' + FloatToStrF(sek, ffGeneral,4,2) + ' сек ' + #13 + 'Скорость: ' + FloatToStrF(v,ffFixed,4,2) + ' км/час'; end;
// “Завершить” түймешелігін шерту procedure TForm1.Button2Click(Sender: TObject); begin Form1.Close; // программа жұмысын тоқтату end;
Зертханалық жұмыс №4 (1)
Іf операторын пайдаланып қалааралық телефон байланысының бағасын есептеудің программасын құрастырайық. Қалааралық телефон байланысының жай күндерге қарағанда демалыс күндері сөйлесу бағасы төмен екені белгілі. Біздің программада сөйлесу ұзақтығын және апта күнін енгізе отырып, сөйлесу бағасын есептейміз. Егер апта күні – сенбі немесе жексенбі болса, онда сөйлесу бағасы жеңілдік бойынша азаяды. 1 минуттың сөйлесу бағасы және жеңілдік пайызы тұрақты ретінде енгізіледі. Берілгендерді (сөйлесу ұзақтығын және апта күнінің номерін) енгізу үшін редактрлеу компоненттерін (Edit1, Edit2), ал нәтижесі мен түсіндірме үшін белгі компоненттерін (Label1, Label2, Label3) аламыз.
Кесте1. Жобаға қойылатын компоненттер
Кесте2. Компоненттер қасиеттерінің мәндері. Ескерту. Компоненттер қасиеттерінің мәндері көрсетілген кестеде компонент атауы және нүктеден кейін оның қасиеті көрсетілген.
unit Phone_u; Interface Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; Type TForm1 = class (TForm) Editl: TEdit; // поле ввода длительности разговора Edit2: TEdit; // поле ввода номера дня недели Button1: TButton; // кнопка Вычислить Label1: TLabel; Label2: TLabel; Label3: TLabel; procedure ButtonlClick(Sender: TObject); private / Private declarations } public { Public declarations } end; Var Form1: TForm1; Implementation ($R *.DFM} procedure TForm1.Button1Click(Sender: TObject); Const PAY =0.15; // цена одной минуты разговора 0.15 рубля DISCOUNT = 0.2; // скидка 20 процентов Var Time:Real; // длительность разговора Day:integer; // день недели Summa:real; // стоимость разговора Begin // получить исходные данные Time:=StrToFloat(Editl.Text); Day:=StrToInt(Edit2.Text); // Вычислить стоимость разговора Summa:= PAY*Time; // Если день суббота или воскресенье, то уменьшить // стоимость на величину скидки if (Day = 6) OR (Day = 7) then Surama:=Summa*(1 - DISCOUNT); // вывод результата вычисления label3.caption:='K оплате ' + FloatToStr(Summa) + 'руб.'; end; End. Зертханалық жұмыс №4 (2) Бұл программада салмағың мен бойыңды енгізу арқылы өзіңнің қаншалықты ауытқуда екеніңді анықтауға болады (бойың мен салмағыңның сәйкестігіне қарай). Дұрыс салмақты есептеу үшін Рост(см)- 100 Формуласын қолданамыз.Әрине салмағымыздың дұрыс болуы, асып кетуі немесе жетпей қалуы мүмкін.
procedure TForml.ButtonlClick(Sender: TObject); Var w:real; {вес} h:real; {рост} opt:real;{ оптимальный вес} d:real; { отклонение от оптимального веса } Begin w:=StrToFloat(Editl.text); h:=StrToInt(Edit2.Text); opt:=h-100; if w=opt then Label3.caption:='Bы в хорошей форме!' Else if w < opt then Begin d:=opt-w; Labels.caption:='Вам надо поправиться, на ' + FloatToStr(d)+ 'кг.'; End Else Begin d:=w-opt; Labels.caption:='Haдo немного похудеть, на ' + FloatTostr(d)+ ' кг.'; End; End; End. Зертханалық жұмыс №5 (1) Массивтерді енгізу, өңдеу үшін StringGrid И Memo компоненттерін қолданамыз. StringGrid компонентін пайдалану. StringGrid компоненті Additional бетінде орналасқан. Рис. 5.2. Компонент StringGrid Таблица 5.1. StringGrid компонентінің қасиеттері
StringGrid компонентін қолдануға мысал ретінде массив элементтерінің арифметикалық ортасын табудың программасын құрамыз. StringGrid компоненті массивті енгізуге, Label1 и Label2 – түсіндірме сөздер мен нәтижесін шығаруға, Button1 – есептеу процесін жүргізуге қолданылады. Рис. 5.3. Диалоговое окно программы Ввод и обработка массива Таблица 5.2. StringGrid1 компоненті қасиетінің мәні
unit getar_; Interface Uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Grids, StdCtrls; Type TForm1 = class(TForm) Label1: TLabel; StringGridl: TStringGrid; Button1: TButton; Label2: TLabel; procedure ButtonlClick(Sender: TObject); private { Private declarations } Public { Public declarations } End; Var Form1: TForml; Implementation {$R *.dfm} procedure TForml.ButtonlClick(Sender: TObject); var a: array[1..5] of integer; // массив summ: integer; // сумма элементов sr: real; // среднее арифметическое i: integer; // индекс Begin // ввод массива // считаем, что если ячейка пустая, то соответствующий // ей элемент массива равен нулю for i:= 1 to 5 do if Length(StringGridl.Cells[i-1, 0]) <>0 then a[i]:= StrToInt(StringGridl.Cells[i-1,0]) else a[i]:= 0; // обработка массива summ:= 0; for i:=1 to 5 do summ:= summ + a[i]; sr:= summ / 5; У вывод результата Label2.Caption:= 'Сумма элементов: ' + IntToStr(summ) + #13+ 'Среднее арифметическое: ' + FloatToStr(sr); End; End. Зертханалық жұмыс №5(2) Есеп: А массивi берiлген. Осы массивтiң әр элементiн қандайда бiр к (к = 1... 10) коэфицентке еселеу керек. Формаға келесi компаненттердi орналастыр: Label, StringGrid, Button, ComboBox.
Осы компаненттердiң келесi қасиеттерiне өзгерiстер енгiзiңдер:
Форманы екi рет шертiп келесi форма өңдеушiсiн енгiзiңiздер: procedure TForm1.FormCreate(Sender: TObject); var i: integer; begin randomize; for i:=1 to 10 do stringGrid1.Cells[i,0]:=IntToStr(random(10)); end; end. Button1 кнопкасын екi рет тышқанмен шертiп келесi программалық өңдеушiнi енгiзiңдер: procedure TForm1.Button1Click(Sender: TObject); var i:integer; begin for i:=1 to 10 do stringGrid2.Cells[i,0]:=IntToStr(StrToInt(stringGrid1.Cells[i,0])* StrToInt(ComboBox1.Text)); end; end. Ғ9 түймешелiгiн басып программаны орындаңыз.
№8 Зертханалық жұмыс Енгiзiлген мәтiннiң шрифiн, түрiн (қою, курсив, асты сызылған), размерiн анықтайтын программа құру керек. Шешуi: Формаға келесi компаненттердi енгiзiңдер: Edit, ComboBox, Button.
Компаненттердiң келесi қасиеттерiне өзгерiс енгiзiңдер:
Бұл өзгерiстерден кейiн формадағы компаненттер келесi түрге келедi:
ComboBox3 басқарушы элементiн екi рет тышқанмен шертiп ашылған компанент өңдеушiсiне мынаны енгiзiңдер: procedure TForm1.ComboBox1Change(Sender: TObject); begin case comboBox1.ItemIndex of 0: edit1.Font.Name:='Times New Roman'; 1: edit1.Font.Name:='MS Sans Serif'; 2: edit1.Font.Name:='Arial'; 3: edit1.font.Name:='Times/Kazakh'; end; end; Тура осы сияқты ComboBox2 компанентiне: procedure TForm1.ComboBox2Change(Sender: TObject); begin Case ComboBox2.ItemIndex of 0: Edit1.Font.Style:= [fsBold]; 1: Edit1.Font.Style:= [fsitalic]; 2: Edit1.Font.Style:= [fsUnderline]; end; end; ComboBox3 компанентiне: procedure TForm1.ComboBox3Change(Sender: TObject); begin Edit1.Font.Size:=StrToInt(ComboBox3.Text); end; Button1 кнопкасына: procedure TForm1.Button1Click(Sender: TObject); begin close; end; end. №9 Зертханалық жұмыс Программада массивті пайдаланып номерленген футбол командасының тізімін шығару. Команданың тізімі тізім түрінде шығуы үшін Label1.AutoSize қасиетін False ауыстырамыз. Рис. 5.1. Форма и диалоговое окно приложения Вывод массива Листинг 5.1. Инициализация и вывод массива unit outar_; Interface Uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; Type TForm1 = class(TForm) Button1: TButton; Label1: TLabel; procedure ButtonlClick(Sender: TObject); Private { Private declarations } public { Public declarations } end; Var Form1: TForm1; Implementation ($R *.dfm} Const NT = 5; Var team: array[1..NT] of string[10] = ('Зенит','Динамо','Ротор','Спартак','СКА' procedure TForml.ButtonlClick(Sender: TObject); Var st:string; // список команд i:integer; // индекс, номер элемента массива Begin // формирование списка для отображения в форме for i:=l to NT do st:= st + IntToStr(i)+ ' ' + team[i] + #13; // вывод списка Label1.Caption:= st; End; End.
Не нашли, что искали? Воспользуйтесь поиском:
|