Welcome to CPSC 206

84
1 Structured Programming in C Structured Programming in C Welcome to CPSC 206 Welcome to CPSC 206

description

Welcome to CPSC 206. Structured Programming in C. Lecture Information. http://people.cs.tamu.edu/ychen/Teaching/CPSC206. Midterm 1. Time: Sept 30, Thur., 8:00-9:15AM Location: HRBB 124 Closed book No textbook, No notes, No calculator You are required to bring: - PowerPoint PPT Presentation

Transcript of Welcome to CPSC 206

Page 1: Welcome to CPSC 206

1

Structured Programming in CStructured Programming in C

Welcome to CPSC 206Welcome to CPSC 206

Page 2: Welcome to CPSC 206

2

Lecture Information

http://people.cs.tamu.edu/ychen/Teaching/CPSC206

Page 3: Welcome to CPSC 206

3

Midterm 1

Time: Sept 30, Thur., 8:00-9:15AM

Location: HRBB 124Closed book

No textbook, No notes, No calculator

You are required to bring: Answer sheet: SCANTRON (NCS MP90051

or 0-101607-TAMU) (You can find it in MSC Bookstore)

No. 2 pencils, eraser Student ID

Page 4: Welcome to CPSC 206

4

Review 1:

Topic 1: Introduction to Computer ScienceTopic 2: Overview of C Language

Chapter 1Section 1.1 – 1.8

Chapter 2Section 2.1 – 2.12

Page 5: Welcome to CPSC 206

5

Topic 1: Introduction to Computer Science

Part I: an overview of computer science.Part II: computer hardware and software.Part III: computer languages.

Page 6: Welcome to CPSC 206

6

Introduction to Computer SciencePart I: an overview of computer science.

What is computer Science?Basic idea about research areas in computer

science. Architecture Operating System Computability theory Algorithm design Programming Language Compiler Complexity theory

Page 7: Welcome to CPSC 206

7

Introduction to Computer SciencePart I: an overview of computer science.

Basic idea about research areas in computer science. (contd.) Human-computer interaction Artificial Intelligence Software engineering Networking, Parallel and Distributed

System.

Page 8: Welcome to CPSC 206

8

Introduction to Computer SciencePart I: an overview of computer science.

Sample Question

Software engineering focuses on how to develop applications for networks.

True of False False

Page 9: Welcome to CPSC 206

9

Introduction to Computer SciencePart II: computer hardware and software

Computer organization. Data representation Main Memory Central Processing Unit (CPU) Secondary Storage Input / Output

Solving problems on computers. System Design Algorithm Development and Representation

Programming

Page 10: Welcome to CPSC 206

10

Computer Organization

Data Representation How data is stored and processed?

All data is stored and processed in binarybinary form, that is, as a series of 00s and 11s.

The definition of Bit, Byte, Word

Sample Question

The number of bits in one Bytes is

a) 4 b) 8 c) 16 d) 32 e) none of the above

b

Page 11: Welcome to CPSC 206

11

Computer Organization

Data RepresentationBinary number

Convert a decimal number to a binary number

What is the decimal value of a binary numberSample Question

The decimal value of a binary number 100001 is

a) 33 b) 1 c) 100001 d) 17 e) none of the above

a

Page 12: Welcome to CPSC 206

12

Computer Organization

Data Representation (contd.) How a signed number is represented in binary

form?In a binary representation, the leftmost bit is

a sign bitsign bit followed by the magnitude bitsmagnitude bits.   Sign-bit: 0 implies a positive number, 1

implies a negative number. How character is represented? (ASCII coding

system)Each character is represented in a 7-bit

format.

Page 13: Welcome to CPSC 206

13

Computer Organization

Sample Question

Consider the data representation of signed integers using 4 bits, in which one bit is used as the sign bit. The maximum decimal integer that can be represented is ___

a) 1111 b) 111 c) 7 d) 15 e) none of the above c

Page 14: Welcome to CPSC 206

14

Computer Organization

Memory: What is memory?

