Осымшадаы ауыстырыштарды ызметі


дістемелік нсаулар


C++Builder ортасында программалауда, программа сынатын ммкіндіктерді бірін немесе атарынан бірнешеуін тадау шін ауыстырыштар (переключатель, флажок) олданылады. Программада мндай ауыстырыштарды ызметін Standart панеліні CheckBox, RadioButton жне RadioGroup компоненттері атарады. Ауыстырыш екі кйде ана бола алады: «осылан» ( немесе ) жне «ажыратылан» ( немесе ). Ауыстырыштарды ммкіндігіне арай екі топа бледі: туелсіз жне зара туелді. Туелсіз ауыстырыштарды жмысы баса ауыстырыштара байланыссыз, туелсіз болады.

CheckBox компоненті. ПрограммадаCheckBox компонентіні кмегімен жасалатын ауыстырыш, туелсіз ауыстырыштар тобына жатады. детте, ажет болан жадайда бірнеше ауыстырыштарды бір топа біріктіріп пайдаланады, ол шін контейнерді ролін атаратын арнаулы GroupBox жне Panel жне т.б. компоненттер олданылады.

детте осымшада ауыстырышты кйін згерту шін тышанны сол жа батырмасына шертеді, яни андай боланына арамастан йтеуір кйі згеретін болса, онда CheckBox компоненті шін міндетті трде OnClick оиасы пайда болады. Бл оианы деуге арналан функция, кбінесе ауыстырышты кйіне байланысты белгілі бір рекеттерді немесе операторларды орындалуын амтамасыз ету шін олданылады.

Мысалы,


void __fastcall TForm1::CheckBox1Click(TObject *Sender)

{

if(CheckBox1->Checked = = true)

Memo1->Font->Size=10;

}


RadioButton компоненті.RadioButton компоненті туелді ауыстырыштар атарына жатады, яни, бір контейнерде орналасан RadioButton тріндегі бірнеше ауыстырыштарды біреуі «осылан» кйде болса, онда аландарыны барлыы бірдей автоматты трде «ажыратылан» кйге кшеді.


Жаттыу жмыстары


1-жаттыу. Кездейсо сандар генераторын (random) пайдаланып жасалан массивті max жне min элементтерін табуды жне массивті срыптауды олданушыны сранысына байланысты бір-біріне туелсіз орындай алатын осымша рыыз. /4.8-суреттегідей/

4.8-сурет. осымша терезесі.


#include "Unit1.h"

#include "stdlib.h"

TForm1 *Form1;

float a[100];

intElem_sani=0;

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}

//---Орындау батырмасыны коды ----------------------------

void __fastcallTForm1::Button1Click(TObject *Sender)

