Bài giảng Nhập môn lập trình: Mở đầu - Trần Phước Tuấn

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 khiển

„ Hàm

„ Struct

„ Mảng

„ Con trỏ

„ Chuỗi kí tự

pdf22 trang | Chia sẻ: phuongt97 | Lượt xem: 376 | Lượt tải: 0download
Bạn đang xem trước 20 trang nội dung tài liệu Bài giảng Nhập môn lập trình: Mở đầu - Trần Phước Tuấn, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
NMLT M? ??U Tr?n Ph??c Tu?n tranphuoctuan.khoatoan.dhsp@gmail.com NH?P MÔN L?P TRÌNH 212/23/2009 ?? ???ng bài gi?ng ? M?c tiêu môn h?c: Cung c?p cho sinh viên các k? ??ng c? b?n ?? l?p trình gi?i quy?t các v?n ??, bài 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, các sinh viên ???c cung c?p các k? ??ng: ? ??c và 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 các th? vi?n chu?n ? Nh?n bi?t và s?a ch?a các l?i th??ng g?p khi l?p trình ? Các môn h?c tiên quy?t: không. ? N?i dung bài gi?ng: NH?P MÔN L?P TRÌNH 312/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 khi?n ? Hàm ? Struct ? M?ng ? Con tr? ? Chu?i ký t? NH?P MÔN L?P TRÌNH 412/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 Các thành ph?n c?a ch??ng trình C NH?P MÔN L?P TRÌNH 612/23/2009 Ví d? ch??ng trình C /*VIDU.CPP*/ #include int main() { printf(“Nhap mon lap trinh\n"); printf(“Vi du don gian\n"); return 0; } /*VIDU.CPP*/ #include int main() { printf(“Nhap mon lap trinh\n"); printf(“Vi du don gian\n"); return 0; } Nhap mon lap trinh Vi du don gian Nhap mon lap trinh Vi du don gian Th? vi?n nh?p xu?t chu?nGhi chú Hàm main Báo CT k?t thúc cho H?H NH?P MÔN L?P TRÌNH 712/23/2009 M?t s? ??u ý t? ví d? ? Ph?n ghi chú ???c trình biên d?ch b? qua ? Phân bi?t ch? in hoa và ch? in th??ng ? Câu l?nh luôn ???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ình nên thông báo k?t qu? th?c hi?n v?i h? th?ng: T?t – 0, có l?i – 1, 2, 3 ? Ch??ng trình có m?t hàm main NH?P MÔN L?P TRÌNH 812/23/2009 Ví d? 2 #include int main(void) { int a, b; printf(“Nhap 2 so ngguyen: "); scanf("%i %i", &a, &b); printf("%i - %i = %i\n", a, b, a - b); return 0; } #include int main(void) { int a, b; printf(“Nhap 2 so ngguyen: "); scanf("%i %i", &a, &b); printf("%i - %i = %i\n", a, b, a - b); return 0; } Khai báo 2 bi?n s? nguyên, “a” và “b” Nh?p 2 s? nguyên vào a và b Vi?t các bi?u th?c “a”, “b” và “a-b” theo ??nh ??ng %i Nhap 2 so nguyen: 21 17 21 - 17 = 4 Nhap 2 so nguyen: 21 17 21 - 17 = 4 NH?P MÔN L?P TRÌNH 912/23/2009 Bi?n – Variable int a, b; ? Ch?a d? li?u có th? thay ??i ???c trong 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 ???c b?t ??u b?ng ký s?. ? Bi?n khai báo trong kh?i ???c g?i là bi?n c?c b?, không thu?c kh?i nào ???c g?i là bi?n toàn c?c ? Có tác d?ng trong toàn kh?i k? t? lúc ???c khai báo. NH?P MÔN L?P TRÌNH 1012/23/2009 L?nh xu?t - printf Xu?t d? li?u ra màn 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 ???c thay b?ng giá tr? c?a bi?u th?c t??ng ?ng: ? %i: ký t? ??nh d?ng s? nguyên ki?u int ? Các ký t? ?i?u khi?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 1112/23/2009 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? ??nh d?ng và kho?ng tr?ng. ? D? li?u ph?i ???c nh?p vào các bi?n. ? Tr??c tên bi?n ph?i ghi d?u & - toán t? ??a ch?. N?u không có toán t? ??a ch?, giá tr? c?a bi?n s? không ???c c?p nh?t ? Th? vi?n: stdio.h Ki?u d? li?u c? s? trong C NH?P MÔN L?P TRÌNH 1312/23/2009 Các ki?u s? nguyên c?a C ? C h? tr? khá nhi?u ki?u s? nguyên ? Các giá tr? l?n nh?t và nh? nh?t ???c ??nh ngh?a trong th? vi?n “limits.h” Ki?u ??nh d?ng kích th??c nh? nh?t l?n nh?t char %c 1 CHAR_MIN CHAR_MAX unsigned char %c 1 0 UCHAR_MAX short [int] %hi 2 SHRT_MIN SHRT_MAX unsigned short%hu 2 0 USHRT_MAX int %i 2 or 4 INT_MIN INT_MAX unsigned int %u 2 or 4 0 UINT_MAX long [int] %li 4 LONG_MIN LONG_MAX unsigned long %lu 4 0 ULONG_MAX NH?P MÔN L?P TRÌNH 1412/23/2009 Ví d? v? s? nguyên #include #include int main() { unsigned long big = ULONG_MAX; printf("minimum int = %i, ", INT_MIN); printf("maximum int = %i\n", INT_MAX); printf("maximum unsigned = %u\n", UINT_MAX); printf("maximum long int = %li\n", LONG_MAX); printf("maximum unsigned long = %lu\n", big); return 0; } #include #include int main() { unsigned long big = ULONG_MAX; printf("minimum int = %i, ", INT_MIN); printf("maximum int = %i\n", INT_MAX); printf("maximum unsigned = %u\n", UINT_MAX); printf("maximum long int = %li\n", LONG_MAX); printf("maximum unsigned long = %lu\n", big); return 0; } minimum int = -32768, maximum int = 32767 maximum unsigned = 65535 maximum long int = 2147483647 maximum unsigned long = 4294967295 minimum int = -32768, maximum int = 32767 maximum unsigned = 65535 maximum long int = 2147483647 maximum unsigned long = 4294967295 NH?P MÔN L?P TRÌNH 1512/23/2009 #include #include int main() { char lower_a = 'a'; char lower_m = 'm'; printf("minimum char = %i, ", CHAR_MIN); printf("maximum char = %i\n", CHAR_MAX); printf(“Sau '%c' la '%c'\n", lower_a, lower_a + 1); printf(“Ky tu in hoa '%c'\n", lower_m - 'a' + 'A'); return 0; } #include #include int main() { char lower_a = 'a'; char lower_m = 'm'; printf("minimum char = %i, ", CHAR_MIN); printf("maximum char = %i\n", CHAR_MAX); printf(“Sau '%c' la '%c'\n", lower_a, lower_a + 1); printf(“Ky tu in hoa '%c'\n", lower_m - 'a' + 'A'); return 0; } minimum char = -128, maximum char = 127 Sau 'a' la 'b' Ky tu in hoa 'M' minimum char = -128, maximum char = 127 Sau 'a' la 'b' Ky tu in hoa 'M' In ra mã ASCII c?a ký t? Ví d? ki?u ký t? Trong NNLT C, ký t? chính là s? nguyên NH?P MÔN L?P TRÌNH 1612/23/2009 S? nguyên trong các c? s? khác ? Các h? ?? s? có th? th?c hi?n ???c: ?? s? 8 (octal), ?? s? 10 (decimal), ?? s? 16 (hexadecimal) ?? 0: s? octal 0x: s? hexadecimal #include int main(void) { int dec = 20, oct = 020, hex = 0x20; printf("dec=%d, oct=%d, hex=%d\n", dec, oct, hex); printf("dec=%d, oct=%o, hex=%x\n", dec, oct, hex); return 0; } #include int main(void) { int dec = 20, oct = 020, hex = 0x20; printf("dec=%d, oct=%d, hex=%d\n", dec, oct, hex); printf("dec=%d, oct=%o, hex=%x\n", dec, oct, hex); return 0; } dec=20, oct=16, hex=32dec=20, oct=20, hex=20 dec=20, oct=16, hex=32 dec=20, oct=20, hex=20 NH?P MÔN L?P TRÌNH 1712/23/2009 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 và nh? nh?t ???c ??nh ngh?a trong th? vi?n “float.h” Ki?u ??nh d?ng kích th??c nh? nh?t ??n nh?t float %f %e %g 4 FLT_MIN FLT_MAX double %lf %le %lg 8 DBL_MIN DBL_MAX long double %Lf %Le %Lg 10 LDBL_MIN LDBL_MAX NH?P MÔN L?P TRÌNH 1812/23/2009 Ví d? s? th?c: #include #include int main(void) { double f = 3.1416, g = 1.2e-5, h = 5000000000.0; printf("f=%lf\tg=%lf\th=%lf\n", f, g, h); printf("f=%le\tg=%le\th=%le\n", f, g, h); printf("f=%lg\tg=%lg\th=%lg\n", f, g, h); printf("f=%7.2lf\tg=%.2le\th=%.4lg\n", f, g, h); return 0; } #include #include int main(void) { double f = 3.1416, g = 1.2e-5, h = 5000000000.0; printf("f=%lf\tg=%lf\th=%lf\n", f, g, h); printf("f=%le\tg=%le\th=%le\n", f, g, h); printf("f=%lg\tg=%lg\th=%lg\n", f, g, h); printf("f=%7.2lf\tg=%.2le\th=%.4lg\n", f, g, h); return 0; } f=3.141600 g=0.000012 h=5000000000.000000 f=3.141600e+00 g=1.200000e-05 h=5.000000e+09 f=3.1416 g=1.2e-05 h=5e+09 f= 3.14 g=1.20e-05 h=5e+09 f=3.141600 g=0.000012 h=5000000000.000000 f=3.141600e+00 g=1.200000e-05 h=5.000000e+09 f=3.1416 g=1.2e-05 h=5e+09 f= 3.14 g=1.20e-05 h=5e+09 NH?P MÔN L?P TRÌNH 1912/23/2009 H?ng – Constant const int days_in_week = 7; Ch?a d? li?u không th? thay ??i ???c trong ch??ng trình. ? Mu?n s? d?ng ph?i khai 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, 1e-7, -1.29e15) ? H?ng s? ki?u float k?t thúc b?i “F” (3.5F, 1e-7F) ? H?ng s? ki?u long double k?t thúc b?i “L” (-1.29e15L, 1e-7L) ? H?ng s? không có “.”, “e” ho?c “F” có ki?u int. Ví d?: 10000, -35. (M?t vài trình biên d?ch t? ??ng chuy?n thành long int n?u giá tr? h?ng tràn ki?u int) ? Khai báo h?ng long int ph?i thêm vào cu?i “L” (9000000L) NH?P MÔN L?P TRÌNH 2012/23/2009 Ví d? v? h?ng Các h?ng pi, days_in_week, sunday ???c t?o v?i t? khóa const #include int main(void) { const long double pi = 3.141592653590L; const int days_in_week = 7; const sunday = 0; days_in_week = 5; return 0; } #include int main(void) { const long double pi = 3.141592653590L; const int days_in_week = 7; const sunday = 0; days_in_week = 5; return 0; } L?i NH?P MÔN L?P TRÌNH 2112/23/2009 H?ng x? lý tr??c biên d?ch ? Các h?ng có th? ???c xác l?p tr??c khi biên d?ch ? B?n ch?t là tìm ki?m và thay th? ? Th??ng ???c ??t tên v?i các ch? cái in hoa #include #define PI 3.141592653590L #define DAYS_IN_WEEK 7 #define SUNDAY 0 int day = SUNDAY; long flag = USE_API; #include #define PI 3.141592653590L #define DAYS_IN_WEEK 7 #define SUNDAY 0 int day = SUNDAY; long flag = USE_API; Tìm t? “PI”, thay b?ng 3.1415.... Không thay th? “PI” ??u ý: không có “=” và “;” Toán t? trong C NH?P MÔN L?P TRÌNH 2312/23/2009 Toán t? trong C ? Phép 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án t? sizeof ? Bi?u th?c ?i?u ki?n NH?P MÔN L?P TRÌNH 2412/23/2009 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 2512/23/2009 Ví d? v? toán t? chia “/” ? Trình biên d?ch d?a vào ki?u c?a các toán h?ng ?? quy?t ??nh phép chia t??ng ?ng int main(void) { int i = 5, j = 4, k; double f = 5.0, g = 4.0, h; k = i / j; h = f / g; h = i / j; return 0; } int main(void) { int i = 5, j = 4, k; double f = 5.0, g = 4.0, h; k = i / j; h = f / g; h = i / j; return 0; } “i”, “j” ki?u int, “/” là phép chia l?y nguyên ? k nh?n giá tr? 1 “f”, “g” ki?u double, “/” là 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? là 1.00000 NH?P MÔN L?P TRÌNH 2612/23/2009 Ép ki?u ? Ép ki?u làm thay ??i t?m th?i ki?u c?a m?t bi?n trong m?t bi?u th?c. int main(void) { int i = 5, j = 4; double f; f = (double)i / j; f = i / (double)j; f = (double)i / (double)j; f = (double)(i / j); return 0; } int main(void) { int i = 5, j = 4; double f; f = (double)i / j; f = i / (double)j; f = (double)i / (double)j; f = (double)(i / j); return 0; } Phép chia s? nguyên ???c th?c hi?n, k?t qu?, 1, ???c ??i sang ki?u double, 1.00000 NH?P MÔN L?P TRÌNH 2712/23/2009 Phép t?ng (gi?m) 1 ? NNLT C có 2 toán t? ??c bi?t h? tr? vi?c t?ng (gi?m) giá tr? c?a m?t bi?n thay ??i 1 ??n v? ++ ??ng 1 -- gi?m 1 ? Các toán t? này có th? ??t ? tr??c ho?c sau bi?n. int i = 5, j = 4; i ++; -- j; ++ i; int i = 5, j = 4; i ++; -- j; ++ i; “i” ? 6 “j”? 3 “i” ? 7 NH?P MÔN L?P TRÌNH 2812/23/2009 Tr??c hay sau ? Th? t? th?c hi?n các toán t? ++ và -- ph? thu?c vào v? trí c?a chúng (t???c hay sau) so v?i bi?n: #include int main(void) { int i, j = 5; i = ++j; printf("i=%d, j=%d\n", i, j); j = 5; i = j++; printf("i=%d, j=%d\n", i, j); return 0; } #include int main(void) { int i, j = 5; i = ++j; printf("i=%d, j=%d\n", i, j); j = 5; i = j++; printf("i=%d, j=%d\n", i, j); return 0; } i=6, j=6 i=5, j=6 i=6, j=6 i=5, j=6 ???ng ???ng: 1. j++; 2. i = j; ???ng ???ng: 1. i = j; 2. j++; NH?P MÔN L?P TRÌNH 2912/23/2009 Ki?u lu?n lý trong C ? Trong C không có ki?u d? li?u lu?n lý (th? hi?n các giá tr? ?ÚNG – SAI), thay vào ?ó các bi?u th?c so sánh s? cho k?t qu? là S? ? Giá tr? 0 (0.0) ?ng v?i k?t qu? SAI (FALSE) ? Các giá tr? khác nh? 1, -3.5, -7, 10.4, (khác không) ??u ???c xem là ?ÚNG (TRUE) NH?P MÔN L?P TRÌNH 3012/23/2009 Các toán t? so sánh ? NNLT C h? tr? các phép so sánh: < bé ??n <= bé ??n hay b?ng > l?n h?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 3112/23/2009 Toán t? lu?n lý ? NNLT C h? tr? các toán t? lu?n lý: && và (and) || ho?c (or) ! ph? ??nh (not) ? T?t c? ??u cho k?t qu? 1 ho?c 0 ???ng ?ng các tr??ng h?p ?ÚNG ho?c SAI int i, j = 10, k = 28; i = ((j > 5) && (k 24); int i, j = 10, k = 28; i = ((j > 5) && (k 24); NH?P MÔN L?P TRÌNH 3212/23/2009 Toán t? lu?n lý ? ??u ý khi s? d?ng các toán t? lu?n lý: N?u không có các d?u (), các phép toán ???c th?c hi?n t? trái sang ph?i if(i 0) printf("%i\n", a[i]); if(i 0) printf("%i\n", a[i]); “i < 10” ???c ki?m tra tr??c, n?u không ?úng giá tr? ??a bi?u th?c s? là 0 và “a[i] > 0” s? không ???c tính (i 0))(i 0)) Nên vi?t Không nên:(a < b < c)Không nên:(a < b < c) Nên:((a < b) && (b< c)Nên:((a < b) && (b< c) NH?P MÔN L?P TRÌNH 3312/23/2009 Toán t? trên bit ? Các toán t? trên bit ch? có tác d?ng trên các ki?u s? nguyên: & And | Or ^ XOr >> ??y ph?i << ??y trái NH?P MÔN L?P TRÌNH 3412/23/2009 Ví d? v? các toán t? trên bit #include int main(void) { short a = 0x6eb9; short b = 0x5d27; unsigned short c = 7097; printf("0x%x, ", a & b); printf("0x%x, ", a | b); printf("0x%x\n", a ^ b); printf("%u, ", c << 2); printf("%u\n", c >> 1); return 0; } #include int main(void) { short a = 0x6eb9; short b = 0x5d27; unsigned short c = 7097; printf("0x%x, ", a & b); printf("0x%x, ", a | b); printf("0x%x\n", a ^ b); printf("%u, ", c << 2); printf("%u\n", c >> 1); return 0; } 0x4c21, 0x7fbf, 0x339e 28388, 3548 0x4c21, 0x7fbf, 0x339e 28388, 3548 0x6eb9 0110 1110 1011 1001 0x5d27 0101 1101 0010 0111 0x4c21 0100 1100 0010 0001 0x6eb9 0110 1110 1011 1001 0x5d27 0101 1101 0010 0111 0x4c21 0100 1100 0010 0001 0x6eb9 0110 1110 1011 1001 0x5d27 0101 1101 0010 0111 0x7fbf 0111 1111 1011 1111 0x6eb9 0110 1110 1011 1001 0x5d27 0101 1101 0010 0111 0x7fbf 0111 1111 1011 1111 0x6eb9 0110 1110 1011 1001 0x5d27 0101 1101 0010 0111 0x339e 0011 0011 1001 1110 0x6eb9 0110 1110 1011 1001 0x5d27 0101 1101 0010 0111 0x339e 0011 0011 1001 1110 7097 0001 1011 1011 1001 28388 0110 1110 1110 0100 7097 0001 1011 1011 1001 28388 0110 1110 1110 0100 7097 0001 1011 1011 1001 3548 0000 1101 1101 1100 7097 0001 1011 1011 1001 3548 0000 1101 1101 1100 NH?P MÔN L?P TRÌNH 3512/23/2009 Phép gán ? Có th? s? d?ng liên ti?p nhi?u phép gán ? Giá tr? ???c gán s? s?n sàng cho l?nh k? ti?p int i, j, k, l, m, n; i = j = k = l = m = n = 22; printf("%i\n", j = 93); int i, j, k, l, m, n; i = j = k = l = m = n = 22; printf("%i\n", j = 93); “n = 22” gán tr??c, l?i gán “n” cho “m”, “m” cho “l”, ? i, j, k, l, m, n ??u nh?n giá tr? 22. “j” ???c gán 93, giá tr? 93 s? ???c in ra màn hình NH?P MÔN L?P TRÌNH 3612/23/2009 ??u ý: ? V? trái phép gán luôn ph?i là bi?n ? Không ???c nh?m l?n gi?a so sánh b?ng “==” và gán “=” #include int main(void) { int i = 0; if(i = 0) printf("i nhan gia tri khong\n"); else printf(“i khac khong\n"); return 0; } #include int main(void) { int i = 0; if(i = 0) printf("i nhan gia tri khong\n"); else printf(“i khac khong\n"); return 0; } i khac khongi khac khong Phép gán NH?P MÔN L?P TRÌNH 3712/23/2009 M?t s? phép gán ??c bi?t ? Các phép gán k?t h?p toán t? khác: += -= *= /= %= &= |= ^= >= ? T?ng quát: bi?n op= bi?u th?c ???ng ???ng: bi?n = bi?n op (bi?u th?c) a += 27;a += 27; a = a + 27;a = a + 27; f /= 9.2;f /= 9.2; f = f / 9.2;f = f / 9.2; i *= j + 2;i *= j + 2; i = i * (j + 2);i = i * (j + 2); NH?P MÔN L?P TRÌNH 3812/23/2009 Toán t? sizeof sizeof(Obj) ? Cho bi?t kích th??c c?a ??i t??ng theo ??n v? byte #include int main(void) { long big; printf("\"big\" is %u bytes\n", sizeof(big)); printf("a short is %u bytes\n", sizeof(short)); printf("a double is %u bytes\n", sizeof (double)); return 0; } #include int main(void) { long big; printf("\"big\" is %u bytes\n", sizeof(big)); printf("a short is %u bytes\n", sizeof(short)); printf("a double is %u bytes\n", sizeof (double)); return 0; } "big" is 4 bytes a short is 2 bytes a double is 8 bytes "big" is 4 bytes a short is 2 bytes a double is 8 bytes NH?P MÔN L?P TRÌNH 3912/23/2009 Bi?u th?c ch?n theo ?i?u ki?n (?i?u ki?n) ? BT1 : BT2 ? Bi?u th?c nh?n giá tr? BT1 n?u ?i?u ki?n khác 0 (?ÚNG), các tr??ng h?p khác nh?n giá tr? BT2 ? Có th? ??nh ngh?a s?n m?t macro ?? tìm s? l?n: #define max(x, y) ((x>y) ? x : y) int i, j = 100, k = -1; i = (j > k) ? j : k; int i, j = 100, k = -1; i = (j > k) ? j : k; int i, j = 100, k = -1; i = (j < k) ? j : k; int i, j = 100, k = -1; i = (j < k) ? j : k; ??u (j > k) i = j; Ng??c l?i i = k; ??u (j > k) i = j; Ng??c l?i i = k; ??u (j < k) i = j; Ng??c l?i i = k; ??u (j < k) i = j; Ng??c l?i i = k; NH?P MÔN L?P TRÌNH 4012/23/2009 ?? ?u tiên c?a toán t? ? Th? t? th?c hi?n các toán t? trong 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 ngôi có ?? ?u tiên cao h?n toán t? hai ngôi. ? Các c?p d?u ngo?c ??n () t???ng ???c dùng ?? ch? rõ th? t? các toán t?. #include int main(void) { int j = 3 * 4 + 48 / 7; printf("j = %i\n", j); return 0; } #include int main(void) { int j = 3 * 4 + 48 / 7; printf("j = %i\n", j); return 0; } j = 18 j = 18 NH?P MÔN L?P TRÌNH 4112/23/2009 B?ng th? t? th?c hi?n các toán t? Toán t? Th? ?? (n?u cùng ??T) () [] -> . ? ! ++ -- - + (cast) * & sizeof ? * / % ? + - ? > ? = > ? == != ? & ? | ? ^ ? && ? || ? ?: ? = += -= *= /= %= ? NH?P MÔN L?P TRÌNH 4212/23/2009 Luy?n t?p #include int main(void) { int i = 0, j, k = 7, m = 5, n; j = m += 2; printf("j = %d\n", j); j = k++ > 7; printf("j = %d\n", j); j = i == 0 & k; printf("j = %d\n", j); n = !i > k >> 2; printf("n = %d\n", n); return 0; } #include int main(void) { int i = 0, j, k = 7, m = 5, n; j = m += 2; printf("j = %d\n", j); j = k++ > 7; printf("j = %d\n", j); j = i == 0 & k; printf("j = %d\n", j); n = !i > k >> 2; printf("n = %d\n", n); return 0; } NH?P MÔN L?P TRÌNH 4312/23/2009 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án t? trong C

Các file đính kèm theo tài liệu này:

  • pdfbai_giang_nhap_mon_lap_trinh_tran_phuoc_tuan.pdf
Tài liệu liên quan