Tag Archives: Function

পাইথন প্রোগ্রামিং : নাম্বার (Python Numbers in bangla)

Huge Sell on Popular Electronics

1.9 Python Numbers

Number ডাটা টাইপের সাহায্যে সংখ্যা স্টোর করা যায়। যখনই একটি number ডাটা টাইপের মান পরিবর্তন করা হবে তখন একটি নতুন অবজেক্ট তৈরি হবে।


var1 = 1
var2 = 10

 

del statement এর সাহায্যে number অবজেক্টের রেফারেন্স ডিলেট করা যায়। যেমন,


del var1[,var2[,var3[....,varN]]]]

 

del statement এর সাহায্যে এক বা একাধিক স্টেটমেন্ট ডিলেট করা যায়। যেমন,


del var
del var_a, var_b

 

Python চার ধরনের number টাইপ সমর্থন করে। যেমনঃ

  • int = পূর্ণ সংখ্যা
  • long = আনলিমিটেড সাইজের পূর্ণসংখ্যা, এদেরকে integers এর মতই লেখা হয়, তবে শেষে একটি ছোট কিংবা বড় হাতের L থাকে। বড় হাতের L লেখার সুবিধা হচ্ছে সেটার সাথে ১ এর মিল থাকে না।
  • float = বাস্তব সংখ্যা। Float লিখার সময় অনেক ক্ষেত্রে E বা e ব্যবহৃত হয়, যা দিয়ে ১০ এর পাওয়ার বোঝায় (2.5e2 = 2.5 x 102= 250)।
  • complex = জটিল সংখ্যা, এরা a + bJ, যেখানে a এবং b হচ্ছে float এবং J এর মানে -১ এর বর্গমূল থাকে। Python প্রোগ্রামিং এ complex number এর তেমন একটা ব্যবহার নেই।

 

উদাহরনঃ

int long float complex
10 51924361L 0.0 3.14j
100 -0x19323L 15.20 45.j
-786 0122L -21.9 9.322e-36j
080 0xDEFABCECBDAECBFBAEL 32.3+e18 .876j
-0490 535633629843L -90. -.6545+0J
-0x260 -052318172735L -32.54e100 3e+26J
0x69 -4721885298529L 70.2-E12 4.53e-7j

 

Mathematical Functions

Python নিচের ফাংশনগুলোর সাহায্যে গাণিতিক হিসাব নিকাশ করে থাকে।

Function Returns ( description )
abs(x) The absolute value of x: the (positive) distance between x and zero.
ceil(x) The ceiling of x: the smallest integer not less than x
cmp(x, y) -1 if x < y, 0 if x == y, or 1 if x > y
exp(x) The exponential of x: ex
fabs(x) The absolute value of x.
floor(x) The floor of x: the largest integer not greater than x
log(x) The natural logarithm of x, for x> 0
log10(x) The base-10 logarithm of x for x> 0 .
max(x1, x2,...) The largest of its arguments: the value closest to positive infinity
min(x1, x2,...) The smallest of its arguments: the value closest to negative infinity
modf(x) The fractional and integer parts of x in a two-item tuple. Both parts have the same sign as x. The integer part is returned as a float.
pow(x, y) The value of x**y.
round(x [,n]) x rounded to n digits from the decimal point. Python rounds away from zero as a tie-breaker: round(0.5) is 1.0 and round(-0.5) is -1.0.
sqrt(x) The square root of x for x > 0

 

Random Number Functions

Random numbers গেমস, সিমুলেশন, টেস্টিং, সিকিউরিটি ইত্যাদি এপ্লিকেশনে ব্যবহৃত হয়। Python নিচের ফাংশনগুলো প্রতিনিয়ত ব্যবহার করে।

Function Description
choice(seq) A random item from a list, tuple, or string.
randrange ([start,] stop [,step]) A randomly selected element from range(start, stop, step)
random() A random float r, such that 0 is less than or equal to r and r is less than 1
seed([x]) Sets the integer starting value used in generating random numbers. Call this function before calling any other random module function. Returns None.
shuffle(lst) Randomizes the items of a list in place. Returns None.
uniform(x, y) A random float r, such that x is less than or equal to r and r is less than y

 

