Reja. Massiv haqida tushuncha va uning qo’llanish holatlari 2


Massivdagi  ma’lumotlarni  o’zgartirish


Download 0.85 Mb.
Pdf ko'rish
bet8/13
Sana08.01.2022
Hajmi0.85 Mb.
#248738
1   ...   5   6   7   8   9   10   11   12   13
Bog'liq
8 ma’ruza Massivlar bilan ishlash Murakkab turlar massivlar, bir

Massivdagi  ma’lumotlarni  o’zgartirish.  Oldingi  dasturning  kodida 

foydalanuvchi  ma'lumotlari  qatorga  kiritilmagan.  Ushbu  massivdagi  elementga 

butun sonni tayinlash sintaksisi butun o'zgaruvchiga qiymat berish sintaksisiga juda 

o'xshaydi.  Masalan,  butun  qiymat  o'zgaruvchisiga  2017  qiymatini  berish 

quyidagicha ko'rinishda bo’ladi: 

 

int thisYear; 

thisYear = 2017; 

 

Ko'rib chiqilgan qatordagi to'rtinchi elementga 2017 qiymatini berish shunga 

o'xshash bo’ladi: 

myNumbers[3] = 2017; 

 

Quyidagi  misolda  massiv  uzunligini  e'lon  qilishda  konstantalardan 

foydalanishni,  shuningdek,  dastur  tuzish  jarayonida  massivning  alohida 

elementlariga qiymatlar berish namoyish etilgan. 

 



#include  

using namespace std; 

 

int main() 



    const int ARRAY_LENGTH = 5; 

    int myNumbers[ARRAY_LENGTH] = {5, 10, 0, -101, 20}; 

    int moreNumbers[ARRAY_LENGTH*ARRAY_LENGTH]; 

    cout << "O'zgarishtirish uchun element indeksini kiriting: "; 

    int elementIndex = 0; 

    cin >> elementIndex; 

    cout << "Yangi qiymat kiriting: "; 

    int newValue = 0; 

    cin >> newValue; 

    myNumbers[elementIndex] = newValue; 

    moreNumbers[elementIndex] = newValue; 

    cout <<"myNumbers ning "<

    cout << myNumbers[elementIndex] << endl; 

    cout <<"moreNumbersning "<

    cout << moreNumbers[elementIndex]<< endl; 

    return 0; 

 



Massivning  uzunligi  butun  qiymatga  ega  bo'lishi  kerak.  Ushbu  qiymat 

ARRAY_LENGTH konstantasida ko’rsatilgan, shuning uchun myNumbers massivi 

5  ta  elementga  ega  deb  e'lon  qilinadi,  moreNumbers  massivida  esa  25  ta  element 

mavjud.  

C++  dasturlashda  ko’pchilik  holatda  dasturlashni  endi  boshlovchilar  beshta 

butun sonli massivdagi 5-indeks yordamida beshinchi elementga qiymat berishadi. 

Ushbu  element  allaqachon  massivdan  tashqarida  va  kompilyatsiya  qilingan  kod 

aslida besh elementli qatorning oltinchi elementiga kirishga harakat qilmoqda. 

Ushbu  turdagi  xatolarni  ba'zan  to'siq-post  (fence-post  error)  xatosi  deb 

atashadi.  Ushbu  nom  qo'riqlash  postlari  soni  qo'riqlanadigan  hududlar  sonidan 

bittaga ko'pligi bilan bog'liq. 

 

Yuqoridagi  misolda  juda  muhim  narsa  yetishmayapti:  foydalanuvchi 



tomonidan  kiritilgan  indeksni  massiv  chegaralari  bilan  tekshirish.  Avvalgi  dastur 

elementIndex  o'zgaruvchisi  myNumbers  massivi  uchun  0  dan  4  gacha  va 

moreNwers massivi uchun 0 dan 24 gacha bo'lganligini tekshirishi kerak va boshqa 

qiymatlarni  bekor  qilish  kerak.  Bunday  tekshiruvning  yo'qligi  foydalanuvchiga 

massivdan  tashqarida  qiymat  belgilashga  imkon  beradi.  Bu,  ehtimol,  dasturning 

ishdan chiqishiga va eng yomon holatda operatsion tizimning ishdan chiqishiga olib 

kelishi mumkin. 

Buning uchun dasturda if shart operatoridan foydalanishimiz lozim. Mustaqil 

ravishda if operatorini qo’shgan holda dasturni o’zgartirishga harakat qilib ko’ring. 



0-panel 

1-panel 


2-panel 

3-panel 


4-panel 

5-panel 


0-ustun 

1-ustun 


2-ustun 

0-satr 


1-satr 

 

Har  doim  massivlarni  initsializatsiya  qilish  tavsiya  etiladi,  aks  holda  ular 



oldindan  aytib  bo'lmaydigan  qiymatlarni  o'z  ichiga  olishi  mumkin.  Siz  Dastur 

davomida  foydalanilayotgan  indekslar  massivdan  tashqarida  yoki  yo'qligini  har 

doim tekshirib turish lozim.  

 


Download 0.85 Mb.

Do'stlaringiz bilan baham:
1   ...   5   6   7   8   9   10   11   12   13




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