Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 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. Өлшемі “м/сек-н” берілген жел жылдамдығын “км/сағ.” өлшеміне ауыстыратын программа құру керек. Форма түрі 1 суретте көрсетілген.

 

Сурет.

 

Шешуі: Бұл есепті шығару үшін бізге үш жақты жұмыс жасау керек: 1) Жобаның графикалық сырт пішінін келтіру; 2) Құраушылардың қасиеттерін анықтау; 3) Объектілердің (құрауыштардың) әдістерін анықтап олардың өңдеушісін жазу (программалық кодты енгізу); Формаға Standard қалташасында орналасқан, төмендегі аталған құраушыларды белгілі бір ретпен орналастыру керек: Label1, Label2, Edit1, Button1, Label3.

 

Осы форманы 1 суреттегідей түрге келтіру үшін құраушылардың қасиеттерімен жұмыс жасау керек. Ол үшін құраушыны ерекшелеп Объектілер инпекторы терезесін пайдалану арқылы әр құраушының қасиеттеріне келесі мәндерді беру керек:

Құраушы Құраушы қасиеті Қасиет мәні
Label1 (Белгі 1) AutoSize False – осы мәнді бергенде Белгінің шеңбері (граница) автоматты түрде көлемін өзгертуді қояды.
WordWrap True – Енгізілген мәтін симай жатқанда оны келесі жолға тасымалдауға мүмкіндік береді.
Caption Программа пересчитает скорость из «м/с» в «км/час». Введите скорость (целое число) и щелкните на кнопке Пересчет.
Label2 (Белгі 2) Caption Скорость (м/сек)
Edit1 (Мәтіндік өріс) Text “Edit1” мәтінін өшіріп өрісті таза қалдыру керек
Button1 (Түйме) Caption Пересчет
Label3 (Белгі 3) AutoSize False – осы мәнді бергенде Белгінің шеңбері (граница) автоматты түрде көлемін өзгертуді қояды.
Caption Label3 мәтінін өшіріп өрісті таза қалдыру керек
WordWrap True – Енгізілген мәтін симай жатқанда оны келесі жолға тасымалдауға мүмкіндік береді.
Form1 Caption Скрость ветра

 

// “Пересчет” түймесін шерту

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;

 

  1. Өлшемі “м/сек-н” берілген желдің жылдамдығын “км/сағ.” өлшеміне ауыстыратын программа құру керек. Программаны - “Скорость” мәтіндік өрісіне тек бүтін, оң сандарды енгізуге болатындай етіп және есептеу “Пересчет” түймесін немесе <Enter> түймешелігін басқанда жүзеге асатындай жобалау керек. Форма түрі 1 суретте көрсетілген.

 

// м/сек өлшемін км/сағ. өлшеміне ауыстыратын процедура

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 Зертханалық жұмыс

Тақырыбы:

  1. Жүгіруші арақашықты жүгіріп өткен жылдамдықты (км/сағ) есептейтін программаны құру керек. Форма түрі 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. Жобаға қойылатын компоненттер

  Edit1 Edit2 Label1, Label2 Сөйлесу ұзақтығын (минутпен) енгізуге арналған Апта күнінің номерін енгізу үшін Түсіндірме сөздер жазу үшін  
  Label3   Button1 Жауабын шығару үшін (телефон байланысының сөйлесу бағасын) Сөйлесу бағасын есептеу процедурасының жұмысын орындау үшін  
           

 

Кесте2. Компоненттер қасиеттерінің мәндері.

Ескерту. Компоненттер қасиеттерінің мәндері көрсетілген кестеде компонент атауы және нүктеден кейін оның қасиеті көрсетілген.

  Қасиеті Мәні  
  Form1. Caption Стоимость разговора  
  Edit1.Text    
  Edit2.Text    
  Label1.Caption Длительность (мин.)  
  Label2.Caption Номер дня недели  
  Label3.Caption    
  Button1. Caption Вычислить  

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 компонентінің қасиеттері

  Свойство Определяет  
  Name Имя компонента. Используется в программе для доступа к свойствам компонента  
  ColCount Количество колонок таблицы  
  RowCount Количество строк таблицы  
  Cells Соответствующий таблице двумерный массив. Ячейка таблицы, находящаяся на пересечении столбца номер col и строки номер row определяется элементом cells [col, row]  
  FixedCols Количество зафиксированных слева колонок таблицы. Зафиксированные колонки выделяются цветом и при горизонтальной прокрутке таблицы остаются на месте  
  FixedRows Количество зафиксированных сверху строк таблицы. Зафиксированные строки выделяются цветом и при вертикальной прокрутке таблицы остаются на месте  
  Options. goEditing Признак допустимости редактирования содержимого ячеек таблицы. True — редактирование разрешено, False — запрещено  
  Options. goTab Разрешает (True) или запрещает (False) использование клавиши <ТаЬ> для перемещения курсора в следующую ячейку таблицы  
  Options. GoAlways-ShowEditor Признак нахождения компонента в режиме редактирования. Если значение свойства False, то для того, чтобы в ячейке появился курсор, надо начать набирать текст, нажать клавишу <F2> или сделать щелчок мышью  
  DefaultColWidth Ширину колонок таблицы  
  DefaultRowHeight Высоту строк таблицы  
  GridLineWi-dth Ширину линий, ограничивающих ячейки таблицы  
  Left Расстояние от левой границы поля таблицы до левой границы формы  
  Top Расстояние от верхней границы поля таблицы до верхней границы формы  
  Height Высоту поля таблицы  
  Width Ширину поля таблицы  
  Font Шрифт, используемый для отображения содержимого ячеек таблицы  
  ParentFont Признак наследования характеристик шрифта формы  
       
             

StringGrid компонентін қолдануға мысал ретінде массив элементтерінің арифметикалық ортасын табудың программасын құрамыз. StringGrid компоненті массивті енгізуге, Label1 и Label2 – түсіндірме сөздер мен нәтижесін шығаруға, Button1 – есептеу процесін жүргізуге қолданылады.

Рис. 5.3. Диалоговое окно программы Ввод и обработка массива

Таблица 5.2. StringGrid1 компоненті қасиетінің мәні

       
  Свойство Значение  
  ColCount    
  FixedCols    
  RowCount    
  DefaultRowHeight    
  Height    
  DefaultColWidth    
  Width    
  Options. goEditing True  
  Options. AlwaysShowEditing True  
  Options.goTabs True  
       

 

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
Label1 Caption Массив А:
Label2 Caption Коэфицент k:
Label3 Caption Массив А(i)*k:
ComboBox1 Items 1, 2,..., 10.
StringGrid1 ColCount = 11, RowCuont = 1.  
StringGrid2 ColCount = 11, RowCuont = 1.  

 

 

Форманы ек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
Edit1 Text Пример текста
ComboBox1 Items ItemIndex = 0 Times New Roman MS Sans Serif Arial Times/Kazah
ComboBox2 Items ItemIndex = 0 Жирный Курсив Подчеркнутый
ComboBox3 Items ItemIndex = 0 8, 9, 10,..., 32.
Button1 Caption Выход

 

Бұл өзгер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.

<== предыдущая лекция | следующая лекция ==>
Ріс.6. Зовнішній вигляд додатка, що використовує елемент управлінняActiveXMyForm | Изучение интегрированной среды Delphi


Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных