logo

C++ da katta sonlar sinfini yaratish. Ular ustida arifmetik amallar bajarish, metodlarni ishlab chiqish

Загружено в:

23.11.2024

Скачано:

0

Размер:

419.732421875 KB
  MAVZU:  C++ da katta sonlar sinfini yaratish. Ular ustida arifmetik amallar
bajarish, metodlarni ishlab chiqish
 
MUNDARIJA
KIRISH ....................................................................................................... 3
1-BOB.   C++    DASTURLASH   TILIDA  SINFLAR  HAQIDA  UMUMIY
TUSHUNCHA VA MA’LUMOTLAR ................................................................5
1.1.Sinf strukturasining asosiy elementlari,............................................................5
1.2.C++da sinf yaratishning asosiy struktrukturasi.................................................12
2-BOB.   C++   DASTURLASH   TILIDA   KATTA   (KO P   XONALI)ʻ
SONLAR SINFINI YARATISH  ………………………………………………….…15
2.1.Obyektlar.………………………………………………………………………….16
2.2.Dasturni boshlash va testlash…………………………….,………………………17
3-BOB.   KATTA   SONLAR   USTIDA   ARIFMETIK   AMALLAR
BAJARISH, OBYEKTLAR VA METODLARNI ISHLAB CHIQISH ......17
XULOSA ......................................................................................................25
FOYDALANILGAN ADABIYOTLAR ....................................................26 REJA:
I. Kirish
II. Asosiy qisim 
a. C++dasturlash tilida sinflar haqida ma’lumot
b. C++da katta sonlar sinfini yaratish 
c. Katta   sonlar   ustida   arifmetik   amallar   bajarish,   obyektlar   va
metodlarni ishlab chiqish
III. Xulosa
IV. Foydalanilgan adabiyotlar Kirish
Kurs ishimning asosi  C++dasturlash tilida katta sonlar  sinfini yaratish, ular
ustida arifmetik amallar bajarish, obyektlar va metodlarni ishlab chiqishdan iborat.
Asosiy   maqsad   esa   kurs   ishimni   yozish   natijasida   barcha   dasturlash   fanini
o rganuvchilar   va   shu   soha   vakillariga   C++dasturlash   tilida   katta   sonlar   sinfiniʻ
yaratishlarida,   ular   ustida   ishlashlari,umumiy   holda   sinf   bilan   ishlayotganlarida
qulaylikka   ega   bo lishlari,   programmani   mukammal   yoki   standart   shaklda(vaqtni	
ʻ
tejash,   kodlarni   qisqa   va   tushunarli   qilish,   standartlashtirish)   yozishlarini
ta’minlashdir. Shu maqsadda C++ programmalash tili va muhitlari haqida umumiy
tushunchalar beriladi va bu dasturlash tilidan foydalanish(sinf yaratish, uni qanday
maqsadda ishlatish) o rgatiladi.	
ʻ
Ushbu kurs ishi talabalarga(C++dasturlsh tilida ish olib boruvchilarga) C++
programmalash   tilida   ko p   xonali   ya ni   katta   sonlarning   ustida     ishlash(turli	
ʻ ʻ
amallar bajarish,chop etish, tahrirlash va kerakli vaqtda qayta yuklash) o rgatiladi.	
ʻ
Boshqa dasturlash tillarini o rganishda(boshqa dasturlash tilida ish olib borganda)	
ʻ
ham   kurs   ishida   tushuntiriladigan     mavzular   asos   sifatida   muhim   rol   o ynaydi.	
ʻ
Shuning   uchun     C++da   sinflarni   o rganishda   zarur   bo ladigan   eng   asosiy	
ʻ ʻ
tushunchalar     va   ma lumotlar   bilan   tanishtiriladi.   Katta   sonlar   ustida   arifmetik	
ʻ
amallarni   bajarish   C++   kabi   dasturlash   tillarida   standart   raqamli   ma’lumotlar
turlarining   cheklovlarini   yengish   uchun   maxsus   yondashuvni   talab   qiladi.   Shu
sababli   katta   raqamlarni   samarali   boshqarish   uchun   moslashtirilgan   maxsus   sinf
yaratish lozim. Ushbu kurs ishida arifmetik operatsiyalarga e'tibor qaratgan holda
bunday sinfni loyihalash va amalga oshirish jarayonini o rgatiladi.	
ʻ
Katta  sonli  sinfni  yaratishda   birinchi  qadam  uning  tuzilishini   loyihalashdir.
Sinfda     katta   raqamlarni   ifodalash   uchun   eng   mos   ma'lumotlar   turini   aniqlanishi
kerak.   Yondashuvlardan   biri   raqamning   alohida   raqamlarini   saqlash   uchun
massivlar   yoki   satrlardan   foydalanishdir.   qo shimcha   ravishda   qo shish,   ayirish,	
ʻ ʻ
ko paytirish   va   bo lish   kabi   arifmetik   amallarni   bajarish   usullarini   belgilaymiz.	
ʻ ʻ
Konstruktorlar va destruktorlar: Konstruktorlar butun sonlar, satrlar yoki massivlar
kabi turli xil ma lumotlar turlariga ega ko p sonli obyektlarni ishga tushirish uchun	
ʼ ʻ
zarurdir.   biz   ushbu   stsenariylarni   samarali   boshqarish   uchun   konstruktorlarni
amalga oshiramiz. Har qanday dinamik ravishda ajratilgan resurslarni chiqarish va
xotira   oqishini   oldini   olish   uchun   destruktor   kerak.   Arifmetik   amallar:   Arifmetik
amallarni   bajarish   katta   sonlar   sinfining   asosiy   funksiyasidir.   qo shish   va   ayirish	
ʻ
oddiy   bo lishi   mumkin,   chunki   ular   standart   arifmetika   bilan   bir   xil   qoidalarga	
ʻ
amal qiladi. Biroq, ko paytirish va bo lish, ayniqsa, katta raqamlar bilan ishlashda	
ʻ ʻ yanada murakkab algoritmlarni talab qiladi. biz optimal ishlashni ta'minlash uchun
ushbu   operatsiyalar   uchun   samarali   algoritmlarni   ishlab   chiqiladi.   Operatorlarni
haddan tashqari yuklash: Ko p sonli sinfimizni intuitiv va foydalanish uchun qulayʻ
qilish   uchun   biz   +,   -,   *   va   /   kabi   operatorlarni   ko p   sonli   ob'ektlar   bilan	
ʻ
muammosiz   ishlash   uchun   ortiqcha   yuklaymiz.   bu   foydalanuvchilarga   arifmetik
amallarni   o rnatilgan   raqamli   turlar   kabi   tanish   sintaksis   yordamida   bajarish	
ʻ
imkonini beradi. Sinov va optimallashtirish: Sinov bizning ko p sonli sinfimizning	
ʻ
to g‘riligi   va   ishonchliligini   ta'minlash   uchun   juda   muhimdir.   turli   stsenariylarni	
ʻ
qamrab   olish   va   arifmetik   amallarning   funksionalligini   tekshirish   uchun   keng
qamrovli test holatlarini yaratiladi. Bundan tashqari, biz ishlash va samaradorlikni
oshirish   uchun   algoritmlarni,   xususan,   ko paytirish   va   bo lish   uchun	
ʻ ʻ
optimallashtirishga e'tibor qaratiladi. ASOSIY QISM
C++dasturlash tilida sinflar haqida ma’lumot
C++da   sinflar   (classes)   ob'ektga   yo naltirilgan   dasturlashning   asosiyʻ
tushunchalaridan   biri   hisoblanadi.   Sinflar   orqali   biz   ob'ektlarni   yaratish,   ularning
holati   (property)   va   xatti-harakatlarini   (method)   aniqlashimiz   mumkin.   Sinf   -   bu
ma'lumotlar va funksiyalarni bir joyda to plagan struktura.	
ʻ
Quyida   sinfning   asosiy   qismlari   va   ularning   strukturasini   misol   bilan   ko rib	
ʻ
chiqamiz.
Sinf strukturasining asosiy elementlari:
1. Class kalit so zi:	
ʻ  Sinf yaratish uchun foydalaniladi.
2. Access   modifiers   (kirish   modifikatorlari):   public ,   private ,   va   protected
kirish darajasini aniqlaydi.
3. Attributes (xususiyatlar):  Sinfning ma'lumotlari.
4. Methods (usullar):  Sinfning funksiyalari.
5. Constructor:  Sinfning ob'ektini yaratishda avtomatik chaqiriladigan maxsus
metod.
6. Destructor:   Sinfning   ob'ekti   yo q   qilinishida   avtomatik   chaqiriladigan	
ʻ
maxsus metod.
C++da sinf yaratishning umumiy strukturasi  Tavsif:
 private   qismida   sinfning   faqat   o z   ichida   foydalaniladigan   xususiyatlariʻ