It is part of a computer’s electronic circuitry holding the binary data which is processed by the computer’s program.

Page 15: Welcome to CPSC 206

15

Computer Organization

CPU: What does CPU stand for?

Central Processing Unit (CPU) What is

Control Unit, ALU, Program Counter, Instruction Counter?

What is program? How a program is executed?Machine Cycle

Hardware characteristics:Clock speedMIPS

Page 16: Welcome to CPSC 206

16

Computer Organization

Central Processing Unit (CPU)

Arithmetic/Logic Unit (ALU)

Control unit

CPU

Control and coordinate the computer’s operations.

performs all arithmetic computations and logic operations.

CPU reads program instructions from main memory. CPU executes one instruction at a time until completion.

Page 17: Welcome to CPSC 206

17

Computer Organization

Central Processing Unit (CPU) (contd.)

Program Counter (PC) Instruction Counter (IC) contains the

memory address of the instruction that is currently being executed.

contains the instruction currently being processed.

Page 18: Welcome to CPSC 206

18

Computer Organization

Central Processing Unit (CPU) (contd.) What is program?

Program is a set of instructions How a program is executed?

Program is loaded into memory.In each Machine Cycle:

o Fetch, Decode, Execute

Machine Cycle is repeated until completion.

Page 19: Welcome to CPSC 206

19

Computer Organization

Central Processing Unit (CPU) (contd.) In each Machine Cycle:

Fetch: o The control unit loads the instruction

pointed to by PC to IC. o PC is updated to the address of the next

instruction.Decode: control unit decodes the fetched

instruction and determines the required action to take.

Execute: control unit activates the appropriate circuitry.

Page 20: Welcome to CPSC 206

20

Computer Organization

Central Processing Unit (CPU) (contd.) Hardware characteristics:

The speed of a computer can be quoted as:

o Clock speed, e.g. 100MHz means 100 million cycles per second.

o MIPS, a million instructions per second.

Page 21: Welcome to CPSC 206

21

Computer Organization

Secondary Storage: Mass storage devices

Sequential storage: tape. Random storage: floppy disk, zip disk,

CD-ROM, etc. Static storage.

it doesn't require power to retain stored data.

Slower speed.

Page 22: Welcome to CPSC 206

22

Computer Organization

Input Keyboard, mouse etc

Output: Monitor, printer etc

Page 23: Welcome to CPSC 206

23

Computer Organization

How CPU, Memory, Storage, Input and Output work together? IPOS Cycle

Page 24: Welcome to CPSC 206

24

Computer OrganizationI - Input

InputDevice

P - Process

CPU

O - Output S - Storage

Memory Output Device

Secondary Storage

Data/Progra

m

II

II

Program

output

OO

OO

PP

SSProgram/ Program output

Binary Representation

Page 25: Welcome to CPSC 206

25

Introduction to Computer SciencePart II: computer hardware and software

Computer organization. Data representation Main Memory Central Processing Unit (CPU) Secondary Storage Input / Output

Solving problems on computers. System Design Algorithm Development and Representation Programming

Page 26: Welcome to CPSC 206

26

Solving problems on computers.

System Design Top-down

break the problem into smaller and smaller sub-problems until they can be solved trivially.

Bottom-upstart by designing the low-level details,

and then decide how these will be put together to create the entire system

Page 27: Welcome to CPSC 206

27

Solving problems on computers.

Algorithm Development and Representation What is algorithm?

a specification of the series of steps which must be followed in order to solve a problem or accomplish a task.

Algorithm Representation:Pseudo CodeDecision TreesFlow Charts

Page 28: Welcome to CPSC 206

28

Solving problems on computers.

Programming What is programming?

Programming is the process of translating a problem’s solution into instructions that a computer can process.

Page 29: Welcome to CPSC 206

29

Solving problems on computers.

Programming Paradigms Procedural Programming is based upon the

concept of the modularity.A main procedural program is composed

of one or more modules. Each module is composed of one or more subprograms.

Declarative programming describes to the computer a set of

conditions and lets the computer figure out how to

satisfy them.

