1.10-rasm. Berilgan x, y, z sonlar ichidan eng kattasini topish blok-sxemasi
Ushbu masalani yechish algoritmining yana bir usulini ko‘rib chiqamiz.
kiritish (x, y, z);
p = x;
agar (p < y ) bo‘lsa, u holda p= y;
agar (p < z ) bo‘lsa, u holda p= z;
muhrlash (r).
Bu algoritmga mos blok-sxema 1.11-rasmda tasvirlangan.
Bu usulga asosan, avvalo sonlar ichida birinchisi eng kattasi deb faraz qilinadi, ya’ni p = x. So‘ngra har bir qadamda navbatdagi son – r ning qiymati bilan solishtiriladi va shart bajarilsa, u eng kattasi deb qabul qilinadi. Bu algoritmning afzalligi shundaki, uning asosida uchta va undan ko‘p sonlar ichidan eng kattasini (kichigini) topishning qulay imkoniyati mavjud.
1.11-rasm. Hisoblash blok-sxemasi
misol. Quyidagi ifoda bilan berilgan munosabatni hisoblang [2, 52 b.].
b x ,
Y x a ,
a b ,
agar agar aks
x 0,
x 0,
holda .
Bu misol natija x ning qiymatiga bog‘liq shart bilan berilgan va masala quyidagicha so‘zlar orqali ifodalangan algoritm asosida aniqlanadi:
agar x > 0 bo‘lsa, u holda u = b - x bo‘ladi, aks holda; agar x < 0 bo‘lsa, u holda u = x + a, aks holda u = a+ b.
Avvalo, birinchi shart tekshiriladi va agar u bajarilsa, y = b - x amal
bajariladi, aks holda Y
x a ,
agar
x 0,
munosabat hisoblanadi.
a b ,
aks
holda .
Bu fikrlar quyidagi blok-sxemada o‘z aksini topgan (1.12-rasm).
1.12-rasm. Hisoblash blok-sxemasi
4 Мавзу Sharti oxirida berilgan siklning sintaksisi
Do
Konstruktsiyalar
Loop While Shart
Bu sikl strtukturasini ishlatishda shart sikl oxirida tekshiriladi. Bu holatda sikl tanasi kamida bir marta bajariladi va undan keyin shart tekshiriladi.
Sharti oldinda berilgan sikl
Do ... Loop sikl konstruktsiyasining yana bir ko‘rinishi bor. Ular aw algi ko‘rilgan sikllar bilan bir xil, lekin sikl shartining qiymati False b o‘lguncha bajariladi.
Do Until Shart Konstruktsiya Loop
Sbarti oxlrida berilgan sikl
Do
Konstruktsiya
Loop Until Shart
Sikldan shartsiz chiqib ketish sharti oldinda va oxirida berilgan sikllaming tuzilmasi uchun Exit Do sintaksisiga ega. Exit buyrug‘i siklning bajarilishini yakunlaydi va boshqarishni sikldan keymgi konstruktsiyaga beradi.
misoI: Shartli sikl tuzilmasini ishlatisb (shart sikl tanasi bajarilishidan oldin tekshiiiladi)
Kvadrat berilgan. Kvadrat tomoni 2 ga teng. Kvadrat markazi dekart koordinatalari sistemasining (0,0) nuqtasida joylasgan. Siklda kvadrat ichidan tasodifiy nuqta olinadi. Nuqta markazlari (0,0) nuqtada va radiuslari Rl=0,5; R2 =1,0 bo‘lgan ikkita konsentrik aylanadari tashkil topgan halqaga tegishliligini tekshirish kerak. Quyida shartlaming biri bajarilsa, sikl to ‘xtatiladi.
Tasodifiy olingan nuqtalaming soni 300 ga teng boisa.
Halqaga tegishli bo‘lgan nuqtalar soni 50 ga teng bo‘lsa.
Nuqtalarning umumiy soni va halqaga tegishli bo*lgar nuqtalaming soni chop etiladi.
Algoritmi
К1 - aniqlanadigan nuqtalaming tartibi. Siklga kirishdan oldi unga nol qiymatini berish lozim.
K2 - halqaga tushuvchi nuqtalar soni. Siklga kirishdan oldi unga nol qiymatini berish lozim.
Sikl sarlavhasi. К1 < 300 va K2 < 50 shartlarini tekshirisl
Agar teksirish natijasi True bo‘lsa, К1 =К1 + 1 iteratsiyasi
_malgam oshirish.
(x,y) nuqtasi koordinatalarini topish
-1.0 < x < +1.0, -1.0 < у < +1.0
Nuqtaning 0.25 < x: + y2 < 1.0 halqasiga tegishliligini tekshir
Agar K2 =K2 + 1 sharti bajarilsa, 3 punktga o‘tish
Kl, K2 larni chiqarish
10.15-rasm
Ob’yekt
|
Xossasi
|
0 ‘ntatilgan qiymatlari
|
Forml
|
Caption
|
Sharti oldinda berilgan sikl
|
Labell
|
Caption
|
Nuqtalar soni
|
Label2
|
Caption
|
Halqaga tushishlar soni
|
Commandl
|
Caption
|
Ishga tushirish
|
Command2
|
Caption
|
Dasturdan chiqish
|
Textl, Text2
|
Text
|
Text xossasi maydonini tozalash
|
Halqaga tushish soni
::::.... . ^ i : : : : : : : : ¥ r A i ri:
1 *1 ’ - ’
10.16-rasm
Blok-sxemasi
Dastur kodi
Option Explicit
Private Sub Commandl_Click() Dim K l, K2 As Integer
Dim X, Y, D As Single К1 = 0
K2 = 0
Do While (К1 <= 300) And (K2 <= 50)
X = 2# * Rnd - l# Y = 2 # * Rnd - l# К1 = К1 + 1
D = X * X + Y * Y
If (D > 0.25) And (D < l#) Then K2 = K2 + 1
Loop
TextLText = Str(Kl) Text2.Text = Str(K2) End Sub
Private Sub Command2_Click() End
End Sub
Private Sub Form_Load() Randomize
End Sub
. Nuqtalar soni
8 7
: Halqaga tiishish soni
51
Ishga tushirish Chiqish
10.17-rasm
misol: Shartli sikllarnlng tuzilmasiiii khbti^ (sikl tanasi bajarilganidan so‘ng shartni tekshirish)
Tasodif sonlar datchigi yordamida 0 dan 1000 gacha bo‘lgan oraliqdan butun sonni olish. Urinishlar 950 dan katta bo‘lgan qiymatni olguncha davom etadi. Olingan natijani va urinishlar sonini natijaga chiqarish кегак.
Algoritmi
К - urinishlar soni - siklga kirisgdan oldin unga nol qiymatini berish
Sikl sarlavhasini kiritish
Sikl iteratsiyasi formulasmi kiritish K = K + 1
A =1000*int(Rnd) tasodif sonini aniqlash
Agar А ? 950 bo‘lsa, 3-bosqichqa o‘tish
А, К lami chiqarish
10.18-rasm
Ob’yekt
|
Xossasi
|
0 ‘rnatilgan qiymatlari
|
Forml
|
Caption
|
Sharti oxirida berilgan sikl
|
Labell
|
Caption
|
Tasodifiy son
|
Label2
|
Caption
|
Urinishlar soni
|
Commandl
|
Caption
|
Ishga tushirish
|
Command2
|
Caption
|
Chiqish
|
Textl, Text2
|
Text
|
Text xossasi maydonini tozalash
|
10.19-rasm
Blok-sxemasi
5 мавзу
s=1+2+3+4+5+ ...+n hisoblash algoritm blok sxemasini tuzish
6 - Мавзу
sharti avval tekshiriladigan (sharti oldin kelgan «toki») takrorlanish jarayoni, bu maxsus WHILE operatori orqali amalga oshiriladi; sharti keyin tekshiriladigan («…gacha») takrorlanish jarayoni, bu jarayonni maxsus REPEAT operatori orqali amalga oshiriladi;
parametrli takrorlanish jarayoni, bu jarayon maxsus FOR operatori yordamida amalga oshiriladi.
Yuqorida keltirilgan jarayonlarga alohida- alohida to`xtalib o`tamiz.
Sharti avval tekshiriladigan takrorlanish jarayoni
Takrorlauvchi jarayonning bu ko`rinishi takrorlanish soni oldindan noma’lum bo`lgan hollarda, ya’ni takrorlanishdan chiqish ma’lum shartga bog`liq hollarda ishlatiladi. Takrorlanishning bu jarayonida takrorlanishdan chiqish sharti takrorlanish tanasini bajarishdan oldin tekshiriladi. Ushbu operatorning ko`rinishi quyidagichadir:
WHILE <mantiqiy ifoda > DO < operatorlar > ;
bu yerda, while – toki, do – bajarish ma’nosini anglatuvchi xizmatchi so`zlar, operatorlar takrorlanish tanasini belgilaydi. Takrorlanish tanasida bitta yoki bir necha opeatorlar guruhi bo`lishi mumkin. Bunda operatorlar guruhi, begin va end ga olib yoziladi.
1-misol. a haqiqiy son berilgan bo`lsin. Shunday eng kichik butun musbat k sonini topish talab qilinsinki, bu son
3 k > a
shartni qanoatlantirsin.
Yechish. Masalaning dasturini tuzish uchun 3k ifodaning qiymatini saqlaydigan qo`shimcha o`zgaruvchi kattalik kiritishimiz lozim. Agar uni S bilan belgilasak, u holda k=0 da S=1 dan boshlab, bitta qadam bilan o`zgarishda yuqoridagi formulani S=S*3 rekkurent formula bilan almashtiramiz. U holda takrorlanishdagi hisobdan chiqish sharti S > a bo`ladi.
Dasturni tuzamiz.
Program wel;
Var k: integer; S, a: real;
Begin
S:= 1; k:= 0; a:= 30;
While S<= a do
begin
S:= S*3; k:= k+1;
Writeln(‘k=‘, k, ‘S=’, S)
end
End.
Natijada a = 30 son uchun eng kichik k son 4 ekan.
Do'stlaringiz bilan baham: |