SlideShare a Scribd company logo
Лекц №3 үргэлжлэл

               LOGO
Шугаман хайлтын арга– Linear Search
Хайх утга:
 23
 23
Хайлт явуулах олонлог:
    i            0    1    2   3    4    5    6    7    8    9
  утга           50   66   6   74   89   10   23   24   73   2




Багш: Т.Гантөр
Шугаман хайлтын арга– Linear Search
Хайх утга:
 23
Хайлт явуулах олонлог:
    i            0    1    2   3    4    5    6    7    8    9
  утга           50   66   6   74   89   10   23   24   73   2
             23




Багш: Т.Гантөр
Шугаман хайлтын арга– Linear Search
Хайх утга:
 23
Хайлт явуулах олонлог:
    i            0    1    2   3    4    5    6    7    8    9
  утга           50   66   6   74   89   10   23   24   73   2
                      23




Багш: Т.Гантөр
Шугаман хайлтын арга– Linear Search
Хайх утга:
 23
Хайлт явуулах олонлог:
    i            0    1    2    3    4    5    6    7    8    9
  утга           50   66   6    74   89   10   23   24   73   2
                           23




Багш: Т.Гантөр
Шугаман хайлтын арга– Linear Search
Хайх утга:
 23
Хайлт явуулах олонлог:
    i            0    1    2   3    4    5    6    7    8    9
  утга           50   66   6   74   89   10   23   24   73   2
                               23




Багш: Т.Гантөр
Шугаман хайлтын арга– Linear Search
Хайх утга:
 23
Хайлт явуулах олонлог:
    i            0    1    2   3    4    5    6    7    8    9
  утга           50   66   6   74   89   10   23   24   73   2
                                    23




Багш: Т.Гантөр
Шугаман хайлтын арга– Linear Search
Хайх утга:
 23
Хайлт явуулах олонлог:
    i            0    1    2   3    4    5    6    7    8    9
  утга           50   66   6   74   89   10   23   24   73   2
                                         23


                           Элемэнт олдлоо
Буцаах утга:
 6

Багш: Т.Гантөр
Хоёртын хайлтын арга– Binary Search
 Шугаман хайлттай харьцуулбал илүү үр дүнтэй
  аргын нэг бол хоѐртын хайлт буюу таллан
  хуваах арга юм.
 Энэ арга нь өгөгдлийг хоѐр хэсэгт хуваан хайх
  элемэнт аль хэсэгт байгааг тодорхойлдог.
 Энэ аргыг ашиглахад өгөгдөл эрэмбэлэгдэн байх
  ѐстой.




Багш: Т.Гантөр
Хоёртын хайлтын арга– Binary Search
 Аргын үндсэн санаа:
1. Хайх элемэнт буюу Х тоо массивын дундаж
   элемэнт мөн үү гэдгийг шалгах явдал юм.
   Хэрэв энэ нь үнэн бол бодлогын шийд олдлоо
   гэсэн үг.
2. Тийм биш бол 2 тохиолдол байна.




Багш: Т.Гантөр
Хоёртын хайлтын арга– Binary Search
     a. Х нь дундаж элемэнт буюу голын элемэнтээс
        бага бол уг массив эрэмбэлэгдсэн гэдгийг
        тооцоод голын элемэнтээс баруун тийш
        байрлах бүх элемэнтүүдийг хяналтаас хасах
        ба энэ аргыг массивын голын элемэнтээс
        зүүн гар талд орших хэсэгт хэрэглэх
     b. Х нь дундаж элемэнт буюу голын элемэнтээс
        их бол уг массив эрэмбэлэгдсэн гэдгийг
        тооцоод голын элемэнтээс зүүн тийш
        байрлах бүх элемэнтүүдийг хяналтаас хасах
        ба энэ аргыг массивын голын элемэнтээс
        баруун гар талд орших хэсэгт хэрэглэх

Багш: Т.Гантөр
Хоёртын хайлтын арга
BinarySearch функц:
int BinarySearch(int a[],int n,int x){
    int mid, low=0, high=n;
    while(low<=high){
         mid=(low+high)/2;
         if(x==a[mid]) return mid;
         if(x>a[mid]) low=mid+1;
         else high=mid-1;
    }
    return -1;
}



Багш: Т.Гантөр
Хоёртын хайлтын арга– Binary Search
Хайх утга:
 23
 23
Хайлт явуулах олонлог:
    i            0   1   2    3    4    5    6    7    8    9
  утга           2   6   10   23   24   50   66   73   74   89




Багш: Т.Гантөр
Хоёртын хайлтын арга– Binary Search
Хайх утга:
 23
 23
Хайлт явуулах олонлог:
    i            0   1   2    3    4    5    6    7    8    9
  утга           2   6   10   23   24   50   66   73   74   89




Багш: Т.Гантөр
Хоёртын хайлтын арга– Binary Search
Хайх утга:
 23
 23
Хайлт явуулах олонлог:
    i            0   1    2   3    4    5    6    7    8    9
  утга           2   6   10   23   24   50   66   73   74   89




Багш: Т.Гантөр
Хоёртын хайлтын арга– Binary Search
Хайх утга:
 23
 23
Хайлт явуулах олонлог:
    i            0   1   2     3   4    5    6    7    8    9
  утга           2   6   10   23   24   50   66   73   74   89




                         Элемэнт олдлоо
Буцаах утга:
 3

Багш: Т.Гантөр
Заагч ба заалт
     Лекц №4     LOGO
Хичээлийн агуулга