( name  va  yoshi ) e'lon qilingan.
 public   qismida   sinfning   ochiqdan   ochiq   foydalaniladigan   usullari   ( Bola
konstruktori,  func  metodi va destruktor) joylashtirilgan.
 Konstruktor   sinfning   yangi   ob'ektini   yaratish   va   boshlang‘ich   qiymatlarni
berish uchun ishlatiladi.
 Destruktor  ob'ekt yo q qilinayotganda chaqiriladi va resurslarni ozod qilish	
ʻ
uchun ishlatiladi.
 func metodi  ob'ektning ma'lumotlarini chop etadi.
Natija:
Ushbu kodni ishga tushirganda, quyidagi natijani olasiz:
Bu   misolda   ikkita   ob'ekt   (Ali   va   Vali)   yaratiladi   va   ular   haqida   ma'lumot
chiqariladi.   Dastur   tugaganda,   destruktor   avtomatik   ravishda   chaqiriladi   va
ob'ektlarning yo q qilinganligi haqida xabar beradi.	
ʻ
C++da sinflar haqida batafsilroq ma'lumotlar quyidagilarni o z ichiga oladi:	
ʻ
1. Inheritance (meros olish):   Sinf boshqa sinfdan xususiyatlar  va metodlarni
meros olishi mumkin.
2. Polymorphism   (ko p   shakllilik):	
ʻ   Sinflar   bir   xil   interfeysdan   turli   xil
amalga oshirishlarga ega bo lishi mumkin.	
ʻ
3. Encapsulation   (inkapsulyatsiya):   Ma'lumotlarni   himoyalash   va   ularga
faqat sinf usullari orqali kirish imkoniyatini berish. 4. Abstraction (abstraktsiya):  Murakkablikni kamaytirish uchun faqat muhim
ma'lumotlarni ko rsatish.ʻ
Meros olish (Inheritance)
Meros   olish   orqali   yangi   sinf   boshqa   sinfning   xususiyatlari   va   metodlarini
o zlashtiradi.	
ʻ Ko p shakllilik (Polymorphism)ʻ
Ko p shakllilik ob'ektlar bir xil interfeysdan foydalanib, turli xil usullar bilan javob
ʻ
berishi   mumkinligini   bildiradi. Tavsif:
1. Baza sinf (Shape):   Bu sinf umumiy   draw()   metodini virtual qilib e'lon qiladi, bu
esa meros oluvchi sinflarga uni qayta yozish (override) imkonini beradi.
2. Meros oluvchi sinflar (Circle va Square):  Bu sinflar  Shape  sinfidan meros olib,
o zlarining ʻ draw()  metodlarini ta'riflaydi.
3. main() funksiyasi:
 Shape   turidagi  ikkita  ko rsatkich  (	
ʻ s1   va   s2 )  yaratadi  va  ularni   Circle   va   Square
ob'ektlariga bog‘laydi.
 s1->draw()   va   s2->draw()   chaqiruvlari   orqali   tegishli   sinflarning   draw()
