Научная статья на тему 'C++ BUILDERDA IKKI O’LCHOVLI MASSIVLARGA DOIR DASTUR TUZISH'

C++ BUILDERDA IKKI O’LCHOVLI MASSIVLARGA DOIR DASTUR TUZISH Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
349
36
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
massiv / polinom / funksiyalar / satrlar / formal operatsiya / indeks / c++ builder / modell / array / polynomial / functions / strings / formal operation / index / c++ builder / model

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Xonkeldieva Feruzaxon Nodirovna

Maqolada c++ builderda ikki o’lchovli massivlarga doir dastur tuzish, massivlar, bir turli nomerlangan ma’lumotlar jamlanmasi xaqida keng ma’lumot berilib, to’liq yoritib berilgan.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

PROGRAMMING TWO-DIMENSIONAL ARRAYS IN C++ BUILDER

The article provides detailed information on creating a program for two-dimensional arrays in c++ builder, arrays, a collection of various numbered data.

Текст научной работы на тему «C++ BUILDERDA IKKI O’LCHOVLI MASSIVLARGA DOIR DASTUR TUZISH»

Oriental Renaissance: Innovative, (E)ISSN:2181-1784

educational, natural and social sciences www.oriens.uz

SJIF 2023 = 6.131 / ASI Factor = 1.7 3(9), September, 2023

C++ BUILDERDA IKKI O'LCHOVLI MASSIVLARGA DOIR DASTUR

TUZISH

Xonkeldieva Feruzaxon Nodirovna

Andijon davlat universiteti Axborot texnologiyalari va kompyuter injineringi fakulteti Informatika o'qitish metodikasi yo'nalishi talabasi

ANNOTATSIYA

Maqolada c++ builderda ikki o'lchovli massivlarga doir dastur tuzish, massivlar, bir turli nomerlangan ma'lumotlar jamlanmasi xaqida keng ma'lumot berilib, to'liqyoritib berilgan.

Kalit so'zlar: massiv, polinom, funksiyalar, satrlar, formal operatsiya, indeks, c++ builder, modell

ПРОГРАММИРОВАНИЕ ДВУМЕРНЫХ МАССИВОВ

В C++ BUILDER

АННОТАЦИЯ

В статье представлена подробная информация о создании программы для двумерных массивов в C++ Builder, массивах, наборе различных нумерованных данных.

Ключевые слова: массив, многочлен, функции, строки, формальная операция, индекс, c++ builder, модель

PROGRAMMING TWO-DIMENSIONAL ARRAYS IN C++ BUILDER

ABSTRACT

The article provides detailed information on creating a program for two-dimensional arrays in c++ builder, arrays, a collection of various numbered data.

Keywords: array, polynomial, functions, strings, formal operation, index, c++ builder, model

Massiv bu bir turli nomerlangan ma'lumotlar jamlanmasidir, massiv indeksli o'zgaruvchi tushunchasiga mos keladi. Massiv ta'riflanganda turi, nomi va indekslar chegarasi ko'rsatiladi. Masalan, type turidagi length ta elementdan iborat a nomli massiv shunday e'lon qilinadi: Massivning har bir elementi o'z raqamiga - indeksga ega. Massivning x-nchi elementiga murojaat indekslash operasiyasi yordamida amalga oshiriladi:

SJIF 2023 = 6.131 / ASI Factor = 1.7

3(9), September, 2023

int x = ...; //butun sonli indeks

TYPE value = a[x]; //x-nchi elementni o'qish

a[x] = value; //x- elementga yozish

Indeks sifatida butun tur qiymatini qaytaradigan har qanday ifoda qo'llanishi mumkin- char, short, int, long. C da massiv elementlarining indekslari 0 dan boshlanadi (1 dan emas), length elementdan iborat bo'lgan massivning oxirgi elementining indeksi esa - bu length -1 (length emas) ga teng. Massivning int z[3] shakldagi ta'rifi, int turiga tegishli z[0], z[1], z[2] elementlardan iborat massivni aniqlaydi.