Trigonometric Functions

Python নিচের ফাংশনগুলোর সাহায্যে ত্রিকোণমিতৃক হিসেব-নিকাশ করে থাকে।

Function Description
acos(x) Return the arc cosine of x, in radians.
asin(x) Return the arc sine of x, in radians.
atan(x) Return the arc tangent of x, in radians.
atan2(y, x) Return atan(y / x), in radians.
cos(x) Return the cosine of x radians.
hypot(x, y) Return the Euclidean norm, sqrt(x*x + y*y).
sin(x) Return the sine of x radians.
tan(x) Return the tangent of x radians.
degrees(x) Converts angle x from radians to degrees.
radians(x) Converts angle x from degrees to radians.

Mathematical Constants

Python এ pi এবং e ধ্রুবক গুলোর ব্যবহার রয়েছে।

Use sorting criterion in sort function

Huge Sell on Popular Electronics

/* The following code example is taken from the book
 * "The C++ Standard Library - A Tutorial and Reference"
 * by Nicolai M. Josuttis, Addison-Wesley, 1999
 *
 * (C) Copyright Nicolai M. Josuttis 1999.
 * Permission to copy, use, modify, sell and distribute this software
 * is granted provided this copyright notice appears in all copies.
 * This software is provided "as is" without express or implied
 * warranty, and with no claim as to its suitability for any purpose.
 */

#include <iostream>
#include <vector>
#include <deque>
#include <list>
#include <set>
#include <map>
#include <string>
#include <algorithm>
#include <iterator>
#include <functional>
#include <numeric>

/* PRINT_ELEMENTS()
 * - prints optional C-string optcstr followed by
 * - all elements of the collection coll
 * - separated by spaces
 */
template <class T>
inline void PRINT_ELEMENTS (const T& coll, const char* optcstr="")
{
    typename T::const_iterator pos;

    std::cout << optcstr;
    for (pos=coll.begin(); pos!=coll.end(); ++pos) {
        std::cout << *pos << ' ';
    }
    std::cout << std::endl;
}

/* INSERT_ELEMENTS (collection, first, last)
 * - fill values from first to last into the collection
 * - NOTE: NO half-open range
 */
template <class T>
inline void INSERT_ELEMENTS (T& coll, int first, int last)
{
    for (int i=first; i<=last; ++i) {
        coll.insert(coll.end(),i);
    }
}

using namespace std;

void printCollection (const list<int>& l)
{
    PRINT_ELEMENTS(l);
}

bool lessForCollection (const list<int>& l1, const list<int>& l2)
{
    return lexicographical_compare
                (l1.begin(), l1.end(),   // first range
                 l2.begin(), l2.end());  // second range
}

int main()
{
    list<int> c1, c2, c3, c4;

    // fill all collections with the same starting values
    INSERT_ELEMENTS(c1,1,5);
    c4 = c3 = c2 = c1;

    // and now some differences
    c1.push_back(7);
    c3.push_back(2);
    c3.push_back(0);
    c4.push_back(2);

    // create collection of collections
    vector<list<int> > cc;

    cc.push_back(c1);
    cc.push_back(c2);
    cc.push_back(c3);
    cc.push_back(c4);
    cc.push_back(c3);
    cc.push_back(c1);
    cc.push_back(c4);
    cc.push_back(c2);

    // print all collections
    for_each (cc.begin(), cc.end(),
              printCollection);
    cout << endl;

    // sort collection lexicographically
    sort (cc.begin(), cc.end(),    // range
          lessForCollection);      // sorting criterion

    // print all collections again
    for_each (cc.begin(), cc.end(),
              printCollection);
}
/*
1 2 3 4 5 7
1 2 3 4 5
1 2 3 4 5 2 0
1 2 3 4 5 2
1 2 3 4 5 2 0
1 2 3 4 5 7
1 2 3 4 5 2
1 2 3 4 5

1 2 3 4 5
1 2 3 4 5
1 2 3 4 5 2
1 2 3 4 5 2
1 2 3 4 5 2 0
1 2 3 4 5 2 0
1 2 3 4 5 7
1 2 3 4 5 7

 */