metodlari chaqiriladi.
 delete  operatori yordamida yaratilgan ob'ektlar xotiradan o chiriladi.	
ʻ
Bu kod orqali C++ dasturlash tilida polimorfizm tushunchasi qanday ishlatilishini
ko rish mumkin.	
ʻ
Inkapsulyatsiya (Encapsulation)
Inkapsulyatsiya   orqali   sinfning   ma'lumotlarini   himoyalash   va  ularga   faqat   usullar
orqali kirish imkoniyatini berish amalga oshiriladi. Natija:
Bu   kodda   umumiy   balansni   hisoblash   uchun   har   gal   balansga   summa   qo shibʻ
boriladi. 
Abstraktsiya (Abstraction)
Abstraktsiya   murakkablikni   kamaytirish   uchun   faqat   muhim   ma'lumotlarni
ko rsatadi.	
ʻ Natija:
Sinfning boshqa qirralari:
1. Operator Overloading (Operatorlarni qayta yuklash)
C++da   operatorlarni   qayta   yuklash   orqali   o z   sinflarimiz   uchun   maxsusʻ
operatorlarni aniqlashimiz mumkin. Natija:
2. Friend Functions (Do st funksiyalar)ʻ
Do st funksiyalar sinfning xususiy a'zolariga kirish imkonini beradi.	
ʻ Natija:
Bu kodda   ‘’dost’’ nomli do st   funksiyadan foydalandik.Bu misollar orqaliʻ
C++da sinflar bilan ishlashning turli qirralarini ko rib chiqdik. Sinflar dasturlashda	
ʻ
ma'lumotlarni   strukturaviy   tartibga   solish   va   xatti-harakatlarni   aniqlashda   juda
qulay vositadir.
C++dasturlash tilida katta sonlar(ko p xonali sonlar) sinfini yaratish	
ʻ Birinchi qadam:
Dasturimizda   katta   sonlar   sinfini   yaratishga   boshlaymiz.   Bu   sinf   C++   dasturlash
tilida   katta   sonlarni   o z   ichiga   oladi   va   ularga   arifmetik   amallar   bajarishʻ
imkoniyatini beradi. 
Ikkinchi qadam: 
Sinfdagi xususiyatlar va metodlar Sinfimizning ichiga kiritilgan katta sonni saqlab,
undan   foydalanish   uchun   turli   arifmetik   amallar   bajarish   imkonini   berishimiz
kerak. Ular orasida qo shish, ayirish, ko paytirish va bo lishish amallari kelayapti.	
ʻ ʻ ʻ
Uchinchi qadam:
Obyektlar   va   uning   metodlari   Dasturimizning   asosiy   funksiyonida,   katta   sonlar
sinfiga   oid   obyekt   yaratiladi.   Bu   obyektga   oid   metodlar   yordamida   arifmetik
amallar bajariladi va natijalar konsolga chiqariladi.
To rtinchi qadam:	
ʻ
Dasturni   boshlash   va   testlash   Dasturimizni   boshlaymiz   va   yaratilgan   katta   sonlar
sinfiga oid obyekt orqali turli amallar bajariladi. Natijalar konsolga chiqariladi va
sinfning to g‘ri ishlashi tekshiriladi.	
ʻ
Beshinchi qadam:
Natijalarni   baholash   va   dasturni   tugatish   Dasturimiz   ishlashi   natijasida   konsolga
to g‘ri   sonlar   chiqadi,   va   sinfimizning   xususiyatlari   va   metodlari   to g‘ri   ishlashi	
ʻ ʻ
baholanadi. Dastur muvaffaqiyat bilan bajarilganini aniqlab, dasturni tugatamiz.
Dasturimizni   yaratish   jarayonida   katta   sonlar   sinfiga   oid   obyektlar   va   ularning
metodlari   yaratiladi   va   sinf   yaxshi   testlanadi.   Natijada,   dasturimiz   amalga
oshirilgan bo lib, konsolda kiritilgan arifmetik amallar to g‘ri natijalarni chiqaradi.	
ʻ ʻ
Bu esa bizga dasturimizning to g‘ri ishlashi  va katta sonlar sinfini muvaffaqiyatli	
ʻ
yaratishni ko rsatadi.	
ʻ
Arifmetik amallar uchun C++ da katta sonlar  sinfini  ishlab chiqamiz.Katta sonlar
ustida arifmetik amallarni bajarish C++ kabi dasturlash tillarida o rnatilgan raqamli	
ʻ
ma'lumotlar   turlarining   cheklanishi   tufayli   qiyinchilik   tug‘diradi.   Buni   hal   qilish
uchun   biz   katta   sonlarni   samarali   boshqarish   uchun   maxsus   sinf   yaratishimiz
mumkin.   Ushbu   inshoda   biz   arifmetik   operatsiyalarga   e'tibor   qaratgan   holda
bunday sinfni loyihalash va amalga oshirish jarayonini muhokama qilamiz. 
  Sinfni loyihalash: sinf tuzilishini, shu jumladan ma'lumotlar a'zolari va usullarini
