You are on page 1of 32

C Programming Basics

Lecture 5

Docsity.com

C Program Basics
C vs. C++
C is a subset of C++. All of features in C are
contained in C++
C++ adds more libraries with functions for object
oriented programming
C++ also adds more keywords and some added
features.

Docsity.com

Keywords in C and C++


Certain words have a special meaning to the
C or C++ compiler. They are called reserved
words or keywords. We should not try to use
these words as names of variables or function
names in a program.
The keyword list for C contains 32 words (see
text, pg. 44). C++ adds 30 more keywords
(see text, pg. 563).
Docsity.com

Some Keywords in C and C++


asm
auto
break
case
catch
char
class
const
continue
default
delete
do

double
else
enum
extern
float
for
friend
goto
if
inline
int
long

new
operator
private
protected
public
register
return
short
signed
sizeof
static
struct

switch
template
this
throw
try
typedef
union
unsigned
virtual
void
volatile
while

Docsity.com

Program Structure in C
EACH complete C program is composed of:
Comment statements
Pre-processor directives
Declaration statements
One or more functions
Executable statements

Docsity.com

Program Structure in C
EACH complete C program is composed of:
Comment statements
Pre-processor directives
Comment statements
Declaration statements
Comment statements
One or more functions
Comment statements
Executable statements
Comment statements

Docsity.com

Comment Statements
Formal Comments:
/* Comment .. */

Used for detailed description of functions or


operations (for our benefit, not compilers).
Can take multiple lines in source file.

Informal Comments (only in C++, not C):


// Comment .. Ends at the end of line
Used for quick comments like:

int temp; // temporary variable for storing


// the input value
Docsity.com

Pre-Processor Directives
#include -- header files for library functions
Example:
#include <stdio.h>
Note Space

#define -- define constants and macros


Examples:
#define e 2.7182818
#define pi 3.14159265359
Note Spaces
Docsity.com

Declarations
Declarations tell the compiler what variable
names will be used and what type of data each
can handle (store).
Example declarations:
int a, b, c ;
float r, p, q ;
double x, y, z ;
char m, n ;
Docsity.com

Data Types
Integer variables:

int a, b ;

Integer variables, like a or b, store only whole


numbers like 3 or 7, not 3.33 or 7.65, and only up
to certain maximum values.
Floating point variables:

float c, d ;

Floating point variables, like c or d, store rational


numbers, like 3.14159, but only a limited number
of digits of precision.
Docsity.com

Internal Storage Representation


Definitions:
Binary digit -- or a "bit", is either a 0 or a 1
Byte -- usually a collection of 8 bits together
Word -- often a collection of 4 bytes together

On the SGI Unix system:


an "int" data type takes up 4 bytes
(on some systems, an "int" is only 2 bytes)
a "float" data type takes up 4 bytes
a "double" data type take up 8 bytes
a "char" data type takes up 1 byte
Docsity.com

Programs Have One or More


Functions
Even the main program is a function.
The body of each user-written function is
enclosed in braces, { } (or curly brackets)
The syntax of a function is:
<function type> function_name (arg. list)
{
/* beginning of function */
}
/* end of function
*/

Docsity.com

Executable Statements
Simple
Declaring variables
int temp ;
char a ;
Assigning Values
temp = 5 ; temp is assigned the value of 5

Complex, i.e., Calling Functions


plotxy (x, y) ;
Calculations
x = (5. / 2 + 6) * 7 ;
Docsity.com

Arithmetic Operators
*
/
%

multiply
+
add
divide
subtract
remainder, where:
x = 13 % 5 ; /* x will be equal to 3 */

An expression can be used almost anywhere a


variable of the same type can be used.
Ex. expressions:
num + 3, a * d - 5, ...
Docsity.com

Arithmetic Operators Order of


Evaluation
1. Parentheses: () Evaluate from the inside
out
2. Multiplication, Division, and Remainder:
*, /, and %

3. Addition and Subtraction:


+ and NOTE: Multiple occurrences of operations with the same precedence
evaluate from left to right. (D&D text, pg. 38)
Docsity.com

Arithmetic Operators Order of


Evaluation
For example:
x = 2 * 3 - (4 + 5) + 8 % 7;
x
x
x
x
x

=
=
=
=
=

2 * 3 - 9 + 8 % 7;
6 - 9 + 8 % 7;
6 - 9 + 1;
-3 + 1;
-2;

Docsity.com

Arithmetic Operators Order of


