Showing posts with label function. Show all posts
Showing posts with label function. Show all posts

Wednesday, February 17, 2021

பைத்தானில் ஃபங்க்சன்கள்.

 



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

பைத்தானில் ஃபங்க்சன் ஆனது def என்ற கீவேர்டுடன் ஆரம்பிக்கின்றது. தொடர்ந்து அதன் பெயரை குறிப்பிடுகின்றோம்.தொடர்ந்து அந்த ஃபங்க்சனுக்கு ஏதாவது பாராமீட்டர் அனுப்பலாம். எனினும் இதுஆப்சனல் தான்.

 def greetings():

    print("hello world")

greetings()

greetings()def greetings():

    print("hello world")

 

 

greetings()

greetings()

வெளியீடு:

hello world

hello world

மேலே உள்ள நிரலில் gtreetings என்று ஒரு ஃபங்க்சன் எழுதியுள்ளோம். இதை இரண்டு தடவை அழைத்துள்ளோம்.

def add(x,y):

    c=x+y

    print(c)

 

add(2,5)

வெளியீடு:

7

சான்று நிரல்-3

def update(x):

    x=8

    print("x" , x)

 

a=10

update(a)

print("a", a)

வெளியீடு:

x 8

a 10

 

மேலே உள்ள நிரலில் a என்ற வேரியபிளில் உள்ள மதிப்பை (10) update என்ற ஃபங்க்சனுக்கு அனுப்பியுள்ளோம்.

அதை x என்ற வேரியபிளில் மதிப்பிருத்துகின்றோம்.

பிறகு x என்ற வேரியபிளின் மதிப்பை 8 என்று மாற்றுகின்றோம்.

இப்பொழுது ஃபங்க்சனில் xன் மதிப்பு 8 என்று வெளியிடப்படுகின்றது.

இப்பொழுது ஃபங்க்சன் இயக்கம் முடிந்த பிறகு aன் மதிப்பு 10 என உள்ளதை கவனிக்கவும்.

ஆனால் a-ந் முகவரியையும் xன் முகவரியையும்  வேரியபிளின் மதிப்பை  மாற்றுவதற்கு முன் ப்ரின்ட் செய்தால் ஒரே மதிப்பை தான் காட்டும்.

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

சான்று நிரல்.

def update(x):

    print("x address ",id(x))

    x=8

    print (" x address ", id(x))

    print("x" , x)

 

a=10

update(a)

print (" a address ", id(a))

print("a", a)

வெளியீடு:

x address  505510888

 x address  505510856

x 8

 a address  505510888

a 10

xன் மதிப்பை மாற்றுவதற்கு முன் x,a என்ற இரு வேரியபிளின் முகவரியும் ஒன்றாய் உள்ளதை கவனிக்கவும்.

def person(name, age):

    print(name)

    print(age)

 

person ("karthi",40)

வெளியீடு:

கார்த்தி

40

இதில் நேம் என்ற வேரியபிளிற்கு  “karthi” என்ற மதிப்பையும் age என்ற வேரிபிளிற்கு 40 என்ற மதிப்பையும் அனுப்பியுள்ளோம் ஏனெனில் ஒவ்வொரு ஒவ்வொரு ஆர்க்கியுமெண்டின் பொசிசன் நமக்கு தெரியும்.ஆனால் ஒரு ஆர்க்யூமெண்டின் பொசிசன் நமக்கு தெரியாது எனில் நாம் பெயரை குறிப்பிட்டு பாஸ் செய்யலாம்.

சான்று நிரல்.

def person(name, age):

    print(name)

    print(age)

 

person (age=40, name="karthi")

வெளியீடு:

கார்த்தி

40

அடுத்த நிரல்.

def add(a,*b):

    c=a

    for i in b:

        c=c+i

    print(c)

 

add(2,4,5,7)

வெளியீடு:

18

மேலே உள்ள நிரலில் நான்கு வேரியபிளை add ஃபங்க்சனுக்கு அனுப்பியுள்ளோம். A க்கு 2ம் bக்கு 4,5,7ம் அனுப்பப்படுகின்றது.

b என்பது ஃபுங்க்சன் ஹெட்டெரில் *b என்று குறிப்பிடப்பட்டுள்ளதை கவனிக்கவும்.

ஆனால் ஒன்றுக்கு மேற்பட்ட மதிப்புகளை வேரியபிளின் பெயருடன் அனுப்புகையில் ஃபார்மல் பாராமீட்டரில் * கீயை இரண்டு தடவை குறிப்பிட வேண்டும்.

சான்று நிரல்.

def person(name,**b):

    print(name)

    for i,j in b.items():

        print(i,j)

   

 

person('karthi',age=40,contact=9629329142)

வெளியீடு:

Karthi

age 40

contact 9629329142

பின் குறிப்பு:

ஃபங்க்சன் அழைக்கப்படும் இடத்தில் உள்ள பாராமீட்டர்கள் actual parameter என்றும் ஃபங்க்சன் ஹெட்டரில் உள்ள பாராமீட்டரில் உள்ள பாராமீட்டர்கள் ஃபார்மல் பாராமீட்டர் என அழைக்கப்படுகின்றது.

நன்றி.

முத்து கார்த்திகேயன் ,மதுரை.

contact:91 9629329142.

 

 

 

 

 

 

 

ads Udanz

Wednesday, January 6, 2021

ஜாவாஸ்கிரிப்டில் ஃபங்சன்கள். பகுதி-1

 


 

