Programming in C Prerequisite CS 1 or some

  • Slides: 22
Download presentation
Programming in C++ Prerequisite: CS 1 or some programming experience Text: C++ How to

Programming in C++ Prerequisite: CS 1 or some programming experience Text: C++ How to Program, Deitel & Deitel C++ Course Sar. Mag Trimester 3 1

Computers and Programs • A simplified model of a computer consists of a processing

Computers and Programs • A simplified model of a computer consists of a processing unit (CPU) and a memory. • CPU can understand simple instructions: – read/write a memory location – add two numbers – compare numbers – etc. C++ Course Sar. Mag Trimester 3 2

Machine Code • An executable program is a sequence of these simple instructions. •

Machine Code • An executable program is a sequence of these simple instructions. • The sequence is stored in memory. • The CPU processes the simple instructions sequentially. – Some instructions can tell the CPU to jump to a new place in memory to get the next instruction. C++ Course Sar. Mag Trimester 3 3

Instructions • Each instruction is stored in memory as a bunch of bits. •

Instructions • Each instruction is stored in memory as a bunch of bits. • The CPU decodes the bits to determine what should happen. • For example, the instruction to add 2 numbers might look like this: 10100110 C++ Course Sar. Mag Trimester 3 4

Memory • The Memory can hold programs and data. • Each piece of data

Memory • The Memory can hold programs and data. • Each piece of data is also just a bunch of bits. • Typically the memory is organized in chunks of 8 bits (called a byte). • Each chunk (byte) has an address. C++ Course Sar. Mag Trimester 3 5

A Picture MEMORY Address CPU 0 1 2 3 4 5. . . 81345

A Picture MEMORY Address CPU 0 1 2 3 4 5. . . 81345 81346 81347. . . C++ Course Sar. Mag Trimester 3 6

Sample Program # 1 2 3 4 5 6 7 8 Instruction Set memory[801]

Sample Program # 1 2 3 4 5 6 7 8 Instruction Set memory[801] to hold 00000001 Set memory[802] to hold 0000 If memory[802] = 10 jump to instruction #8 increment memory[802] set memory[803] to 2 times memory[801] put memory[803] in to memory[801] jump to instruction #3 print memory[801] C++ Course Sar. Mag Trimester 3 7

Another Picture MEMORY Address CPU 0 1 2 3 4 5 Instruction #1 Instruction

Another Picture MEMORY Address CPU 0 1 2 3 4 5 Instruction #1 Instruction #2 Instruction #3 Instruction #4 Instruction #5 Instruction #6 . . . 801 802 803 C++ Course Sar. Mag Trimester 3 8

Human vs Machine Programs • The computer can only understand the bits (the encoded

Human vs Machine Programs • The computer can only understand the bits (the encoded program) Machine Language • Humans don't like to deal with bits, so they developed english-like abbreviations for programs. Assembly Language C++ Course Sar. Mag Trimester 3 9

Assembly & Machine Language Assembly Language TOP: BOT: ST 1, [801] ST 0, [802]

Assembly & Machine Language Assembly Language TOP: BOT: ST 1, [801] ST 0, [802] BEQ [802], 10, BOT INCR [802] MUL [801], 2, [803] ST [803], [801] JMP TOP LD A, [801] CALL PRINT Machine Language 00100101 00100100 10001010 01001000 11100101001 11010100 10010001 C++ Course Sar. Mag Trimester 3 11010011 110101001001 11110000 01010100111 10100011 10101011 00000010 10101000 0100 10

An Assembler Assembly Language Program Assembler ST 1, [801]. . . Machine Language Program

An Assembler Assembly Language Program Assembler ST 1, [801]. . . Machine Language Program 010010010100 C++ Course Sar. Mag Trimester 3 11

Higher-Level Languages • Assembly Language is much easier to deal with than Machine Language,

Higher-Level Languages • Assembly Language is much easier to deal with than Machine Language, but you need to know about all the instructions. • People developed languages that were independent of the specific machine language. – More abstract representation of instructions. C++ Course Sar. Mag Trimester 3 12

High-Level Languages • Many high-level languages have been developed. – Different ways of representing

High-Level Languages • Many high-level languages have been developed. – Different ways of representing computations. – Different languages for different needs: • • symbolic vs. numeric computation human efficiency vs. program efficiency portability extensibility C++ Course Sar. Mag Trimester 3 13

C++ • C++ is an extension of C. • C++ was first developed in

C++ • C++ is an extension of C. • C++ was first developed in the early 1980 s (back in the last century!). • Focus was on Object Oriented Programming – view computer programs as collection of objects. – Objects have attributes and actions. C++ Course Sar. Mag Trimester 3 14

As a C/C++ program set memory[801] to hold 00000001 x=1; set memory[802] to hold

As a C/C++ program set memory[801] to hold 00000001 x=1; set memory[802] to hold 0000 i=0; if memory[802] = 10 jump to instruction #8 while (i!=10) { increment memory[802] } i++; set memory[803] to 2 times memory[801] put memory[803] in to memory[801] jump to instruction #3 print memory[801] x=x*2; } printf("%d", x); C++ Course Sar. Mag Trimester 3 15

Compiler C++ Program C++ Compiler int main() { int i=1; . . . Machine

Compiler C++ Program C++ Compiler int main() { int i=1; . . . Machine Language Program 010010010100 Created with text editor or development environment C++ Course Sar. Mag Trimester 3 16

Many Different Compilers • There are many different C++ Compilers: – Microsoft Visual C++

Many Different Compilers • There are many different C++ Compilers: – Microsoft Visual C++ – Borland C++ – GNU g++ – IBM xlc – Sun CC C++ Course Sar. Mag Trimester 3 17

What is an Algorithm? • Algorithm = Calculation Procedure • The traditional definition of

What is an Algorithm? • Algorithm = Calculation Procedure • The traditional definition of "algorithm" is that it is a formally defined procedure for performing some calculation • A finite ordered set of well defined rules for the solution of a problem. Algorithms are often written in pseudocode, so that they can be easily converted in many different programming languages C++ Course Sar. Mag Trimester 3 18

What is an Algorithm? • algorithm is a set of step-by-step commands or instructions

What is an Algorithm? • algorithm is a set of step-by-step commands or instructions designed to reach a particular goal • algorithm A mathematical procedure used to solve problems with a series of steps. C++ Course Sar. Mag Trimester 3 19

Properties of Algorithms • • • 1. Finiteness/ Terminate 2. Absence of Ambiguity 3.

Properties of Algorithms • • • 1. Finiteness/ Terminate 2. Absence of Ambiguity 3. Definite/ Clear 4. Efective 5. Input 6. Output (KNU-69, HOR-90) C++ Course Sar. Mag Trimester 3 20

Prinsip Pemrograman • Harus dapat menentukan masalah sesungguhnya. • Design program • Struktur data

Prinsip Pemrograman • Harus dapat menentukan masalah sesungguhnya. • Design program • Struktur data • Coding program • Testing program • Pemeliharaan program + Dokumentasi C++ Course Sar. Mag Trimester 3 21

Aturan pemrograman • Buat dokumentasi • Buat semudah mungkin • Gunakan modul jika dirasa

Aturan pemrograman • Buat dokumentasi • Buat semudah mungkin • Gunakan modul jika dirasa program cukup besar • Gunakan fungsi untuk suatu hal yg sering di gunakan • Hindari penggunaan var global C++ Course Sar. Mag Trimester 3 22