Home | 11 ஆம் வகுப்பு | 11வது கணினி அறிவியல் | பயனர் வரையறுக்கப்பட்ட செயற்கூறுகள்

C++ | கணினி அறிவியல் - பயனர் வரையறுக்கப்பட்ட செயற்கூறுகள் | 11th Computer Science : Chapter 11 : Functions

   Posted On :  25.09.2022 09:07 pm

11வது கணினி அறிவியல் : அலகு 11 : செயற்கூறுகள்

பயனர் வரையறுக்கப்பட்ட செயற்கூறுகள்

குறிப்பிட்ட பணிக்கான புதிய செயற்கூறுகளை பயனர் அவர் தேவைக்கேற்ப வரையறுக்கலாம். பயனர் உருவாக்கிய செயற்கூறுகளை பயனர் வரையறுத்த செயற்கூறுகள் என்றழைக்கப்படுகிறது.

பயனர் வரையறுக்கப்பட்ட செயற்கூறுகள்


முன்னுரை


குறிப்பிட்ட பணிக்கான புதிய செயற்கூறுகளை பயனர் அவர் தேவைக்கேற்ப வரையறுக்கலாம். பயனர் உருவாக்கிய செயற்கூறுகளை பயனர் வரையறுத்த செயற்கூறுகள் என்றழைக்கப்படுகிறது. ஒரு செயற்கூறினுக்கு உள்ளீட்டு அளபுருக்களை வரையறுப்பது அவசியமில்லை, ஆனால் அவற்றை பயன்படுத்தினால் செயற்கூறை அழைக்கும் போது செயலுருபுகளுக்கான மதிப்பை அனுப்பலாம். ஒரு செயற்கூறு மதிப்பை வெளியீடாக திருப்பி அனுப்ப வேண்டும் என்பதும் அவசியமில்லை. பொதுவான செயல்பாடுகளை ஒரே மறுபயனாக்க தொகுதியில் உறை பொதியாக்கம் செய்ய செயற்கூறுகள் பயன்படும். மேலும், இந்த செயற்கூற்றுக்கு அதன் செயல்பாட்டிற்கு ஏற்ப பெயரிடுவது மிகவும் ஏற்றதாகும்.


செயற்கூறை வரையறுப்பது


C++-ல், ஒரு செயற்கூறை நிரலில் ஏதேனும் ஒரு பகுதியில் அதைப் பயன்படுத்தும் முன் வரையறுக்கப்பட வேண்டும். செயற்கூறு வரையறுப்பதற்கான தொடரியல்:

திருப்பு அனுப்பும் தரவு வகை செயற்கூறின்_பெயர் (அளபுருக்களின் பட்டியல்)

{

    செயற்கூறின் உடற்பகுதி

}

குறிப்பு:

1. திருப்பி அனுப்பும் தரவு வகை என்பது C++ ஏற்கும் ஏதேனும் ஒரு ஏற்கதகு தரவின வகையில் அமைக்கலாம்.

2. செயற்கூறின் பெயர் என்பது பயனர்வரையறுத்த குறிப்பெயர்.

3. அளபுருக்களின் பட்டியல், கொடுப்பது அவசியமில்லை, இது மாறிகளின் பட்டியல். இதில் கொடுக்கப்பட்டுள்ள மாறியின் முன்பாக அதன் தரவினத்தை அறிவிக்கப்பட்டு, மாறிகள் காற்புள்ளியுடன் பிரிக்கப்பட்டிருக்க வேண்டும்.

4. செயற்கூறின் உடற்பகுதி- செயற்கூறின் உடல் பகுதியில் இந்த செயற்கூறு செயற்படுத்த வேண்டிய C++ கூற்றுகளைக் கொண்டிருக்கும்.


செயற்கூறின் முன்வடிவு


C++ நிரல் பல செயற்கூறுகளை கொண்டிருக்கலாம். ஆனால், நிரல் செயற்பாட்டினைத் தொடங்க கண்டிப்பாக ஒரே ஒரு main() செயற்கூறு இருக்க வேண்டும். வரையறுக்கும் போது செயற்கூறுகளை நாம் அவற்றை நம் விருப்பப்படி எந்த வரிசையில் வேண்டுமானாலும் எழுதலாம். பயனர் வரையறுக்கும் செயற்கூறுகள் main() செயற்கூற்றின் முன் அல்லது பின் அமைக்கலாம். மாறியை அறிவிப்பது போன்று, ஒரு செயற்கூறையும் நிரலில் அதை பயன்படுத்தும் முன்னரே அறிவிக்கப்பட வேண்டும். செயற்கூறு அறிவிப்பு கூற்றை main() செயற்கூறின் வெளியே கொடுக்க வேண்டும்.



