ºÝºÝߣ

ºÝºÝߣShare a Scribd company logo
Kh¨¢i ni?m c? b?n C Ch??ng 1
M?c Ti¨ºu Ph?n bi?t s? kh¨¢c nhau gi?a C?u l?nh, Ch??ng tr¨¬nh v¨¤ Ph?n m?m Bi?t ???c qu¨¢ tr¨¬nh h¨¬nh th¨¤nh ng?n ng? C Bi?t ???c khi n¨¤o d¨´ng C v¨¤ t?i sao N?m ???c c?u tr¨²c ng?n ng? C Hi?u r? kh¨¢i ni?m gi?i thu?t (algorithms) V? l?u ?? (flowchart) S? d?ng ???c c¨¢c k? hi?u d¨´ng trong l?u ??
Ph?n m?m, ch??ng tr¨¬nh, c?u l?nh Software Program 2 Program 1 Commands Commands Commands
B?t ??u C C ¨C Dennis Ritchie B ¨C Ken Thompson BPCL ¨C Martin Richards
C¨¢c l?nh v?c ?ng d?ng c?a C C  ???c d¨´ng ?? l?p tr¨¬nh h? th?ng M?t ch??ng tr¨¬nh h? th?ng l¨¤m th¨¤nh m?t ph?n h? ?i?u h¨¤nh ho?c c¨¢c ti?n ¨ªch h? tr? c?a h? ?i?u h¨¤nh H? ?i?u h¨¤nh (Operating Systems), tr¨¬nh th?ng d?ch (Interpreters), tr¨¬nh so?n th?o (Editors), tr¨¬nh H?p Ng? (Assembly) ???c g?i l¨¤ ch??ng tr¨¬nh h? th?ng H? ?i?u h¨¤nh UNIX ???c ph¨¢t tri?n d ?a   v¨¤o C C¨® c¨¢c tr¨¬nh bi¨ºn d?ch d¨¤nh cho h?u h?t c¨¢c lo?i h? th?ng PC
Ng?n ng? c?p trung  Ng?n ng? c?p cao Ng?n ng? h?p ng? C
Ng?n ng? c¨® c?u tr¨²c  C cho ph ¨¦p  t?ng h?p   m? l? nh  v¨¤ d? li?u N¨® c¨® kh? n?ng t?p h?p v¨¤ ?n ?i t?t c? th?ng tin, l?nh kh?i ph?n c¨°n l?i c?a ch??ng tr¨¬nh ?? d¨´ng cho nh?ng t¨¢c v ?  ri¨ºng Ch??ng tr¨¬nh C c¨® th? ???c chia nh? th¨¤nh nh?ng h¨¤m (functions) hay nh?ng kh?i m? (code  blocks).
??c ?i?m c?a C C  c ¨®  32 t ? kh¨®a Nh?ng t? kh¨®a n¨¤y k?t h?p v?i c¨² ph¨¢p c?a C h¨¬nh th¨¤nh ng?n ng? C C¨¢c quy t?c ???c ¨¢p d?ng cho c¨¢c ch??ng tr¨¬nh C T?t c? t? kh¨®a l¨¤ ch? th??ng  ?o?n m? trong ch??ng tr¨¬nh C c¨® ph?n bi?t ch? th??ng, ch? hoa, do while kh¨¢c DO WHILE  T? kh¨®a kh?ng th? d¨´ng ??t t¨ºn bi?n (variable name) ho?c t¨ºn h¨¤m (function name)  main() { /* This is a sample Program*/ int i,j; i=100; j=200; : }
C?u tr¨²c ch??ng tr¨¬nh C main() Ch??ng tr¨¬nh C ???c chia nh? th¨¤nh nh?ng ??n v? g?i l¨¤ h¨¤m  Kh?ng k? c¨® bao nhi¨ºu h¨¤m trong ch??ng tr¨¬nh, H? ?i?u h¨¤nh lu?n trao quy?n ?i?u khi?n cho h¨¤m main() khi m?t ch??ng tr¨¬nh C ???c th?c thi. Theo sau t¨ºn h¨¤m l¨¤ d?u ngo?c ??n  D?u ngo?c ??n c¨® th? c¨® ch?a hay kh?ng ch?a nh?ng tham s?
C?u tr¨²c ch??ng tr¨¬nh C (tt.) D?u ph?n c¨¢ch {¡­} Sau ph?n ??u h¨¤m l¨¤ d?u ngo?c xo?n m?  {   N¨® cho bi?t vi?c thi h¨¤nh l?nh trong h¨¤m b?t ??u  T??ng t?, d?u ngo?c xo?n ?¨®ng  }  sau c?u l?nh cu?i c¨´ng trong h¨¤m ch? ra ?i?m k?t th¨²c c?a h¨¤m
C?u tr¨²c ch??ng tr¨¬nh C (tt.) D?u k?t th¨²c c?u l?nh   ¡­ ; M?t c?u l?nh trong C ???c k?t th¨²c b?ng d?u ch?m ph?y  ;   Tr¨¬nh bi¨ºn d?ch C kh?ng hi?u vi?c xu?ng d¨°ng, kho?ng tr?ng hay tab M?t c?u l?nh kh?ng k?t th¨²c b?ng d?u ch?m ph?y s? ???c xem nh? d¨°ng l?nh l?i trong C
C?u tr¨²c ch??ng tr¨¬nh C (tt.) /*D¨°ng ch¨² th¨ªch*/ Nh?ng ch¨² th¨ªch th??ng ???c vi?t ?? m? t? c?ng vi?c c?a m?t l?nh ??c bi?t, m?t h¨¤m hay to¨¤n b? ch??ng tr¨¬nh  Tr¨¬nh bi¨ºn d?ch s? b? qua ph?n ch¨² th¨ªch Trong tr??ng h?p ch¨² th¨ªch nhi?u d¨°ng, n¨® s? b?t ??u b?ng k? hi?u /* v¨¤ k?t th¨²c l¨¤ */
Th? vi?n C T?t c? tr¨¬nh bi¨ºn d?ch C ??u ch?a m?t th? vi?n h¨¤m chu?n  M?t h¨¤m ???c vi?t b?i l?p tr¨¬nh vi¨ºn c¨® th? ???c ??t trong th? vi?n v¨¤ ???c d¨´ng khi c?n thi?t M?t s? tr¨¬nh bi¨ºn d?ch cho ph¨¦p th¨ºm h¨¤m v¨¤o th? vi?n chu?n M?t s? tr¨¬nh bi¨ºn d?ch y¨ºu c?u t?o  m?t th? vi?n ri¨ºng
Bi¨ºn d?ch v¨¤ thi h¨¤nh ch??ng tr¨¬nh
C¨¢c b??c l?p tr¨¬nh gi?i quy?t v?n ?? Xu?ng t?ng h?m   Gi?i thu?t g?m m?t t?p h?p c¨¢c b??c th?c hi?n nh?m gi?i quy?t m?t v?n ??. Th¨ª d? sau ??y m?  t? m?t gi?i thu?t  ??y l¨¤ c¨¢c b??c th?c hi¨ºn khi m?t ng??i   mu?n ?i ??n qu¨¢n ?n t? ph?c v? t? ph¨°ng h?c Ph¨°ng h?c R?i ph¨°ng h?c   ??n c?u thang  ?i ??n qu¨¢n  ?n t? ph?c v?   Cafeteria
Gi?i quy?t m?t v?n ?? ?? gi?i quy?t m?t v?n ?? Hi?u v?n ?? r? r¨¤ng  Thu th?p th?ng tin th¨ªch h?p  X? l? th?ng tin ??t ???c k?t qu?
M? gi? (Pseudocode) Kh?ng l¨¤ m? th?t. M?t ph??ng ph¨¢p vi?t gi?i thu?t s? d?ng m?t t?p h?p c¨¢c t? t??ng t? m? th?t M?i ?o?n m? gi? ph?i b?t ??u v?i m?t t? BEGIN ?? hi?n th? gi¨¢ tr? n¨¤o ?¨®, t? DISPLAY ???c d¨´ng M? gi? k?t th¨²c v?i t? END BEGIN DISPLAY ¡®Hello World !¡¯ END
L?u ?? (Flowcharts) L?u ?? l¨¤ m?t h¨¬nh ?nh minh ho? cho gi?i thu?t   START DISPLAY ¡®Hello World !¡¯ STOP
Bi?u t??ng trong l?u ??
L?u ?? c?ng hai s?
C?u tr¨²c IF BEGIN INPUT num r = num MOD 2 IF  r=0 Display ¡°Number is even¡± END IF END Yes No
C?u tr¨²c IF¡­ELSE BEGIN INPUT num r=num MOD 2 IF  r=0 DISPLAY ¡°Even Number¡± ELSE DISPLAY ¡°Odd Number¡± END IF END   Yes No
?a ?i?u ki?n s? d?ng  AND/OR BEGIN INPUT yearsWithUs INPUT bizDone IF yearsWithUs >= 10  AND  bizDone >=5000000 DISPLAY ¡°Classified as an MVS¡± ELSE DISPLAY ¡°A little more effort required!¡± END IF END
C?u tr¨²c IF l?ng nhau BEGIN INPUT yearsWithUs INPUT bizDone IF yearsWithUs >= 10  IF bizDone >=5000000 DISPLAY ¡°Classified as an MVS¡± ELSE  DISPLAY ¡°A little more effort required!¡± END IF ELSE DISPLAY ¡°A little more effort required!¡± END IF END
C?u tr¨²c IF l?ng nhau  (tt.) START INPUT bizDone YearsWithUs >= 10  bizDone > 5000000 DISPLAY ¡°A Little more effort required¡± STOP NO YES NO YES DISPLAY ¡°A Little more effort required¡± DISPLAY ¡°Classified as an MVS¡± INPUT YearsWithUs
V¨°ng l?p BEGIN cnt=0 WHILE  (cnt < 1000) DO DISPLAY ¡°Scooby¡± cnt=cnt+1 END DO END   Yes No

