Dsi lec5

G
Лекц №5


   Санах ойн динамик
хуваарилалт ба өгөгдлийн
      хийсвэрлэлт    LOGO
Хичээлийн агуулга




Багш: Т.Гантөр
Санах ойн динамик хуваарилалт
 Статик хувьсагчид нь програмыг ажиллаж
  эхлэхэд санах ойд хуваарилагдан, тогтмол
  зайн эзлэн байрлах бөгөөд програмыг
  ажиллаж     дуусахад     санах    ойгоос
  чөлөөлөгддөг.
 Програмын биелэлтийн явцад хувьсагчид
  зориулан санах ой хуваарилж болдог.




Багш: Т.Гантөр
Санах ойн динамик хуваарилалт
 Програмын биелэлтийн явцад санах ойн мужид
  хувьсагчдад зориулан шинээр зай нөөцөлж, мөн
  чөлөөлж болдог.
 Ийм хувьсагчдыг динамик хувьсагч, үүссэн
  санах ойн мужийг динамик муж гэж
  нэрлэдэг.
 C++ хэлэнд динамик хувьсагчийг санах ойд
  хуваарилах       болон     санах  ойгоос
  чөлөөлөхдөө        new      болон   delete
  операторуудыг харгалзан ашиглана.


Багш: Т.Гантөр
Санах ойн динамик хуваарилалт - new
 New оператор нь аргументаараа авсан төрлийн
  өгөгдийг хадгалахад хүрэлцэхүйц зайг динамик
  санах ойгоос нөөцлөн, түүний хаягийг буцаадаг.

 New оператороор хуваарилагдсан хувьсагчид нь
  санах ойн heap мужид байрлана.

 Динамикаар хуваарилагдсан хувьсагч нь нэргүй
  байдаг бөгөөд шууд хаяглагдаж чаддаггүй.
  Тиймээс new оператороос буцаасан заагч
  төрлийн утгаар шууд бусаар хаягладаг.

Багш: Т.Гантөр
Санах ойн динамик хуваарилалт - new
 Жишээ:
  intPointer=new int;




Багш: Т.Гантөр
Санах ойн динамик хуваарилалт - new
 Заагч хувьсагч нь ямар нэг зүйл заахгүйгаар
  хоосон утгыг заах шаардлага гардаг. Энэ
  тохиолдолд stdlib.h санд агуулагдах NULL
  тогтмол утгыг ашиглана.
 Жишээ:
         bool* truth = NULL;
         float* money = NULL;




Багш: Т.Гантөр
Санах ойн динамик хуваарилалт - new
 Жишээ:
 truth = new bool;
 *truth = true;
 money = new float;
 *money = 33.46;
 float* myMoney=new float;




Багш: Т.Гантөр
Санах ойн динамик хуваарилалт - new
 Жишээ:
   *myMoney = *money;




Багш: Т.Гантөр
Санах ойн динамик хуваарилалт - new
 Жишээ:
   myMoney = money;




Багш: Т.Гантөр
Санах ойн динамик хуваарилалт - delete
 Delete оператор нь нөөцөлсөн зайг чөлөөлдөг ба
  уг санах ойн байрлалыг дахин ашиглах
  боломжтой болгоно.

 Санах ойн ашиглалтыг сайжруулах, програмын
  найдвартай ажиллагааг хангах үүднээс new
  оператороор нөөцөлсөн санах ойн хэсгийг
  ашиглаж дууссаны дараа delete оператороор
  чөлөөлж байх хэрэгтэй.




Багш: Т.Гантөр
Санах ойн динамик хуваарилалт - new
 Жишээ:
   delete myMoney;




Багш: Т.Гантөр
Динамик массив
 Массивыг санах ойд хүссэн хэмжээтэйгээр
  хуваарилж, санах ойгоос чөлөөлж, дахин өөр
  хэмжээтэйгээр санах ойд хуваарилах зэргээр
  ашиглаж болно. Ийм массивыг динамик массив
  гэнэ.

 Програмд динамик массив ашиглах нь санах ойг
  зүй зохистой ашиглах давуу талтай