Massiv chegarasidan tashqariga chiqish (ya'ni mavjud bo'lmagan elementni o'qish/yozishga urinish) dastur bajarilishida kutilmagan natijalarga olib kelishi mumkin. Shuni ta'kidlab o'tish lozimki, bu eng ko'p tarqalgan xatolardan biridir. Agar massiv inisializasiya qilinganda elementlar chegarasi ko'rsatilgan bo'lsa, ro'yxatdagi elementlar soni bu chegaradan kam bo'lishi mumkin, lekin ortiq bo'lishi mumkin emas.

Misol uchun int a[5] = {2,-2}. Bu holda a[0] va a[1] qiymatlari aniqlangan bo'lib, mos holda 2 va -2 ga teng. Agar massiv uzunligiga qaraganda kamroq element berilgan bo'lsa, qolgan elementlar 0 hisoblanadi: int a10[10] = {1, 2, 3, 4}; //va 6 ta nol Agar nomlangan massivning tavsifida uning o'lchamlari ko'rsatilmagan bo'lsa, kompilyator tomonidan massiv chegarasi avtomatik aniqlanadi:

Massivlarni navlarga ajratish Navlarga ajratish - bu berilgan ko'plab ob'ektlarni biron-bir belgilangan tartibda qaytadan guruhlash jarayoni.

Massivlarning navlarga ajratilishi tez bajarilishiga ko'ra farqlanadi. Navlarga ajratishning n*n ta qiyoslashni talab qilgan oddiy usuli va n*log(n) ta qiyoslashni talab qilgan tez usuli mavjud. Oddiy usullar navlarga ajratish tamoyillarini tushuntirishda qulay hisoblanadi, chunki sodda va kalta algoritmlarga ega. Murakkablashtirilgan usullar kamroq sonli operasiyalarni talab qiladi, biroq operasiyalarning o'zi murakkabroq, shuning uchun uncha katta bo'lmagan massivlar uchun oddiy usullar ko'proq samara beradi.

Oddiy usullar uchta asosiy kategoriyaga bo'linadi:

- oddiy kiritish usuli bilan navlarga ajratish.

- oddiy ajratish usuli bilan navlarga ajratish.

- oddiy almashtirish usuli bilan navlarga ajratish.

Oddiy kiritish usuli bilan navlarga ajratish Massiv elementlari avvaldan tayyor berilgan va dastlabki ketma-ketliklarga bo'linadi. i = 2 dan boshlab, har bir qadamda dastlabki ketma-ketlikdan i-nchi element chiqarib olinadi hamda tayyor ketma-ketlikning kerakli o'rniga kiritib qo'yiladi.

SJIF 2023 = 6.131 / ASI Factor = 1.7

3(9), September, 2023

Kerakli joyni izlash jarayonida, ko'proq o'ngdan bitta pozisiyadan tanlab olingan elementni uzatish amalga oshiriladi, ya'ni tanlab olingan element, j: = i -1 dan boshlab, navlarga ajratib bo'lingan qismning navbatdagi elementi bilan qiyoslanadi. Agar tanlab olingan element a[i] dan katta bo'lsa, uni navlarga ajratish qismiga qo'shadilar, aks holda a[j] bitta pozisiyaga suriladi, tanlab olingan elementni esa navlarga ajratilgan ketma-ketlikning navbatdagi elementi bilan qiyoslaydilar. To'g'ri keladigan joyni qidirish jarayoni ikkita turlicha shart bilan tugallanadi.

Oddiy tanlash usuli bilan navlarga ajratish Massivning minimal elementi tanlanadi hamda massivning birinchi elementi bilan joy almashtiriladi. Keyin jarayon qolgan elementlar bilan takrorlanadi.

Oddiy almashtirish usuli bilan navlarga ajratish Elementlar juftlari oxirgisidan boshlab qiyoslanadi va o'rin almashinadi. Natijada massivning eng kichik elementi uning eng chapki elementiga aylanadi. Jarayon massivning qolgan elementlari bilan davom ettiriladi.

Bir o'lchamli massivlarni funksiya parametrlari sifatida uzatish. Massivdan funksiya parametri sifatida foydalanganda, funksiyaning birinchi elementiga ko'rsatkich uzatiladi, ya'ni massiv hamma vaqt adres bo'yicha uzatiladi. Bunda massivdagi elementlarning miqdori haqidagi axborot yo'qotiladi, shuning uchun massivning o'lchamlari haqidagi ma'lumotni alohida parametr sifatida uzatish kerak.

Funksiyaga massiv boshlanishi uchun ko'rsatkich uzatilgani tufayli (adres bo'yicha uzatish), funksiya tanasining operatorlari hisobiga massiv o'zgarishi mumkin. Funksiyalarda bir o'lchovli sonli massivlar argument sifatida ishlatilganda ularning chegarasini ko'rsatish shart emas.