aniqlash.   Massivlar   yoki   satrlardan   foydalanish   kabi   katta   sonlarni   samarali
ifodalash   uchun   fikrlar.   Konstruktorlar   va   destruktorlar:   Turli   xil   ma'lumotlar
turlari   bilan   katta   sonli   ob'ektni   ishga   tushirish   uchun   konstruktorlarni   amalga
oshiring.   dinamik   ravishda   ajratilgan   har   qanday   resurslarni   chiqarish   uchun
destruktorni aniqlang.
Arifmetik amallar: ikkita katta sonni qo shish amalga oshiriladi. ikkita katta sonni	
ʻ
ayirish amalga oshiriladi. Katta sonlarni samarali ko paytirish uchun algoritmlarni	
ʻ
ishlab   chiqish.   Katta   sonlarni   bo lish   uchun   dizayn   usullari.   Haddan   tashqari	
ʻ
yuklash  operatorlari:  Ko p sonli  ob'ektlar   bilan muammosiz  ishlash   uchun +,  -,  *	
ʻ
va   /   kabi   operatorlarni   ortiqcha   yuklash.   Sinov   va   optimallashtirish:   Arifmetik
amallarning   to g‘riligini   tekshirish   uchun   test   holatlarini   yarating.   yaxshi   ishlash	
ʻ uchun   algoritmlarni   optimallashtirish,   ayniqsa   ko paytirish   va   bo lish   uchun.ʻ ʻ
Insho: Katta sonlar ustida arifmetik amallarni bajarish C++ kabi dasturlash tillarida
standart   raqamli   ma’lumotlar   turlarining   cheklovlarini   yengish   uchun   maxsus
yondashuvni   talab   qiladi.   yechimlardan   biri   katta   raqamlarni   samarali   boshqarish
uchun   moslashtirilgan   maxsus   sinf   yaratishdir.   Ushbu   inshoda   biz   arifmetik
operatsiyalarga e'tibor qaratgan holda bunday sinfni loyihalash va amalga oshirish
jarayonini   o rganamiz.   Sinfni   loyihalash:   Katta   sonli   sinfni   yaratishda   birinchi	
ʻ
qadam   uning   tuzilishini   loyihalashdir.   Biz   katta   raqamlarni   ifodalash   uchun   eng
mos   ma'lumotlar   turini   aniqlashimiz   kerak.   Yondashuvlardan   biri   raqamning
alohida   raqamlarini   saqlash   uchun   massivlar   yoki   satrlardan   foydalanishdir.
qo shimcha   ravishda   qo shish,   ayirish,   ko paytirish   va   bo lish   kabi   arifmetik	
ʻ ʻ ʻ ʻ
amallarni   bajarish   usullarini   belgilaymiz.   Konstruktorlar   va   destruktorlar:
Konstruktorlar   butun   sonlar,   satrlar   yoki   massivlar   kabi   turli   xil   ma lumotlar	
ʼ
turlariga   ega   ko p   sonli   obyektlarni   ishga   tushirish   uchun   zarurdir.   biz   ushbu	
ʻ
stsenariylarni   samarali   boshqarish   uchun   konstruktorlarni   amalga   oshiramiz.   Har
qanday   dinamik   ravishda   ajratilgan   resurslarni   chiqarish   va   xotira   oqishini   oldini
olish uchun destruktor kerak. Arifmetik amallar: Arifmetik amallarni bajarish katta
sonlar   sinfining   asosiy   funksiyasidir.   qo shish   va   ayirish   oddiy   bo lishi   mumkin,	
ʻ ʻ
chunki   ular   standart   arifmetika   bilan   bir   xil   qoidalarga   amal   qiladi.   Biroq,
ko paytirish   va   bo lish,   ayniqsa,   katta   raqamlar   bilan  ishlashda   yanada   murakkab	
ʻ ʻ
algoritmlarni   talab   qiladi.   biz   optimal   ishlashni   ta'minlash   uchun   ushbu
operatsiyalar   uchun   samarali   algoritmlarni   ishlab   chiqamiz.   Operatorlarni   haddan
tashqari  yuklash:  Ko p sonli  sinfimizni  intuitiv va foydalanish uchun qulay	
ʻ   qilish
uchun   biz   +,   -,   *   va   /   kabi   operatorlarni   ko p   sonli   ob'ektlar   bilan   muammosiz	
ʻ
ishlash   uchun   ortiqcha   yuklaymiz.   bu   foydalanuvchilarga   arifmetik   amallarni
o rnatilgan raqamli turlar kabi tanish sintaksis yordamida bajarish imkonini beradi.	
ʻ
Sinov   va   optimallashtirish:   Sinov   bizning   ko p   sonli   sinfimizning   to g‘riligi   va	
ʻ ʻ
ishonchliligini ta'minlash uchun juda muhimdir. turli stsenariylarni qamrab olish va
arifmetik   amallarning   funksionalligini   tekshirish   uchun   keng   qamrovli   test
holatlarini   yaratamiz.   Bundan   tashqari,   biz   ishlash   va   samaradorlikni   oshirish
uchun   algoritmlarni,   xususan,   ko paytirish   va   bo lish   uchun   optimallashtirishga	
ʻ ʻ
e'tibor qaratamiz.
Bugungi   darsimizda   C++   dasturlash   tilida   katta   sonlar   sinfini   yaratishni
o rganamiz.   Bu   sinf   katta	
ʻ   sonlarni   o z   ichiga   oladi   va   ularga   arifmetik   amallar	ʻ
bajarish   imkoniyatini   beradi.   Sizga   bu   sinfdan   foydalanib,   istalgan   sonlar   ustida
arifmetik   amallar   bajarish   va   ularning   xossalari   va   metodlariga   murojaat   qilish
imkoniyatini   beraman.   Sinfdagi   eng   muhim   metodlar   orasida   qo shish,   ayirish,	
ʻ
ko paytirish   va   bo lishishni   amalga   oshirish   imkoniyatiga   ega   bo lasiz.   Bularni	
ʻ ʻ ʻ
dastlabki qismida ko rib chiqamiz. O rganish jarayonida mazkur sinfni o zgartirish	
ʻ ʻ ʻ
va   uning   funksiyalarini   kengaytirishga   harakat   qiling.   Uning   qiyinchiliklarini
muvofiqlashtirish uchun sizga muvaffaqiyat tilayman!
Katta sonlar ustida arifmetik amallar bajarish, obyektlar va
metodlarni ishlab chiqish Agar   KattaSon   sinfi   ichida   private   bo limda ikkita  ko p  xonali  butun  son  (ʻ ʻ son1
va   son2 )   bo lsa   va   ular   ustida   yig‘indini   hisoblash   talab   qilinsa,   dastur	
ʻ
quyidagicha bo ladi:
ʻ
#include <iostream>
#include <string>
using namespace std;
class KattaSon {
private:
    long long son1; 
    long long son2;
public:
    
