Urganch davlat universiteti



Download 316,94 Kb.
bet5/6
Sana13.12.2019
Hajmi316,94 Kb.
#29857
1   2   3   4   5   6
Bog'liq
diplom ishi 09-06-189

Arifmetik operatorlar



Java dasturlash tilida operatorning berilishi

Vazifasi

C++dasturlash tilida operatorning berilishi

Vazifasi

Operatorning formati

1

+

Qo’shish

+

Qo’shish

Bir xil

2

-

Ayirish

-

Ayirish

Bir xil

3

*

Ko’paytirish

*

Ko’paytirish

Bir xil

4

/

Bo’lish

/

Bo’lish

Bir xil

5

%

Modul bo’yicha bo’lish

%

Modul bo’yicha bo’lish

Bir xil

6

++

Inkrement

++

Inkrement

Bir xil

7

++

Dekrement

--

Dekrement

Bir xil

Solishtirish operatorlari.



Java dasturlash tilida operatorning berilishi

Vazifasi

C++dasturlash tilida operatorning berilishi

Vazifasi

Operatorning formati

1

= =

Tenglik

= =

Tenglik

Bir xil

2

! =

Teng emas

! =

Teng emas

Bir xil

3

>

Katta

>

Katta

Bir xil

4

<

Kichik

<

Kichik

Bir xil

5

> =

Katta yoki teng

> =

Katta yoki teng

Bir xil

6

< =

Kichik yoki teng

< =

Kichik yoki teng

Bir xil

MANTIQIY OPERATORLAR.



Java dasturlash tilida operatorning berilishi

Vazifasi

C++ dasturlash tilida operatorning berilishi

Vazifasi

Operatorning formati




&

And operatori bir necha amallar bir vaqtda bajarilish kerak bo’lgan holatda qo’llaniladi. qo’llaniladi.

&

C++ da &

operatoriga

adresni olish amali deyiladi,ya’ni

& belgisi



Oldiga qo’yilgan o’zgaruvchi adresini oladi.

Java dasturlash tili va C++ dasturlas tillarida & operatorining ishlash prinspi har xil.




|

Or operatori bir necha amallardan bittasi rost bo’lgan holatda,yoki barchasi rost bo’lganda qo’llaniladi

|

Or operatori bir necha amallardan bittasi rost bo’lgan holatda,yoki barchasi rost bo’lganda qo’llaniladi

Java dasturlash tilida va C++ dasturlash tilida I operatorining ishlash prinsipi bir xil.




^

Mantiqiy XOR(yoki inkor)

^

Mantiqiy XOR(yoki inkor)

Java dasturlash tilida va C++ dasturlash tilida ^ operatorining ishlash prinsipi bir xil.




||

Mantiqiy operator "OR" deb nomlanadi. Agar ikkala operanddan biri yolg’on qiymatga teng bo'lmasa, u holda shart to'g'ri bo'ladi

||

Mantiqiy operator "OR" deb nomlanadi. Agar ikkala operanddan biri yolg’on qiymatga teng bo'lmasa, u holda shart to'g'ri bo'ladi

Java dasturlash tilida va C++ dasturlash tilida || operatorining ishlash prinsipi bir xil.




&&

"VA" mantiqiy operatori deyiladi. Agar har ikkala operator ham yolg’on qiymatga bo'lmasa, shart bajariladi

&&

"VA" mantiqiy operatori deyiladi. Agar har ikkala operator ham yolg’on qiymatga bo'lmasa, shart bajariladi

Java dasturlash tilida va C++ dasturlash tilida && operatorining ishlash prinsipi bir xil.




!

Agar shart rost bo’lsa noto’g’ri ishlaydi va aks holda tog’ri ishlaydi

!

Agar shart rost bo’lsa noto’g’ri ishlaydi va aks holda tog’ri ishlaydi




