Login | Become a Member | Add a Quote | Friday, September 5, 2008  
Essay Depot Logo

 What Topic Is Your Term Paper or Essay On?
  
ENTER YOUR TOPIC HERE:

  Home | My Profile | Browse |Search | Submit | Links | Contact

Words of Wisdom: "Get your friends close and get your enemies closer" - Punky

Get the publicity you want for your essay!
Help other students make their own better!
Click HERE to submit your essay!

Essay Critique(s)
Express your owns thoughts and ideas on this essay by writing a grade and/or critique.

APA : MLA Home: Science : Technology

Name: Anonymous
Submitted: 08.29.01
Flesch-Kincaid Score: 64.0127998449 ?
Word Count: 1651
"This site is hellacious and outstanding!!"

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.