    KattaSon(long long son1, long long son2) {
        this->son1 = son1;
        this->son2 = son2;
    }
    long long yigindi() const {
        return son1 + son2;
    }
};
int main() {
    long long qiymat1 = 1000000000; 
    long long qiymat2 = 2000000000;
    
    KattaSon obj(qiymat1, qiymat2);
    long long yigindisi = obj.yigindi();
    cout << "Yig‘indi: " << yigindisi << endl;
    return 0;
}
Natija: Dastur Tushunchasi
Dasturda  KattaSon  sinfi yaratilgan, bu sinf ikkita ko p xonali butun sonni saqlashʻ
uchun mo ljallangan. Ushbu sinfda ikkita asosiy funksiya mavjud: konstruktor va	
ʻ
yig‘indini hisoblash metod.
1. KattaSon sinfi:
 son1   va   son2 :   Bu   sinfning   private   bo limida   joylashgan,   ular   ikkita	
ʻ
long   long   o zgaruvchisi   hisoblanadi,   ular   ikkita   ko p   xonali   butun	
ʻ ʻ
sonlarni saqlaydi.
 KattaSon(long   long   son1,   long   long   son2) :   Bu   konstruktor,   ikkita
ko p   xonali   butun   sonni   qabul   qiladi   va  	
ʻ son1   va   son2
o zgaruvchilariga yuklaydi.
ʻ
 long   long   yigindi()   const :   Bu   metod,   son1   va   son2   o zgaruvchilari	
ʻ
ustida yig‘indini hisoblaydi va natijani  long long  shaklida qaytaradi.
2. main funksiyasi:
 qiymat1   va   qiymat2   o zgaruvchilariga   ikkita   ko p   xonali   butun	
ʻ ʻ
sonlar yuklanadi.
 KattaSon  ob'ektini yaratadi va  qiymat1  va  qiymat2  ni unga uzatadi.
 yigindi  metodini chaqiradi va yig‘indisini konsolga chiqaradi.
3. Natija:
 Dastur ikkita ko p xonali butun sonni qabul qilib, ularning yig‘indisini	