Page 30: Welcome to CPSC 206

30

Solving problems on computers.

Programming Paradigms Object oriented programming

A computer program is composed of a collection of individual units, called objects.

Operations are provided for each class of objects.

Operations change the state of an object.To make the overall computation happen,

the objects interact through their own operations and their own data.

Page 31: Welcome to CPSC 206

31

Introduction to Computer SciencePart III: Computer Language

Why Computer needs language? Computer requires an unambiguousunambiguous

language Computer Language are designed to be

unambiguousunambiguous.Precedence and associativity determine

precisely how expressions are evaluated.

Page 32: Welcome to CPSC 206

32

Introduction to Computer SciencePart III: Computer Language

C language C is a general purpose programming

language. C is a middle level language.

It combines the elements of high-level language with the functionality of low-level language.

C is a structured language.It allows programmer to divide program

into modules.

Page 33: Welcome to CPSC 206

33

Introduction to Computer SciencePart III: Computer Language

There is only one programming language that a computer can actually understand and execute: its own native binary machine code.

Languages are classified as low level if they are close to machine code and high level if each language statement corresponds to many machine code instructions.

Page 34: Welcome to CPSC 206

34

End of Review of Topic 1Introduction of Computer Science

Page 35: Welcome to CPSC 206

35

Chapter 1

Review Outline1. A brief history of C2. Features of C3. Get Ready to Program4. General form of a simple program

main function variable declarations

Page 36: Welcome to CPSC 206

36

Chapter 1

Review Outline (contd)5. initialization6. preprocessing directive

include define

7. printf and scanf printf \n scanf

8. while statement

Page 37: Welcome to CPSC 206

37

Chapter 1

1. A brief history of C 1960s, CPL (Combined Programming Language)

capable of both high level machine independent programming and would still allow the programmer to control the behavior of individual bits of data.

too large for use in many applications. 1967, BCPL (Basic CPL): a scaled down version of

CPL. In 1970, B: a scaled down version of BCPL

written specifically for use in systems programming.

In 1972, C Dennis Ritchie returned some of features of BCPL

to the B language in the process of developing C.

Page 38: Welcome to CPSC 206

38

Chapter 1

2. Features of C Small

The core language of C is small; Non-essential functionality, such as math functions

or file handling, is provided by a standardized set of library routines.

Portable: easily moved from machine to machine.

Powerful: it is able to access low level commands

Useful in writing system software Procedural Programming paradigm

Allows programmer to divide program into modules.

Page 39: Welcome to CPSC 206

39

Chapter 1

3. Get Ready to Program The Programming Process

Specify the task Discover an algorithm for its solution Code the algorithm in C Test the code

The cycle of the programming process

edit compile execute

pico / vi gcc / cc

Page 40: Welcome to CPSC 206

40

Chapter 1

4. General Form of a simple program

The general form of a programThe general form of a programpreprocessing directivesint main (){

declarations statements

}

Page 41: Welcome to CPSC 206

41

Chapter 1

4. General Form of a simple program (Cont’d). main function

Every program has a main function. The execution starts at main function.

Declaration All variables in a program must be

declared before they can be used. The data type of a variable specifies what

kind of data can be stored in the variable.

Page 42: Welcome to CPSC 206

42

Chapter 1

4. General Form of a simple program (Cont’d).

Sample Question

int main(){

int c1=4, c2=2;

printf(“Sum: %d\n”, sumc);

}

What is the output?

a) 6 b) 4 c) sumc d) errord

Page 43: Welcome to CPSC 206

43

Chapter 1

5. Initialization A variable can be initialized when it is

declared. Constants or constant expressions can be

used to initialize a variable. Declared variables can be used to initialize a

variable. a variable cannot be used before it has

been declared.

Page 44: Welcome to CPSC 206

44

Chapter 1

6. preprocessing directive #include “filename”

The preprocessor replaces the line with a copy of the named file.

#define A B It affects only those lines in the file that

come after it. All occurrences (after this line) of the

identifier A, except in quoted string, will be changed to B.

