C++ dasturlash tili o‘zgaruvchilarini o‘rganishni davom etamiz. Bu maqola, oldingi maqola(C++ dasturlash tilida o‘zgaruvchilar va ularning tiplari)ning davomi hisoblanadi. Bu va oldingi maqolalarni o‘qiganingizdan so‘ng, siz barcha o‘zgaruvchilar, ularning tiplari, o‘zgarmas(konstanta)lar, ularga oid ba’zi funksiyalar bilan to‘liq tanishgan bo‘lasiz.

Dastlab, konstantalar haqida yozib o‘taman. Nomidan ko‘rinib turibdiki, konstantalar o‘zgarmaslardir, ya’ni biror o‘zgaruvchi dasturda e’lon qilinib va qiymat berilib, keyinchalik bu o‘zgaruvchini o‘zgartirib bo‘lmasa bu o‘zgaruvchi konstanta deyiladi.

C++ dasturlash tilida simvolli konstantalarni 2 xil usulda e’lon qilish mumkin. Dastlabkisi «#define» nomli kalit so‘z orqali. Bu e’lon qilish eskirgan hisoblanadi, lekin ba’zi joylarda ishlatiladi. Misol ko‘ramiz.

#include "stdafx.h"
#include <iostream>
using namespace std;
int main()
{
#define mytest 15;
cout<<mytest;
return 0;
// mytest=16; xato
}

NATIJA: 15

Agar mytest nomli konstantani o‘zgartirishga harakat qilsak, xatolik haqida ma’lumot chiqadi. Ko‘rib turganingizdek, e’lon qilishning bu turida konstanta tipi ko‘rsatilmayapti, bu degani qayerda «mytest» bo‘lsa, o‘shani o‘rniga 15 soni qo‘yib chiqiladi, konstanta ishlatilayotgan joyda konstantaning mos kelishi yoki kelmasligiga qarab o‘tirilmaydi.

Konstantani e’lon qilishning 2 usuli, «const» nomli kalit so‘z orqalidir. Bu turi zamonaviyroq va tushunarliroq hisoblanadi. Misol ko‘ramiz.

#include "stdafx.h"
#include <iostream>
using namespace std;
int main()
{
const int mytest_1 = 15;
cout<<mytest_1;
return 0;
}

NATIJA: 15

Bu usulda konstanta tipi e’lon qilinmoqda. Bu orqali bir necha xatoliklarni oldini olish mumkin bo‘ladi. Kompilyator ham konstanta ishlatiladigan joylarni nazorat qilaoladi. Konstantalarni e’lon qilishda C++ning kalit so‘zlaridan foydalanmang(xatolik chiqadi).

C++ dasturlash tilida bir necha konstantalarni ketma-ket (перечислений — tarjimasini topmadim)e’lon qilib ketish mumkin. Bu ishni bajarishda bizga «enum» kalit so‘zi yordam beradi. Birdaniga misol ko‘ramiz.

enum club{manyunayted, mancity, liverpool, chelsea}

Bu qatorda, club nomli tip yaratilmoqda va shu tipga tegishli 4 ta konstanta(manyunayted,..) e’lon qilinmoqda. Bu konstantalarning qiymati «0» dan boshlab ketma-ket berib boriladi, ya’ni manyunayted=0, mancity=1, liverpool=2,… Dasturda ko‘ramiz:

#include "stdafx.h"
#include <iostream>
using namespace std;
int main()
{
enum club{manyunayted, mancity, liverpool, chelsea};
cout<<manyunayted<<" "<<mancity<<" "<<liverpool<<" "<<chelsea;
return 0;
}

NATIJA: 0 1 2 3

Manimcha hammasi tushunarli. Davom etamiz. Bu ketmaketlikni o‘zingiz buzib, boshqa qiymatlarni ham bersangiz bo‘ladi, misol uchun

enum club{manyunayted=200, mancity, liverpool=4, chelsea};

Bu holatda konstanta qiymatlar quyidagi sonlarni qabul qiladi:manyunayted=200, mancity=201, liverpool=4, chelsea=5. «Enum» kalit so‘zini ishlatmasdan quyidagicha ham e’lon qilish mumkin.

const int manyunayted=200;
const int mancity=201;
const int liverpool=4;
const int chelsea=5;

Bu dasturlash tilida, foydalanuvchi uzun bo‘lgan o‘zgaruvchi tiplarini, boshqa nom bilan atash orqali o‘ziga yengillik qilib olishi mumkin. Misol uchun, short int tipini mytype tipiga o‘zgartirish mumkin bo‘ladi. Buni bajarishda bizga «typedef» kalit so‘zi yordam beradi.

#include "stdafx.h"
#include <iostream>
using namespace std;
typedef short int mytype;
int main()
{
mytype test_1 = 15;
int test_2 = 20;
cout<<test_1+test_2;
return 0;
}

NATIJA:35

C++ dasturlash tili bir nechta simvollarni, matnlarni tahrirlash uchun foydalanadi. Bu degani matn ichida shu simvollarni ishlatsangiz, bu simvollar tahrirlash vazifasini bajaradi. Bu maxsus simvollar quyidagilardan iborat.

\n bu simvoldan keyingi matnni pastki qatorga o‘tkazadi

\t — tabulyatsiya

\b — bitta pozitsiyaga qaytish

— qo‘shtirnoq

\ — opostrf

\? — so‘roq belgisi

\\ — teskari slesh

Bu simvollarga misol ko‘rib, bu maqolani tugatamiz.

#include "stdafx.h"
#include <iostream>
using namespace std;
int main()
{
cout<<"Manchester\nUnited";
cout<<" "<<"Manchester\tUnited";
cout<<"\"Manchester United\"";
return 0;
}

NATIJA: Manchester
United Manchester United»manchester United»