மேலே கொடுக்கப்பட்டுள்ள செயற்கூறின் முன் வடிவம் கீழே கொடுக்கப்பட்டுள்ள தகவல்களை நிரல் பெயர்ப்பிக்கு கொடுக்கும். 

செயற்கூறு திருப்பி அனுப்பும் மதிப்பு long 

செயற்கூறின் பெயர் fact என்பதாகும்.

இந்த செயற்கூறு இரண்டு செயலுருபுக்களை ஏற்கும்.

int தரவினம் இதன் முதல் செயலுருபு. 

double தரவினம் இதன் இரண்டாவது செயலுருபு. 

intdisplay(int,int) //செயற்கூறின் முன்வடிவம்//

மேலே கொடுக்கப்பட்டுள்ள செயற்கூறு முன்வடிவம் இதன் திருப்பி அனுப்பும் தரவினம், பெயர் மற்றும் முறையான அளபுருக்கள் அல்லது செயலுருபுக்கள் போன்ற தகவல்களை அளிக்கிறது.


void கட்டளையின் பயன் 


void தரவினம் இரண்டு முக்கிய நோக்கங்கள் கொண்டது: 

இந்த செயற்கூறு எந்த மதிப்பையும் திருப்பி அனுப்பாது என்பதைக் குறிக்க.

பொது இனச் சுட்டியை (generic pointer) அறிவிக்க.

செயற்கூறு எந்த மதிப்பையும் திருப்பி அனுப்பாது என்பதை நிரல்பெயர்ப்பிக்கு void தரவினம் குறிக்கும், மேலும் விரிவான சூழலில் void எந்த மதிப்பையும் ஏற்காது.


எடுத்துக்காட்டாக:

void fun(void)

மேலே குறிப்பிட்டுள்ள செயற்கூறு முன்வடிவம் நிரல்பெயர்ப்பிக்கு fun() என்ற செயற்கூறு அதை அழைக்கும் நிரலிருந்து எந்த மதிப்பையும் ஏற்றுக் கொள்ளாது. மேலும் இது அதை அழைக்கும் நிரலுக்கு எந்த மதிப்பையும் திருப்பி அனுப்பாது. 


செயற்கூற்றை செயல்படுத்துதல்


பயனர் வரையறுத்த செயற்கூறை செயல்படுத்த அதன் பெயர் மற்றும் தேவையான செயலுருபுக்கள் கொண்டு அழைக்க வேண்டும். செயற்கூறை அழைக்கப்படும் போது நிரல்பெயர்ப்பி செயற்கூறின் முன் வடிவத்தை பயன்படுத்தி செயற்கூறு சரியாக அழைக்கப்பட்டுள்ளதா என்று சரிபார்க்கும். முன்வடிவில் உள்ள செயலுருபின் தரவு வகையும் அழைப்புக் கூற்றில் உள்ள செயலுருபுக்களின் தரவு வகைகள் பொருத்தமாக இல்லையெனில், தரவு வகை மாற்றம் தானாகவே செய்ய முடியும் என்றால் நிரல்பெயர்ப்பி அதை செய்யும், இல்லையெனில் நிரல்பெயர்ப்பி இதற்கு பிழை அறிக்கை அறிவிக்கும்.


எடுத்துக்காட்டாக:

1. display() : செயலுருபு ஏற்காது மற்றும் எந்த மதிப்பையும் திருப்பி அனுப்பாத அழைப்பு செயற்கூறு.

2. display ( x, y) : செயலுருபுக்களை ஏற்கும் மற்றும் எந்த மதிப்பையும் திருப்பி அனுப்பாத அழைப்பு செயற்கூறு.

3. x = display() : செயலுருபு ஏற்காது மற்றும் மதிப்பைத் திருப்பி அனுப்பும் அழைப்பு செயற்கூறு.

4. x = display (x, y) : செயலுருபுக்களை ஏற்கும் மற்றும் மதிப்பைத் திருப்பி அனுப்பும் அழைக்கும் செயற்கூறு.


1. முறையான அளபுருக்கள் (Formal Parameters) மற்றும் மெய்யான அளபுருக்கள் (Actual Parameters) அல்லது செயலுருபுக்கள் (Arguments)

செயலுருபுக்கள் அல்லது அளபுருக்கள் மூலமாக அழைக்கும் செயற்கூறிலிருந்து அழைக்கப்படும் செயற்கூறுக்கு மதிப்புகள் பரிமாற்றம் செய்யப்படும். வரையறுக்கப்பட்ட செயற்கூறில் மாறிகளாக பயன்படுத்தப்பட்டுள்ள அளபுருக்களை முறையான அளபுருக்கள் என்றழைக்கப்படும். அழைப்பு செயற்கூறில் உள்ள மாறிலிகள் அல்லது மாறிகள் அல்லது கோவைகளை மெய்யான அளபுருக்கள் என்றழைக்கப்படும்.