Call member function for each element in vector

Huge Sell on Popular Electronics

/* The following code example is taken from the book
* "The C++ Standard Library - A Tutorial and Reference"
* by Nicolai M. Josuttis, Addison-Wesley, 1999
*
* (C) Copyright Nicolai M. Josuttis 1999.
* Permission to copy, use, modify, sell and distribute this software
* is granted provided this copyright notice appears in all copies.
* This software is provided "as is" without express or implied
* warranty, and with no claim as to its suitability for any purpose.
*/
//#define mem_fun1 mem_fun
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
#include <functional>
class Person {
private:
   std::string name;
public:
   //...
   void print () const {
       std::cout << name << std::endl;
   }
   void printWithPrefix (std::string prefix) const {
       std::cout << prefix << name << std::endl;
   }
};
void foo (const std::vector<Person>& coll)
{
   using std::for_each;
   using std::bind2nd;
   using std::mem_fun_ref;
   // call member function print() for each element
   for_each (coll.begin(), coll.end(), mem_fun_ref(&Person::print));
   // call member function printWithPrefix() for each element
   // - "person: " is passed as an argument to the member function
   for_each (coll.begin(), coll.end(),bind2nd(mem_fun_ref(&Person::printWithPrefix),"person: "));
}

void ptrfoo (const std::vector<Person*>& coll)
                                   // ^^^ pointer !
{
   using std::for_each;
   using std::bind2nd;
   using std::mem_fun;
   // call member function print() for each referred object
   for_each (coll.begin(), coll.end(),
             mem_fun(&Person::print));
   // call member function printWithPrefix() for each referred object
   // - "person: " is passed as an argument to the member function
   for_each (coll.begin(), coll.end(),bind2nd(mem_fun(&Person::printWithPrefix),"person: "));
} 
 
int main()
{
   std::vector<Person> coll(5);
   foo(coll); 
   std::vector<Person*> coll2;
   coll2.push_back(new Person);
   ptrfoo(coll2);
} 
/*
person:
person:
person:
person:
person:
person: 

*/


	

ইউনিক্সঃ সেল বিল্টইন গাণিতিক ফাংশন (Unix – Shell Builtin Mathematical Functions)

Huge Sell on Popular Electronics

রিদওয়ান বিন শামীম

 

আমাদের টিউটোরিয়ালের বেশিরভাগ অংশে বর্ন সেল নিয়ে কাজ করা হয়েছে কিন্তু আজ এখানে আমরা কর্ন সেলের বিল্টইন গাণিতিক ফাংশনগুলো দেখব।

কর্ন সেল গাণিতিক ফাংশনের আদর্শ সেটে প্রবেশযোগ্যতা সৃষ্টি করে, সি ফাংশন কল সিনট্যাক্স ব্যবহার করে এদের কল করা হয়।

ফাংশন বর্ণনা
abs আদর্শ মান
log ন্যাচারাল লগারিদম
acos আর্ক কোসাইন
sin সাইন
asin আর্ক সাইন
sinh হাইপারবোলিক সাইন
cos কোসাইন
sqrt স্কয়ার রুট
cosh হাইপারবোলিক কোসাইন
tan টেনজেন্ট
exp এক্সপোনেন্সিয়াল ফাংশন
tanh হাইপারবোলিক টেনজেন্ট
int ফ্লোটিং পয়েন্ট নাম্বারের পূর্ণসংখ্যা অংশ

 

 

ইউনিক্সঃ সেল ফাংশন (Unix – Shell Functions)

Huge Sell on Popular Electronics

রিদওয়ান বিন শামীম

 

ফাংশন কোনও স্ক্রিপ্টের ফাংশনালিটিকে ছোট ছোট লজিকাল সাবসেকশনে ভাগ করে যাতে এগুলো প্রয়োজনমত তাদের কাজ সম্পন্ন করতে পারে।