Багш: Т.Гантөр
Динамик массив
 Динамик массивыг зарлахдаа:
   Заагчийн_нэр= new заагчийн_төрөл[хэмжээ];
 Жишээ:
     int maxStack=5;
     int * items;
     items = new ItemType[maxStack];




Багш: Т.Гантөр
Динамик массив
 Динамик массивыг зарлахдаа:
   Заагчийн нэр= new заагчийн төрөл [хэмжээ]
 Жишээ:
     int maxStack=5;
     int * items;
     items = new ItemType[maxStack];




Багш: Т.Гантөр
Динамик массив
 Динамик массивыг санах ойгоос чөлөөлөхдөө:
   delete [] Заагчийн_нэр;
 Жишээ:
     delete [] items;




Багш: Т.Гантөр
Өгөгдлийн хийсвэр төрөл
 Програм бичих гэдэг нь бодит амьдрал дахь
  ямар нэг асуудлыг загварчлах ажил юм.

 Гэвч аливаа асуудал нь маш ерөнхий бүрхэг
  байдаг учраас юуны өмнө уг асуудалд
  шаардлагатай ба шаардлагагүй зүйлсийг ялган
  тодорхойлох, улмаар асуудлын хийсвэр ойлголт
  буюу загварыг гарган авна.

 Загварчлалын энэ процессыг хийсвэрлэлт гэж
  нэрлэнэ

Багш: Т.Гантөр
Өгөгдлийн хийсвэр төрөл
 Загвар нь
      • Уг асуудалд шаардлагатай өгөгдөлүүд
      • Уг өгөгдөлд хийгдэх үйлдлүүдээс тогтоно.

 Өөрөөр хэлбэл хийсвэрлэлт гэдэг нь аливаа
  тавигдсан   асуудлыг    түүний   өгөгдлүүдийг
  үйлдлүүдийн хамтаар загварчлахыг хэлнэ




Багш: Т.Гантөр
Өгөгдлийн хийсвэр төрөл
 Өгөгдөлүүдэд      зөвхөн    тэдгээрт    хийгдэх
  үйлдлүүдээр хандана. Ийм шинж чанар бүхий
  загварчлалыг өгөгдлийн хийсвэр төрөл гэнэ.
 Өгөгдлийн хийсвэр төрөл нь өгөгдлийг гадны
  орчноос далдалдаг ба зөвхөн үйлдэл нь гадна
  орчинтой холбогдон өгөгдөл хандах гүүр болж
  өгдөг.
 Өгөгдлийн хийсвэр төрөл нь өгөгдөл болон
  тэдгээрт хийгдэх багц үйлдлүүдийг агуулдаг.




Багш: Т.Гантөр
Өгөгдлийн хийсвэр төрөл


 Өгөгдлийн бүтэц нь өгөгдөл, тэдгээрийн зохион
  байгуулалтаас гадна уг өгөгдлүүдэд хийгдэх
  үйлдлүүдээр тодорхойлогддог.

 Өгөгдлийн бүтэц болон тэдгээрт хийгдэх
  үйлдлүүдийг загварчлах үйл явц нь ерөөсөө
  өгөгдлийн хийсвэр төрөл тодорхойлох үйл явц
  юм.



Багш: Т.Гантөр
Өгөгдлийн хийсвэр төрөл
 Өгөгдлийн хийсвэр төрлийг С++ програмчлалын
  хэлэнд классаар илэрхийлдэг.
 Класс гэдэг нь нууцлагдсан өгөгдөл ба
  функцуудыг багцлан агуулсан өгөгдлийн нийлэл
  төрөл юм.
 Классыг class нөөц үгээр тодорхойлно. Класст
  зарлагдсан хувьсагчдыг классын гишүүн өгөгдөл,
  класст зарлагдсан функцуудыг классын гишүүн
  функц гэнэ