Bu qiyosiy tahlil jadvallaridan shuni xulosa qilib aytish kerakki operatorlar yuqori dasturlash tillarida mavjud.Ammo har bir dasturlash tillari boshqa dasturlash tillaridan farqli tomonlari mavjud.Masalan dastur tuzish jarayonidagi maxsus buyruq kodlari va ular ustida bajariladigan amallar turli xil ko’rinishda bo’ladi.Java va C++ dasturlash tillarida boshqarish operatorlari deyarli bir xil ammo ularni farqli jihatlari ham mavjud.Java dasturlash tili bilan C++ dasturlash tilidagi boshqarish operatorlarini solishtiradigan bo’lsak,Java tilidagi for-each operatori c++ tilida mavjud emas,ammo c++ dasturlash tilining c++11 versiyasida for-each funsiyasi yaratilgan.Bu funksiya xuddi Java dasturlash tilidagi for-each operatori bilan bir xil vazifani bajaradi.Java dasturlash tilida Goto operatori mavjud emas.C++ tilida Goto operatori mavjud,ammo undan foydalanish xatoliklarga olib kelishi mumkin.Java da Labeled for loop operatorinig vazifasi c++ tilidagi Goto operatorining vazifasi bilan bir xil .Ammo ularni dastur tuzish jarayonidagi dastur kodining sintaksisi turlicha.Mantiqiy operatorlardan bir & operatori Java va C++ tillarida har xil vazifalarni bajaradi.C++ tilida & address olish amali hisoblanib ,ko’rsatkichlarda foydalaniladi.Java da esa & mantiqiy operator bir necha amallar bir vaqtda bajarilish kerak bo’lgan hollarda qo’llaniladi.

Sinflar bilan ishlash.

Ikkala C++ va Java tillarida ham sinflarni e`lon qilish bir-xil class kalit so’zi yordamida e`lon qilinadi. Sintaksisi ikki tilda ham bir xil bo’lganiga qaramasdan, ularning ishlash prinspida biroz farqlar mavjud. Quyida o’asha o’xshashlik va farqlarga birma-bir to’xtalib o’tamiz:

  1. Murojaat huquqlari.

