Giáo trình Tin học đại cương - Chương 4: Lập trình cho máy tính

pdf 39 trang huongle 3040
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình Tin học đại cương - Chương 4: Lập trình cho máy tính", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfgiao_trinh_tin_hoc_dai_cuong_chuong_4_lap_trinh_cho_may_tinh.pdf

Nội dung text: Giáo trình Tin học đại cương - Chương 4: Lập trình cho máy tính

  1. TIN HC ðI CƯƠNG Ch ươ ng 4: L p trình cho máy tính bangtqh@utc2.edu.vn Ni dung q Khái ni m. q Gi i thi u ngơn ng lp trình C. q Các khái ni m c ơ b n trong C. q Các l nh nh p/xu t d li u. q Cu trúc đi u khi n r nhánh. q Cu trúc đi u khi n l p. q Bài t p. bangtqh@utc2.edu.vn Tin h c đ i c ươ ng - Chương 4 2
  2. Khái ni m l p trình cho máy tính bangtqh@utc2.edu.vn Tin h c đ i c ươ ng - Chương 4 3 Gi i thi u ngơn ng lp trình C q Ngơn ng C ra đi năm 1972 q Phát tri n thành C++ vào năm 1983 q Là ngơn ng đưc s dng r t ph bi n q Cĩ nhi u trình biên d ch C khác nhau – Turbo C, Borland C – ANSI C, IBM C, ISO C – GCC – v.v. q Chúng ta s s dng: Borland C 5.02 (b cài 85MB) bangtqh@utc2.edu.vn Tin h c đ i c ươ ng - Chương 4 4
  3. IDE Borland C++ 5.02 q Ch y file Setup.exe trong thư mc Bc502 q Mt s phím so n th o Phím Ch c năng Enter Xu ng dịng Insert Chuy n đ i ch đ chèn/đè Delete Xĩa kí t ngay sau v trí con tr Back space Xĩa kí t ngay trưc v trí con tr Ctrl + Y Xĩa dịng kí t ch a con tr Ctrl + Q + Y Xĩa các kí t t v trí con tr đn cu i dịng bangtqh@utc2.edu.vn Tin h c đ i c ươ ng - Chương 4 5 IDE Borland C++ 5.02 Mt s phím so n th o (ti p theo) Phím Ch c năng Ctrl + K + C Chép kh i t i v trí mi c a con tr Ctrl + K + V Chuy n kh i t i v trí mi c a con tr Ctrl + K + Y Xĩa c kh i Ctrl + K + W Ghi m t kh i vào m t t p trên đ ĩa Ctrl + K + R Đc m t kh i t mt t p trên đ ĩa Ctrl + Q + B Dch chuy n con tr v đu kh i Ctrl + Q + K Dch chuy n con tr v cu i kh i Ctrl + Q + F Tìm ki m m t c m t Ctrl + Q + A Tìm ki m c m t và sau đ ĩ thay th bng c m t khác Ctrl + Q + L Lp l i Ctrl + Q + F ho c Ctrl + Q + A cu i cùng bangtqh@utc2.edu.vn Tin h c đ i c ươ ng - Chương 4 6
  4. Ch ươ ng trình “Hello world” ch th ti n x lý Hàm chính c a ch ươ ng trình Du b t đ u và kt thúc c a đnh ngh ĩa hàm Kt qu thu đưc khi biên d ch và ch y ch ươ ng trình trên bangtqh@utc2.edu.vn Tin h c đ i c ươ ng - Chương 4 7 T khĩa (Key word) q Là các t dành riêng c a ngơn ng C q T khĩa ph i đ ưc s dng đ úng cú pháp q Mt s t khĩa thơng d ng auto break case char continue default do double else extern float for goto if int long register return short sizeof static struct switch typedef union unsigned void volatile while Trong IDE Borland C++ 5.02 t khĩa in đ m và cĩ màu blue bangtqh@utc2.edu.vn Tin h c đ i c ươ ng - Chương 4 8
  5. Tên (đnh danh) q Dùng đ đnh danh các thành ph n c a ch ươ ng trình q Tên bi n, tên hàm, tên h ng, file, c u trúc q Gm ch , s, d u gch n i “_” q Đ dài t i đ a 32 q Lưu ý: – khơng đ u c ch a kí t tr ng (space), – khơng đ ưc b t đ u b ng m t ch s, – khơng đ ưc trùng v i t khĩa q Nên đt tên m t cách g i nh , cĩ ý ngh ĩa. q Tên chu n: mt s tên cĩ sn c a trình biên d ch. Vd : x, hoten, a1, number_of_var, delta, TEN, q C là ngơn ng phân bi t vi t hoa, vi t th ưng chính xác đ n t ng ký t bangtqh@utc2.edu.vn Tin h c đ i c ươ ng - Chương 4 9 Hng, Bi n, Bi u th c q Hng: – Là đi l ưng cĩ giá tr khơng thay đi đ ưc – Ví d: • 124 Là mt hng s • ‘D’ Là mt hng ký t • “Lap trinh” Là mt hng chu i ký t q Bi n – Là đi l ưng cĩ th thay đi đ ưc giá tr (gán giá tr mi) q Bi u th c – Là cơng th c tính tốn đ cĩ 1 giá tr theo quy t c tốn h c –Gm các tốn h ng và các phép tốn (tốn t ) • Tốn h ng: hng, bi n, hàm ho c bi u th c khác. • Phép tốn: S hc, lu n lý, gán, điu ki n, l y đ a ch , t ă ng gi m bangtqh@utc2.edu.vn Tin h c đ i c ươ ng - Chương 4 10
  6. Các phép tốn C h tr q S hc: + , - , * , / , % q Lu n lý: ==, !=, >, =, <=, &&, ||, ! q Gán giá tr : = q Ly kích c theo s byte: sizeof(đit ưng) q Đ i u ki n: ĐK ? E1 : E2 q Ly đ a ch : &(bi n) q T ă ng gi m: x++, ++x, x , x tong+=i; tich*=i; /=, %=, -=, &=, |=, ^= bangtqh@utc2.edu.vn Tin h c đ i c ươ ng - Chương 4 11 Câu l nh, Chú thích q Câu l nh: Là mt ch th yêu c u máy tính th c thi m t tác v nào đ ĩ. Mt câu l nh ph i k t thúc b i mt d u ch m ph y “;” q Chú thích: – Trên 1 dịng: // Chú thích trên m t dịng – Trên nhi u dịng: /* Chú thích trên nhi u dịng. */ q Các ch th ti n biên d ch: #define #undefine #include #if #elif #else #endif #ifdef#else #endif #ifndef #else #endif #error bangtqh@utc2.edu.vn Tin h c đ i c ươ ng - Chương 4 12
  7. Các ki u d li u chu n Ki u s Tên ki u Đ ln Ph m vi char 1 byte -128 127 unsigned char 1 byte 0 255 int 2 byte -32768 32767 unsigned int 2 byte 0 65535 short 2 byte 0 65535 long 4 byte - 231 231 - 1 unsigned long 4 byte - 231 232 - 1 float 4 byte 3.4e -38 3.4e 38 double 8 byte 1.7e -308 1.7e 308 long double 10 byte 3.4e -4932 1.1e 4932 bangtqh@utc2.edu.vn Tin h c đ i c ươ ng - Chương 4 13 Các ki u d li u chu n Ki u ký t Tên ki u Đ ln Ph m vi Gm 256 ký t cĩ mã t 0 255 ( char 1 byte xem Bng mã ASCII ) Ví d: – Ký t ’A’ cĩ mã 65 – Ký t ’0’ cĩ mã 48 Các ký t đc bi t: ’\0’ ký t Null (cĩ mã = 0) ’\n’ ký t xu ng dịng (new line) ’\t’ ký t Tab bangtqh@utc2.edu.vn Tin h c đ i c ươ ng - Chương 4 14
  8. Ép ki u Cú pháp: (ki u_m i) bi u th c ho c ki u_m i (bi u th c) Ví d: bangtqh@utc2.edu.vn Tin h c đ i c ươ ng - Chương 4 15 Khai báo h ng Cú pháp #define TÊNH ẰNG giátr ị ho c const ki ud li u TÊNH ẰNG = giátr ị; Ví d #define MAX 100 const int SOPT = 100; Lưu ý: hng ph i đ ưc khai báo tr ưc khi s dng bangtqh@utc2.edu.vn Tin h c đ i c ươ ng - Chương 4 16
  9. Khai báo bi n Kt thúc b ng d u ch m ph y Cú pháp ki ud li u TÊNBI ẾN; ho ặc ki ud li u Bi ến1, Bi ến2, ; ho ặc ki ud li u TÊNBI ẾN = giátr ịban đ ầu; Ví d int sole; float tbc, tongam; char Enter = ’\n’; Lưu ý: Bi n cĩ th khai báo b t k ỳ đâu trong chương tr ình mi n làn tr ưc khi s dng. bangtqh@utc2.edu.vn Tin h c đ i c ươ ng - Chương 4 17 Cu trúc ch ươ ng trình C Ch th ti n biên d ch Khai báo các h ng, bi n Khai báo các hàm t XD Thân ch ươ ng trình chính Cài đ t các hàm đ ã khai báo trên bangtqh@utc2.edu.vn Tin h c đ i c ươ ng - Chương 4 18
  10. Phép gán giá tr Cú pháp TênBi n = Bi u th c giá tr ; Ví d: int x, y, z; Ti sao sai ? x = 10; 10 = x; //sai x = 10 + y; 10 + y = x; //sai z = x + y; x + y = z; //sai bangtqh@utc2.edu.vn Tin h c đ i c ươ ng - Chương 4 19 Các hàm tốn h c thơng d ng Ch th ti n biên d ch: #include sqrt(x) ly c ă n b c 2 exp(x) ly ex log(x) ly log ex abs(x) ly |x| (k t qu là s nguyên) fabs(x) ly |x| (k t qu là s th c) pow(x, y) ly xy ceil(x) ly s nguyên g n x nh t floor(x) ly s nguyên l n nh t ≤ x Các bi u th c ph c t p ph i s dng bi n đ i tốn h c đ cĩ đưc bi u di n tươ ng ng trong C bangtqh@utc2.edu.vn Tin h c đ i c ươ ng - Chương 4 20
  11. Mt s quy t c vi t ch ươ ng trình q Đt tên bi n, h ng, hàm, mt cách gi nh q Khi s dng bi n, h ng c n ki m tra l i xem bi n h ng đ ĩ đã đưc khai báo tr ưc đ ĩ hay chưa ? q C là ngơn ng phân bi t hoa/th ưng ph i ki m tra k tng ký t khi vi t q Lo i b các ch th #include khơng c n thi t (đ li s làm ch m quá trình biên d ch và tăng k ích th ưc file *.exe sau biên d ch) q Vi t ch ươ ng trình theo c u trúc kh i ( phân c p th t đ u dịng ) q Ch ươ ng trình vi t xong ch ưa th bi t đ ưc đ úng hay sai ph i ch y th vi các b s li u khác nhau (nên test th vi các b s li u đ c bi t) bangtqh@utc2.edu.vn Tin h c đ i c ươ ng - Chương 4 21 bangtqh@utc2.edu.vn Tin h c đ i c ươ ng - Chương 4 22
  12. Xu t d li u, hàm: printf q Thu c th ư vi n “stdio.h ” q Cú pháp: printf( “Xâu đi u khi n”,[danh sách tham s ]); q Ví d: bangtqh@utc2.edu.vn Tin h c đ i c ươ ng - Chương 4 23 Hàm printf q Xâu điu khi n bao g m 3 lo i kí t – Các kí t điu khi n • \n sang dịng m i • \f sang trang m i • \b xĩa kí t bên trái • \t du Tab – Các kí t đ đưa ra m àn hình – Các kí t đnh d ng và khuơn in • Cơng th c đ nh d ng: %[-][w][.p]Kt • w = wide(đ rng); p = precise(đ chính xác); Kt = Ký t chuy n d ng (d ng hi n th ). Du tr s quy đnh canh l trái thay vì canh l ph i • Ví d: %.2f %8d %s %-5c bangtqh@utc2.edu.vn Tin h c đ i c ươ ng - Chương 4 24
  13. Hàm printf q Các ký t chuy n d ng th ưng dùng Ký t Ý ngh ĩa c In ra dng ký t char d In ra dng s nguyên int u In ra dng s nguyên unsigned int ld In ra dng s nguyên long lu In ra dng s nguyên unsigned long f In ra dng s th c float s In ra dng xâu ký t x In ra dng s nguyên h 16 (hecxa) o In ra dng s nguyên h 8 e, E In ra r dng khoa h c g, G In ra dng s th c (b các s 0 vơ ngh ĩa) bangtqh@utc2.edu.vn Tin h c đ i c ươ ng - Chương 4 25 Hàm printf q Ví d bangtqh@utc2.edu.vn Tin h c đ i c ươ ng - Chương 4 26
  14. Hàm printf Vi t Ý ngh ĩa q In các ký t đc bi t \’ In ký t du nháy đ ơn (‘) q Cơng th c đ nh d ng \” In ký t du nháy kép (“) %[-][w][.p]Kt \\ In ký t backslash (\) –W: wide (đ rng) \t In ký t Tab –P: precse (đ chính xác) \b In lùi 1 v trí – Kt : Ký t chuy n d ng \n In xu ng dịng m i q Giá tr ca w – Nh hơn hoc b ng đ rng th c t in bình th ưng –Ln h ơn đ rng th c t (chèn thêm kho ng tr ng cho đ đ rng là w (n u cĩ du tr chèn bên ph i, ng ưc l i chèn bên trái) q Giá tr p: quy đnh làm trịn đn bao nhiêu ch s đng sau ch m th p phân. bangtqh@utc2.edu.vn Tin h c đ i c ươ ng - Chương 4 27 Hàm puts q Th ư vi n: “conio.h” q Cơng d ng: in ra màn hình 1 xâu ký t q Ví d: bangtqh@utc2.edu.vn Tin h c đ i c ươ ng - Chương 4 28
  15. Hàm sprintf q Th ư vi n: “stdio.h” q Cơng d ng: gi ng printf, ch khác đim k t qu khơng xu t ra màn hình mà đưa v ào 1 bi n xâu. q Ví d: bangtqh@utc2.edu.vn Tin h c đ i c ươ ng - Chương 4 29 Nh p d li u, hàm: scanf q Thu c th ư vi n “stdio.h ” q Cú pháp: scanf( “Xâu đi u khi n”,[DS tham s ]); – Xâu đ i u khi n: Cho phép đ nh d ng d li u nh p vào – Danh sách tham s : Là đa ch các bi n c n nh p li u q S dng tốn t & đ xác đ nh đ a ch các bi n q Ví d: scanf(“%d %f %c ”, &x , &y , &z ); scanf(“%s ”, &hoten ); bangtqh@utc2.edu.vn Tin h c đ i c ươ ng - Chương 4 30
  16. Hàm scanf q Khơng thơng báo cho ng ưi dùng bi t giá tr cn nh p là giá tr gì? ph i kt h p v i l nh xu t d li u q Khơng nh n đ ưc xâu cĩ du cách tr ng q Khơng xĩa ký t th a trong b đm nh hưng t i l n nh p phía sau. bangtqh@utc2.edu.vn Tin h c đ i c ươ ng - Chương 4 31 S dng fflush sau scanf Cơng d ng: xĩa nh ng ký t th a cịn d ư l i trong b đm c a scanf bangtqh@utc2.edu.vn Tin h c đ i c ươ ng - Chương 4 32
  17. Kt h p nh p và xu t d li u Kt qu ch ươ ng trình ? bangtqh@utc2.edu.vn Tin h c đ i c ươ ng - Chương 4 33 Hàm gets q Th ư vi n: “conio.h” q Cơng d ng: nh p vào 1 xâu ký t q Ví d: Li u cĩ dùng gets nh p 1 s khơng? bangtqh@utc2.edu.vn Tin h c đ i c ươ ng - Chương 4 34
  18. bangtqh@utc2.edu.vn Tin h c đ i c ươ ng - Chương 4 35 Mt s hàm nh p/xu t d li u khác Hàm Ý ngh ĩa int getch() đi nh p 1 ký t t bàn phím (khơng hi n th màn hình) int getche() gi ng getch() nhưng hin th màn hình int putch() In ra màn hình 1 ký t int kbhit() Ki m tra xem cĩ 1 phím b nh n khơng? cprintf() Gi ng printf nh ưng cĩ màu s c gotoxy(x, y) chuy n t i v trí (c t x, hàng y) bangtqh@utc2.edu.vn Tin h c đ i c ươ ng - Chương 4 36
  19. Màu s c khi xu t d li u q Đt màu n n textbackground (màu n n) Hng màu Giá tr ý ngh ĩa q Đt màu ch textcolor (màu BLACK 0 Đen ch ) BLUE 1 Xanh d ươ ng GREEN 2 Xanh lá CYAN 3 Xanh ng c RED 4 Đ MAGENTA 5 Tím BROWN 6 Nâu LIGHTGRAY 7 Xám bangtqh@utc2.edu.vn Tin h c đ i c ươ ng - Chương 4 37 Bài t p - Nh p/xu t d li u 1. Vi t ch ươ ng trình cho nh p các h s ca ph ươ ng trình b c nh t 1 n ax+b=0 (v i a ≠0) hãy in ra màn hình nghi m c a ph ươ ng trình đ ã cho. 2. Vi t ch ươ ng trình hi n th ra màn hình s ti n ph i tr cho 1 cu c g i đ i n tho i N giây. Bi t r ng c ưc g i tính theo m i block là xđ , và 1 block b ng 6 giây . Các giá tr x, N nh p t bàn phím. 3. Vi t ch ươ ng trình nh p t a đ ca 3 đim A, B, C trên m t ph ng. Tính và in ra màn hình chu vi, di n tích c a tam giác ABC. 4. Vi t ch ươ ng trình nh p h tên, h s lương ca 1 nhân viên. Tính và in ra màn hình l ươ ng cịn l ĩnh c a nhân viên đ ĩ sau khi tr đi c ác kho n: BHYT 1.5%, BH th t nghi p 1% và ðng phí 1% 5. Vi t ch ươ ng trình hi n ra màn hình th tích c a t di n ABCD bi t đ rng A, B, C cĩ ta nh p t bàn phím (X A, Y A) (X B, Y B) (X C, Y C) và chi u cao t đnh D xu ng m t ph ng ABC là h bangtqh@utc2.edu.vn Tin h c đ i c ươ ng - Chương 4 38
  20. đ bangtqh@utc2.edu.vn Tin h c i c ươ ng - Chương 4 39 R nhánh if q Cú pháp: if ( đ i u ki n) ; if ( đ i u ki n) ; else ; q Cơng d ng: - Th c hi n 1 trong 2 l nh tùy thu c vào đ i u ki n đ úng/sai. -Nu th c nhi n nhi u h ơn 1 l nh ph i đ trong c p d u {} đ bangtqh@utc2.edu.vn Tin h c i c ươ ng - Chương 4 40
  21. R nhánh if - ví d1 q Tìm min c a 2 s a, b nh p t bàn phím đ bangtqh@utc2.edu.vn Tin h c i c ươ ng - Chương 4 41 q S dng các tốn t lu n lý đ xây d ng các đ i u ki n ph c tp h ơn A B A && B Tốn t Ký hi u TRUE TRUE TRUE AND && TRUE FALSE FALSE OR || FALSE TRUE FALSE NOT ! FALSE FALSE FALSE A B A || B A ! A TRUE TRUE TRUE TRUE FALSE TRUE FALSE TRUE FALSE TRUE TRUE FALSE TRUE FALSE FALSE FALSE đ bangtqh@utc2.edu.vn Tin h c i c ươ ng - Chương 4 42
  22. Vi t ch ươ ng trình nh p vào t a đ ca 3 đim A, B, C trên m t ph ng. Ki m tra xem tam giác ABC cĩ là tam giác đ u khơng? đ bangtqh@utc2.edu.vn Tin h c i c ươ ng - Chương 4 43 Tính c ưc cu c g i đi n tho i N giây bi t r ng đ ơn giá 1 block là x đng, 1 block = 6 giây đ bangtqh@utc2.edu.vn Tin h c i c ươ ng - Chương 4 44
  23. Vi t ch ươ ng trình cho phép gi i và bi n lu n ph ươ ng trình b c 2 ax 2 + bx + c = 0 đ bangtqh@utc2.edu.vn Tin h c i c ươ ng - Chương 4 45 R nhánh if q Lưu ý: –Nu sau if ho c else tác đ ng lên nhi u h ơn 1 l nh thì ph i s dng cp d u { } –Nu sau if cĩ du ; thì điu ki n khơng cịn tác đ ng đ n l nh phía sau kết qu ả ? đ bangtqh@utc2.edu.vn Tin h c i c ươ ng - Chương 4 46
  24. R nhánh if q Lưu ý: – Giá tr s cũng đ ưc coi là điu ki n ( s = 0 : đ i u ki n sai ; s ≠ 0: đ i u ki n đúng ) if (delta=0) đ bangtqh@utc2.edu.vn Tin h c i c ươ ng - Chương 4 47 S dng else if q Khi mu n ch n 1 trong n quy t đ nh thì s dng else if như sau : đ bangtqh@utc2.edu.vn Tin h c i c ươ ng - Chương 4 48
  25. Vi t ch ươ ng trình x p lo i h c l c theo đ i m trung bình h c tp. đ bangtqh@utc2.edu.vn Tin h c i c ươ ng - Chương 4 49 S dng tốn t ? thay if q Cú pháp: (đi u ki n) ? lnh 1 : lnh 2 ; q Cơng d ng: –Lnh 1 đưc th c hi n n u đ i u ki n đúng –Lnh 2 đưc th c hiên n u đ i u ki n sai q Ví d: (a > b) ? max = a : max = b; đ bangtqh@utc2.edu.vn Tin h c i c ươ ng - Chương 4 50
  26. R nhánh switch case q R nhánh if ch cho phép ch n m t trong hai ph ươ ng án q R nhánh switch case cho phép ch n m t trong nhi u ph ươ ng án. q Cú pháp: switch (bi u th c nguyên ) { case n1: Các câu l nh; case n2: Các câu l nh; case nk: Các câu l nh; [default : Các câu l nh;] } đ bangtqh@utc2.edu.vn Tin h c i c ươ ng - Chương 4 51 R nhánh switch case q Cơng d ng –Nu bi u th c nguyên cĩ giá tr bng nhãn ni thì máy s nh y đn th c hi n các l nh c a nhãn đĩ, n u khơng thì máy s nh y đn th c hi n các l nh trong thành ph n tùy ch n default – Máy s ra kh i tốn t switch khi nĩ gp câu l nh break , return ho c nĩ gp d u “}” ca câu l nh switch – ú á ú Ch ý, khi m y nh y t i nhãn n i, nu k t th c dãy l nh trong nhãn n ày khơng c ĩ câu l nh break ho c return th ì máy s ti p á tc th c hi n c c l nh trong nhãn n i+1 – Th ưng cu i m i dãy l nh c a m t nhãn cĩ mt l nh break đ bangtqh@utc2.edu.vn Tin h c i c ươ ng - Chương 4 52
  27. R nhánh switch case đ bangtqh@utc2.edu.vn Tin h c i c ươ ng - Chương 4 53 đ bangtqh@utc2.edu.vn Tin h c i c ươ ng - Chương 4 54
  28. Bài t p – cu trúc r nhánh đ đ 1. Vi t ch ươ ng trình tìm giao i m c a ưng trong tâm O (x 0, y 0) bán kính R vi đ ưng th ng y = ax + b 2. Vi t ch ươ ng trình tính giá tr căn bc N c a s nguyên X ( N và X đu nh p t bàn phím) 3. Vi t ch ươ ng trình cho phép gi i h phương tr ình bc nh t 2 n x, y 4. Vi t ch ươ ng trình nh p s nguyên x ≤ 9999 sau đ ĩ in ra màn hình cách đ c s nguyên x theo phiên âm ti ng vi t ( ví d: 2010 – hai nghìn khơng tr ă m m ưi) 5. Vi t ch ươ ng trình cho phép nh p t a đ 3 đ i m A, B, C trên m t ph ng. Hãy cho bi t tam giác ABC cĩ là tam giác cân hay khơng? Chu vi và di n tích c a tam giác? đ bangtqh@utc2.edu.vn Tin h c i c ươ ng - Chương 4 55 Khái ni m c u trúc l p q Mt cơng vi c nào đ ĩ đưc th c hi n l p đ i l p li nhi u l n q Ví d – In ra màn hình các s t 1 đn 10, m i s trên mt 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@utc2.edu.vn Tin h c i c ươ ng - Chương 4 56
  29. Lp d ng for – Cú pháp for ([B.Th c 1]; [B.th c 2]; [B.Thc 3] ) ; • Các ph n trong c p d u “[” và “]” là khơng b t bu c • Các d u “;” và cp ngo c “(” và “)” bt bu c ph i cĩ – Ví d: đ bangtqh@utc2.edu.vn Tin h c i c ươ ng - Chương 4 57 Lp d ng for Các b ưc ho t đ ng: 1.Tính B.Th c 1 . 2.Tính B.Thức 2 . •Nu sai thốt vịng l p. •Nu đ úng đi v ào th c hi n vi c c n l p FALSE 3.Tính B.Thức 3 , sau đ ĩ quay TRUE tr li b ưc 2 đ bt đ u các bưc lp m i. đ bangtqh@utc2.edu.vn Tin h c i c ươ ng - Chương 4 58
  30. Lp d ng for q 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 q Bi u th c 2 : Thưng là 1 bi u th c đ i u ki n q Bi u th c 3 : C ũng là 1 phép gán đ thay đi giá tr bi n đ i u khi n đ bangtqh@utc2.edu.vn Tin h c i c ươ ng - Chương 4 59 đ bangtqh@utc2.edu.vn Tin h c i c ươ ng - Chương 4 60
  31. Tính S = 3 + 6 + 9 + + 3N Vịng l p ch y ng ưc t N tr v 1 đ bangtqh@utc2.edu.vn Tin h c i c ươ ng - Chương 4 61 Lp d ng for q 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 lnh for đưc l p đ i l p l i nhi u l n –Da các giá tr kh i t o bi n đ i u khi n, điu ki n lp và bi u th c 3 cĩ th tính đ ưc s ln l p. q Khi bi u th c 2 v ng mt thì nĩ đưc xem là đ úng (vịng l p vơ h n). – Đ thốt kh i l nh for trong tr ưng h p này ph i dùng l nh break ho c return q Cĩ th s dng các l nh for lng nhau. đ bangtqh@utc2.edu.vn Tin h c i c ươ ng - Chương 4 62
  32. Lp 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 tt c các s nguyên t ≤ N 6. In ra màn hình tam giác cân đ cao N g m tồn các d u ‘*’ cĩ dng bên đ bangtqh@utc2.edu.vn Tin h c i c ươ ng - Chương 4 63 Ki u array – mảng q Mng là mt ki u d li u cĩ cu tr úc do ngư i l p tr ình đ nh ngh ĩa q Dùng bi u di n c ác đ i t ưng d li u dng m t dãy các th ành ph n cĩ cùng ki u vi nhau ( ki u c ơ s) q NNLT C luơn ch đ nh m t kh i nh liên t c cho m t bi n ki u m ng q 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@utc2.edu.vn Tin h c i c ươ ng - Chương 4 64
  33. Khai báo array trong C ki uc ơs TênBi n[Sph nt ]; ki u c a m i th ành ph n hng s , s th ành ph n ti đ 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@utc2.edu.vn Tin h c i c ươ ng - Chương 4 65 Ki u array – ví d #defineSIZE 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]; tt c các thành ph n b ng 0 short primes[]; đ bangtqh@utc2.edu.vn Tin h c i c ươ ng - Chương 4 66
  34. Ki u array – Lưu ý q Các thành ph n c a m ng đ ưc truy xu t thơng qua ch s ca chúng 0 n-1 q Thao tác truy xu t khơng ki m tra gi i h n c a ch s intint main()main() { { a int a[ 6]; int a[6]; 59 0 intint ii == 77;; 1 a[a[0]0] == 5959;; a[a[5]5] == 10;10 ; 2 a[i/a[i/2]2] == 22;; 2 3 a[ 6] = 0; a[6] = 0; 4 a[a[-1]-1] == 55;; -10 returnreturn 00;; 5 }} đ bangtqh@utc2.edu.vn Tin h c i c ươ ng - Chương 4 67 Ki u array – Thao tác c ơ s Gi i h n ch s mng ? đ bangtqh@utc2.edu.vn Tin h c i c ươ ng - Chương 4 68
  35. Lp d ng for – Bài t p 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 đon c t tr c 0y • Cĩ bao nhiêu đim thu c gĩc ph n t ư th nh t. đ bangtqh@utc2.edu.vn Tin h c i c ươ ng - Chương 4 69 Lp d ng while q Lnh l p while – Cú pháp while (bi u th c) kh i l nh cn 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). • Lp while ki m tra đ i u ki n tr ưc khi th c hi n kh i lnh. – Hãy v sơ đ kh i bi u di n l nh while đ bangtqh@utc2.edu.vn Tin h c i c ươ ng - Chương 4 70
  36. Lp d ng while – Ví d đ bangtqh@utc2.edu.vn Tin h c i c ươ ng - Chương 4 71 Lp d ng while – Lu ý q 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 q Câu l nh sau l àm g ì ? while (0) printf(“nothing\n”); q Hãy chuy n l nh for dng t ng qu át th ành l nh while đ bangtqh@utc2.edu.vn Tin h c i c ươ ng - Chương 4 72
  37. Lp d ng do while q Cú ph áp do kh i l nh; while (bi u th c); q Ý 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 q Hãy v sơ đ kh i bi u di n l nh do while đ bangtqh@utc2.edu.vn Tin h c i c ươ ng - Chương 4 73 Lp do while - ví d đ bangtqh@utc2.edu.vn Tin h c i c ươ ng - Chương 4 74
  38. Lp while và do while – Bài t p 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ĩ dng 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 dng do while 4. Chuy n đ o n mã l nh d ng do while thành dng while đ bangtqh@utc2.edu.vn Tin h c i c ươ ng - Chương 4 75 break và continue q Lnh break thưng đ ưc s dng 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) – Nu c ĩ nhi u l nh l p l ng nhau th ì lnh break ch thoat vịng l p tr c ti p ch a n ĩ q Lnh continue – Dùng đ quay tr li t đu vịng l p – Th c hi n l n l p m i m à khơng đi ht c ác l nh cịn li trong thân vịng l p đ bangtqh@utc2.edu.vn Tin h c i c ươ ng - Chương 4 76
  39. đ bangtqh@utc2.edu.vn Tin h c i c ươ ng - Chương 4 77