Багш: Т.Гантөр
DynArray хийсвэр төрөл
class DynArray{
    int *a, len;
public:
    DynArray(int length);
    ~DynArray();
    int& operator[](int n);
    int size();
    void resize(int length);
    void print();
};



Багш: Т.Гантөр
DynArray хийсвэр төрөл
DynArray::DynArray(int length){
    len=length;
    a=new int[len];
    for(int i=0;i<len;i++) a[i]=0;
}

DynArray::~DynArray(){
    delete []a;
}




Багш: Т.Гантөр
DynArray хийсвэр төрөл
int& DynArray::operator[](int i){
    if ( i<0 || i>=len){
         cout<<"Aldaa: "<<i<<" hemjee
                          heterlee.n";
         exit(0);
         }
    return a[i];
}

int DynArray::size(){
    return len;
}

Багш: Т.Гантөр
DynArray хийсвэр төрөл
void DynArray::resize(int length){
    if (len==length) return;
    int newlen=length;
    int *newa= new int[newlen];
    int min=(newlen<len)? newlen:len;
    for(int i=0;i<min; i++)
         newa[i]=a[i];
    for(i=min; i<newlen;i++)
         newa[i]=0;
    len=newlen;
    a=newa;
    }

Багш: Т.Гантөр
DynArray хийсвэр төрөл
void DynArray::print(){
    for(int i=0; i<len;i++)
         cout<<a[i]<<",";
    cout<<endl;

}




