10 Es26 Lab - Functions

  • Uploaded by: Wilmarc
  • 0
  • 0
  • May 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View 10 Es26 Lab - Functions as PDF for free.

More details

  • Words: 1,334
  • Pages: 31
Functions 10

Introduction to Programming

Top-Down Design • Also called “Divide and Conquer” • A problem solving method in which you first break a problem up into its major sub-problems to derive a solution to the original problem.

Introduction to Programming

Functions in C • Execution starts and ends with the main function • This function can call other functions to do special tasks • Ex. Calling printf and scanf functions

Introduction to Programming

Functions in C • Purpose: to receive 0 or more pieces of data, operate on them, and return at most one piece of data.

input

function

Introduction to Programming

output

Why use function subprograms? • Top-Down Design – easier and simpler – Subprograms make it easier to divide programming tasks • Reuse of Code – Functions can be executed more than once – Easier to alter code Introduction to Programming

Why use function subprograms? • Procedural abstraction – Procedures – functions in C – A programming technique in which we use function sub-programs to allow us to remove from the main function the code that provides detailed solution to a sub-problem

Introduction to Programming

Why use function subprograms? • Protection of Data – Centers around the concept of local data – data available only to the function wherein it is declared and only when the function is executing Note: When the function is done, data is gone

Introduction to Programming

Function Declaration • Done with a function prototype statement • Placed after the preprocessor directives and before the main function • Syntax: return_type function_name (formal parameter list);

Introduction to Programming

Function Definition • Contains the code for the detailed solution to complete a function’s task • Syntax return_type function_name (formal parameter list) { /* local declarations */ /* executable statements */ }

Introduction to Programming

Function Header • Formal parameter list – a list that declares the variables that will contain the data received by the function • Void – used if there are no parameters • You may omit the void and write it as ()

Introduction to Programming

Function Body • Contains the local variable declarations and executable statements for the function • It may or not have a return statement (omitted in void functions)

Introduction to Programming

Function Call • Using the function • Syntax function_name (actual parameter list) Formal parameters – variables that are declared in the function header. Actual parameters – expressions in the function call

Introduction to Programming

Function Call • Void functions – functions that don’t return a value – Cannot be part of an expression – Can only be used as a stand-alone statement • All other functions return a value – Can be used either a part of an expression or a stand-alone statement

Introduction to Programming

#include <stdio.h> void prn_message(void); int main() { prn_message(); return 0; } void prn_message(void) { printf("\nMessage for you: "); printf("Have a nice day! \n"); } Introduction to Programming

#include <stdio.h> void prn_message(int k) { int i; printf("Message for you:\n"); for(i=0; i
The Rules • A function may accept as many parameters as it needs, or no parameters • A function may return either one or no values • Variable declared inside a function are only available to that function, unless explicitly passed to another function

Introduction to Programming

Writing a Function - Example int print_table(double start, double end, double step) { double d; int lines = 1; printf(“Celcius\tFarenheit\n”); for(d =start; d <=end; d+=step, lines++) printf(“%.1lf\t%.1lf\n”,d, d*1.8+32); return lines; }

Introduction to Programming

Writing a Function - Example #include <stdio.h> int print_table(double, double, double); int main() { int how_many; double end = 100.0; how_many = print_table(1.0, end, 3); print_table(end, 200, 15); return 0; } Introduction to Programming

Passing of Parameters • Call by value – Transfers only the value – Any changes made will not be reflected after the function terminates • Call by reference – Pointer to the actual parameter – Any changes made will remain after the function terminates Introduction to Programming

Scope • Refers to the region of a program where a particular meaning of a name (identifier) is visible or can be referenced. • It pertains to any identifier or object that can be defined, such as a variable or a function prototype statement.

Introduction to Programming

Scope 2 Concepts to consider • Block- one or more statements enclosed in a set of curly brackets • Global area – consists of statements that are outside the functions Note: an object’s scope extends from where it is declared until the end of its block or functions.

Introduction to Programming

Scope • The following code will NOT compile: #include <stdio.h> int main() { { int seventy_eight = 78; printf("seventy_eight = %d", seventy_eight); } }

printf("\nseventy_eight = %d\n", seventy_eight);

• Not because there are braces but because seventy_eight's declaration is not visible Introduction to Programming outside the inner block

Scope • Global scope – any object defined in the global area of a program is visible from its definition/declaration until the end of the program • Local scope – any object defined within a block and is visible from the point of declaration until the end of the block. Outside the block they are not visible.

Introduction to Programming

Scope Rules • 1. An identifier may only be used within the function in which it is declared. – The same identifier may be reused on a different block or scope. – Declaring two variables with the same identifier within the same block is prohibited • 2. In case that when an identifier is declared more than once within the same program, an identifier reference always refers to the definition in the inner most block defining the identifier.

Introduction to Programming

Variables • Global variables – variables that may be used all throughout the program • Local variables – variables defined within the function, available only during function execution.

Introduction to Programming

Scope Rules #include <stdio.h> int num1 = 5; /*Global variable*/ int main() { /* Local variables*/ int num1 = 3, num2 = 4; if (num1 < num2){ int num2 = 1; /*num2 redeclared*/ if(num1 < num2) { printf("Pasok!\n"); } } }

else printf("Labas!\n");

printf("Outside num2 = %d\n",num2);

Introduction to Programming

Output: Labas! Outside num2 = 4;

Scope Rules • The following code will NOT compile: #include <stdio.h> int main() { int num1 = 3, num2 = 4; int num2 = 1; /*num2 redeclared*/ if (num1 < num2){ if(num1 < num2) { printf("Pasok!\n"); } } }

else printf("Labas!\n");

printf("Outside num2 = %d\n",num2); Introduction to Programming

Standard Mathematical Functions • As an example of calculation, consider the calculation of the roots of a quadratic equation: ax2 + bx + c = 0 • We can use the square root function of C sqrt() defined in math.h • To use this function, the include statement must appear at the head of the program: #include<math.h> Introduction to Programming

Standard Mathematical Functions ... float a, b, c; float d, r1, r2; printf(“Enter 3 numbers: “); scanf(“%f %f %f”, &a, &b, &c); d = (b*b) – (4.0 * a * c); r1 = (-b + sqrt(d))/(2.0 * a); r2 = (-b - sqrt(d))/(2.0 * a); Introduction to Programming ...

Example: Roots of a Quadratic • We first check if both roots are non-imaginary by finding the discriminant ... d = (b*b) – (4.0 * a * c); if(d< 0) printf(“Imaginary roots”); else{ r1 = (-b + sqrt(d))/(2.0 * a); r2 = (-b - sqrt(d))/(2.0 * a); printf(“%f %f”,r1,r2); } Introduction to Programming ...

Standard Mathematical Functions cos(x) sin(x) tan(x) abs(x) log(x)

Cosine of the angle x, expressed in radians Sine of the angle x, expressed in radians tangent of the angle x, expressed in radians The absolute value of x, sometimes written as |x| Natural logarithm of x ( to the base e)

pow(x,y) x raised to the power of y Introduction to Programming

Related Documents


More Documents from "Wilmarc"

Mscsgradapp
May 2020 8
09 Es26 Lab - Loops 2
May 2020 14
11 Es26 Lab - Arrays
May 2020 14
08 Es26 Lab - Loops
May 2020 6
13 Es 26 - Strings
May 2020 4