Bài giảng nhập môn lập trình mở đầu trần phước tuấn

22 122 0
Bài giảng nhập môn lập trình mở đầu   trần phước tuấn

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

NMLT M U Tr n Ph c Tu n tranphuoctuan.khoatoan.dhsp@gmail.com http://baigiang.tranphuoctuan.com ng gi ng M c tiêu môn h c: Cung c p cho sinh viên k ng c b n l p trình gi i quy t v n , toán Các ch ng trình c th hi n b ng NNLT C Riêng v ngôn ng l p trình C, sinh viên c cung c p k ng: c vi t c ch ng trình n gi n Hi u c u trúc ngôn ng S d ng thành th o th vi n chu n Nh n bi t s a ch a l i th ng g p l p trình Các môn h c tiên quy t: không N i dung gi ng: NH P MÔN L P TRÌNH 12/23/2009 N i dung môn h c T ng quan Các ki u d li u c b n L nh nh p, xu t d li u Các c u trúc i u n Hà m Struct M ng Con tr Chu i ký t NH P MÔN L P TRÌNH 12/23/2009 T ng quan Khái ni m ch ng trình – l p trình C u trúc m t ch ng trình n gi n Khái ni m Thu t toán – bi u di n thu t toán Khái ni m NNLT, l c l ch s phát tri n NNLT Ngôn ng l p trình C NH P MÔN L P TRÌNH 12/23/2009 Các thành ph n c a ch ng trình C Ví d ch ng trình C Th Ghi chú vi n nh p xu t chu n /*VIDU.CPP*/ /*VIDU.CPP*/ #include #include Hàm main int int main() main() {{ printf(“Nhap printf(“Nhap mon mon lap lap trinh\n"); trinh\n"); printf(“Vi du don gian\n"); printf(“Vi du don gian\n"); return return 0; 0; }} Nhap Nhap mon mon lap lap trinh trinh Vi du don gian Vi du don gian Báo CT k t thúc cho H H NH P MÔN L P TRÌNH 12/23/2009 M ts Ph n ghi u ý t ví d c trình biên d ch b qua Phân bi t ch in hoa ch in th ng Câu l nh c k t thúc b ng d u ; Chu i ký t ph i ghi gi a c p nháy kép “ In xu ng dòng dùng ký t \n Ch ng trì trình nên thông bá báo k t qu th c hi n v i h th ng: T t – 0, có l i – 1, 2, … Ch ng trình có m t hàm main NH P MÔN L P TRÌNH 12/23/2009 Ví d Khai báo bi n s nguyên, “a” “b” #include #include int int main(void) main(void) {{ int int a, a, b; b; Nh p s nguyên vào a b printf(“Nhap printf(“Nhap 22 so so ngguyen: ngguyen: "); "); scanf("%i %i", &a, &b); scanf("%i %i", &a, &b); printf("%i printf("%i %i %i == %i\n", %i\n", a, a, b, b, aa b); b); Vi t bi u th c “a”, “b” “a-b” theo nh }} ng %i NH P MÔN L P TRÌNH return return 0; 0; Nhap Nhap 22 so so nguyen: nguyen: 21 21 17 17 21 21 17 17 == 44 12/23/2009 Bi n – Variable int a, b; Ch a d li u có th thay i c ch ng trình Mu n s d ng ph i khai báo Tên: g m ch cái, ký s , d u n i (_), không u b ng ký s cb t Bi n khai báo kh i c g i bi n c c b , không thu c kh i c g i bi n toàn c c Có tác d ng toàn kh i k t lúc NH P MÔN L P TRÌNH c khai báo 12/23/2009 L nh xu t - printf Xu t d li u hình: printf("%i - %i = %i\n", a, b, a - b); Các ký t h ng c in nguyên v n Các ký t nh d ng th c t ng ng: %i: ký t c thay b ng giá tr c a bi u nh d ng s nguyên ki u int Các ký t i u n: \n – xu ng dòng; \t – d u tab; \\ – d u \; \“– d u “ … Th vi n: stdio.h NH P MÔN L P TRÌNH 12/23/2009 10 L nh nh p - scanf Nh p d li u t bàn phím scanf("%i %i", &a, &b); Trong chu i nh d ng ch có ký t kho ng tr ng D li u ph i nh d ng c nh p vào bi n Tr c tên bi n ph i ghi d u & - toán t a ch N u toán t a ch , giá tr c a bi n s không c c p nh t Th vi n: stdio.h NH P MÔN L P TRÌNH 12/23/2009 Ki u d li u c s C 11 Các ki u s nguyên c a C C h tr nhi u ki u s nguyên Các giá tr l n nh t nh nh t vi n “limits.h” c nh ngh a th Ki u nh d ng kích th c nh nh t l n nh t char %c CHAR_MIN CHAR_MAX unsigned char %c UCHAR_MAX short [int] %hi SHRT_MIN SHRT_MAX unsigned short%hu USHRT_MAX int %i or INT_MIN INT_MAX unsigned int %u or UINT_MAX long [int] %li LONG_MIN LONG_MAX unsigned long %lu ULONG_MAX NH P MÔN L P TRÌNH 12/23/2009 13 Ví d v s nguyên #include #include #include #include int int main() main() {{ unsigned unsigned long long big big == ULONG_MAX; ULONG_MAX; printf("minimum printf("minimum int int == %i, %i, ", ", INT_MIN); INT_MIN); printf("maximum int = %i\n", INT_MAX); printf("maximum int = %i\n", INT_MAX); printf("maximum printf("maximum unsigned unsigned == %u\n", %u\n", UINT_MAX); UINT_MAX); printf("maximum long int = %li\n", printf("maximum long int = %li\n", LONG_MAX); LONG_MAX); printf("maximum printf("maximum unsigned unsigned long long == %lu\n", %lu\n", big); big); return return 0; 0; }} NH P MÔN L P TRÌNH minimum minimum int int == -32768, -32768, maximum maximum int int == 32767 32767 maximum unsigned = 65535 maximum unsigned = 65535 maximum maximum long long int int == 2147483647 2147483647 maximum maximum unsigned unsigned long long == 4294967295 4294967295 12/23/2009 14 Ví d ki u ký t In mã ASCII c a ký t #include #include #include #include int int main() main() {{ char char lower_a lower_a == 'a'; 'a'; char lower_m = 'm'; char lower_m = 'm'; Trong NNLT C, ký t s nguyên printf("minimum printf("minimum char char == %i, %i, ", ", CHAR_MIN); CHAR_MIN); printf("maximum char = %i\n", CHAR_MAX); printf("maximum char = %i\n", CHAR_MAX); printf(“Sau printf(“Sau '%c' '%c' la la '%c'\n", '%c'\n", lower_a, lower_a, lower_a lower_a ++ 1); 1); printf(“Ky tu in hoa '%c'\n", lower_m 'a' + 'A'); printf(“Ky tu in hoa '%c'\n", lower_m - 'a' + 'A'); return return 0; 0; }} minimum minimum char char == -128, -128, maximum maximum char char == 127 127 Sau 'a' la 'b' Sau 'a' la 'b' Ky Ky tu tu in in hoa hoa 'M' 'M' NH P MÔN L P TRÌNH 15 12/23/2009 S nguyên c s khác Các h s có th th c hi n c: 10 (decimal), s 16 (hexadecimal) s (octal), 0: s octal s 0x: s hexadecimal #include #include int int main(void) main(void) {{ int int dec dec == 20, 20, oct oct == 020, 020, hex hex == 0x20; 0x20; printf("dec=%d, printf("dec=%d, oct=%d, oct=%d, printf("dec=%d, oct=%o, printf("dec=%d, oct=%o, return return 0; 0; }} NH P MÔN L P TRÌNH hex=%d\n", hex=%d\n", dec, dec, oct, oct, hex=%x\n", dec, oct, hex=%x\n", dec, oct, dec=20, dec=20, oct=16, oct=16, dec=20, oct=20, dec=20, oct=20, 12/23/2009 hex); hex); hex); hex); hex=32 hex=32 hex=20 hex=20 16 S th c C h tr nhi u ki u s th c l u tr d u ch m ng Các giá tr l n nh t nh nh t c nh ngh a th vi n “float.h” Ki u nh d ng kích th float %f %e %g double %lf %le %lg long double %Lf %Le %Lg 10 NH P MÔN L P TRÌNH c nh nh t n nh t FLT_MIN FLT_MAX DBL_MIN DBL_MAX LDBL_MIN LDBL_MAX 17 12/23/2009 Ví d s th c: #include #include #include #include int int main(void) main(void) {{ double double ff == 3.1416, 3.1416, gg == 1.2e-5, 1.2e-5, hh == 5000000000.0; 5000000000.0; printf("f=%lf\tg=%lf\th=%lf\n", printf("f=%lf\tg=%lf\th=%lf\n", f, f, g, g, h); h); printf("f=%le\tg=%le\th=%le\n", f, g, h); printf("f=%le\tg=%le\th=%le\n", f, g, h); printf("f=%lg\tg=%lg\th=%lg\n", printf("f=%lg\tg=%lg\th=%lg\n", f, f, g, g, h); h); printf("f=%7.2lf\tg=%.2le\th=%.4lg\n", printf("f=%7.2lf\tg=%.2le\th=%.4lg\n", f, f, g, g, h); h); return return 0; 0; }} f=3.141600 f=3.141600 f=3.141600e+00 f=3.141600e+00 f=3.1416 f=3.1416 f= 3.14 f= 3.14 NH P MÔN L P TRÌNH g=0.000012 g=0.000012 g=1.200000e-05 g=1.200000e-05 g=1.2e-05 g=1.2e-05 g=1.20e-05 g=1.20e-05 12/23/2009 h=5000000000.000000 h=5000000000.000000 h=5.000000e+09 h=5.000000e+09 h=5e+09 h=5e+09 h=5e+09 h=5e+09 18 H ng – Constant const int days_in_week = 7; Ch a d li u không th thay i c ch ng trình Mu n s d ng ph i khai bá báo Ph i có ki u ( ng t nh bi n) H ng s có ch a “.” ho c “e” có ki u double (3.5, 1e1e-7, -1.29e15) H ng s ki u float k t thú thúc b i “F” (3.5F, 1e1e-7F) H ng s ki u long double double k t thú thúc b i “L” (-1.29e15L, 1e1e-7L) H ng s có “.”, “e” ho c “F” có ki u int Ví d : 10000, -35 (M t ng chuy n vài trì trình biên d ch t thành long int n u giá giá tr h ng tràn ki u int) Khai bá báo h ng long int ph i thêm vào cu i “L” (9000000L) NH P MÔN L P TRÌNH 12/23/2009 19 Ví d v h ng Các h ng pi, days_in_week, sunday c t o v i t khóa const #include #include L i int intmain(void) main(void) {{ const const long long double double pi pi == 3.141592653590L; 3.141592653590L; const const int int days_in_week days_in_week == 7; 7; const const sunday sunday == 0; 0; days_in_week days_in_week == 5; 5; return return 0; 0; }} NH P MÔN L P TRÌNH 12/23/2009 20 H ng x lý tr c biên d ch Các h ng có th c xác l p tr c biên d ch B n ch t tìm ki m thay th Th ng c t tên v i ch in hoa Tìm t “PI”, thay b ng 3.1415 #include #include #define #definePI PI #define DAYS_IN_WEEK #define DAYS_IN_WEEK #define #defineSUNDAY SUNDAY 3.141592653590L 3.141592653590L 77 00 u ý: “=” “;” int int day day == SUNDAY; SUNDAY; long long flag flag == USE_API; USE_API; Không thay th “PI” NH P MÔN L P TRÌNH 12/23/2009 Toán t C 21 Toán t C Phé Phép toá toán s h c Ép ki u Các toán t bit Các toán t so sánh Phép gán Toá Toán t sizeof Bi u th c i u ki n NH P MÔN L P TRÌNH 12/23/2009 23 Toán t s h c NNLT C h tr phép toán s h c: + c ng tr * nhân / chia % chia l y d u ý: ý: “/” cho k t qu ph thu c vào ki u c a toán h ng “%” không th c hi n c v i s th c NH P MÔN L P TRÌNH 12/23/2009 24 Ví d v toán t chia “/” Trình biên d ch d a vào ki u c a toán h ng nh phép chia t ng ng “i”, “j” ki u int, “/” phép chia l y nguyên k nh n giá tr int int main(void) main(void) {{ int ii == 5, int 5, double f = 5.0, double f = 5.0, “f”, “g” ki u double, “/” phép chia s th c h nh n giá tr 1.25 Phép chia nguyên, b t “h” có ki u double t qu 1.00000 kk hh hh == == == ii ff ii // // // jj gg == == quy t 4, 4, 4.0, 4.0, k; k; h; h; j; j; g; g; j; j; return return 0; 0; }} NH P MÔN L P TRÌNH 12/23/2009 25 Ép ki u Ép ki u làm thay bi u th c i t m th i ki u c a m t bi n m t int int main(void) main(void) {{ int int ii == 5, 5, jj == 4; 4; double f; double f; ff ff ff ff Phép chia s nguyên c th c hi n, k t qu , 1, c i sang ki u double, 1.00000 == == == == (double)i (double)i // j; j; ii // (double)j; (double)j; (double)i (double)i // (double)j; (double)j; (double)(i (double)(i // j); j); return return 0; 0; }} NH P MÔN L P TRÌNH 12/23/2009 26 Phép t ng (gi m) NNLT C có c bi t h tr vi c t ng (gi m) giá có toá toán t giá tr c a m t bi n thay i n v ++ ng gi m Các toán t có th “i” “j” t tr “i” NH P MÔN L P TRÌNH Tr c ho c sau bi n int int ii == 5, 5, jj == 4; 4; ii ++; ++; - j; j; ++ ++ i; i; 27 12/23/2009 c hay sau ? Th t th c hi n toán t ++ ph thu c vào v trí c a chúng (t c hay sau) so v i bi n: #include #include int intmain(void) main(void) {{ int i, int i, jj == 5; 5; ii == ++j; ++j; printf("i=%d, printf("i=%d, j=%d\n", j=%d\n", jj == 5; 5; ii == j++; j++; printf("i=%d, printf("i=%d, j=%d\n", j=%d\n", return return 0; 0; }} NH P MÔN L P TRÌNH ng j++; i = j; i, i, j); j); ng i = j; j++; ng: ng: i, i, j); j); i=6, i=6, i=5, i=5, 12/23/2009 j=6 j=6 j=6 j=6 28 Ki u lu n lý C Trong C ki u d li u lu n lý (th hi n giá tr ÚNG – SAI), thay vào ó bi u th c so sánh s cho k t qu S Giá tr (0.0) ng v i k t qu SAI (FALSE) Các giá giá tr khác nh 1, -3.5, -7, 10.4, … (khá (khác không) u c xem ÚNG (TRUE) NH P MÔN L P TRÌNH 12/23/2009 29 Các toán t so sánh NNLT C h tr phé phép so sá sánh: < >= == != bé n bé n hay b ng l nh n l n h n hay b ng b ng không b ng T t c u cho k t qu so sánh úng tr ng h p ng c l i NH P MÔN L P TRÌNH 12/23/2009 30 Toán t lu n lý NNLT C h tr toá toán t lu n lý: && || ! (and) ho c (or) ph nh (not) T tc u cho k t qu ho c ÚNG ho c SAI ng ng tr ng h p int int i, i, jj == 10, 10, kk == 28; 28; ii == ((j ((j >> 5) 5) && && (k (k > 24); 24); NH P MÔN L P TRÌNH 31 12/23/2009 Toán t lu n lý u ý s d ng cá toá toán t lu n lý: N u có d u (), cá phé phép toá toán trái sang ph i c th c hi n t if((i if(i 10) && a[i] (a[i] >> 0) >> 0)) if((iy) ? x : y) NH P MÔN L P TRÌNH 39 12/23/2009 u tiên c a toán t Th t th c hi n toán t m t bi u th c ph thu c vào u tiên c a chúng Có 15 m c u tiên Thông th ng, toán t m t có u tiên cao h n toán t hai Các c p d u ngo c n () t ng c dùng ch rõ th t toán t #include #include int int main(void) main(void) {{ int int jj == 33 ** 44 ++ 48 48 // 7; 7; printf("j printf("j == %i\n", %i\n", j); j); return return 0; 0; NH P MÔN L P TRÌNH }} 12/23/2009 jj == 18 18 40 B ng th t th c hi n toán t Toán t Th () [] -> ! ++ - + (cast) * & sizeof * / % + > < = > == != & | ^ && || ?: = += -= *= /= %= … NH P MÔN L P TRÌNH (n u T) 41 12/23/2009 Luy n t p #include #include int int main(void) main(void) {{ int int ii == 0, 0, j, j, kk == jj == mm += += 2; 2; printf("j printf("j == %d\n", %d\n", jj == k++ > 7; k++ > 7; printf("j printf("j == %d\n", %d\n", jj == ii == & == & k; k; printf("j = %d\n", printf("j = %d\n", nn == !i !i >> kk >> >> 2; 2; printf("n = %d\n", printf("n = %d\n", return return 0; 0; }} NH P MÔN L P TRÌNH 12/23/2009 7, 7, mm == 5, 5, n; n; j); j); j); j); j); j); n); n); 42 Tóm l c M t s thành ph n c a ch ng trình C Hàm main L nh xu t / nh p – printf / scanf Bi n Các ki u s nguyên s th c H ng – cách khai báo S d ng toá toán t C NH P MÔN L P TRÌNH 12/23/2009 43 [...]... MÔN L P TRÌNH 12/23/2009 Toán t trong C 21 Toán t trong C Phé Phép toá toán s h c Ép ki u Các toán t trên bit Các toán t so sánh Phép gán Toá Toán t sizeof Bi u th c i u ki n NH P MÔN L P TRÌNH 12/23/2009 23 Toán t s h c NNLT C h tr các phép toán s h c: + c ng tr * nhân / chia % chia l y d u ý: ý: “/” cho k t qu ph thu c vào ki u c a các toán h ng “%” không th c hi n c v i các s th c NH P MÔN L P TRÌNH... printf("n = %d\n", printf("n = %d\n", return return 0; 0; }} NH P MÔN L P TRÌNH 12/23/2009 7, 7, mm == 5, 5, n; n; j); j); j); j); j); j); n); n); 42 Tóm l c M t s thành ph n c a ch ng trình trong C Hàm main L nh xu t / nh p – printf / scanf Bi n Các ki u s nguyên và s th c H ng – 2 cách khai báo S d ng toá toán t trong C NH P MÔN L P TRÌNH 12/23/2009 43 ... tr khá khác nh 1, -3.5, -7, 10.4, … (khá (khác không) u c xem là ÚNG (TRUE) NH P MÔN L P TRÌNH 12/23/2009 29 Các toán t so sánh NNLT C h tr các phé phép so sá sánh: < >= == != bé n bé n hay b ng l nh n l n h n hay b ng b ng không b ng T t c u cho k t qu 1 khi so sánh úng và 0 trong tr ng h p ng c l i NH P MÔN L P TRÌNH 12/23/2009 30 Toán t lu n lý NNLT C h tr các toá toán t lu n lý: && || ! và... giá tr a bi u th c s là 0 và “a[i] > 0” s không c tính Không Không nên:(a nên:(a ... f=3.141600e+00 f=3.1416 f=3.1416 f= 3.14 f= 3.14 NH P MÔN L P TRÌNH g=0.000012 g=0.000012 g=1.200000e-05 g=1.200000e-05 g=1.2e-05 g=1.2e-05 g=1.20e-05 g=1.20e-05 12/23/2009 h=5000000000.000000 h=5000000000.000000... P MÔN L P TRÌNH }} 12/23/2009 jj == 18 18 40 B ng th t th c hi n toán t Toán t Th () [] -> ! ++ - + (cast) * & sizeof * / % + > < = > == != & | ^ && || ?: = += -= *= /= %= … NH P MÔN... toàn c c Có tác d ng toàn kh i k t lúc NH P MÔN L P TRÌNH c khai báo 12/23/2009 L nh xu t - printf Xu t d li u hình: printf("%i - %i = %i ", a, b, a - b); Các ký t h ng c in nguyên v n Các ký

Ngày đăng: 03/01/2016, 10:25

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan