C++ Course SarMag Trimester 3 1 Programming in C++ Prerequisite: CS1 or some programming experience Text: C++ How to Program , Deitel & Deitel
Feb 08, 2016
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