Download What is a Function?

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

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

History of the function concept wikipedia , lookup

Function of several real variables wikipedia , lookup

Transcript
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