পুনরাবৃত্তিমূলক কাজ সম্পাদনের জন্য ফাংশন ব্যবহার করা কোডের পুনঃব্যবহারের একটি ভাল উপায়। কোডের পুনঃব্যবহার বর্তমান সময়ের অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিঙের একটি গুরুত্বপূর্ণ অংশ।

সেল ফাংশন অন্যান্য প্রোগ্রামিং ভাষার সাবরুটিন, প্রক্রিয়া ও ফাংশনের মতই।

 

ফাংশন তৈরি করা

ফাংশন হিসেবে স্বীকৃতি পেতে নিচের সিনট্যাক্স ব্যবহার করতে হয়,


function_name () { 
   list of commands
}

 

নিচে ফাংশনের ব্যবহারের সহজ উদাহরণ দেয়া হল,


#!/bin/sh
 
# Define your function here
Hello () {
   echo "Hello World"
}
 
# Invoke your function
Hello

 

উপরের কোডকে কার্যে পরিণত করলে নিম্নে প্রদত্ত ফলাফল পাওয়া যাবে,


$./test.sh
Hello World
$

 

ফাংশনের পাস প্যারামিটার

কিছু ফাংশন কাজের ক্ষেত্রে প্যারামিটার গ্রহণ করে, $1, $2 এসব দ্বারা এই ফাংশন প্রকাশ করা হয়,


#!/bin/sh
 
# Define your function here
Hello () {
   echo "Hello World $1 $2"
}
 
# Invoke your function
Hello Zara Ali

 

যা নিচের ফলাফল দেখাবে,


$./test.sh
Hello World Zara Ali
$

 

ফাংশন থেকে মান ফিরিয়ে আনাঃ return কম্যান্ড ব্যবহার করে ফাংশন থেকে যেকোনো মান ফিরিয়ে আনা সম্ভব, যার সিনট্যাক্স হল,


return code

 

এখানে যেকোনো কোড হতে পারে কিন্তু তা স্ক্রিপ্টের কনটেক্সটে অর্থবোধক হতে হবে।

যেমন, নিচের ফাংশন ভ্যালু ফিরিয়ে আনে,


#!/bin/sh
 
# Define your function here
Hello () {
   echo "Hello World $1 $2"
   return 10
}
 
# Invoke your function
Hello Zara Ali
 
# Capture value returnd by last command
ret=$?
 
echo "Return value is $ret"

 

যা নিম্নোক্ত ফলাফল দেবে,


$./test.sh
Hello World Zara Ali
Return value is 10
$

 

নেস্টেড ফাংশন

ফাংশনের একটি মজার ফিচার হল, এটি অন্য ফাংশনকে যেমন কল করতে পারে তেমনি নিজেদেরও কল করতে পারে। এধরনের ফাংশনকে রিকারসিভ ফাংশন বলে।

দুটি ফাংশনের নেস্টিং নিচের উদাহরণে দেয়া হল,


#!/bin/sh
 
# Calling one function from another
number_one () {
   echo "This is the first function speaking..."
   number_two
}
 
number_two () {
   echo "This is now the second function speaking..."
}
 
# Calling function one.
number_one

 

এটি যে ফলাফল দেখাবে তা হল,


This is the first function speaking...
This is now the second function speaking...

 

প্রম্পট থেকে ফাংশন কল

.profile এর ভিতরে সচরাচর ব্যবহৃত ফাংশনের জন্য সংজ্ঞা অন্তর্ভুক্ত করা যায়,অপরদিকে test.sh জাতীয় ফাইলে সংজ্ঞার গ্রুপ সংবদ্ধ করে কারেন্ট সেলে নিচের কোড দ্বারা সম্পাদন করা যায়,


$. test.sh

 

যা কিনা কারেন্ট সেলকে নিচের মত করে বিবৃত করে,


$ number_one
This is the first function speaking...
This is now the second function speaking...
$

 

সেল থেকে কোনও ফাংশনের সংজ্ঞা মুছে ফেলতে .f অপশনের সাথে unset কম্যান্ড ব্যবহার করতে হয়, এটি সেই একই কম্যান্ড যা সেল থেকে চলকের বিবরণ মুছে ফেলতে ব্যবহৃত হয়,


