Engineering H192 - Computer Programming Gateway Engineering Education Coalition Lect 5P. 1Winter...
-
Upload
anthony-ferguson -
Category
Documents
-
view
221 -
download
0
Transcript of Engineering H192 - Computer Programming Gateway Engineering Education Coalition Lect 5P. 1Winter...
![Page 1: Engineering H192 - Computer Programming Gateway Engineering Education Coalition Lect 5P. 1Winter Quarter C Programming Basics Lecture 5.](https://reader036.fdocuments.us/reader036/viewer/2022081511/56649f4f5503460f94c70655/html5/thumbnails/1.jpg)
Lect 5 P. 1
Engineering H192 - Computer Programming
Winter Quarter Gateway Engineering Education Coalition
C Programming Basics
Lecture 5
![Page 2: Engineering H192 - Computer Programming Gateway Engineering Education Coalition Lect 5P. 1Winter Quarter C Programming Basics Lecture 5.](https://reader036.fdocuments.us/reader036/viewer/2022081511/56649f4f5503460f94c70655/html5/thumbnails/2.jpg)
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
![Page 3: Engineering H192 - Computer Programming Gateway Engineering Education Coalition Lect 5P. 1Winter Quarter C Programming Basics Lecture 5.](https://reader036.fdocuments.us/reader036/viewer/2022081511/56649f4f5503460f94c70655/html5/thumbnails/3.jpg)
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.
![Page 4: Engineering H192 - Computer Programming Gateway Engineering Education Coalition Lect 5P. 1Winter Quarter C Programming Basics Lecture 5.](https://reader036.fdocuments.us/reader036/viewer/2022081511/56649f4f5503460f94c70655/html5/thumbnails/4.jpg)
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.
![Page 5: Engineering H192 - Computer Programming Gateway Engineering Education Coalition Lect 5P. 1Winter Quarter C Programming Basics Lecture 5.](https://reader036.fdocuments.us/reader036/viewer/2022081511/56649f4f5503460f94c70655/html5/thumbnails/5.jpg)
Lect 5 P. 5
Engineering H192 - Computer Programming
Winter Quarter Gateway Engineering Education Coalition
Some Keywords in C and C++ switchtemplatethisthrowtrytypedefunionunsignedvirtualvoidvolatilewhile
newoperatorprivateprotectedpublicregisterreturnshortsignedsizeofstaticstruct
doubleelseenumexternfloatforfriendgotoifinlineintlong
asmautobreakcasecatchcharclassconstcontinuedefaultdeletedo
![Page 6: Engineering H192 - Computer Programming Gateway Engineering Education Coalition Lect 5P. 1Winter Quarter C Programming Basics Lecture 5.](https://reader036.fdocuments.us/reader036/viewer/2022081511/56649f4f5503460f94c70655/html5/thumbnails/6.jpg)
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
![Page 7: Engineering H192 - Computer Programming Gateway Engineering Education Coalition Lect 5P. 1Winter Quarter C Programming Basics Lecture 5.](https://reader036.fdocuments.us/reader036/viewer/2022081511/56649f4f5503460f94c70655/html5/thumbnails/7.jpg)
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
![Page 8: Engineering H192 - Computer Programming Gateway Engineering Education Coalition Lect 5P. 1Winter Quarter C Programming Basics Lecture 5.](https://reader036.fdocuments.us/reader036/viewer/2022081511/56649f4f5503460f94c70655/html5/thumbnails/8.jpg)
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
![Page 9: Engineering H192 - Computer Programming Gateway Engineering Education Coalition Lect 5P. 1Winter Quarter C Programming Basics Lecture 5.](https://reader036.fdocuments.us/reader036/viewer/2022081511/56649f4f5503460f94c70655/html5/thumbnails/9.jpg)
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
![Page 10: Engineering H192 - Computer Programming Gateway Engineering Education Coalition Lect 5P. 1Winter Quarter C Programming Basics Lecture 5.](https://reader036.fdocuments.us/reader036/viewer/2022081511/56649f4f5503460f94c70655/html5/thumbnails/10.jpg)
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 ;
![Page 11: Engineering H192 - Computer Programming Gateway Engineering Education Coalition Lect 5P. 1Winter Quarter C Programming Basics Lecture 5.](https://reader036.fdocuments.us/reader036/viewer/2022081511/56649f4f5503460f94c70655/html5/thumbnails/11.jpg)
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.
![Page 12: Engineering H192 - Computer Programming Gateway Engineering Education Coalition Lect 5P. 1Winter Quarter C Programming Basics Lecture 5.](https://reader036.fdocuments.us/reader036/viewer/2022081511/56649f4f5503460f94c70655/html5/thumbnails/12.jpg)
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
![Page 13: Engineering H192 - Computer Programming Gateway Engineering Education Coalition Lect 5P. 1Winter Quarter C Programming Basics Lecture 5.](https://reader036.fdocuments.us/reader036/viewer/2022081511/56649f4f5503460f94c70655/html5/thumbnails/13.jpg)
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 */
![Page 14: Engineering H192 - Computer Programming Gateway Engineering Education Coalition Lect 5P. 1Winter Quarter C Programming Basics Lecture 5.](https://reader036.fdocuments.us/reader036/viewer/2022081511/56649f4f5503460f94c70655/html5/thumbnails/14.jpg)
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 ;
![Page 15: Engineering H192 - Computer Programming Gateway Engineering Education Coalition Lect 5P. 1Winter Quarter C Programming Basics Lecture 5.](https://reader036.fdocuments.us/reader036/viewer/2022081511/56649f4f5503460f94c70655/html5/thumbnails/15.jpg)
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, ...
![Page 16: Engineering H192 - Computer Programming Gateway Engineering Education Coalition Lect 5P. 1Winter Quarter C Programming Basics Lecture 5.](https://reader036.fdocuments.us/reader036/viewer/2022081511/56649f4f5503460f94c70655/html5/thumbnails/16.jpg)
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?)
![Page 17: Engineering H192 - Computer Programming Gateway Engineering Education Coalition Lect 5P. 1Winter Quarter C Programming Basics Lecture 5.](https://reader036.fdocuments.us/reader036/viewer/2022081511/56649f4f5503460f94c70655/html5/thumbnails/17.jpg)
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 ;
![Page 18: Engineering H192 - Computer Programming Gateway Engineering Education Coalition Lect 5P. 1Winter Quarter C Programming Basics Lecture 5.](https://reader036.fdocuments.us/reader036/viewer/2022081511/56649f4f5503460f94c70655/html5/thumbnails/18.jpg)
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? */
![Page 19: Engineering H192 - Computer Programming Gateway Engineering Education Coalition Lect 5P. 1Winter Quarter C Programming Basics Lecture 5.](https://reader036.fdocuments.us/reader036/viewer/2022081511/56649f4f5503460f94c70655/html5/thumbnails/19.jpg)
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? */
![Page 20: Engineering H192 - Computer Programming Gateway Engineering Education Coalition Lect 5P. 1Winter Quarter C Programming Basics Lecture 5.](https://reader036.fdocuments.us/reader036/viewer/2022081511/56649f4f5503460f94c70655/html5/thumbnails/20.jpg)
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 ]
![Page 21: Engineering H192 - Computer Programming Gateway Engineering Education Coalition Lect 5P. 1Winter Quarter C Programming Basics Lecture 5.](https://reader036.fdocuments.us/reader036/viewer/2022081511/56649f4f5503460f94c70655/html5/thumbnails/21.jpg)
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
![Page 22: Engineering H192 - Computer Programming Gateway Engineering Education Coalition Lect 5P. 1Winter Quarter C Programming Basics Lecture 5.](https://reader036.fdocuments.us/reader036/viewer/2022081511/56649f4f5503460f94c70655/html5/thumbnails/22.jpg)
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? */
![Page 23: Engineering H192 - Computer Programming Gateway Engineering Education Coalition Lect 5P. 1Winter Quarter C Programming Basics Lecture 5.](https://reader036.fdocuments.us/reader036/viewer/2022081511/56649f4f5503460f94c70655/html5/thumbnails/23.jpg)
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? */
![Page 24: Engineering H192 - Computer Programming Gateway Engineering Education Coalition Lect 5P. 1Winter Quarter C Programming Basics Lecture 5.](https://reader036.fdocuments.us/reader036/viewer/2022081511/56649f4f5503460f94c70655/html5/thumbnails/24.jpg)
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)
![Page 25: Engineering H192 - Computer Programming Gateway Engineering Education Coalition Lect 5P. 1Winter Quarter C Programming Basics Lecture 5.](https://reader036.fdocuments.us/reader036/viewer/2022081511/56649f4f5503460f94c70655/html5/thumbnails/25.jpg)
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
![Page 26: Engineering H192 - Computer Programming Gateway Engineering Education Coalition Lect 5P. 1Winter Quarter C Programming Basics Lecture 5.](https://reader036.fdocuments.us/reader036/viewer/2022081511/56649f4f5503460f94c70655/html5/thumbnails/26.jpg)
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 "="
![Page 27: Engineering H192 - Computer Programming Gateway Engineering Education Coalition Lect 5P. 1Winter Quarter C Programming Basics Lecture 5.](https://reader036.fdocuments.us/reader036/viewer/2022081511/56649f4f5503460f94c70655/html5/thumbnails/27.jpg)
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
![Page 28: Engineering H192 - Computer Programming Gateway Engineering Education Coalition Lect 5P. 1Winter Quarter C Programming Basics Lecture 5.](https://reader036.fdocuments.us/reader036/viewer/2022081511/56649f4f5503460f94c70655/html5/thumbnails/28.jpg)
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
![Page 29: Engineering H192 - Computer Programming Gateway Engineering Education Coalition Lect 5P. 1Winter Quarter C Programming Basics Lecture 5.](https://reader036.fdocuments.us/reader036/viewer/2022081511/56649f4f5503460f94c70655/html5/thumbnails/29.jpg)
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 ;}