Top Banner
1 204111 Computers and Programming ออออออ อออออออ Anan Phonphoem http://www.cpe.ku.ac.th/ ~anan [email protected]
34

1 204111 Computers and Programming อนันต์ ผลเพิ่ม Anan Phonphoem anan [email protected].

Dec 25, 2015

Download

Documents

Aron Mitchell
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 1 204111 Computers and Programming อนันต์ ผลเพิ่ม Anan Phonphoem anan anan@cpe.ku.ac.th.

1

204111 Computers and Programming

อนั�นัต์� ผลเพิ่��มAnan Phonphoem

http://www.cpe.ku.ac.th/~anan

[email protected]

Page 2: 1 204111 Computers and Programming อนันต์ ผลเพิ่ม Anan Phonphoem anan anan@cpe.ku.ac.th.

2

Outline Intro to computer Computer components How can we load and run program? Programming languages Problem solving and programming Programming strategy Intro to Pascal

Program structure Basic elements (reserved words, identifiers)

Page 3: 1 204111 Computers and Programming อนันต์ ผลเพิ่ม Anan Phonphoem anan anan@cpe.ku.ac.th.

3

Categories of Computers Microcomputer

Personal Computer, Desktop computer Notebook, Laptop, Palmtop Use by one person at a time

Minicomputer Faster speed Many users at the same time

Mainframe -> Supercomputer High computation power

Page 4: 1 204111 Computers and Programming อนันต์ ผลเพิ่ม Anan Phonphoem anan anan@cpe.ku.ac.th.

4

Categories of Computers Workstation

CAD Workstation Unix Workstation

Server Client /Server (Networks)

Page 5: 1 204111 Computers and Programming อนันต์ ผลเพิ่ม Anan Phonphoem anan anan@cpe.ku.ac.th.

5

Computer Components

Page 6: 1 204111 Computers and Programming อนันต์ ผลเพิ่ม Anan Phonphoem anan anan@cpe.ku.ac.th.

6

CPU

MainMemory

HD

Computer ComponentsSecondary Memory

Input Devices

Output Devices

Page 7: 1 204111 Computers and Programming อนันต์ ผลเพิ่ม Anan Phonphoem anan anan@cpe.ku.ac.th.

7

Computer Memory

1. Main Memory2. Secondary Memory

Page 8: 1 204111 Computers and Programming อนันต์ ผลเพิ่ม Anan Phonphoem anan anan@cpe.ku.ac.th.

8

1. Main Memory Store information

100-34.9

A23

W

000001002003...

999

Memory Cell

Memory Address

Page 9: 1 204111 Computers and Programming อนันต์ ผลเพิ่ม Anan Phonphoem anan anan@cpe.ku.ac.th.

9

1. Main Memory Memory Cell Byte Bit 1 Byte = 8 bits Can be divided into 2 Categories

RAM (Random Access Memory) ROM (Read Only Memory)

Page 10: 1 204111 Computers and Programming อนันต์ ผลเพิ่ม Anan Phonphoem anan anan@cpe.ku.ac.th.

10

2. Secondary Memory (Storage) Floppy disk Hard disk CD-ROM Tape Information called “file” (data file,

output file, program file) 1 Kbyte = 210 = 1024 bytes 1 Mbyte = 220 = 1,048,576 bytes 1 Gbyte = 230 = 1,073,741,824 bytes

Page 11: 1 204111 Computers and Programming อนันต์ ผลเพิ่ม Anan Phonphoem anan anan@cpe.ku.ac.th.

11

Main VS. Secondary Memory Main Memory

Much faster More expensive Volatile (RAM)

Secondary Memory Slower Less expensive Permanent

Page 12: 1 204111 Computers and Programming อนันต์ ผลเพิ่ม Anan Phonphoem anan anan@cpe.ku.ac.th.

12

CPU

MainMemory

HD

Computer ComponentsSecondary Memory

Input Devices

Output Devices

Page 13: 1 204111 Computers and Programming อนันต์ ผลเพิ่ม Anan Phonphoem anan anan@cpe.ku.ac.th.

13

Central Processor Unit (CPU) Retrieve information from memory Calculate Put back results to memory Intel / AMD (Pentium / Athlon)

Page 14: 1 204111 Computers and Programming อนันต์ ผลเพิ่ม Anan Phonphoem anan anan@cpe.ku.ac.th.

14

How can we load and run program?

Boot process Load OS into Memory

Tell user to load and run Program “p1” User start using program

HWOS

SecondaryStorage

p1 USER

Page 15: 1 204111 Computers and Programming อนันต์ ผลเพิ่ม Anan Phonphoem anan anan@cpe.ku.ac.th.

15

Programming Language Machine Language Assembly Language High-Level Language CPU can execute only the machine

language

Page 16: 1 204111 Computers and Programming อนันต์ ผลเพิ่ม Anan Phonphoem anan anan@cpe.ku.ac.th.

16

How can a non-machine language program be executed?

2 methods Interpretation Translation

Page 17: 1 204111 Computers and Programming อนันต์ ผลเพิ่ม Anan Phonphoem anan anan@cpe.ku.ac.th.

17

The interpretation Process

Source Program

Input Data

Interpreter(on computer)

Output

Page 18: 1 204111 Computers and Programming อนันต์ ผลเพิ่ม Anan Phonphoem anan anan@cpe.ku.ac.th.

18

Translation Process Translation Phase Link Phase Execute Phase

SourceProgram Translator Object

Program

Library

Linker ExecuteProgram

Output CPU Input Data