$unset.f function_name

 

জাভাস্ক্রিপ্ট অবজেক্ট নটেশন ফাংশন ফাইল (JSON Function Files)

Huge Sell on Popular Electronics

জেএসওএন ফাংশন ফাইল

রিদওয়ান বিন শামীম

জেএসওএন ফাংশন ফাইল (JSON Function Files)

জেএসওএনএর একটি সাধারণ প্রয়োগ হল ওয়েব সার্ভার থেকে ডাটা পড়া ও ওয়েব পেজে তা প্রদর্শন করা। এই অধ্যায়ে চারটি ছোট ছোট ধাপে দেখানো হবে কীভাবে ফাংশন ফাইল ব্যবহার করে জেএসওএন ডাটা পড়া হয়।

জেএসওএন উদাহরণঃ এই উদাহরণে myTutorials.js থেকে একটি মেনু পড়া হবে ও সেটিকে ওয়েবপেজে দেখানো হবে।


<div id="id01"></div>
<script>
function myFunction(arr) {
     var out = "";
     var i;
     for(i = 0; i<arr.length; i++) {
     out += '<a href="' + arr[i].url + '">' + arr[i].display + '</a><br>';
     }
     document.getElementById("id01").innerHTML = out;
}
</script>
<script src="myTutorials.js"></script>

 

 

উদাহরণের ব্যাখ্যা

প্রথমতঃ অবজেক্টের শ্রেণীবিন্যাস তৈরি করা হয়ঃ
অক্ষরভিত্তিক শ্রেণীবিন্যাস নির্ধারণ করে কোনো অবজেক্টের শ্রেণীবিন্যাস তৈরি করা হয়। প্রত্যেকটি অবজেক্টের দুটি বৈশিষ্ট্য নির্ধারণ করে দেয়া হয়, display এবং url । শ্রেণীবিন্যাসকে myArray নাম দেয়া হয়।
myArray


var myArray = [
{
"display": "JavaScript Tutorial",
"url": "http://www.w3schools.com/js/default.asp"
},
{
"display": "HTML Tutorial",
"url": "http://www.w3schools.com/html/default.asp"
},
{
"display": "CSS Tutorial",
"url": "http://www.w3schools.com/css/default.asp"
}
]

 

দ্বিতীয়তঃ শ্রেণীবিন্যাস দেখানোর জন্য জাভাস্ক্রিপ্টের একটি ফাংশন তৈরি করা হয়ঃ myFunction() নামের ফাংশন তৈরি করা হয় যা থেকে অবজেক্টগুলো দৃশ্যমান হয় ও এইচটিএমএল লিঙ্ক জাতীয় উপাদান প্রদর্শন করে।

myFunction()


 

function myFunction(arr) {
    var out = "";
    var i;
    for(i = 0; i < arr.length; i++) {
    out += '<a href="' + arr[i].url + '">' + arr[i].display + '</a><br>';
    }
    document.getElementById("id01").innerHTML = out;
}

 

 

myFunction() কে myArray এর সাথে আর্গুমেন্ট হিসেবে দেখা হয়। যথা,


myFunction(myArray);


 

 

তৃতীয়ত, কোন অক্ষরভিত্তিক শ্রেণীবিন্যাসকে আর্গুমেন্ট হিসেবে ব্যবহার করা(শ্রেণীবিন্যাস চলকের পরিবর্তে)ঃ
myFunction() কে array literal(অক্ষরভিত্তিক শ্রেণীবিন্যাস)এর সাথে আর্গুমেন্ট হিসেবে দেখা হয়,

Calling myFunction()


myFunction([
{
"display": "JavaScript Tutorial",
"url": "http://www.w3schools.com/js/default.asp"
},
{
"display": "HTML Tutorial",
"url": "http://www.w3schools.com/html/default.asp"
},
{
"display": "CSS Tutorial",
"url": "http://www.w3schools.com/css/default.asp"
}
]);

 

 

চতুর্থতঃ ফাংশন কলকে এক্সটারনাল js fileএ রাখা হয়ঃ
myTutorials.js নামক এক্সটারনাল js fileএ ফাংশন কলকে রাখা হয়।

