Mirsaid Aripov, Nurillo Otaxanov



Download 9,81 Mb.
bet61/209
Sana16.01.2022
Hajmi9,81 Mb.
#371485
1   ...   57   58   59   60   61   62   63   64   ...   209
Bog'liq
DELPHI dasturlash titli 2018

7.7-jadval.




Yanvar

Fevral

Mart

...

Noyabr

Dekabr

Tiko



















Damas



















Neksiya



















Matiz



















Liganza


















Bu yerda Nom - massiv nomi; array - kalit so`z; n - satrlarning quyi indeksi, m – yuqori indeksi, k - ustunlarning quyi indeksi, l – esa yuqori indeksi; Tip —elementlar tipi. 7.7-jadvalni quyidagi ikki o`lchovli massiv shaklida yozish mumkin:



yakun: array [1..12, 1..5] of integer

Ikki o`lchovli massiv (m-n1)×(k-l1) ta elementlarga ega. Demak, yakun massivi 60 ta Integer tipidagi ma`lumotlardan iborat.

Massiv elementiga murojaat qilish uchun uning nomi va kvadrat qavslarda indeks nomerlarini ko`rsatish lozim. Birinchi indeks satr nomerini, ikkinchisi esa ustun nomerini anglatadi. Masalan, yakun[2][3] elementi mart oyida sotilgan Neksiya mashinalarini bildiradi.

Massivlar bilan ishlaganda for buyrug’idan foydalanish qulay. Masalan, bir yil davomida sotilgan Damas mashinalarini hisoblash uchun dastur parchasi quyidagicha yoziladi:



s : 0; for j : 1 to 12 do s : s  yakun[2][ j];

Quyidagi dastur parchasi massiv elementlarining (bir yilda sotilgan avtomashinalarning umumiy soni) yig’indisini topadi:



S : 0;

for i : 1 to 5 do  avtomobillarning 5 ta modeli

for j : 1 to 12 do  12 oydagi

s : s  yakun[i][ j];

Yuqoridagi misolda ichki tsikl (j bo`yicha tsikl) har gal bir marta to`la bajarilganda, tashqi tsiklning boshqaruvchi i o`zgaruvchisining qiymati 1 ga ortadi. Shundan keyin ichki tsikl yana bir marta to`la bajariladi va x.k. Shunday qilib, s o`zgaruvchining qiymatiga yakun massivining elementlari yakun[l][l], yakun[l][2], ..., yakun[l][12], yakun [2][l], yakun [2][2], ..., yakun [2][12] va x.k. ketma-ket qo`shiladi.

Misol uchun 2000 yildagi Sidney olimpiadasi natijalarini qayta ishlashni ko’raylik. Boshlang’ich ma`lumotlar 7.8-jadvalda berilgan.

2000 yildagi Sidney olipiadasi natijalari 7.8-jadval



Mamlakat

oltin

kumush

bronza

Avstraliya

16

25

17

Belarus’

3

3

11

Buyuk Britaniya

11

10

7

Germaniya

14

17

26

Italiya

13

8

13

Hitoy

28

16

15

Koreya

8

9

11

Kuba

11

11

7

Niderlandiya

12

9

4

Rossiya

32

28

28

Ruminiya

11

6

9

AQSH

39

25

33

Frantsiya

13

14

11

Yaponiya

5

8

5

Bu dastur har bir mamlakat vakillari olgan medallarning umumiy miqdori hamda har bir mamlakat to`plagan ochkolarni hisoblaydi. Ballarni hisoblashda bitta oltin medal uchun jamoaga – 7, kumush uchun – 6, bronza uchun – 5 ball beriladi. Dasturning dialog oynasi 7.18-rasmda tasvirlangan. Massivga ma`lumotlarni kiritishda StringGrid komponenta-sidan foydalaniladi. Uning qiymatlari 7.9-jadvalda berilgan.

Fiksirlangan birinchi satr yacheykalaridan ustunlarga sarlavha qo`yishda foydalaniladi. Forma qurilayotgan vaqtda massiv yacheykalari qiymatlarini FormCreate (7.11-listing) protsedurasi hisoblaydi. Bu protsedura forma faollashganda ishga tushadi va olimpiada qatnashchilari ro`yxatini 1-ustunga yozadi.

Boshlang’ich ma`lumotlarni qayta ishlash dasturi YAKUNLASH (Button1) tugmasi chertilganda ishga tushadi (7.11-listing).

7.12-listing. Ikki o`lchovli massivni qayta ishlash

procedure TForm1.Button1Click(Sender: TObject);

var

c, r: integer; // jadvalning ustun va satr nomerlari

s : integer; // jamoalarning umumiy medallari

p : integer; // jamoaning ochkosi

m : integer; // eng katta ochko jamoaning satr nomeri

7.18-rasm. Olimpiada yakunlari dasturining dialog oynasi



StringGrid komponentasining hususiyati qiymatlari 7.9-jadval

Hususiyati

Qiymati

Hususiyati

Qiymati

Name

Tab1

Options . goEditing

TRUE

ColCount

6

DefaultColWidth

65

RowCount

14

DefaultRowHeight

14

FixedCols

0

GridLineWidth

1

FixedRows

1







I : integer; // satr nomeri. Tartiblash va=tida foydalaniladi

s1 : string;

begin

for r:=1 to tab1.rowcount do // hamma satrlarni qayta ishlash

begin s:=0;

// medallarning umumiy sonini aniqlash

for c:=1 to 3 do

if tab1.cells[c,r] <>'' then s:=s+StrToInt(tab1.cells[c,r])

else tab1.cells[c,r]:='0';

// ochkolarni hisoblaymiz

p:=7*StrToInt(tab1.cells[1,r])+6*StrToInt(tab1.cells[2, r] )