Page 45: Welcome to CPSC 206

45

Chapter 1

6. preprocessing directive (Cont’d)

Sample Question

#include <stdio.h>

#define Sumc c1+c2+c3

int main(){

int c1=4, c2=2;

printf(“Ave: %d\n”, Sumc);

}

What is the ouput?

a) 6 b) 4 c) sumc d) error

d

Page 46: Welcome to CPSC 206

46

Chapter 1

6. preprocessing directive (Cont’d)

Sample Question

#include <stdio.h>

#define Sumc c1+c2

int main(){

int c1=4, c2=2;

printf(“Ave: %d\n”, Sumc);

}

What is the ouput?

a) 6 b) 4 c) sumc d) error

a

Page 47: Welcome to CPSC 206

47

Chapter 1

6. preprocessing directive (Cont’d)

Sample Question

#include <stdio.h>

#define Sumc c1+c2

int main(){

int c1=4, c2=2;

printf(“Ave: %d\n”, Sumc/2);

}

a) 5 b) 3 c) 4 d) 2

a

Page 48: Welcome to CPSC 206

48

Chapter 17. printf and scanf

Arguments: control_string and other_arguments control_string contains formats, called

conversion specifications, which are matched with other arguments.

Page 49: Welcome to CPSC 206

49

Chapter 17. printf and scanf (cont’d)

printf: How to specify format using conversion specification? %field_widthconversion_character %field_width.precisionconversion_character Example:

o printf(“%7.2f”, 1.221);o printf(“%7d”, 1221);

Page 50: Welcome to CPSC 206

50

Chapter 17. printf and scanf (cont’d)

printf: How to specify format using conversion specification? %field_widthconversion_character %field_width.precisionconversion_character conversion_character: how the data is

printed?o c: charactero d: decimal integer o f: floating-point numbero s, e, g

table of conversion character, page 16

Page 51: Welcome to CPSC 206

51

Chapter 1

7. printf and scanf (cont’d) printf

Sample Question

What is the output?

pirntf(“%8.2f”, 1.234);

a)_ _ _ 1.23 b) 1.234 c) _ _ _1.234 d) _ _ _ _ 1.23

d

Page 52: Welcome to CPSC 206

52

Chapter 1

7. printf and scanf (cont’d) \n: newline

Sample Question#include <stdio.n>

int main(void)

printf(“%8.2f\n\n\n”, 1.234);

printf(“%8.2f\n\n\n”, 1);

printf(“ \n%d ”, 2);

return 0;

}

if 1.234 is printed at line 1, which line is 2 written?

a)5 b) 7 c) 8 d)6

c

Page 53: Welcome to CPSC 206

53

Chapter 17. printf and scanf (cont’d)

scanf: Arguments: control_string and

other_arguments control_string: conversion specifications

o conversion_character: how the data is read? c: character d: decimal integer f: floating-point number lf: floating-point number (double) Lf: floating-point number (long double) s: string

other_arguments are addresses

table of conversion, page 18

Page 54: Welcome to CPSC 206

54

Chapter 1

7. printf and scanf (cont’d) scanf

Example: scanf(“%d”, &x); &: address operator %d — how to interpret the input stream

o the input characters typed at the keyboard is interpreted as a decimal integer

&x — where to store the valueo the value of the decimal integer is stored at

the address of x.

Page 55: Welcome to CPSC 206

55

Chapter 17. printf and scanf (cont’d)

scanf

Sample Question

Which format should be used to read a long double value?

a) %Lf b)%lf c) %f d) %L

a

Page 56: Welcome to CPSC 206

56

Chapter 1

8. whilewhile (expression)

statementstatement is executed as long as the value

of expression is true true: any non-zero value

Page 57: Welcome to CPSC 206

57

Chapter 1

8. while (cont’d)/* Some powers of 2 are printed. */

#include <stdio.h>

int main(void){ int e = 0, power_of_two = 1;

while (++e <= 10) printf("%5d", power_of_two *= 2); printf("\n"); return 0;}

How many times the body of the loop is executed?

