C Programming Basics Lecture 5 Engineering H192 - Computer Programming

advertisement
Engineering H192 - Computer Programming
C Programming Basics
Lecture 5
Winter Quarter
Gateway Engineering Education Coalition
Lect 5
P. 1
Engineering H192 - Computer Programming
ENG H192 Course Web Page
• A web page which contains the course syllabus,
updated lecture notes and other useful
information may be found at:
http://feh.eng.ohio-state.edu
Winter Quarter
Gateway Engineering Education Coalition
Lect 5
P. 2
Engineering H192 - Computer Programming
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.
Winter Quarter
Gateway Engineering Education Coalition
Lect 5
P. 3
Engineering H192 - Computer Programming
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. 545). C++ adds 30 more keywords.
Winter Quarter
Gateway Engineering Education Coalition
Lect 5
P. 4
Engineering H192 - Computer Programming
Some Keywords in C and C++
asm
auto
break
case
catch
char
class
const
continue
default
delete
do
Winter Quarter
double
else
enum
extern
float
for
friend
goto
if
inline
int
long
new
operator
private
protected
public
register
return
short
signed
sizeof
static
struct
Gateway Engineering Education Coalition
switch
template
this
throw
try
typedef
union
unsigned
virtual
void
volatile
while
Lect 5
P. 5
Engineering H192 - Computer Programming
Program Structure in C
• EACH complete C program is composed of:
–
–
–
–
–
Comment statements
Pre-processor directives
Declaration statements
One or more functions
Executable statements
Winter Quarter
Gateway Engineering Education Coalition
Lect 5
P. 6
Engineering H192 - Computer Programming
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
Winter Quarter
Gateway Engineering Education Coalition
Lect 5
P. 7
Engineering H192 - Computer Programming
Comment Statements
• Formal Comments:
/* Comment ….. */
– Used for detailed description of functions or
operations (for our benefit, not compiler’s).
– 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
Winter Quarter
Gateway Engineering Education Coalition
Lect 5
P. 8
Engineering H192 - Computer Programming
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
Winter Quarter
Gateway Engineering Education Coalition
Lect 5
P. 9
Engineering H192 - Computer Programming
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 ;
Winter Quarter
Gateway Engineering Education Coalition
Lect 5
P. 10
Engineering H192 - Computer Programming
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.
Winter Quarter
Gateway Engineering Education Coalition
Lect 5
P. 11
Engineering H192 - Computer Programming
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
Winter Quarter
Gateway Engineering Education Coalition
Lect 5
P. 12
Engineering H192 - Computer Programming
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
*/
Winter Quarter
Gateway Engineering Education Coalition
Lect 5
P. 13
Engineering H192 - Computer Programming
Executable Statements
• Simple
Declaring variables
int temp ;
char a ;
Assigning Values
temp = 5 ;
• Complex, i.e., Calling Functions
fubar (x, y) ;
• Calculations
x = (5. / 2 + 6) * 7 ;
Winter Quarter
Gateway Engineering Education Coalition
Lect 5
P. 14
Engineering H192 - Computer Programming
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, ...
Winter Quarter
Gateway Engineering Education Coalition
Lect 5
P. 15
Engineering H192 - Computer Programming
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?)
Winter Quarter
Gateway Engineering Education Coalition
Lect 5
P. 16
Engineering H192 - Computer Programming
Assignment Operators
Operator:
=
+=
–=
/=
*=
%=
Winter Quarter
Example:
Meaning:
x=5;
x += 5 ;
x –= 5 ;
x /= 5 ;
x *= 5 ;
x %= 5;
x=5;
x=x+5;
x=x–5;
x=x/5;
x=x*5;
x= x%5;
Gateway Engineering Education Coalition
Lect 5
P. 17
Engineering H192 - Computer Programming
Assignment Operators
Example of assignment operators:
int a = 4, b = 2, c = 36 ;
a += b ;
/* This adds b to a, a = ?
*/
c /= a + b ;/* What is value of c now? */
Winter Quarter
Gateway Engineering Education Coalition
Lect 5
P. 18
Engineering H192 - Computer Programming
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? */
Winter Quarter
Gateway Engineering Education Coalition
Lect 5
P. 19
Engineering H192 - Computer Programming
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,
so c = 36 / (6 + 2), so c = 36 / 8 or c = 4 ]
Winter Quarter
Gateway Engineering Education Coalition
Lect 5
P. 20
Engineering H192 - Computer Programming
Increment/Decrement Operators
Operator:
count++ ;
++count ;
count-- ;
--count ;
Winter Quarter
Meaning:
count = count + 1 ;
count = count + 1 ;
count = count - 1 ;
count = count - 1 ;
Gateway Engineering Education Coalition
When?
After use
Before use
After use
Before use
Lect 5
P. 21
Engineering H192 - Computer Programming
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?
*/
Winter Quarter
Gateway Engineering Education Coalition
Lect 5
P. 22
Engineering H192 - Computer Programming
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?
*/
Winter Quarter
Gateway Engineering Education Coalition
Lect 5
P. 23
Engineering H192 - Computer Programming
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)
Winter Quarter
Gateway Engineering Education Coalition
Lect 5
P. 24
Engineering H192 - Computer Programming
Relational Operators
Operator:
<
>
<=
>=
==
!=
Winter Quarter
Meaning:
Less Than
Greater Than
Less Than or Equal To
Greater Than or Equal To
Exactly Equal To
Not Equal To
Gateway Engineering Education Coalition
Lect 5
P. 25
Engineering H192 - Computer Programming
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:
Winter Quarter
"==" is NOT same as "="
Gateway Engineering Education Coalition
Lect 5
P. 26
Engineering H192 - Computer Programming
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
Winter Quarter
Gateway Engineering Education Coalition
Lect 5
P. 27
Engineering H192 - Computer Programming
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:
>CC -o myprog.out myprog.cpp -lm
Winter Quarter
Gateway Engineering Education Coalition
Lect 5
P. 28
Engineering H192 - Computer Programming
Skeleton Program
/* Name: Brutus Buckeye
*/
/* Seat No. 0, Instr: W. Hayes */
/* Program progname
*/
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
void main ( )
{
statements ;
}
Winter Quarter
Gateway Engineering Education Coalition
Lect 5
P. 29
Download