Ch 4. Parameters and Function Overloading
|
|
- Dinah Summers
- 5 years ago
- Views:
Transcription
1 Ch 4. Parameters and Function Overloading March 19, 2014 Advanced Networking Technology Lab. (YU-ANTL) Dept. of Information & Comm. Eng, Graduate School, Yeungnam University, KOREA (Tel : ; Fax : ytkim@yu.ac.kr)
2 Parameters Call-by-value Call-by-reference Mixed parameter-lists Outline Overloading and Default Arguments Examples, Rules Testing and Debugging Functions assert Macro Stubs, Drivers ch 4-2
3 Parameters Two methods of passing arguments as parameters Call-by-value "copy" of value is passed Call-by-reference "address of" actual argument is passed ch 4-3
4 Call-by-Value Parameters Copy of actual argument passed Considered "local variable" inside function If modified, only "local copy" changes Function has no access to "actual argument" from caller This is the default method Used in all examples thus far ch 4-4
5 Memory Usage in Call-by-Value double average(int i, int j) { double avg; } avg = (i + j)/2.0; return avg; void main(int argc, char *argv[]) { int x, y; double d; x = 3; y = 5; d = average(x, y); cout << Average: << d <<endl; Function Call: Function average() Return Function Call: main() stack frame for average( ) - arguments: int i, int j - local variables: double avg copy copy stack frame for main( ) - arguments: int argc, char * argv[] - local variables: int x, int y, double d Memory Stack return copy } ch 4-5
6 Call-by-Value Example Formal Parameter Used as a Local Variable (1) ch 4-6
7 Formal Parameter Used as a Local Variable (2) ch 4-7
8 Formal Parameter Used as a Local Variable (3) ch 4-8
9 Call-by-Value Pitfall Common Mistake: Declaring parameter "again" inside function: double fee(int hoursworked, int minutesworked) { int quarterhours; int minutesworked // local variable // NO! } Compiler error results "Redefinition error " Value arguments ARE like "local variables" But function gets them "automatically" ch 4-9
10 Call-By-Reference Parameters Used to provide access to caller s actual argument Caller s data can be modified by called function! Typically used for input function To retrieve data for caller Data is then "given" to caller Specified by ampersand, &, after type in formal parameter list ch 4-10
11 Memory Usage in Call-by-Reference void average(int i, int j, int& sum, double& avg) { sum = i + j; avg = sum/2.0; } void main(int argc, char *argv[]) { int x, y, sum; double avg; x = 3; y = 5; average(x, y, sum, avg); cout << Sum: << sum; cout <<, Average: << avg; Function Call: Function average() Return Function Call: main() stack frame for average( ) - arguments: int i, j, sum, double avg - local variables: copy ref ref stack frame for main( ) - arguments: int argc, char * argv[] - local variables: int x, y, sum, double d Memory Stack } ch 4-11
12 Call-By-Reference Example Call-by-Reference Parameters (1) ch 4-12
13 Call-by-Reference Parameters (2) ch 4-13
14 Call-by-Reference Parameters (3) ch 4-14
15 Call-By-Reference Details What s really passed in? A "reference" back to caller s actual argument! Refers to memory location of actual argument Called "address", which is a unique number referring to distinct place in memory ch 4-15
16 Constant Reference Parameters Reference arguments inherently "dangerous" Caller s data can be changed Often this is desired, sometimes not To "protect" data, & still pass by reference: Use const keyword void sendconstref( const int &par1, const int &par2); Makes arguments "read-only" by function No changes allowed inside function body ch 4-16
17 Parameters ( 파라메터, 매개변수 ) and Arguments ( 인수 ) Confusing terms, often used interchangeably True meanings: Formal parameters In function declaration and function definition Arguments Used to "fill-in" a formal parameter In function call (argument list) Call-by-value & Call-by-reference Simply the "mechanism" used in plug-in process ch 4-17
18 Mixed Parameter Lists Can combine passing mechanisms Parameter lists can include pass-by-value and pass-by-reference parameters Order of arguments in list is critical: void mixedcall(int & par1, int par2, double & par3); Function call: mixedcall(arg1, arg2, arg3); arg1 must be integer type, is passed by reference arg2 must be integer type, is passed by value arg3 must be double type, is passed by reference ch 4-18
19 Choosing Formal Parameter Names Same rule as naming any identifier: Meaningful names! Functions as "self-contained modules" Designed separately from rest of program Assigned to teams of programmers All must "understand" proper function use OK if formal parameter names are same as argument names Choose function names with same rules ch 4-19
20 Passing Arguments to main() function You have used main() function as this: int main(void) {.. } Prototype of main() getting passed arguments int main(int argc, char *argv[]) {.. } ch 4-20
21 Passing Arguments to Main() function argc and argv argc (argument count): integer number of the count of arguments argv (argument vector): character pointers of the arguments C: \cprogram> mycopy src dst m y c c o o p y \0 \0 argv[0] s s r r c c \0 \0 argv[1] d s s t t \0 \0 3 3 argv[2] argc argv 배열 ch 4-21
22 main_arg.c #include <stdio.h> int main(int argc, char *argv[]) { int i = 0; for(i = 0;i < argc; i++) printf(" 명령어라인에서 %d 번째문자열 = %s\n", i, argv[i]); } return 0; Microsoft Windows XP [Version ] (C) Copyright Microsoft Corp. c:\cprogram\mainarg\debug>mainarg src dst 명령어라인에서 0 번째문자열 = mainarg 명령어라인에서 1 번째문자열 =src 명령어라인에서 2 번째문자열 =dst c:\cprogram\mainarg\debug> ch 4-22
23 Providing Arguments in Visual C++ Program 여기에프로그램인수들을넣으면된다. ch 4-23
24 Sample Program: mile2km.c #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { double mile, km; if( argc!= 2 ){ printf(" 사용방법 : mile2km 거리 \n"); return 1; } mile = atof(argv[1]); km = * mile; printf(" 입력된거리 (%d mile) 는 %f km 입니다. \n", mile, km); } return 0; Microsoft Windows XP [Version ] (C) Copyright Microsoft Corp. c:\cprogram\mainarg\debug>mile2km 10 입력된거리 (10 mile) 는 km 입니다. c:\cprogram\mainarg\debug> ch 4-24
25 Sample Program: /* * Test program for main function with argc and argv handling * Programmed by Young-Tak Kim, March 20, 2012 */ #include <iostream> using namespace std; int main(int argc, char *argv[]) { char mode ; double base, exponent; cout << "test program for main function with argc and argv" << endl; cout << "argc: " << argc << endl; for (int i=0; i<argc; i++) { cout << "argv[" << i << "]: " << argv[i] << endl; } if (argc < 4) { cout <<" Error in command format n"; cout <<" Usage> power mode(r or i) base exponent" << endl; return -1; } else { mode = *argv[1]; base = atof(argv[2]); exponent = atof(argv[3]); } cout <<"mode: " << mode; cout << ", base: " << base; cout << ", exponent: " << exponent << endl; } return 0; ch 4-25
26 Execution 1) test Execution 2) test r Execution 3) test i ch 4-26
27 Same function name Function Overloading double avg(double d1, double d2); double avg(double d1, double d2, double d3); double avg(int d1, int d2); double avg(int d1, int d2, int d3); Different parameter lists Separate function definitions Function "signature" Function name & parameter list Must be "unique" for each function definition Allows same task performed on different data ch 4-27
28 Overloading Example: average() Function computes average of 2 numbers: double average(double n1, double n2) { return ((n1 + n2) / 2.0); } Now compute average of 3 numbers: double average(double n1, double n2, double n3) { return ((n1 + n2) / 2.0); } Same name, two functions ch 4-28
29 Overloaded Average() Cont d Which function gets called? Depends on function call itself: avg = average(5.2, 6.7); Calls "two-parameter average()" avg = average(6.5, 8.5, 4.2); Calls "three-parameter average()" Compiler resolves invocation based on signature of function call "Matches" call with appropriate function Each considered separate function ch 4-29
30 Overloading Pitfall Only overload "same-task" functions A mpg() function should always perform same task, in all overloads Otherwise, unpredictable results C++ function call resolution: 1 st : looks for exact signature 2 nd : looks for "compatible" signature ch 4-30
31 1 st : Exact Match Overloading Resolution Looks for exact signature Where no argument conversion required 2 nd : Compatible Match Looks for "compatible" signature where automatic type conversion is possible: 1 st with promotion (e.g., int double) No loss of data 2 nd with demotion (e.g., double int) Possible loss of data ch 4-31
32 Overloading Resolution Example Given following functions: 1. void f(int n, double m); 2. void f(double n, int m); 3. void f(int n, int m); These calls: f(98, 99); Calls #3 f(5.3, 4); Calls #2 f(4.3, 5.2); Calls??? Avoid such confusing overloading ch 4-32
33 Automatic Type Conversion and Overloading Numeric formal parameters typically made "double" type Allows for "any" numeric type Any "subordinate" data automatically promoted int double float double char double *More on this later! Avoids overloading for different numeric types ch 4-33
34 Automatic Type Conversion and Overloading Example Miles-per-Gallon double mpg(double miles, double gallons) { return (miles/gallons); } Example function calls: mpgcomputed = mpg(5, 20); Converts 5 & 20 to doubles, then passes mpgcomputed = mpg(5.8, 20.2); No conversion necessary mpgcomputed = mpg(5, 2.4); Converts 5 to 5.0, then passes values to function ch 4-34
35 Default Arguments Allows omitting some arguments Specified in function declaration/prototype void showvolume(int length, int width = 1, int height = 1); Last 2 arguments are defaulted Possible calls: showvolume(2, 4, 6); //All arguments supplied showvolume(3, 5); //height defaulted to 1 showvolume(7); //width & height defaulted to 1 ch 4-35
36 Default Arguments Example: Default Arguments(1) ch 4-36
37 Default Arguments (2) ch 4-37
38 Testing and Debugging Functions Many methods: Lots of cout statements In calls and definitions Used to "trace" execution Compiler Debugger Environment-dependent : e.g.) Visual Studio debugging F5: go F9: break point F10: trace with step-over F11: trace with step-in assert Macro Early termination as needed Stubs and drivers Incremental development ch 4-38
39 Stubs and Drivers Separate compilation units Each function designed, coded, tested separately Ensures validity of each unit Divide & Conquer Transforms one big task smaller, manageable tasks But how to test independently? Driver programs ch 4-39
40 Driver Program Example: Driver Program (1) ch 4-40
41 Driver Program (2) ch 4-41
42 Driver Program (3) ch 4-42
43 Stubs Develop incrementally Write "big-picture" functions first Low-level functions last "Stub-out" functions until implementation Example: double unitprice(int diameter, double price) { return (9.99); // not valid, but noticeably // a "temporary" value } Calls to function will still "work" ch 4-43
44 Fundamental Testing Rule To write "correct" programs Minimize errors, "bugs" Ensure validity of data Test every function in a program where every other function has already been fully tested and debugged Avoids "error-cascading" & conflicting results ch 4-44
45 Test Driver Program to Measure the Elapsed Time of Program Executions Measurement of Execution Times In order to test a function as a module in a large scale system, a driver program is temporarily prepared and used. This driver program prepares the testing conditions (i.e., arrays to be sorted, input data file and output data files, etc.), and invokes the module to be tested. The measurement of the elapsed time taken to process some function, is usually performed with system clock readings. In Visual C++, QueryPerformanceCounter (LARGE_INTEGER & time) provides the current time in microsecond. So, reading the system time before and after the function call can provide the time taken for the function call. Example of time measurement is as follows: ch 4-45
46 Sample Test Driver for Visual C++ Program #include <Windows.h>... int function_to_be_tested(int array[], int size); // QueryPerformanceFrequency(LARGER_INTEGER *freq); // QueryPerformanceCounter(LARGER_INTEGER *time); int main() { LARGE_INTEGER freq, t_1, t_2 LONGLONG t_diff; double elapsed_time; CONST int MAX_SIZE 1000; int array[max_size], size; }... //Initialize array with size data elements // generated by rand()function QueryPerformanceFrequency(&freq); QueryPerformanceCounter(&t_1); function_to_be_tested(array, size); QueryPerformanceCounter(&t_2); t_diff = t_2.quadpart - t_1.quadpart; elapsed_time = ((double) t_diff / freq.quadpart)* ; // in microsec printf( It took %f [micro-seconds] to perform the function with %d integer data array., elapsed_time, size);... ch 4-46
47 Summary 4-1 Formal parameter is placeholder, filled in with actual argument in function call Call-by-value parameters are "local copies" in receiving function body Actual argument cannot be modified Call-by-reference passes memory address of actual argument Actual argument can be modified Argument MUST be variable, not constant ch 4-47
48 Summary 4-2 Multiple definitions of same function name possible: called function overloading Default arguments allow function call to "omit" some or all arguments in list If not provided default values assigned Functions should be tested independently As separate compilation units, with drivers ch 4-48
49 Homework Write C++ functions that calculate power(base, exponent) in i) recursive function calls, and ii) iterative computation. double powerrecur(double base, int exponent); double poweriter(double base, int exponent); Write a main() function that uses the argument passing for argc and argv[], that receives the mode ( r : recursive, i : iterative), base and exponent from the console command line, and invokes the corresponding function. Check the correct calculations of power for the given base and exponent. Note: Examples of program execution: c:>power r c:>power i Using a test driver to measure the elapsed time of program executions, measure the elapsed times (in micro-second) for powerrecur() and poweriter() for base = and exponent= Explain why the recursive structure takes more execution time in this power calculation. ch 4-49
CSCI 1061U Programming Workshop 2. Function Basics
CSCI 1061U Programming Workshop 2 Function Basics 1 Learning Objectives Predefined Functions Those that return a value and those that don t Programmer-defined Functions Defining, Declaring, Calling Recursive
More informationMore on Func*ons Command Line Arguments CS 16: Solving Problems with Computers I Lecture #8
More on Func*ons Command Line Arguments CS 16: Solving Problems with Computers I Lecture #8 Ziad Matni Dept. of Computer Science, UCSB Announcements Homework #7 due today Lab #4 is due on Monday at 8:00
More informationOverloading Functions & Command Line Use in C++ CS 16: Solving Problems with Computers I Lecture #6
Overloading Functions & Command Line Use in C++ CS 16: Solving Problems with Computers I Lecture #6 Ziad Matni Dept. of Computer Science, UCSB A reminder about Labs Announcements Please make sure you READ
More informationCh 6-1. Structures. March 30, Prof. Young-Tak Kim
2014-1 Ch 6-1. Structures March 30, 2014 Advanced Networking Technology Lab. (YU-ANTL) Dept. of Information & Comm. Eng, Graduate School, Yeungnam University, KOREA (Tel : +82-53-810-2497; Fax : +82-53-810-4742
More informationCh 5-2. Arrays Part 2
2014-1 Ch 5-2. Arrays Part 2 March 29, 2014 Advanced Networking Technology Lab. (YU-ANTL) Dept. of Information & Comm. Eng, Graduate School, Yeungnam University, KOREA (Tel : +82-53-810-2497; Fax : +82-53-810-4742
More informationProgrammer-Defined Functions
Functions Programmer-Defined Functions Local Variables in Functions Overloading Function Names void Functions, Call-By-Reference Parameters in Functions Programmer-Defined Functions function declaration
More informationCh 6-8. C-Strings. April 30, Prof. Young-Tak Kim
2014-1 Ch 6-8. C-Strings April 30, 2014 Advanced Networking Technology Lab. (YU-ANTL) Dept. of Information & Comm. Eng, Graduate School, Yeungnam University, KOREA (Tel : +82-53-810-2497; Fax : +82-53-810-4742
More informationCh 8. Operator Overloading, Friends, and References
2014-1 Ch 8. Operator Overloading, Friends, and References May 28, 2014 Advanced Networking Technology Lab. (YU-ANTL) Dept. of Information & Comm. Eng, Graduate School, Yeungnam University, KOREA (Tel
More informationFunction Call Example
Function Call Example A Function Call Example (1) ch 3-25 A Function Call Example (2) ch 3-26 Alternative Function Declaration Recall: Function declaration is "information for compiler Compiler only needs
More informationFunctions in C C Programming and Software Tools. N.C. State Department of Computer Science
Functions in C C Programming and Software Tools N.C. State Department of Computer Science Functions in C Functions are also called subroutines or procedures One part of a program calls (or invokes the
More informationBIL 104E Introduction to Scientific and Engineering Computing. Lecture 14
BIL 104E Introduction to Scientific and Engineering Computing Lecture 14 Because each C program starts at its main() function, information is usually passed to the main() function via command-line arguments.
More informationArray Initialization
Array Initialization Array declarations can specify initializations for the elements of the array: int primes[10] = { 2, 3, 5, 7, 11, 13, 17, 19, 23, 29 ; initializes primes[0] to 2, primes[1] to 3, primes[2]
More informationCh 1. Algorithms and Basic C++ Programming
2013-2 Ch 1. Algorithms and Basic C++ Programming July 1, 2013 Dept. of Information & Communication Engineering College of Engineering Yeungnam University, KOREA (Tel : +82-53-810-2497; Fax : +82-53-810-4742
More informationChapter 4 Defining Classes I
Chapter 4 Defining Classes I This chapter introduces the idea that students can create their own classes and therefore their own objects. Introduced is the idea of methods and instance variables as the
More informationAbsolute C++ Walter Savitch
Absolute C++ sixth edition Walter Savitch Global edition This page intentionally left blank Absolute C++, Global Edition Cover Title Page Copyright Page Preface Acknowledgments Brief Contents Contents
More informationCS102 Software Engineering Principles
CS102 Software Engineering Principles Bill Cheng http://merlot.usc.edu/cs102-s12 1 Software Engineering Principles You need to develop a plan before you start writing your code Choose the proper data structures
More informationCS2141 Software Development using C/C++ C++ Basics
CS2141 Software Development using C/C++ C++ Basics Integers Basic Types Can be short, long, or just plain int C++ does not define the size of them other than short
More informationCh 6. Structures and Classes
2013-2 Ch 6. Structures and Classes September 1, 2013 Advanced Networking Technology Lab. (YU-ANTL) Dept. of Information & Comm. Eng, Graduate School, Yeungnam University, KOREA (Tel : +82-53-810-2497;
More informationChapter 2. Procedural Programming
Chapter 2 Procedural Programming 2: Preview Basic concepts that are similar in both Java and C++, including: standard data types control structures I/O functions Dynamic memory management, and some basic
More informationC++ for Java Programmers
Basics all Finished! Everything we have covered so far: Lecture 5 Operators Variables Arrays Null Terminated Strings Structs Functions 1 2 45 mins of pure fun Introduction Today: Pointers Pointers Even
More informationOverview (1A) Young Won Lim 9/14/17
Overview (1A) Copyright (c) 2009-2017 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later
More informationDynamic memory allocation
Dynamic memory allocation outline Memory allocation functions Array allocation Matrix allocation Examples Memory allocation functions (#include ) malloc() Allocates a specified number of bytes
More informationChapter 6: User-Defined Functions. Objectives (cont d.) Objectives. Introduction. Predefined Functions 12/2/2016
Chapter 6: User-Defined Functions Objectives In this chapter, you will: Learn about standard (predefined) functions Learn about user-defined functions Examine value-returning functions Construct and use
More informationObject Oriented Design
Object Oriented Design Chapter 6 Example Activity Diagram 1 Outline Chapter 6 Topics 6.6 C++ Standard Library Header Files 6.14 Inline Functions 6.16 Default Arguments 6.17 Unary Scope Resolution Operator
More informationOverview (1A) Young Won Lim 9/9/17
Overview (1A) Copyright (c) 2009-2017 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later
More informationChapter 15 - C++ As A "Better C"
Chapter 15 - C++ As A "Better C" Outline 15.1 Introduction 15.2 C++ 15.3 A Simple Program: Adding Two Integers 15.4 C++ Standard Library 15.5 Header Files 15.6 Inline Functions 15.7 References and Reference
More informationIntroduction to Computers and C++ Programming p. 1 Computer Systems p. 2 Hardware p. 2 Software p. 7 High-Level Languages p. 8 Compilers p.
Introduction to Computers and C++ Programming p. 1 Computer Systems p. 2 Hardware p. 2 Software p. 7 High-Level Languages p. 8 Compilers p. 9 Self-Test Exercises p. 11 History Note p. 12 Programming and
More informationBinghamton University. CS-211 Fall Functions. The Basis of C
Functions The Basis of C 1 What is a function? Have you ever needed to convert from C to F? Demo: http://www.pronk.com/samples/projects/021$function_machine/fu nction_machine.html 2 Function in C float
More informationOverview (1A) Young Won Lim 9/25/17
Overview (1A) Copyright (c) 2009-2017 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later
More informationC++ Programming for Non-C Programmers. Supplement
C++ Programming for Non-C Programmers Supplement C++ Programming for Non-C Programmers C++ Programming for Non-C Programmers Published by ITCourseware, 7245 S. Havana St, Suite 100, Centennial, CO 80112
More informationFunctions in C C Programming and Software Tools
Functions in C C Programming and Software Tools N.C. State Department of Computer Science Functions in C Functions are also called subroutines or procedures One part of a program calls (or invokes the
More informationProfessor Terje Haukaas University of British Columbia, Vancouver C++ Programming
C++ Programming C++ code is essentially a collection of statements terminated by a semicolon, such as (spaces not needed): a = b + c; Most C++ code is organized into header files and cpp files, i.e., C++
More informationCh 7. Constructors and Other Tools
2013-2 Ch 7. Constructors and Other Tools September 3, 2013 Advanced Networking Technology Lab. (YU-ANTL) Dept. of Information & Comm. Eng, Graduate School, Yeungnam University, KOREA (Tel : +82-53-810-2497;
More informationIntroduction to C++ Systems Programming
Introduction to C++ Systems Programming Introduction to C++ Syntax differences between C and C++ A Simple C++ Example C++ Input/Output C++ Libraries C++ Header Files Another Simple C++ Example Inline Functions
More informationC++ Programming for Non-C Programmers. Supplement
C++ Programming for Non-C Programmers Supplement ii C++ Programming for Non-C Programmers C++ Programming for Non-C Programmers Published by itcourseware, 10333 E. Dry Creek Rd., Suite 150, Englewood,
More informationChapter 3 Function Overloading
Chapter 3 Function Overloading Function Overloading. Calling Overloaded Function. Function Overloading When Several Function declaration are specified for a single function name in the same scope, the
More informationFast Introduction to Object Oriented Programming and C++
Fast Introduction to Object Oriented Programming and C++ Daniel G. Aliaga Note: a compilation of slides from Jacques de Wet, Ohio State University, Chad Willwerth, and Daniel Aliaga. Outline Programming
More informationCE221 Programming in C++ Part 1 Introduction
CE221 Programming in C++ Part 1 Introduction 06/10/2017 CE221 Part 1 1 Module Schedule There are two lectures (Monday 13.00-13.50 and Tuesday 11.00-11.50) each week in the autumn term, and a 2-hour lab
More informationIntroduction to Programming Using Java (98-388)
Introduction to Programming Using Java (98-388) Understand Java fundamentals Describe the use of main in a Java application Signature of main, why it is static; how to consume an instance of your own class;
More informationProgramming in C. main. Level 2. Level 2 Level 2. Level 3 Level 3
Programming in C main Level 2 Level 2 Level 2 Level 3 Level 3 1 Programmer-Defined Functions Modularize with building blocks of programs Divide and Conquer Construct a program from smaller pieces or components
More informationJava Methods. Lecture 8 COP 3252 Summer May 23, 2017
Java Methods Lecture 8 COP 3252 Summer 2017 May 23, 2017 Java Methods In Java, the word method refers to the same kind of thing that the word function is used for in other languages. Specifically, a method
More informationBasic C Programming (2) Bin Li Assistant Professor Dept. of Electrical, Computer and Biomedical Engineering University of Rhode Island
Basic C Programming (2) Bin Li Assistant Professor Dept. of Electrical, Computer and Biomedical Engineering University of Rhode Island Data Types Basic Types Enumerated types The type void Derived types
More informationCall-by-Type Functions in C++ Command-Line Arguments in C++ CS 16: Solving Problems with Computers I Lecture #5
Call-by-Type Functions in C++ Command-Line Arguments in C++ CS 16: Solving Problems with Computers I Lecture #5 Ziad Matni Dept. of Computer Science, UCSB Administrative CHANGED T.A. OFFICE/OPEN LAB HOURS!
More informationIntroduction to C++ 2. A Simple C++ Program. A C++ program consists of: a set of data & function definitions, and the main function (or driver)
Introduction to C++ 1. General C++ is an Object oriented extension of C which was derived from B (BCPL) Developed by Bjarne Stroustrup (AT&T Bell Labs) in early 1980 s 2. A Simple C++ Program A C++ program
More informationWriting an ANSI C Program Getting Ready to Program A First Program Variables, Expressions, and Assignments Initialization The Use of #define and
Writing an ANSI C Program Getting Ready to Program A First Program Variables, Expressions, and Assignments Initialization The Use of #define and #include The Use of printf() and scanf() The Use of printf()
More informationProgram Organization and Comments
C / C++ PROGRAMMING Program Organization and Comments Copyright 2013 Dan McElroy Programming Organization The layout of a program should be fairly straight forward and simple. Although it may just look
More informationC++ Basics. Brian A. Malloy. References Data Expressions Control Structures Functions. Slide 1 of 24. Go Back. Full Screen. Quit.
C++ Basics January 19, 2012 Brian A. Malloy Slide 1 of 24 1. Many find Deitel quintessentially readable; most find Stroustrup inscrutable and overbearing: Slide 2 of 24 1.1. Meyers Texts Two excellent
More informationWelcome Back. CSCI 262 Data Structures. Hello, Let s Review. Hello, Let s Review. How to Review 1/9/ Review. Here s a simple C++ program:
Welcome Back CSCI 262 Data Structures 2 - Review What you learned in CSCI 261 (or equivalent): Variables Types Arrays Expressions Conditionals Branches & Loops Functions Recursion Classes & Objects Streams
More informationChapter 4. Procedural Abstraction and Functions That Return a Value. Copyright 2014 Pearson Addison-Wesley. All rights reserved.
Chapter 4 Procedural Abstraction and Functions That Return a Value 1 Overview 4.1 Top-Down Design 4.2 Predefined Functions 4.3 Programmer-Defined Functions 4.4 Procedural Abstraction 4.5 Local Variables
More informationA506 / C201 Computer Programming II Placement Exam Sample Questions. For each of the following, choose the most appropriate answer (2pts each).
A506 / C201 Computer Programming II Placement Exam Sample Questions For each of the following, choose the most appropriate answer (2pts each). 1. Which of the following functions is causing a temporary
More informationLab 8. Follow along with your TA as they demo GDB. Make sure you understand all of the commands, how and when to use them.
Lab 8 Each lab will begin with a recap of last lab and a brief demonstration by the TAs for the core concepts examined in this lab. As such, this document will not serve to tell you everything the TAs
More informationProblem Solving with C++
GLOBAL EDITION Problem Solving with C++ NINTH EDITION Walter Savitch Kendrick Mock Ninth Edition PROBLEM SOLVING with C++ Problem Solving with C++, Global Edition Cover Title Copyright Contents Chapter
More informationThe following program computes a Calculus value, the "trapezoidal approximation of
Multicore machines and shared memory Multicore CPUs have more than one core processor that can execute instructions at the same time. The cores share main memory. In the next few activities, we will learn
More informationMultiple Choice (Questions 1 13) 26 Points Select all correct answers (multiple correct answers are possible)
Name Closed notes, book and neighbor. If you have any questions ask them. Notes: Segment of code necessary C++ statements to perform the action described not a complete program Program a complete C++ program
More informationChapter 13. Recursion. Copyright 2016 Pearson, Inc. All rights reserved.
Chapter 13 Recursion Copyright 2016 Pearson, Inc. All rights reserved. Learning Objectives Recursive void Functions Tracing recursive calls Infinite recursion, overflows Recursive Functions that Return
More informationApplied Programming and Computer Science, DD2325/appcs15 PODF, Programmering och datalogi för fysiker, DA7011
Applied Programming and Computer Science, DD2325/appcs15 PODF, Programmering och datalogi för fysiker, DA7011 Autumn 2015 Lecture 3, Simple C programming M. Eriksson (with contributions from A. Maki and
More informationCh 6-2. File Input / Output
2014-1 Ch 6-2. File Input / Output March 30, 2014 Advanced Networking Technology Lab. (YU-ANTL) Dept. of Information & Comm. Eng, Graduate School, Yeungnam University, KOREA (Tel : +82-53-810-2497; Fax
More informationChapter 4. Procedural Abstraction and Functions That Return a Value. Copyright 2015 Pearson Education, Ltd.. All rights reserved.
Chapter 4 Procedural Abstraction and Functions That Return a Value Overview 4.1 Top-Down Design 4.2 Predefined Functions 4.3 Programmer-Defined Functions 4.4 Procedural Abstraction 4.5 Local Variables
More informationPaytm Programming Sample paper: 1) A copy constructor is called. a. when an object is returned by value
Paytm Programming Sample paper: 1) A copy constructor is called a. when an object is returned by value b. when an object is passed by value as an argument c. when compiler generates a temporary object
More informationFunctions. printf( %f cubed is %f,x,cube(x)); return 0; } return parameter type double cube(double var) { return (var*var*var);
Functions chapter 3 of the text int main(void) double x,y,z; x = cube(y/3.0); printf( %f cubed is %f,x,cube(x)); return 0; return parameter type double cube(double var) return (var*var*var); main() is
More informationMultiple Choice (Questions 1 14) 28 Points Select all correct answers (multiple correct answers are possible)
Name Closed notes, book and neighbor. If you have any questions ask them. Notes: Segment of code necessary C++ statements to perform the action described not a complete program Program a complete C++ program
More informationWelcome Back. CSCI 262 Data Structures. Hello, Let s Review. Hello, Let s Review. How to Review 8/19/ Review. Here s a simple C++ program:
Welcome Back CSCI 262 Data Structures 2 - Review What you learned in CSCI 261 (or equivalent): Variables Types Arrays Expressions Conditionals Branches & Loops Functions Recursion Classes & Objects Streams
More informationPROGRAMMAZIONE I A.A. 2017/2018
PROGRAMMAZIONE I A.A. 2017/2018 FUNCTIONS INTRODUCTION AND MAIN All the instructions of a C program are contained in functions. üc is a procedural language üeach function performs a certain task A special
More informationUser Defined Functions
User Defined Functions CS 141 Lecture 4 Chapter 5 By Ziad Kobti 27/01/2003 (c) 2003 by Ziad Kobti 1 Outline Functions in C: Definition Function Prototype (signature) Function Definition (body/implementation)
More informationAgenda. The main body and cout. Fundamental data types. Declarations and definitions. Control structures
The main body and cout Agenda 1 Fundamental data types Declarations and definitions Control structures References, pass-by-value vs pass-by-references The main body and cout 2 C++ IS AN OO EXTENSION OF
More informationOrganization of Programming Languages CS 3200/5200N. Lecture 09
Organization of Programming Languages CS 3200/5200N Razvan C. Bunescu School of Electrical Engineering and Computer Science bunescu@ohio.edu Control Flow Control flow = the flow of control, or execution
More informationNote 12/1/ Review of Inheritance Practice: Please write down 10 most important facts you know about inheritance...
CISC 2000 Computer Science II Fall, 2014 Note 12/1/2014 1 Review of Inheritance Practice: Please write down 10 most important facts you know about inheritance... (a) What s the purpose of inheritance?
More informationChapter Procedural Abstraction and Functions That Return a Value. Overview. Top-Down Design. Benefits of Top Down Design.
Chapter 4 Procedural Abstraction and Functions That Return a Value Overview 4.1 Top-Down Design 4.2 Predefined Functions 4.3 Programmer-Defined Functions 4.4 Procedural Abstraction 4.5 Local Variables
More informationEC 413 Computer Organization
EC 413 Computer Organization C/C++ Language Review Prof. Michel A. Kinsy Programming Languages There are many programming languages available: Pascal, C, C++, Java, Ada, Perl and Python All of these languages
More informationChapter 4. Procedural Abstraction and Functions That Return a Value
Chapter 4 Procedural Abstraction and Functions That Return a Value Overview 4.1 Top-Down Design 4.2 Predefined Functions 4.3 Programmer-Defined Functions 4.4 Procedural Abstraction 4.5 Local Variables
More informationChapter void Functions. Overview. Functions for All Subtasks. void-functions. Using a void-function. void-function Definition
Chapter 5 Functions for All Subtasks Overview 5.1 void Functions 5.2 Call-By-Reference Parameters 5.3 Using Procedural Abstraction 5.4 Testing and Debugging 5.5 General Debugging Techniques Copyright 2011
More informationC Programming. Course Outline. C Programming. Code: MBD101. Duration: 10 Hours. Prerequisites:
C Programming Code: MBD101 Duration: 10 Hours Prerequisites: You are a computer science Professional/ graduate student You can execute Linux/UNIX commands You know how to use a text-editing tool You should
More informationManaging Memory. (and low level Data Structures) Lectures 22, 23. Hartmut Kaiser.
Managing Memory (and low level Data Structures) Lectures 22, 23 Hartmut Kaiser hkaiser@cct.lsu.edu http://www.cct.lsu.edu/ hkaiser/spring_2015/csc1254.html Programming Principle of the Day Avoid Premature
More informationFORM 1 (Please put your name and section number (001/10am or 002/2pm) on the scantron!!!!) CS 161 Exam II: True (A)/False(B) (2 pts each):
FORM 1 (Please put your name and section number (001/10am or 002/2pm) on the scantron!!!!) CS 161 Exam II: True (A)/False(B) (2 pts each): 1. If a function has default arguments, they can be located anywhere
More informationCS313D: ADVANCED PROGRAMMING LANGUAGE
CS313D: ADVANCED PROGRAMMING LANGUAGE Computer Science Department Lecture 3: C# language basics Lecture Contents 2 C# basics Conditions Loops Methods Arrays Dr. Amal Khalifa, Spr 2015 3 Conditions and
More informationSlide Set 3. for ENCM 339 Fall Steve Norman, PhD, PEng. Electrical & Computer Engineering Schulich School of Engineering University of Calgary
Slide Set 3 for ENCM 339 Fall 2016 Steve Norman, PhD, PEng Electrical & Computer Engineering Schulich School of Engineering University of Calgary September 2016 ENCM 339 Fall 2016 Slide Set 3 slide 2/46
More informationFunctions in C++ Problem-Solving Procedure With Modular Design C ++ Function Definition: a single
Functions in C++ Problem-Solving Procedure With Modular Design: Program development steps: Analyze the problem Develop a solution Code the solution Test/Debug the program C ++ Function Definition: A module
More informationFunctions that Return a Value. Approximate completion time Pre-lab Reading Assignment 20 min. 92
L E S S O N S E T 6.2 Functions that Return a Value PURPOSE PROCEDURE 1. To introduce the concept of scope 2. To understand the difference between static, local and global variables 3. To introduce the
More informationMultiple Choice (Questions 1 13) 26 Points Select all correct answers (multiple correct answers are possible)
Name Closed notes, book and neighbor. If you have any questions ask them. Notes: Segment of code necessary C++ statements to perform the action described not a complete program Program a complete C++ program
More informationCSI33 Data Structures
Outline Department of Mathematics and Computer Science Bronx Community College October 25, 2017 Outline Outline 1 Chapter 8: A C++ Introduction For Python Programmers Function Details Assert Statements
More informationLecture 5: Methods CS2301
Lecture 5: Methods NADA ALZAHRANI CS2301 1 Opening Problem Find the sum of integers from 1 to 10, from 20 to 30, and from 35 to 45, respectively. 2 Solution public static int sum(int i1, int i2) { int
More informationDistributed Real-Time Control Systems. Lecture 17 C++ Programming Intro to C++ Objects and Classes
Distributed Real-Time Control Systems Lecture 17 C++ Programming Intro to C++ Objects and Classes 1 Bibliography Classical References Covers C++ 11 2 What is C++? A computer language with object oriented
More informationCPSC 427: Object-Oriented Programming
CPSC 427: Object-Oriented Programming Michael J. Fischer Lecture 7 September 21, 2016 CPSC 427, Lecture 7 1/21 Brackets Example (continued) Storage Management CPSC 427, Lecture 7 2/21 Brackets Example
More informationFunctions and Recursion
Functions and Recursion 1 Storage Classes Scope Rules Functions with Empty Parameter Lists Inline Functions References and Reference Parameters Default Arguments Unary Scope Resolution Operator Function
More informationShort Notes of CS201
#includes: Short Notes of CS201 The #include directive instructs the preprocessor to read and include a file into a source code file. The file name is typically enclosed with < and > if the file is a system
More informationSlide Set 3. for ENCM 339 Fall 2017 Section 01. Steve Norman, PhD, PEng
Slide Set 3 for ENCM 339 Fall 2017 Section 01 Steve Norman, PhD, PEng Electrical & Computer Engineering Schulich School of Engineering University of Calgary September 2017 ENCM 339 Fall 2017 Section 01
More informationUnit 7. Functions. Need of User Defined Functions
Unit 7 Functions Functions are the building blocks where every program activity occurs. They are self contained program segments that carry out some specific, well defined task. Every C program must have
More informationStrings and Stream I/O
Strings and Stream I/O C Strings In addition to the string class, C++ also supports old-style C strings In C, strings are stored as null-terminated character arrays str1 char * str1 = "What is your name?
More informationint n = 10; int sum = 10; while (n > 1) { sum = sum + n; n--; } cout << "The sum of the integers 1 to 10 is " << sum << endl;
Debugging Some have said that any monkey can write a program the hard part is debugging it. While this is somewhat oversimplifying the difficult process of writing a program, it is sometimes more time
More informationDesign Project - Object-oriented Programming for Tetris Game
2014-1 Design Project - Object-oriented Programming for Tetris Game June 1, 2014 Advanced Networking Technology Lab. (YU-ANTL) Dept. of Information & Comm. Eng, College of Engineering, Yeungnam University,
More informationFunctions. Lecture 6 COP 3014 Spring February 11, 2018
Functions Lecture 6 COP 3014 Spring 2018 February 11, 2018 Functions A function is a reusable portion of a program, sometimes called a procedure or subroutine. Like a mini-program (or subprogram) in its
More informationCS201 - Introduction to Programming Glossary By
CS201 - Introduction to Programming Glossary By #include : The #include directive instructs the preprocessor to read and include a file into a source code file. The file name is typically enclosed with
More informationCSCI565 Compiler Design
CSCI565 Compiler Design Spring 2011 Homework 4 Solution Due Date: April 6, 2011 in class Problem 1: Activation Records and Stack Layout [50 points] Consider the following C source program shown below.
More informationTop-Down Design Predefined Functions Programmer-Defined Functions Procedural Abstraction Local Variables Overloading Function Names
Chapter 4 In this chapter, you will learn about: Top-Down Design Predefined Functions Programmer-Defined Functions Procedural Abstraction Local Variables Overloading Function Names Top-Down Design Top-Down
More informationC/C++ Functions. Mark Redekopp
1 C/C++ Functions Mark Redekopp A QUICK LOOK 2 3 Functions Also called procedures or methods Collection of code that performs a task Do a task given some inputs (but we don't care how it does it a.k.a.
More information#include <iostream> #include <algorithm> #include <cmath> using namespace std; int f1(int x, int y) { return (double)(x/y); }
1. (9 pts) Show what will be output by the cout s in this program. As in normal program execution, any update to a variable should affect the next statement. (Note: boolalpha simply causes Booleans to
More informationCHAPTER 4 FUNCTIONS. Dr. Shady Yehia Elmashad
CHAPTER 4 FUNCTIONS Dr. Shady Yehia Elmashad Outline 1. Introduction 2. Program Components in C++ 3. Math Library Functions 4. Functions 5. Function Definitions 6. Function Prototypes 7. Header Files 8.
More informationTutorial 13 Salary Survey Application: Introducing One- Dimensional Arrays
Tutorial 13 Salary Survey Application: Introducing One- Dimensional Arrays Outline 13.1 Test-Driving the Salary Survey Application 13.2 Introducing Arrays 13.3 Declaring and Initializing Arrays 13.4 Constructing
More informationCSCE 206: Structured Programming in C++
CSCE 206: Structured Programming in C++ 2017 Spring Exam 2 Monday, March 20, 2017 Total - 100 Points B Instructions: Total of 13 pages, including this cover and the last page. Before starting the exam,
More informationLecture 16. Daily Puzzle. Functions II they re back and they re not happy. If it is raining at midnight - will we have sunny weather in 72 hours?
Lecture 16 Functions II they re back and they re not happy Daily Puzzle If it is raining at midnight - will we have sunny weather in 72 hours? function prototypes For the sake of logical clarity, the main()
More information