Java tilida sinflar public yoki paket murojaat huquqlari yordamida e`loin qilinishi mumkin (public kalit sozi sintaksisda tushirib qoldiriladi) .Bunday korinish C++ da mavjud emas.
Ikkala C++ va Java tillari ham Sinf a`zolariga public, protected, yoki private murojaat huquqini beradi.
Javaning muhim jihati, hech qanday murojaat huquqi e`lon qilinmagan holda o’z huquqi (package)ni qabul qiladi. public va private huquqlari ikki tilda ham aynan bir xil namoyon bo’ladi. Chunki, C++ da Javadagidek package strukturasi yo’q, protected murojaat huquqining ishlash prinspi esa biroz boshqacha. Javada protected a`zolar merosxo’r sinflar va shu paketda joylashgan boshqa qo’shni sinflar tomonidan foydalanilishi mumkin bo’lsa, C++ da bu holat faqat merosxo’r sinflar tomonidan bajarilishi mumkin.
Java va C++ tillari a`zo sinflarga murojaat huquqlarini biroz boshqacharoq sintaksisdan foydalanishadi. Java tili har-bir a`zo sinfni o’z sintaksisida huquqlarini yozib belgilashi lozim, hech qanday huquq berilmagan holda – o’z huquqi (package) ishlatiladi. C++ tili a`zo sinflarining huquqlarini guruhlarga ajratadi, vergul bilan ajratilgan huquqlar ro’yxati shaklida beriladi. Shuning uchun, quyidagi 2-misolda ko’rsatilgan kodda sinf konstruktori va setAge(), getName() getAge() hamda print() metodlari public, ichki o’zgaruvchilari _name va _age lar esa
private.

Example 2: C++ Version

file person.h:

/* This class represents a Person */

#include

using std::string;

class Person

{

public:

// Constructor

Person(string name, int age);

// Mutator

void setAge(int age);

// Accessors

string getName() const;

int getAge() const;

// Print out full information

void print() const;

private:

string _name;

int _age;

}; // *** NOTE TO THE READER: THIS

// SEMICOLON IS _REALLY_ IMPORTANT

file person.cc:

/* Implementation for class Person */

#include "person.h"

#include

using std::cout;

Person::Person(string name, int age)

: _name(name), _age(age)

{ }

void Person::setAge(int age)

{

_age = age;

}

string Person::getName() const

{

return _name;

}

int Person::getAge() const

{

return _age;

}

void Person::print() const

{

cout << "Name: " << _name

<< "Age: " << _age;}

Example 2: Java Version

file Person.java:

/* This class represents a Person */

public class Person

{

/**Constructor

*

@param name the person's name

* @param age the person's age

*/

public Person(String name, int age)

{

this.name = name;

this.age = age;

}

/** Mutator for age

*

@param age the new age

*/

public void setAge(int age)

{

this.age = age;

}

/** Accessor for name

*

@return the person's name

*/

public String getName()

{

return name;

}

/** Accessor for age

*

@return the person's age

*/

public int getAge()

{

return age;

}

/** Print out full information */

public void print()

{

System.out.print("Name: " + name +

" Age: " + age);

}

private String name;

private int age;

} // *** NOTE TO THE READER:

// NO SEMICOLON HERE

C++ tili qo’shimcha ravishda boshqa sinf yoki funksiyani friend(do’st) deb e`lon qilishi mumkin, bu degani o’sha do’st tutingan sinf hech qanday ruxsatsiz bir-birining har-qanday a`zolariga murojaat qilish huquqiga ega bo’ladi. Demak, faraz qilaylik, quyida shu kabi C++ sinflarga misollarni ko’rib chiqamiz:

class A
{
friend class D;
public: int x;
protected: int y;
private: int z;
...
}
class B : public A
{ ...
}
class C
{ ...
}
class D
{ ...
}
Yuqoridagi misolda A sinfning har qanday metodi x,y va z, a`zolarga murojat huquqiga ega. B sinfning metodlari x va y a`zolarga murojat qilishi mumkin, lekin z ga emas. C sinfning metodlari (A sinfga bog’liq bo’lmagan) faqat x ga bog’lana oladi. D sinfining metodlari esa (A sinfning do’sti) x,y va z larga murojaat qilish huquqiga egaligini ko’rishimiz mumkin.


b. O’zgaruvchilar nomlanishi

Yuqoridagi 2-misoldan shuni takidlash lozimki, Java kod qismida ishlatilayotgan o’zgaruvchilarning nomlari va metod ichida keltirilgan parametrlar nomlari bir hilda berilgan. Bu metodlardagi o’zgaruvchilar ba`zilari oldiga “this” kalit so’zi qo’yilgan va bu o’sha o’zgaruvchilarni bir xil nomdagi metod parametrlaridan farqlashni ta`minlaydi.


Lekin, huddi shu holat C++ tilida o’zgaruvchilar nomlari va metod parametrlari boshqa-boshqa farqli nomlar bilan belgilangan. (masalan: _age va age). Bu holat C++ tilida eng maqbul ko’riladigan usul bo’lib, konstruktorning dastlabki ma`lumotlarni berish qismida ham ishlatiladi. Shuni yodda saqlash lozimki, bunga erishishning ikki odatiy yo’li mavjud: o’zgaruvchilar nomlariga “Kelishilgan nomlar” beriladi va parametrlar nomlariga esa yangi nom qo’llaniladi. (masalan: setAge o’zgaruvchisi newAge parametri kabi ko’rinishda); yoki so’zlardagi ajratmalar “_” bilan ajratilgan tarzda yoziladi. Nomlashning bu ikkinchi usuli (“_” bilan ajratish) C++ dasturchilari tomonidan juda ko’p qo’llaniladigan holat bo’lib, ilmiy ishimizning boshqa C++ kod misollarida ham huddi shu holatni qo’llagan holda keltiriladi.


