For sikli yordamida amalga oshirish mumkin. Elementni massiv boshiga (birinchi o’ringa) ko’chirish uchun prosedura
Download 36.98 Kb.
|
masala 1
191-misol. Foydalanuvchi tomonidan ko’rsatilgan massiv elementini qo’shni elementlari bilan ketma-ket o’rin almashtirish orqali boshiga, ya’ni birinchi o’ringa o’tkazing. Bu jarayonni aniq misolda ko’rib chiqaylik. Bizga massiv berilgan bo’lsin, unda foydalanuvchi buyrug’iga ko’ra beshinchi elementni qo’shni elementlar bilan ketma-ket o’rin almashtirish yordamida birinchi o’ringa ko’chirish kerak. 3 - 12 45 16 -23 4 -5 76 -34 a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] Bu jarayon quyidagi ko’rinishda bo’ladi: 4-chi va 5-chi elementlarning o’rni almashtiriladi, quyidagi massiv hosil bo’ladi: 3 -12 45 -23 16 4 -5 76 -34 a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9]; 3-chi va 4-chi elementlarning o’rni almashtiriladi: 3 -12 -23 45 16 4 -5 76 -34 a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9]; 2-chi va 3-chi elementlarning o’rni almashtiriladi: 3 -23 -12 45 16 4 -5 76 -34 a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9]; va nihoyat, 1-chi va 2-chi elementlarning o’rni almashtiriladi: -23 3 -12 45 16 4 -5 76 -34 a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9]; Bundan, massivning barcha elementlari bitta element o’ngga “siljigan” ligi kelib chiqdi. Bunday o’rin almashishni for sikli yordamida amalga oshirish mumkin. Elementni massiv boshiga (birinchi o’ringa) ko’chirish uchun prosedura hosil qilamiz. Procedure transp_begin(n, k : integer; var a : t); var i, p : integer; begin for i := k downto 2 do begin p := a[i-1]; a[i-1] := a[i]; a[i] := p end end; Bu yerda k ko’chirilayotgan element nomeri. Siklda ketma-ket oldingi va keyingi elementlarning o’rni almashadi, shu usulda massiv elementlari asta-sekin bittadan o’ngga siljiydi. Nima uchun sikl 1 gacha emas, 2 gacha davom etadi? O’rin almashtirilayotgan elementlar indekslariga e’tibor bering: a[i - 1] va a[i], i=2 da ular a[1] va a[2] qiymat qabul qilishadi, ya’ni barcha elementlar, shu jumladan birinchisi ham o’rin almashtirish jarayonida qatnashadi. Sikl 1 gacha davom etganda edi, u holda a[0] va a[1] nomerli elementlar hosil bo’lar edi. Lekin massivda a[0] element yo’q va bu holda dasturda xato kuzatilar edi. Download 36.98 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling