logo

OS ning uzulishlarini qayta ishlash moduli

Yuklangan vaqt:

08.08.2023

Ko'chirishlar soni:

0

Hajmi:

34.126953125 KB
                 M:OS ning uzulishlarini qayta ishlash moduli
. Opertsion sistemaning yuqori bosqich (32-63
10 ) uzulishlarini qo’llash. 
Programmalash tizimining translyatori maxsus protsedura (funksiya) yordamida 
OSning uzulishlari murojaat qilish imkoniyatini beradi.
Bu proseduralar parametrlari uzulish nomerini ko`rsatadi va mikroprosessor asosiy 
registrlarini qiymatini aniqlaydi.
Masalan, TPasda MSDOS modulining Intr prosedurasini qaraymiz. Uning umumiy
ko`rinishi
procedure Intr( InrNo:Byte; var Regs: Registers);
Bu yerda IntNo-uzulish nimeri; Regs-Registers tipli o`zgaruvchi va uning umumiy 
ko`rinishi variantli yozuv shaklida tasvirlanadi.
Type
Registers=recora
Case integer of
0: (Ax,Bx,Cx,Dx,BP,SI,DI,DS,ES,Flags:word);
1: (AL,AH,BL,BH,CL,CH,DL,DH:Byte)
End;
Bu prosedurani ishlashini oddiy misol yordamida ko`ramiz. Faraz qilaylik, Manitor
ekranidagi ma`lumotni printerga chop etish kerak bo`lsin. Bu ishni Shift+PrtScr 
klavishalarni birgalikda bosish yordamida bajarish mumkin yoki uzulishlardan 
foydalanib ham ijro etish yo`llari mavjid. Programmaning umumiy ko`rinishi 
quyidagicha bo`ladi.
Uses dos;
Procedure PrintScreen;
Var r:registers; Begin intr($05,r) end.
{Tizim uzulishi nomeri 16 lik sanoq sistemasi}
Begin
Write(`ekranni chop etish uchun ENTERni bosing’);
Readln;
PrintScreen
End.
Programma 5-uzulishni (ekranni grafik nusxasini chop etish) ishlatadi va ekrandagi
ma`limotni printerdan chiqaradi.
Uzulishlardan   drayverlarni ishlab chiqishda , assembler-programma tuzushda yoki 
operatsion tizimning funksiyalarini o`zgartirishda ko`p foydalanadilar.
3. Ikkinchi usulni qo`llab quyibosqich, ya`ni BIOS murojaat qiladigan uzulishlarni 
ham ishlatish mumkin. Ammo apparaturaga murojaat qilish SHEHM turi bilan 
bog`liq, shuning uchun programmalar umumiy emas xususiy, SHEHMning 
konkret turi bilan bog`liq bo`lib qolishi mumkin. Shunday qilib, birinchi usul 
konkret programmalash tili bilan, ikkinchi usul esa SHEHM arxitekturasi bilan 
bog`liq bo`lgan holda uzulishlarni ishlatishga imkon beradi.
Endi uzulishlarni assembler-programma tuzish paytida qo`llanishi va 
xususiyatlarini ko`rib chiqamiz.
Accembler-programma tuzish jarayonida operatsion sitema va uning qismsistemasi
BIOS yordamchi funksiyalari ishlatish maxsus qoidalar bo`yicha tashkil qilinadi.
Shu uzulishlardan biri 21
16   nomerli uzulish bo`lib birnechta funksiyalarini 
qo`llashimiz mumkin. Funksiya nomeri AH registrida joylashtiriladi.
Masalan, mov AH,1 komandalari programma uchun kiritilishi
Int 21h kerak bo`lgan simvolni klaviaturadan kiritishni kutib turadi. Bu yerda 1 
funksiya nomeri va u 21
16   nomerli uzulish tarkibiga kiradi. Shundan foydalanib 
programmani dialog (so`rov-javob) shaklida tashkil qilish mumkin. Ma`limotni 
kiritish uchun “yes” nishoniga yoki kiritmaslik uchun “no” nishoniga o`tish kerak 
bo`lsa u holda quyidagi fragmentni yozish mumkin. Wodsim: mov AH,1 ; simvolni o`qish (kiritish)
Int 21h ; simvol AL da kiritiladi.
Cmp AL,’4’ ; simvol=’yes’
Je YES ; agar ‘yes’ u holda yes nishoniga o`ting.
Cmp AL,‘N’ ; agar ‘NO’ bo`lsa No nishoniga o`ting.
Je NO
Jne wodsim ; ‘y’ yoki ‘N’ bo`lmasa simvolni kiritishni kutish.  YES: :
NO: :
          Yuqori darajali dasturlash tillar 
Dastlab 1950-yillarda yuqori darajadagi dasturlash tillarining yangi avlodi 
paydo bo'ldi. Yuqori darajadagi til bizga qudratli va murakkab dasturlarni 
yaratishga imkon beradi. Bundan tashqari, aksariyat yuqori darajadagi 
dasturlash tillarida oson tushuniladigan so'zlardan foydalaniladi. 1950-
yillarda yaratilgan eng yuqori darajadagi tillardan biri COBOL dasturlash tili 
hisoblanadi.
Ushbu dasturlash tilida monitorda "Salom dunyo!" xabarini aks ettirish 
uchun dasturchi quyidagi ko'rsatmalarni yozish kerak bo'lgan. Masalan
DISPLAY "Salom dunyo!"
              Hozirgi kunda bunday dasturlash tillariga ko'plab misollar keltirishimiz 
mumkin. Ada, BASlC, FORTRAN, COBOL, Pascal,  С ,  С ++,  С #, Java, 
Python, Visual Basic v boshqa tillar shular jumlasidandir.  
              Endi, Ushbu dasturlash tillariga qisqacha izoh berib o'tamiz:
              ADA.   1970-yillarda asosan Amerika Qo'shma Shtatlarining mudofa 