Funksiyalarda bir o'lchovli sonli massivlar argument sifatida ishlatilganda ularning chegarasini ko'rsatish shart emas. Misol tariqasida n o'lchovli vektorlar bilan bog'liq funksiyalarni ta'riflashni ko'rib chiqamiz. Funksiyalarda bir o'lchovli massivlar qaytariluvchi qiymatlar sifatida ham kelishi mumkin. Misol uchun ikki vektor summasini hisoblovchi funksiya prosedurani ko'ramiz:

Polinom Polinom qiymatini hisoblash funksiyasi poly deb nomlanadi. Algebraik polinom koeffisientlari coeffs[0], coeffs[1], ..., coeffs[degree] massiv elementlarida beriladi.

Ko'p o 'lchovli massivlar ta'rifi Ikki o'lchovli massivlar matematikada matrisa yoki jadval tushunchasiga mos keladi. Jadvallarning inisializasiya qilish qoidasi, ikki o'lchovli massivning elementlari massivlardan iborat bo'lgan bir o'lchovli massiv ta'rifiga asoslangandir.

Misol uchun ikki qator va uch ustundan iborat bo'lgan haqiqiy turga tegishli d massiv boshlang'ich qiymatlari quyidagicha ko'rsatilishi mumkin: Inisializasiya

SJIF 2023 = 6.131 / ASI Factor = 1.7

3(9), September, 2023

yordamida boshlang'ich qiymatlar aniqlanganda massivning birinchi indeksi chegarasi ko'rsatilishi shart emas, lekin qolgan indekslar chegaralari ko'rsatilishi shart.

Funksiyaga ko'p o'lchamli massivlarni uzatish. Ko'p o'lchamli massivlarni funksiyaga uzatishda barcha o'lchamlar parametrlar sifatida uzatilishi kerak. C tilida ko'p o'lchamli massivlar aniqlanishi bo'yicha mavjud emas. Agar biz bir nechta indeksga ega bo'lgan massivni tavsiflasak (masalan, int mas [3] [4]), bu degani, biz bir o'lchamli mas massivini tavsifladik, bir o'lchamli int [4] massivlar esa uning elementlaridir.

Funksiyalar va satrlar Funksiyalarda satrlar ishlatilganda ularning chegarasini ko'rsatish shart emas. Bu funksiyaning standart varianti strlen deb ataladi va bu funksiyadan foydalanish uchun string.h sarlavha faylidan foydalanish lozim.

So'zlar massivlari C tilida so'zlar massivlari ikki o'lchovli simvolli massivlar sifatida ta'riflanadi. Misol uchun: char name. Bu ta'rif yordamida har biri 5 ta harfdan iborat bo'lgan 4 ta so'zli massiv kiritiladi. So'zlar massivlari quyidagicha inisializasiya qilinishi mumkin: char Name = { 'Anvar','Mirkomir,'Yusuf}.

Bu ta'rifda har bir so'z uchun xotiradan 8 bayt joy ajratiladi va har bir so'z oxiriga ' \0' belgisi qo'yiladi.

So'zlar massivlari inisializasiya qilinganda so'zlar soni ko'rsatilmasligi mumkin. Bu holda so'zlar soni avtomatik aniqlanadi: char comp =

{ 'kompyuter','printer','kartridj'}.

Funksiyalar va so 'zlar massivlari. Satrli massivlar funksiya argumenti sifatida ishlatilganda satrlarning umumiy uzunligi aniq ko'rsatilishi shart.

Tezkor tartiblash Quyidagi dasturda tezkor tartiblash algoritmiga asoslangan funksiyadan foydalanilgan. Algoritm mohiyati shundan iboratki, avval yetakchi element tanlanadi. Funksiyada yetakchi element sifatida boshlang'ich element tanlanadi. Shundan so'ng massiv ikki qismga ajratiladi. Yetakchi elementdan kichik elementlar past qismga, katta elementlar yuqori qismga to'planadi. Shundan so'ng rekursiya asosida algoritm ikkala qismga alohida qo'llanadi.

