* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download CPSC 111
Survey
Document related concepts
Transcript
Welcome to CPSC 206
Structured Programming in C
1
Lecture Information
http://people.cs.tamu.edu/ychen/Teaching/CPSC206
2
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:
Answer sheet: SCANTRON (NCS MP90051 or 0101607-TAMU) (You can find it in MSC
Bookstore)
No. 2 pencils, eraser
Student ID
3
Review 1:
Topic 1: Introduction to Computer Science
Topic 2: Overview of C Language
Chapter 1
Section 1.1 – 1.8
Chapter 2
Section 2.1 – 2.12
4
Topic 1: Introduction to Computer Science
Part I: an overview of computer science.
Part II: computer hardware and software.
Part III: computer languages.
5
Introduction to Computer Science
Part 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
6
Introduction to Computer Science
Part 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.
7
Introduction to Computer Science
Part I: an overview of computer science.
Sample Question
Software engineering focuses on how to
develop applications for networks.
True of False
False
8
Introduction to Computer Science
Part 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
9
Computer Organization
Data Representation
How data is stored and processed?
All data is stored and processed in binary form,
that is, as a series of 0s and 1s.
The definition of Bit, Byte, Word
Sample Question
The number of bits in one Bytes is
a) 4 b) 8
above
c) 16 d) 32 e) none of the
b
10
Computer Organization
Data Representation
Binary number
Convert a decimal number to a binary number
What is the decimal value of a binary number
Sample Question
The decimal value of a binary number 100001 is
a) 33 b) 1
c) 100001
a
d) 17 e) none of the above
11
Computer Organization
Data Representation (contd.)
How a signed number is represented in binary
form?
In a binary representation, the leftmost bit is a
sign bit followed by the magnitude 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.
12
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
the above
c) 7
d) 15 e) none of
c
13
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.
14
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 speed
MIPS
15
Computer Organization
Central Processing Unit (CPU)
CPU reads program instructions from main memory.
CPU executes one instruction at a time until completion.
CPU
Control unit
Control and
coordinate the
computer’s
operations.
Arithmetic/Logic Unit (ALU)
performs all arithmetic
computations and logic
operations.
16
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.
17
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.
18
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.
19
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.
20
Computer Organization
Secondary Storage:
Mass storage devices
Sequential storage: tape.
Random storage: floppy disk, zip disk, CDROM, etc.
Static storage.
it doesn't require power to retain stored data.
Slower speed.
21
Computer Organization
Input
Keyboard, mouse etc
Output:
Monitor, printer etc
22
Computer Organization
How CPU, Memory, Storage, Input and
Output work together?
IPOS Cycle
23
Computer Organization
I - Input
P - Process
O - Output
CPU
Input
Device I
P
S - Storage
Binary Representation
Memory
Data/
Program
I
Program/
Program
S output
O
Output
Device
Program
output
O
Secondary Storage
24
Introduction to Computer Science
Part 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
25
Solving problems on computers.
System Design
Top-down
break the problem into smaller and smaller subproblems until they can be solved trivially.
Bottom-up
start by designing the low-level details, and then
decide how these will be put together to create
the entire system
26
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 Code
Decision Trees
Flow Charts
27
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.
28
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.
29
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.
30
Introduction to Computer Science
Part III: Computer Language
Why Computer needs language?
Computer requires an unambiguous language
Computer Language are designed to be
unambiguous.
Precedence and associativity determine
precisely how expressions are evaluated.
31
Introduction to Computer Science
Part 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.
32
Introduction to Computer Science
Part 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.
33
End of Review of Topic 1
Introduction of Computer Science
34
Chapter 1
Review Outline
1. A brief history of C
2. Features of C
3. Get Ready to Program
4. General form of a simple program
main function
variable declarations
35
Chapter 1
Review Outline (contd)
5. initialization
6. preprocessing directive
include
define
7. printf and scanf
printf
\n
scanf
8. while statement
36
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.
37
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.
38
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
pico / vi
gcc / cc
execute
39
Chapter 1
4. General Form of a simple program
The general form of a program
preprocessing directives
int main ()
{
declarations
statements
}
40
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.
41
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) error
d
42
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.
43
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.
44
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);
}
d
What is the ouput?
a) 6
b) 4
c) sumc
d) error
45
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);
}
a
What is the ouput?
a) 6
b) 4
c) sumc
d) error
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/2);
a
}
a) 5
b) 3
c) 4
d) 2
47
Chapter 1
7. printf and scanf
Arguments: control_string and other_arguments
control_string contains formats, called
conversion specifications, which are
matched with other arguments.
48
Chapter 1
7. 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);
49
Chapter 1
7. 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
o
o
o
c: character
d: decimal integer
f: floating-point number
s, e, g table of conversion character, page 16
50
Chapter 1
7. printf and scanf (cont’d)
printf
Sample Question
What is the output?
pirntf(“%8.2f”, 1.234);
d
a)_ _ _ 1.23 b) 1.234 c) _ _ _1.234 d) _ _ _ _ 1.23
51
Chapter 1
7. printf and scanf (cont’d)
\n: newline
Sample Question
#include <stdio.n>
c
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
52
Chapter 1
7. 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
table of conversion, page 18
d: decimal integer
f: floating-point number
lf: floating-point number (double)
Lf: floating-point number (long double)
s: string
other_arguments are addresses
53
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 value
o the value of the decimal integer is stored at the
address of x.
54
Chapter 1
7. printf and scanf (cont’d)
scanf
Sample Question
a
Which format should be used to read a long double
value?
a) %Lf
b)%lf
c) %f
d) %L
55
Chapter 1
8. while
while (expression)
statement
statement is executed as long as the value of
expression is true
true: any non-zero value
56
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;
}
How many times the body of
the loop is executed?
while (++e <= 10)
printf("%5d", power_of_two *= 2);
printf("\n");
return 0;
57
End of Review of
Chapter 1
58
Chapter 2
Review Outline
1.
2.
3.
4.
Comments
Keywords
Identifiers
Constants
floating numbers
integer constants
59
Chapter 2
Review Outline (cont’d)
5. String Constants
6. Operators and Punctuators
Precedence and Associativity of Operators
Division
Modulus
Increment and Decrement Operators
Assignment Operators
7. C System
60
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.
61
Chapter 2
1. Comments (cont’d)
Sample Question
a
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 */ */
62
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
63
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.
2.
3.
4.
composed of letters, digits, and underscore _ .
The first character must be a letter or underscore.
case-sensitive
would not be defined as the special identifiers:
64
Chapter 2
3. Identifier (cont’d)
Sample Question
d
Which of the following is incorrect?
a) int comment;
b) int _int;
c) int int_;
d) int 4int;
65
Chapter 2
4. Constants
1. Floating constants
float: an F suffix
o 1.22F
double: unsuffixed floating constant
o 1.22
long double: an L suffix
o 1.22L
2. Character constants
1. ‘A’
66
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
67
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
68
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
69
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
70
Chapter 2
4. Constants (cont’d)
Sample Question
a
Which of the decimal value of an octal integer 17?
a) 15 b) 17 c) 23 d) 8
Sample Question
What is the output?
a
print(“%d”, 017);
a) 15 b) 17 c) 23 d) 017
71
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.
72
Chapter 2
6. Operator and Punctuator
Precedence and Associativity
determine precisely how expressions are
evaluated.
Precedence of operators indicates when
they will be evaluated.
Associativity
o
o
“left to right”: Operations are performed from left to
right
Examples: +,-,/,%
“right to left”: Operations are performed from right to
left
Examples: ++(prefix), --(prefix)
73
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.
74
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 i
o i++
the expression takes as its value the current
stored value of i
the stored value of i is incremented
75
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 i
o i- the expression takes as its value the current
stored valued of i
the stored value of i is decremented by 1
76
Chapter 2
6. Operator and Punctuator
Increment and Decrement Operator
Rules
o Applied to variables but not
to constants or
ordinary expressions
77
Chapter 2
6. Operator and Punctuator
Increment and Decrement Operator
Sample Question
What is the output?
b
int i=0x11;
print(“%d”, i++);
a) 15 b) 17 c) 23 d) 017
78
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 * expr
o a *= 3 a = a * 3
if a was 4 before the assignment, then a = 12
after that.
79
Chapter 2
6. Operator and Punctuator
Assignment Operator
Sample Question
What is the output?
c
int i=0x11;
print(“%d”, i+= 0x11);
a) 15 b) 17 c) 34 d) 017
80
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.
81
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.
82
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.
83
End of Review of
Chapter 2
84