+ 5*StrToInt(tab1.cells[3,r]);

// natijalarni chiqarish

tab1.cells[4, r]:=IntToStr(s); // jami medallar

tab1.cells[5, r]:=IntToStr(p); // ochkolar

end;

// jadvalni kamayish tartibida, 5-ustun bo`yicha tartiblaymiz

// eng kichik elementlar usuli bilan tartiblash

for r:=1 to tab1.rowcount-1 do

begin

m:=r; // eng katta element r-chi satrda

for i:=r to tab1.rowcount-1 do

if StrToInt(tab1.cells[5,i])>StrToInt(tab1.cells[5,m]) then m:=i;

if r <> m then

begin // r - va m-satrlarni almashtirish

for c:=0 to 5 do begin

s1:=tab1.Cells[c,r];

tab1.Cells[c,r]:=tab1.Cells[c,m];

tab1.Cells[c,m]:=s1;

end; end;

end;

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

tab1.Cells[0,0]:='Mamlakat'; tab1.Cells[1,0] :='Oltin';

tab1.Cells[2,0] :='kumush'; tab1.Cells[3,0] :='Bronza';

tab1.Cells[4,0] :='Jami'; tab1.Cells[5,0] :='Ballar';

tab1.Cells[0,1] :='Avstraliya'; tab1.Cells[0,2] :='Belorussiya';

tab1.Cells[0,3] :='Buyuk Britaniya';

tab1.Cells[0,4] :='Germaniya'; tab1.Cells[0,5] :='Italiya';

tab1.Cells[0,6] :='Xitoy'; tab1.Cells[0,7] :='Koreya';

tab1.Cells[0,8] :='Kuba'; tab1.Cells[0,9] :='Niderlandiya';

tab1.Cells[0,10]:='Rossiya'; tab1.Cells[0,11]:='AQSH';

tab1.Cells[0,12]:='Frantsiya'; tab1.Cells[0,13]:='YAponiya';

end;

end.

7.19-rasmda bu dasturning dialog oynasi keltirilgan.





7.19-rasm. Sidney olimpiadasi dasturining dialog oynasi

Massivlardan foydalanishda elementlar indeks ko`rsatilgan diapazondan chetga chiqib ketishi mumkin. Bu holda mavjud bo`lmagan elementga murojaat qilinganligi haqida kompilyator



Range check error (diapazon nazoratining hatoligi)

tarzida axborot beradi.


8-BOB. PROTSEDURALAR. PROTSEDURA-FUNKSIYALAR

8.1. Formal va joriy, lokal va global o`zgaruvchilar


Formal va joriy o`zgaruvchilar. Masalalar yechish jarayonini tavsiflashda dastlab shartli ravishda eng muhim parametrlar tanlab olinadi va ana shu o`zgaruvchilar uchun qo`yilgan masalani to`la yechish qonun - qoidalari (algoritmi) ishlab chiqiladi. Bunday o`zgaruvchilarni dasturlashda formal o`zgaruvchilar deb atash qabul qilingan. Turli sohalardagi (masalan, matematika) masalalarning yechish yo`llari ana shu formal o`zgaruvchilarga nisbatan bayon qilinadi. Misol uchun, umumiy ko`rinishi



bo`lgan kvadrat tenglamaning yechish uchun diskriminant topiladi. Agar D0 bo`lsa, kvadrat tenglamaning ildizlarini



formulalar bilan topiladi. Bu formulalardagi barcha o`zgaruvchilar formal hisoblanadi.

Konkret bir masala shartida esa hamma o`zgaruvchilar aniq ko`rsatib qo`yiladi va masalani ana shu o`zgaruvchilar uchun hal qilish talab qilinadi. Bunday o`zgaruvchilar joriy o`zgaruvchilar deb ataladi. Qo`yilgan masalani yechish uchun zarur bo`lgan barcha qonun-qoidalar formal o`zgaruvchilar o`rniga joriy o`zgaruvchilarni qo`yib bajariladi. Masalan, biror hayotiy masalani yechish jarayonida koeffitsientlari p2, q12, r3 va ko`rinishi bo`lgan kvadrat tenglama uchragan bo’lsin. Uni hal qilish uchun umumiy formuladagi a - o`rniga p, b - o`rniga q, c - o`rniga esa r o`zgaruvchilarni qo`yish lozim. Shundan keyin, mavjud umumiy qonuniyatlarga binoan kvadrat tenglamani yechish mumkin.

Lokal va global o`zgaruvchilar. Masala shartida ko`rsatilmagan, lekin masalani yechish uchun hisoblanishi zarur bo`lgan o`zgaruvchilarni oraliq o`zgaruvchilar deyiladi. Masalan, kvadrat tenglama uchun a, b, c koeffitsientlar beriladi va x1, x2 ildizlarni topish talab qilinadi. Diskriminant D - o`zgaruvchi kvadrat tenglamada ko`rsatilmagani holda, qiymatini albatta hisoblash talab qilinadi. Demak, D - oraliq o`zgaruvchi. Odatda oraliq o`zgaruvchilar katta masala tarkibidagi kichik bir jarayon uchun taalluqli bo`ladi va shu sababli ularni lokal (mahalliy) o`zgaruvchilar deb ham yuritiladi.

Global o`zgaruvchilar deb bir vaqtning o`zida ham asosiy masala, ham uning tarkibidagi barcha jarayonlar uchun birdek taalluqli bo`lgan o`zgaruvchilarga aytiladi.

Bu o`zgaruvchilardan Delphi muhitida foydalanish yo`l-yo`riqlari haqida keyinroq to`xtalamiz.

Download 9,81 Mb.

Do'stlaringiz bilan baham:
1   ...   57   58   59   60   61   62   63   64   ...   209




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