R. A. Yusupov C++ Builderda masalalar va topshiriqlar samarqand 2018 yil



Download 3,49 Mb.
bet20/147
Sana03.01.2022
Hajmi3,49 Mb.
#314841
1   ...   16   17   18   19   20   21   22   23   ...   147
Bog'liq
c asosiy

if (id>0) {

if (fd==0) {

StaticText1->Caption = btn->Tag;

fd = 1;

}

else

StaticText1->Caption=StaticText1->Caption+btn->Tag;

return;

}

// "0" tugma



if (id==0) {

if (StaticText1->Caption!="0" )

StaticText1->Caption=StaticText1->Caption+btn->Tag;



return;

}

// "," tugma



if (id==CM) {

if (StaticText1->Caption.Pos(",")==0)

{

StaticText1->Caption = StaticText1->Caption + ",";



fd = 1;

}

return;

}

// "C" tugma



if (id==CL) {

ac = 0;


id = EQ;

fd = 0;


StaticText1->Caption = 0;

return;

}

// qolgan tugmalar: "+", "-" и "="



float op2; // amal (indekatordagi son)

op2 = StrToFloat(StaticText1->Caption);

/* amal tugmalari bosilganda, bu shuni bildiradiki, op

o’zgaruvchida joylashgan keyingi amal bajarilishini

bildiradi */

switch (op) {

case EQ : ac = op2; break;

case PL : ac = ac + op2; break;

case MN : ac = ac - op2; break;

}

StaticText1->Caption = FloatToStrF(ac,ffGeneral,15,6);



op = id; // joriy amalni saqlash

fd = 0; // yangi sonni kutish

}

// forma destruktori



void __fastcall TForm1::FormDestroy(TObject *Sender)

{

// dastur yaratgan komponentalarni o'chirish



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

delete btn[i];

}

Sekundometr



Sekundometr dasturi, forma va oyna ko’rinishi 1.11-rasmda keltirilgan, Timer komponentasidan foydalanishni namoyish etadi.


Label2

Label3

Label1





Timer1



Button2

Button1

1.11-rasm. Sekundometr dasturi formasi va oynasi

// vaqt


int min; // minutlar

int sec; // sekundlar

int msec; // millisekundlar

//forma konstruktori



__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

// taymerni sozlash



Timer1->Enabled=false;

Timer1->Interval=10;//taymerdan signal kelish

//oralig'i, 0,1 sek

}

// Start/Stop tugmasini bosish



void __fastcall TForm1::Button1Click(TObject *Sender)

{

if (!Timer1->Enabled) {

// taymerni ishga tushirish

Timer1->Enabled = true;

Button1->Caption = "Stop";

Button2->Enabled = false;

}

else {



// taymerni to'xtatish

Timer1->Enabled = false;

Button1->Caption = "Start";

Button2->Enabled = true;

}

}

// taymerdan signal



void __fastcall TForm1::Timer1Timer(TObject *Sender)

{

if(msec<99)

msec++;

else {

msec = 0;

if(sec<59)

sec++;

else {

sec = 0;

min++;


Label1->Caption = IntToStr(min);

}

if(sec<=9)



Label2->Caption = "0" + IntToStr(sec);

else

Label2->Caption = IntToStr(sec);

// ikki nuqta

Label4->Visible = !Label4->Visible;

}

if(msec<=9)

Label3->Caption = "0" + IntToStr(msec);

else

Label3->Caption = IntToStr(msec);

}

// Reset tugmasini bosganda



void __fastcall TForm1::Button2Click(TObject *Sender)

{

min = 0;



sec = 0;

msec = 0;

Label1->Caption = "0";

Label2->Caption = "00";

Label3->Caption = "00";

}

Sonni topish



Sonni topish dasturi (1.12-rasm) ProgressBar komponentasidan foydalanish namoyish etilgan. 1.2-jadvalda ProgressBarr komponenta xususiyatlarining qiymatlari keltirilgan.


1.12-rasm. Sonni topish dastur formasi

1.2-jadval. ProgressBar komponentasi xususiyati qiymatlari

Xususiyati

Qiymati

Min

0

Max

60

Step

1

Position

60

Smooth

True

#include//RandomRange funksiyasi uchun

#define TR 60 // masalani yechishga taqdim etilgan vaqt

int pw; // "maxviy" son

int rem = TR; // masalani bajarishdagi qoldiq son

//forma konstruktori



__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner) {

Label2->Caption = IntToStr(TR)+" sekund qoldi";

// indekatorni sozlash, teskari sanoq, shuning uchun

// boshlang'ich qiymat maksimalga teng

ProgressBar1->Max = TR;

ProgressBar1->Position = TR;

ProgressBar1->Step = 1; // o'zgarish qadami

ProgressBar1->Smooth = true; // polos - indekatori

// sonni topish

Randomize();

pw = RandomRange(100,999); // "maxviy" son

}

//taymerdan signal