Багш: В.Нямсүрэн
Санах ой гэж юу вэ?
 Санах ой гэдэг нь хувьсагч, өгөгдөл, код
  зэргийг хадгалах газар юм.
 Компьютер өгөгдлийг санах ойн аль нэг
  хэсэгт хадгалдаг.
 Компьютерийн санах ой нь байтуудын дэс
  дараалсан үүрүүдээс тогтдог ба үүр бүр нь
  хаягтай байна.




Багш: В.Нямсүрэн
Санах ойн зохион байгуулалт
 Text – код,тогтмол өгөгдөл

 Data – анхны утга олгогдсон
  локаль ба глобаль хувьсагчид

 BSS - анхны утга олгогдоогүй
  локаль ба глобаль хувьсагчид

 Stack – локаль хувьсагчид

 Heap – динамик санах ой
Багш: В.Нямсүрэн
Заагч хувьсагч
 Õóâüñàãч áîëîí îáúåêòûí ñàíàõ îéä áàéðëàæ
  áàéãàà õàÿãèéã õàäãàëäàã ñàíàõ îéí heap
  ìóæèä     îðøèõ      íýðëýãäñýí     áëîêûã
  çààãч(pointer) ãýíý.

 Програмын ажиллах горимын үед хувьсагч
  болон     объектуудыг     байршуулахад
  зориулсан сул санах ойг heap (хийп) муж
  гэнэ.


Багш: В.Нямсүрэн
Заагч хувьсагч
 Заагч нь санах ойн хаягийг агуулах хувьсагч юм.

 Заагч хувьсагчийн утга нь санах ойн хаяг байна.
  Иймээс хаягаар дамжуулан уг хаягт харгалзах
  үүрний өгөгдөлтэй ажиллах боломжтой.

 Заагч төрлийн хувьсагчийн хаяг нь санах ойн
  стект байрлана, жинхэнэ утга нь хийп санах ойд
  байрладаг.



Багш: В.Нямсүрэн
Заагч хувьсагчийг зарлах
 Бичигдэх хэлбэр
  <заагчийн төрөл> *<заагчийн нэр>;
    • Заагчийн    төрөл-    нь    стандарт    болон
      хэрэглэгчийн тодорхойлсон дурын төрөл байж
      болох бөгөөд ямар төрөлтэй хувьсагчийн
      санах ойд байрлах хаягийг зааж чадахыг
      тодорхойлно.
    • *(од) нь заагч хувьсагчийг бусад энгийн
      хувьсагчаас ялгаж өгдөг.
    • Заагчийн    нэр    –     заагчийн    нэр   нь
      идентификаторт       тавигдах     шаардлагыг
      хангасан нэр байна.
Багш: В.Нямсүрэн
Заагч хувьсагчийн тухай
 Жишээ:
  int * intPointer;




Багш: В.Нямсүрэн
Заагч дээрх үйлдлүүд
 Заагч дээр ихэнх стандарт үйлдлүүдийг хийхийг
  зөвшөөрдөг. Үүнд:
   = (утга олгох)
   + (нэмэх)
   - (хасах)
   ++ (нэмэгдүүлэх)
   -- (хоргодуулах)
   >, <, <=, >=, ==, != (харьцуулах)




Багш: В.Нямсүрэн
Заагч дээрх үйлдлүүд – Утга олгох
1. Заагчид    утга   олгохдоо   тухайн    заагч
   хувьсагчийн төрөлтэй тохирох өгөгдлийн
   төрөлтэй хувьсагчийн хаягийг буюу өгөгдлийн
   санах ой дахь тодорхой байрлалын хаягийг
   олгоно.


      Өгөгдөл буюу хувьсагчийн хаягийг авахдаа
      хаяг авах & операторыг ашиглана.




Багш: В.Нямсүрэн
Заагч дээрх үйлдлүүд – Утга олгох
 Жишээ:
  int alpha;
  int *intPointer;
  intPointer = &alpha;;




Багш: В.Нямсүрэн
Заагч дээрх үйлдлүүд – Утга олгох
Заагч хувьсагчийн:
 *intPointer бичлэг нь заагчийн санах ойн
байрлал дахь утгыг илтгэнэ.

 intPointer бичлэг нь заагчийн заах санах ойн
хаягийг илтгэнэ.




Багш: В.Нямсүрэн
Заагч дээрх үйлдлүүд – Утга олгох
 Жишээ:
  *intPointer=25;;




Багш: В.Нямсүрэн
Заагч дээрх үйлдлүүд – Утга олгох
2. Тухайн заагчид ижил төрөлтэй заагчийг олгох.

     Энэ үйлдэл нь нэг заагч хувьсагчид өөр нэг
     заагч хувьсагчийн зааж байгаа хаягийн оноож
     байгаа хэлбэр юм.




Багш: В.Нямсүрэн
Заагч дээрх үйлдлүүд – Утга олгох
 Жишээ:
  int *intPointer1;
  intPointer1=intPointer




                                     1




Багш: В.Нямсүрэн
Заагч дээрх үйлдлүүд
 Заагчийг нэмэгдүүлэх, хорогдуулах үед заагч нь
  объектын хэмжээгээр нэмэгдэж, хорогддог.
  Ө.х бүхэл тоон төрөл(int)-ийн заагч бол 2B-аар,
  бутархай тоон төрөл(float)-ийн заагч бол 4В-аар
  тус тус нэмэгдэж хорогддог.

 Жиших үйлдэл нь заагчуудын зааж байгаа
  санах ойн эхлэх хаягийг жишдэг. Тиймээс
  заагчууд заавал ижил төрөлтэй байхыг
  шаарддаггүй.