c. Initsializatsiya
Shuni yodda tutish lozimki, C++ konstruktori uchun o’zgaruvchilarni e`lon qilish uchun alohida (Person::Person()) sintaksis qo’llaniladi. Bu C++ dagi ishlatiladigan sintaksis faqat konstruktorda qo’llaniladi. Shunday bo’lsada, Javada ishlatiladigan “Topshiriqli Initsizalizatsiya” (initialization by assignment) yondashuvham C++ da qo’llanilishi mumkin. Ba`zida esa ikkala sintaksisni ham birgalikda qo’llanilishini ko’rishimiz mumkin.


d. C++ dagi a`zo funksiyalarning const bilan berilishi
C++ dagi kodli misolimizdagidek, ma`lumotga huquq beruvchi metodlar (getName(), getAge(), va print()) oxirida const kalit so’zi ikkala: sinf deklaratsiyasi va sinf implementatsiyasida yoziladi. Shu tarzda const ning yozilishidan maqsad, metod qo’llanilgan paytda uning obyektini o’zgartirmaslikni taminlaydi. (Shu deklaratsiya berilganda, kompelyator _name yoki _age bilan berilgan o’zgaruvchilarni qiymatlarini o’zgartirishga ruxsat bermaydi.). const kalit so’zi shuning uchun faqat qabul qiluvchimetodlarda qo’llaniladi, konstruktor yoki mutatorlarda emas. Bu sintaksisning Javada ekvivalenti mavjud emas.
e. C++ da sinfni e`lon qilish kodi oxirida nuqtali vergulni unutmang, lekin Javada buni ishlatmang!.

Mavzu:Massivlar

Java tilida bir o‘lchovli massivlar quyidagicha aniqlanadi :

Elementlarining_turi massiv_nomi[];

Masalan,


int A[];

double b[];

char s[];

Demak, massivlarni aniqlashda (ta’riflashda) oldin massiv

elementlarining turi va undan keyin massivning nomi, nomdan keyin esa []

o‘rta qavslar qo‘yilar ekan. Agar [] qo‘yilmasa, bu oddiy o‘zgaruvchilani

ta’riflash bo‘ladi.

Yuqoridagi keltirilgan massivlarni aniqlash bu hali massiv to‘liq

aniqlandi, degan so‘z emas. Bu yerda hosil qilinmoqchi bo‘lgan massivning

shakli (obrazi) yaratildi. Xotiradan massiv uchun hali joy ajratilgani yo‘q.

Yuqorida biz uchta massivning obrazini yaratdik. Massivni to‘liq aniqlash

uchun quyidagi qoidadan foydalaniladi:

Massiv nomi=new elementlarning turi[o‘lchov];

Masalan, yuqorida keltirilgan massivlar uchun:

A=new int[10];

b=new double[20];

s=new char[40];

Endi programma elementlari butun sonlar bo‘lgan A massiv uchun

xotiradan 10 ta joy, elementlari haqiqiy sonlar bo‘lgan b massiv uchun 20 ta

joy va elementlari belgilar bo‘lgan s massiv uchun 40 ta joy ajratildi. Java da

ajratilgan joylar nuldan boshlab nomerlanadi. Massiv elementlariga murojaat

qilish uchun massiv nomi va [ ] ichida elementning tartib nomeri ko‘rsatiladi.

Masalan,

A[0]-A massivning 1-elementi;

A[1]- A massivning 2- elementi;

Yuqorida massivlarni ta’riflashni ikki bosqichda amalga oshirishni

ko‘rdik. Java da bu ishni bir bosqichda ham amalga oshirish mumkin.

Masalan, yuqorida ta’riflangan massivlarni quyidagicha ham aniqlash

mumkin.

int A[]=new int[10];

double b[]=new double[20];

char s[]=new char[40];

Java tilida massivlarni birdaniga aniqlash va elementlariga qiymat berish

ham mumkin. Masalan,

int A[]={4,5,10,-3,1,-8,25,100,23,6};

bu holda A nomli 10 ta butun elementli bir o‘lchovli massiv aniqlanadi . Bu

yerda A[0]=4, A[1]=5, A[2]=10, A[3]=-3, A[4]=1, A[5]=-8, A[6]=25,

A[7]=100, A[8]=23, A[9]=6.



Download 316,94 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6




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

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish