Các b c trong chu trình phát tri n ch ng trình Chu trình phát tri n ch ng trình program development cycle có nh ng b c sau ây.. Use editor Source code Compile source file Object co
Trang 1TRUNG TÂM CÔNG NGH THÔNG TIN
-o0o-
Giáo Trình
THÁNG 8/2008
Trang 2M C L C
Ch ng 1: T NG QUAN V NGÔN NG L P TRÍNH C/C++ 4
1 L ch s c a ngôn ng l p trình C/C++ 4
2 Ph ng pháp gi i quy t m t bài toán 4
3 Các b c trong chu trình phát tri n ch ng trình 5
4 Kh o sát m t ch ng trình C/C++ n gi n 7
5 Các chú thích (comments) 9
6 C u trúc c a m t ch ng trình C/C++ 10
7 Các t p tin th vi n thông d ng 11
Ch ng 2: BI U TH C 12
1 Ki u d li u (data types) 12
2 Các nh danh (Identifier names) 13
3 T khóa (keywords) 14
4 Bi n (variables) 14
5 T khóa const 17
6 H ng (constants) 17
7 H ng chu i ký t (string constants) 18
8 H ng ký t c bi t (escape sequences) 18
9 Toán t (operators) 19
10 Các toán t s h c (arithmetic operators) 22
11 Toán t ++ và (increment and decrement operators) 23
12 Toán t quan h & lu n lý .24
13 Toán t ? (? operator) 26
14 Toán t sizeof 26
15 Toán t d u ph y (comma operator) 27
16 Bi u th c (expressions) 29
17 Chuy n i ki u trong các bi u th c 29
18 Ép ki u (casting) 30
19 D ng vi t t t c a câu l nh gán (shorthand assignments) 31
Ch ng 3: CÁC C U TRÚC I U KHI N 34
1 Gi i thi u 34
2 C u trúc l a ch n if 35
3 C u trúc l a ch n switch case 39
4 Các c u trúc l p (Loop structures) 44
5 Các l nh r nhánh và nh y 50
Ch ng 4: M NG 61
1 Gi i thi u M ng 61
2 M ng 1 chi u 61
Trang 33 M ng nhi u chi u 64
Ch ng 5: CON TR 71
1 Gi i thi u Con tr .71
2 Bi n con tr (pointer variables) 72
3 M t s ví d v con tr .75
4 C p phát b nh ng 75
5 Con tr void (void pointers) 78
6 Con tr null (Null pointers) 79
7 Con tr và m ng 80
8 M ng con tr .81
Ch ng 6: HÀM 83
1 Khái ni m hàm 83
2 D ng t ng quát c a hàm 84
3 Các qui t c v ph m vi c a hàm 85
4 Tham s hình th c và tham s th c 85
5 Truy n m ng vào hàm 88
6 i s c a hàm main 89
7 L nh return 90
8 qui 92
9 Nguyên m!u hàm (function prototypes) 93
10 C u trúc c a m t ch ng trình vi t d i d ng hàm 94
Ch ng 7: CHU I KÝ T 96
1 Gi i thi u Chu i 96
2 Khai báo và kh"i t o chu i 96
3 Nh p chu i 97
4 Xu t chu i 97
5 M t s hàm th vi n thao tác trên chu i 97
6 M t s ví d v chu i 98
7 M ng các chu i 99
8 M ng con tr n các chu i 101
Ch ng 8: STRUCTURES – ENUM - typedef 105
1 Structures 105
2 Ki u li t kê (Enumerations, enum) 111
3 typedef 112
Ch ng 9: T P TIN 114
1 Streams và Files 114
2 Streams (dòng nh p xu t) 114
3 Files 115
4 Truy xu t file ng!u nhiên 124
5 Các stream chu n 124
Trang 4#c bi t n nh ANSI Standard C Ngày nay, t t c trình biên
d ch C/C++ u tuân theo ANSI Standard C C++ #c xây d ng trên n n t ng c a ANSI Standard C
C++ là m t ngôn ng l p trình h ng i t #ng mà bao hàm ngôn
ng C " trong nó Trong giáo trình này ch a kh o sát ph(n l p trình h ng i t #ng c a C++
2 Ph ng pháp gi i quy t m t bài toán
M t ch ng trình máy tính #c thi t k gi i quy t m t bài toán nào ó Vì v y, nh ng b c c(n tìm ki m l%i gi i cho m t bài toán c)ng gi ng nh nh ng b c c(n vi t m t ch ng trình Các b c g*m:
- Xác nh yêu c(u c a bài toán
- Ngh+ ra m t ph ng cách (algorithm) tìm l%i gi i
- Th c hi n ph ng cách ó
- Ki m tra k t qu xem l%i gi i có úng v i yêu c(u c a bài
toán
Trang 5Khi vi t m t ch ng trình trong C/C++, ây là nh ng b c #c ngh :
3 Các b c trong chu trình phát tri n ch ng trình
Chu trình phát tri n ch ng trình (program development cycle) có
nh ng b c sau ây 1 M t trình so n th o v$n b n #c dùng
nh p mã ngu*n (source code) 2 Mã ngu*n #c biên d ch
(compile) t o nên t p tin i t #ng (object file) 3 Các t p tin
i t #ng #c liên k t (link) t o nên t p tin có th th c thi (executable file) 4 Th c hi n (run) ch ng trình ch, ra ch ng
trình có làm vi c úng nh ã nh không
Use editor
Source code
Compile
source file
Object code
Link
object file
Library
(C-free, Borland C/C++ editor)
(.c; cpp files)
(bc.exe)
Trang 63.1 So!n th o mã ngu"n (source code editor)
Mã ngu*n là m t t p các l nh dùng ch, d!n máy tính th c hi n công vi c mong mu n T p tin mã ngu*n #c l u tr v i ph(n phân lo i c (C) ho c cpp (C++)
3.2 Biên d ch (compile)
T p tin mã ngu*n #c vi t b ng nh ng t gi ng ti ng Anh nên d- dàng c và hi u Tuy nhiên, máy tính không th hi u nh ng t
này Máy tính yêu c(u các ch, d!n nh phân (binary) trong d ng
th c c a ngôn ng máy (machine language) Tr c khi m t
ch ng trình #c vi t b ng ngôn ng c p cao nh C/C++ có th
th c thi trên máy tính, nó ph i #c biên d ch t mã ngu*n sang
mã máy Vi c d ch này #c th c hi n b"i m t ch ng trình g i là
trình biên d ch (compiler)
Các ch, d!n ngôn ng máy #c t o b"i trình biên d ch #c g i là
mã i t #ng (object code) và t p tin ch a chúng g i là t p tin i
t #ng T p tin i t #ng có cùng tên nh t p tin mã ngu*n nh ng
th s d ng mà không ph i vi t l i
T p tin i t #ng #c t o ra b"i trình biên d ch s k t h#p v i mã
i t #ng c a các hàm th vi n t o nên t p tin th c thi Quá trình này #c g i là liên k t (linking), #c th c hi n b"i m t
ch ng trình g i là b liên k t (linker)
Trang 73.4 Th#c thi ch ng trình
Khi ch ng trình ngu*n #c biên d ch và liên k t t o nên t p tin th c thi (có ph(n phân lo i exe), nó có th th c thi trên máy tính t i d u nh c h th ng
N u ch ng trình ho t ng không úng nh yêu c(u, v n có
th là do l i l p trình Trong tr %ng h#p này, ch,nh s a ch ng trình ngu*n, biên d ch l i và liên k t l i t o nên phiên b n m i
t ng dòng nh sau:
// my first program in C/C++
ây là dòng chú thích, t t c các dòng b t (u b ng hai d u // #c coi là các dòng chú thích, nó không nh h "ng n ho t ng c a
ch ng trình, ch, dùng gi i thích mã ngu*n c a ch ng trình
Trang 8#include <iostream.h>
Các l nh b t (u b ng d u # #c dùng cho các ch, th ti n x lý
(preprocessor) Trong ví d này, câu l nh #include báo cho trình
biên d ch bi t c(n ph i g p th vi n iostream.h là t p tin header
chu n c a C/C++, ch a các nh ngh+a v nh p và xu t
int main()
nh ngh+a hàm main() Hàm main() là i m mà t t c các ch ng
trình C/C++ b t (u th c hi n Nó không ph thu c vào v trí c a hàm, n i dung c a nó luôn #c th c hi n (u tiên khi ch ng trình th c thi M t ch ng trình C/C++ u ph i t*n t i m t hàm main() Hàm main() có th có ho c không có tham s N i dung
c a hàm main() ti p ngay sau ph(n khai báo chính th c #c t trong c p d u ngo c { }
cout << "Hello World!";
ây là m t l nh n m trong ph(n thân c a hàm main cout là m t
dòng (stream) xu t chu n trong C/C++ #c nh ngh+a trong th
vi n iostream.h Khi dòng l nh này #c th c thi, k t qu là chu i
L nh return k t thúc hàm main và tr v giá tr bi u th c i sau
nó, trong tr %ng h#p này là 0 ây là m t k t thúc bình th %ng c a
m t ch ng trình không có l i trong quá trình th c hi n
Ch ng trình trên có th vi t l i nh sau:
int main() { cout << " Hello World! "; getch(); return 0;}
c)ng cho cùng m t k t qu
Trang 95 Các chú thích (comments)
Các chú thích #c các l p trình viên s d ng ghi chú hay mô t trong các ph(n c a ch ng trình Trong C/C++ có hai cách chú thích:
Chú thích dòng: dùng c p d u // T v trí // n cu i dòng #c xem là chú thích
Chú thích kh i (chú thích trên nhi u dòng) dùng c p /* */
Nh ng gì n m gi a c p d u này #c xem là chú thích
Ví d :
/* My second program in C/C++ with more comments
Author: Novice programmer
Trang 106 C$u trúc c a m t ch ng trình C/C++
C u trúc m t ch ng trình C/C++ bao g*m các thành ph(n nh : Các ch, th ti n x lý, khai báo bi n toàn c c, ch ng trình chính (hàm main),
Kh o sát ch ng trình sau:
/* fact.c
Purpose: prints the factorials of
the numbers from 0 through 10
/* This function computes the
factorial of its parameter, returning it */
Khai báo các t p tin th vi n
Khai báo prototype c a các hàm t t o
Hàm chính c a ch ng trình
nh ngh a các hàm do ng i dùng t xây d ng
Trang 117 Các t p tin th vi%n thông d&ng
ây là các t p tin ch a nh ngh+a các hàm thông d ng khi l p trình C/C++ Mu n s d ng các hàm trong các t p tin header này thì ph i khai báo #include <FileName.h> " ph(n (u c a ch ng trình, v i FileName.h là tên t p tin th vi n Các t p tin th vi n thông d ng g*m:
stdio.h(C), iostream.h(C++) T p tin nh ngh+a các hàm vào/ra
chu n (standard input/output) g*m các hàm xu t d li u (printf())/cout), nh p giá tr cho bi n (scanf())/cin), nh n ký t t bàn phím (getc()), in ký t ra màn hình (putc()), nh p m t chu i ký
t t bàm phím (gets()), xu t chu i ký t ra màn hình (puts()), xóa vùng m bàn phím (fflush()), fopen(), fclose(), fread(), fwrite(), getchar(), putchar(),
conio.h : T p tin nh ngh+a các hàm vào ra trong ch DOS
(DOS console) g*m các hàm clrscr(), getch(), getche(), getpass(), cgets(), cputs(), putch(), clreol(), …
math.h: T p tin nh ngh+a các hàm toán h c g*m các hàm abs(),
sqrt(), log(), log10(), sin(), cos(), tan(), acos(), asin(), atan(), pow(), exp(), …
alloc.h: T p tin nh ngh+a các hàm liên quan n vi c qu n lý b
nh g*m các hàm calloc(), realloc(), malloc(), free(), farmalloc(), farcalloc(), farfree(), …
io.h: T p tin nh ngh+a các hàm vào ra c p th p g*m các hàm
open(), _open(), read(), _read(), close(), _close(), creat(), _creat(), creatnew(), eof(), filelength(), lock(), …
Trang 12Ch ng 2
BI U TH C
(Expressions)
Bi u th c #c t o thành t nh ng thành t nh d li u và toán t
D li u có th ch a trong bi n ho c h ng Toán t trong các ngôn
ng l p trình có cùng ý ngh+a nh trong toán h c Có nhi u lo i toán t nh toán t gán (=), toán t s h c (+ - * / %), toán t quan
h (== < <= > >= !=), toán t lu n lý (&& || !),
1 Ki u d li%u (data types)
C/C++ có n$m ki u d li u c s": ký t (char), s nguyên (int), s
th c (float), s th c có chính xác g p ôi (double), và ki u vô
nh (void) T t c nh ng ki u d li u khác u d a trên 5 ki u c
s" này Kích th c và ph m vi c a nh ng ki u d li u này có th thay i tùy theo lo i CPU và trình biên d ch
Ki u char #c dùng gi các giá tr c a b mã ASCII
(Amercican Standard Code for Information Interchange) Ki u
char chi m 1 byte b nh
Kích th c c a ki u int là 16 bits (2 bytes) trên môi tr %ng 16-bit
nh DOS, Windows 3.1 Môi tr %ng 32-bit nh Windows 95, kích
th c ki u int là 32 bits (4 bytes) Nói chung, tùy thu c môi
tr %ng, kích th c c a ki u int có th khác nhau
Chu n C ch, ra ph m vi t i thi u c a ki u d li u s th c (float,
double) là 1E-37 n 1E+37
Ki u void dùng khai báo hàm không tr v giá tr ho c t o nên
các con tr t ng quát (generic pointers)
Ngo i tr ki u void, các ki u d li u c s" có th có các t nh signed, unsigned, long, short i tr c nó Các t này làm thay i
ph m vi t i thi u m i ki u c s" có th ch a B ng sau trình bày
t t c các k t h#p h#p l c a ki u d li u v i các t trên
Trang 13Ki u d li%u Kích th c b'ng bits Ph!m vi t(i thi u
signed int 16 or 32 gi ng nh int
short int ho c short 16 -32,767 to 32,767
unsigned short int 16 0 to 65,535
signed short int 16 gi ng nh short int
long int ho c long 32 -2,147,483,647 to 2,147,483,647 signed long int 32 gi ng nh long int
unsigned long int 32 0 to 4,294,967,295
tiên ph i là m t ch cái ho c d u _ (underscore), nh ng ký t theo
sau ph i là ch cái, ch s , ho c d u _ Sau ây là nh ng nh danh úng và sai:
Trang 14nh danh không #c trùng v i các t khóa (keywords) và không
nên có cùng tên nh các hàm th vi n c a C/C++
3 T) khóa (keywords)
Là nh ng t ã #c dành riêng b"i ngôn ng l p trình cho nh ng
m c ích riêng c a nó Không #c dùng t khóa t tên cho
nh ng nh danh nh bi n, h ng, hàm, T t c các t khóa trong
C/C++ u là ch th %ng (lowercase) Sau ây là danh sách các t
khóa c a C/C++:
auto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef union unsigned void volatile while
4 Bi n (variables)
M t bi n là nh danh c a m t vùng trong b nh dùng gi m t giá tr mà có th b thay i b"i ch ng trình T t c bi n ph i
#c khai báo tr c khi #c s d ng D ng khai báo bi n t ng quát là:
int i, j; // khai báo 2 bi n i, j ki u int
// khai báo ba bi n day, month và year ki u short int short day, month, year;
Trang 15char ch; // khai báo bi n ch ki u ký t
// khai bao 4 bien kieu float, gán average giá tr 0
float mark1, mark2, mark3, average = 0;
L u ý: Khi khai báo bi n n u không cung c p giá tr kh i t o thì giá tr
4.1 Bi n c&c b (local variables)
Nh ng bi n #c khai báo bên trong m t hàm g i là bi n c c b Các bi n c c b ch, #c tham chi u n ch, b"i nh ng l nh n m
trong kh i (block) có khai báo bi n M t kh i b t (u v i d u { và
k t thúc v i d u }
Bi n c c b ch, t*n t i trong khi kh i ch a nó ang th c thi và b
h y khi kh i ch a nó th c thi xong
Ví d : Xem xét hai hàm sau:
Trang 164.2 Các tham s( hình th*c (formal parameters)
N u m t hàm có nh n các i s truy n vào hàm thì nó ph i khai báo các bi n nh n giá tr c a các i s khi hàm #c g i
Nh ng bi n này g i là các tham s hình th c Nh ng bi n này
#c i x gi ng nh các bi n c c b khác #c khai báo trong hàm Xem xét ví d sau:
int sum(int from, int to)
Trong ví d này, from và to là 2 tham s hình th c và #c i x
nh bi n c c b total c a hàm sum L u ý bi n i #c khai báo
trong c u trúc l p for nên nó là bi n c c b ch, t*n t i trong c u trúc for mà thôi Nh ng l nh n m ngoài c u trúc for s không tham chi u #c bi n i này
4.3 Bi n toàn c&c (global variables)
Bi n toàn c c có ph m vi là toàn b ch ng trình Do ó, t t c các
l nh có trong ch ng trình u có th tham chi u n bi n toàn
c c Bi n toàn c c #c khai báo bên ngoài t t c hàm
Trang 17void decrease()
{ gVar = gVar -1;}
Sau khi th c thi ch ng trình trên, k t qu xu t trên màn hình là: Value of gVar= 100
After increased, gVar= 101;
After decreased, gVar= 100;
5 T) khóa const
Giá tr c a bi n có th thay i trong su t quá trình th c thi
ch ng trình giá tr c a bi n không b thay i, ta t tr c khai báo bi n t khóa const T khi bi n ã có giá tr , giá tr này s không bao gi% b thay i b"i b t k/ l nh nào trong ch ng trình Thông th %ng ta dùng ch HOA t tên cho nh ng bi n này
Ví d : khai báo h ng nguyên MAX có giá tr 100
const int MAX = 200;
6 H'ng (constants)
H ng là nh ng giá tr c nh (fixed values) mà ch ng trình
không th thay i B t k/ ki u d li u nào c)ng có h ng t ng
long double 1001.2L Có ký t l ho c L " cu i
Trang 187 H'ng chu,i ký t# (string constants)
C/C++ cung c p m t l ai h ng khác g i là chu i M t chu i là m t
t p các ký t #c bao quanh b"i c p d u nháy ôi
Ví d , "This is a string" là m t chu i
\n
\t
tab
Enter
Trang 19là chuy n i ki u b m t mát thông tin
N u th c thi l nh
Trang 20d = i;
thì d s có giá tr là 100.0 S chuy n i ki u này g i là chuy n
i ki u không m t mát thông tin
Tóm l i, khi chuy n i ki u t ki u d li u có mi n giá tr nh sang ki u d li u có mi n giá tr l n h n thì vi c chuy n i ki u này là an toàn vì không b m t mát thông tin Th t t$ng d(n t
ki u d li u có mi n giá tr nh n ki u d li u có mi n giá tr l n
là char int long float double
Khi chuy n i ki u d li u có mi n giá tr l n sang ki u d li u
có mi n giá tr nh h n thì vi c chuy n i ki u này là không an toàn vì có th m t mát thông tin Th t gi m d(n t ki u d li u
Trang 22K t lu n: Tr %ng h#p (1) và (3): m t mát thông tin Tr %ng h#p (4) không m t mát thông tin
10 Các toán t s( h0c (arithmetic operators)
Các toán t s h c g*m: + (c ng), - (tr ), * (nhân), / (chia), và % (l y ph(n d c a phép chia nguyên)
Khi t s và m!u s c a phép chia là s nguyên thì ó là phép chia nguyên nên ph(n d c a phép chia nguyên b c t b Ví d , 5/2 thì
Trang 2311 Toán t ++ và (increment and decrement operators)
C/C++ có hai toán t r t th %ng dùng là ++ và Toán t ++
c ng 1 n toán h ng c a nó và toán t thì tr 1 t toán h ng
Trang 24Sau khi l nh (3) hay (4) #c th c thi thì x có giá tr là 99
Khi các toán t s h c xu t hi n trong m t bi u th c, thì u tiên
Nh ng toán t trên cùng hàng thì có cùng u tiên Khi bi u th c
có nhi u toán t có cùng u tiên thì th t nh tr bi u th c là
t trái sang ph i
12 Toán t quan h% & lu n lý (relational & logical operators)
Toán t quan h liên quan n s quan h c a hai giá tr Toán t
lu n lý liên quan n s n i k t c a nh ng quan h
Các bi u th c mà dùng toán t quan h và toán t lu n lý #c
nh tr là true ( úng) ho c false(sai) Trong C/C++, giá tr 0 (zero)
#c xem là false và giá tr khác 0 (non-zero) #c xem là true
Trang 25C hai toán t quan h và lu n lý có u tiên th p h n toán t s
h c Trong m t bi u th c có th có nhi u lo i toán t , th t
nh tr bi u th c d a vào u tiên c a toán t thay i th
t nh tr trong m t bi u th c, dùng c p d u ngo c n () nh trong các bi u th c s h c
u tiên c a toán t quan h và lu n lý:
Trang 26K t qu nh tr bi u th c trên là 1 (true)
13 Toán t ? (? operator)
Toán t ? là m t toán t ba ngôi do ó có ba toán h ng D ng t ng quát c a toán t ? là:
Exp1 ? Exp2 : Exp3;
Exp1, Exp2, và Exp3 là các bi u th c
Toán t ? làm vi c nh sau: (u tiên Exp1 #c nh tr N u k t
qu là true thì Exp2 #c nh tr và giá tr c a nó tr" thành giá tr
c a c bi u th c N u Exp1 là false thì Exp3 #c nh tr và giá
cout <<"Size of data types:\n";
cout <<"Size of char = " << sizeof(char) << “ bytes\n”;
cout <<"Size of unsigned char = " << sizeof(unsigned char) << “ bytes\n”; cout <<"Size of signed char = " << sizeof(signed char) << “ bytes\n”; cout <<"Size of int = " << sizeof(int) << “ bytes\n”;
cout <<"Size of unsigned int = " << sizeof(unsigned int) << “ bytes\n”; cout <<"Size of signed int = " << sizeof(signed int) << “ bytes\n”; cout <<"Size of short = " << sizeof(short) << “ bytes\n”;
Trang 27cout <<"Size of unsigned short = " <<sizeof(unsigned short)<< “ bytes\n”; cout <<"Size of signed short = " << sizeof(signed short) << “ bytes\n”; cout <<"Size of long = " << sizeof(long) << “ bytes\n”;
cout <<"Size of unsigned long = " << sizeof(unsigned long) << “ bytes\n”; cout <<"Size of signed long = " << sizeof(signed long) << “ bytes\n”; cout <<"Size of float = " << sizeof(float) << “ bytes\n”;
cout <<"Size of double = " << sizeof(double) << “ bytes\n”;
cout <<"Size of long double = " << sizeof(long double) << “ bytes\n”; }
K t qu khi th c hi n ch ng trình trên:
15 Toán t d$u ph1y (comma operator)
Toán t comma bu c các bi u th c cùng v i nhau Bi u th c bên trái c a toán t comma luôn luôn #c nh tr nh void, bi u th c bên ph i #c nh tr và tr" thành giá tr c a bi u th c D ng t ng quát c a toán t comma:
(exp1, exp2, , expN)
Các bi u th c #c nh tr t trái sang ph i, bi u th c cu i cùng (expN) #c nh tr và tr" thành giá tr c a toàn b bi u th c
Ví d :
x = (y=3, y+1);
(u tiên y #c gán giá tr 3 và r*i x #c gán giá tri y+1 là 4
Trang 28B ng tóm t2t u tiên c a các toán t
Cao nh t () [] ->
! ~ ++ –– (type) * & sizeof
* / % + -
Trang 2916 Bi u th*c (expressions)
M t bi u th c trong C/C++ là s k t h#p c a các thành ph(n nh toán t , h ng, bi n, và hàm có tr v giá tr
Th t nh tr c a bi u th c tùy thu c vào u tiên c a các toán
t Do ó, vi t bi u th c rõ ràng và th c hi n vi c nh tr úng theo yêu c(u c a l p trình viên ta nên dùng c p d u ngo c tròn () bao quanh các bi u th c con c a bi u th c
Trang 30result = (ch/i) + (f*d) – (f+i);
int double float int double float
double double
double
Trang 31result = (float)7/2;
result = 7/(float)2;
result = (float)7/(float)2;
result = float(7)/float(2);
Nh v y, trong các l nh trên, ta ã ép m t ho c hai toán h ng n
ki u float Do ó, nh tr bi u th c, toán h ng kia s #c
th$ng c p (type promotion) thành ki u float t ng ng th c hi n
phép chia sau ó K t qu c a 4 l nh trên là t ng ng và result
s có giá tr là 3.5
19 D!ng vi t t2t c a câu l%nh gán (shorthand assignments)
Các d ng vi t t t c a câu l nh gán v i các toán t s h c g*m +=, -=, *=, /=, và %= Nh ng l nh có d ng:
variable = variable operator expression;
Trang 3211 Nh p 1 góc x Tính và xu t sinx, cosx, tgx, cotgx
HD: các hàm sin, cos, tan ch, tính theo n v radian nên chúng ta
ph i i t x sang radian t nh sau: t=x*π/180 =>
sinx=sin(t), cosx=cos(t), tgx=tan(t), cotgx=1/tgx
12 Nh p to 2 i m A(xA,yA), B(xB,yB) Tính và xu t dài
o n AB
Trang 33HD: |AB|=dAB= ( ) 2 ( ) 2 )
A B A
17 Vi t ch ng trình nh p vào ngày, tháng, n$m In ra ngày tháng
n$m theo d ng dd/mm/yy (dd: ngày, mm: tháng, yy : n$m Ví d :
20 Vi t ch ng trình nh p vào i m ba môn Toán, Lý, Hóa c a
m t h c sinh In ra i m trung bình c a h c sinh ó v i hai s l&
th p phân
21 Vi t ch ng trình o ng #c m t s nguyên d ng có úng 3
ký s
Trang 34trúc i u khi n c b n là c u trúc tu(n t (sequence), c u trúc l a
ch n (selection), và c u trúc l p (repetition or loop) Các c u trúc
này i u khi n th t th c thi các l nh c a ch ng trình
C u trúc l p: l p l i 1 hay nhi u l nh cho n khi bi u th c i u
ki n là sai Các c u trúc l p g*m for, while, do while
Tuy nhiên, th t th c hi n các l nh c a ch ng trình còn b chi
ph i b"i các l nh nh y nh continue, break, goto
Trang 35Ý ngh+a: (u tiên expression #c nh tr N u k t qu là true
(<>0) thì statement #c th c thi Ng #c l i, không làm gì c
Trang 36− L nh getche() luôn luôn #c th c hi n vì nó không b nh
h "ng b"i câu l nh if
Ý ngh a: (u tiên expression #c nh tr N u k t qu là true
(<>0) thì statement1 #c th c thi Ng #c l i, thì statement2 #c
Trang 38- Ta có th s d ng các câu l nh if… else l*ng nhau Trong tr %ng
h#p if… else l*ng nhau thì else s k t h p v i if g n nh t ch a
có else
- Trong tr %ng h#p câu l nh if “bên trong” không có else thì ph i
vi t nó trong c p d u {} (coi nh là kh i l nh) tránh s k t h#p else if sai
Trang 39statementN;
[break;]
[default : statement;]
}