Багш: В.Нямсүрэн
Заагч дээрх үйлдлүүд
Заагчид    дараах      үйлдлүүдийг      хийхийг
зөвшөөрдөггүй!!!
 Хоѐр заагчийг нэмэх
 Ялгаатай объект дээрх хоѐр заагчийг хасах
 Бодит тоон утгатай заагчийг нэмэх
 Заагчийг үржүүлэх
 Заагчийг хуваах
 Заагчийг шилжүүлэх үйлдэл




Багш: В.Нямсүрэн
Заагчийн төрлүүд
 Заагч хувьсагч нь програм зохиогчид маш өргөн
  боломжийг олгодог.

 Энэ нь заагч маш олон төрөлтэй байдагтай
  холбоотой




Багш: В.Нямсүрэн
Заагчийн төрлүүд – тэг заагч
 Санах ойн ямар ч утгыг хаяглахгүй бөгөөд утга
  нь 0 буюу хоосон байх заагчийг тэг заагч гэнэ.

 Жишээ:
    double *dp;
    dp=NULL;




Багш: В.Нямсүрэн
Заагчийн төрлүүд – төрөлт заагч
 Стандарт      өгөгдлийн     төрлүүд     болон
  хэрэглэгчийн      тодорхойлсон     төрлүүдээр
  зарлагдсан заагчийг төрөлт заагч гэнэ.

 Жишээ:
    int    *iPointer;
    float   *fPointer;
    char   *cPointer;
    struct student{
     char id[6];
     char name[20];
     int age;
    } *sPointer;

Багш: В.Нямсүрэн
Заагчийн төрлүүд – төрөлт заагч
 Ямар нэг стандарт өгөгдлийн төрөл болон
  хэрэглэгчийн төрөл авч тодорхойлогдоогүй
  заагчийг төрөлгүй заагч гэнэ. Ө.х төрөл нь
  тодорхойгүй байна.
 Төрөлгүй    заагчийг   void   түлхүүр   үгийн
  тусламжтайгаар тодорхойлно.
 Жишээ:
      void *vPointer;
 Төрөлгүй заагч нь стандарт болон хэрэглэгчийн
  төрөлтэй утгын санах ойд байрлах байрлалыг
  зааж чадна.


Багш: В.Нямсүрэн
Заагчийн төрлүүд – тогтмол заагч
 Утгыг өөрчилж болохгүй буюу зааж байгаа
  санах ойн үүрний хаягийг өөрчилж, өөр санах
  ойн үүрний хаяг олгож болохгүй бөгөөд түүний
  зааж байгаа санах ойн үүр дэх утгыг өөрчилж
  болох заагчийг тогтмол заагч гэнэ.
 Тогтмол заагчийг зарлахдаа const түлхүүр
   үгийг ашиглана.
 Тогтмол заагчийг зарлахдаа заавал анхны утга
  олгосон байх шаардлагатай
 Жишээ:
     int i=13, p=33;
     int *const cptr=&i;
     *cptr++; *cptr=5;
Багш: В.Нямсүрэн
Заагчийн төрлүүд – тогтмолын заагч
 Утгыг өөрчилж болох буюу зааж байгаа санах
  ойн үүрний хаягийг өөрчилж, өөр санах ойн
  үүрний хаяг оноож болох бөгөөд түүний зааж
  байгаа    санах ойн үүр дэх утгыг өөрчилж
  болохгүй заагчийг тогтмолын заагч гэнэ.
 Жишээ:
     float p=3.14, f=2.7;
     const float *cp;
     cp=&f;
     cp=&p;



Багш: В.Нямсүрэн
Заагчийн төрлүүд – заагчийн заагч
 Заагчийн хаягийг заах хувьсагчийг заагчийн
  заагч гэнэ. Мөн давхар заагч гэж нэрлэдэг.
 Давхар заагч буюу заагчийн заагчийг дараах
  хэлбэртэй зарлана.
     int    **iPointer;
     float **fPointer;

 **fptr äàâõàð çààãч íü çààãчèéí õàÿãèéã
  õàäãàëíà.




Багш: В.Нямсүрэн
Заалт хувьсагч
 Хувьсагчийн нэрийн өмнө & тэмдэг тавьснаар
  түүний санах ойд байрлах хаягийг тодорхойлох
  ба үүнийг хувьсагчийн төлөөлсөн нэр буюу
  заалт(reference) гэнэ.

 Хувьсагчийн санах ойн хаягт хандахад заагчаас
  илүү тохиромжтой хэлбэр нь заалт юм.




Багш: В.Нямсүрэн
Заалт хувьсагч
 Заалт хувьсагчийг зарлахдаа заавал ямар нэгэн
  хаяг заалгаж зарлана.
 Жишээ:
    int i=150;
    int &t=i;

 Заалт хувьсагчийг зарлахдаа ямар        нэгэн
  хаяг заалгахгүйгээр зарлаж болохгүй
 Жишээ:
      float     &f;



Багш: В.Нямсүрэн
Заалт хувьсагч
 Анхны утга нь тоо биш хувьсагч байна. Заалт
  хэзээ ч тогтмол утгыг зааж чадахгүй.
 Жишээ:
      int      &t=32767;

 Тогтмол заалтыг ашиглаж болох ба энэ үед
  тогтмол заалтын утгыг өөрчилж болохгүй.
 Жишээ:
     double d=3.14;
     const int &dref=d;



Багш: В.Нямсүрэн
Заалт хувьсагч
 Заалт хувьсагчийн заагчаас ялгарах нэг онцлог
  нь хэзээ ч NULL утгатай байж болохгүй бөгөөд
  ямагт тухайн төрлийнхөө объектыг зааж байдаг.

 Заалт дээр хийгдэх үйлдлүүд гэж байдаггүй.

 Заалт дээр хийгдэх үйлдлүүд нь түүний зааж
  байгаа объект дээр хийгдэнэ.




