1-Amaliy mashg’uloti Mavzu: Dasturlash tillarida ma’lumotlarning standart turlari. Funksiyalarni amalga oshirish


Download 40.51 Kb.
bet2/5
Sana08.11.2023
Hajmi40.51 Kb.
#1758788
1   2   3   4   5
Bog'liq
MTA 1-amaliy

Massivlar. Massiv bu bir xil toifadagi elementlarning tartibli ketma-ketligidir. Massiv bir yoki ikki o’lchovli bo’lishi mumkin. Bir o’lchovli massivlar C++ da quyidagicha e’lon qilinadi:
[elementlar_soni];
Masalan, int a[12];
Ikki o’lchovli massivlar esa quyidagicha ifodalanadi:
[qatorlar_soni][ustunlar_soni];
Masalan, int a[2][3];
1-misol. Massivni elyemyentlarini yig’indisini toping. Misolni yechilishi quyidagicha:

#include
using std::cout;
#include
main(){
float s,j;
int i;
s=0;
float a[5]={2,3,4,-1,-5};
for (i=0; i<5; ++i)
s = s + a[i];
cout<<"\n s = "<
getch();
return 0;
}

Natija:

S = 3




Vektorlar. Vektor bu bir xil toifadagi elementlarning tartibli ketma ketligi bo’lib, massivdan farqi uning o’lchami dastur bajarilishi davomida o’zgarishi mumkin,yani vektor bu dinamik massiv hisoblanadi.
Vektorlarni turlicha initsializatsiyalash usullari mavjud:
vector vec0; // bo’sh vektor
const int size = 8;
const int value = 1024;
vector vec1(size);//8 ta elementga ega, elementlar qiymatlari 0 ga teng
vectorvec2(size,value);//8 ta elementga ega, elementlar qiymatlari 1024 ga teng
inta[4] = { 0, 1, 1, 2 };
vector vec3(a,a+4);//4 ta elementga ega, elementlar qiymatlari a massivinikiga teng
vector vec4(vec2);//vec2 ning nusxasi
Vektorlarning massivga nisbatan qulayligi haqida quyidagilarni bayon qilmoqchimiz:

  • Vektorlar bilan ishlash uchun standart kutubxona funksiyalari mavjud bo’lib, ular yordamida turli amallarni siklsiz, bir qator kod yordamida bajarish mumkin. Ulardan ayrimlarini keltirib o’tamiz:

  • test.at(i) - test[i] kabi yozuv bilan bir xil, faqat bunda agar i-element mavjud bo’lmasa, dastur hatolik ko’rsatmaydi;

  • test.asign(n,m)–vektorga n ta elementni m qiymat bilan yozadi;

  • test.asign(start,end)–boshqa vektorning boshi va oxirini ko’rsatuvchi iteratorlar startdan end gacha bo’lgan elementlarni ushbu vektorga kiritadi;

  • test.front()–1-elementga murojaat;

  • test.back() –oxirgi elementga murojaat;

  • test.begin()–vektor 1-elementi iteratori;

  • test.end()–vektor oxiri iteratori(oxirgi elementidan keying adresni ko’rsatadi);

  • test.clear()–vektorni tozalash;

  • test.erase(i)yokitest.erase(start,end)–i-iterator elementini yoki start va end oralig’idagi elementlarni o’chiradi;

  • test.size()–vektordagi elementlar sonini aniqlaydi;

  • test.swap(test2) - test va test2 vektorlar elementlarini almashtiradi;

  • test.insert(a,b) - test vektoriga iterator ko’rsatayotgan a elementdan oldin b elementni kiritadi, bunda iterator kiritilgan elementni ko’rsatadi;

  • test.insert(a,n,b)b elementdan n ta kiritadi;

  • test.insert(a,start,end) - start va end iteratorlari oralig’idagi elementlarni a dan oldin kiritadi.

  • begin() va end() iteratorlari mos ravishdaxotirada vektorning birinchi elementini va oxirgi elementidan keyingi adresni ko‘rsatadi.Shu o‘rinda iterator nimaligiga aniqlik kiritsak. Iterator bi birorta o‘zgaruvchiga ko‘rsatkich hisoblanadi. Iterator bizga kerak qiymatlarni qayerdaligini biladi va uning qiymatini bizga chiqarib beradi. Itaratorlar asosan konteynerlar bilan ishlashda qo‘llaniladi. Iterator yaratish uchun quyidagini yozish kerak:

iterator_nomi::iterator nomi;
Masalan:vector ::iterator begin=vec.begin();
string::iterator end,cur;
Satrlar ham konteyner hisoblanadi. Endi iterator ko‘rsatayotgan element quyidagicha olinadi.
cout<<*cur<
Bu erda tushunarliki, * belgisi cur iteratorni emas, u ko‘rsatayotgan qiymatni ko‘rsatadi.
cur++; // keying elementga o‘tish
cur+=10; // <=>cur=cur+10 10 ta elementdan keyinga o‘tish
1-misol. Vektor va vektorlar ustida amal bajarish dasturi.
#include
#include
using namespace std;
int main()
{
vector q;
q.push_back(10); q.push_back(11); q.push_back(12);
vector v;
for(int i=0; i<5; ++i){
v.push_back(i);
}
// v vektori elementlari 0 1 2 3 4
std::vector::iterator it = v.begin() + 1;
// 2-el.dan oldin 33 ni kiritish:
it = v.insert(it, 33);
// v vektori elementlari 0 33 1 2 3 4
//q vektor elementlarini v vector 2-el.dan oldin kiritish:
v.insert(it, q.begin(), q.end());
// v vektori elementlari 0 10 11 12 33 1 2 3 4
it = v.begin() + 3;
// it v vektorning 4-el.ni ko‘rsatyapti
// 4-el.dan oldin 3 marta -1ni kiritamiz:
v.insert(it, 3, -1);
// v vektor el.lari 0 10 11 -1 -1 -1 12 33 1 2 3 4
// v vektorning 5 – el-tini o‘chiramiz
it = v.begin() + 4;
v.erase(it);
// v vektor el.lari 0 10 11 -1 -1 12 33 1 2 3 4
v.clear();//v vektorni o‘chirish
return 0;
}

Download 40.51 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5




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