Upload
others
View
92
Download
0
Embed Size (px)
Citation preview
Mavzu:
C++ DASTURLASH TILINING
TARIXI, ALFAVITI, ASOSIY
TUSHUNCHALARI. STANDART
FUNKSIYALAR
Ma’ruzachi:dots.B.O.Raxmankulova
Reja:
1. C++ dasturlash tilining tarixi
2. Dev C++ dasturi mihitida ishlash
3. C++ dasturlash tili alfaviti
4. C++ dastirlash tili asosoiy tushunchalari
5. C++ dasturi standart funktsiyalari
C++ dasturi tarixi
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
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 (nasledo-
vaniye), 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.
Meros (Nasledovaniye)
C ++ tilida bitta sinf xossa- xususiyatlarini
boshqa sinf meros qilib olishi mumkin.
Merosxo`r klass o'z maydonlarini va
funktsiyalarini yaratishi yoki asosiy sinfning
funktsiyalarini qayta aniqlashi mumkin. Meros-
xo'r konstruktor asosiy sinf konstruktorlarini
chaqiradi. Destruktor esa teskari tartibda ish-
laydi. Meros umumiy(publik), himoyalangan
(Protected) va xususiy (private) bo`lishi mum-
kin.
Polimorfizm
Ob'ektga yo'naltirilgan dasturlashda
qo'llaniladigan polimorfizmning maqsadi, sinf
uchun umumiy bo'lgan harakatlarni belgilash
uchun bitta nomdan foydala-nishdir. Har bir
harakatning bajarilishi ma'lumotlar turiga qarab
belgilanadi. Polimorfizmning afzalligi shundaki,
u bitta interfeysdan foydalanib yagona
harakatlar sinfini aniqlashga imkon berish orqali
dasturlarni soddalashtirishga yordam beradi.
Inkapsulatsiya
C++ da ma'lumotlarni tashkil qilish klasslar
orqali amalga oshiriladi. C++ klassi maydonlar,
turlar va funktsiyalaridan iborat bo'ladi. C++
tilidagi inkapsulatsiya klass a'zolarining ta’sir
doirasini belgilaydi: ular ommaviy,
himoyalangan va xususiy bo`lishi mumkin.
Standart kutubxona
C ++ dasturlash tilida standart kutubxona sinflar
va funktsiyalar to'plamini anglatadi. Standart
kutubxona bir nechta asosiy konteynerlarni, ushbu
konteynerlar bilan ishlash funktsiyalarini, ob'ektlarni,
satr va oqimlarning asosiy turlarini, ba'zi til
xususiyatlarini va amallarni bajarish uchun tez-tez
ishlatiladigan funktsiyalarni o`z ichiga oladi. Masalan,
sonning kvadrat ildizini topish. Standart
kutubxonaning funktsional xususiyatlari std nomlar
fazosida e'lon qilinadi.
C dasturlash tilidan dan farqli tomonlari:
• ob'ektga yo'naltirilgan dasturlashni qo'llab-
quvvatlash;
• andozalar orqali umumlashtirilgan dasturlashni
qo'llab-quvvatlash;
• qo'shimcha ma'lumotlar turlari;
• istisnolar;
• nom maydonlari;
• ichki funktsiyalar;
• operatorning yuklanishi(peregruzka);
• funktsiyalarning yuklanishi;
• a xotirani erkin boshqarish operatorlari;
• standart kutubxonaga qo'shimchalar.
Afzalliklari:
• C tili bilan yuqori muvofiqlik
• Hisoblash samaradorligi
• Turli dasturlash uslublarini qo'llab-quvvatlash: tarkibiy, ob'ektga
yo'naltirilgan, umumlashtirilgan dasturlash, funktsional dasturlash.
• Ob’yekt destruktorlarni avtomatik ravishda chaqirish xotira va boshqa
manbalarni boshqarish ishonchliligini soddalashtiradi va oshiradi.
• Ortiqcha yuklangan operatorlar
• shablonlar
• To'g'ridan-to'g'ri kompilyatorlar tomonidan qo'llab-quvvatlanmaydigan
paradigmalarni qo'llab-quvvatlash uchun tilni kengaytirish imkoniyati
mavjudligi.
• C ++ uchun turli tillarga tarjima qilingan juda ko'p o'quv adabiyotlari
mavjud
Kamchiliklari:
• Noto'g'ri ishlab chiqilgan sintaksisning
mavjudligi tilning qo'llanilishini pasaytiradi
• Til ko'p muhim xususiyatlarga ega emas.
• Dasturchilar uchun unumdorligi ancha past
• Noqulay sintaksis
• Og'ir meros
• Xotirani kuzatib borish zarurati
Dev C++ dasturi mihitida ishlash
Dev-C ++ (Dev-Cpp) - bu C / C ++ dasturlash tillari uchun bepul dasturlarni ishlab
chiqish muhiti.
Dev-C ++ dastur oynasini quyidagi ko`rinishda bo`ladi:
Fayllardan birini ochish uchun navigatsiya panelida ko'rsatilgan element
orqali yoki Ctrl + O tugmalaridan foydalanish mumkin.
C ++ tilida yozilgan dasturlar ishga tushirishdan oldin
kompilyatsiya qilinishi kerak va shundan keyingina
ijro etilishi kerak. Buning uchun Dev-C ++ uchta
piktogrammadan foydalanadi .
- Скомпилировать - dastur kodini oddiy
kompilyatsiya qilish. Ushbu bosqichda kompilyator
yozilgan kodni xatolar uchun tekshiradi va agar
hamma narsa tartibda bo'lsa, dastur kodini - *. exe
bajaruvchi faylga uzatadi. Agar xatolar bo'lsa, unda
kompilyator ishi to'xtatiladi va xatolarni topish va
tuzatishga yordam berish uchun " Компилятор "
oynasida xato kodlari ko'rsatiladi. Tezkor tugma - F9.
Выполнить - bu buyruq kodni qayta
kompilyatsiya qilmasdan takroran ishlash-
imizga imkon beradi. Tezkor tugma - F10.
-Скомпилировать и выполнить - agar
biz kompilyatsiya qilinganidan keyin
darhol dasturning bajarilishini konsolda
ko'rishni istasak, unda biz ushbu belgidan
foydalanamiz. Tezkor tugma - F11.
Barcha ishlaydigan dasturlar konsol oynasida ochiladi. Agar dasturda rus
tilidagi matnni ishlatsangiz, u holda bu matn konsolda tushunarsiz
belgilar bilan ifodalanadi.
Buni tuzatish uchun konsol oynasining yuqori qismiga sichqonchaning
o'ng tugmachasi bosish va paydo bo`lgan darchaning pastki qismida "
Свойства " punktini tanlash kerak.
" Шрифт “ varag`iga o`tiladi - va "Lucida Console" buyrug`i
tanlanadi. Konsol oynasida matnni ko'rsatish uchun shrift o`lchamini
o`zgartirish mumkin.
«Цвета“ varag`iga o`tiladi. Bu erda konsol oynasida fon rangini va
shrift rangini o'zgartirishimiz mumkin. Agar qora fonda oq shriftni afzal
ko'rsangiz, unda hech narsaga tegish kerak emas. O'zgarishlardan so'ng
dastur konsol oynasida quyidagi ko`rinishga keladi:
C++ TILI ALIFBOSI
C ++ dasturlash tili alifbosi quyidagilarni o'z ichiga oladi:
• Katta va kichik lotin harflari va pastki chiziqcha;
• 0 dan 9 gacha bo'lgan arab raqamlari;
• maxsus belgilar: "{}, | [] () + - /% *. \? <=>! & # -; ''
• bo'sh joy, tabulyatsiya, yangi qatorga o`tish belgilari.
Alifbo belgilaridan tilning leksemalari shakllanadi (mustaqil
ma'noga ega bo'lgan tilning minimal birligi):Leksemalar turlari:
• identifikatorlar;
• kalit so'zlar;
• operatsiyalar belgilari;
• o`zgarmas;
• ajratuvchi (qavs, vergul, bo'sh joy belgilari).
Identifikator
Identifikator - bu dastur ob'ektining nomi. Identifika-
tordagi birinchi belgi harf yoki pastki chiziq bo'lishi
mumkin. Identifikator ichida bo'shliq bo`lmasligi
kerak.
Masalan: v1, _sum
Identifikatorni tanlashda quyidagilarni yodda tuting:
• identifikator kalit so'zlar va ishlatiladigan standart
til ob'ektlarining nomlari bilan bir xil bo'lmasligi
kerak;
• identifikatorlarni pastki chiziq bilan boshlash tavsiya
etilmaydi, chunki bu holda ular tizim funktsiyalari yoki
o'zgaruvchilar nomlari bilan mos kelishi mumkin.
Kalit so'zlar
Kalit so'zlar - kompilyator uchun alohida ahamiyatga ega bo'lgan ajratilgan
identifikatorlar.
1-jadval. C ++ kalit so'zlar ro'yxati:
asm
auto
bool
break
case
catch
char
class
const
const_cast
continue
default
delete
do
double
dynamic_cast
else
enum
explicit
export
extern
false
float
for
friend
goto
if
inline
int
long
mutable
namespace
new
operator
private
protected
public
register
reinterpret_cast
return
short
signed
sizeof
static
static__cast
struct
switch
template
this
throw
true
try
typedef
typeid
typename
union
unsigned
using
virtual
void
volatile
wchar_t
while
Amal belgilari
Amal belgisi - operandlardagi harakatni belgilaydigan bir yoki bir
nechta belgilar. Amallar ishtirok etadigan operandalar soniga ko'ra
unar, binar va ternar turlarga bo'linadi.
O`zgarmaslar
O`zgarmaslarga qiymati o`zgarmaydigan kattaliklar kiradi.
Butun, haqiqiy, belgili va satr turidagi o`zgarmaslar mavjud.
Sharhlar
Sharhlar alohida qismlarni yoki butun dasturni tushuntirish uchun
ishlatiladi. Kompilyator sharhlarni e'tiborsiz qoldiradi.
C ++ dasturi sharhlarning ikkita shaklidan foydalanadi:
• sharh ikkita // belgi bilan boshlanadi. Masalan:
• sharh quyidagi belgilar orasida yoziladi / * ... * /,
masalan,
Ma'lumotlarning asosiy turlari:
Asosiy ma'lumotlar turlari quyidagilardan iborat:
• int (butun son);
• char (belgi);
• wchar_t (kengaytirilgan belgi);
• bool (mantiqiy);
• float (haqiqiy);
• double(ikkilangan aniqlikdagi haqiqiy).
Standart turlarning qiymatlar diapazonini aniqlash uchun to'rt
turdagi spetsifikatorlar ishlatiladi:
• short(qisqa);
• long(uzun);
• signed (imzolangan);
• unsigned(imzo qo'yilmagan).
Turlarning o'lchamlari va qiymatlarining o`zgarish oralig`i:
Tur O`lchami (байт) Qiymatning o`zgarish oralig`i
bool 1 true, false
signed char 1 -128 ... 127
unsigned char 1 0 ... 255
signed short int 2 -32768 ... 32767
unsigned short int 2 0 ... 65535
signed long int 4
-2 147 483 648 ...
2 147 483 647
unsigned long int 4 0 ... 4 294 967 295
float 4 3.4e-38 ... 3.4e+38
double 8 1.7e-308 ... 1.7e+308
long double 3.4e-4932 ... 3.4e+4932
Void turi
Void turi C ++ tilining asosiy turlaridan biri. Ushbu turning
qiymatlari bo'sh to`plamni tashkil etadi. Undan qiymatni
qaytarmaydigan funktsiyalarni aniqlash uchun, funktsiya
argumentining bo'sh ro'yxatini ko'rsatish uchun ishlatiladi.
C ++ dasturi funksiyalar, tavsiflar va preprotsessor
ko'rsatmalaridan iborat. (Preprocessor - kompilyatsiya qilishdan oldin
dastlabki kod faylini qayta ishlaydigan dastur).
Eng oddiy dasturni ko'rib chiqamiz:
Birinchi satrda ma’lumotlarni kiritish / chiqishni boshqarish
uchun zarur ma'lumotni o`z ichiga oluvchi <iostream> , sarlavha faylini
kiritish uchun #include direktivasidan foydalaniladi.
Keyingi using ko`rsatmasi yordamida C ++ tilining standart
kutubxonasi vositalarini belgilaydigan std nomlar fazosi islatiladi.
(Nomlar fazosi - bu identifikatorlarni mantiqiy guruhlash uchun
yaratilgan to'plamdir).
Har qanday C ++ dasturi main () funktsiya bilan boshlanadi.
Ushbu funksiya to'rt elementni o'z ichiga oladi:
• qaytish turi (bizning holatlarimizda int );
• funksiya nomi (main);
• Qavslar ichidagi parametrlar ro'yxati (bu holda ro'yxat bo'sh);
• figurali qavslar bilan chegaralangan, ko'rsatmalar blokini ifodalovchi
funksiya tanasi. Ko'rsatma - bu harakatni belgilaydigan va protsessor
ko'rsatma bo'lmagan dasturning qismi. Bizning dasturimizda funksiya tanasi ikkita ko'rsatmalarni o'z ichiga oladi: cout << "Hello, World!"; return 0;
Birinchidan, ekranga Hello, World satri
chiqariladi, so`ng dastur muvaffaqiyatli
bajarilganligini anglatuvchi 0 raqami
chiqariladi.
C ++ tilidagi har bir buyruq nuqta-vergul bilan
tugaydi. Quyidagi istisnolar mavjud:
# Belgi bilan boshlanadigan protsessor
protseduralari (masalan, , #include);
figurali qavs bilan chegaralangan
murakkab operatorlar va funksiyani aniqlash
bloklari - {}.
Ifodalar ba'zi qiymatlarni hisoblash
uchun ishlatiladigan dasturlarning asosiy
tarkibiy elementlaridir. Ifodalar
operandalar, amal belgilari va qavslardan
iborat. Operandlar hisoblash uchun
ma'lumotlarni beradi. Operatsiyalar,
ustuvorliklarga muvofiq, kerakli
harakatlarni aniqlaydi.
Ifodalarning tarkibiy qismlarini ko'rib
chiqing.
O'zgaruvchilar
O'zgaruvchi -ma'lum bir turdagi ma'lumotlar saqlanadigan
xotiraning nomlangan maydoni.
O'zgaruvchiga berilgan ma'lumot qiymat deb ataladi. Dastur
davomida o'zgaruvchining qiymati o'zgarishi mumkin. Ishlatishdan oldin
har qanday o'zgaruvchini e'lon qilish kerak, ya'ni, nomi, turi va
(ixtiyoriy) boshlang'ich qiymati e`lon qilinadi. O'zgaruvchini e`lon
qilishning umumiy shakli quyidagicha:
• tur o'zgaruvchilar ro`yxati
Bu yerda tur - bu ma'lumotlar turi;
o'zgaruvchilar ro`yxati - ko'rsatilgan turdagi o'zgaruvchan nomlar
ro'yxati.
O'zgaruvchilarni e’lon qilishga misollar:
• int i, k, x;
• double d, dBalans;
E’lon qilish jarayonida o'zgaruvchini inisializatsiya qilish mumkin:
• teng belgi bilan: int a = 10, b = 20;