Top Banner
C++ Course SarMag Trimester 3 1 Programming in C++ Prerequisite: CS1 or some programming experience Text: C++ How to Program , Deitel & Deitel
22

Programming in C++

Feb 08, 2016

Download

Documents

arvid

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
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: Programming in C++

C++ Course SarMag Trimester 3 1

Programming in C++

Prerequisite: CS1 or some programming experience

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

Page 2: Programming in C++

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.

Page 3: Programming in C++

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.

Page 4: Programming in C++

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

Page 5: Programming in C++

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.

Page 6: Programming in C++

C++ Course SarMag Trimester 3 6

A Picture

CPU...

...MEMORY

012345

813458134681347

Address

...

...

Page 7: Programming in C++

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]

Page 8: Programming in C++

C++ Course SarMag Trimester 3 8

Another Picture

CPU

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

...MEMORY

012345

801802803

Address

Page 9: Programming in C++

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

Page 10: Programming in C++

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

Page 11: Programming in C++

C++ Course SarMag Trimester 3 11

An Assembler

AssemblyLanguageProgram

ST 1,[801]. . .

MachineLanguageProgram

0100100110010100

Assembler

Page 12: Programming in C++

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.

Page 13: Programming in C++

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

Page 14: Programming in C++

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.

Page 15: Programming in C++

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);

}

Page 16: Programming in C++

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

Page 17: Programming in C++

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

Page 18: Programming in C++

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

Page 19: Programming in C++

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.

Page 20: Programming in C++

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)

Page 21: Programming in C++

C++ Course SarMag Trimester 3 21

Prinsip Pemrograman

• Harus dapat menentukan masalah sesungguhnya.

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

Page 22: Programming in C++

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