{

float max=a[0];

float min=a[0];

if(Edit1->Text=="")

{ShowMessage("Massiv elementterinin sanin beriniz");

Edit1->SetFocus();}

if(CheckBox1->Checked == True) //max элементті табу

{for (inti=0;i

if(a[i]>max) max=a[i];

}

Edit2->Text=FloatToStrF(max,ffFixed,5,2);

}

if(CheckBox2->Checked == True) //min элементті табу

{for (inti=0;i

if(a[i]

Edit3->Text=FloatToStrF(min,ffFixed,5,2);

}

if(CheckBox3->Checked == True)

// массивті су ретімен срыптау

for(inti=0;i<elem_sani;i++)

{ max=a[i]; intNmax=i;

for(intj=i;j<elem_sani;j++)

if(a[j]>max) {max=a[j]; Nmax=j;}

a[Nmax]=a[i]; a[i]=max;

Memo2->Lines->Add("a["+Int

ToStr(i)+"]= "+FloatToStrF(max,ffFixed,5,2)); }

}

//------Массивті толтыру батырмасыны коды-----------

void __fastcallTForm1::Button2Click(TObject *Sender)

{

if(Edit1->Text=="")

{ShowMessage("Massiv elementterinin sanin beriniz");

Edit1->SetFocus();}

Elem_sani=StrToInt (Edit1->Text);

for(inti=0; i<elem_sani;i++)

{ a[i]= (float) random(100)/7-3;

Memo1->Lines->Add("a["+IntToStr(i)+"]=

"+FloatToStrF(a[i],ffGeneral,3,1));}

}

//---------------------------------------------------------------------------

void __fastcallTForm1::FormActivate(TObject *Sender)

{Edit1->SetFocus();}

//---------------------------------------------------------------------------

void __fastcallTForm1::Button4Click(TObject *Sender)

{Form1->Close();}

//---------------------------------------------------------------------------

void __fastcallTForm1::Button3Click(TObject *Sender)

{Memo1->Clear(); Memo2->Clear();

Edit1->Clear(); Edit2->Clear(); Edit3->Clear();}

//---------------------------------------------------------------------------


2-жаттыу.

Студенттер туралы мліметтер (фамилиясы, аты жне туан жылы) класс трінде аныталан. Группадаы студенттер туралы мліметтерді срыптауды (фамилиясын немесе атын алфавит бойынша, туан жылдарын кему реті бойынша орналастыру) орындайтын программа жазыыз. Программа терезесі 4.9- суретте крсетілген.


4.9-сурет. Студенттер туралы мліметтер


Терезедегі компоненттер асиеттеріні жне оиаларыны мндері:

Компонентті аты асиеттеріні мндері, оиалары
Form1 Caption = 'RadioButton компонентiн пайдалану мысалы'
Label1 Caption = 'Фамилия'
Label2 Caption = 'Аты'
Label3 Caption = 'Туган жылы'
Memo1 Lines.Strings = ( ')
Edit1 Text асиеті тазаланады, OnKeyPress = Edit1KeyPress
Edit2 Text асиеті тазаланады, OnKeyPress = Edit2KeyPress
Edit3 Text асиеті тазаланады, OnKeyPress = Edit3KeyPress
Button1 Caption = 'ЕНГIЗУДI ОРЫНДАУ', OnClick = Button1Click
Button2 Caption = 'СУРЫПТАУДЫ ОРЫНДАУ', OnClick = Button2Click
RadioGroup1 Caption = 'Сурыптау'
Items.Strings = ( 'Фамилия бойынша' 'Аты бойынша' 'Туган жылы бойынша ')

 

Программаны мтіні:

#include "Unit1.h"

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

classstud

{public:

AnsiString fam, ati;

int tugG;

};

stud grup[10]; int n=0;

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}

//---------------------------------------------------------------------------</elem_sani;i++)
</elem_sani;j++)
</elem_sani;i++)
void __fastcallTForm1::Button1Click(TObject *Sender)

// 'ЕНГIЗУДI ОРЫНДАУ' батырмасыны коды

{

grup[n].fam=Edit1->Text;

grup[n].ati=Edit2->Text;

grup[n].tugG=StrToInt(Edit3->Text);

Memo1->Lines->Add(grup[n].fam+" "+

grup[n].ati+" "+IntToStr(grup[n].tugG));

n++;

Edit1->Clear();Edit2->Clear();Edit3->Clear();

Edit1->SetFocus();

}

//---------------------------------------------------------------------------

void __fastcallTForm1::Edit1KeyPress(TObject *Sender,

char &Key)

{

if(Key==13) Edit2->SetFocus();

}

//---------------------------------------------------------------------------

void __fastcallTForm1::Edit2KeyPress(TObject *Sender,

char &Key)

{

if(Key==13) Edit3->SetFocus();

}

//---------------------------------------------------------------------------

void __fastcallTForm1::Edit3KeyPress(TObject *Sender,

char &Key)

{

if(Key==13) Button1->SetFocus();

}

//---------------------------------------------------------------------------

void __fastcallTForm1::Button2Click(TObject *Sender)

// 'СУРЫПТАУДЫ ОРЫНДАУ' батырмасыны коды

{

if(RadioGroup1->ItemIndex==0) //fam boinsha syriptay bastaldi

{ Memo1->Clear();

for(char i='А';i<='Я';i++)

for (int j=0;j<n;j++)

if(grup[j].fam[1]==i)

Memo1->Lines->Add(grup[j].fam+" "+

grup[j].ati+" "+IntToStr(grup[j].tugG));

} // fam boinsha syriptay bitti


if(RadioGroup1->ItemIndex==1) //ati boinsha syriptay bastaldi

{ Memo1->Clear();

for(char i='А';i<='Я';i++)

for (int j=0;j<n;j++)

if(grup[j].ati[1]==i)

Memo1->Lines->Add(grup[j].ati+" "+

grup[j].fam+" "+IntToStr(grup[j].tugG));

} //ati boinsha syriptay bitti


if(RadioGroup1->ItemIndex==2) //tugG boinsha syriptay bastaldi

{Memo1->Clear();

for(int i=0;i<n;i++)

{ stud max=grup[i]; int maxI=i;

for (int j=i;j<n;j++)

if(grup[j].tugG > max.tugG)

{max=grup[j]; maxI=j;}

Memo1->Lines->Add(max.ati+" "+

max.fam+" "+IntToStr(max.tugG));

grup[maxI]=grup[i];

grup[i]=max;

}

}//tugG boinsha syriptay bitti

}


зіндік жмыс тапсымалары:


  1. олданушыны тадауына сйкес тізбек мшелерін арифметикалы, геометриялы прогрессия ережелері немесе т.б. задылытар бойынша ратын жне алынан тізбекті min –элементін табатын жне тізбек элементтерін кему реті бойынша орналастыратын программа жазыыз.

  2. олданушыны тадауына сйкес “те жасы“, “те жасы жне жасы“, “жасы жне анааттанарлы“, ”тек анааттанарлы“ баалармен оитын студенттерді тізімін шыарып беретін программа жазыыз.

  3. олданушыны тадауына сйкес фамилиясы “A”-дан басталатын ызметкерлер тізімін, орташа жалаыдан жоары жалаы алатын ызметкерлер тізімін, орташа жалаыдан тмен жалаы алатын ызметкерлер тізімін шыарып беретін программа рыыз.

  4. олданушыны тадауына сйкес ая киім дкеніні ассортиментінен йел адамны ая киімдерін, ер адамдар ая киімдерін, балалар ая киімдерін оларды нымен, шыаран фирмасымен жне размерімен крсететін программаны жазыыз. Е ымбат жне е арзан балалар ая киімін де крсететін болсын.

  5. олданушыны тадауына сйкес автосалондаы машиналарды маркасына, шыан жылына жне баасына жне тсіне арай срыптап шыарып беретін программа жазыыз.

  6. олданушыны тадауына сйкес поликлиникадаы дрігерлерді аты-жні бойынша, мамандыы бойынша жне ебек тілі бойынша срыптап шыаратын программа рыыз.

  7. Кітапханадаы кітаптарды, авторы, шыан жылы, баасы жне тиражы бойынша срыптайтын программа рыыз.

  8. Наты сандардан тратын бір лшемді масивтегі о жне теріс элементтерді срыптап шыаратын жне о элементтерді е лкенін табатын программа рыыз.

  9. Аэропорт анытамалы бюросыны мліметтеріне сйкес рейстерді баыттары бойынша, апта кндері бойынша жне номерлері бойынша срыптайтын программа рыыз.

  10. Стоматолога келушілерді тізімінен ажет фамилияларды бас рпі бойынша, келген кні бойынша жне дрігері бойынша срыптап шыарып беретін программа рыыз.

 


6 - зертханалы жмыс.