For sikli yordamida amalga oshirish mumkin. Elementni massiv boshiga (birinchi o’ringa) ko’chirish uchun prosedura


Procedure middle (kiruvchi parametr bo’lib massiv uzunligi hizmat qilishi kerak k: integer; chiquvchi parametrlar – massiv va “o’rta”


Download 36.98 Kb.
bet8/16
Sana01.04.2023
Hajmi36.98 Kb.
#1318578
1   ...   4   5   6   7   8   9   10   11   ...   16
Bog'liq
masala 1

Procedure middle (kiruvchi parametr bo’lib massiv uzunligi hizmat qilishi kerak k: integer; chiquvchi parametrlar – massiv va “o’rta” element nomeri);
var
l, r : integer; {Elementlarning chap va o’ng nomerlari}
begin
Elementlarning chap va o’ng nomerlariga boshlang’ich qiymatlar 1 va k ni (massiv uzunligini) berib qo’yish kerak.
Asosiy yoki tashqi sikl o’ng va chap indekslari nomerlari o’zaro teng bo’lib qolgunicha davom etishi kerak (l = r), demak tashqi sikl repeat ni tashkil etish kerak.
So’ngra o’ng tomondan boshlab elementlarni ko’rib chiqish sikli bo’lishi kerak, u chap element o’ng elementdan kichik yoki teng bo’lguncha davom etishi, shu bilan bir qatorda chap indeks nomeri o’ngidan kichik bo’lishi kerak, bu yerda quyidagi sikl o’rinli:
while (x[l] <= x[r]) and (l < r) do
(Siklda o’ng element indeksini kamaytirib, o’rtaga siljib borish kerak) r := r – 1.
O’ngidan katta bo’lgan chap element topilishi bilan, bu elementlarning o’rnini almashtirish kerak. Buning uchun esa elementlarning o’rnini almashtrish prosedurasiga murojaat etish kerak, uni asosiy dasturda exchange (almashuv) deb ataymiz;
Almashtirishdan so’ng, o’ng tomondagi elementlarni ko’rib chiqish kerak, buning uchun ham “bo’lguncha” siklini tashkil qilamiz:
while (x[l] <= x[r]) and (l < r) do.
Siklda elemntlarni ko’zdan kechirgan holda chapdan o’ngga siljish, buning uchun esa chap element indeksini l := l + 1 ga oshirish kerak.
Agar o’ngidan katta bo’lgan chap element topilsa, ularning o’rnini almashtirish kerak.
Almashtirish prosedurasiga yana murojaat qilamiz.
Tashqi sikl: until l = r sharti bilan tugaydi.
Dastur
Program L196; {Massivning “o’rta” elementini qidirish}
uses Crt;
const
n = 20;
type
t = array[1..n] of integer;

Download 36.98 Kb.

Do'stlaringiz bilan baham:
1   ...   4   5   6   7   8   9   10   11   ...   16




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