vazirligi tomonidan qo'llaniladigan dasturlar uchun yaratilgan dasturlash tili 
hisoblanadi.  Til nufuzli tarixiy shaxs grafinya Ada Lavlasning nomi berilgan.
    BASIC.   1960 yillarning boshlarida yangi boshlovchilar o'rganishi uchun 
juda oson dasturlash tili hisoblanib, universal ramziy kodlash tizimi 
(Beginners Allpurpose Symbolic Instruction Code) hisoblanadi.     FORTRAN.   Matematik hisob-kitoblar uchun 1950-yillarda ishlab chiqilgan 
Formulali tarjimon (FORmula TRANslator) birinchi yuqori darajadagi 
dasturlash tili hisoblangan .
C++ dasturlash tilining kelib chiqishi tarixi
C++ tilini 80 yillarda   AT&T Bell Labs   korxonasi 
ishchisi   Byarnom Straustrup   tuzgan. Avtorning aytishicha, bu 
tilni tuzishda u hech qanday qog'ozlarni qoralamagan va hamma 
ishni yo'l yo'lakay, ketma-ketlikda tuzib chiqqan. Uning asosiy 
maqsadi, o'zi va do'stlari uchun qulay dasturlash tili yaratishdan 
iborat edi. C++ dasturlash tilining asosi C hisoblanadi va shu 
tilni(C) misolida C++ tilini tuzib chiqdi. C dasturlash tilini 
mukammalashtirgan eng asosiy narsa bu – ob'yektga 
mo'ljallangan dasturlashni olib kirgani hisoblanadi. Chunki 
dasturlashda, tez, qulay , tartibli va ixcham yozish uchun 
ob'yektga mo'ljallangan dasturlash tillaridan foydalanish lozim 
bo'ladi. Dastlabki C++ dasturlash tilidan foydalanganlar, bu 
albatta Bell Labs korxonasi hodimlari hisoblanadi.
1993   yilda bu til ommaga taqdim etildi va C++ nomini oldi. 
Dastlabki C++ ga oid kitob " The C++ Programming 
Language (Addison-Wesley, 1985)" nomi bilan mashhur bo'ldi va 
bu kitob 1991 yil " Язык   программирование  C++ " tarjimasi 
bilan rus tiliga tarjima qilindi va bu til( С ++) rivojlanishi boshlanib 
ketdi.
ANSI-ISO (ANSI X3J16; ISO WG21/N0836)   birlashmasi 
1989 yilda, birlashga holda ish boshladi. Bu korxonaning dastlabki
ishi C++ dasturlash tiliga va uning kutubxonasiga standart ishlab 
chiqishdan boshlandi. Buning uchun 1990 yildagi C++ tili asos 
qilib olindi.
1990 yilda C++ standarti ishlab chiqildi va bu standart 
hozir   ANSI C   nomi bilan mashxur. Bu til juda kengayib ketdi va 
hozirgi kunda bu tilning hamma detallarini biladigan dasturchi 
bo'lmasa kerak.
C++ funksiya va ob'yektlarning boy kutubxonasiga ega. Bundan 
kelib chiqadiki C++ dasturlash tilini o'rganish 2 qismga bo'linadi: 
dastlab, C++ tili sintaksisi o'rganiladi vv shundan so'ng uning 
asosiy kutubxonalari birma-bir ko'rib chiqib, yodlash lozim bo'ladi.
Bundan ko'rinib turibdiki, bu til juda katta hajmni o'z qamroviga 
oladi. C++ tilining egasi yo'q u hech kimga tegishli emas. Bu til  С  tilidan
kelib chiqgani uchun bosh harf   С ,   ++   esa bu tildagi qiymatni 
bittaga ko'tarish belgisi hisoblanadi va bu belgi C++ dasturlash 
tilida paydo bo'ldi.
C++ dasturlash tili kompilyatsiya qilinadigan til hisoblanadi bu 
degani yozilgan kod oldin mashina tiliga o'giriladi va keyin ishga 
tushiriladi.
C++ dasturlash tili nomi C dasturlash tilidan kelib chiqqan bq`lib, ++ belgisi 
inkrement amali, ya`ni o'zgaruvchining qiymatini bittaga oshish amalidan olingan. 
C ++ dasturlash tili turli xil amaliy dasturlarni yaratish, operatsion tizimlarni, 
qurilma drayverlarini, shuningdek video o'yinlarni va boshqalarni yaratish uchun 
keng qo'llaniladi. C ++ dasturlash tili 1980-yillarning boshlarida Bell Laboratories 
firmasi xodimi Byorn Stroustrup tomonidan yaratilgan. Byorn Stroustrup o'zining 
ehtiyojlari uchun C dasturlash tiliga bir qator yangiliklar kiritmoqchi bo`ldi, ya'ni 
dastlab C ++ dasturlash tilini yaratish rejalashtirilmagan edi.  U dastlab o`zi 
yaratgan dasturlash tilini “C with classes”(“C bilan sinflar”) deb nomladi. 
Dasturlash tilining dastlabki versiyasi 1980 yilda paydo bo'lgan. Straustrup 
dasturlash tiliga sinflar va ob'ektlar bilan ishlash imkoniyatini qo'shdi va shu bilan 
C sintaksisi asosida yangi dasturlash tili uchun zarur shart-sharoitlarni yaratdi. C++ 
sintaksisi C sintaksisiga asoslangan bo`lib, Byorn Stroustrup C tili bilan moslikni 
saqlashga intildi. 1983 yilda dasturlash tili "C ++ dasturlash tili" deb o'zgartirildi. C+
+ Cga ob'ektga yo'naltirilganlik xususiyatlarni qo'shdi. Oby’ektga yo`naltirilgan 
dasturlashning uchta xususiyatini mavjud:, meros (nasledovaniye), polimorfizm va
inkapsulyatsiya. Usul(Metod) - bu sinf ichida e'lon qilingan va uning ob'ektlari 
bilan ishlashga mo'ljallangan funktsiyadir.  Usullar sinf tanasida e'lon qilinadi.
C++ tilidagi programma tuzilishi va uning kompilyatsiyasi:[2(11-13), 3(7-9)] C++ 
tilida programma yaratish bir nechta bosqichlardan iborat bo‘ladi. Dastlab, matn 
tahririda (odatda programmalash muhitining tahririda) programma matni teriladi, bu 
faylning kengaytmasi «.cpp» bo‘ladi. Keyingi bosqichda programma matni yozilgan 
fayl kompilyatorga uzatiladi, agarda programmada xatoliklar bo‘lmasa, kompilyator 
«.obj» kengaytmali obyekt modul faylini hosil qiladi. Oxirgi qadamda komponovka 
(yig‘uvchi) yordamida «.exe» kengaytmali bajariluvchi fayl programma hosil bo‘ladi.
Bosqichlarda yuzaga keluvchi fayllarning nomlari boshlang‘ich matn faylining nomi 
bilan bir xil bo‘ladi.
Kompilyatsiya jarayonining o‘zi ham ikkita bosqichdan tashkil topadi. Boshida 
preprotsessor ishlaydi, u matndagi kompilyatsiya direktivalarini bajaradi, xususan 
#include direktivasi bo‘yicha ko‘rsatilgan kutubxonalardan C++ tilida yozilgan 
modullarni programma tarkibiga kiritadi. Shundan so‘ng kengaytirilgan programma  matni kompilyatorga uzatiladi. Kompilyator o‘zi ham programma bo‘lib, uning uchun
kiruvchi ma’lumot bo‘lib, C++ tilida yozilgan programma matni hisoblanadi. 
Kompilyator programma matnini leksema (atomar) elementlarga ajratadi va uni 
leksik, keyinchalik sintaktik tahlil qiladi. Leksik tahlil jarayonida u matnni 
leksemalarga ajratish uchun «probel ajratuvchisini» ishlatadi. Probel ajratuvchisiga - 
probel belgisi ('─'), '\t' - tabulyatsiya belgisi, '\n'- keyingi qatorga o‘tish belgisi, 
boshqa ajratuvchilar va izohlar (kommentariylar) kiradi.
Programma matni tushunarli bo‘lishi uchun izohlar ishlatiladi. Izohlar kompilyator 
tomonidan «o‘tkazib» yuboriladi va ular programma amal qilishiga hech qanday ta’sir
qilmaydi.
C++ tilida izohlar ikki ko‘rinishda yozilishi mumkin.
Birinchisida "/*" dan boshlanib, "*/" belgalari bilan tugagan barcha belgilar ketma-
ketligi izoh hisoblanadi, ikkinchisi «satriy izoh» deb nomlanadi va u "//" belgilardan 
boshlangan va satr oxirigacha yozilgan belgilar ketma-ketligi bo‘ladi. Izohning 
birinchi ko‘rinishida yozilgan izohlar bir necha satr bo‘lishi va ulardan keyin C++ 
operatorlari davom etishi mumkin.
Misol.
int main()
{
// bu qator izoh hisoblanadi
Int a=0; //int d;
Int c;
/* int b=15 */
/*- izoh boshlanishi
a=c;
izoh tugashi */
return 0;
}
Programmada d, b o‘zgaruvchilar e’lonlari inobatga olinmaydi va a=c amali 
bajarilmaydi. Quyida C++ tilidagi sodda programma matni keltirilgan.
# include   // sarlavha faylni qo‘shish
int main () // bosh funksiya tavsifi
{ // blok boshlanishi
cout << “Salom Olam! “\n”; // satrni chop etish
return 0; // funksiya qaytaradigan qiymat
} // blok tugashi
Programma bajarilishi natijasida ekranga "Salom Olam!" satri chop etiladi.
Programmaning 1-satrida #inc1ude.. preprotsessor direktivasi bo‘lib, programma 
kodiga oqimli o‘qish/yozish funksiyalari va uning o‘zgaruvchilari e’loni joylashgan 
«iostream.h » sarlavha faylini qo‘shadi. Keyingi qatorlarda programmaning yagona, 
asosiy funksiyasi -main() funksiyasi tavsifi keltirilgan. Shuni qayd etish kerakki, C++ 
programmasida albatta main() funksiyasi bo‘lishi shart va programma shu funksiyani 
bajarish bilan o‘z ishini boshlaydi.
Programma tanasida konsol rejimida belgilar ketma-ketligini oqimga chiqarish amali 
qo‘llanilgan. Ma’lumotlarni standart oqimga (ekranga) chiqarish uchun quyidagi 
format ishlatilgan:
cout «   ;
Bu yerda   sifatida o‘zgaruvchi yoki sintaksisi to‘g‘ri yozilgan va qandaydir qiymat 
qabul qiluvchi til ifodasi kelishi mumkin (keyinchalik, burchak qavs ichiga olingan 
o‘zbekcha satr ostini til tarkibiga kirmaydigan tushuncha deb qabul qilish kerak).
Masalan:
Int uzg=324;
Cout<
Berilganlarni standart oqimdan (odatda klaviaturadan) o‘qish quyidagi formatda 
amalga oshiriladi:
cin>>   ; Bu yerda   qiymat qabul qiluvchi o‘zgaruvchining nomi.
Misol:
int Yosh;
cout <<”Yoshingizni kiriting_”;
cin>>Yosh;
Butun turdagi Yosh o‘zgaruvchisi kiritilgan qiymatni o‘zlashtiradi. Kiritilgan 
qiymatni o‘zgaruvchi turiga mos kelishini tekshirish mas’uliyati programma 
tuzuvchisining zimmasiga yuklanadi.
Bir paytning o‘zida probel () vositasida bir nechta va har xil turdagi qiymatlarni 
oqimdan kiritish mumkin. Qiymat kiritish   tugmasini bosish bilan tugaydi. Agar 
kiritilgan qiymatlar soni o‘zgaruvchilar sonidan ko‘p bo‘lsa, «ortiqcha» qiymatlar 
bufer xotirada saqlanib qoladi.
# include
int main ()
{
int x,y;
float z;
cin>>x>>y>>z;
cout << “O’qilgan qiymatlar \n”;
cout<<x’\t’<<y’\t’<<z;
return 0;
}
O‘zgaruvchilarga qiymat kiritish uchun klaviatura orqali
10 20 3.14
harakati amalga oshiriladi. Shuni qayd etish kerakki, oqimga qiymat kiritishda probel 
ajratuvchi hisoblanadi. Haqiqiy sonning butun va kasr qismlari ' . ' belgisi bilan  ajratiladi.
^   C++ tili alfaviti va leksemalar:[1(35-43), 2(13-19), 3(9-10)] C   ++ tili alfaviti va 
leksemalariga quyidagilar kiradi:
- katta va kichik lotin alfaviti harflari;
- raqamlar - 0,1,2,3,4,5,6,7,8,9;
- maxsus belgilar: " {} | [] () + - / % \ ; ' : ? <=>_ ! & ~ # ^ . *
Alfavit belgilaridan tilning leksemalari shakllantiriladi:
- identifikatorlar;
- kalit (xizmatchi yoki zahiralangan) so‘zlar;
- o‘zgarmaslar;
- amallar belgilanishlari;
- ajratuvchilar.
^   Identifikatorlar va kalit so‘zlar:[1(43-52),3(10-11)] Programmalash tilining 
muhim tayanch tushunchalaridan biri identifikator tushunchasidir.
Identifikator- deganda katta va kichik lotin harflari, raqamlar va tag chiziq ('_') 
belgilaridan tashkil topgan va raqamdan boshlanmaydigan belgilar ketma-ketligi 
tushu-niladi. Identifikatorlarda harflarning registrlari (katta yoki kichikligi) hisobga 
olinadi. Masalan, RUN, run, Run - bu har xil identifikatorlardir. Identifikator 
uzunligiga chegara qo‘yilmagan, lekin ular kompilyator tomonidan faqat boshidagi 32
belgisi bilan farqlanadi.
Identifikatorlar kalit so‘zlar, o‘zgaruvchilar, funksiyalar, nishonlar va boshqa 
obyektlarni nomlashda ishlatiladi.
C++ tilining kalit so‘zlariga quyidagilar kiradi:
asm, auto, break, case, catch, char, class, const, continue, default, delete, do, double, 
else, enum, explicit, extern, float, for, friend, goto, if, inline, int, long, mutable, new, 
operator, private, protected, public, register, return, short, signed, sizeof, static, struct,
swith, template, this, throw, try, typedef, typename, union, unsigned, virtual, void, 
volatile, while.
Yuqorida keltirilgan identifikatorlarni boshqa maqsadda ishlatish mumkin emas. Protsessor registrlarini belgilash uchun quyidagi so‘zlar ishlatiladi:
_AH, _AL, _AX, _EAX, _BN, _BL, _BX, _EVX, _CL, _CN, _CX, _ESX, _DN, 
_DL, _DX, _EDX, _CS, _ESR, EBP, _FS, __GS, _DI, _EDI, _SI, _ESI, __BP, SP, 
DS, _ES, SS, _FLAGS.
Bulardan tashqari «_» (ikkita tag chiziq) belgilaridan boshlangan identifikatorlar 
kutubxonalar uchun zahiralangan. Shu sababli '_' va «_» belgilarni identifikatorning 
birinchi belgisi sifatida ishlatmagan maqul. Identifikator belgilar orasida probel 
ishlatish mumkin emas, zarur bo‘lganda uning o‘rniga '_' ishlatish mumkin: 
silindr_radiusi, aylana_diametri.</x’\t’<<y’\t’<<z;
C++ dasturlash tilida o’zgaruvchilar va ularning 
turlari
O'zgaruvchi   -   Xotiraning nomlangan qismi bo’lib, o’zida ma’lum bir 
toifadagi qiymatlarni saqlaydi. O’zgaruvchining nomi va qiymatlari bo’ladi. 
O’zgaruvchining nomi orqali qiymat saqlanayotgan xotira qismiga murojaat 
qilinadi. Programma ishlashi jarayonida o’zgaruvchining qiymatini 
o’zgartirish mumkin. Har qanday o’zgaruvchini ishlatishdan oldin, uni e’lon 
qilish lozim.
 int   - 123 yoki -123 kabi butun sonlarni (butun sonlar) saqlaydi.
 double   - 19.99 yoki -19.99 kabi o'nli raqamlar raqamlarini saqlaydi
 char - "a" yoki "B" kabi bitta belgilarni saqlaydi.   Char   qiymatlari bitta 
