Ma`lumotlar : 1092
Xabarlar soni: 314
Bugun: 20.4.2024
Soat: 16:51
Borland c++ da paskal uchburchagi
Muallif: Mengliyev SH.
Qo`shilgan sana: 2014-12-02
Paskal uchburchagi
Dastur tasnifi
Paskal uchburchagi quyidagi jadval ko’rinishida bo’ladi: birinchi qator birinchi pozitsiyalarda ikkita birdan tashkil topadi, har bir navbatdagisi esa birinchi pozitsiyada bir, boshqalarida esa oldingi qatordagi mazkur va oldingi pozitsiyalardagi elementlar yig’indisi yordamida hisoblanadi. Oxirgi elementi ham nol bilan almashtiriladi. Shunday qilib quyidagi uchburchak hosil qilinadi
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
Paskal uchburchagi Nyuton binomi koeffitsientlarini oson hisoblashga yordam beradi. Chunki Paskal uchburchagi qatori Nyuton binomi yoyilmasining qator nomeriga mos koeffitsientlaridan tashkil topadi.
Vazifa: Yigirma beshinchi qatorgacha Paskal uchburchagi tuzilsin
Muammolar
Mazkur dasturning bosh muammosi ekranga 25 ta qatorni chiqarish zaruratidan iborat. Ularning ba’zilarining uzunliklari juda katta bo’ladi. Bu muammoni hal qilish uchun standart panelning Memo komponenti ishlatilgan. U ko’p qatorli matn maydon bo’lib, qo’yilgan masala uchun eng muvofig’i hisoblanadi.
Memo (Memo1->Lines->Add(AnsiString)) ob’ektiga tegishli Lines qism ob’ektining Add protsedurasi matn oxiriga ko’rsatilgan qatorni qo’shadi.
Zarur ko’nikmalar
Bu dasturni yozish uchun massivlar bilan bir turli ma’lumotlar majmui kabi ishlashni bilish zarur. Undan tashqari qatorlar bilan ishlash va alohida tashkil etuvchilardan qatorlar hosil qilishni ham bilishi kerak.
Yechish
Shakl
Mazkur masalaning shakli o’lchamlari oxirgi qator to’liq sig’adigan qilib tanlangan matn maydonli bitta Memo ob’ektidan va ikkita tugmachadan iborat. Bu tugmachalar oldingi misoldagi o’xshash tugmachalarning vazifalarini bajaradi: «Stroka» tugmachasi dastur algoritmining bitta qadamini bajaradi, «Pusk/Pauza» tugmachasi esa taymer yordamida algoritmni bajarish uchun ishga tushiradi
Dastur kodi
int A[26]; // massiv
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
for(int i = 0; i<26; i++)
{
A[i] = 0;
}
A[0] = 1;
A[1] = 1; // massivni initsalizatsiya qilish
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
if(A[25] == 0)
{
int A1[26];
AnsiString s = "";
int i = 1;
A1[0] = 1;
while(A[i] != 0)
{
A1[i] = A[i] + A[i-1];
i++;
}
A1[i] = 1;
for(int j = 0; j <= i; j++)
{
A[j] = A1[j];
s = s + IntToStr(A[j]) + ' ';
}
Memo1->Lines->Add(s);
}
} //asosiy protsedura
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
if(Button2->Caption == "Pusk")
{
Button2->Caption = "Pauza";
}
else
{
Button2->Caption = "Pusk";
} // taymerni aktivlashtirish
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
if(Button2->Caption == "Pauza") //aktivlikka tekshirish
{
Button1->Click(); // asosiy protsedurani chaqirish
}
}
4377 marta o`qildi.