Багш: Т.Гантөр
DynArray хийсвэр төрөл
void main(){
          DynArray my(3);
          for(int i=0; i<3; i++)my[i]=i;
          my.print();
          cout<<"hemjee: "<<my.size()<<endl;
          my.resize(5);
          cout<<"hemjee: "<<my.size()<<endl;
          my.print();
          my[3]=3; my[4]=4;
          my.print();
          my.resize(10);
          my.print();
          my[7]=3; my[9]=4;
          my.print();
Багш: Т.Гантөр
1 de 27

Recomendados

Dsi lec4 por
Dsi lec4Dsi lec4
Dsi lec4ggmo86
2.2K visualizações44 slides
U.cs101 алгоритм программчлал-13 por
U.cs101   алгоритм программчлал-13U.cs101   алгоритм программчлал-13
U.cs101 алгоритм программчлал-13Badral Khurelbaatar
2.9K visualizações30 slides
Өгөгдлийн бүтэц 8,9 por
Өгөгдлийн бүтэц 8,9Өгөгдлийн бүтэц 8,9
Өгөгдлийн бүтэц 8,9International Ulaanbaatar University
977 visualizações38 slides
Өгөгдлийн бүтэц 2-3 por
Өгөгдлийн бүтэц 2-3Өгөгдлийн бүтэц 2-3
Өгөгдлийн бүтэц 2-3International Ulaanbaatar University
419 visualizações33 slides
U.cs101 алгоритм программчлал-2 por
U.cs101   алгоритм программчлал-2U.cs101   алгоритм программчлал-2
U.cs101 алгоритм программчлал-2Badral Khurelbaatar
10.6K visualizações31 slides
Лекц 9(Заагч) por
Лекц 9(Заагч)Лекц 9(Заагч)
Лекц 9(Заагч)Мөнхбаярын Цэцэнцэнгэл
3.4K visualizações21 slides

Mais conteúdo relacionado

Mais procurados

7 8 por
7 87 8
7 8Usukhuu Galaa
1.8K visualizações54 slides
Давталттай алгоритмын бодлогууд por
Давталттай алгоритмын бодлогуудДавталттай алгоритмын бодлогууд
Давталттай алгоритмын бодлогуудБаярсайхан Л
24K visualizações10 slides
Лекц №10 por
Лекц №10Лекц №10
Лекц №10Amarsaikhan Tuvshinbayar
293 visualizações36 slides
Lec4 хereglegchiinpunkts por
Lec4 хereglegchiinpunktsLec4 хereglegchiinpunkts
Lec4 хereglegchiinpunktsTuruu Tsogt
2.9K visualizações16 slides
C lects (4) por
C lects (4)C lects (4)
C lects (4)Mongoo Dashjav
820 visualizações31 slides
U.cs101 алгоритм программчлал-3 por
U.cs101   алгоритм программчлал-3U.cs101   алгоритм программчлал-3
U.cs101 алгоритм программчлал-3Badral Khurelbaatar
12.9K visualizações54 slides

Mais procurados(20)

7 8 por Usukhuu Galaa
7 87 8
7 8
Usukhuu Galaa1.8K visualizações
Давталттай алгоритмын бодлогууд por Баярсайхан Л
Давталттай алгоритмын бодлогуудДавталттай алгоритмын бодлогууд
Давталттай алгоритмын бодлогууд
Баярсайхан Л24K visualizações
Lec4 хereglegchiinpunkts por Turuu Tsogt
Lec4 хereglegchiinpunktsLec4 хereglegchiinpunkts
Lec4 хereglegchiinpunkts
Turuu Tsogt2.9K visualizações
C lects (4) por Mongoo Dashjav
C lects (4)C lects (4)
C lects (4)
Mongoo Dashjav820 visualizações
U.cs101 алгоритм программчлал-3 por Badral Khurelbaatar
U.cs101   алгоритм программчлал-3U.cs101   алгоритм программчлал-3
U.cs101 алгоритм программчлал-3
Badral Khurelbaatar12.9K visualizações
U.cs101 алгоритм программчлал-14 por Badral Khurelbaatar
U.cs101   алгоритм программчлал-14U.cs101   алгоритм программчлал-14
U.cs101 алгоритм программчлал-14
Badral Khurelbaatar3.2K visualizações
Database 3 por Usukhuu Galaa
Database 3Database 3
Database 3
Usukhuu Galaa8.2K visualizações
U.cs101 алгоритм программчлал-4-zasah por Badral Khurelbaatar
U.cs101   алгоритм программчлал-4-zasahU.cs101   алгоритм программчлал-4-zasah
U.cs101 алгоритм программчлал-4-zasah
Badral Khurelbaatar2.7K visualizações
U.cs101 алгоритм программчлал-5 por Badral Khurelbaatar
U.cs101   алгоритм программчлал-5U.cs101   алгоритм программчлал-5
U.cs101 алгоритм программчлал-5
Badral Khurelbaatar1K visualizações
тооллын сис 10т 2т por Narantungaa
тооллын сис 10т 2ттооллын сис 10т 2т
тооллын сис 10т 2т
Narantungaa10.2K visualizações
9.эрэмбэлэлтийн аргууд por Bayalagmaa Davaanyam
9.эрэмбэлэлтийн аргууд9.эрэмбэлэлтийн аргууд
9.эрэмбэлэлтийн аргууд
Bayalagmaa Davaanyam4K visualizações
It101 lec6 10.06 por Nergui Batjargal
It101 lec6 10.06It101 lec6 10.06
It101 lec6 10.06
Nergui Batjargal6.3K visualizações
u.cs101 "Алгоритм ба програмчлал" Лекц №4 por Khuder Altangerel
u.cs101 "Алгоритм ба програмчлал" Лекц №4u.cs101 "Алгоритм ба програмчлал" Лекц №4
u.cs101 "Алгоритм ба програмчлал" Лекц №4
Khuder Altangerel6.4K visualizações
C cons por Onon Tuul
C consC cons
C cons
Onon Tuul18.8K visualizações
C++ vndsen oilgolt хичээл 1 por Urantuya Purevtseren
C++ vndsen oilgolt хичээл 1C++ vndsen oilgolt хичээл 1
C++ vndsen oilgolt хичээл 1
Urantuya Purevtseren16.7K visualizações
Pp Lect4 5 por ulziibaatar
Pp Lect4 5Pp Lect4 5
Pp Lect4 5
ulziibaatar971 visualizações
Pp Lect3 1 por ulziibaatar
Pp Lect3 1Pp Lect3 1
Pp Lect3 1
ulziibaatar767 visualizações

Destaque

Dsi lec8-copy por
Dsi lec8-copyDsi lec8-copy
Dsi lec8-copyggmo86
1.5K visualizações41 slides
Dsi lec6,7 por
Dsi lec6,7Dsi lec6,7
Dsi lec6,7ggmo86
2.5K visualizações143 slides
Dsi lec9-copy por
Dsi lec9-copyDsi lec9-copy
Dsi lec9-copyggmo86
1.7K visualizações28 slides
Dsi lec3 por
Dsi lec3Dsi lec3
Dsi lec3ggmo86
2.7K visualizações38 slides
Dsi lec2 por
Dsi lec2Dsi lec2
Dsi lec2ggmo86
2.4K visualizações33 slides
Dsi lec10 por
Dsi lec10Dsi lec10
Dsi lec10ggmo86
1.7K visualizações33 slides

Destaque(14)

Dsi lec8-copy por ggmo86
Dsi lec8-copyDsi lec8-copy
Dsi lec8-copy
ggmo861.5K visualizações
Dsi lec6,7 por ggmo86
Dsi lec6,7Dsi lec6,7
Dsi lec6,7
ggmo862.5K visualizações
Dsi lec9-copy por ggmo86
Dsi lec9-copyDsi lec9-copy
Dsi lec9-copy
ggmo861.7K visualizações
Dsi lec3 por ggmo86
Dsi lec3Dsi lec3
Dsi lec3
ggmo862.7K visualizações
Dsi lec2 por ggmo86
Dsi lec2Dsi lec2
Dsi lec2
ggmo862.4K visualizações
Dsi lec10 por ggmo86
Dsi lec10Dsi lec10
Dsi lec10
ggmo861.7K visualizações
Dsi lec12 por ggmo86
Dsi lec12Dsi lec12
Dsi lec12
ggmo861.6K visualizações
Dsi lec1 por ggmo86
Dsi lec1Dsi lec1
Dsi lec1
ggmo861.7K visualizações
Dsi lec13 por ggmo86
Dsi lec13Dsi lec13
Dsi lec13
ggmo861.7K visualizações
Dsi lec11 por ggmo86
Dsi lec11Dsi lec11
Dsi lec11
ggmo862.5K visualizações
Dsi lec14 por ggmo86
Dsi lec14Dsi lec14
Dsi lec14
ggmo862.2K visualizações
Sodko111 por sodko27
Sodko111Sodko111
Sodko111
sodko271.9K visualizações
Datastructure algoritm por Nergui Batjargal
Datastructure algoritmDatastructure algoritm
Datastructure algoritm
Nergui Batjargal2.4K visualizações

Similar a Dsi lec5

Mathematica Анхны тойм мэдэгдэхүүн.pptx por
Mathematica Анхны тойм мэдэгдэхүүн.pptxMathematica Анхны тойм мэдэгдэхүүн.pptx
Mathematica Анхны тойм мэдэгдэхүүн.pptxAltansukh Mainbayar
11 visualizações24 slides
001cclass 120926194905-phpapp02 por
001cclass 120926194905-phpapp02001cclass 120926194905-phpapp02
001cclass 120926194905-phpapp02Алдарболд Э.
271 visualizações29 slides
Лекц 6 - 7 por
Лекц 6 - 7Лекц 6 - 7
Лекц 6 - 7Chinzorig Undarmaa
3.6K visualizações38 slides
Pl lecture8 por
Pl lecture8Pl lecture8
Pl lecture8ganzorigb
455 visualizações55 slides
Pl lecture8 por
Pl lecture8Pl lecture8
Pl lecture8ganzorigb
435 visualizações55 slides
Ci hel por
Ci helCi hel
Ci helEnkhtuvshin Byambaa
3.5K visualizações23 slides

Similar a Dsi lec5(20)

Mathematica Анхны тойм мэдэгдэхүүн.pptx por Altansukh Mainbayar
Mathematica Анхны тойм мэдэгдэхүүн.pptxMathematica Анхны тойм мэдэгдэхүүн.pptx
Mathematica Анхны тойм мэдэгдэхүүн.pptx
Altansukh Mainbayar11 visualizações
Лекц 6 - 7 por Chinzorig Undarmaa
Лекц 6 - 7Лекц 6 - 7
Лекц 6 - 7
Chinzorig Undarmaa3.6K visualizações
Pl lecture8 por ganzorigb
Pl lecture8Pl lecture8
Pl lecture8
ganzorigb455 visualizações
Pl lecture8 por ganzorigb
Pl lecture8Pl lecture8
Pl lecture8
ganzorigb435 visualizações
U.cs101 лаборатори 8-1 por Ganbaatar ch
U.cs101 лаборатори 8-1U.cs101 лаборатори 8-1
U.cs101 лаборатори 8-1
Ganbaatar ch803 visualizações
Mathcad beginning-part1 por Babaa Naya
Mathcad beginning-part1Mathcad beginning-part1
Mathcad beginning-part1
Babaa Naya142 visualizações
Lec5 angi por Turuu Tsogt
Lec5 angiLec5 angi
Lec5 angi
Turuu Tsogt1.2K visualizações
U.cs101 лаборатори 8 por Ganbaatar ch
U.cs101 лаборатори 8U.cs101 лаборатори 8
U.cs101 лаборатори 8
Ganbaatar ch165 visualizações
Pp Lect9 10 1 por ulziibaatar
Pp Lect9 10 1Pp Lect9 10 1
Pp Lect9 10 1
ulziibaatar689 visualizações
Lecture3 por orgil
Lecture3Lecture3
Lecture3
orgil434 visualizações
Лаборатор-3 por bsuren_bn
Лаборатор-3Лаборатор-3
Лаборатор-3
bsuren_bn1.4K visualizações
U.cs101 laborator 9 por Ganbaatar ch
U.cs101 laborator 9U.cs101 laborator 9
U.cs101 laborator 9
Ganbaatar ch751 visualizações
Pp Lect10 11 por ulziibaatar
Pp Lect10 11Pp Lect10 11
Pp Lect10 11
ulziibaatar519 visualizações

Dsi lec5

  • 1. Лекц №5 Санах ойн динамик хуваарилалт ба өгөгдлийн хийсвэрлэлт LOGO
  • 3. Санах ойн динамик хуваарилалт  Статик хувьсагчид нь програмыг ажиллаж эхлэхэд санах ойд хуваарилагдан, тогтмол зайн эзлэн байрлах бөгөөд програмыг ажиллаж дуусахад санах ойгоос чөлөөлөгддөг.  Програмын биелэлтийн явцад хувьсагчид зориулан санах ой хуваарилж болдог. Багш: Т.Гантөр
  • 4. Санах ойн динамик хуваарилалт  Програмын биелэлтийн явцад санах ойн мужид хувьсагчдад зориулан шинээр зай нөөцөлж, мөн чөлөөлж болдог.  Ийм хувьсагчдыг динамик хувьсагч, үүссэн санах ойн мужийг динамик муж гэж нэрлэдэг.  C++ хэлэнд динамик хувьсагчийг санах ойд хуваарилах болон санах ойгоос чөлөөлөхдөө new болон delete операторуудыг харгалзан ашиглана. Багш: Т.Гантөр
  • 5. Санах ойн динамик хуваарилалт - new  New оператор нь аргументаараа авсан төрлийн өгөгдийг хадгалахад хүрэлцэхүйц зайг динамик санах ойгоос нөөцлөн, түүний хаягийг буцаадаг.  New оператороор хуваарилагдсан хувьсагчид нь санах ойн heap мужид байрлана.  Динамикаар хуваарилагдсан хувьсагч нь нэргүй байдаг бөгөөд шууд хаяглагдаж чаддаггүй. Тиймээс new оператороос буцаасан заагч төрлийн утгаар шууд бусаар хаягладаг. Багш: Т.Гантөр
  • 6. Санах ойн динамик хуваарилалт - new  Жишээ: intPointer=new int; Багш: Т.Гантөр
  • 7. Санах ойн динамик хуваарилалт - new  Заагч хувьсагч нь ямар нэг зүйл заахгүйгаар хоосон утгыг заах шаардлага гардаг. Энэ тохиолдолд stdlib.h санд агуулагдах NULL тогтмол утгыг ашиглана.  Жишээ: bool* truth = NULL; float* money = NULL; Багш: Т.Гантөр
  • 8. Санах ойн динамик хуваарилалт - new  Жишээ: truth = new bool; *truth = true; money = new float; *money = 33.46; float* myMoney=new float; Багш: Т.Гантөр
  • 9. Санах ойн динамик хуваарилалт - new  Жишээ: *myMoney = *money; Багш: Т.Гантөр
  • 10. Санах ойн динамик хуваарилалт - new  Жишээ: myMoney = money; Багш: Т.Гантөр
  • 11. Санах ойн динамик хуваарилалт - delete  Delete оператор нь нөөцөлсөн зайг чөлөөлдөг ба уг санах ойн байрлалыг дахин ашиглах боломжтой болгоно.  Санах ойн ашиглалтыг сайжруулах, програмын найдвартай ажиллагааг хангах үүднээс new оператороор нөөцөлсөн санах ойн хэсгийг ашиглаж дууссаны дараа delete оператороор чөлөөлж байх хэрэгтэй. Багш: Т.Гантөр
  • 12. Санах ойн динамик хуваарилалт - new  Жишээ: delete myMoney; Багш: Т.Гантөр
  • 13. Динамик массив  Массивыг санах ойд хүссэн хэмжээтэйгээр хуваарилж, санах ойгоос чөлөөлж, дахин өөр хэмжээтэйгээр санах ойд хуваарилах зэргээр ашиглаж болно. Ийм массивыг динамик массив гэнэ.  Програмд динамик массив ашиглах нь санах ойг зүй зохистой ашиглах давуу талтай Багш: Т.Гантөр
  • 14. Динамик массив  Динамик массивыг зарлахдаа: Заагчийн_нэр= new заагчийн_төрөл[хэмжээ];  Жишээ: int maxStack=5; int * items; items = new ItemType[maxStack]; Багш: Т.Гантөр
  • 15. Динамик массив  Динамик массивыг зарлахдаа: Заагчийн нэр= new заагчийн төрөл [хэмжээ]  Жишээ: int maxStack=5; int * items; items = new ItemType[maxStack]; Багш: Т.Гантөр
  • 16. Динамик массив  Динамик массивыг санах ойгоос чөлөөлөхдөө: delete [] Заагчийн_нэр;  Жишээ: delete [] items; Багш: Т.Гантөр
  • 17. Өгөгдлийн хийсвэр төрөл  Програм бичих гэдэг нь бодит амьдрал дахь ямар нэг асуудлыг загварчлах ажил юм.  Гэвч аливаа асуудал нь маш ерөнхий бүрхэг байдаг учраас юуны өмнө уг асуудалд шаардлагатай ба шаардлагагүй зүйлсийг ялган тодорхойлох, улмаар асуудлын хийсвэр ойлголт буюу загварыг гарган авна.  Загварчлалын энэ процессыг хийсвэрлэлт гэж нэрлэнэ Багш: Т.Гантөр
  • 18. Өгөгдлийн хийсвэр төрөл  Загвар нь • Уг асуудалд шаардлагатай өгөгдөлүүд • Уг өгөгдөлд хийгдэх үйлдлүүдээс тогтоно.  Өөрөөр хэлбэл хийсвэрлэлт гэдэг нь аливаа тавигдсан асуудлыг түүний өгөгдлүүдийг үйлдлүүдийн хамтаар загварчлахыг хэлнэ Багш: Т.Гантөр
  • 19. Өгөгдлийн хийсвэр төрөл  Өгөгдөлүүдэд зөвхөн тэдгээрт хийгдэх үйлдлүүдээр хандана. Ийм шинж чанар бүхий загварчлалыг өгөгдлийн хийсвэр төрөл гэнэ.  Өгөгдлийн хийсвэр төрөл нь өгөгдлийг гадны орчноос далдалдаг ба зөвхөн үйлдэл нь гадна орчинтой холбогдон өгөгдөл хандах гүүр болж өгдөг.  Өгөгдлийн хийсвэр төрөл нь өгөгдөл болон тэдгээрт хийгдэх багц үйлдлүүдийг агуулдаг. Багш: Т.Гантөр
  • 20. Өгөгдлийн хийсвэр төрөл  Өгөгдлийн бүтэц нь өгөгдөл, тэдгээрийн зохион байгуулалтаас гадна уг өгөгдлүүдэд хийгдэх үйлдлүүдээр тодорхойлогддог.  Өгөгдлийн бүтэц болон тэдгээрт хийгдэх үйлдлүүдийг загварчлах үйл явц нь ерөөсөө өгөгдлийн хийсвэр төрөл тодорхойлох үйл явц юм. Багш: Т.Гантөр
  • 21. Өгөгдлийн хийсвэр төрөл  Өгөгдлийн хийсвэр төрлийг С++ програмчлалын хэлэнд классаар илэрхийлдэг.  Класс гэдэг нь нууцлагдсан өгөгдөл ба функцуудыг багцлан агуулсан өгөгдлийн нийлэл төрөл юм.  Классыг class нөөц үгээр тодорхойлно. Класст зарлагдсан хувьсагчдыг классын гишүүн өгөгдөл, класст зарлагдсан функцуудыг классын гишүүн функц гэнэ Багш: Т.Гантөр
  • 22. DynArray хийсвэр төрөл class DynArray{ int *a, len; public: DynArray(int length); ~DynArray(); int& operator[](int n); int size(); void resize(int length); void print(); }; Багш: Т.Гантөр
  • 23. DynArray хийсвэр төрөл DynArray::DynArray(int length){ len=length; a=new int[len]; for(int i=0;i<len;i++) a[i]=0; } DynArray::~DynArray(){ delete []a; } Багш: Т.Гантөр
  • 24. DynArray хийсвэр төрөл int& DynArray::operator[](int i){ if ( i<0 || i>=len){ cout<<"Aldaa: "<<i<<" hemjee heterlee.n"; exit(0); } return a[i]; } int DynArray::size(){ return len; } Багш: Т.Гантөр
  • 25. DynArray хийсвэр төрөл void DynArray::resize(int length){ if (len==length) return; int newlen=length; int *newa= new int[newlen]; int min=(newlen<len)? newlen:len; for(int i=0;i<min; i++) newa[i]=a[i]; for(i=min; i<newlen;i++) newa[i]=0; len=newlen; a=newa; } Багш: Т.Гантөр
  • 26. DynArray хийсвэр төрөл void DynArray::print(){ for(int i=0; i<len;i++) cout<<a[i]<<","; cout<<endl; } Багш: Т.Гантөр
  • 27. DynArray хийсвэр төрөл void main(){ DynArray my(3); for(int i=0; i<3; i++)my[i]=i; my.print(); cout<<"hemjee: "<<my.size()<<endl; my.resize(5); cout<<"hemjee: "<<my.size()<<endl; my.print(); my[3]=3; my[4]=4; my.print(); my.resize(10); my.print(); my[7]=3; my[9]=4; my.print(); Багш: Т.Гантөр