Saltar al contenido principal
Алгоритмын үндэс


     Лекц № 12
Óòãà äàìæóóëàõ
• Æèíõýíý àðãóìåíòûí òîî áîëîí òºðºë íü õèéñâýð
  àðãóìåíòûí òîî áîëîí òºðºëòýé õàðãàëçàí òîõèð÷
  áàéõ ¸ñòîé.
• Äóóäàõ ¿éëäýë áèåëæ äýä àëãîðèòìä óäèðäëàãà
  î÷èõ ¿åä {ïàðàìåò ð_ 1 = æ_ ïàðàìåò ð_ 1 ; . . . ;
  ïàðàìåò ð_ n= æ_ ïàðàìåò ð_ n};
   ãýñýí ¿éëäýë àâòîìàòààð õèéãääýã.


     ººðººð õýëáýë õóâüñàãчóóä óòãàòàé áîëäîã
Õýðõýí áóöàõ âý?
• Äóóäàõ ¿éëäýë áèåëýõýä áóöàõ õàÿãèéã
  ñàíàæ õàäãàëààä äýä àëãîðèòìä øèëæäýã.
• ¯éëäë¿¿ä áèåëæ ¿ð ä¿í áýëýí áîëîõîä
  óäèðäëàãûã ýõ àëãîðèòìä return ãýñýí ò¿ëõ¿¿ð
  ¿ã àøèãëàí áóöààíà.
• return ¿éëäýë áèåëýõýä ºìíº õàäãàëàãäñàí
  áóöàõ õàÿãèéí òóñëàìæ   òàéãààð àëãîðèòì ýõ
  àëãîðèòìä øèëæ äýã.
Õóâüñàã÷
  Äýä àëãîðèòìûí àðãóìåíòèéí óòãûã 2 õýëáýðèéí
  õóâüñàã÷ààð äàìæ   óóëäàã.
• Ãëîáàëü õóâüñàã÷ : Ýõ áà äýä àëãîðèò-
  ìóóäàä á¿ãäýä íü õýðýãëýæáîëîõîîð
  òîäîðõîéëîãäñîí õóâüñàã÷
• Ëîêàëü õóâüñàã÷ : Äýä àëãîðèòì äîòîð
  òîäîðõîéëîãäñîí áºãººä çºâõºí òýíä õýðýãëýãäýæ
  áàéãàà õóâüñàã÷
   Ãëîáàëü õóâüñàãчèéã àøèãëàõ íü èõýíõäýý
    Ãëîáàëü õóâüñàãчèéã àøèãëàõ íü èõýíõäýý
   òîõèðîìæã¿éáàéäàã.
           ã¿é
    òîõèðîìæ áàéäàã.
Æèøýý
     max(x,y)= x, õýðýâ x≥y
                  y, õýðýâ x<y
ôóíêöèéã àøèãëàí ºãñºí a,b,c áîäèò óòãàíä
          max(a, b+c)+max(a, a+c)
       t=    1+max(a+bc, 3.1415)

õýìæèãäýõ¿¿íèé óòãûã áîäîæîë.
Àëãîðèòì
{ /Alg Æ1
   /                                t=t+xymax;
    float a,b,c,t,x,y,xymax;        x=a+b* c;
    scanf(“ %f,%f,                  y=3.1415;
       %f” ,& a,& b,& c);
                                    xymax=x;
      x=a;
      y=b+c;                       if (y>xymax)
                                     xymax=y;
       xymax=x;
      if (y>xymax)                    t=t/(1+xymax);
       xymax=y;                    printf(“%f”,t);
       t=xymax;                }
       y=a+c;
       xymax=x;
      if (y>xymax)
       xymax=y;
Àëãîðèòì (ãëîáàëü)
{ /AlgÆ2
   /                               x=a+b* c;
    float a,b,c,t,x,y,xymax;       y=3.1415;
    scanf(“ %f,%f,                 max();
       %f” ,& a,& b,& c);          t=t/(1+xymax);
      x=a;                         printf(“%f”,t);
      y=b+c;                   }
                               void max()
      max();
                               {     xymax=x;
      t=xymax;
                                  if (y>xymax) xymax=y;
      y=a+c;                   return;
      max();                   }
      t=t+xymax;
Àëãîðèòì (ëîêàëü)
{ /AlgÆ3
   /
    float a,b,c,t;                     float max(flo at x, y){
    scanf(“ %f,%f,%f” ,& a,& b,& c);      xymax=x;
                                          if (y>xymax) xymax=y;
    t=max(a,b+c)+max(a,a+c);
                                       return xymax;
    t=t/(1+max(a+b* c,
                                       }
       3.1415));
    printf(“%f”,t);
}
Ôóíêö áà ïðîöåäóð

• Òîäîðõîé ¿éëäýë ã¿éöýòãýäýã äýä àëãîðèòì-
 procedure
• Òîäîðõîé ÿìàð íýã óòãà îëæ ò¿¿íèéãýý
 áóöààæ ºãäºã äýä àëãîðèòì-function
• Ôóíêöèéí áóöààõ óòãà íü õóâüñàãч áîëîí
 äóðûí èëýðõèéëýë áàéæáîëíî.
ßìàð ¿åä ò¿ãýýìýë õýðýãëýäýã
             âý?
• Àðãóìåíòûí ºãñºí óòãàíä òîäîðõîé íýã óòãûã
  õàðãàëçóóëàí áîäîæ ºãäºã äýä àëãîðèòìûã
  function õýëáýðòýé
• Áè÷èõ, óíøèõ, íýýõ, õààõ ãýõ ìýò òîäîðõîé
  ¿éëäýë áèåë¿¿ëýõ ýñâýë õýä õýäýí óòãà
  áîäîõîä çîðèóëñàí äýä àëãîðèòìûã procedure
  õýëáýðòýé
ßàæ áè÷èõ âý?
төрөл íýð (ò ºðºë _ 1 ïàðàìåò ð_ 1 , . . , ò ºðºë _ n
                ïàðàìåò ð_ n) {
      áèå_¿éëäë¿¿ä
return(áóöààõ óòãà); }
Æ:
   float ìàõ (flo at õ , ó ) {
      if (ó>õ) õ=ó;
   return(õ); }