С++ ХЭРЭГЛЭГЧИЙН ФУНКЦ
Ц.Төртогтох (morz.shiper@gmail.com)
Магадлан итгэмжлэгдсэн “Идэр” Дээд Сургууль
Мэдээллийн Технологийн тэнхим
Агуулга
• Функц
• Хэрэглэчгийн функц
• Локаль хувьсагч.
• Глобал хувьсагч
• Формал ба бодит параметрууд .
• Рекрусив функц
Сэдэв: С++ хэрэглэгчийн функц Ц.Төртогтох / Магистрант /
Функц
• Си хэлэнд зөвхөн функц төрлийн дэд програм байдаг. Си хэлний
функцыг гарал үүслийн хувьд:
• дотоод (intrinsic) буюу бэлэн (predefined) функц
• гадаад (external) буюу хэрэглэгчийн зохиосон (user-defined) функц гэж ангилна.
• Predefined функцын жишээ бол стандарт функц юм: printf(), scanf(),
getchar() г.м. Ийм функц нь өрхвүүлэгч тэй хамт ирдэг. Хэрэглэгч ийм
функцыг, ямар кодтой, ямар бүтэцтэй гэдгийг нь нэг их
анзааралгүйгээр зөвхөн юу хийдэг вэ гэдгийг нь мэдэж байгаад л шууд
нэрээр нь дуудаж ашигладаг. Тэгвэл хэрэглэгчийн функцыг бол бид
өөрсдөө зохионо.
Сэдэв: С++ хэрэглэгчийн функц Ц.Төртогтох / Магистрант /
Функц
Өөрөөр хэлбэл кодыг нь бичнэ, бас дуудаж ашиглана.
Програмыг функцуудэд хуваах нь олон ач холбогдолтой.
Ингэснээр ж.нь програмыг оператор, өгөгдлүүдийн харилцан
үйлчлэл мэтээр авч үзэх төвшнөөс нэг шат ахиж функцуудын
харилцан үйлчлэл мэтээр авч үзэж болно. Үүний дүнд
програмын бүтэц энгийн, ойлгомжтой болж ирдэг. Түүнээс гадна
програмын бүрдэл хэсгүүдийн давхарлал арилж, хэмжээ нь
цомхон болно. Учир нь нэг функцыг ганц удаа зохиогоод л
дараа түүнийгээ програмын аль хэрэгтэй газарт зөвхөн нэрээр
нь дуудаж ашиглана. Яг стандарт функцын адилаар.
Сэдэв: С++ хэрэглэгчийн функц Ц.Төртогтох / Магистрант /
Схемчлэн үзүүлвээс
Програмын бие даасан шинжтэй , тодорхой үр дүн өгөх юмуу
эсвэл тодорхой үйлдэл гүйцэтгэдэгэ хэсгийг тусад нь бичиж , олон
дахин ашиглах боломжийг хангаад хэрэглэгчийн функц гэж
нэрлэнэ.
Хэрэглэгчийн функцыг бичих хэлбэр:
<буцах_утгын_төрөл><функцийн_нэр>(<параметрүүд>){
[<зарлах_хэсэг>]
<үйлдлүүд>;
return[<буцах утга>];
}
Сэдэв: С++ хэрэглэгчийн функц Ц.Төртогтох / Магистрант /
Хэрэглэгчийн функц
<Буцах утгын төрөл>: гэдэг нь функц ажилласны дараа
функцийг дуудсан газарт функцийн утга болгон буцаах
утгын төрөл байна. Функцийн буцах утгын төрөлд
өгөгдлийн үндсэн төрлүүд байхаас гадна заагч , бүтэц ,
тэмдэгт мөр төрөл байж болно. Мөн утга буцаадаггүй
функц байж болох ба энэ үед буцах утгын төрөл void байна.
<Функцийн нэр>: Латин үсэг цифр оролцосон үг байж
болно
<Параметрүүд>: гэдэгт функцэд дамжих хувьсагчийг эсвэл
утгыг төлөөлөх хувьсагчууд төрлийн хамтаар зарлагдсан байх
ба түүнийг хийсвэр параметр гэж нэрлэнэ.
<Зарлах хэсэг>: зөвхөн тухайн функц дотор ашиглах төрөл ,
хувьсагч , тогтмолыг зарлах ба энэ хэсэгт зарласан хувьсагчийг
локаль хувьсагч гэнэ.
Сэдэв: С++ хэрэглэгчийн функц Ц.Төртогтох / Магистрант /
<Үйлдлүүд>: функц нь биеэ даасан үйлдлүүдийн багц учраас
түүн дотор биелэгдэх үйлдлүүд байна.
<Буцах утга>: функцийн буцах утгын төрөлд тохирох хувьсагч
эсвэл тогтмол утга байна. Си хэлэнд буцах утгыг return нөөц
үгийн тусламжтайгаар буцаана. Буцах утга байхгүй бол return;
байх буюу эсвэл энэ оператор байхгүй байх ба түүний төрөл нь
void байна.
С++ хэлэнд хувьсагчийн тодорхойлохдоо програмын
эхэнд (толгой файлуудыг хавсаргасны дараа) эсвэл
функцийн эхэнд тодорхойлж өгдөг. Програмын эхэнд
тодорхойлсон хувьсагчуудыг нь main() функц ажиллаж
эхлэх үед үүсэх ба програмын аль ч хэсэгт дуудан
ашиглаж болохоос гадна хамгийн сүүлд олгосон утга
хадгалагдаж байдаг. Ийм хувьсагчийг глобал хувьсагч
гэнэ.
Сэдэв: С++ хэрэглэгчийн функц Ц.Төртогтох / Магистрант /
Харин функц дотор тодорхойлсон хувьсагчийг дотоод
буюу локал хувьсагч гэдэг. Ийм хувьсагч нь тухайн
функцийн дотор ажиллах үед санах ойд үүсэх
бөгөөд зөвхөн тухайн функц дотор ажиглагдаж ,
функц үйл ажиллагаагаа дуусах үед санах ойгоос
устдаг.
Формал ба бодит параметрууд Хэрэглэгчийн функцыг
зарлахдаа өмнө нь тодорхойлохдоо нэрийнх нь ард хаалтанд
дотор бичиж буй аргументуудыг формал (хуурмаг)
параметрууд гэнэ. Харин тухайн функцыг дуудахдаа хуурмаг
параметруудын оронд орлуулж буй аргументуудыг бодит
параметрууд (actual argument) гэнэ.
Функц өөрийгөө эргэн дуудаж байх юм бол үүнийг
рекурсив гэж нэрлэдэг. Рекурсивийг хэрэглэх нь зарим
бодлогыг бодох ажлыг асар их хөнгөвчилдөг. Рекурсив
функцийг зохион байгуулахдаа түүнийг төгсгөх нөхцөлийг
нарийн тодорхойлж өгөх хэрэгтэй.
Сэдэв: С++ хэрэглэгчийн функц Ц.Төртогтох / Магистрант /
Жишээ: 2 тооны нийлбэр олдог sum нэртэй
функц зохиож ашиглая.
#include<stdlib.h>
#include<iostream>
using namespace std;
int sum(int a, int b)
{ int r;
r=a+b;
return r;
}
int main (){
int n,m,z;
cout<<"n toog oruul:";
cin>>n;
cout<<"m toog oruul:";
cin>>m;
z = sum(n,m);
cout<<"Niilber:"<<z<<endl;
system("pause");
}
Эх сурвалжууд
• Д.Цэдэвсүрэн “C++ програмчлал”
• http://prezi.com/csngdcpogxka/presentation/
• spe.num.edu.mn/altankhuu/lesson/comp201/8C-Function.pdf
Lec4 хereglegchiinpunkts

