Trong lĩnh vực Công Nghệ Thông Tin nói riêng, yêu cầu quan trọng nhất của người học đó chính là thực hành. Có thực hành thì người học mới có thể tự mình lĩnh hội và hiểu biết sâu sắc với lý thuyết. Với ngành mạng máy tính, nhu cầu thực hành được đặt lên hàng đầu. Tuy nhiên, trong điều kiện còn thiếu thốn về trang bị như hiện nay, người học đặc biệt là sinh viên ít có điều kiện thực hành. Đặc biệt là với các thiết bị đắt tiền như Router, Switch chuyên dụng
Trang 1L P TRÌNH C N B N
S TI T 45 LT
S TI T 45 LT 30TH30TH
2
N I DUNG
1 Các khái ni m c b n
2 Các thành ph n c b n trong ngôn ng
C++
3 Các ki u d li u trong C++
4 Bi n, h ng, cách khai báo
5 L nh xu t nh p
6 nh d ng k t qu xu t
Trang 2CÁC KHÁI Ni M C B N
5
L p trình
• L p trình máy tính (programming) g i t t là
l p trìnhlà k thu t cài t m t ho c nhi u
thu t toántr u t ng có liên quan v i nhau
b ng m t ho c nhi u ngôn ng l p trình
t o ra m t ch ng trình máy tính
6
Thu t toán (gi i thu t)
• Thu t toán là m t b các qui t c hay qui
trình c th nh m gi i quy t m t v n
trong m t s b c h u h n
Trang 3Ví d :
Thu t toán gi i ph ng trình b c nh t
P(x): ax + b = c, (a, b, c là các s th c), có
th là m t b các b c sau ây:
• N u a = 0
• b = c thì P(x) có nghi m b t kì
• b c thì P(x) vô nghi m
• N u a 0
• P(x) có duy nh t m t nghi m x = (c - b)/a
Ví d 2:
• Vi t thu t toán ki m tra m t s n có ph i
nguyên t hay không?
• Thu t toán:
• Kh i t o: i=2;
• B1:Chia n cho s I N u n chia h t cho I thì
t i B4
• B2: T ng I lên 1;
• B3:Quay l i B1
• B4: k t thúc N u i=n -> n nguyên t 8
Ngôn ng l p trình
(programming language):
• Là m t t p con c!a ngôn ng máy tính, là
m t h th ng c ký hi u hóa miêu t
nh ng tính toán (qua máy tính) trong m t
d ng mà c con ng "i và máy u có th c
và hi u c
• M t t p h p các ch# th c bi u th nh"
ngôn ng l p trình th c hi n các thao tác
máy tính nào ó thông qua m t ch ng
trình
Trang 4Ngôn ng l p trình
(programming language):
• Ngôn ng l p trình có th phân theo 2 cách:
• Ngôn ng c p cao – ngôn ng c p th p
• Ngôn ng h ng th! t c – ngôn ng h ng i
t ng
• Ngôn ng c++ là ngôn ng b c cao có ch$a
các c tr ng c!a c 2 lo i ngôn ng : h ng
th! t c và h ng i t ng
11
L p và i t ng
• L p c phân lo i d a vào hai c i m:
D li u
Ph ng th$c có th áp d ng cho d li u
này
• M t i t nglà m t tr "ng h p c th c!a
l p
12
CÁC THÀNH PH N C B N
Trang 5B ký t dùng trong ngôn ng C++
• Các ch cái : A, B, C , Z, a,b,c, z
• Các ch s : 0,1, , 9
• Ký t g ch n i _ ( chú ý phân bi t d u - )
• D u cách ( space) : dùng phân bi t các
t
Ví d :
lop Hoc( 7 kí t ) - LopHoc( 6 kí t )
14
Tên( nh danh)
• Tên ( nh danh ) : là 1 dãy kí t b t u b ng
ch ho c ký t g ch d i, theo sau là ch cái,
ch s ho c ký t g ch n i (_)
• Tên : dùng làm tên h ng, tên bi n , nhãn , tên
hàm
Ví d :
- Tên úng : _abc, Delta_1, BETA.
- Tên sai : 1xyz ( vì b t u là 1 ch s )
A#B ( vì có dâu #)
X-1 (vì s% d ng d u g ch ngang)
Tên( nh danh)
• Chú ý :
• + Tên : ch hoa và ch th "ng c xem
là khác nhau
+ Thông th "ng :
Ð t ch hoa cho các h ng, ch
th "ng cho các i l ng còn l i (bi n,
hàm )
Nên t 1 cách g i nh ( 8 kí t u
là có ngh&a và tu' thu c ch ng trình )
Trang 6T khóa (keyword)
• M t s t c gi b i C++ cho m t s
m c ích riêng và không th c dùng cho
các nh danh g i là t khóa
17
T khóa (keyword)
asm continue float new signed try
auto default for operator sizeof
typedef
break delete friend private static
union
case do goto protected struct unsigned
catch double if public switch
virtual
char else inline register template void
class enum int return this volatile
const extern long short throw while
18
Chú thích trong ch ng trình
• Chú thích c dùng gi i thích m t vài
khía c nh c!a ch ng trình Trình biên d ch
b( qua hoàn toàn các chú thích trong
ch ng trình
• C++ cung c p hai lo i chú thích:
• Chú thích trên 1 dòng: //
• Chú thích trên nhi u dòng: /* và */
Trang 7Các ký t c bi t
\’ : d u nháy n
\” : d u nháy kép
\\ : d u chéo ng c
\n : ký t xu ng dòng
\0 : ký t r)ng ( null)
\t : phím tab
\f : trang k ti p
20
KI U D LI U TRONG C++
Ki u s nguyên
char Character or small integer. 1byte signed: -128 to 127unsigned: 0 to 255
short int
(short) Short Integer. 2bytes signed: -32768 to 32767unsigned: 0 to 65535
int Integer 4bytes signed: -2147483648 to 2147483647
unsigned: 0 to 4294967295 long int
(long) Long integer. 4bytes
signed: -2147483648 to 2147483647
unsigned: 0 to 4294967295
Trang 8Ki u s th c
float Floating point number 4bytes 3.4e +/- 38 (7 digits)
double Double precision floating point number 8bytes 1.7e +/- 308 (15 digits)
long
double Long double precision floating point number 10bytes 1.2e +/- 4932 (19 digits)
23
Ki u bool
bool Boolean value It can take one of two values: true or false. 1byte true or false
24
BI N-H NG – CÁCH KHAI BÁO
Trang 9BI N-CÁCH KHAI BÁO BI N
Bi n i l ng thay *i, m)i bi n có 1 tên
và a ch# vùng nh" danh riêng cho nó
• CÁCH KHAI BÁO BI N:
< Ki u d li u > < Danh sách các bi n >;
Ví d :
int a;
float mynumber;
26
BI N-CÁCH KHAI BÁO BI N
• N u các bi n có cùng ki u d li u thì có th
khai báo:
<ki u d li u><danh sách các bi n cách nhau
b i d u ph+y>;
Ví d :
int a, b, c;
BI N-CÁCH KHAI BÁO BI N
• PH!M VI C"A BI N
Trang 10BI N-CÁCH KHAI BÁO BI N
type identifier = initial_value ;
Ví d :
int a = 0;
type identifier initial_value
29
VÍ D#
• #include <iostream>
• using namespace std;
• int main ()
• {
• int a=5; // initial value = 5
• int b(2); // initial value = 2
• int result; // initial value undetermined
• a = a + 3;
• result = a - b;
• cout << result;
• return 0;
• }
30
H NG – CÁCH KHAI BÁO H NG
H NG(Constants): Là m t i l ng mà
giá tr c!a nó không *i
Trang 11H$ng nguyên ( Int )
Có giá tr t -32768 n 32767
Có th vi t theo h 16 b ng cách thêm ti n t Ox
Ho c theo c s 8 b ng cách thêm ti n t O
Ví d :
O3068=6 * 80+0*81+ 3* 82= 198 trong h 10
O3458= 5*80 +4*81+ 3*82 = 29 trong h 10
Ox147 = 7*160+4*161+ 1*162=327 trong h 10
32
H$ng long Int
• Gi ng nh h ng nguyên, ch# khác thêm L
ho c l cu i
• Ví d :
75u // unsigned int
75l // long
75ul // unsigned long
H$ng th c ( float và double )
Có 2 cách vi t
- Cách 1 : d ng th p phân: ph n nguyên, d u
ch m th p phân và ph n phân
* Ví d : 214.35 , - 234.34
- Cách 2 : Vi t theo d ng khoa h c
* Ví d :
1.543e7 = 15430000
123.456E-4 = 0.123456 ( 123.456/105)
Trang 12H$ng ký t
• Vi t trong 2 d u nháy kép Giá tr c!a
h ng chính là mã ASCII c!a ch
• Ví d :
'A' = 65;
'd' = 100,
'9 ' - '0 ' = 57 - 48 = 9
35
nh ngh%a h$ng
Cú pháp:
#define identifier value
Ví d :
#define PI 3.14159265
#define NEWLINE '\n'
36
Ví d
// defined constants: calculate circumference
#include <iostream>
using namespace std;
#define PI 3.14159
#define NEWLINE '\n'
int main ()
{
double r=5.0; // radius
Trang 13Ví d
double circle;
circle = 2 * PI * r;
cout << circle;
cout << NEWLINE;
getch();
return 0;
}
38
Khai báo h$ng (const)
Cú pháp:
const <ki u d li u> tên h ng = giá tr
Ví d :
constint pathwidth = 100;
constchar tabulator = '\t';
CÁC L NH XU&T NH P CHU'N
Trang 14L nh xu(t chu)n (cout)
• Cú pháp (trong C++):
cout<<bi u th$c;
Trong ó :
Bi u th$c có th là:
–Bi n
–H ng
–Chu*i
L nh xu(t
• Cú pháp (trong C):
printf(bi u th$c);
Trong ó :
Bi u th$c có th là:
–Bi n
–H ng
–Chu*i
41
42
L nh xu(t chu)n (cout)
• Ví d :
cout << "This is a sentence.";
cout << "This is another sentence.";
cout << "Second sentence.\nThird sentence.";
Trang 15L nh nh p chu)n (cin)
• Cú pháp:
cin>>tên bi n;
ví d :
int a;
cout<<“nhap gia tri cho a: ”;
cin>>a;
cout<<“gia tri cua a la :”<<a;
44
nh d*ng k t qu xu(t
• setw(n): n nh r ng in m t s là n
• setprecision(n): n nh s ch s th p phân
s/ hi n th
• dec: hi n th giá tr s h th p phân
• hec: hi n th giá tr s h th p l c phân
• oct : hi n th giá tr s h bát phân
nh d*ng k t qu xu(t
• L u ý: mu n s% d ng các nh d ng thì
trong ch ng trình ta ph i khai báo :
#include <iomanip.h>
Trang 16Ví d
• #include <iostream.h>
• #include <iomanip.h>
• void main()
• {
• cout <<setw(5) <<12; //k t qu “ 12”
• cout <<setw(10); cout <<hex <<15 // k t qu f
• cout <<oct <<10; // k t qu 12
• cout <<dec <<0x10; // k t qu 16
• return;
• }
47
C(u trúc c+a m t ch ng trình c++
• M t ch ng trình g0m nhi u o n c s p
x p theo m t trình t logic, m)i an th c
hi n m t ch$c n ng trong ch ng trình g i
là modules
• Trong C++ modules có th là l p ho c hàm
• M)i hàm có m t tên riêng
• Các l nh c!a 1 hàm ph i t trong {}
• M)i l nh c k t thúc b ng d u ;
48
C(u trúc c+a m t ch ng trình c++
• Nh ng khai báo, nh ng ch# th ti n x% lý
#include < Thuvien.h>
#define
• Khai báo các bi n toàn c c
• Hàm main ()
{
Các l nh trong hàm main ;
}
Trang 17Hàm main()
• M)i ch ng trình trong C++ ph i có duy nh t m t
hàm main(), dùng i u khi n ch ng trình
• C(u trúc c+a hàm main
<data type> main()
{
program statement;
return value;
}
50
Ví d : ch ng trình C++ n gi n
#include <iostream.h>
#include <conio.h>
int main ()
{
cout << "Hello World!";
getch();
return 0;
}
Biên d ch m t ch ng trình C++
• B ti,n x- lý C++ xem qua mã trong ch ng
trình và th c hi n các ch# th c ch# nh b i
các ch# th ti n x% lý (ví d , #include) K t qu
là m t mã ch ng trình ã s%a *i mà không
còn ch$a b t k' m t ch# th ti n x% lý nào c
• Sau ó, trình biên d ch C++ d ch các mã c!a
ch ng trình Trình biên d ch có th là m t
trình biên d ch C++ th t s phát ra mã
assembly
Trang 18Biên d ch m t ch ng trình C++
• Cu i cùng, trình liên k t hoàn t t mã i
t ng b ng cách liên k t nó v i mã i t ng
c!a b t k' các module th vi n mà ch ng
trình ã tham kh o t i K t qu cu i cùng là
m t t p tin th c thi
• Tr giúp: Dùng t* h p phím ctrl+f1
53
C++
Program
C Code
Object Code
Execut-able
C++
COMPILER
NATIVE
C++
TRANSLATOR
LINKER
C COMPILER
C++
Program
Hello.cpp
Hello.obj
#include <iostream.h>
int main (void)
{ cout << "Hello World\n";}