Indeks sifatida butun tur qiymatini qaytaradigan har qanday ifoda qo'llanishi mumkin- char, short, int, long. C++ da massiv elementlarining indekslari 0 dan boshlanadi (1 dan emas), length elementdan iborat bo'lgan massivning oxirgi elementining indeksi esa - bu length -1 (length emas). Massivning int z shakldagi ta'rifi, int tipiga tegishli z[0],z[1],z[2] elementlardan iborat massivni aniqlaydi.

Massiv chegarasidan tashqariga chiqish (ya'ni mavjud bo'lmagan elementni o'qish/yozishga urinish) dastur bajarilishida kutilmagan natijalarga olib kelishi mumkin. Shuni ta'kidlab o'tamizki, bu eng ko'p tarqalgan xatolardan biridir. Agar

SJIF 2023 = 6.131 / ASI Factor = 1.7

3(9), September, 2023

massiv initsializatsiya qilinganda elementlar chegarasi ko'rsatilgan bo'lsa, ro'yxatdagi elementlar soni bu chegaradan kam bo'lishi mumkin, lekin ortiq bo'lishi mumkin emas. Bir o'lchamli massivlarni funksiya parametrlari sifatida uzatish. Massivdan funksiya parametri sifatida foylalanganda, funksiyaning birinchi elementiga ko'rsatkich uzatiladi, ya'ni massiv hamma vaqt adres bo'yicha uzatiladi. Bunda massivdagi elementlarning miqdori haqidagi axborot yo'qotiladi, shuning uchun massivning o'lchamlari haqidagi ma'lumotni alohida parametr sifatida uzatish kerak. Funksiyaga massiv boshlanishi uchun ko'rsatkich uzatilgani tufayli (adres bo'yicha uzatish), funksiya tanasining operatorlari hisobiga massiv o'zgarishi mumkin. Funksiyalarda bir o'lchovli sonli massivlar argument sifatida ishlatilganda ularning chegarasini ko'rsatish shart emas. Funksiyalarda bir o'lchovli sonli massivlar argument sifatida ishlatilganda ularning chegarasini ko'rsatish shart emas.

Funksiyaga ko'p o'lchamli massivlarni uzatish. Ko'p o'lchamli massivlarni funksiyaga uzatishda barcha o'lchamlar parametrlar sifatida uzatilishi kerak. C++ da ko'p o'lchamli massivlar aniqlanishi bo'yicha mavjud emas. Agar biz bir nechta indeksga ega bo'lgan massivni tavsiflasak (masalan, int mas ), bu degani, biz bir o'lchamli mas massivini tavsifladik, bir o'lchamli int massivlar esa uning elementlaridir

Obyektga mo'ljallangan yondoshuv dasturiy tizimlarni dasturlash tiliga bog'liq bo'lmagan holda yaratishda modellardan sistematik foydalanishga asoslangan. Har bir model uning o'zi aks ettirayotgan predmetning hamma xususiyatlarini ifodalay olmaydi, u faqat ba'zi juda muhim belgilarini ifodalaydi. Demak model o'zi aks ettirayotgan predmetga nisbatan ancha sodda bo'ladi. Bizga shu narsa muhimki model endi formal konstruksiya hisoblanadi: modellarning formalligi esa ular orasidagi formal bog'lanishlarni aniqlashni va ular orasida formal operatsiyalar bajarishni ta'minlaydi. Bu ish modellarni ishlab chiqishni va o'rganishni hamda kompyuterda realizatsiya qilishni osonlashtiradi. Xususan esa, modellarning formal xarakteri yaratilayotgan dasturning formal modelini olishni ta'minlaydi.

FOYDALANILGAN ADABIYOTLAR (REFERENCES)

1. Абрамов В.Г. Трифонов Н П. Трифонова Г.Н. Введение в язык Паскаль. Учебное пособиеМ. Наука 1988.

2. А. Кенин. Windows NT/95. Екатеринбург. 1997. 150 б.

3. Алгоритмы: Разработка и анализ. Кнут.

4. Арипов М. Internet ва электрон почта асослари. УзМУ. 2001. 126 б.

5. Aripov M. Informatika va xisoblash tеxnikasi asoslari. Uchеbnoе posobiе. Toshkеnt morstet 2000 690.

i Надоели баннеры? Вы всегда можете отключить рекламу.