tirnoq bilan o'ralgan.
 string - "Hello World" kabi matnlarni saqlaydi.   Qator qiymatlari ikki 
tirnoq bilan o'ralgan
 bool   - qiymatlarni ikki holat bilan saqlaydi: haqiqiy yoki 
noto'g'ri,   True   yoki   False   (   1   yoki   0 )
O'zgaruvchi qisqa nomga ega bo'lishi mumkin (masalan, x va y) yoki 
ko'proq tavsiflovchi nom (yosh, cpp, master va h.k).   C++   o'zgaruvchilar 
uchun qoidalar:
 O'zgaruvchilar nomi raqam bilan boshlanmaydi!
 O'zgaruvchi   [a-Z]   harf bilan boshlanib raqamlar ham aralashtirsa 
bo'ladi.   ( _ali123, son90 va h.k)
 O'zgarvchi nomida katta va kichik harflar ahamiyatga ega bo'lib misol 
uchun   Aka   va   aka   ikki xil o'zgaruvchi nomi hisoblanadi! (Aka, aka, 
AkA, aKa) 1-Masala :   Bizga cpp nomli o'zgaruvchi nomi butun tipga tegishli va qiymati 
13 ga teng. ushbu o'zgaruvchini ekranga chiqaring .
#include <iostream>
using namespace std;
int main() {
 int cpp;
 cpp = 13;
 cout << cpp;
}
Natija:13
Esdan chiqarmang. O'zgaruvchiga yangi qiymat kiritsangiz yoki 
tayinlasangiz oldingi mavjud o'zgaruvchi qiymati yuqoladi. quyidagi misolda
ko'ring.
#include <iostream>
using namespace std;
int main() {
   int mn = 13;  // mn 13 ga teng edi
   mn = 15;  // endi mn 15 ga teng 
   cout << mn;  // Natija 15 chiqadi
}
O'zgaruvchi boshqa	 turlari.
int myNum = 5;               // Butun qiymatli o'zgaruvchi
double myFloatNum = 5.99;    // o'nli kasrli sonlar uchun
char myLetter = 'D';         // Char tipga tegish yani bitta belgi
string myText = "Hello";     // TEXT saqlaydi
bool myBoolean = true;       // Boolean tipi bunda rost yoki yolg'on (true or false)
Bir	
 nechta	 o'zgaruvchini	 e'lon	 qilish.