myTutorials.js


myFunction([
    {
    "display": "JavaScript Tutorial",
    "url": "http://www.w3schools.com/js/default.asp"
    },
    {
    "display": "HTML Tutorial",
    "url": "http://www.w3schools.com/html/default.asp"
    },
    {
    "display": "CSS Tutorial",
    "url": "http://www.w3schools.com/css/default.asp""
    }
 ]);

 

 

ফাংশন কলের পরিবর্তে পেজে এক্সটারনাল স্ক্রিপ্ট যোগ করা হয়,
Add External Script


<script src="myTutorials.js"></script>


 

 

 

জাভাস্ক্রিপ্ট ফাংশন (JavaScript Functions)

Huge Sell on Popular Electronics

জাভাস্ক্রিপ্ট ফাংশন (JavaScript Functions)

শেখ আবুল হাশিম

 

যেকোন প্রোগ্রামিং ল্যাংগুয়েজ শিখতে যান ফাংশন হচ্ছে তার মুল জিনিসগুলির মধ্যে একটা। সব ল্যাংগুয়েজেই ফাংশন আছে আর সবখানেই ফাংশনের মুল কনসেপ্ট টা একই।তবে সহজ। ফাংশন আর কিছুই না শুধু একটা কোডব্লক কে নাম দেয়া। পরে কোডের যেকোন জায়গায় সেই নাম ধরে ডাকলে কোডব্লকটি এক্সিকিউট হবে। যেমন নিচে একটা ছোট ফাংশন লিখেছি আর নাম দিয়েছি popup() এবং ইনপুট ট্যাগের ভিতর এই নাম ধরে ডাক দিয়েছি (এটাকে বলে ফাংশন কল করা)।

 

01.<html>

02.<head>

03.<script type="text/javascript">

04.function popup() {

05.alert("Hello Webcoachbd")

06.}

07.</script>

08.</head>

09.<body>

10.<input type="button" onclick="popup()" value="popup">

11.</body>

12.</html>

 

এখন বাটনে ক্লিক করলেই popup() ফাংশনটি কল হবে এবং এর ভিতর সেকেন্ড ব্রাকেটের মধ্যে থাকা কোডটুকু এক্সিকিউট হবে। onclick হচ্ছে ইভেন্ট।ইভেন্ট এর বিষয়ে এরপরের টিউটোরিয়ালে আলোচনা আছে।

যাইহোক ফাংশন লেখার সময় প্রথমে function এই শব্দটি এরপর ফাংশনের যেকোন নাম যেমন আমি দিয়েছি popup(). ফাংশনের নাম দেয়ার সময় আপনি ইচ্ছেমত যেকোন নাম দিতে পারেন। আপনি ইচ্ছে করলেই করতে পারেন তার মানে এই নয় যে আপনার এমনই করা উচিৎ। বরং ফাংশনের নাম দেয়ার সময় প্রাসঙ্গিক নাম দেয়া ভাল। যেমন ধরুন দুটি সংখ্যার যোগফল এর মান বের করার জন্য একটা ফাংশন লিখলেন এটার নাম হতে পারে getAddition(). জাভাস্ক্রিপ্টের কিছু সংরক্ষিত নাম আছে, এসব নাম বা শব্দগুলি ফাংশনের নাম কিংবা ভেরিয়েবলের নাম হিসেবে ব্যবহার করা যাবেনা।

ফাংশনে প্যারামিটার ব্যবহার করা

আপনি যখন ফাংশন লিখবেন তখন এখানে প্যারামিটার ব্যবহার করতে পারেন।এই প্যারামিটার প্রথম ব্রাকেটের ভিতর রাখতে হবে,এগুলি একধরনের ভেরিয়েবল।যদি কোন প্যারামিটার না থাকে তাহলে প্রথম ব্রাকেটের ভিতর কিছু থাকবেনা। যেমন popup() ফাংশনটি দেখুন এখানে কোন প্যারামিটার নেই।প্যারামিটার সহ একটি ফাংশন

01. <html>

03. <head>

