Lecture 05 - C Programming Basics - 06

  • November 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Lecture 05 - C Programming Basics - 06 as PDF for free.

More details

  • Words: 2,389
  • Pages: 34
Engineering H192 - Computer Programming

C Programming Basics Lecture 5

Winter Quarter

The Ohio State University 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 • A copy of Professor Dick Busick’s flowchart spreadsheet is on the Web site Winter Quarter

The Ohio State University 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

The Ohio State University 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. 44). C++ adds 30 more keywords (see text, pg. 563).

Winter Quarter

The Ohio State University 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

The Ohio State University 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

The Ohio State University 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

The Ohio State University 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

The Ohio State University 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

The Ohio State University 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

The Ohio State University 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

The Ohio State University 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

The Ohio State University 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_name (arg. list) { /* beginning of function */ } /* end of function */ Winter Quarter

The Ohio State University 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 ; temp is assigned the value of 5 • Complex, i.e., Calling Functions plotxy (x, y) ; • Calculations x = (5. / 2 + 6) * 7 ; Winter Quarter

The Ohio State University 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

The Ohio State University Gateway Engineering Education Coalition

Lect 5

P. 15

Engineering H192 - Computer Programming

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)

Winter Quarter

The Ohio State University Gateway Engineering Education Coalition

Lect 5

P. 16

Engineering H192 - Computer Programming

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;

Winter Quarter

The Ohio State University Gateway Engineering Education Coalition

Lect 5

P. 17

Engineering H192 - Computer Programming

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;

Winter Quarter

The Ohio State University Gateway Engineering Education Coalition

Lect 5

P. 18

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

The Ohio State University Gateway Engineering Education Coalition

Lect 5

P. 19

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;

The Ohio State University Gateway Engineering Education Coalition

Lect 5

P. 20

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 ;

Winter Quarter

*/

/* What is value of c now? */

The Ohio State University Gateway Engineering Education Coalition

Lect 5

P. 21

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

The Ohio State University Gateway Engineering Education Coalition

Lect 5

P. 22

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

The Ohio State University Gateway Engineering Education Coalition

Lect 5

P. 23

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 ;

The Ohio State University Gateway Engineering Education Coalition

When? After use Before use After use Before use

Lect 5

P. 24

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

The Ohio State University Gateway Engineering Education Coalition

Lect 5

P. 25

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

The Ohio State University Gateway Engineering Education Coalition

Lect 5

P. 26

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

The Ohio State University Gateway Engineering Education Coalition

Lect 5

P. 27

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

The Ohio State University Gateway Engineering Education Coalition

Lect 5

P. 28

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 "="

The Ohio State University Gateway Engineering Education Coalition

Lect 5

P. 29

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

The Ohio State University Gateway Engineering Education Coalition

Lect 5

P. 30

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:

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

Winter Quarter

The Ohio State University Gateway Engineering Education Coalition

Lect 5

P. 31

Engineering H192 - Computer Programming

Skeleton Program

/*****************************************/ /* Name: Brutus Buckeye */ /* Seat No. 0, Instr: W. Hayes */ /* Program progname/assignment */ /*****************************************/ #include <stdio.h> #include <stdlib.h> #include <math.h> int main ( ) { statements ; } Winter Quarter

The Ohio State University Gateway Engineering Education Coalition

Lect 5

P. 32

Engineering H192 - Computer Programming

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

Winter Quarter

The Ohio State University Gateway Engineering Education Coalition

Lect 5

P. 33

Engineering H192 - Computer Programming

Today’s Assignment • Today’s Assignment is G04 • G03 has a C program that calculates values and assigns them to variables. • You are to do the calculations by hand (quiz and midterm material!!) and print the answers on the problem sheet. • Then, copy the program into your account and run it to get the correct answers. Compare your hand calculations to the computer’s calculations. • What needs to be added to the code so that you know what the computer calculated? Winter Quarter

The Ohio State University Gateway Engineering Education Coalition

Lect 5

P. 34

Related Documents

Lecture 2 C Programming
November 2019 6
C Programming
November 2019 23
C Programming
July 2020 6
C Programming
June 2020 7