| ||
| ||
| Home | My Profile | Browse |Search | Submit | Links | Contact |
| Words of Wisdom: | "Get your friends close and get your enemies closer" - Punky |
|
| ||
C++ Programming NOTES ON C++ PROGRAMMING Module 1: Pointers and Memory Management NOTES ON C++ PROGRAMMING Module 1: Pointers and Memory Management TABLE OF CONTENTS TABLE OF CONTENTS 1 OVERVIEW 4 BASIC MEMORY MANAGEMENT 5 GROUP ASSIGNMENT 6 INITIALIZATION 8 CONSTANTS 9 INCREMENT AND DECREMENT OPERATORS 10 ELSE-IF 13 SWITCH 14 LOOPS 15 EXAMPLES OF LOOPS 16 BREAK, CONTINUE 18 RETURN 19 FUNCTION DEFINITION: 21 VOID FUNCTIONS 22 FUNCTIONS RETURNING A VALUE 23 OVERVIEW Algorithms: A step-by-step sequence of instructions that describes how to perform a computation. Answers the question "What method will you use to solve this computational problem?" Flowcharts: Provides a pictorial representation of the algorithm using the symbols. Structure Charts: Provides a pictorial representation of the modules contained in the program. Programming Style: Standard form: Function names starts in column 1 and is placed with the required parentheses on a line by itself. The opening brace of the function body follows on the next line and is placed under the first letter of the function name. The closing brace is placed by itself in column 1 as the last line of the function. The final form of your programs should be consistent and should always serve as an aid to the reading and understanding of your programs. Comments: Explanatory remarks made within a program. Help clarify what the complete program is about, what a specific group of statements is meant to accomplish, or what one line is intended to do. Top-Down Program Development: 1. Determine the desired output items that the program must produce. 2. Determine the input items 3. Design the program as follows: a. Select an algorithm for transforming the input items into the desired outputs. b. Check the chosen algorithm, by hand, using specific input values. 4. Code the algorithm into C. 5. Test the program using selected test data. BASIC MEMORY MANAGEMENT Space set aside for the variable: Characters 1 byte (8 bits) Pointers 4 bytes Integers 2 bytes (16 bits) or 4 bytes (32 bits) Short int or short 2 bytes Unsigned int or unsigned 2 bytes Long Integers 4 bytes Floats 4 bytes(single precision, about 7 decimal places) Doubles 8 bytes(double precision, about 15 decimal places) Type Space a) double *values; __________________ ________________________ b) long x[1000]; __________________ ________________________ c) char *s = "string"; __________________ ________________________ d) char s[] = "string"; __________________ ________________________ e) char *name [10]; __________________ ________________________ f) int y; __________________ ________________________ GROUP ASSIGNMENT This assignment is to reinforce the idea of the big picture. Assignment: Your consulting firm has been hired to develop computer application(s) for a book store that will be opening in a local shopping center in 6 months. These applications will help the owner keep track of employee payroll, inventory, special orders, etc. Your group should decide the following: 1. How many different applications do you need to write? 2. Can you use applications that have already been developed? 3. How are you going to divide up the project? Turn in the following: 1. Structure charts for the applications you need to develop inhouse. 2. List of inputs and outputs for each applications. 3. List of variables and memory requirements for each application. Be prepared to: 1. Describe your applications. 2. Why did you select these applications. 3. Defend your logic. Scope Scope of a variable is the part of the program where it can be used. An "automatic" variable is declared at the beginning of a function or in the function’s argument list and its scope is limited to the function it is declared in. Two automatic variables of the same name but in different functions are unrelated. An "external" variable is declared outside any function and its scope is from the point of declaration to the end of the file. INITIALIZATION External (and static) variables are initialized to zero by default. Automatic variables - contain undefined values unless they are initialized. - lose their values when the call to the function they are declared in is over. CONSTANTS integer constant 1 345 -10 character constant 'a' 't' (in single quotes) real constant 2.3 3e10 .12E-5 string constant "abc" "a" (in double quotes) Arithmetic Operators * , /, % + , - Relational Operators <, <=, >, >= == is equal to != is not equal to Logical Operators ! NOT && AND || OR INCREMENT AND DECREMENT OPERATORS ++, -- Assignment Operators var op= expr is equivalent to var = var op expr Conditional Expressions expr1 ? expr2 : expr3 expr1 is first evaluated, if expr1 is true, expr2 is evaluated otherwise, expr3 is evaluated TYPE CONVERSION IMPLICIT TYPE CONVERSION STEP 1 All `char' (and `short') variables are converted to `int' STEP 2 1. If there are any operations with operands of different type `lower' type is promoted to `higher' type hierarchy: int < float < double 2. if its an assignment statement, the result is converted to the type of the assigned variable Explicit Type Conversion The type can be explicitly converted by `type-casting': (type)expression Control Flow if-else if (expression) statementA; else statementB; if (expression) { statementA1; statementA2; } else { statementB; } if (expressionA) statementA1; if (expressionB) statementB1; else statementA2; ELSE-IF if (expression1) statement1; else if (expression2) statement2; . . . else if (expressionN) statementN; else default_statement; SWITCH switch (integer expression) { case const1: statement11; statement12; break; case const2: statement2; break; . . . default: default_statement; break; } LOOPS for while do-while ____________________________________________________ for (i = 0; i < MAX; i++) process(a[i]); ____________________________________________________ i = 0; while (i < MAX) { process(a[i]); i++; } ____________________________________________________ i = 0; do { process(a[i]); . . . i++;. } while (i < MAX); EXAMPLES OF LOOPS for (;;) ; (does nothing forever) for (c = getchar(); c != 'n'; c = getchar() ) process(c); ___________________________________ for (i=0, j=0; i < 10; i++, j++) process(a[i][j]); ___________________________________ for (i = 0; i < 10;) { process(a[i]); i++; } ___________________________________ found = 0; while (!found) { . . if (condition) found = 1; } do { do something; . . printf("once more?"); c = getchar(); getchar(); } while (c == 'y' || c == 'Y'); BREAK, CONTINUE These are one word statements which alter the normal control flow within a loop. break statement stops the current iteration and provides an exit from the innermost for, while or do-while loop. break also provides an exit from switch. continue statement stops the current iteration and starts the next iteration of the loop. In while and do-while loops the test part is executed immediately; in for loops control passes to the increment step. RETURN return statement exits the called function and transfers control to the calling function. return expression; returns the value of the expression. return (expression); the parentheses are optional. return; without an expression, no value is returned, only the call is terminated. Functions - break large tasks into smaller units - hide details of processing from other parts of the program that don't need to know about them This results in: - clarification of the code - less interference between variables - easier-to-change code - easier-to-debug code - reusable code FUNCTION DEFINITION: type function-name(argument declarations) { . . . body of the function . . . } Function definitions can occur in any order in a program. Function definitions are distinct; i.e., you cannot define a function within another function. VOID FUNCTIONS int main(void) { int a, b; . . . if (a == b) print_error(); else print_diff(a, b); return 0; } void print_diff(int v1, int v2) { int diff; diff = (v1 > v2) ? v1 - v2 : v2 - v1; printf("difference is %d", diff); } void print_error(void) { printf("error in processing"); } FUNCTIONS RETURNING A VALUE int main(void) { int a, b; . . . printf("difference is %d", calc_diff(a, b)); return 0; } int calc_diff(int v1, int v2) { if (v1 > v2) return v1-v2; else return v2-v1; } This essay is only for research purposes. If used, be sure to cite it properly! |
|
All images, coding, essays, and pages cannot be used without the prior
written consent of this web site. Copyright © 1996-2008. The Essay Depot. All rights reserved. Privacy Policy. |