Багш: В.Нямсүрэн

More Related Content

What's hot

Өгөгдлийн бүтэц
Өгөгдлийн бүтэцӨгөгдлийн бүтэц
Өгөгдлийн бүтэц
Muuluu
 
Nohtsol shal хичээл 5
Nohtsol shal хичээл 5Nohtsol shal хичээл 5
Nohtsol shal хичээл 5
Urantuya Purevtseren
 
си хэлний хичээлүүд 11 р анги
си хэлний хичээлүүд 11 р ангиси хэлний хичээлүүд 11 р анги
си хэлний хичээлүүд 11 р ангиenhsaran_tsahim
 
9.эрэмбэлэлтийн аргууд
9.эрэмбэлэлтийн аргууд9.эрэмбэлэлтийн аргууд
9.эрэмбэлэлтийн аргуудBayalagmaa Davaanyam
 
алгоритм үндсэн ойлголт
алгоритм үндсэн ойлголталгоритм үндсэн ойлголт
алгоритм үндсэн ойлголт
Жавзмаа Ж
 
бие даалт № 1 borland c++
бие даалт № 1 borland c++бие даалт № 1 borland c++
бие даалт № 1 borland c++2011bonus
 
Шугаман алгоритмын бодлогууд
Шугаман алгоритмын бодлогуудШугаман алгоритмын бодлогууд
Шугаман алгоритмын бодлогуудБаярсайхан Л
 
U.cs101 лаборатори 6
U.cs101 лаборатори 6U.cs101 лаборатори 6
U.cs101 лаборатори 6
Ganbaatar ch
 
u.cs101 "Алгоритм ба програмчлал" Лекц №7
u.cs101 "Алгоритм ба програмчлал" Лекц №7u.cs101 "Алгоритм ба програмчлал" Лекц №7
u.cs101 "Алгоритм ба програмчлал" Лекц №7
Khuder Altangerel
 
Интегралчлах үндсэн аргууд
Интегралчлах үндсэн аргуудИнтегралчлах үндсэн аргууд
Интегралчлах үндсэн аргууд
Battur
 
Өгөгдлийн бүтэц 2-3
Өгөгдлийн бүтэц 2-3Өгөгдлийн бүтэц 2-3
Өгөгдлийн бүтэц 2-3
International Ulaanbaatar University
 
өгөгдлийн сан
өгөгдлийн санөгөгдлийн сан
өгөгдлийн санOnon Tuul
 
тооллын сис 10т 2т
тооллын сис 10т 2ттооллын сис 10т 2т
тооллын сис 10т 2т
Narantungaa
 
Алгоритмын “салаалалт” бүтэц
Алгоритмын “салаалалт” бүтэцАлгоритмын “салаалалт” бүтэц
Алгоритмын “салаалалт” бүтэц
Ц Батхуяг
 
U.cs101 алгоритм программчлал-10
U.cs101   алгоритм программчлал-10U.cs101   алгоритм программчлал-10
U.cs101 алгоритм программчлал-10
Badral Khurelbaatar
 
Лекц 7 (Давталтуудын Си хэлэнд)
Лекц 7 (Давталтуудын Си хэлэнд)Лекц 7 (Давталтуудын Си хэлэнд)
Лекц 7 (Давталтуудын Си хэлэнд)
Мөнхбаярын Цэцэнцэнгэл
 
001 c++ class охп
001 c++ class охп001 c++ class охп
001 c++ class охп
Mijiddorj Renchin-Ochir
 

What's hot (20)

Өгөгдлийн бүтэц
Өгөгдлийн бүтэцӨгөгдлийн бүтэц
Өгөгдлийн бүтэц
 
Nohtsol shal хичээл 5
Nohtsol shal хичээл 5Nohtsol shal хичээл 5
Nohtsol shal хичээл 5
 
си хэлний хичээлүүд 11 р анги
си хэлний хичээлүүд 11 р ангиси хэлний хичээлүүд 11 р анги
си хэлний хичээлүүд 11 р анги
 
9.эрэмбэлэлтийн аргууд
9.эрэмбэлэлтийн аргууд9.эрэмбэлэлтийн аргууд
9.эрэмбэлэлтийн аргууд
 
алгоритм үндсэн ойлголт
алгоритм үндсэн ойлголталгоритм үндсэн ойлголт
алгоритм үндсэн ойлголт
 
бие даалт № 1 borland c++
бие даалт № 1 borland c++бие даалт № 1 borland c++
бие даалт № 1 borland c++
 
Шугаман алгоритмын бодлогууд
Шугаман алгоритмын бодлогуудШугаман алгоритмын бодлогууд
Шугаман алгоритмын бодлогууд
 
U.cs101 лаборатори 6
U.cs101 лаборатори 6U.cs101 лаборатори 6
U.cs101 лаборатори 6
 
u.cs101 "Алгоритм ба програмчлал" Лекц №7
u.cs101 "Алгоритм ба програмчлал" Лекц №7u.cs101 "Алгоритм ба програмчлал" Лекц №7
u.cs101 "Алгоритм ба програмчлал" Лекц №7
 
Интегралчлах үндсэн аргууд
Интегралчлах үндсэн аргуудИнтегралчлах үндсэн аргууд
Интегралчлах үндсэн аргууд
 
Өгөгдлийн бүтэц 2-3
Өгөгдлийн бүтэц 2-3Өгөгдлийн бүтэц 2-3
Өгөгдлийн бүтэц 2-3
 
массив
массивмассив
массив
 