Evaluation
Another example:
x
=
6
/
2
+
1
3
+
8
*
4;
x = 33;
x = 6 / (2 + 1) - (3 + 8) * 4;
x = -42;

Docsity.com

Mixed Mode Arithmetic


When performing arithmetic operations, the
"mode" will one of:
Floating point, if both operands are floating point
Integer, if both operands are integer
Mixed, if one operand in integer and the other is
floating point -- the result is floating point

Integer operations produce integer results


(remember how you first learned to to
division?)
Docsity.com

Assignment Operators
Operator:
=
+=
=
/=
*=
%=

Example:

Meaning:

x=5;
x += 5 ;
x = 5 ;
x /= 5 ;
x *= 5 ;
x %= 5;

x=5;
x=x+5;
x=x5;
x=x/5;
x=x*5;
x= x%5;
Docsity.com

Assignment Operators
Example of assignment operators:
int a = 4, b = 2, c = 36 ;
a += b ;
/* This adds b to a, a = ?
c /= a + b ;
now? */

*/

/* What is value of c
Docsity.com

Assignment Operators
Example of assignment operators:
int a = 4, b = 2, c = 36 ;
a += b ;
/* This adds b to a, a = ? */
[ Answer: a = a + b, so a = 4 + 2 or a = 6 ]
c /= a + b ;
/* What is value of c now? */
Docsity.com

Assignment Operators
Example of assignment operators:
int a = 4, b = 2, c = 36 ;
a += b ;
/* This adds b to a, a = ? */
[ Answer: a = a + b, so a = 4 + 2 or a = 6 ]
c /= a + b ;
/* What is value of c now?
*/
[ Answer: c = c / (a + b), and a = 6 now, Docsity.com

Increment/Decrement Operators
Operator:
count++ ;
++count ;
count-- ;
--count ;

Meaning:
count = count + 1 ;
count = count + 1 ;
count = count - 1 ;
count = count - 1 ;

When?
After use
Before use
After use
Before use
Docsity.com

Increment/Decrement Operators
Examples of increment and decrement
operators:
int a = 4, b = 2, c;
c = ++a + b-- ;
/* What are the values of a, b, c now?

*/

c = b-- - ++a ;
/* What are the values of a, b, c now?

*/
Docsity.com

Increment/Decrement Operators
Examples of increment and decrement
operators:
int a = 4, b = 2, c;
c = ++a + b-- ;
/* What are the values of a, b, c now? */
(Answers: a = 5, b = 1, c = 7)
c = b-- - ++a ;
/* What are the values of a, b, c now? */
Docsity.com

Increment/Decrement Operators
Examples of increment and decrement
operators:
int a = 4, b = 2, c;
c = ++a + b-- ;
/* What are the values of a, b, c now? */
(Answers: a = 5, b = 1, c = 7)
c = b-- - ++a ;
/* What are the values of a, b, c now? */
(Answers: a = 6, b = 0, c = -5)
Docsity.com

Relational Operators
Operator:
<
>
<=
>=
==
!=

Meaning:
Less Than
Greater Than
Less Than or Equal To
Greater Than or Equal To
Exactly Equal To
Not Equal To
Docsity.com

Relational Operators
Used for asking questions like:
Is x bigger than 10?
In C, the value of 1 stands for true and 0
stands for false. But C will recognize any non
zero value as true.
NOTE:

"==" is NOT same as "="


Docsity.com

Logical Operators
! (not)
Ex: a != b is true if a and b are not equal
&& (and)
Ex: 5<6 && 7>4 is true, but
5>6 && 7>4 is not true (i.e., false)
|| (or)
Ex: 5>6 || 7>4 is true
5<6 || 7<4 is also true

Docsity.com

Exponentiation Operations
Exponentiation is not written as x**2 or x^2
C does not have an exponentiation operator.
You can use the math function pow (a, b)
which raises a to the b power. You must put a
#include <math.h> in your source code and
must also use the -lm switch in your compile
command when on the SGI UNIX system.
Ex:

>g++ -o myprog.out myprog.cpp


Docsity.com

Skeleton Program
/************************************
*****/
/* Name: Brutus Buckeye
*/
/* Seat No. 0, Instr: W. Hayes
*/
/* Program progname/assignment */
/************************************
*****/
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
Docsity.com

Shell for programs

Create a skelton.cpp file as a basis for


your assignments
Going to look much like Skeleton program
on previous slide
USAGE for an program
Open skelton.cpp
Save to name for program
Edit program
Docsity.com

You might also like