Массивлар Массив – бир хил типдаги элементлар гуруҳи бўлиб, битта умумий ном ва хотирага эга. Хоссалари


Динамик массивлар қаерда ишлатилади


Download 0.98 Mb.
bet4/4
Sana09.10.2023
Hajmi0.98 Mb.
#1696203
1   2   3   4
Bog'liq
8-Massiv

Динамик массивлар қаерда ишлатилади
  • Масала. Массив ўлчамини киритинг ва унинг элементларини киритинг. Массивни тартибланг ва уни экранга чиқаринг.
  • Муаммо:
  • массив ўлчами олдиндан маълум эмас.
  • Ечиш усуллари:
    • Хотирани ортиғи билан ажратиш
    • Хотирани ўлчов аниқ бўлганда керагича ажратиш.
  • Алгоритм:
    • Массив ўлчовини киритиш;
    • Хотира ажратиш ;
    • Массив элементларини киритиш;
    • Массивни тартиблаш ва экранга чиқариш;
    • Массивни хотирадан ўчириш.
  • http://acm.tuit.uz
  • Дастур
  • #include
  • void main()
  • {
  • int *A, N;
  • printf (“Massiv o’lchovini kiriitng > ");
  • scanf ("%d", &N);
  • A = new int [N];
  • if ( A == NULL ) {
  • printf(“хотира ажратишда муаммо");
  • return;
  • }
  • for (i = 0; i < N; i ++ ) {
  • printf ("\nA[%d] = ", i+1);
  • scanf ("%d", &A[i]);
  • }
  • ...
  • delete pI;
  • }
  • delete A;
  • A = new int [N];
  • Динамик хотира ажратиш
  • Хотирани ўчириш
  • for (i = 0; i < N; i ++ ) {
  • printf ("\nA[%d] = ", i+1);
  • scanf ("%d", &A[i]);
  • }
  • оддий массив каби ишлайди !
  • if ( A == NULL ) {
  • printf(“xotira ajratish muammo");
  • return;
  • }
  • текшир
  • Си тилида хотирадан жой ажратиш учун malloc ва calloc функцияларидан фойдаланилади.
  • C++тилида new операторидан фойдаланилади;
  • курсаткич = new тур [ўлчами];
  • new оператори натижасини, яъни ажратилган хотира блоки адресини кўрсаткичда сақлаш керак;
  • агар new оператори (NULL) қийматни қайтарса, демак хотира ажратиш амалга ошмаганлигини билдиради;
  • динамик массив билан хам худди статик массив каби ишланади;
  • динамик хотирани бўшатиш учун delete операторидан фойдаланилади :
  • delete кўрсаткич;
  • http://acm.tuit.uz
  • Хотира билан ишлашдаги хатолар.
  • Хотиранинг бошқа жойига ёзиш:
    • хотира ажратилмаган,аммо массив шу жойдан фойдаланмоқчи.
    • Нима қилиш керак: курсаткични NULL га текшириш керак .
  • Массив чегараларидан чиқиб кетиши:
    • массив элементининг индексини хато берилиши билан мурожаат қилиш, массивга элементларини киритаётганда чегарадан чиқиб кетиши.
    • Нима қилиш керак: массивнинг чегарадан чиқишини текширувчи транслятор функциясини ишлатиш керак кўрсаткич иккинчи марта ўчирилди :
    • хотира структураси бузилди.
    • Нима қилиш керак: ўчирилган кўрсаткичга NULL қийматни бериб текшириш керак.
  • http://acm.tuit.uz

Download 0.98 Mb.

Do'stlaringiz bilan baham:
1   2   3   4




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