Лекц-1
Лекц-1Лекц-1
Лекц-1
 
өгөгдлийн сан
өгөгдлийн санөгөгдлийн сан
өгөгдлийн сан
 
тооллын сис 10т 2т
тооллын сис 10т 2ттооллын сис 10т 2т
тооллын сис 10т 2т
 
Лекц №9
Лекц №9Лекц №9
Лекц №9
 
Алгоритмын “салаалалт” бүтэц
Алгоритмын “салаалалт” бүтэцАлгоритмын “салаалалт” бүтэц
Алгоритмын “салаалалт” бүтэц
 
U.cs101 алгоритм программчлал-10
U.cs101   алгоритм программчлал-10U.cs101   алгоритм программчлал-10
U.cs101 алгоритм программчлал-10
 
Лекц 7 (Давталтуудын Си хэлэнд)
Лекц 7 (Давталтуудын Си хэлэнд)Лекц 7 (Давталтуудын Си хэлэнд)
Лекц 7 (Давталтуудын Си хэлэнд)
 
001 c++ class охп
001 c++ class охп001 c++ class охп
001 c++ class охп
 

Viewers also liked

Dsi lec8-copy
Dsi lec8-copyDsi lec8-copy
Dsi lec8-copyggmo86
 
Dsi lec6,7
Dsi lec6,7Dsi lec6,7
Dsi lec6,7ggmo86
 
Dsi lec12
Dsi lec12Dsi lec12
Dsi lec12ggmo86
 
Dsi lec13
Dsi lec13Dsi lec13
Dsi lec13ggmo86
 
Dsi lec11
Dsi lec11Dsi lec11
Dsi lec11ggmo86
 
Dsi lec14
Dsi lec14Dsi lec14
Dsi lec14ggmo86
 
Dsi lec9-copy
Dsi lec9-copyDsi lec9-copy
Dsi lec9-copyggmo86
 
Dsi lec1
Dsi lec1Dsi lec1
Dsi lec1ggmo86
 
Dsi lec10
Dsi lec10Dsi lec10
Dsi lec10ggmo86
 
Sodko111
Sodko111Sodko111
Sodko111sodko27
 
Монголчуудын байгаль хамгаалах уламжлалт ёс заншил
Монголчуудын байгаль хамгаалах уламжлалт ёс заншилМонголчуудын байгаль хамгаалах уламжлалт ёс заншил
Монголчуудын байгаль хамгаалах уламжлалт ёс заншил
Batbaatar Everlastinghero
 
Lekts 6
Lekts 6Lekts 6
сяньби улс
сяньби улссяньби улс
сяньби улс
Nyamka Nmk
 
Нирун улс
Нирун улсНирун улс
Нирун улсMarsel Sse
 
байгаль орчныг хамгаалах тухай
байгаль орчныг хамгаалах тухайбайгаль орчныг хамгаалах тухай
байгаль орчныг хамгаалах тухайmgl_wolk
 
7 анги түүхийн хичээл
7 анги түүхийн хичээл7 анги түүхийн хичээл
7 анги түүхийн хичээлMyagaa_1987
 
Монголын түүхийн үечлэл, түүх судлахын учир холбогдол
Монголын түүхийн үечлэл, түүх судлахын учир холбогдолМонголын түүхийн үечлэл, түүх судлахын учир холбогдол
Монголын түүхийн үечлэл, түүх судлахын учир холбогдол
tolya_08
 
Монголчуудын угсаа гарвал, нэрийтгэлийн тухай
Монголчуудын угсаа гарвал, нэрийтгэлийн тухайМонголчуудын угсаа гарвал, нэрийтгэлийн тухай
Монголчуудын угсаа гарвал, нэрийтгэлийн тухай
tolya_08
 

Viewers also liked (20)

Dsi lec8-copy
Dsi lec8-copyDsi lec8-copy
Dsi lec8-copy
 
Dsi lec6,7
Dsi lec6,7Dsi lec6,7
Dsi lec6,7
 
Dsi lec12
Dsi lec12Dsi lec12
Dsi lec12
 
Dsi lec13
Dsi lec13Dsi lec13
Dsi lec13
 
Dsi lec11
Dsi lec11Dsi lec11
Dsi lec11
 
Dsi lec14
Dsi lec14Dsi lec14
Dsi lec14
 
Dsi lec9-copy
Dsi lec9-copyDsi lec9-copy
Dsi lec9-copy
 
Dsi lec1
Dsi lec1Dsi lec1
Dsi lec1
 
Dsi lec10
Dsi lec10Dsi lec10
Dsi lec10
 
Sodko111
Sodko111Sodko111
Sodko111
 
Монголчуудын байгаль хамгаалах уламжлалт ёс заншил
Монголчуудын байгаль хамгаалах уламжлалт ёс заншилМонголчуудын байгаль хамгаалах уламжлалт ёс заншил
Монголчуудын байгаль хамгаалах уламжлалт ёс заншил
 
Lekts 6
Lekts 6Lekts 6
Lekts 6
 
Blog ds-tod
Blog ds-todBlog ds-tod
Blog ds-tod
 
Mongolchuudiin garal ugsaa
Mongolchuudiin garal ugsaaMongolchuudiin garal ugsaa
Mongolchuudiin garal ugsaa
 
сяньби улс
сяньби улссяньби улс
сяньби улс
 
Нирун улс
Нирун улсНирун улс
Нирун улс
 
байгаль орчныг хамгаалах тухай
байгаль орчныг хамгаалах тухайбайгаль орчныг хамгаалах тухай
байгаль орчныг хамгаалах тухай
 