void __fastcall TForm1::Timer1Timer(TObject *Sender) {

rem--;


ProgressBar1->Position--;

Label2->Caption = IntToStr(rem)+" sekund qoldi";



if (rem==0) {

// masalani yechishga ajratilgan vaqt tugadi

Timer1->Enabled = false;

Edit1->Enabled = false;

Button1->Enabled = false;

ShowMessage("Afsuski, Siz quyilgan masalani "

" yechishni eplay olmadingiz\n \"Maxviy\" son: " +

IntToStr(pw));

}

}

// Polos o'lagichga sichqonchani bosish



void __fastcall TForm1::CheckBox1Click(TObject *Sender) {

if (CheckBox1->Checked){

// polosa

ProgressBar1->Step =1; // o'zgarish qadami

ProgressBar1->Smooth = true; // polosa - indikatori

}

else {

// segmentlar

ProgressBar1->Step =6; // o'zgarish qadami

ProgressBar1->Smooth=false;//segmentlar-indikatori

}

}

// o'yinchi kiritgan son to'g'rligini tekshirish



void __fastcall TForm1::isRight(void) {

if (StrToInt(Edit1->Text)==pw) {

Timer1->Enabled = false;

Button1->Enabled = false;

Edit1->Enabled = false;

ShowMessage("Tabriklaymiz!\nSiz sonni " +

IntToStr(TR - rem)+ " sekundda topdingiz");

}

}

// Taxrirlash maydonida tugmalar bosilganda



void __fastcall TForm1::Edit1KeyPress(TObject *Sender, System::WideChar &Key) {

if ((Edit1->Text.Length()<3)&&((Key>='0')

&&(Key<= '9')))

return;

if (Key == VK_RETURN) {

isRight(); // foydalanuvchi kiritgan son

// to'g'riligini tekshirish

return;

}

if (Key==VK_BACK) return;

// qolgan belgilar taqiqlangan

Key = 0;

}

// Taxrirlash maydoni qiymati o'zgartirildi



void __fastcall TForm1::Edit1Change(TObject *Sender) {

// agar taxrirlsh maydonida uchta belgi (raqamlar)

// bo'lgan xolatdagina OK tugmasi murojaatli bo'ladi

if (Edit1->Text.Length()==3)

Button1->Enabled = true;



else

Button1->Enabled = false;

}

// OK tugmasiga sichqonchani bosish



void __fastcall TForm1::Button1Click(TObject *Sender) {

isRight(); //foydalanuvchi kiritgan son

// to'g'riligini tekshirish

}

Sonni topish -2



Sonni topish-2 dasturi, oynasi 1.13-rasmda keltirilgan, StatusBar komponentasidan foydalanish namoyish etilgan. Xolatlar satrining panellarida taxrirlash maydoniga kiritilgan belgilar mig’dori, sonni topishdagi o’rinishlar mig’dori va qo’yilgan masalani yechishda vaqt tasvirlanadi.



1.13-rasm. Xolatlar satrida ma’lumotlarning tasvirlanashi

#include

#define TR 60 // masalani yechishga taqdim etilgan vaqt

int pw; // "maxviy" son

int rem = TR; // masalani bajarishdagi qoldiq son

int p = 0; // o'rinishlar mig'dori

//forma konstruktori



__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner) {

// sonni o'ylash

Randomize();

pw = RandomRange(100,999); // "maxviy" son

}

// taymerdan signal



void __fastcall TForm1::Timer1Timer(TObject *Sender) {

rem--;


StatusBar1->Panels->Items[2]->Text=IntToStr(rem)+

"sekund qoldi";



if (rem==0) {

// masalani yechishga ajratilgan vaqt tugadi

Timer1->Enabled = false;

Edit1->Enabled = false;

ShowMessage("Afsuski, Siz quyilgan masalani "

" yechishni eplay olmadingiz\n \"Maxviy\" son: " +

IntToStr(pw));

}

}



// Taxrirlash maydonida tugmalar bosilganda

void __fastcall TForm1::Edit1KeyPress(TObject *Sender, System::WideChar &Key) {

if ((Edit1->Text.Length()<3)&&((Key>='0')

&&(Key<= '9')))

return;

if (Key == VK_RETURN && Edit1->Text.Length()==3) {

//foydalanuvchi kiritgan son to'g'riligini

// tekshirish

if (StrToInt(Edit1->Text)==pw){

Timer1->Enabled = false;

Edit1->Enabled = false;

ShowMessage("Tabriklaymiz!\nSiz sonni " +

IntToStr(TR - rem)+ " sekundda topdingiz");

}

else {



//o'rinishlar sonini oshirish

p++;


StatusBar1->Panels->Items[1]->Text="O'rinishlar

soni: "+IntToStr(p);

}

return;

}

if (Key==VK_BACK) return;

// qolgan belgilar taqiqlangan

Key = 0;


}

// Taxrirlash maydonining mazmuni o'zgartirildi



void __fastcall TForm1::Edit1Change(TObject *Sender){

StatusBar1->Panels->Items[0]->Text="Belgilar: "+

IntToStr(Edit1->Text.Length());

}


Download 3,49 Mb.

Do'stlaringiz bilan baham:
1   ...   16   17   18   19   20   21   22   23   ...   147




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish