Lecture 2 Introduction to C Programming - PowerPoint PPT Presentation

1 / 43
About This Presentation
Title:

Lecture 2 Introduction to C Programming

Description:

Computers until the second world war and before. The earliest computing machines had fixed programs. ... OP-Code. 0. 2. 3. 5. 6. 15. 3 bit. 3 bit. 10 bit. 16 ... – PowerPoint PPT presentation

Number of Views:130
Avg rating:3.0/5.0
Slides: 44
Provided by: arne69
Category:

less

Transcript and Presenter's Notes

Title: Lecture 2 Introduction to C Programming


1
Lecture 2Introduction to C Programming
  • Arne Kutzner
  • Hanyang University / Seoul Korea

2
This week
  • You will learn
  • From the first Computers to the C Programming
    Languages
  • Von Neumann Architecture
  • The Idea of binary computing
  • Origins of Programming Languages
  • About Flowcharts and Algorithms

3
Von Neumanns Computer Architecture
  • Foundations of modern Computers and their
    Programming

4
Computers until the second world war and before
  • The earliest computing machines had fixed
    programs.
  • The earliest computers were not so much
    "programmed" as they were "designed".
  • "Reprogramming", when it was possible at all, was
    a laborious process, starting with flow charts
    and paper notes, followed by detailed engineering
    designs, and then the often arduous process of
    physically rewiring and rebuilding the machine.

5
Examples of fixed program computers
  • Colossus Mark I (Dec. 1943) / Colossus Mark II
    (June 1944)

Purpose Message Decoding during World War 2
(was used to help decipher teleprinter messages
which had been encrypted using the Lorenz SZ40/42
machine (Enigma))
INFO in the Web http//en.wikipedia.org/wiki/Colo
ssus_computer
6
Von Neumann Architecture (proposed 1945)
Memory
Control Unit
Arithmetic Logic Unit
Accumulator
Input
Output
7
Von Neumann Architecture (2)
  • The Control Unit understands instructions like
    e.g. copy data from the memory to the accumulator
    gt Instruction Set Architecture
  • The Arithmetic Logic Unit performs arithmetic
    operations and Boolean operations.
  • The Memory stores data and Program (Series of
    control unit instructions
  • The Input takes data in form of an data stream
    from some medium
  • The Output receives data in form of data stream
    and delivers them to some output medium

8
Von Neumann Architecture (3)
  • Von Neumanns approach was revolutionary
    becauseHe created an instruction set
    architecture and detailed the computation as the
    execution of a series of instructions (the
    program) stored in the memory.
  • Program and data share the memory !!
  • Highly flexible computer design

9
Structure of Memory
Addresses
Memory Cells
  • Ordered sequence of storage locations called
    memory cells.
  • Each memory cell is identified by a unique address

43
0000
87
0001
06
0002
00
0003
12
0004
00
0005
Content of a memory cell
10
Instruction representation
  • Instruction are encoded using sequences of bits
  • Example PDP-11(single operand instructions)

INFO in the Web http//en.wikipedia.org/wiki/PDP-
11
16 bit 2 byte
10 bit
3 bit
3 bit
11
Computer nowadays?
  • Almost all modern computer have still a Von
    Neumann Architecture

CPU
12
How to program von Neumann computer ?
13
Assembler Code
  • Sequence of processor instructions in human
    readable text-form this is called Assembler
    Code
  • Example for PDP-11 Assembler Code

.TITLE HELLO WORLD .MCALL
.TTYOUT,.EXIT HELLO MOV MSG,R1 STARTING
ADDRESS OF STRING1 MOVB (R1),R0 FETCH
NEXT CHARACTER BEQ DONE IF ZERO,
EXIT LOOP .TTYOUT OTHERWISE
PRINT IT BR 1 REPEAT
LOOPDONE .EXIT MSG .ASCIZ /Hello,
world!/ .END HELLO
This PDP-11 Assembler Code prints Hello World
14
Assembler and Programming Languages
  • Assembler was the first form of some primitive
    (low-level) programming language
  • DefinitionA programming language is a set of
    rules that provides a way of telling a computer
    what operations to perform.

15
Disadvantages of Assembler Code
  • Low level of abstraction
  • Code is processor (vendor)-specificTherefore
    Non portable
  • The code is unstructured
  • Difficult to read
  • Risk of spaghetti-structure
  • Time intensive to learn and to program

16
High-level Programming Languages
  • The wish for some programming medium that is more
    abstract than assembler lead to the development
    of High-level Programming Languages
  • DefinitionA high-level programming language is
    a programming language that, in comparison to
    low-level programming languages, may be more
    abstract, easier to use, or more portable across
    platforms.

17
Early high-level programming languages
  • FortranFor programming in the scientific area
    (number crunching)
  • CobolFor programming of business applications
    (e.g. banking applications)
  • LispDevelopment originally motivated be
    research in the Artificial Intelligence area

18
Fortran Code Example
c2345678901234567890123456789012345678901234567890
1234567890123456789012 PROGRAM spherec This
program determines the surface area and volume of
a sphere, given c its radius.c Variable
declarations REAL rad, area, volume, pic
Definition of variablesc rad radius, area
surface area, volume volume of the spherec
Assign a value to the variable pi. pi
3.141593c Input the value of the radius and
echo the inputted value. PRINT , 'Enter the
radius of the sphere. ' READ , rad PRINT ,
rad, ' is the value of the radius. 'c Compute
the surface area and volume of the sphere. area
4.0 pi rad2 volume (4.0/3.0) pi
rad3c Print the values of the radius (given
in cm), the surface area (sq cm),c and the
volume (cubic cm). PRINT ,'In a sphere of
radius', rad, ' , the surface area is',
area, ' and its volume is', volume, '.
' STOP END
19
COBOL Code Example
SET SOURCEFORMAT"FREE"IDENTIFICATION
DIVISION.PROGRAM-ID. Multiplier.AUTHOR.
Michael Coughlan. Example program using ACCEPT,
DISPLAY and MULTIPLY to get two single digit
numbers from the user and multiply them
together DATA DIVISION. WORKING-STORAGE
SECTION.01 Num1
PIC 9 VALUE ZEROS.01 Num2
PIC 9 VALUE ZEROS.01 Result
PIC 99 VALUE ZEROS. PROCEDURE
DIVISION. DISPLAY "Enter first number (1
digit) " WITH NO ADVANCING. ACCEPT Num1.
DISPLAY "Enter second number (1 digit) " WITH
NO ADVANCING. ACCEPT Num2. MULTIPLY Num1
BY Num2 GIVING Result. DISPLAY "Result is
", Result. STOP RUN.
20
Programming Languages
21
Why was C created ?
  • The origin of C is closely tied to the
    development of the Unix operating system
  • Originally Unix was implemented in Assembler for
    the PDP-7 (1970)
  • 1973 Unix was rewritten for the PDP-11
    architecture using the newly developed C
    Programming Language
  • An older language B was unsuitable for this
    purpose due to some language design lacks

22
Characteristics of C
  • Primitive but fast
  • Quite low-level compared to e.g. Java
  • Some people say More or less like assembler but
    independent of any specific instruction set
  • Strange and quite cryptic syntax
  • Difficult to grasp

23
The Idea of Binary Computing
  • Binary Number, Hexadecimal Number and the
    encoding of characters

24
Binary Numbers
  • A sequence of 1s and 0s can be interpreted as a
    decimal numbere.g. 101 122 021 120 5
  • These type of number (0 and 1 represented) is
    called Binary Number

25
8 bits 1 Byte
  • Todays computer architectures are based on a 8
    bits ( 1 Byte) approach.
  • E.g. one memory cell has nowadays 1 Byte

7
6
5
4
3
2
1
0
1
0
1
0
1
1
0
0
172
26
Hexadecimal Numbers (1)
  • Counting on the foundation of 16 digits (0 F)
  • Reasonable in the context of the decomposition of
    binary number into blocks of 4 bits

27
Hexadecimal Numbers (2)
16 bit
  • Example

8 bit (1 Byte)
8 bit (1 Byte)
binary
hex
decimal
28
Exercise
  • What is the number 01000111 in decimal notation?
  • What is the number 156 in hexadecimal notation?

29
Characters and Numbers
  • Using a Code Table numbers can be mapped to
    characters of some alphabet.Example (part of the
    ASCII table)

30
Sequences of Characters (Strings)
  • Text is represented as a sequence of characters
    (numbers)
  • Such sequences are called Strings
  • Example

The Text "Hello" as sequence of characters
(numbers)
31
Algorithms and Flowcharts
  • Binary Number, Hexadecimal Number and the
    encoding of characters

32
Algorithms - Introduction
  • In order to solve some problem, we need some
    description how to solve it.E.g. Cooking some
    eggsHow to cook eggs?
  • Put some water into a pot
  • Heat the water until it cooks
  • Put the eggs into the water
  • Wait 3 Minutes
  • Take the eggs out of the pot and cool them under
    floating water
  • Such a description of a problem solution is
    called an Algorithm

33
Algorithms described as Flowcharts
START
Our Cook-eggs-Algorithm as Flowchart
No
Water in pot ?
put water into pot
Yes
Wait 3 Minutes
Heat water
Take eggs out of pot
Water cooking ?
No
Cool the eggs
Yes
END
34
Flowchart Atoms
Statement
  • Statement Some operation as e.g. put the eggs
    into water

put water into pot
35
Flowchart Atoms (cont.)
No
Condition
Yes
  • Condition Some yes/no question (condition).
    Depending on the answer Yes (True) or No (False)
    we go different ways.

36
Combined Flowchart Constructs
Yes
No
Condition
if side
else side
Statement
Statement
Statement
Statement
  • If/else alternative Construct where select on
    of two alternative sequences of statements,
    depending on the result of the condition

37
Combined Flowchart Constructs (cont.)
  • If/else example (Here we do nothing on one side,
    but this is ok)

No
Water in pot ?
put water into pot
Yes
38
Combined Flowchart Constructs (cont.)
Statement 1
Statement n
Question
  • Loop Special construct with a Condition where
    one alternative of the Condition creates a
    circular flow

39
Combined Flowchart Constructs (cont.)
  • Loop Example

Heat water
Water not cooking ?
YES
40
Algorithmic Description
  • Solutions for all realistic Problems can be
    algorithmically described by combing the
    introduced elements
  • Statements
  • If/else alternatives
  • Loops

41
Variables
  • Variables are named containers that store some
    type of data, e.g. a number.Example

Variable x
Value of x
x
0
read x from user input
user input is 93
x
93
User input is typically something typed on the
keyboard
42
Variables in Flowcharts
  • Example Calculation of the maximum of two
    numbers

read x from user input
read y from user input
Yes
No
x gt y
set max to x
set max to y
print max on output
43
Exercise
  • Take a piece of paper and draw a flowchart that
  • reads the value of three variables x and y and z
  • calculates the minimum of the three variables
    read before
Write a Comment
User Comments (0)
About PowerShow.com