05. <script type="text/javascript">

07. function getAddition(firstNumber,secondNumber){

09. var result;

11. result = firstNumber + secondNumber;

13. return result;

15. }

17. var myResult = getAddition(10,20);

19. alert(myResult);

21. </script>

23. </head>

25. <body>

27. </body>

29. </html>

ব্যাখ্যাঃএখানে ফাংশনটিতে দুটি প্যারামিটার আছে firstNumber এবং secondNumber.এরপর একটা ভেরিয়েবল ডিক্লেয়ার করেছি যার নাম result এবং এই ভেরিয়েবলে প্যারামিটার দুটি যোগ করেছি।সবশেষে result রিটার্ন করেছি।এটা ফাংশনের একটা গুরত্বপূর্ন বৈশিষ্ট্য যে আপনি শুধু একটা মান ফেরৎ (রিটার্ন) পাঠাতে পারেন। return স্টেটমেন্ট ব্যবহার করে এটা করা যায়।

একটা জিনিস মনে রাখতে হবে যে যখন return স্টেটমেন্ট ব্যবহার করবেন তখন এই স্টেটমেন্টের পর আর কোন কোড কাজ করবেনা।একটা ফাংশন return স্টেটমেন্ট দেখলেই সে সংশ্লিষ্ট মান টি রিটার্ন করে কোড পড়া বন্ধ করে দেয়।

যাইহোক এরপর ১৭ নম্বর লাইনে দেখুন ফাংশনটিকে কিভাবে কল করেছি।return স্টেটমেন্ট দিয়ে পাঠানো মান এভাবে একটা ভেরিয়েবল ডিক্লেয়ার করে ধরতে হয়।যেমন আমি var myResult দিয়ে করেছি।এরপর alert() ফাংশন দিয়ে আউটপুট এনেছি।যদি alert(result) দেন তাহলে হবেনা।কারন তো বললামই যে রিটার্নকৃত মান ভেরিয়েবল দিয়ে ধরতে হয়।

সবশেষে getAddition এ দুটি আর্গুমেন্ট পাঠিয়েছি ১০ এবং ২০ কারন প্যারামিটার দুটি আছে।যতগুলি প্যারামিটার আছে ফাংশনটি কল করার সময় ততগুলি আর্গুমেন্ট পাঠাতে হবে।

*ফাংশনের ভিতরে কোন প্যারামিটার বা ভেরিয়েবল ব্যবহার করলে সেই ভেরিয়েবলের প্রভাব বাইরে থাকবেনা।এমনকি একই নামের একটা ভেরিয়েবল যদি ফাংশনের বাইরে থাকে তারপরেও ভেরিয়েবল দুটি সম্পূর্ন আলাদা।

পিএইচপি ৫ ফাংশন (PHP 5 Functions)

Huge Sell on Popular Electronics

সুদীপ্ত সাহা
PHP এর মূল শক্তি হিসেবে এর ফাংশনকেই বিবেচনা করা হয়। কারণ এর প্রায় ১০০০ বিল্ট-ইন ফাংশন রয়েছে।

PHP ইউজার ডিফাইন্ড ফাংশন

বিল্ট-ইন ফাংশনের পাশাপাশি PHPতে ইউজার ডিফাইন্ড ফাংশনও তৈরি করা যায়।
ফাংশন হচ্ছে কিছু স্টেটমেন্টের একটি ব্লক যা কোন প্রোগ্রামে যতবার ইচ্ছা ততবার ব্যবহার করা যায়। কোন একটি পেজ লোড হওয়ার সময়েই ফাংশন রান করে না। ফাংশনকে রান করানোর জন্য ফাংশনকে কল করতে হয়।

PHP তে ইউজার ডিফাইন্ড ফাংশন তৈরি করা

ইউজার ডিফাইন্ড ফাংশন তৈরি করার জন্য “function” ওয়ার্ড দ্বারা ফাংশনকে ডিক্লেয়ার করতে হয়।

সিনট্যাক্স


 function functionName() {
     code to be executed;
 }

