Bài giảng Kỹ thuật lập trình C: Chương 4 - ThS. Trần Quang Hải Bằng
lượt xem 5
download
Mục tiêu cơ bản trong chương 4 Cấu trúc lặp nằm trong bài giảng kỹ thuật trình C nhằm trình bày về các nội dung chính: khái niệm vòng lặp, lặp dạng for, kiểu array mảng, khai báo array trong C, thao tác cơ sở kiểu array, kỹ thuật bắt phím.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Kỹ thuật lập trình C: Chương 4 - ThS. Trần Quang Hải Bằng
- K THU T L P TRÌNH C Chương 4: C u trúc l p bangtqh@hotmail.com 04/2010 Khái ni m vòng l p • M t công vi c nào đó ñư c th c hi n l p đi l p l i nhi u l n • Ví d – In ra màn hình các s t 1 đ n 10, m i s trên m t dòng • Gi i pháp đơn gi n – printf(“1\n”); – printf(“2\n”); –… – printf(“10\n”); • Gi i pháp t ng quát – L p i ch y t 1 t i 10 printf(“%d\n”, i); bangtqh@hotmail.com K thu t l p trình C - C u trúc l p 2
- 04/2010 L p d ng for – Cú pháp for([B.Th c 1]; [B.th c 2]; [B.Th c 3]) ; • Các ph n trong c p d u “[” và “]” là không b t bu c • Các d u “;” và c p ngo c “(” và “)” b t bu c ph i có – Ví d : bangtqh@hotmail.com K thu t l p trình C - C u trúc l p 3 04/2010 L p d ng for Các bư c ho t đ ng: 1.Tính B.Th c 1. 2.Tính B.Th c 2. • N u sai thoát vòng l p. • N u đúng ñi vào th c hi n FALSE vi c c n l p TRUE 3.Tính B.Th c 3, sau đó quay tr l i bư c 2 ñ b t đ u các bư c l p m i. bangtqh@hotmail.com K thu t l p trình C - C u trúc l p 4
- 04/2010 L p d ng for • Bi u th c 1: Thư ng là 1 phép gán đ kh i t o giá tr ban ñ u cho bi n đi u khi n • Bi u th c 2: Thư ng là 1 bi u th c đi u ki n • Bi u th c 3: Cũng là 1 phép gán đ thay ñ i giá tr bi n đi u khi n bangtqh@hotmail.com K thu t l p trình C - C u trúc l p 5 04/2010 bangtqh@hotmail.com K thu t l p trình C - C u trúc l p 6
- 04/2010 Tính S = 3 + 6 + 9 + ... + 3 N Vòng l p ch y ngư c t N tr v 1 bangtqh@hotmail.com K thu t l p trình C - C u trúc l p 7 04/2010 L p d ng for • Nh n xét – Bi u th c 1 ch ñư c tính m t l n – Bi u th c 2, bi u th c 3 và kh i l nh trong thân l nh for ñư c l p đi l p l i nhi u l n – D a các giá tr kh i t o bi n đi u khi n, ñi u ki n l p và bi u th c 3 có th tính đư c s l n l p. • Khi bi u th c 2 v ng m t thì nó ñư c xem là ñúng (vòng l p vô h n). – Đ thoát kh i l nh for trong trư ng h p này ph i dùng l nh break ho c return • Có th s d ng các l nh for l ng nhau. bangtqh@hotmail.com K thu t l p trình C - C u trúc l p 8
- 04/2010 L p d ng for 1. Tính TBC các s l ≤ N 2. Tìm ư c s chung l n nh t (UCLN) c a 2 s a, b 3. Ki m tra xem s N có ph i là s nguyên t không? 4. S ti n nhi u nh t 1 ngư i tham gia “Đ u trư ng 100” có th ñ t đư c là bao nhiêu ? 5. Hi n th t t c các s nguyên t ≤ N 6. In ra màn hình tam giác cân đ cao N g m toàn các d u ‘*’ có d ng bên bangtqh@hotmail.com K thu t l p trình C - C u trúc l p 9 04/2010 Ki u array – m ng • M ng là m t ki u d li u có c u trúc do ngư i l p trình đ nh nghĩa • Dùng bi u di n các đ i tư ng d li u d ng m t dãy các thành ph n có cùng ki u v i nhau (ki u cơ s ) • NNLT C luôn ch ñ nh m t kh i nh liên t c cho m t bi n ki u m ng • Kích thư c c a m ng ñư c xác đ nh ngay khi khai báo và không bao gi thay ñ i bangtqh@hotmail.com K thu t l p trình C - C u trúc l p 10
- 04/2010 Khai báo array trong C ki ucơs TênBi n[S ph nt ]; ki u c a m i thành ph n h ng s , s thành ph n t i đa c a m ng Do l p trình viên đ t tên int a[100]; //a là m ng bi u di n dãy g m 100 s nguyên int bangtqh@hotmail.com K thu t l p trình C - C u trúc l p 11 04/2010 Ki u array – ví d #define SIZE 10 int a[5]; // a dãy g m 5 s nguyên long int big[100]; // big: chi m 400 bytes! double d[100]; // d: chi m 800 bytes! long double v[SIZE]; // v:10 long doubles 2 thành ph n đ u tiên đư c kh i t o, ph n int a[5] = { 10, 20, 30, 40, 50}; còn l i: 0 double d[100] = { 1.5, 2.7}; short primes[] = { 1, 2, 3, 5, 7, 11, 13}; long b[50] = { 0 }; int i = 7; Trình biên d ch xác đ nh kích const int c = 5; thư c g m 7 thành ph n int a[i]; cách nhanh nh t đ kh i t o double d[c]; t t c các thành ph n b ng 0 short primes[]; bangtqh@hotmail.com K thu t l p trình C - C u trúc l p 12
- 04/2010 Ki u array – Lưu ý • Các thành ph n c a m ng đư c truy xu t thông qua ch s c a chúng 0..n-1 • Thao tác truy xu t không ki m tra gi i h n c a ch s int main() int main() { { a int int a[6]; a[6]; 59 0 int int i = 7; i = 7; a[0] = 59; 1 a[0] = 59; a[5] = -10; a[5] = -10; 2 a[i/2] = 2; a[i/2] = 2; 2 3 a[6] = 0; a[6] = 0; 4 a[-1] = 5; a[-1] = 5; return 0; -10 5 return 0; }} bangtqh@hotmail.com K thu t l p trình C - C u trúc l p 13 04/2010 Ki u array – Thao tác cơ s Gi i h n ch s m ng ? bangtqh@hotmail.com K thu t l p trình C - C u trúc l p 14
- 04/2010 L p d ng for 1. Tính TBC các s l trong dãy s a1, a2,…,aN 2. Tìm giá tr min/max trong dãy a1, a2,…,aN 3. Đ m xem trong dãy a1, a2,…,aN có bao nhiêu s nguyên t ? 4. Cho dãy đi m M1(x1, y1), M2(x2, y2),…,Mn(xn, yn) trên m t ph ng. Hãy: • Tìm đ dài đư ng g p khúc M1M2..Mn • Tìm đo n MiMj (i≠j) có ñ dài l n nh t • Đ m xem có bao nhiêu ño n c t tr c 0y • Có bao nhiêu ñi m thu c góc ph n tư th nh t. bangtqh@hotmail.com K thu t l p trình C - C u trúc l p 15 04/2010 L p d ng while • L nh l p while – Cú pháp while (bi u th c) kh i l nh c n l p; – Ý nghĩa • Trong khi bi u th c có giá tr ñúng (khác 0) thì còn ph i th c hi n kh i l nh. Vi c l p d ng l i khi bi u th c có giá tr sai (b ng 0). • L p while ki m tra đi u ki n trư c khi th c hi n kh i l nh. – Hãy v sơ ñ kh i bi u di n l nh while bangtqh@hotmail.com K thu t l p trình C - C u trúc l p 16
- 04/2010 L p d ng while – Ví d bangtqh@hotmail.com K thu t l p trình C - C u trúc l p 17 04/2010 L p d ng while – Lưu ý • Nh n xét – Bi u th c đi u ki n luôn dư c đ t trong c p d u “(” và “)” – Bi u th c đi u ki n s ñư c tính toán đ u tiên nên ph i có giá tr xác đ nh • Câu l nh sau làm gì ? while(0) printf(“nothing\n”); • Hãy chuy n l nh for d ng t ng quát thành l nh while bangtqh@hotmail.com K thu t l p trình C - C u trúc l p 18
- 04/2010 L p d ng do…while • Cú pháp do kh i l nh; while (bi u th c); • Ý nghĩa – Th c hi n kh i l nh trong khi bi u th c có giá tr ñúng (khác 0) – Th c hi n kh i l nh trư c khi ki m tra bi u th c đi u ki n – Kh i l nh đư c th c hi n ít nh t 1 l n • Hãy v sơ ñ kh i bi u di n l nh do … while bangtqh@hotmail.com K thu t l p trình C - C u trúc l p 19 04/2010 L p do…while - ví d bangtqh@hotmail.com K thu t l p trình C - C u trúc l p 20
- 04/2010 L p while và do…while 1. Vi t chương trình nh p vào s nguyên N. Hãy in ra màn hình bi u di n c a nó d ng nh phân (Binary) 2. Vi t chương trình tìm ph n t ñ u tiên trong dãy a1, a2,…,an th a mãn: b ng t ng các ph n t ñ ng trư c nó. 3. Vi t l i chương trình ki m tra xem s N có nguyên t hay không b ng cách s d ng do…while 4. Chuy n đo n mã l nh d ng do…while thành d ng while bangtqh@hotmail.com K thu t l p trình C - C u trúc l p 21 04/2010 K thu t b t phím • Đ c trong b ñ m bàn phím b ng hàm getch() có ñư c mã c a phím b nh n. • N u b ñ m bàn phím r ng ñ i nh n 1 phím. – Phím b nh n là phím thư ng b ñ m bàn phím nh n 1 mã x – N u phím b nh n là phím đi u khi n b ñ m bàn phím ti p nh n 2 mã liên ti p ( x và 0 ) • Hàm getch() s ñ c các ký t có trong b đ m theo th t ngư c v i th t ñưa vào. bangtqh@hotmail.com K thu t l p trình C - C u trúc l p 22
- 04/2010 K thu t b t phím Bư c 1: Ki m tra b ñ m bàn phím xem có phím nào b nh n không kbhit() Bư c 2: N u hàm kbhit() tr v giá tr ≠ 0 2.1. B t phím l n 1: key1 = getch(); 2.2. Ki m n u tra key1 == 0 • Sai: x lý ñ i v i trư ng h p phím thư ng • Đúng: B t phím l n 2: key2 = getch(); x lý trư ng h p phím đi u khi n. bangtqh@hotmail.com K thu t l p trình C - C u trúc l p 23 04/2010 B t phím bangtqh@hotmail.com K thu t l p trình C - C u trúc l p 24
- 04/2010 K thu t b t phím Mã Phím đi u khi n Vi t chương trình hi n th lên màn hình 1 d u ‘*’ sau ñó 0/72 Phím lên ↑ cho phép ngư i dùng dùng 0/80 Phím xu ng ↓ các phím mũi tên di chuy n 0/75 Phím sang trái ← d u ‘*’ kh p màn hình. 0/77 Phím sang ph i → Chương trình s k t thúc n u 27 Phím ESC ngư i dùng b m phím ESC. 0/59 Phím F1 0/60 Phím F2 0/83 Phím Delete 0/73 Phím PgUp 0/81 Phím PgDn … … bangtqh@hotmail.com K thu t l p trình C - C u trúc l p 25 04/2010 break và continue • L nh break thư ng đư c s d ng k t h p l nh l p – Dùng đ thoát kh i vòng l p m t cách b t thư ng (không quan tâm t i đi u ki n l p) – N u có nhi u l nh l p l ng nhau thì l nh break ch thoat vòng l p tr c ti p ch a nó • L nh continue – Dùng đ quay tr l i t ñ u vòng l p – Th c hi n l n l p m i mà không ñi h t các l nh còn l i trong thân vòng l p bangtqh@hotmail.com K thu t l p trình C - C u trúc l p 26
- 04/2010 bangtqh@hotmail.com K thu t l p trình C - C u trúc l p 27
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Kỹ thuật lập trình - Phạm Thế Bảo
0 p | 220 | 32
-
Bài giảng Kỹ thuật lập trình: Chương I - Lưu Hồng Việt
48 p | 194 | 23
-
Bài giảng Kỹ thuật lập trình: Chương IV - Lưu Hồng Việt
32 p | 151 | 17
-
Bài giảng Kỹ thuật lập trình: Chương III - Lưu Hồng Việt
51 p | 147 | 15
-
Bài giảng Kỹ thuật lập trình: Chương V - Lưu Hồng Việt
19 p | 127 | 15
-
Bài giảng Kỹ thuật lập trình: Phần 1 - ĐH CNTT&TT
37 p | 114 | 10
-
Bài giảng Kỹ thuật lập trình - Bài 1: Tổng quan về kỹ thuật lập trình
65 p | 165 | 8
-
Bài giảng Kỹ thuật lập trình: Bài 1 - Phạm Đình Sắc
9 p | 129 | 7
-
Bài giảng Kỹ thuật lập trình nâng cao: Chương 4 - ThS. Dương Thành Phết
26 p | 92 | 7
-
Bài giảng Kỹ thuật lập trình - Chương 10: Tổng kết môn học (Trường Đại học Bách khoa Hà Nội)
67 p | 15 | 4
-
Bài giảng Kỹ thuật lập trình: Chương 1 - Trần Quang
39 p | 8 | 2
-
Bài giảng Kỹ thuật lập trình: Chương 2 - Trần Quang
25 p | 10 | 2
-
Bài giảng Kỹ thuật lập trình: Chương 3 - Trần Quang
52 p | 10 | 2
-
Bài giảng Kỹ thuật lập trình: Chương 4 - Trần Quang
32 p | 7 | 2
-
Bài giảng Kỹ thuật lập trình: Chương 6 - Trần Quang
37 p | 11 | 2
-
Bài giảng Kỹ thuật lập trình: Chương 7 - Trần Quang
28 p | 6 | 2
-
Bài giảng Kỹ thuật lập trình: Chương 8 - Trần Quang
34 p | 8 | 2
-
Bài giảng Kỹ thuật lập trình: Chương 9 - Trần Quang
33 p | 4 | 2
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn