a=new int *[m] // bu erda m massiv satrlari soni
Keyin, har bir satr uchun takrorlash operatori yordamida xotira ajratish va ularning boshlang‘ich adreslarini a massiv elementlariga joylashtirish zarur bo‘ladi:
for(int i=0;i
SHuni qayd etish kerakki, dinamik massivning har bir satri xotiraning turli joylarida joylashishi mumkin (7.1 va 7.3-rasmlar).
Ikki o‘lchamli massivni o‘chirishda oldin massivning har bir elementi (satri), so‘ngra massivning o‘zi yo‘qotiladi:
for(i=0;i
delete[]a;
Ma’ruza 17
Funksiya tushunchasi.Kurinish soxasi.
Lokal va global uzgaruvchilar
Programma ta’minotini yaratish amalda murakkab jarayon hisoblanadi. Programma tuzuvchi programma kompleksini bir butun-likdagi va uning har bir bo‘lagining ichki mazmunini va ularning sezilmas farqlarini hisobga olishi kerak bo‘ladi.
Programmalashga tizimli yondoshuv shundan iboratki, program-ma tuzuvchi oldiga qo‘yilgan masala oldindan ikkita, uchta va undan ortiq nisbatan kichik masala ostilarga bo‘linadi. O‘z navbatida bu masala ostilari ham yana kichik masala ostilariga bo‘linishi mumkin. Bu jarayon toki mayda masalalarni oddiy standart amallar yordamida echish mumkin bo‘lguncha davom etadi. SHu yo‘l bilan masalani dekompozitsiyalash amalga oshiriladi.
Ikkinchi tomondan, programmalashda shunday holatlar kuzatila-diki, unda programmaning turli joylarida mazmunan bir xil algo-ritmlarni bajarishga to‘g‘ri keladi. Algoritmning bu bo‘laklari asosiy echilayotgan masaladan ajratib olingan qandaydir masala ostini echishga mo‘ljallangan bo‘lib, etarlicha mustaqil qiymatga (natijaga) egadir. Misol uchun quyidagi masalani ko‘raylik:
Berilgan a0,a1,...,a30, b0,b1,...,b30, c0,c1,...,c30 va x,y,z haqiqiy sonlar uchun
ifodaning qiymati hisoblansin.
Bu misolni echishda kasrning surat va maxrajidagi ifodalar bir xil algoritm bilan hisoblanadi va programmada har bir ifodani (masala osti) hisoblash uchun bu algoritmni 3 marta yozishga to‘g‘ri keladi. Masaladagi 30-darajali ko‘phadni hisoblash algoritmini, masalan, Gorner algoritmini alohida, bitta nusxada yozib, unga turli parametrlar - bir safar a vektor va x qiymatini, ikkinchi safar b vektor va y qiymatini, hamda s vektor va (x+z) qiymatlari bilan murojaat qilish orqali asosiy masalani echish mumkin bo‘ladi. Funksiyalar qo‘llanishining yana bir sababini quyidagi masalada ko‘rishimiz mumkin - berilgan chiziqli tenglamalar sistemasini Gauss, Kramer, Zeydel usullarining birortasi bilan echish talab qilinsin. U holda asosiy programmani quyidagi bo‘laklarga bo‘lish maqsadga muvofiq bo‘lar edi: tenglama koeffitsentlarini kiritish bo‘lagi, echish usulini tanlash bo‘lagi, Gauss, Kramer, Zeydel usullarini amalga oshirish uchun alohida bo‘laklar, natijani chop qilish bo‘lagi. Har bir bo‘lak uchun o‘z funksiyalar majmuasi yaratib, zarur bo‘lganda ularga bosh funksiya tanasidan murojaatni amalga oshirish orqali bosh masala echish samarali hisoblanadi.
Bunday hollarda programmani ixcham va samarali qilish uchun S++ tilida programma bo‘lagini alohida ajratib olib, uni funksiya ko‘rinishida aniqlash imkoni mavjud.
Funksiya bu - S++ tilida masala echishdagi kalit elementlaridan biridir.
Do'stlaringiz bilan baham: |