More Related Content

Session 01 C

  • 1. Kh¨¢i ni?m c? b?n C Ch??ng 1
  • 2. M?c Ti¨ºu Ph?n bi?t s? kh¨¢c nhau gi?a C?u l?nh, Ch??ng tr¨¬nh v¨¤ Ph?n m?m Bi?t ???c qu¨¢ tr¨¬nh h¨¬nh th¨¤nh ng?n ng? C Bi?t ???c khi n¨¤o d¨´ng C v¨¤ t?i sao N?m ???c c?u tr¨²c ng?n ng? C Hi?u r? kh¨¢i ni?m gi?i thu?t (algorithms) V? l?u ?? (flowchart) S? d?ng ???c c¨¢c k? hi?u d¨´ng trong l?u ??
  • 3. Ph?n m?m, ch??ng tr¨¬nh, c?u l?nh Software Program 2 Program 1 Commands Commands Commands
  • 4. B?t ??u C C ¨C Dennis Ritchie B ¨C Ken Thompson BPCL ¨C Martin Richards
  • 5. C¨¢c l?nh v?c ?ng d?ng c?a C C ???c d¨´ng ?? l?p tr¨¬nh h? th?ng M?t ch??ng tr¨¬nh h? th?ng l¨¤m th¨¤nh m?t ph?n h? ?i?u h¨¤nh ho?c c¨¢c ti?n ¨ªch h? tr? c?a h? ?i?u h¨¤nh H? ?i?u h¨¤nh (Operating Systems), tr¨¬nh th?ng d?ch (Interpreters), tr¨¬nh so?n th?o (Editors), tr¨¬nh H?p Ng? (Assembly) ???c g?i l¨¤ ch??ng tr¨¬nh h? th?ng H? ?i?u h¨¤nh UNIX ???c ph¨¢t tri?n d ?a v¨¤o C C¨® c¨¢c tr¨¬nh bi¨ºn d?ch d¨¤nh cho h?u h?t c¨¢c lo?i h? th?ng PC
  • 6. Ng?n ng? c?p trung Ng?n ng? c?p cao Ng?n ng? h?p ng? C
  • 7. Ng?n ng? c¨® c?u tr¨²c C cho ph ¨¦p t?ng h?p m? l? nh v¨¤ d? li?u N¨® c¨® kh? n?ng t?p h?p v¨¤ ?n ?i t?t c? th?ng tin, l?nh kh?i ph?n c¨°n l?i c?a ch??ng tr¨¬nh ?? d¨´ng cho nh?ng t¨¢c v ? ri¨ºng Ch??ng tr¨¬nh C c¨® th? ???c chia nh? th¨¤nh nh?ng h¨¤m (functions) hay nh?ng kh?i m? (code blocks).
  • 8. ??c ?i?m c?a C C c ¨® 32 t ? kh¨®a Nh?ng t? kh¨®a n¨¤y k?t h?p v?i c¨² ph¨¢p c?a C h¨¬nh th¨¤nh ng?n ng? C C¨¢c quy t?c ???c ¨¢p d?ng cho c¨¢c ch??ng tr¨¬nh C T?t c? t? kh¨®a l¨¤ ch? th??ng ?o?n m? trong ch??ng tr¨¬nh C c¨® ph?n bi?t ch? th??ng, ch? hoa, do while kh¨¢c DO WHILE T? kh¨®a kh?ng th? d¨´ng ??t t¨ºn bi?n (variable name) ho?c t¨ºn h¨¤m (function name) main() { /* This is a sample Program*/ int i,j; i=100; j=200; : }
  • 9. C?u tr¨²c ch??ng tr¨¬nh C main() Ch??ng tr¨¬nh C ???c chia nh? th¨¤nh nh?ng ??n v? g?i l¨¤ h¨¤m Kh?ng k? c¨® bao nhi¨ºu h¨¤m trong ch??ng tr¨¬nh, H? ?i?u h¨¤nh lu?n trao quy?n ?i?u khi?n cho h¨¤m main() khi m?t ch??ng tr¨¬nh C ???c th?c thi. Theo sau t¨ºn h¨¤m l¨¤ d?u ngo?c ??n D?u ngo?c ??n c¨® th? c¨® ch?a hay kh?ng ch?a nh?ng tham s?
  • 10. C?u tr¨²c ch??ng tr¨¬nh C (tt.) D?u ph?n c¨¢ch {¡­} Sau ph?n ??u h¨¤m l¨¤ d?u ngo?c xo?n m? { N¨® cho bi?t vi?c thi h¨¤nh l?nh trong h¨¤m b?t ??u T??ng t?, d?u ngo?c xo?n ?¨®ng } sau c?u l?nh cu?i c¨´ng trong h¨¤m ch? ra ?i?m k?t th¨²c c?a h¨¤m
  • 11. C?u tr¨²c ch??ng tr¨¬nh C (tt.) D?u k?t th¨²c c?u l?nh ¡­ ; M?t c?u l?nh trong C ???c k?t th¨²c b?ng d?u ch?m ph?y ; Tr¨¬nh bi¨ºn d?ch C kh?ng hi?u vi?c xu?ng d¨°ng, kho?ng tr?ng hay tab M?t c?u l?nh kh?ng k?t th¨²c b?ng d?u ch?m ph?y s? ???c xem nh? d¨°ng l?nh l?i trong C
  • 12. C?u tr¨²c ch??ng tr¨¬nh C (tt.) /*D¨°ng ch¨² th¨ªch*/ Nh?ng ch¨² th¨ªch th??ng ???c vi?t ?? m? t? c?ng vi?c c?a m?t l?nh ??c bi?t, m?t h¨¤m hay to¨¤n b? ch??ng tr¨¬nh Tr¨¬nh bi¨ºn d?ch s? b? qua ph?n ch¨² th¨ªch Trong tr??ng h?p ch¨² th¨ªch nhi?u d¨°ng, n¨® s? b?t ??u b?ng k? hi?u /* v¨¤ k?t th¨²c l¨¤ */
  • 13. Th? vi?n C T?t c? tr¨¬nh bi¨ºn d?ch C ??u ch?a m?t th? vi?n h¨¤m chu?n M?t h¨¤m ???c vi?t b?i l?p tr¨¬nh vi¨ºn c¨® th? ???c ??t trong th? vi?n v¨¤ ???c d¨´ng khi c?n thi?t M?t s? tr¨¬nh bi¨ºn d?ch cho ph¨¦p th¨ºm h¨¤m v¨¤o th? vi?n chu?n M?t s? tr¨¬nh bi¨ºn d?ch y¨ºu c?u t?o m?t th? vi?n ri¨ºng
  • 14. Bi¨ºn d?ch v¨¤ thi h¨¤nh ch??ng tr¨¬nh
  • 15. C¨¢c b??c l?p tr¨¬nh gi?i quy?t v?n ?? Xu?ng t?ng h?m Gi?i thu?t g?m m?t t?p h?p c¨¢c b??c th?c hi?n nh?m gi?i quy?t m?t v?n ??. Th¨ª d? sau ??y m? t? m?t gi?i thu?t ??y l¨¤ c¨¢c b??c th?c hi¨ºn khi m?t ng??i mu?n ?i ??n qu¨¢n ?n t? ph?c v? t? ph¨°ng h?c Ph¨°ng h?c R?i ph¨°ng h?c ??n c?u thang ?i ??n qu¨¢n ?n t? ph?c v? Cafeteria
  • 16. Gi?i quy?t m?t v?n ?? ?? gi?i quy?t m?t v?n ?? Hi?u v?n ?? r? r¨¤ng Thu th?p th?ng tin th¨ªch h?p X? l? th?ng tin ??t ???c k?t qu?
  • 17. M? gi? (Pseudocode) Kh?ng l¨¤ m? th?t. M?t ph??ng ph¨¢p vi?t gi?i thu?t s? d?ng m?t t?p h?p c¨¢c t? t??ng t? m? th?t M?i ?o?n m? gi? ph?i b?t ??u v?i m?t t? BEGIN ?? hi?n th? gi¨¢ tr? n¨¤o ?¨®, t? DISPLAY ???c d¨´ng M? gi? k?t th¨²c v?i t? END BEGIN DISPLAY ¡®Hello World !¡¯ END
  • 18. L?u ?? (Flowcharts) L?u ?? l¨¤ m?t h¨¬nh ?nh minh ho? cho gi?i thu?t START DISPLAY ¡®Hello World !¡¯ STOP
  • 20. L?u ?? c?ng hai s?
  • 21. C?u tr¨²c IF BEGIN INPUT num r = num MOD 2 IF r=0 Display ¡°Number is even¡± END IF END Yes No
  • 22. C?u tr¨²c IF¡­ELSE BEGIN INPUT num r=num MOD 2 IF r=0 DISPLAY ¡°Even Number¡± ELSE DISPLAY ¡°Odd Number¡± END IF END Yes No
  • 23. ?a ?i?u ki?n s? d?ng AND/OR BEGIN INPUT yearsWithUs INPUT bizDone IF yearsWithUs >= 10 AND bizDone >=5000000 DISPLAY ¡°Classified as an MVS¡± ELSE DISPLAY ¡°A little more effort required!¡± END IF END
  • 24. C?u tr¨²c IF l?ng nhau BEGIN INPUT yearsWithUs INPUT bizDone IF yearsWithUs >= 10 IF bizDone >=5000000 DISPLAY ¡°Classified as an MVS¡± ELSE DISPLAY ¡°A little more effort required!¡± END IF ELSE DISPLAY ¡°A little more effort required!¡± END IF END
  • 25. C?u tr¨²c IF l?ng nhau (tt.) START INPUT bizDone YearsWithUs >= 10 bizDone > 5000000 DISPLAY ¡°A Little more effort required¡± STOP NO YES NO YES DISPLAY ¡°A Little more effort required¡± DISPLAY ¡°Classified as an MVS¡± INPUT YearsWithUs
  • 26. V¨°ng l?p BEGIN cnt=0 WHILE (cnt < 1000) DO DISPLAY ¡°Scooby¡± cnt=cnt+1 END DO END Yes No