7 анги түүхийн хичээл
7 анги түүхийн хичээл7 анги түүхийн хичээл
7 анги түүхийн хичээл
 
Монголын түүхийн үечлэл, түүх судлахын учир холбогдол
Монголын түүхийн үечлэл, түүх судлахын учир холбогдолМонголын түүхийн үечлэл, түүх судлахын учир холбогдол
Монголын түүхийн үечлэл, түүх судлахын учир холбогдол
 
Монголчуудын угсаа гарвал, нэрийтгэлийн тухай
Монголчуудын угсаа гарвал, нэрийтгэлийн тухайМонголчуудын угсаа гарвал, нэрийтгэлийн тухай
Монголчуудын угсаа гарвал, нэрийтгэлийн тухай
 

Dsi lec4

  • 2. Шугаман хайлтын арга– Linear Search Хайх утга: 23 23 Хайлт явуулах олонлог: i 0 1 2 3 4 5 6 7 8 9 утга 50 66 6 74 89 10 23 24 73 2 Багш: Т.Гантөр
  • 3. Шугаман хайлтын арга– Linear Search Хайх утга: 23 Хайлт явуулах олонлог: i 0 1 2 3 4 5 6 7 8 9 утга 50 66 6 74 89 10 23 24 73 2 23 Багш: Т.Гантөр
  • 4. Шугаман хайлтын арга– Linear Search Хайх утга: 23 Хайлт явуулах олонлог: i 0 1 2 3 4 5 6 7 8 9 утга 50 66 6 74 89 10 23 24 73 2 23 Багш: Т.Гантөр
  • 5. Шугаман хайлтын арга– Linear Search Хайх утга: 23 Хайлт явуулах олонлог: i 0 1 2 3 4 5 6 7 8 9 утга 50 66 6 74 89 10 23 24 73 2 23 Багш: Т.Гантөр
  • 6. Шугаман хайлтын арга– Linear Search Хайх утга: 23 Хайлт явуулах олонлог: i 0 1 2 3 4 5 6 7 8 9 утга 50 66 6 74 89 10 23 24 73 2 23 Багш: Т.Гантөр
  • 7. Шугаман хайлтын арга– Linear Search Хайх утга: 23 Хайлт явуулах олонлог: i 0 1 2 3 4 5 6 7 8 9 утга 50 66 6 74 89 10 23 24 73 2 23 Багш: Т.Гантөр
  • 8. Шугаман хайлтын арга– Linear Search Хайх утга: 23 Хайлт явуулах олонлог: i 0 1 2 3 4 5 6 7 8 9 утга 50 66 6 74 89 10 23 24 73 2 23 Элемэнт олдлоо Буцаах утга: 6 Багш: Т.Гантөр
  • 9. Хоёртын хайлтын арга– Binary Search  Шугаман хайлттай харьцуулбал илүү үр дүнтэй аргын нэг бол хоѐртын хайлт буюу таллан хуваах арга юм.  Энэ арга нь өгөгдлийг хоѐр хэсэгт хуваан хайх элемэнт аль хэсэгт байгааг тодорхойлдог.  Энэ аргыг ашиглахад өгөгдөл эрэмбэлэгдэн байх ѐстой. Багш: Т.Гантөр
  • 10. Хоёртын хайлтын арга– Binary Search  Аргын үндсэн санаа: 1. Хайх элемэнт буюу Х тоо массивын дундаж элемэнт мөн үү гэдгийг шалгах явдал юм. Хэрэв энэ нь үнэн бол бодлогын шийд олдлоо гэсэн үг. 2. Тийм биш бол 2 тохиолдол байна. Багш: Т.Гантөр
  • 11. Хоёртын хайлтын арга– Binary Search a. Х нь дундаж элемэнт буюу голын элемэнтээс бага бол уг массив эрэмбэлэгдсэн гэдгийг тооцоод голын элемэнтээс баруун тийш байрлах бүх элемэнтүүдийг хяналтаас хасах ба энэ аргыг массивын голын элемэнтээс зүүн гар талд орших хэсэгт хэрэглэх b. Х нь дундаж элемэнт буюу голын элемэнтээс их бол уг массив эрэмбэлэгдсэн гэдгийг тооцоод голын элемэнтээс зүүн тийш байрлах бүх элемэнтүүдийг хяналтаас хасах ба энэ аргыг массивын голын элемэнтээс баруун гар талд орших хэсэгт хэрэглэх Багш: Т.Гантөр
  • 12. Хоёртын хайлтын арга BinarySearch функц: int BinarySearch(int a[],int n,int x){ int mid, low=0, high=n; while(low<=high){ mid=(low+high)/2; if(x==a[mid]) return mid; if(x>a[mid]) low=mid+1; else high=mid-1; } return -1; } Багш: Т.Гантөр
  • 13. Хоёртын хайлтын арга– Binary Search Хайх утга: 23 23 Хайлт явуулах олонлог: i 0 1 2 3 4 5 6 7 8 9 утга 2 6 10 23 24 50 66 73 74 89 Багш: Т.Гантөр
  • 14. Хоёртын хайлтын арга– Binary Search Хайх утга: 23 23 Хайлт явуулах олонлог: i 0 1 2 3 4 5 6 7 8 9 утга 2 6 10 23 24 50 66 73 74 89 Багш: Т.Гантөр
  • 15. Хоёртын хайлтын арга– Binary Search Хайх утга: 23 23 Хайлт явуулах олонлог: i 0 1 2 3 4 5 6 7 8 9 утга 2 6 10 23 24 50 66 73 74 89 Багш: Т.Гантөр
  • 16. Хоёртын хайлтын арга– Binary Search Хайх утга: 23 23 Хайлт явуулах олонлог: i 0 1 2 3 4 5 6 7 8 9 утга 2 6 10 23 24 50 66 73 74 89 Элемэнт олдлоо Буцаах утга: 3 Багш: Т.Гантөр
  • 17. Заагч ба заалт Лекц №4 LOGO
  • 19. Санах ой гэж юу вэ?  Санах ой гэдэг нь хувьсагч, өгөгдөл, код зэргийг хадгалах газар юм.  Компьютер өгөгдлийг санах ойн аль нэг хэсэгт хадгалдаг.  Компьютерийн санах ой нь байтуудын дэс дараалсан үүрүүдээс тогтдог ба үүр бүр нь хаягтай байна. Багш: В.Нямсүрэн
  • 20. Санах ойн зохион байгуулалт  Text – код,тогтмол өгөгдөл  Data – анхны утга олгогдсон локаль ба глобаль хувьсагчид  BSS - анхны утга олгогдоогүй локаль ба глобаль хувьсагчид  Stack – локаль хувьсагчид  Heap – динамик санах ой Багш: В.Нямсүрэн
  • 21. Заагч хувьсагч  Õóâüñàãч áîëîí îáúåêòûí ñàíàõ îéä áàéðëàæ áàéãàà õàÿãèéã õàäãàëäàã ñàíàõ îéí heap ìóæèä îðøèõ íýðëýãäñýí áëîêûã çààãч(pointer) ãýíý.  Програмын ажиллах горимын үед хувьсагч болон объектуудыг байршуулахад зориулсан сул санах ойг heap (хийп) муж гэнэ. Багш: В.Нямсүрэн
  • 22. Заагч хувьсагч  Заагч нь санах ойн хаягийг агуулах хувьсагч юм.  Заагч хувьсагчийн утга нь санах ойн хаяг байна. Иймээс хаягаар дамжуулан уг хаягт харгалзах үүрний өгөгдөлтэй ажиллах боломжтой.  Заагч төрлийн хувьсагчийн хаяг нь санах ойн стект байрлана, жинхэнэ утга нь хийп санах ойд байрладаг. Багш: В.Нямсүрэн
  • 23. Заагч хувьсагчийг зарлах  Бичигдэх хэлбэр <заагчийн төрөл> *<заагчийн нэр>; • Заагчийн төрөл- нь стандарт болон хэрэглэгчийн тодорхойлсон дурын төрөл байж болох бөгөөд ямар төрөлтэй хувьсагчийн санах ойд байрлах хаягийг зааж чадахыг тодорхойлно. • *(од) нь заагч хувьсагчийг бусад энгийн хувьсагчаас ялгаж өгдөг. • Заагчийн нэр – заагчийн нэр нь идентификаторт тавигдах шаардлагыг хангасан нэр байна. Багш: В.Нямсүрэн
  • 24. Заагч хувьсагчийн тухай  Жишээ: int * intPointer; Багш: В.Нямсүрэн
  • 25. Заагч дээрх үйлдлүүд  Заагч дээр ихэнх стандарт үйлдлүүдийг хийхийг зөвшөөрдөг. Үүнд:  = (утга олгох)  + (нэмэх)  - (хасах)  ++ (нэмэгдүүлэх)  -- (хоргодуулах)  >, <, <=, >=, ==, != (харьцуулах) Багш: В.Нямсүрэн
  • 26. Заагч дээрх үйлдлүүд – Утга олгох 1. Заагчид утга олгохдоо тухайн заагч хувьсагчийн төрөлтэй тохирох өгөгдлийн төрөлтэй хувьсагчийн хаягийг буюу өгөгдлийн санах ой дахь тодорхой байрлалын хаягийг олгоно. Өгөгдөл буюу хувьсагчийн хаягийг авахдаа хаяг авах & операторыг ашиглана. Багш: В.Нямсүрэн
  • 27. Заагч дээрх үйлдлүүд – Утга олгох  Жишээ: int alpha; int *intPointer; intPointer = &alpha;; Багш: В.Нямсүрэн
  • 28. Заагч дээрх үйлдлүүд – Утга олгох Заагч хувьсагчийн:  *intPointer бичлэг нь заагчийн санах ойн байрлал дахь утгыг илтгэнэ.  intPointer бичлэг нь заагчийн заах санах ойн хаягийг илтгэнэ. Багш: В.Нямсүрэн
  • 29. Заагч дээрх үйлдлүүд – Утга олгох  Жишээ: *intPointer=25;; Багш: В.Нямсүрэн
  • 30. Заагч дээрх үйлдлүүд – Утга олгох 2. Тухайн заагчид ижил төрөлтэй заагчийг олгох. Энэ үйлдэл нь нэг заагч хувьсагчид өөр нэг заагч хувьсагчийн зааж байгаа хаягийн оноож байгаа хэлбэр юм. Багш: В.Нямсүрэн
  • 31. Заагч дээрх үйлдлүүд – Утга олгох  Жишээ: int *intPointer1; intPointer1=intPointer 1 Багш: В.Нямсүрэн
  • 32. Заагч дээрх үйлдлүүд  Заагчийг нэмэгдүүлэх, хорогдуулах үед заагч нь объектын хэмжээгээр нэмэгдэж, хорогддог. Ө.х бүхэл тоон төрөл(int)-ийн заагч бол 2B-аар, бутархай тоон төрөл(float)-ийн заагч бол 4В-аар тус тус нэмэгдэж хорогддог.  Жиших үйлдэл нь заагчуудын зааж байгаа санах ойн эхлэх хаягийг жишдэг. Тиймээс заагчууд заавал ижил төрөлтэй байхыг шаарддаггүй. Багш: В.Нямсүрэн
  • 33. Заагч дээрх үйлдлүүд Заагчид дараах үйлдлүүдийг хийхийг зөвшөөрдөггүй!!!  Хоѐр заагчийг нэмэх  Ялгаатай объект дээрх хоѐр заагчийг хасах  Бодит тоон утгатай заагчийг нэмэх  Заагчийг үржүүлэх  Заагчийг хуваах  Заагчийг шилжүүлэх үйлдэл Багш: В.Нямсүрэн
  • 34. Заагчийн төрлүүд  Заагч хувьсагч нь програм зохиогчид маш өргөн боломжийг олгодог.  Энэ нь заагч маш олон төрөлтэй байдагтай холбоотой Багш: В.Нямсүрэн
  • 35. Заагчийн төрлүүд – тэг заагч  Санах ойн ямар ч утгыг хаяглахгүй бөгөөд утга нь 0 буюу хоосон байх заагчийг тэг заагч гэнэ.  Жишээ: double *dp; dp=NULL; Багш: В.Нямсүрэн
  • 36. Заагчийн төрлүүд – төрөлт заагч  Стандарт өгөгдлийн төрлүүд болон хэрэглэгчийн тодорхойлсон төрлүүдээр зарлагдсан заагчийг төрөлт заагч гэнэ.  Жишээ: int *iPointer; float *fPointer; char *cPointer; struct student{ char id[6]; char name[20]; int age; } *sPointer; Багш: В.Нямсүрэн
  • 37. Заагчийн төрлүүд – төрөлт заагч  Ямар нэг стандарт өгөгдлийн төрөл болон хэрэглэгчийн төрөл авч тодорхойлогдоогүй заагчийг төрөлгүй заагч гэнэ. Ө.х төрөл нь тодорхойгүй байна.  Төрөлгүй заагчийг void түлхүүр үгийн тусламжтайгаар тодорхойлно.  Жишээ: void *vPointer;  Төрөлгүй заагч нь стандарт болон хэрэглэгчийн төрөлтэй утгын санах ойд байрлах байрлалыг зааж чадна. Багш: В.Нямсүрэн
  • 38. Заагчийн төрлүүд – тогтмол заагч  Утгыг өөрчилж болохгүй буюу зааж байгаа санах ойн үүрний хаягийг өөрчилж, өөр санах ойн үүрний хаяг олгож болохгүй бөгөөд түүний зааж байгаа санах ойн үүр дэх утгыг өөрчилж болох заагчийг тогтмол заагч гэнэ.  Тогтмол заагчийг зарлахдаа const түлхүүр үгийг ашиглана.  Тогтмол заагчийг зарлахдаа заавал анхны утга олгосон байх шаардлагатай  Жишээ: int i=13, p=33; int *const cptr=&i; *cptr++; *cptr=5; Багш: В.Нямсүрэн
  • 39. Заагчийн төрлүүд – тогтмолын заагч  Утгыг өөрчилж болох буюу зааж байгаа санах ойн үүрний хаягийг өөрчилж, өөр санах ойн үүрний хаяг оноож болох бөгөөд түүний зааж байгаа санах ойн үүр дэх утгыг өөрчилж болохгүй заагчийг тогтмолын заагч гэнэ.  Жишээ: float p=3.14, f=2.7; const float *cp; cp=&f; cp=&p; Багш: В.Нямсүрэн
  • 40. Заагчийн төрлүүд – заагчийн заагч  Заагчийн хаягийг заах хувьсагчийг заагчийн заагч гэнэ. Мөн давхар заагч гэж нэрлэдэг.  Давхар заагч буюу заагчийн заагчийг дараах хэлбэртэй зарлана. int **iPointer; float **fPointer;  **fptr äàâõàð çààãч íü çààãчèéí õàÿãèéã õàäãàëíà. Багш: В.Нямсүрэн
  • 41. Заалт хувьсагч  Хувьсагчийн нэрийн өмнө & тэмдэг тавьснаар түүний санах ойд байрлах хаягийг тодорхойлох ба үүнийг хувьсагчийн төлөөлсөн нэр буюу заалт(reference) гэнэ.  Хувьсагчийн санах ойн хаягт хандахад заагчаас илүү тохиромжтой хэлбэр нь заалт юм. Багш: В.Нямсүрэн
  • 42. Заалт хувьсагч  Заалт хувьсагчийг зарлахдаа заавал ямар нэгэн хаяг заалгаж зарлана.  Жишээ: int i=150; int &t=i;  Заалт хувьсагчийг зарлахдаа ямар нэгэн хаяг заалгахгүйгээр зарлаж болохгүй  Жишээ: float &f; Багш: В.Нямсүрэн
  • 43. Заалт хувьсагч  Анхны утга нь тоо биш хувьсагч байна. Заалт хэзээ ч тогтмол утгыг зааж чадахгүй.  Жишээ: int &t=32767;  Тогтмол заалтыг ашиглаж болох ба энэ үед тогтмол заалтын утгыг өөрчилж болохгүй.  Жишээ: double d=3.14; const int &dref=d; Багш: В.Нямсүрэн
  • 44. Заалт хувьсагч  Заалт хувьсагчийн заагчаас ялгарах нэг онцлог нь хэзээ ч NULL утгатай байж болохгүй бөгөөд ямагт тухайн төрлийнхөө объектыг зааж байдаг.  Заалт дээр хийгдэх үйлдлүүд гэж байдаггүй.  Заалт дээр хийгдэх үйлдлүүд нь түүний зааж байгаа объект дээр хийгдэнэ. Багш: В.Нямсүрэн