* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download What is a Function?
Mathematics of radio engineering wikipedia , lookup
Functional decomposition wikipedia , lookup
Big O notation wikipedia , lookup
Continuous function wikipedia , lookup
Non-standard calculus wikipedia , lookup
Principia Mathematica wikipedia , lookup
Elementary mathematics wikipedia , lookup
Dirac delta function wikipedia , lookup
Function (mathematics) wikipedia , lookup
Functions
Reusable parts of Code
Doncho Minkov
Technical Trainer
http://minkov.it
Telerik Software Academy
academy.telerik.com
Table of Contents
Functions Overview
Declaring and Creating
Calling
Functions
Functions
Functions with Parameters
Examples: Functions With Parameters
Print the Sign of Number
Period Between Months
Printing a Triangle of Numbers
2
Table of Contents (2)
Returning Values From Functions
Examples: Returning Values From Functions
Temperature Conversion
Positive Numbers
Data Validation
3
Functions Overview
What is a function?
4
What is a Function?
A function is a kind of building
block that
solves a small problem
A piece of code that has a name and can be
called from the other code
Can take parameters and return a value
Functions allow
programmers to construct
large programs from simple pieces
Functions are also
known as methods,
procedures, and subroutines
5
Why to Use Functions?
More manageable programming
Split large problems into small pieces
Better organization of the program
Improve code readability
Improve code understandability
Avoiding
repeating code
Improve code maintainability
Code reusability
Using existing functions several times
6
Declaring and
Creating Functions
Declaring and Creating
Functions
Function
name
fucntion printLogo(){
console.log("Telerik Corp.");
console.log("www.telerik.com");
}
Each function has a name
It is used to call the Function
Describes its purpose
8
Declaring and Creating
Functions (2)
function printLogo(){
console.log("Telerik Corp.");
console.log("www.telerik.com");
}
Each function has a
It contains
Function
body
body
the programming code
Surrounded by {
and }
9
Calling Functions
Calling Functions
To call a function, simply
use:
1. The function’s name
2. Parentheses (don’t forget them!)
3. A semicolon (;)
printLogo();
This will
execute the code in the function’s
body and will result in printing the following:
Telerik Corp.
www.telerik.com
11
Calling Functions (2)
A function can be called from:
Any other Function
Itself (process known as recursion)
function print(){
console.log("printed");
}
function anotherPrint(){
print();
anotherPrint();
Don't do this
}
at home
12
Declaring and
Calling Functions
Live Demo
Functions with Parameters
Passing Parameters and Returning Values
Function Parameters
To pass
information to a function, you can use
parameters (also known as arguments)
You can pass zero or several input values
You can pass values of different types
Each parameter has name
Parameters are assigned to particular values
when the function is called
Parameters
can change the function behavior
depending on the passed values
15
Defining and Using
Function Parameters
function printSign(number) {
if (number > 0)
console.log("Positive");
else if (number < 0)
console.log("Negative");
else
console.log("Zero");
}
Function’s behavior depends on its
parameters
Parameters can be of any type
integer, floating-point, string, etc.
Arrays
16
Defining and Using
Function Parameters (2)
Functions can have as many parameters as
needed:
function printMax(number1, number2){
var max = number1;
if (number2 > number1)
max = number2;
console.log("Maximal number: " + max);
}
17
Calling Functions
with Parameters
To call a function and pass
values to its
parameters:
Use the function’s name, followed by a list of
expressions for each parameter
Examples:
printSign(-5);
printSign(balance);
printSign(2+3);
printMax(100, 200);
printMax(oldQuantity * 1.5, quantity * 2);
18
Using Functions
With Parameters
Examples
Functions Parameters – Example
function printSign(number){
if (number > 0)
console.log("The number " + number + " is positive.");
else if (number < 0)
console.log("The number " + number + " is negative.");
else
console.log("The number " + number + " is zero.");
}
function printMax(number1, number2){
var max = number1;
if (number2 > number1){
max = number2;
}
console.log("Maximal number: " + max);
}
20
Function Parameters
Live Demo
Months – Example
Display
the period between two months in a
user-friendly way
function sayMonth(month) {
var monthNames = [ "January", "February", "March",
"April", "May", "June", "July",
"August", "September", "October",
"November", "December"];
return monthNames[month-1];
}
(the example continues)
22
Months – Example (2)
function sayPeriod(startMonth, endMonth){
var period = endMonth - startMonth;
if (period < 0){
period = period + 12;
// From December to January the
// period is 1 month, not -11!
}
var resultString = "There are ";
resultString += period + " + months from ";
resultString += sayMonth(startMonth);
resultString += " to ";
resultString += sayMonth(endMonth);
}
23
Months
Live Demo
Printing Triangle – Example
Creating
a program for printing triangles as
shown below:
n=5
1
1
1
1
1
1
1
1
1
2
2
2
2
2
2
2
3
3 4
3 4 5
3 4
3
n=6
1
1
1
1
1
1
1
1
1
1
1
2
2
2
2
2
2
2
2
2
3
3
3
3
3
3
3
4
4 5
4 5 6
4 5
4
25
Printing Triangle – Example
int n = read("input-tb");
var line;
for (line = 1; line <= n; line++)
printLine(1, line);
for (line = n-1; line >= 1; line--)
printLine(1, line);
function printLine(start, end){
var line="";
for (var i = start; i <= end; i++){
line += " " + i;
}
console.log(line);
}
26
Returning Values
From Functions
In JavaScript
Returning Values from
Functions
functions can return a value
The returned values can be of any type
Even of type void (no type)
Returned value
Can be assigned to a variable:
var head = arr.shift();
Can be used in expressions:
var price = getPrice() * quantity * 1.20;
Can be passed to another Function:
var age = parseInt("5");
Defining Functions
That Return a Value
function multiply(int firstNum, int secondNum){
return firstNum * secondNum;
}
Functions can return any type of data (int,
string, array, etc.)
The combination of function's name and
parameters is called function signature
Use return keyword to return a result
30
The return Statement
The return statement:
Immediately terminates function’s execution
Returns specified expression to the caller
Example:
return -1;
To terminate void function, use just:
return;
Return can be used several times in a function
body
To return a different value in different cases
31
Returning Values
From Functions
Examples
Temperature
Conversion – Example
Convert temperature from Fahrenheit to
Celsius:
function fahrenheitToCelsius(degrees){
var celsius = (degrees - 32) * 5 / 9;
return celsius;
}
var tStr = read("input-tb");
var t = parseInt(tStr);
t = fahrenheitToCelsius(t);
console.log("Temperature in Celsius: " + t);
33
Temperature Conversion
Live Demo
Positive Numbers – Example
Check if all
numbers in a sequence are positive:
function arePositive(sequence){
for (var i in sequence) {
var number = sequence[i];
if (number <= 0) {
return false;
}
}
return true;
}
35
Positive Numbers
Live Demo
Data Validation – Example
Validating
input data:
function validate(username, password, email) {
return validateUsername(username) &&
validatePass(password) &&
validateEmail(email);
}
function validateUsername(username) {
return username != "" &&
username.length > 3 &&
username.length < 20;
}
function validatePass(pass) {
return pass != "" && pass.length > 6 && pass.length < 20;
}
function validateEmail(email) {
var containsAt = email.indexOf("@");
return containsAt > 3 && email.length - containsAt > 3;
}
37
Data Validation
Live Demo
Functions – Best Practices
Each function should perform a single,
well-defined task
Function’s name should describe that
task in a clear and non-ambiguous way
Good examples: calculatePrice, readName
Bad examples: f, g1, Process
In JS functions should start with lower letter
Avoid functions longer than one screen
Split them to several shorter functions
39
Functions
Questions?
http://academy.telerik.com
Exercises
1.
Write a function that asks the user for his name and
prints “Hello, <name>” (for example, “Hello,
Peter!”). Write a script to test this function.
2.
Write a function GetMax() with two parameters
that returns the bigger of two integers. Write a
script that reads 3 integers and prints the biggest of
them using the function GetMax().
3.
Write a function that returns the last digit of given
integer as an English word. Examples: 512 "two",
1024 "four", 12309 "nine".
41
Exercises (2)
4.
Write a function that counts how many times given
number appears in given array. Write a test script to
check if the function is working correctly.
5.
Write a function that checks if the element at given
position in given array of integers is bigger than its
two neighbors (when such exist).
6.
Write a Function that returns the index of the first
element in array that is bigger than its neighbors, or
-1, if there’s no such element.
Use the function from the previous exercise.
42
Exercises (3)
7.
Write a function that reverses the digits of given
decimal number. Example: 256 652
8.
Write a function that adds two positive integer
numbers represented as arrays of digits (each array
element arr[i] contains a digit; the last digit is
kept in arr[0]). Each of the numbers that will be
added could have up to 10 000 digits.
43