Page 58: Welcome to CPSC 206

58

End of Review of

Chapter 1

Page 59: Welcome to CPSC 206

59

Chapter 2

Review Outline1. Comments2. Keywords3. Identifiers4. Constants

floating numbers integer constants

Page 60: Welcome to CPSC 206

60

Chapter 2

Review Outline (cont’d)5. String Constants6. Operators and Punctuators

Precedence and Associativity of Operators

Division Modulus Increment and Decrement Operators

Assignment Operators7. C System

Page 61: Welcome to CPSC 206

61

Chapter 2

1. Comments What is comment?

Arbitrary strings of symbols placed between the delimiters /* and */.

Single line comment: // text The compiler changes each comment into

a single blank character. Rules:

Multi-line comments cannot be placed in the middle of a keyword or identifier.

Multi-line comments may not be nested.

Page 62: Welcome to CPSC 206

62

Chapter 2

1. Comments (cont’d)

Sample Question

Which of the following is correct?

a) /* comment //a single line comment */

b) int main(v/* comment*/oid)

c) int var/*comment*/1;

d) /* comment /* comment */ */

a

Page 63: Welcome to CPSC 206

63

Chapter 2

2. Keyword What is Keywords?

Keywords are explicitly reserved words that have a strict meaning as individual tokens in C.

Examples of Keywords Data Type: int, char, long, short

Keywords cannot be redefined or used in other contexts.

The table of keywords, page 46

Page 64: Welcome to CPSC 206

64

Chapter 2

3. Identifier What is identifier?

The names of variables, functions, labels and other user-defined items are called identifier.

Special identifier Keywords, names of functions in C library,

main Rules:

1. composed of letters, digits, and underscore _ .2. The first character must be a letter or

underscore.3. case-sensitive4. would not be defined as the special identifiers:

Page 65: Welcome to CPSC 206

65

Chapter 2

3. Identifier (cont’d)

Sample Question

Which of the following is incorrect?

a) int comment;

b) int _int;

c) int int_;

d) int 4int;

d

Page 66: Welcome to CPSC 206

66

Chapter 2

4. Constants1. Floating constants

float: an F suffix o 1.22F

double: unsuffixed floating constanto 1.22

long double: an L suffixo 1.22L

2. Character constants1. ‘A’

Page 67: Welcome to CPSC 206

67

Chapter 2

4. Constants (cont’d) integer constants: decimal, octal,

hexadecimal Representation of integer constants:

Decimal integer: 17 Octal integer: 017 Hexadecimal integer: 0x17

Conversion between different types: an octal integer <-> a decimal integer a hexadecimal integer <-> a decimal

integer

Page 68: Welcome to CPSC 206

68

Chapter 2

4. Constants (cont’d) A review of binary number

What is the decimal value of a binary integer? A binary integer a= ik-1 ik-2 …..i0

o The decimal value is ik-1* 2k-1 + ik-2 * 2k-2 + …..+ i0 * 20

Example:o The decimal value of a binary integer

a = i3i2i1i0=1101 is 1 * 23 + 1 * 22 + 0* 21 + 1 * 20 =13

Page 69: Welcome to CPSC 206

69

Chapter 2

4. Constants (cont’d) Octal Integer:

What is the decimal value of an octal integer? An octal integer a= ik-1 ik-2 …..i0

o The decimal value is ik-1* 8k-1 + ik-2 * 8k-2 + …..+ i0 * 80

Example:o The decimal value of an octal integer

a = i3i2i1i0=7121 is 7 * 83 + 1 * 82 + 2* 81 + 1 * 80 =3665

Page 70: Welcome to CPSC 206

70

Chapter 2

4. Constants (cont’d) Hexadecimal Integer:

What is the decimal value of a hexadecimal integer? A hexadecimal integer a= ik-1 ik-2 …..i0

o The decimal value is ik-1* 16k-1 + ik-2 * 16k-2 + …..+ i0 * 160

Example:o The decimal value of a hexadecimal

integer a = i3i2i1i0=7121 is