ʻ
hisoblaydi va natijani konsolga chiqaradi.
Ko p xonali sonni qo shish va ayirish	
ʻ ʻ
#include <iostream> #include <string>
using namespace std;
class KattaSon {
private:
    long long son1; 
    long long son2;
public:
    KattaSon(long long son1, long long son2) {
        this->son1 = son1;
        this->son2 = son2;
    }
    long long yigindi() const {
        return son1 + son2;
    }
    long long ayirish() const {
        return son1 - son2;
    }
};
int main() {     long long qiymat1 = 1000000000; 
    long long qiymat2 = 2000000000;
    KattaSon obj(qiymat1, qiymat2);
    
    long long yigindisi = obj.yigindi();
    cout << "\n Yig‘indi: " << yigindisi << endl;
  
    long long ayirma = obj.ayirish();
    cout << " Ayirish: " << ayirma << endl;
    return 0;
}
Natija:
1. KattaSon sinfi:
 son1   va   son2 :   Bu   sinfning   private   bo limida   joylashgan,   ular   ikkitaʻ
long   long   o zgaruvchisi   hisoblanadi,   ular   ikkita   ko p   xonali   butun	
ʻ ʻ
sonlarni saqlaydi.
 KattaSon(long   long   son1,   long   long   son2) :   Bu   konstruktor,   ikkita
ko p   xonali   butun   sonni   qabul   qiladi   va  	
ʻ son1   va   son2
o zgaruvchilariga yuklaydi.
ʻ  long   long   yigindi()   const :   Bu   metod,   son1   va   son2   o zgaruvchilariʻ
ustida yig‘indini hisoblaydi va natijani  long long  shaklida qaytaradi.
 long   long   ayirish()   const :   Bu   metod,   son1   dan   son2   ni   ayiradi   va
natijani  long long  shaklida qaytaradi.
2. main funksiyasi:
 qiymat1   va   qiymat2   o zgaruvchilariga   ikkita   ko p   xonali   butun	
ʻ ʻ
sonlar yuklanadi.
 KattaSon  ob'ektini yaratadi va  qiymat1  va  qiymat2  ni unga uzatadi.
 yigindi   va   ayirish   metodlarini   chaqiradi   va   natijalarni   konsolga
chiqaradi.
Dastur yig‘indini va ayirishini hisoblaydi va natijalarni konsolga chiqaradi.
#include <iostream>
#include <string>
using namespace std;
class KattaSon {
private:
    long long son1; 
    long long son2; 
public:
    KattaSon(long long son1, long long son2) {
        this->son1 = son1;
        this->son2 = son2;     }
    long long kopaytirish() const {
        return son1 * son2;
    }
    
    double bolish() const {
        if (son2 != 0) {
            return static_cast<double>(son1) / son2;
        } else {
            cout << "Xatolik: Nolga bo lish mumkin emas!" << endl;ʻ
            return 0;
        }
    }
};
int main() {
    long long qiymat1 = 1000000000; 
    long long qiymat2 = 2000000000;
    KattaSon obj(qiymat1, qiymat2);
    long long kopaytma = obj.kopaytirish();
    cout << "\n Kopaytirish: " << kopaytma << endl;
    double bolinma = obj.bolish();     cout << " Bo lish: " << bolinma << endl;ʻ
    return 0;
}
Natija:
1. KattaSon sinfi:
 son1   va   son2 :   Bu   sinfning   private   bo limida   joylashgan,   ular   ikkita	
ʻ
long   long   o zgaruvchisi   hisoblanadi,   ular   ikkita   ko p   xonali   butun	
ʻ ʻ
sonlarni saqlaydi.
 KattaSon(long   long   son1,   long   long   son2) :   Bu   konstruktor,   ikkita
ko p   xonali   butun   sonni   qabul   qiladi   va  	
ʻ son1   va   son2
o zgaruvchilariga yuklaydi.
ʻ
 long   long   kopaytirish()   const :   Bu   metod,   son1   va   son2   ni
ko paytiradi va natijani 
ʻ long long  shaklida qaytaradi.
 double bo lish() const	
ʻ : Bu metod,  son1  ni  son2  ga bo lganda natijani	ʻ
hisoblaydi.  Agar   son2   nolga  teng  bo lsa,  xatolik  xabari   chiqadi  va  0	
ʻ
qaytariladi.
2. main funksiyasi:
 qiymat1   va   qiymat2   o zgaruvchilariga   ikkita   ko p   xonali   butun	
ʻ ʻ
sonlar yuklanadi.
 KattaSon  ob'ektini yaratadi va  qiymat1  va  qiymat2  ni unga uzatadi.
 kopaytirish   va   bo lish	
ʻ   metodlarini   chaqiradi   va   natijalarni   konsolga
chiqaradi. Dastur   ko paytirish   va   bo lish   amallarini   hisoblayadi   va   natijalarni   konsolgaʻ ʻ
chiqaradi.
    XULOSA