নোটঃ ফাংশনের নাম লেটার অথবা আন্ডারস্কোর দ্বারা শুরু করতে হয়, নাম্বার দ্বারা শুরু করা যায়না।

টিপসঃ ফাংশনের এমন নাম দেয়া উচিৎ যেন তা ফাংশনের কাজকে বোঝায়।

নিচের উদাহরণে "writeMsg()" নামের একটি ফাংশন তৈরি করা হয়েছে। শুরুর দ্বিতীয় বন্ধনী { দ্বারা ফাংশনের শুরুকে বোঝানো হয় এবং শেষের দ্বিতীয় বন্ধনী } দ্বারা ফাংশনের শেষকে বোঝানো হয়েছে। এই ফাংশনের আউটপুট হবেঃ Hello world!

ফাংশনকে কল করার জন্য শুধু এর নামটি লিখলেই হয়ঃ

উদাহরণঃ


<?php
 function writeMsg() {
     echo "Hello world!";
 }
 
 writeMsg(); // call the function
 ?>

 

PHP ফাংশন আর্গুমেন্ট

আর্গুমেন্টের সাহায্যে ফাংশনে ডাটা পাস করা যায়। আর্গুমেন্ট ভ্যারিয়েবল হিসেবে কাজ করে। ফাংশন নেমের পড়ে বন্ধনীর ভেতরে আর্গুমেন্ট ডিক্লেয়ার করা হয়। আপনি আপনার ইচ্ছামতো আর্গুমেন্ট সেট করতে পারবেন, শুধু একটি কমা ব্যবহার করে আর্গুমেন্টগুলোকে আলাদা করতে হয়।

নিচের উদাহরণে ($fname) নামের একটি আর্গুমেন্ট তৈরি করা হয়েছে। familyName() ফাংশনকে কল করার সময় একটি নামও পাস করতে হবে, যা ফাংশনের মধ্যে রান করে ভিন্ন ভিন্ন ফার্স্টনেম এবং একই লাস্টনেমের আউটপুট শো করবে।

উদাহরণঃ


<?php
 function familyName($fname) {
     echo "$fname Refsnes.<br>";
 }
 
 familyName("Jani");
 familyName("Hege");
 familyName("Stale");
 familyName("Kai Jim");
 familyName("Borge");
 ?>

 

নিচের উদাহরণে ($fname and $year) নামের দুইটি আর্গুমেন্ট তৈরি করা হয়েছে।
উদাহরণঃ


<?php
 function familyName($fname, $year) {
     echo "$fname Refsnes. Born in $year <br>";
 }
 
 familyName("Hege", "1975");
 familyName("Stale", "1978");
 familyName("Kai Jim", "1983");
 ?>

 

PHP ডিফল্ট আর্গুমেন্ট ভ্যালু

কিভাবে একটি ডিফল্ট প্যারামিটার ব্যবহার করতে হয় তা নিচের উদাহরণে দেখানো হয়েছে। যদি আমরা কোন আর্গুমেন্ট ছাড়া ফাংশন setHeight() ব্যবহার করি তাহলে এটি আর্গুমেন্টকে ডিফল্ট ভ্যালু হিসেবে গ্রহণ করবে।

উদাহরণঃ


<?php
 function setHeight($minheight = 50) {
     echo "The height is : $minheight <br>";
 }
 
 setHeight(350);
 setHeight(); // will use the default value of 50
 setHeight(135);
 setHeight(80);
 ?>

 

PHP ফাংশন রিটার্নিং ভ্যালু

ফাংশনের কোন ভ্যালুকে রিটার্ন করানোর জন্য return স্টেটমেন্ট ব্যবহার করতে হয়।

উদাহরণঃ


<?php
function sum($x, $y) {
 $z = $x + $y;
 return $z;
}
echo "5 + 10 = " . sum(5, 10) . "<br>";
echo "7 + 13 = " . sum(7, 13) . "<br>";
echo "2 + 4 = " . sum(2, 4);
?>

 

লেকচার-০৮: সিএসই-১০০: সি প্রোগ্রামিং পরিচিতি – সি এ ফাংশন / মেথড (Function/method in C)

Huge Sell on Popular Electronics