ஃபங்சன் என்றால் என்ன?

 

பொதுவாக ஃபங்சன்ஸ் என்பது ஒரு தடவை  ஒரு பெயர் இட்டு எழுதி விட்டு திரும்ப எழுதாமலே எத்தனை தடவை வேண்டுமானாலும் அழைத்துக் கொள்ளலாம்.

 

ஃபங்சன்ஸ் நண்மைகள்.

 

1.   நிரல் வரிகளின் எண்ணிக்கை குறைகின்றது

2.   மெமரியின் அளவு குறைகின்றது

3.   நிரலாளரின் நேரம் குறிகின்றது.

4.   நிரலுக்கு மாடுலாரிட்டியை தருகின்றது.

5.  பிழைகளை கையாளுதல் எளிதாகின்றது.

ஜாவாஸ்கிரிப்டில் ஃபங்க்சன்கள் எவ்வாறு கையாளப்ப்படுகின்றது?

ஜாவாஸ்கிரிப்டில் ஃபங்க்சன்கள் function என்ற கீவேர்டுடன் ஆரம்பிக்கின்றது. அதன் தொடர்ச்சியாக அந்த ஃபங்சனின் பெயர் வருகின்றது.அதற்கடுத்து கர்லி பிராக்கட்டுக்குள்ளே அந்த ஃபங்சனின் பாடி வருகின்றது.பாடியில் உள்ள வரிகள் அந்த ஃபங்சன் அழைக்கப்படும் பொழுது இயக்கப்படுகின்றது.

சான்று நிரல்-1

 functions.js

function sayHello()

{

    console.log("hello Muthu karthikeyan");

}

sayHello();

sayHello();

அதன் வெளியீடு.

C:\Users\Muthu\Desktop\js>node functions.js

hello Muthu karthikeyan

hello Muthu karthikeyan

 

ஃபங்சனுக்கு பாராமீட்டர் செலுத்துவது எப்படி?

சான்று நிரல்-2

 functions.js

function sayHello(name)

{

    console.log("hello ",name);

}

sayHello();

sayHello();

மேலே உள்ள நிரலில் name என்ற பாராமீட்டரை ஃபங்சன் ஏற்கின்றது.

வெளியீடு:

 

 

 

C:\Users\Muthu\Desktop\js>node functions.js

hello  undefined

hello  undefined

undefined என வர காரணம்.ஃபங்சனை அழைக்கும் பொழுது name என்ற பாராமீட்டரின் மதிப்பு செலுத்த்ப்படவில்லை.

 

சான்று நிரல்-3

 

function sayHello(name)

{

    console.log("hello ",name);

}

sayHello("Muthu karthikeyan");

sayHello("Mukesh");

 

வெளியீடு:

C:\Users\Muthu\Desktop\js>node functions.js

hello  Muthu karthikeyan

hello  Mukesh

நிரல் விளக்கம்.

மேலே உள்ள நிரலில் ஃபங்சனில் நிரல் அழைக்கப்படும் பொழுது name கடத்தப்படுகின்றது.

sayHello("Muthu karthikeyan");

sayHello("Mukesh");

 

எனவே அதற்கேற்றார் போல் அதன் வெளியீடு அமைகின்றது.

சான்று நிரல் -4

 

function sayHello(name)

{

    console.log(`hello ,${name} how are you?`);

}

sayHello("Muthu karthikeyan");

sayHello("Mukesh");

 

வெளியீடு:

C:\Users\Muthu\Desktop\js>node functions.js

hello ,Muthu karthikeyan how are you?

hello ,Mukesh how are you?

நிரல் விளக்கம்.

 

மேலே உள்ள நிரலில் console.log()-ல் name என்ற வேரியபிள் ஆனது எவ்வாறு கையாளப்படுகின்றது என்று பாருங்கள்.

${name} என்று குறிப்பிடப்படுகின்றது .இது name என்ற வேரியபிளுக்கு நாம் செலுத்தும் மதிப்பை வெளியிடுகின்றது.மேலும் அந்த வரி முழுவதும் பேக்டிக் கேரக்டரால்(`) சூழப்பட்டுள்ளது. இந்தன் கீ ஆனது கீபோர்டில் esc கீயிக்கு கீழே உள்ளது. இவ்வாறு கையாளுவது ஜாவாஸ்கிரிப்டில் நவீன முறையாகும்.

 

சான்று நிரல்-5

function namasthey()

{

    return "hello in India";

 

}

var greetings=namasthey();

 

console.log(greetings);

console.log(namasthey());

வெளியீடு:

C:\Users\Muthu\Desktop\js>node functions.js

hello in India

hello in India

மேலே உள்ள நிரலில் namasthey என்ற ஃபங்சன் ஆனது எதையும் பிரிண்ட் செய்யவில்லை. ஆனால் “hello in India” என்பது ரிடர்ன் செய்யப்படுகின்றது. இவ்வாறு ரிடர்ன் செய்யப்படும் மதிப்பானது ஃபங்சன் அழைக்கப்படும் வரியில் இடது புறம் உள்ள வேரியபிளில் மதிப்பிருத்தப்படுகின்றது.பிறகு பிரிண்ட் செய்யப்படுகின்றது.

var greetings=namasthey();

 

console.log(greetings);

அல்லது நேரடியாக பிரிண்ட் செய்யும் ஃபங்க்சனிலேயே நேரடியாக ஃபங்சனை அழைக்கலாம்.

console.log(namasthey());

 

 

 -தொடரும்.

ads Udanz