Upload
anthony-ferguson
View
221
Download
0
Tags:
Embed Size (px)
Citation preview
Lect 5 P. 1
Engineering H192 - Computer Programming
Winter Quarter Gateway Engineering Education Coalition
C Programming Basics
Lecture 5
Lect 5 P. 2
Engineering H192 - Computer Programming
Winter Quarter Gateway Engineering Education Coalition
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
Lect 5 P. 3
Engineering H192 - Computer Programming
Winter Quarter Gateway Engineering Education Coalition
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.
Lect 5 P. 4
Engineering H192 - Computer Programming
Winter Quarter Gateway Engineering Education Coalition
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.
Lect 5 P. 5
Engineering H192 - Computer Programming
Winter Quarter Gateway Engineering Education Coalition
Some Keywords in C and C++ switchtemplatethisthrowtrytypedefunionunsignedvirtualvoidvolatilewhile
newoperatorprivateprotectedpublicregisterreturnshortsignedsizeofstaticstruct
doubleelseenumexternfloatforfriendgotoifinlineintlong
asmautobreakcasecatchcharclassconstcontinuedefaultdeletedo
Lect 5 P. 6
Engineering H192 - Computer Programming
Winter Quarter Gateway Engineering Education Coalition
Program Structure in C
• EACH complete C program is composed of:
– Comment statements– Pre-processor directives– Declaration statements– One or more functions– Executable statements
Lect 5 P. 7
Engineering H192 - Computer Programming
Winter Quarter Gateway Engineering Education Coalition
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
Lect 5 P. 8
Engineering H192 - Computer Programming
Winter Quarter Gateway Engineering Education Coalition
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
Lect 5 P. 9
Engineering H192 - Computer Programming
Winter Quarter Gateway Engineering Education Coalition
Pre-Processor Directives
#include -- header files for library functions
Example:
#include <stdio.h>
#define -- define constants and macrosExamples:
#define e 2.7182818 #define pi 3.14159265359
Note Space
Note Spaces
Lect 5 P. 10
Engineering H192 - Computer Programming
Winter Quarter Gateway Engineering Education Coalition
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 ;
Lect 5 P. 11
Engineering H192 - Computer Programming
Winter Quarter Gateway Engineering Education Coalition
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.
Lect 5 P. 12
Engineering H192 - Computer Programming
Winter Quarter Gateway Engineering Education Coalition
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
Lect 5 P. 13
Engineering H192 - Computer Programming
Winter Quarter Gateway Engineering Education Coalition
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 */
Lect 5 P. 14
Engineering H192 - Computer Programming
Winter Quarter Gateway Engineering Education Coalition
Executable Statements
• SimpleDeclaring variables
int temp ;char a ;
Assigning Values temp = 5 ;
• Complex, i.e., Calling Functionsfubar (x, y) ;
• Calculationsx = (5. / 2 + 6) * 7 ;
Lect 5 P. 15
Engineering H192 - Computer Programming
Winter Quarter Gateway Engineering Education Coalition
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, ...
Lect 5 P. 16
Engineering H192 - Computer Programming
Winter Quarter Gateway Engineering Education Coalition
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?)
Lect 5 P. 17
Engineering H192 - Computer Programming
Winter Quarter Gateway Engineering Education Coalition
Assignment Operators
Operator: Example: Meaning:
= x = 5 ; x = 5 ;
+= x += 5 ; x = x + 5 ;
–= x –= 5 ; x = x – 5 ;
/= x /= 5 ; x = x / 5 ;
*= x *= 5 ; x = x * 5 ;
%= x %= 5; x = x % 5 ;
Lect 5 P. 18
Engineering H192 - Computer Programming
Winter Quarter Gateway Engineering Education Coalition
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? */
Lect 5 P. 19
Engineering H192 - Computer Programming
Winter Quarter Gateway Engineering Education Coalition
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? */
Lect 5 P. 20
Engineering H192 - Computer Programming
Winter Quarter Gateway Engineering Education Coalition
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 ]
Lect 5 P. 21
Engineering H192 - Computer Programming
Winter Quarter Gateway Engineering Education Coalition
Increment/Decrement Operators
Operator: Meaning: When?
count++ ; count = count + 1 ; After use
++count ; count = count + 1 ; Before use
count-- ; count = count - 1 ; After use
--count ; count = count - 1 ; Before use
Lect 5 P. 22
Engineering H192 - Computer Programming
Winter Quarter Gateway Engineering Education Coalition
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? */
Lect 5 P. 23
Engineering H192 - Computer Programming
Winter Quarter Gateway Engineering Education Coalition
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? */
Lect 5 P. 24
Engineering H192 - Computer Programming
Winter Quarter Gateway Engineering Education Coalition
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)
Lect 5 P. 25
Engineering H192 - Computer Programming
Winter Quarter Gateway Engineering Education Coalition
Relational Operators
Operator: Meaning:
< Less Than> Greater Than<= Less Than or Equal To>= Greater Than or Equal To== Exactly Equal To!= Not Equal To
Lect 5 P. 26
Engineering H192 - Computer Programming
Winter Quarter Gateway Engineering Education Coalition
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 "="
Lect 5 P. 27
Engineering H192 - Computer Programming
Winter Quarter Gateway Engineering Education Coalition
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
Lect 5 P. 28
Engineering H192 - Computer Programming
Winter Quarter Gateway Engineering Education Coalition
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
Lect 5 P. 29
Engineering H192 - Computer Programming
Winter Quarter Gateway Engineering Education Coalition
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 ;}