14
Будагланан структурлу алгоритмлярин тясвири
Шякил 5
Шякил 6
йох
йох
йох
щя
щя
щя
)
(
1
2
1
2
1
1
y
y
x
x
x
x
y
z
z
башланьыъ
son
x
1
,x
2
,x
3
,
y
1
,y
2
,y
3
x=
x
3
x<
x
2
x
1
≤
x
z=y
3
)
(
1
3
2
3
2
2
y
y
x
x
x
x
y
z
йох
йох
йох
щя
щя
щя
son
x
x>y
k<1
k=x+y
x=x-0,5
y=y-0,5
y=k/2
x=k/2
x
x
15
Дюврц структурлу алгоритмлярин тясвири
Шякил 7
Шякил 8
йох
щя
Башланьыъ
Sон
Башланьыъ
Sон
16
tam ədədlər olur, məsələn dövrün hər hansı parametri
2-dən
20-yə qədər
2 addımla dəyişir. Lakin bu dövrlərin hər ikisi
blok-sxemin qurulması nöqteyi-nəzərindən bir-birindən
fərqlənmir və onlar şəkil 7-də göstərilən ümumi struktura
malik olur.
Dövrü proseslərə ən sadə misal olaraq funksiyaların
cədvəl şəklində hesablanmasını göstərmək olar.
Misal 2.5. Arqumentin qiymətini
2,3-dən
6,5-ə qədər
0,2
addımla
dəyişməklə
ax
2
2
3
e
x
a
a
y
funksiyasını
hesablamaq üçün blok-sxem tərtib etməli.
Aydındır ki, funksiyanın birinci qiyməti arqumentin
x=2,3 qiymətində, sonrakı qiymətləri isə
x=x+Δx (Δx=0,2)
qiymətlərində hesablanacaqdır. x=6,5 olduqda funksiya
sonuncu dəfə hesablanacaq və dövrdən “çıxış” baş
verəcəkdir. Dövrün parametrinin başlanğıc, son və addım
qiymətləri dövr blokunda göstərilir (şəkil 9). Göstərilən blok-
sxemdə dövr aşağıdakı qayda ilə yerinə yetirilir: 3-cü blokda
dövrün parametri özünün x=2,3 başlanğıc qiymətini alır, 4-cü
blokda funksiya hesablanır və 5-ci blokda nəticə çap olunur.
3 və 5-ci blokların əhatəsində yerləşən bloklar dövrün
oblastını təşkil edirlər. Dövrün parametri x özünün sonuncu
x=6,5 qiymətini almadığı üçün 3-5-ci bloklar yenidən təkrar
olunur. x=6,5 olduqda isə 4 və 5-ci bloklar sonuncu dəfə
yerinə yetirilir və yalnız bundan sonra 6-cı blok yerinə
yetirilir.
Misal 2.6. X = x
1
, x
2
,..., x
50
massivinin elemetlərini
cəmləmə alqoritminin blok-sxemini tərtib etməli.
Cəmləmə əməliyyatını yerinə yetirmək üçün hər hansı bir
dəyişənə sıfır qiyməti mənimsədib (s=0) dövrün daxilində
həmin dəyişənin üzərinə cəmlənən dəyişənləri (massivin
elementlərini) əlavə etmək lazımdır (s=s+x
i
). Bu məsələnin
blok-sxemi şəkil 10-da göstərilmişdir.
18
Misal 2.7. Sonsuz
x, x
2
/2!, x
3
/3! ,..., x
n-1
/(n-1)! ,...
sırasının hədlərini, hər hansı x
n
/n! həddinin verilmiş
ədədindən kiçik olanadək hesablamaq üçün alqoritmin blok-
sxemini tərtib etməli. Baxılan məsələdə dövrlər sayı və ya
dövrün parametrinin son qiyməti məlum olmadığından bu
məsələnin həlli üçün iterasiyalı dövrdən istifadə etmək
lazımdır. Sıranın cari elementini hesablamaq üçün
y
n
=y
n-1
·x/n
rekurrent düsturundan istifadə etmək lazımdır. Bu düsturda
dəyişən arqument kimi həddin nömrəsi götürülür. Ona görə
də rekurrent düsturu
y=y·x/n
şəklində yazmaq lazımdır. Burada birinci hədd üçün y=1 və
n=1 olacaqdır. Təsvir olunan alqoritmin blok-sxemi
şəkil 11-
də göstərilmişdir.
2.4. BƏZİ MÜRƏKKƏB MƏSƏLƏLƏRİN BLOK-
SXEMLƏRİNİN QURULMASI
Mühəndis məsələlərinin həlli praktikasında yalnız bu və
ya digər strukturlu hesablama proseslərindən ibarət
məsələlərə çox az hallarda təsadüf edilir. Hətta ən sadə
məsələlərin alqoritmlərinin işlənməsində qarışıq strukturlu
blok-sxemlərdən istifadə etmək lazim gəlir. Belə blok-
sxemlərdə həm xətti, həm budaqlanan, həm də dövrü
strukturlu hesablama prosesləri iştirak edir. Məlumdur ki,
blok-sxem tərtib olunduqdan sonra birbaşa proqramlaşdırma
mərhələsi yerinə yetirilir. Ona görə də blok-sxem tərtib
olunarkən elə simvollardan istifadə etməyə çalışmaq lazımdır
ki, həmin simvollar proqramda da istifadə oluna bilsin.
19
Misal 2.8.
X = x
1
, x
2
,..., x
50
massivinin x
max
ən böyük elementini və onun sıra nömrəsini
tapmaq üçün alqoritmin blok-sxemini tərtib etməli.
Alqoritmin mahiyyəti ondan ibarətdir ki, birinci element
ən böyük element kimi (x
max
=x
1
) qəbul edilməklə yerdə qalan
elementlərlə müqayisə edilir. Əgər həmin elementlərdən hər
hansı biri x
max
–dan böyük (x
i
>x
max
) olarsa, onda həmin
element ən böyük element kimi qəbul edilir, yəni x
max
=x
i
.
Elə bu anda da həmin elementin nömrəsi
n
max
=i təyin olunur.
Bu alqoritmin blok-sxemi şəkil 12-də göstərilmişdir.
Misal 2.9. Ən böyük ortaq bölənin tapılması üçün
Evklid
alqoritminin blok-sxemini tərtib edin.
Bu məsələnin mətnlə yazılmış alqoritmi yuxarıda izah
edilmiş, blok-sxemi isə şəkil 13-də göstərilmişdir.
Misal 2.10. A=|a
ij
| matrisinin müsbət sətir elementlərinin
cəmindən ibarət olan B=|b
i
| matrisini yaradın və bu matrisi
çap edən alqoritmin blok-sxemini tərtib edin (i=1, 2 ,...,10;
j= 1, 2 ,..., 8).
Bu alqoritmdə iki dövr təşkil etmək lazımdır. Bunlardan
biri (xarici dövr) matrisin hər bir sətrinə müraciət üçün,
digəri (daxili dövr) isə hər bir sətirdə müsbət
elementləri tapıb onları cəmləmək üçün nəzərdə tutulmalıdır.
Daxili dövrdən əvvəl sətir elementlərinin cəminə uyğun
dəyişənə s=0 başlanğıc qiyməti mənimsətmək lazımdır. Bu
məsələnin blok-sxemi şəkil 14-də göstərilmişdir.
Nisbətən mürəkkəb olan daha bir misala baxaq.
Misal 2.11. Fərz edək ki, hər hansı bir eksperimental
qurğuda təcrübənin aparılması nəticəsində elementlərinin sayı
uyğun olaraq n və m olan iki pərakəndə A=|a
i
| və B=|b
j
|
massivləri tərtib edilmişdir. Bu massivləri bir C massivində
birləşdirməyi , alınmış massivin elementlərini artma sırası ilə
20
Шякил 12
Шякил 13
Шякил 14
йох
щя
Башланьыъ
x
xmax=x
1
nmax=1
xmax, nmax
xmax= x
1
Sон
i=2,50
x
i
>xmax
nmax=i
щя
щя
йох
йох
x=x-y
Башланьыъ
x,y
x>y
y=y-x
y>x
z=x
z
Sон
йох
щя
Башланьыъ
a
i,j
b
i
=s
b
s=0
s=s+ a
i,j
Sон
a
i,j
>0
i=1,10
j=1,8
21
düzməyi, hər hansı bir verilmiş
Z ədədindən böyük
elementləri C massivindən atmağı və alınmış C' massivi üçün
statistik hesablamaları aparmağı təmin edən alqoritmin blok-
sxemini tərtib etməli.
Göründüyü kimi bu məsələ bir neçə müstəqil məsələlərin
həllindən ibarətdir. Ona görə də əvvəlcə bütöv məsələnin
iriləşmiş blok-sxemini, sonra isə hər bir müstəqil məsələlərin
daha müfəssəl blok-sxemlərini tərtib edərək son nəticədə
onları vahid bir blok-sxemdə birləşdirmək məqsədəuyğundur.
Bu məsələnin iriləşmiş blok-sxemi şəkil 15-də
göstərilmişdir.
Ayrı-ayrı məsələlərin blok-sxemlərinin qurulmasına
baxaq.
Massivin elementlərinin artma sırası ilə düzülməsi
məsələsi bir neçə üsulla yerinə yetirilə bilər. Bu üsulun
seçilməsi və qiymətləndirilməsi məsələni həll edənin
özündən asılıdır. Fərz edək ki, bu məsələnin həlli üçün
yerdəyişmə üsulu seçilmişdir. Yerdəyişmə üsulunun
mahiyyəti ondan ibarətdir ki, massivin elementləri ardıcıl
olaraq müqayisə olunaraq onların yerləri elə dəyişdirilir ki,
nəticədə monoton artan (və ya azalan) ardıcıllıq alınsın. Artan
ardıcıllıq almaq üçün əvvəlcə birinci iki element müqayisə
olunur. Əgər x
1
, x
2
,...,x
n
ardıcıllığında x
2
1
olarsa, onda x
1
elementi bir yer sağa sürüşdürülür, onun yerinə isə x
2
yazılır.
Əgər x
2
>x
1
olarsa, onda bu elementlərin yeri dəyişdirilmir, x
2
və x
3
elementləri müqayisə olunur və s. Ümumi halda
elementlərin “yerdəyişmə” prosesini belə təsvir etmək olar.
Əgər x
i
j
(i=i-1,..., 1) olarsa, onda j-cu element sağa
sürüşdürülür və x
i
elementi x
j-1
elementi ilə müqayisə olunur.
Əgər x
i
>x
j
olarsa, onda j-cu element öz yerində qalır, i-ci
element isə j+1-ci yerə sürüşdürülür. Elementlərin dəfələrlə
müqayisə edilməsi və onların yerlərinin dəyişdirilməsi lazım
olan nəticəyə gətirir. Yerdəyişmə üsulu ilə massivin element-
22
Шякил 15
A,m,B,n
A,B массивляринин
елементляринин артма
сырасы иля дцзцлмяси
Башланьыъ
A,B массивляринин
бирляшдирилмяси
З - дян бюйцк
елементлярин
атылмасы
Статистик щесабатларын
йериня йетирилмяси
С,С
1
,М,
,
Сон
24
Шякил 16
Шякил 17
щя
щя
щя
йох
йох
йох
башланьыъ
сон
a,m
k=2
i= k
j=i-1
i=i-1
a
i
j
k≤m
i>1
x=a
i
a
i=
a
j
a
j
=x
k=k+1
i= k+1
a
1
щя
щя
йох
щя
щя
йох
йох
йох
йох
13
9
башланьыъ
a
1
,m
b
1
,n
a
i
j
c
k=0
i=1
j=1
k=k+1
a=2
a=1
c
k
=b
j
j=j+1
c
k
=a
i
i=i+1
сон
i≤m
j≤n
a=1
m+n≥k
4
4
12
13
щя
14
1
4
7
2
3
5
6
8
15
9
10
11
12
13