NOTES ON C++ PROGRAMMINGModule 1: Pointers and Memory Management
NOTES ON C++ PROGRAMMINGModule 1: Pointers and Memory Management
TABLE OF CONTENTSTABLE OF CONTENTS 1OVERVIEW 4BASIC MEMORY MANAGEMENT 5GROUP ASSIGNMENT 6INITIALIZATION 8CONSTANTS 9INCREMENT AND DECREMENT OPERATORS 10ELSE-IF 13SWITCH 14LOOPS 15EXAMPLES OF LOOPS 16BREAK, CONTINUE 18RETURN 19FUNCTION DEFINITION: 21VOID FUNCTIONS 22FUNCTIONS RETURNING A VALUE 23OVERVIEW
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:
The Essay on Memory Management Comparison
When discussing the differences in memory management practices between Windows and Linux environments, an understanding of what they do is necessary. Memory management systems are core aspects of operating systems. Managing a memory hierarchy of random access memory (RAM) and available hard disks is only its basic function. They perform other critical tasks such as the allocation and de-allocation ...
1. Determine the desired output items that the program must produce.2. Determine the input items3. 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.
The Essay on The Paper Analyses Different Types Of Mobility And Transportation Aides
The paper analyses different types of mobility and transportation aides for students with mild disabilities. The research provides information on how these aides help students to succeed academically or functionally. Outline Introduction Discussion New technology to help students Importance of mobility aides Types of mobility devices for students with mild disabilities Mobility aides help students ...
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
|| ORINCREMENT 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 evaluatedTYPE 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
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
The Essay on What Is Language What Are Its Functions Advantages And Limitations
Language is a written code used for communication or for the displaying of data. There are two different types of language: Mathematical (numerical) and natural (e.g. English). An advantage to natural language is to ease the difficulties of communication. An advantage of mathematics as a language is that problems can be solved in an organized and easy-to-follow order. Both types of languages have ...
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
process(a[i]);____________________________________________________
i = 0; while (i
{ process(a[i]); i++; }____________________________________________________
i = 0; do { process(a[i]); . . . i++;. } while (i
EXAMPLES OF LOOPS for (;;) ; (does nothing forever) for (c = getchar(); c != ‘ ‘; c = getchar() ) process(c);___________________________________ for (i=0, j=0; i
process(a[i][j]);___________________________________ for (i = 0; i
{ 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
The Business plan on Financial statement 3
Restaurants, bars and party places are like food, they are indispensable. With the advent of technology, innovations and industry evolution, the market’s (consumer) needs and wants also elevate. Our CHILL LUX’S RESTOBAR is perfectly created to suit market demands. All our marketing strategies, promotions and other business related aspects are all based from the conservative results of our survey. ...
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;}