2. முன்னியல்புச் செயலுருபுக்கள் (Default Argument)

C++ மொழியில் ஒரு செயற்கூற்றின் முன்வடிவில் உள்ள முறையான அளபுருக்களில் முன்னியல்பு மதிப்புகளை இருத்தி வைக்க முடியும். செயற்கூற்றை அழைக்கும் போது முன்னியல்பு செயலுருபு சில மதிப்புகளைத் தவிர்க்க வழிவகுக்கும். செயற்கூற்றை அழைக்கும் போது ஏதேனும் செயலுருபுகளுக்கு மதிப்பு கொடுக்காவிடில் நிரல் பெயர்ப்பி முன்னியல்பு செயலுருபுக்களின் மதிப்பைகளை அழைக்கப்பட்ட செயற்கூற்றிக்கு ஏற்கும்.

மாறியில் தொடக்க மதிப்பிருந்தும் வடிவில் முன்னியல்பு மதிப்பு தரப்பட்டுள்ளது. 

எடுத்துக்காட்டு : 

void defaultvalue(int nl=10, n2=100);

ஒரு செயற்கூறின் அழைப்புக் கூற்றில் சில செயலுருபுக்களை விட்டுவிடவோ அல்லது செயலுருபுக்கள் இல்லாமலே அழைக்கவோ முன்னியல்பு செயலுருபுக்கள் வழி வகுக்கின்றன. 

எடுத்துக்காட்டு : defaultvalue(x,y);

defaultvalue(200,150); 

defaultvalue(150);

defaultvalue(x,150); 

முன்னியல்பு மதிப்புகள் செயற்கூறு முன்வடிவில் செயலுருபுப் பட்டியலில் இறுதியாகவே இடம் பெற வேண்டும். பட்டியலில் தொடக்கத்திலோ, நடுவிலோ இடம் பெறக் கூடாது. 

எடுத்துக்காட்டு : 

• void defaultvalue(int n1=10, n2); //தவறான முன்வடிவம் 

• void defaultvalue(int ni, n2 = 10); //சரியான முன்வடிவம் 


3. மாறிலி செயலுருபுக்கள்

const சிறப்புச் சொல்லை பயன்படுத்தி மாறிலிகளை அறிவிக்கலாம். const சிறப்புச் சொல் ஒரு மாறியின் மதிப்பை மாறாத தன்மை கொண்டதாக ஆக்கும். மாறிலியின் மாறிகள் அறிவிக்கும் போதே அதனுடைய தொடக்க மதிப்புடன் அறிவிக்க வேண்டும். const என்னும் பண்புணர்த்தி (modifier) மூலம் ஒரு மாறியில் இருத்தப்படும் மதிப்பை செயற்கூற்றின் உடல் பகுதியில் மாற்றப்பட முடியாது. 


தொடரியல் : 

<return type> <function name> (const <datatype variable = value>) 


எடுத்துக்காட்டு : 

• int minimum(const int a=10); 

• float area(const float pi=3.14, int r=5);


நிரல் 11.16

#include <iostream>

using namespace std;

double area(const double r,const double pi=3.14)

{

      return(pi*r*r);

}

int main ()

{

      double rad,res;

      cout<<"\nEnter Radius :";

      cin>>rad;

      res=area(rad);

      cout << "\nThe Area of Circle ="<<res;

      return 0;

}

வெளியீடு :

Enter Radius :5

The Area of Circle =78.5


"r” என்ற மாறியின் மதிப்பை r=25 என்று "area” செயற்கூறின் உடல் பகுதியில் மாற்றியமைத்தால், நிரல்பெயர்ப்பி "assignment of read-only parameter'r” என்ற பிழையை அறிவிக்கும்.

{

      r=25;

      return(pi*r*r);

}


Tags : C++ | Computer Science C++ | கணினி அறிவியல்.
11th Computer Science : Chapter 11 : Functions : User-defined Functions C++ | Computer Science in Tamil : 11th Standard TN Tamil Medium School Samacheer Book Back Questions and answers, Important Question with Answer. 11வது கணினி அறிவியல் : அலகு 11 : செயற்கூறுகள் : பயனர் வரையறுக்கப்பட்ட செயற்கூறுகள் - C++ | கணினி அறிவியல் : 11 ஆம் வகுப்பு தமிழ்நாடு பள்ளி சமசீர் புத்தகம் கேள்விகள் மற்றும் பதில்கள்.
11வது கணினி அறிவியல் : அலகு 11 : செயற்கூறுகள்