Lec4 хereglegchiinpunkts

  • 1.
    С++ ХЭРЭГЛЭГЧИЙН ФУНКЦ Ц.Төртогтох([email protected]) Магадлан итгэмжлэгдсэн “Идэр” Дээд Сургууль Мэдээллийн Технологийн тэнхим
  • 2.
    Агуулга • Функц • Хэрэглэчгийнфункц • Локаль хувьсагч. • Глобал хувьсагч • Формал ба бодит параметрууд . • Рекрусив функц Сэдэв: С++ хэрэглэгчийн функц Ц.Төртогтох / Магистрант /
  • 3.
    Функц • Си хэлэндзөвхөн функц төрлийн дэд програм байдаг. Си хэлний функцыг гарал үүслийн хувьд: • дотоод (intrinsic) буюу бэлэн (predefined) функц • гадаад (external) буюу хэрэглэгчийн зохиосон (user-defined) функц гэж ангилна. • Predefined функцын жишээ бол стандарт функц юм: printf(), scanf(), getchar() г.м. Ийм функц нь өрхвүүлэгч тэй хамт ирдэг. Хэрэглэгч ийм функцыг, ямар кодтой, ямар бүтэцтэй гэдгийг нь нэг их анзааралгүйгээр зөвхөн юу хийдэг вэ гэдгийг нь мэдэж байгаад л шууд нэрээр нь дуудаж ашигладаг. Тэгвэл хэрэглэгчийн функцыг бол бид өөрсдөө зохионо. Сэдэв: С++ хэрэглэгчийн функц Ц.Төртогтох / Магистрант /
  • 4.
    Функц Өөрөөр хэлбэл кодыгнь бичнэ, бас дуудаж ашиглана. Програмыг функцуудэд хуваах нь олон ач холбогдолтой. Ингэснээр ж.нь програмыг оператор, өгөгдлүүдийн харилцан үйлчлэл мэтээр авч үзэх төвшнөөс нэг шат ахиж функцуудын харилцан үйлчлэл мэтээр авч үзэж болно. Үүний дүнд програмын бүтэц энгийн, ойлгомжтой болж ирдэг. Түүнээс гадна програмын бүрдэл хэсгүүдийн давхарлал арилж, хэмжээ нь цомхон болно. Учир нь нэг функцыг ганц удаа зохиогоод л дараа түүнийгээ програмын аль хэрэгтэй газарт зөвхөн нэрээр нь дуудаж ашиглана. Яг стандарт функцын адилаар. Сэдэв: С++ хэрэглэгчийн функц Ц.Төртогтох / Магистрант /
  • 5.
  • 6.
    Програмын бие даасаншинжтэй , тодорхой үр дүн өгөх юмуу эсвэл тодорхой үйлдэл гүйцэтгэдэгэ хэсгийг тусад нь бичиж , олон дахин ашиглах боломжийг хангаад хэрэглэгчийн функц гэж нэрлэнэ. Хэрэглэгчийн функцыг бичих хэлбэр: <буцах_утгын_төрөл><функцийн_нэр>(<параметрүүд>){ [<зарлах_хэсэг>] <үйлдлүүд>; return[<буцах утга>]; } Сэдэв: С++ хэрэглэгчийн функц Ц.Төртогтох / Магистрант /
  • 7.
    Хэрэглэгчийн функц <Буцах утгынтөрөл>: гэдэг нь функц ажилласны дараа функцийг дуудсан газарт функцийн утга болгон буцаах утгын төрөл байна. Функцийн буцах утгын төрөлд өгөгдлийн үндсэн төрлүүд байхаас гадна заагч , бүтэц , тэмдэгт мөр төрөл байж болно. Мөн утга буцаадаггүй функц байж болох ба энэ үед буцах утгын төрөл void байна. <Функцийн нэр>: Латин үсэг цифр оролцосон үг байж болно
  • 8.
    <Параметрүүд>: гэдэгт функцэддамжих хувьсагчийг эсвэл утгыг төлөөлөх хувьсагчууд төрлийн хамтаар зарлагдсан байх ба түүнийг хийсвэр параметр гэж нэрлэнэ. <Зарлах хэсэг>: зөвхөн тухайн функц дотор ашиглах төрөл , хувьсагч , тогтмолыг зарлах ба энэ хэсэгт зарласан хувьсагчийг локаль хувьсагч гэнэ. Сэдэв: С++ хэрэглэгчийн функц Ц.Төртогтох / Магистрант /
  • 9.
    <Үйлдлүүд>: функц ньбиеэ даасан үйлдлүүдийн багц учраас түүн дотор биелэгдэх үйлдлүүд байна. <Буцах утга>: функцийн буцах утгын төрөлд тохирох хувьсагч эсвэл тогтмол утга байна. Си хэлэнд буцах утгыг return нөөц үгийн тусламжтайгаар буцаана. Буцах утга байхгүй бол return; байх буюу эсвэл энэ оператор байхгүй байх ба түүний төрөл нь void байна.
  • 10.
    С++ хэлэнд хувьсагчийнтодорхойлохдоо програмын эхэнд (толгой файлуудыг хавсаргасны дараа) эсвэл функцийн эхэнд тодорхойлж өгдөг. Програмын эхэнд тодорхойлсон хувьсагчуудыг нь main() функц ажиллаж эхлэх үед үүсэх ба програмын аль ч хэсэгт дуудан ашиглаж болохоос гадна хамгийн сүүлд олгосон утга хадгалагдаж байдаг. Ийм хувьсагчийг глобал хувьсагч гэнэ. Сэдэв: С++ хэрэглэгчийн функц Ц.Төртогтох / Магистрант /
  • 11.
    Харин функц дотортодорхойлсон хувьсагчийг дотоод буюу локал хувьсагч гэдэг. Ийм хувьсагч нь тухайн функцийн дотор ажиллах үед санах ойд үүсэх бөгөөд зөвхөн тухайн функц дотор ажиглагдаж , функц үйл ажиллагаагаа дуусах үед санах ойгоос устдаг.
  • 12.
    Формал ба бодитпараметрууд Хэрэглэгчийн функцыг зарлахдаа өмнө нь тодорхойлохдоо нэрийнх нь ард хаалтанд дотор бичиж буй аргументуудыг формал (хуурмаг) параметрууд гэнэ. Харин тухайн функцыг дуудахдаа хуурмаг параметруудын оронд орлуулж буй аргументуудыг бодит параметрууд (actual argument) гэнэ.
  • 13.
    Функц өөрийгөө эргэндуудаж байх юм бол үүнийг рекурсив гэж нэрлэдэг. Рекурсивийг хэрэглэх нь зарим бодлогыг бодох ажлыг асар их хөнгөвчилдөг. Рекурсив функцийг зохион байгуулахдаа түүнийг төгсгөх нөхцөлийг нарийн тодорхойлж өгөх хэрэгтэй. Сэдэв: С++ хэрэглэгчийн функц Ц.Төртогтох / Магистрант /
  • 14.
    Жишээ: 2 тоонынийлбэр олдог sum нэртэй функц зохиож ашиглая. #include<stdlib.h> #include<iostream> using namespace std; int sum(int a, int b) { int r; r=a+b; return r; } int main (){ int n,m,z; cout<<"n toog oruul:"; cin>>n; cout<<"m toog oruul:"; cin>>m; z = sum(n,m); cout<<"Niilber:"<<z<<endl; system("pause"); }
  • 15.
    Эх сурвалжууд • Д.Цэдэвсүрэн“C++ програмчлал” • http://prezi.com/csngdcpogxka/presentation/ • spe.num.edu.mn/altankhuu/lesson/comp201/8C-Function.pdf