Page 19: 1 204111 Computers and Programming อนันต์ ผลเพิ่ม Anan Phonphoem anan anan@cpe.ku.ac.th.

19

Translators Assembler (assembly) Compiler (High-level language)

Page 20: 1 204111 Computers and Programming อนันต์ ผลเพิ่ม Anan Phonphoem anan anan@cpe.ku.ac.th.

20

High-Level Languages Procedural Language

Fortran Cobol Basic C Pascal

Object-Oriented Language C++

Functional Language Lisp

Logic Language Prolog

Page 21: 1 204111 Computers and Programming อนันต์ ผลเพิ่ม Anan Phonphoem anan anan@cpe.ku.ac.th.

21

Problem Solving and Programming Solve Problems Combine art and science Art

Transform a description (word to equation) Difficult (problem is not clear, input, output)

Science Knowledge of problems Equation and formula

Page 22: 1 204111 Computers and Programming อนันต์ ผลเพิ่ม Anan Phonphoem anan anan@cpe.ku.ac.th.

22

Programming Strategy Don’t rush to key in the computer Think carefully about the problem Try to solve by hand Plan your program Test by hand if possible Start programming Program Compilation Testing / Debug Documentation Maintenance

Page 23: 1 204111 Computers and Programming อนันต์ ผลเพิ่ม Anan Phonphoem anan anan@cpe.ku.ac.th.

23

Introduction to Pascal Procedural programming language Developed by Prof.Niklaus Wirth

(Switzerland, 1970s) Named in honor to mathematician,

Blaise Pascal Most popular -> Turbo Pascal

Page 24: 1 204111 Computers and Programming อนันต์ ผลเพิ่ม Anan Phonphoem anan anan@cpe.ku.ac.th.

24

Pascal Program Structure Program Heading Declarations Main Routine (Program body)

Page 25: 1 204111 Computers and Programming อนันต์ ผลเพิ่ม Anan Phonphoem anan anan@cpe.ku.ac.th.

25

Pascal Program Structureprogram myFirstProgram;const

myStudentId = 1234567;var

courseTaken: integer;begin

write(‘Please Enter a number of courses’);read(‘courseTaken’);writeln(‘Student’, myStudentId, ‘ takes ’, courseTaken, ‘ courses in this semester’);

end.

Program Heading

Declarations

Program Body

Page 26: 1 204111 Computers and Programming อนันต์ ผลเพิ่ม Anan Phonphoem anan anan@cpe.ku.ac.th.

26

Basic Elements of Pascal Character set Reserved words Identifiers Constants / Variables Statement / Expression Function / Procedure

Page 27: 1 204111 Computers and Programming อนันต์ ผลเพิ่ม Anan Phonphoem anan anan@cpe.ku.ac.th.

27

Character Set Three categories

Letter (A…Z, a…z) Digit (0…9) Special character (+ - * / _ = ! <> []

{})

Page 28: 1 204111 Computers and Programming อนันต์ ผลเพิ่ม Anan Phonphoem anan anan@cpe.ku.ac.th.

28

Reserved Words (คำ��สงวน) Predefined meaning and usage Cannot be redefined by the

programmer Examples

program begin / end const / var etc.

Page 29: 1 204111 Computers and Programming อนันต์ ผลเพิ่ม Anan Phonphoem anan anan@cpe.ku.ac.th.

29

Reserved Words (คำ��สงวน)program myFirstProgram;const

myStudentId = 1234567;var

courseTaken: integer;begin

write(‘Please Enter a number of courses’);read(‘courseTaken’);writeln(‘Student’, myStudentId, ‘ takes ’, courseTaken, ‘ courses in this semester’);

end.

Page 30: 1 204111 Computers and Programming อนันต์ ผลเพิ่ม Anan Phonphoem anan anan@cpe.ku.ac.th.

30

Identifiers (คำ��บ่งช ี้ ) Symbolic names for program elements

Program name Variable name Data Type name Etc.

Rules for constructing identifiers Letters, digits, and under score (_) First character letter Can be long (63 char) Reserved words are not allowed

Page 31: 1 204111 Computers and Programming อนันต์ ผลเพิ่ม Anan Phonphoem anan anan@cpe.ku.ac.th.

31

Identifiers (คำ��บ่งช ี้ )program myFirstProgram;const

myStudentId = 1234567;var

courseTaken: integer;begin

write(‘Please Enter a number of courses’);read(‘courseTaken’);writeln(‘Student’, myStudentId, ‘ takes ’, courseTaken, ‘ courses in this semester’);

end.

Page 32: 1 204111 Computers and Programming อนันต์ ผลเพิ่ม Anan Phonphoem anan anan@cpe.ku.ac.th.

32

Identifier examples Valid examples

score, count, total score1, count99, total09 score_1, count_99, total_99 myStudentId my_student_id

Invalid examples point&score total-number 9points

Page 33: 1 204111 Computers and Programming อนันต์ ผลเพิ่ม Anan Phonphoem anan anan@cpe.ku.ac.th.

33

Notes for Identifiers Identifiers are case-insensitive

mystudentId Mystudentid MYSTUDENTID

Some identifiers are predefined meanings (Standard Identifiers) interger, real write, writeln, read, readln

Page 34: 1 204111 Computers and Programming อนันต์ ผลเพิ่ม Anan Phonphoem anan anan@cpe.ku.ac.th.

34

Standard Identifiersprogram myFirstProgram;const

myStudentId = 1234567;var

courseTaken: integer;begin

write(‘Please Enter a number of courses’);read(‘courseTaken’);writeln(‘Student’, myStudentId, ‘ takes ’, courseTaken, ‘ courses in this semester’);

end.