Bir   xil	
 turdagi   bir nechta o'zgaruvchini e'lon qilish   uchun vergul bilan 
ajratilgan ro'yxat shakllantiriladi: #include <iostream>
using namespace std;
int main() {
    int x = 13, y = 15, z = 1;
cout << x + y + z;
}
Natija butun qiymatdagi berilgan   x,y,z   lar yig'indisini hisoblaydi.
Natija: 29
O`zgarmaslar.   C++   tilida o`zgarmaslar o`zgarmas kattalikdir. Ularning mantiqiy, butun, 
haqiqiy, belgili, satrli o`zgarmaslarga bo`linadi. Dasturchi   C++   tilida o`zgarmaslarni aniq 
ifodalay olishi kerak.
 O`zgarmaslar formati.
O`zgarmas O`zgarmas   formati misol
mant iqiy True va false so`zlar bilan aniqlanadi True, False
butun O`nlik sanoq sistemasi. Birinchi raqami 0 bo`lishi 
kerak emas (0,1,2,3,4,5,6,7,8,9) 15, 25, 0, 4
Sakkizlik sanoq sistemasi. Birinchi raqami 0 bo`lishi 
kerak (0,1,2,3,4,5,6,7) 01, 020, 07155
O`n oltilik sanoq sistamasi. Boshlanishi 0x (0X) bilan
bo`lishi kerak (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, 
E) 0xA, 0x1B8, 0X00FF, 
0X00ff
Haqiqiy O`nli. [son].[son] ko`rinishda 5.7, .001, 35
Exponensial. [son][.][son]{E|e}[+|-][son] 0.2E6, .11e-3, 5E10, 
1.22E-10
Belgili Tirnoq `] ichiga olingan bir yoki bir nechta belgi `A`, `ю`, `*`, `db`, `A`, `\
n`, `\012`, `\x07\x07`
Satrli Belgilarning qo`shtirnoqqa olingani "Salom Buxoro", "\tNatija 
=\xF5\n"
Satrli o`zgarmas . Satrli o`zgarmaslar orasiga eskeyp simvollarni qo`llash mumkin. Bu simvollar
oldiga [\] belgisi quyiladi. Masalan, “\n Birinchi satr \n ikkinchi satr \n uchinchi satr”. Satr  simvollari xotirada ketma-ket joylashtiriladi va har bir satrli o`zgarmas oxiriga avtomatik 
ravishda kompilyator tomonidan `\0` simvoli qo`shiladi. Shunday satrning xotiradagi hajmi 
simvollar soni+1 baytga tengdir. Ketma-ket kelgan va bo`shliq, tabulyatsiya yoki satr oxiri 
belgisi bilan ajratilgan satrlar kompilyatsiya davrida bitta satrga aylantiriladi. Masalan, “Salom” 
“Buxoro ” satrlari bitta satr deb qaraladi. “Salom Buxoro”. Bu qoidaga bir necha qatorga 
yozilgan satrlar ham bo`ysunadi.
Sanovchi o`zgarmas. C++ tilining qo`shimcha imkoniyatlaridan biri.
Sanovchi o`zgarmaslar ENUM xizmatchi so`zi   yordamida kiritilib , butun tipdagi sonlarga qulay so`zlarni mos 
qo`yish uchun ishlatiladi. Masalan,
enum{one=1,two=2,three=3}
Agar son qiymatlari ko`rsatilmagan bo`lsa eng chapki so`zga 0 qiymati berilib qolganlariga tartib
bo`yicha o`suvchi sonlar mos qo`yiladi.
Enum{zero,one,two}
Bu misolda avtomatik ravishda o`zgarmaslar quyidagi qiymatlarni qabul qiladi:
Zero=0, one=1, two=2
O`zgarmaslar aralash ko`rinishda kiritilishi ham mumkin:
Enum(zero,one,for=4,five,seeks}
Bu misolda avtomatik ravishda o`zgarmaslar quyidagi qiymatlarni qabul qiladi:
Zero=0, one=1, for=4;five=5,seeks=6;
Enum BOOLEAN {NO, YES};
O`zgarmaslar qiymatlari: NO=0, YES=1.
Nomlangan o`zgarmaslar. C++ tilida o`zgaruvchilardan tashqari nomlangan o`zgarmaslar kiritilishi mumkin. 
Bu o`zgarmaslar qiymatlarini dasturda o`zgartirish mumkin emas. O`zgarmaslar nomlari dasturchi tomonidan 
kiritilgan va xizmatchi so`zlardan farqli bo`lgan identifikatorlar bo`lishi mumkin. Odatda nom sifatida katta 
lotin harflari va ostiga chizish belgilari kombinatsiyasidan   iborat identifikatorlar ishlatiladi. Nomlangan 
o`zgarmaslar quyidagi shaklda kiritiladi:
Const tip o`zgarmas_nomi=o`zgarmas_qiymati
Masalan,
Const double Pi=3.1415;
Const long M=99999999; Const R=2;
Oxirgi misolda o`zgarmas tipi ko`rsatilmagan, bu o`zgarmas int tipiga tegishli deb hisoblanadi.
Null ko`rsatkich. NULL - ko`rsatkich yagona arifmetik bo`lmagan o`zgarmasdir. Null ko`rsatkich 0 yoki 0L 
yoki nomlangan o`zgarmas NULL orqali tasvirlanishi mumkin. Shuni aytish lozimki bu o`zgarmas qiymati 0 
bo`lishi yoki `0` simvoli kodiga mos kelishi shart emas.
2.3-jadval. O`zgarmaslar chegaralari va mos tiplari.
O`zgarmas 
turi Ma`lumotlar tipi Hajm, 
bayt Qiymatlar chegarasi
mantiqiy Boolean 1 True, false
belgili signed char 1 -128…127
Unsigned char 1 0…255
Sanovchi Enum 2 -32768…32767
butun signed   short int 2 -32 768 … 32   767
unsigned short int 2 0…65535
signed int 4 -2 147 483 648 … 2 147 483 647
Unsigned int 4 0 … 4 294 967 295
signed long int 4 -2 147 483 648 … 2 147 483 647
unsigned long int 4 0 … 4 294 967
haqiqiy Float 4 3.4E-32…3.4E+38
Double 8 1.7E-308…1.7E+308
Long double 10 3.4E-4932…1.1E+4932 Umumiy markazga ega bo'lgan ikkita aylana radiusi berilgan.   R1,R2 (R1>R2).Ularnig 
yuzalari S1 va S2   ,   sayt ayirmasi S3 aniqiansin.   Sl =   pi   *   R1   2
  , S2=   pi*   R2   2
  , S3 
=   pi   (R1   2
  - R2   2
  ).
#include<iostream.h>
#include<math.h>
int main()
{ int R1,R2,S1,S2,S3;
float const PI=3,14;
cout<<"R1=";   cin>> R1;
cout<<"R2=";   cin>> R2;
S1=PI*R1*R1;
S2=PI*R2*R2;
S3=PI*(R1*R1-R2*R2);
cout<<"S1="<<S1;
cout<<"S2="<<S2;
cout<<"S3="<<S3;
tizim ("pauza");
qaytish 0;
}
  Aylananing tegishli L berilgan.   Uning radiusi R va mahsulot S aniqiansin   L = 2*   pi   *R   S
=   pi   *R pi   = 3.14
#include<iostream.h>
#include<math.h>
int main ()
{      float s,l,r;
  float const pi=3,14;
       cout<<"r=";cin>> r;
       l=2*p*r;
       s=p*r;
       cout<<"l="<<l;
       cout<<"s="<<s;
       tizim ("pauza");
       qaytish 0;
}
  Aylananing S berilgan.   Uning diametri d va radiusi R aniqiansin   L = 2*   pi   *R   S 
=   pi*   R   2
  pi   = 3.14
#include<iostream.h>
#include<math.h>
int main ()
{
int l,r,s;
float const pi=3,14;
cout<<"r=";   cin>>r;
l=2*3*r;
s=3*r*r;
cout<<"s=" <<s;
cout<<"l=" <<l';
tizim ("Pauza");
qaytish 0;
}
Sonlar o'qida ikkita nuqta masofa masofa aniqiansin.   X3=|x1-x2|
#include<iostream.h>
#include<math.h> int main()
{
  int x1,x2,x3;
cout<<"x1=";   cin>> x1;
cout<<"x2=";   cin>> x2;
x3=abs(x1-x2);
cout<<"x3="<<x3;
tizim ("pauza");
qaytish 0;
}

M:OS ning uzulishlarini qayta ishlash moduli . Opertsion sistemaning yuqori bosqich (32-63 10 ) uzulishlarini qo’llash. Programmalash tizimining translyatori maxsus protsedura (funksiya) yordamida OSning uzulishlari murojaat qilish imkoniyatini beradi. Bu proseduralar parametrlari uzulish nomerini ko`rsatadi va mikroprosessor asosiy registrlarini qiymatini aniqlaydi. Masalan, TPasda MSDOS modulining Intr prosedurasini qaraymiz. Uning umumiy ko`rinishi procedure Intr( InrNo:Byte; var Regs: Registers); Bu yerda IntNo-uzulish nimeri; Regs-Registers tipli o`zgaruvchi va uning umumiy ko`rinishi variantli yozuv shaklida tasvirlanadi. Type Registers=recora Case integer of 0: (Ax,Bx,Cx,Dx,BP,SI,DI,DS,ES,Flags:word); 1: (AL,AH,BL,BH,CL,CH,DL,DH:Byte) End; Bu prosedurani ishlashini oddiy misol yordamida ko`ramiz. Faraz qilaylik, Manitor ekranidagi ma`lumotni printerga chop etish kerak bo`lsin. Bu ishni Shift+PrtScr klavishalarni birgalikda bosish yordamida bajarish mumkin yoki uzulishlardan foydalanib ham ijro etish yo`llari mavjid. Programmaning umumiy ko`rinishi quyidagicha bo`ladi. Uses dos; Procedure PrintScreen; Var r:registers;

Begin intr($05,r) end. {Tizim uzulishi nomeri 16 lik sanoq sistemasi} Begin Write(`ekranni chop etish uchun ENTERni bosing’); Readln; PrintScreen End. Programma 5-uzulishni (ekranni grafik nusxasini chop etish) ishlatadi va ekrandagi ma`limotni printerdan chiqaradi. Uzulishlardan drayverlarni ishlab chiqishda , assembler-programma tuzushda yoki operatsion tizimning funksiyalarini o`zgartirishda ko`p foydalanadilar. 3. Ikkinchi usulni qo`llab quyibosqich, ya`ni BIOS murojaat qiladigan uzulishlarni ham ishlatish mumkin. Ammo apparaturaga murojaat qilish SHEHM turi bilan bog`liq, shuning uchun programmalar umumiy emas xususiy, SHEHMning konkret turi bilan bog`liq bo`lib qolishi mumkin. Shunday qilib, birinchi usul konkret programmalash tili bilan, ikkinchi usul esa SHEHM arxitekturasi bilan bog`liq bo`lgan holda uzulishlarni ishlatishga imkon beradi. Endi uzulishlarni assembler-programma tuzish paytida qo`llanishi va xususiyatlarini ko`rib chiqamiz. Accembler-programma tuzish jarayonida operatsion sitema va uning qismsistemasi BIOS yordamchi funksiyalari ishlatish maxsus qoidalar bo`yicha tashkil qilinadi. Shu uzulishlardan biri 21 16 nomerli uzulish bo`lib birnechta funksiyalarini qo`llashimiz mumkin. Funksiya nomeri AH registrida joylashtiriladi. Masalan, mov AH,1 komandalari programma uchun kiritilishi Int 21h kerak bo`lgan simvolni klaviaturadan kiritishni kutib turadi. Bu yerda 1 funksiya nomeri va u 21 16 nomerli uzulish tarkibiga kiradi. Shundan foydalanib programmani dialog (so`rov-javob) shaklida tashkil qilish mumkin. Ma`limotni kiritish uchun “yes” nishoniga yoki kiritmaslik uchun “no” nishoniga o`tish kerak bo`lsa u holda quyidagi fragmentni yozish mumkin.

Wodsim: mov AH,1 ; simvolni o`qish (kiritish) Int 21h ; simvol AL da kiritiladi. Cmp AL,’4’ ; simvol=’yes’ Je YES ; agar ‘yes’ u holda yes nishoniga o`ting. Cmp AL,‘N’ ; agar ‘NO’ bo`lsa No nishoniga o`ting. Je NO Jne wodsim ; ‘y’ yoki ‘N’ bo`lmasa simvolni kiritishni kutish. YES: : NO: : Yuqori darajali dasturlash tillar Dastlab 1950-yillarda yuqori darajadagi dasturlash tillarining yangi avlodi paydo bo'ldi. Yuqori darajadagi til bizga qudratli va murakkab dasturlarni yaratishga imkon beradi. Bundan tashqari, aksariyat yuqori darajadagi dasturlash tillarida oson tushuniladigan so'zlardan foydalaniladi. 1950- yillarda yaratilgan eng yuqori darajadagi tillardan biri COBOL dasturlash tili hisoblanadi. Ushbu dasturlash tilida monitorda "Salom dunyo!" xabarini aks ettirish uchun dasturchi quyidagi ko'rsatmalarni yozish kerak bo'lgan. Masalan DISPLAY "Salom dunyo!" Hozirgi kunda bunday dasturlash tillariga ko'plab misollar keltirishimiz mumkin. Ada, BASlC, FORTRAN, COBOL, Pascal, С , С ++, С #, Java, Python, Visual Basic v boshqa tillar shular jumlasidandir. Endi, Ushbu dasturlash tillariga qisqacha izoh berib o'tamiz:               ADA.   1970-yillarda asosan Amerika Qo'shma Shtatlarining mudofa vazirligi tomonidan qo'llaniladigan dasturlar uchun yaratilgan dasturlash tili hisoblanadi. Til nufuzli tarixiy shaxs grafinya Ada Lavlasning nomi berilgan.     BASIC.   1960 yillarning boshlarida yangi boshlovchilar o'rganishi uchun juda oson dasturlash tili hisoblanib, universal ramziy kodlash tizimi (Beginners Allpurpose Symbolic Instruction Code) hisoblanadi.

  FORTRAN. Matematik hisob-kitoblar uchun 1950-yillarda ishlab chiqilgan Formulali tarjimon (FORmula TRANslator) birinchi yuqori darajadagi dasturlash tili hisoblangan . C++ dasturlash tilining kelib chiqishi tarixi C++ tilini 80 yillarda AT&T Bell Labs korxonasi ishchisi Byarnom Straustrup tuzgan. Avtorning aytishicha, bu tilni tuzishda u hech qanday qog'ozlarni qoralamagan va hamma ishni yo'l yo'lakay, ketma-ketlikda tuzib chiqqan. Uning asosiy maqsadi, o'zi va do'stlari uchun qulay dasturlash tili yaratishdan iborat edi. C++ dasturlash tilining asosi C hisoblanadi va shu tilni(C) misolida C++ tilini tuzib chiqdi. C dasturlash tilini mukammalashtirgan eng asosiy narsa bu – ob'yektga mo'ljallangan dasturlashni olib kirgani hisoblanadi. Chunki dasturlashda, tez, qulay , tartibli va ixcham yozish uchun ob'yektga mo'ljallangan dasturlash tillaridan foydalanish lozim bo'ladi. Dastlabki C++ dasturlash tilidan foydalanganlar, bu albatta Bell Labs korxonasi hodimlari hisoblanadi. 1993 yilda bu til ommaga taqdim etildi va C++ nomini oldi. Dastlabki C++ ga oid kitob " The C++ Programming Language (Addison-Wesley, 1985)" nomi bilan mashhur bo'ldi va bu kitob 1991 yil " Язык программирование C++ " tarjimasi bilan rus tiliga tarjima qilindi va bu til( С ++) rivojlanishi boshlanib ketdi. ANSI-ISO (ANSI X3J16; ISO WG21/N0836) birlashmasi 1989 yilda, birlashga holda ish boshladi. Bu korxonaning dastlabki ishi C++ dasturlash tiliga va uning kutubxonasiga standart ishlab chiqishdan boshlandi. Buning uchun 1990 yildagi C++ tili asos qilib olindi. 1990 yilda C++ standarti ishlab chiqildi va bu standart hozir ANSI C nomi bilan mashxur. Bu til juda kengayib ketdi va hozirgi kunda bu tilning hamma detallarini biladigan dasturchi bo'lmasa kerak. C++ funksiya va ob'yektlarning boy kutubxonasiga ega. Bundan kelib chiqadiki C++ dasturlash tilini o'rganish 2 qismga bo'linadi: dastlab, C++ tili sintaksisi o'rganiladi vv shundan so'ng uning asosiy kutubxonalari birma-bir ko'rib chiqib, yodlash lozim bo'ladi. Bundan ko'rinib turibdiki, bu til juda katta hajmni o'z qamroviga oladi.

C++ tilining egasi yo'q u hech kimga tegishli emas. Bu til С tilidan kelib chiqgani uchun bosh harf С , ++ esa bu tildagi qiymatni bittaga ko'tarish belgisi hisoblanadi va bu belgi C++ dasturlash tilida paydo bo'ldi. C++ dasturlash tili kompilyatsiya qilinadigan til hisoblanadi bu degani yozilgan kod oldin mashina tiliga o'giriladi va keyin ishga tushiriladi. C++ dasturlash tili nomi C dasturlash tilidan kelib chiqqan bq`lib, ++ belgisi inkrement amali, ya`ni o'zgaruvchining qiymatini bittaga oshish amalidan olingan. C ++ dasturlash tili turli xil amaliy dasturlarni yaratish, operatsion tizimlarni, qurilma drayverlarini, shuningdek video o'yinlarni va boshqalarni yaratish uchun keng qo'llaniladi. C ++ dasturlash tili 1980-yillarning boshlarida Bell Laboratories firmasi xodimi Byorn Stroustrup tomonidan yaratilgan. Byorn Stroustrup o'zining ehtiyojlari uchun C dasturlash tiliga bir qator yangiliklar kiritmoqchi bo`ldi, ya'ni dastlab C ++ dasturlash tilini yaratish rejalashtirilmagan edi. U dastlab o`zi yaratgan dasturlash tilini “C with classes”(“C bilan sinflar”) deb nomladi. Dasturlash tilining dastlabki versiyasi 1980 yilda paydo bo'lgan. Straustrup dasturlash tiliga sinflar va ob'ektlar bilan ishlash imkoniyatini qo'shdi va shu bilan C sintaksisi asosida yangi dasturlash tili uchun zarur shart-sharoitlarni yaratdi. C++ sintaksisi C sintaksisiga asoslangan bo`lib, Byorn Stroustrup C tili bilan moslikni saqlashga intildi. 1983 yilda dasturlash tili "C ++ dasturlash tili" deb o'zgartirildi. C+ + Cga ob'ektga yo'naltirilganlik xususiyatlarni qo'shdi. Oby’ektga yo`naltirilgan dasturlashning uchta xususiyatini mavjud:, meros (nasledovaniye), polimorfizm va inkapsulyatsiya. Usul(Metod) - bu sinf ichida e'lon qilingan va uning ob'ektlari bilan ishlashga mo'ljallangan funktsiyadir. Usullar sinf tanasida e'lon qilinadi. C++ tilidagi programma tuzilishi va uning kompilyatsiyasi:[2(11-13), 3(7-9)] C++ tilida programma yaratish bir nechta bosqichlardan iborat bo‘ladi. Dastlab, matn tahririda (odatda programmalash muhitining tahririda) programma matni teriladi, bu faylning kengaytmasi «.cpp» bo‘ladi. Keyingi bosqichda programma matni yozilgan fayl kompilyatorga uzatiladi, agarda programmada xatoliklar bo‘lmasa, kompilyator «.obj» kengaytmali obyekt modul faylini hosil qiladi. Oxirgi qadamda komponovka (yig‘uvchi) yordamida «.exe» kengaytmali bajariluvchi fayl programma hosil bo‘ladi. Bosqichlarda yuzaga keluvchi fayllarning nomlari boshlang‘ich matn faylining nomi bilan bir xil bo‘ladi. Kompilyatsiya jarayonining o‘zi ham ikkita bosqichdan tashkil topadi. Boshida preprotsessor ishlaydi, u matndagi kompilyatsiya direktivalarini bajaradi, xususan #include direktivasi bo‘yicha ko‘rsatilgan kutubxonalardan C++ tilida yozilgan modullarni programma tarkibiga kiritadi. Shundan so‘ng kengaytirilgan programma