7 * 163 + 1 * 162 + 2* 161 + 1 * 160

=28961

Page 71: Welcome to CPSC 206

71

Chapter 2

4. Constants (cont’d)

Sample Question

Which of the decimal value of an octal integer 17?

a) 15 b) 17 c) 23 d) 8

a

Sample Question

What is the output?

print(“%d”, 017);

a) 15 b) 17 c) 23 d) 017

a

Page 72: Welcome to CPSC 206

72

Chapter 2

5. String Constants String constant is a sequence of

characters enclosed in a pair of double quote marks.

Special characters: \”, \\ You mustn't split a string constant across

lines Two string constants that are separated

only by white space are concatenated by the compiler into a single string.

Page 73: Welcome to CPSC 206

73

Chapter 2

6. Operator and Punctuator Precedence and Associativity

determine precisely how expressions are evaluated.

Precedence of operators indicates when they will be evaluatedwhen they will be evaluated.

Associativity o “left to right”: Operations are performed from

left to right Examples: +,-,/,%

o “right to left”: Operations are performed from right to left Examples: ++(prefix), --(prefix)

Page 74: Welcome to CPSC 206

74

Chapter 2

6. Operator and Punctuator Division and Modulus

Division a/b: an integer expression divided by another integer expression yields an integer value.o Any fractional part is discarded.

Modulus a%b: the remainder after a is divided by b.

If a or b is negative, the results of division and modulus are system-dependent

In a/b and a%b, the value of b cannot be zero.

Page 75: Welcome to CPSC 206

75

Chapter 2

6. Operator and Punctuator Increment Operator ++i, i++

Each of the expressions ++i and i++ has a value.o ++i

the stored value of i is incremented first the expression takes as its value the new

stored value of io i++

the expression takes as its value the current stored value of i

the stored value of i is incremented

Page 76: Welcome to CPSC 206

76

Chapter 2

6. Operator and Punctuator Decrement Operator i-- and --i

Each expression has a value.o --i

the stored value of i is decremented by 1 the expression takes as its value the new

stored valued of io i--

the expression takes as its value the current stored valued of i

the stored value of i is decremented by 1

Page 77: Welcome to CPSC 206

77

Chapter 2

6. Operator and Punctuator Increment and Decrement Operator

Ruleso Applied to variables but not

to constants or ordinary expressions

Page 78: Welcome to CPSC 206

78

Chapter 2

6. Operator and Punctuator Increment and Decrement Operator

Sample Question

What is the output?

int i=0x11;

print(“%d”, i++);

a) 15 b) 17 c) 23 d) 017

b

Page 79: Welcome to CPSC 206

79

Chapter 2

6. Operator and Punctuator Assignment Operator

= op=: +=, -=, *=, / =, %=, ……

Semantics: variable op= expression

o equivalent to variable = variable op (expression)

Example:o var*= expr var=var * expro a *= 3 a = a * 3

if a was 4 before the assignment, then a = 12 after that.

Page 80: Welcome to CPSC 206

80

Chapter 2

6. Operator and Punctuator Assignment Operator

Sample Question

What is the output?

int i=0x11;

print(“%d”, i+= 0x11);

a) 15 b) 17 c) 34 d) 017

c

Page 81: Welcome to CPSC 206

81

Chapter 2

7. C System The C system consists of

C language, The preprocessor The compiler The library Other tools useful to the programmer, such

as editors and debugger.

Page 82: Welcome to CPSC 206

82

Chapter 2

7. C System (cont’d) C Standard library: a collection of header files

and library files. Header file:

o The names and characteristics of functions are included into computer files called header file.

Library file: o The actual implementation of functions are

separated into a library file.

Page 83: Welcome to CPSC 206

83

Chapter 2

7. C System (cont’d) How to use a function in the standard library?

The programmer needs to provide the function prototype.o Including appropriate header files.

Do we need to locate the function in the library file? No. o The system knows where to find the code that

corresponds to functions from the standard library.

Page 84: Welcome to CPSC 206

84

End of Review of

Chapter 2