Xulosa   qilib   aytganda,ushbu   kurs   ishi   nafaqat   dasturlaash   sohasida   ish   olib
boruvchilar   balki,dasturlash   sohasiga   qiziquvchilar,bu   sohaga   endigina   kirib
kelayotganlar   uchun   ham   zarurdir.   Dasturlash   sohasidagi   biror   kasbni
o	
ʻ rganuvchilarning  bu kasbni osongina tushunishlari, iloji boricha sodda shakldagi
kodlar bilan ishlashlari uchun ushbu kurs ishi tavsiya qilinadi.
Kurs ishida ishida ko plab kerakli kodlar, muhim ma'lumotlar C++dasturlash tilida	
ʻ
keltirilgan.C++   dasturlash   tilidagi   ma'lumotlarni,   strukturalarni   bilish,   mavjud
bo lgan barcha dasturlash tillarini o rganish uchun asos bo lishini bilamiz.Shuning	
ʻ ʻ ʻ
uchun   ham   ushbu   kurs   ishi   barcha   dasturlash   sohasi   vakillari   uchun   birdek
zarurdir.Dasturlash sohasi esa biz yosh avlodning kelajagimizdir.
Shoshiling, sohadoshlarim! Bu ish sizlar uchun. Foydalanilgan adabiyotlar
Asosiy adabiyotlar
1.   M.Aripov,   M.Fayzieva,   S.Dottoev.Web   texnologiyalar.   O quvʻ
qo llanma.T.; “Faylasuflar jamiyati”. 2013.	
ʻ
2.   R.Hamdamov   va   boshqalar.   Ta’limda   axborot   texnologiyalari.   Uslubiy
qo llanma. Toshkent. O zbekiston milliy entsiklopediyasi. 2010
ʻ ʻ
3. Robin Nixon. Learning HTML, MySQL&JavaScript with jQuery, CSS &
HTML5, 4th Edition. O`Reilly Media. United States of America.  2015. 4. Лебедев С В.  Web -дизайн. Учеб.пос. Mосква, ЗАО   «Издателский дом
Алянс пресс», 2004.
5.  Jamsil   K.  Lalani,  S.,  S.  Weekly   Programming  Web   Professionals  Trans.
from English. A.I.Panasyuk - Mn. LLC "PotPourri", 1997.
6. Malchuk EV. HTML and CSS. self-teacher, 2008.
Qo shimcha adabiyotlarʻ
1.   M.Mamarajabov,   S.Tursunov.   Kompg‘yuter   grafikasi   va   Web   dizayn.
Darslik.T.:“Cho lpon”, 2013.	
ʻ
2.   U.   Yuldashev,   M.Mamarajabov,   S.Tursunov.   Pedagogik   Web   dizayn.
O quv qo llanma.T: “Voris”, 2013.	
ʻ ʻ
3.   V.G   Olifer,   N.   A.Olifer.   Computer   networks.   Principles,   technologies,
Protocols. St. Petersburg: Publishing House. "Peter," 2000.
4.  R.  Darnell,  "JavaScript:  Handbook."   -  St.  Petersburg:   Publishing   House.
"Peter," 1998.
5. Dmitriev M. JavaScript. Quick start. - St. Petersburg: BHV St. Petersburg,
2002
  Elektron ta’lim resurslari
1.  www.tdpu.uz
2.  www.pedagog.uz
3.  www.ziyonet.uz
4.  www.dasturchi.uz
5.  www.ozon.ru/context/detail/id /2705337/
6.  http://www.borlpasc.narod.ru/ .
7. http://  www.intuit.ru
8. www.nmarket. ru/program/delphi/lessons-2

MAVZU: C++ da katta sonlar sinfini yaratish. Ular ustida arifmetik amallar bajarish, metodlarni ishlab chiqish MUNDARIJA KIRISH ....................................................................................................... 3 1-BOB. C++ DASTURLASH TILIDA SINFLAR HAQIDA UMUMIY TUSHUNCHA VA MA’LUMOTLAR ................................................................5 1.1.Sinf strukturasining asosiy elementlari,............................................................5 1.2.C++da sinf yaratishning asosiy struktrukturasi.................................................12 2-BOB. C++ DASTURLASH TILIDA KATTA (KO P XONALI)ʻ SONLAR SINFINI YARATISH ………………………………………………….…15 2.1.Obyektlar.………………………………………………………………………….16 2.2.Dasturni boshlash va testlash…………………………….,………………………17 3-BOB. KATTA SONLAR USTIDA ARIFMETIK AMALLAR BAJARISH, OBYEKTLAR VA METODLARNI ISHLAB CHIQISH ......17 XULOSA ......................................................................................................25 FOYDALANILGAN ADABIYOTLAR ....................................................26

REJA: I. Kirish II. Asosiy qisim a. C++dasturlash tilida sinflar haqida ma’lumot b. C++da katta sonlar sinfini yaratish c. Katta sonlar ustida arifmetik amallar bajarish, obyektlar va metodlarni ishlab chiqish III. Xulosa IV. Foydalanilgan adabiyotlar

Kirish Kurs ishimning asosi C++dasturlash tilida katta sonlar sinfini yaratish, ular ustida arifmetik amallar bajarish, obyektlar va metodlarni ishlab chiqishdan iborat. Asosiy maqsad esa kurs ishimni yozish natijasida barcha dasturlash fanini o rganuvchilar va shu soha vakillariga C++dasturlash tilida katta sonlar sinfiniʻ yaratishlarida, ular ustida ishlashlari,umumiy holda sinf bilan ishlayotganlarida qulaylikka ega bo lishlari, programmani mukammal yoki standart shaklda(vaqtni ʻ tejash, kodlarni qisqa va tushunarli qilish, standartlashtirish) yozishlarini ta’minlashdir. Shu maqsadda C++ programmalash tili va muhitlari haqida umumiy tushunchalar beriladi va bu dasturlash tilidan foydalanish(sinf yaratish, uni qanday maqsadda ishlatish) o rgatiladi. ʻ Ushbu kurs ishi talabalarga(C++dasturlsh tilida ish olib boruvchilarga) C++ programmalash tilida ko p xonali ya ni katta sonlarning ustida ishlash(turli ʻ ʻ amallar bajarish,chop etish, tahrirlash va kerakli vaqtda qayta yuklash) o rgatiladi. ʻ Boshqa dasturlash tillarini o rganishda(boshqa dasturlash tilida ish olib borganda) ʻ ham kurs ishida tushuntiriladigan mavzular asos sifatida muhim rol o ynaydi. ʻ Shuning uchun C++da sinflarni o rganishda zarur bo ladigan eng asosiy ʻ ʻ tushunchalar va ma lumotlar bilan tanishtiriladi. Katta sonlar ustida arifmetik ʻ amallarni bajarish C++ kabi dasturlash tillarida standart raqamli ma’lumotlar turlarining cheklovlarini yengish uchun maxsus yondashuvni talab qiladi. Shu sababli katta raqamlarni samarali boshqarish uchun moslashtirilgan maxsus sinf yaratish lozim. Ushbu kurs ishida arifmetik operatsiyalarga e'tibor qaratgan holda bunday sinfni loyihalash va amalga oshirish jarayonini o rgatiladi. ʻ Katta sonli sinfni yaratishda birinchi qadam uning tuzilishini loyihalashdir. Sinfda katta raqamlarni ifodalash uchun eng mos ma'lumotlar turini aniqlanishi kerak. Yondashuvlardan biri raqamning alohida raqamlarini saqlash uchun massivlar yoki satrlardan foydalanishdir. qo shimcha ravishda qo shish, ayirish, ʻ ʻ ko paytirish va bo lish kabi arifmetik amallarni bajarish usullarini belgilaymiz. ʻ ʻ Konstruktorlar va destruktorlar: Konstruktorlar butun sonlar, satrlar yoki massivlar kabi turli xil ma lumotlar turlariga ega ko p sonli obyektlarni ishga tushirish uchun ʼ ʻ zarurdir. biz ushbu stsenariylarni samarali boshqarish uchun konstruktorlarni amalga oshiramiz. Har qanday dinamik ravishda ajratilgan resurslarni chiqarish va xotira oqishini oldini olish uchun destruktor kerak. Arifmetik amallar: Arifmetik amallarni bajarish katta sonlar sinfining asosiy funksiyasidir. qo shish va ayirish ʻ oddiy bo lishi mumkin, chunki ular standart arifmetika bilan bir xil qoidalarga ʻ amal qiladi. Biroq, ko paytirish va bo lish, ayniqsa, katta raqamlar bilan ishlashda ʻ ʻ

yanada murakkab algoritmlarni talab qiladi. biz optimal ishlashni ta'minlash uchun ushbu operatsiyalar uchun samarali algoritmlarni ishlab chiqiladi. Operatorlarni haddan tashqari yuklash: Ko p sonli sinfimizni intuitiv va foydalanish uchun qulayʻ qilish uchun biz +, -, * va / kabi operatorlarni ko p sonli ob'ektlar bilan ʻ muammosiz ishlash uchun ortiqcha yuklaymiz. bu foydalanuvchilarga arifmetik amallarni o rnatilgan raqamli turlar kabi tanish sintaksis yordamida bajarish ʻ imkonini beradi. Sinov va optimallashtirish: Sinov bizning ko p sonli sinfimizning ʻ to g‘riligi va ishonchliligini ta'minlash uchun juda muhimdir. turli stsenariylarni ʻ qamrab olish va arifmetik amallarning funksionalligini tekshirish uchun keng qamrovli test holatlarini yaratiladi. Bundan tashqari, biz ishlash va samaradorlikni oshirish uchun algoritmlarni, xususan, ko paytirish va bo lish uchun ʻ ʻ optimallashtirishga e'tibor qaratiladi.

ASOSIY QISM C++dasturlash tilida sinflar haqida ma’lumot C++da sinflar (classes) ob'ektga yo naltirilgan dasturlashning asosiyʻ tushunchalaridan biri hisoblanadi. Sinflar orqali biz ob'ektlarni yaratish, ularning holati (property) va xatti-harakatlarini (method) aniqlashimiz mumkin. Sinf - bu ma'lumotlar va funksiyalarni bir joyda to plagan struktura. ʻ Quyida sinfning asosiy qismlari va ularning strukturasini misol bilan ko rib ʻ chiqamiz. Sinf strukturasining asosiy elementlari: 1. Class kalit so zi: ʻ Sinf yaratish uchun foydalaniladi. 2. Access modifiers (kirish modifikatorlari): public , private , va protected kirish darajasini aniqlaydi. 3. Attributes (xususiyatlar): Sinfning ma'lumotlari. 4. Methods (usullar): Sinfning funksiyalari. 5. Constructor: Sinfning ob'ektini yaratishda avtomatik chaqiriladigan maxsus metod. 6. Destructor: Sinfning ob'ekti yo q qilinishida avtomatik chaqiriladigan ʻ maxsus metod. C++da sinf yaratishning umumiy strukturasi