Programming in C++

Post on 08-Feb-2016

21 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Prerequisite: CS1 or some programming experience Text: C++ How to Program , Deitel & Deitel. Programming in C++. 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 - PowerPoint PPT Presentation

Transcript

C++ Course SarMag Trimester 3 1

Programming in C++

Prerequisite: CS1 or some programming experience

Text: C++ How to Program, Deitel & Deitel

C++ Course SarMag Trimester 3 2

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 SarMag Trimester 3 3

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 SarMag Trimester 3 4

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 SarMag Trimester 3 5

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 SarMag Trimester 3 6

A Picture

CPU...

...MEMORY

012345

813458134681347

Address

...

...

C++ Course SarMag Trimester 3 7

Sample Program

# Instruction1 Set memory[801] to hold 000000012 Set memory[802] to hold 000000003 If memory[802] = 10 jump to instruction #84 increment memory[802]5 set memory[803] to 2 times memory[801]6 put memory[803] in to memory[801]7 jump to instruction #38 print memory[801]

C++ Course SarMag Trimester 3 8

Another Picture

CPU

Instruction #1Instruction #2Instruction #3Instruction #4Instruction #5Instruction #6...

...MEMORY

012345

801802803

Address

C++ Course SarMag Trimester 3 9

Human vs Machine Programs

• The computer can only understand the bits (the encoded program)

• Humans don't like to deal with bits, so they developed english-like abbreviations for programs. Assembly Language

Machine Language

C++ Course SarMag Trimester 3 10

Assembly & Machine Language

ST 1,[801]ST 0,[802]

TOP: BEQ [802],10,BOTINCR [802]MUL [801],2,

[803]ST [803],[801]JMP TOP

BOT: LD A,[801]CALL PRINT

Assembly Language00100101 1101001100100100 1101010010001010 01001001 1111000001000100 0101010001001000 10100111 1010001111100101 10101011 00000010001010011101010111010100 1010100010010001 01000100

Machine Language

C++ Course SarMag Trimester 3 11

An Assembler

AssemblyLanguageProgram

ST 1,[801]. . .

MachineLanguageProgram

0100100110010100

Assembler

C++ Course SarMag Trimester 3 12

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 SarMag Trimester 3 13

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 SarMag Trimester 3 14

C++

• C++ is an extension of C.• C++ was first developed in the early 1980s

(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 SarMag Trimester 3 15

As a C/C++ program

set memory[801] to hold 00000001

set memory[802] to hold 00000000

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]

x=1;

i=0;

while (i!=10) {

i++;

x=x*2;

}

printf("%d",x);

}

C++ Course SarMag Trimester 3 16

Compiler

C++ Program

int main() {int i=1;. . .

MachineLanguageProgram

0100100110010100

C++ Compiler

Created with text editor or development environment

C++ Course SarMag Trimester 3 17

Many Different Compilers

• There are many different C++ Compilers:– Microsoft Visual C++– Borland C++– GNU g++– IBM xlc– Sun CC

C++ Course SarMag Trimester 3 18

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 SarMag Trimester 3 19

What is an Algorithm?

• algorithm is a set of step-by-step commands or instructions designed to reach a particular goal

• algorithmA mathematical procedure used to solve problems with a series of steps.

C++ Course SarMag Trimester 3 20

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 SarMag Trimester 3 21

Prinsip Pemrograman

• Harus dapat menentukan masalah sesungguhnya.

• Design program• Struktur data• Coding program• Testing program• Pemeliharaan program + Dokumentasi

C++ Course SarMag Trimester 3 22

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

top related