Bài giảng Hệ thống máy tính và ngôn ngữ C - Chương 7: Các thành phần cơ bản và các kiểu dữ liệu của C

pdf 141 trang phuongnguyen 2430
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Hệ thống máy tính và ngôn ngữ C - Chương 7: Các thành phần cơ bản và các kiểu dữ liệu của C", để 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:

  • pdfbai_giang_he_thong_may_tinh_va_ngon_ngu_c_chuong_7_cac_thanh.pdf

Nội dung text: Bài giảng Hệ thống máy tính và ngôn ngữ C - Chương 7: Các thành phần cơ bản và các kiểu dữ liệu của C

  1. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.1 Danh hieäu 7.2 Caùc kieåu döõ lieäu chuaån cuûa C 7.3 Haèng (constant) 7.4 Bieán (variable) 7.5 Bieåu thöùc 7.6 Caùc pheùp toaùn cuûa C 7.7 Caáu truùc toång quaùt cuûa moät chöông trình C Baøi taäp cuoái chöông
  2. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.1 DANH HIEÄU Danh hieäu laø teân cuûa haèng, bieán, haøm hoaëc caùc kyù hieäu ñaõ ñöôïc quy ñònh ñaëc tröng cho moät thao taùc naøo ñoù. Danh hieäu coù hai loaïi: kyù hieäu vaø danh hieäu.
  3. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.1 DANH HIEÄU Kyù hieäu (symbol) laø caùc daáu ñaõ ñöôïc C quy ñònh ñeå bieåu dieãn cho moät thao taùc naøo ñoù. -Neáu duøng moät daáu ñeå bieåu dieãn cho moät thao taùc thì ta coù kyù hieäu ñôn (single symbol). Ví duï: +, -, *, /, %, =, >, <
  4. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.1 DANH HIEÄU Kyù hieäu (symbol) laø caùc daáu ñaõ ñöôïc C quy ñònh ñeå bieåu dieãn cho moät thao taùc naøo ñoù. -Neáu duøng hai daáu trôû leân bieåu dieãn cho moät thao taùc thì ta coù kyù hieäu keùp (compound symbol). Ví duï: ==, >=, <=, /*, */, ++, , &&, ||,
  5. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.1 DANH HIEÄU Danh hieäu (Identifier) laø caùc töø khoùa cuûa ngoân ngöõ hoaëc teân cuûa caùc haèng, bieán, haøm trong C. Danh hieäu bao haøm töø khoùa vaø danh hieäu. Töø khoùa (keyword) laø caùc danh hieäu maø C ñaõ ñònh nghóa saün cho laäp trình vieân söû duïng ñeå thieát keá chöông trình, taäp caùc töø khoùa cuûa C seõ ñöôïc lieät keâ trong phaàn phuï luïc. Ví duï: if, for, while
  6. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.1 DANH HIEÄU Danh hieäu (Identifier) laø caùc töø khoùa cuûa ngoân ngöõ hoaëc teân cuûa caùc haèng, bieán, haøm trong C. Danh hieäu bao haøm töø khoùa vaø danh hieäu. Danh hieäu laø teân cuûa caùc haèng, bieán, haøm -Neáu caùc haèng, bieán, haøm naøy do C ñaõ khai baùo vaø thieát keá saün thì caùc danh hieäu coù ñöôïc goïi laø caùc danh hieäu chuaån. Ví duï: main, scanf, printf
  7. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.1 DANH HIEÄU Danh hieäu (Identifier) laø caùc töø khoùa cuûa ngoân ngöõ hoaëc teân cuûa caùc haèng, bieán, haøm trong C. Danh hieäu bao haøm töø khoùa vaø danh hieäu. Danh hieäu laø teân cuûa caùc haèng, bieán, haøm -Neáu caùc haèng, bieán, haøm naøy do laäp trình vieân khai baùo vaø ñònh nghóa trong quaù trình thieát keá chöông trình thì caùc danh hieäu ñoù ñöôïc goïi laø caùc danh hieäu khoâng chuaån. -Ví duï: a, b, delta
  8. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.1 DANH HIEÄU Chuù yù raèng C laø moät ngoân ngöõ nhaïy caûm vôùi söï phaân bieät giöõa kyù töï hoa vaø kyù töï thöôøng, do ñoù khi vieát While seõ hoaøn toaøn phaân bieät vôùi while. Caùc töø khoùa cuûa C ñeàu ôû daïng chöõ thöôøng.
  9. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.1 DANH HIEÄU Nhö vaäy danh hieäu khoâng chuaån laø teân cuûa caùc haèng, bieán, haøm do laäp trình vieân töï ñaët, do ñoù nguyeân taéc ñaët teân cuûa danh hieäu khoâng chuaån cuõng caàn phaûi ñöôïc neâu cuï theå: - Danh hieäu khoâng chuaån khoâng truøng vôùi töø khoùa - Danh hieäu khoâng chuaån khoâng truøng vôùi danh hieäu chuaån
  10. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.1 DANH HIEÄU - Khi ñaët teân cho danh hieäu khoâng chuaån caàn phaûi theo sô ñoà cuù phaùp sau:
  11. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.1 DANH HIEÄU Chuù yù: - Ñoái vôùi oâ vuoâng khi ñi ngang qua ta caàn phaûi laáy moät phaàn töû trong noù. - Ñoái vôùi oâ troøn khi ñi ngang qua ta phaûi laáy phaàn töû trong noù. - Moät danh hieäu coù theå ñöôïc baét ñaàu baèng daáu gaïch döôùi
  12. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.1 DANH HIEÄU Ví duï: Main ? -batdau ? _batdau ? 2thang9 ? ket thuc ?
  13. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.1 DANH HIEÄU Ví duï: Main ? -batdau ? _batdau ? 2thang9 ? ket thuc ? /* maøu ñoû: danh hieäu sai*/
  14. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.1 DANH HIEÄU Chieàu daøi moät danh hieäu khoâng bò haïn cheá, moãi boä dòch C seõ coù quy ñònh veà chieàu daøi danh hieäu khaùc nhau, ñoái vôùi caùc boä dòch C/C++ thì danh hieäu coù theå daøi tuøy yù, tuy nhieân trong caùc boä dòch Borland C/C++ coù quy ñònh moät giaù trò xaùc ñònh soá kyù töï ñaàu coù nghóa ñeå phaân bieät söï gioáng nhau vaø khaùc nhau giöõa hai danh hieäu. Trong Turbo C 2.0, giaù trò naøy laø 31, trong Borland C++ 5.02, giaù trò naøy laø 55.
  15. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.1 DANH HIEÄU Ví duï: ket_thuc_vong_lap_in_ra_ky_tu_khoang_trang ket_thuc_vong_lap_in_ra_k
  16. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.2 CAÙC KIEÅU DÖÕ LIEÄU CUÛA C C coù boán kieåu döõ lieäu chuaån: char, int, float vaø double, moãi kieåu seõ coù yeâu caàu veà boä nhôù vaø taàm trò nhö sau: KIEÅU KÍCH THÖÔÙC TAÀM TRÒ BIEÅU DIEÃN char 8 bit -128 + 127 int 16 bit -32768 + 32767 float 32 bit -3.4E37 3.4E+38 double 64 bit -1.7E307 1.7E+308
  17. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.2 CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 1- Kieåu char char laø kieåu nguyeân moät byte, kieåu naøy coù theå ñöôïc söû duïng ñeå khai baùo bieán, bieán ñoù seõ chieám kích thöôùc trong boä nhôù laø 1 byte vaø coù theå giöõ moät kyù töï hoaëc moät giaù trò 8 bit. Moãi boä dòch C seõ coù quy ñònh khaùc nhau veà taàm trò cuûa kieåu char, ñoái vôùi boä dòch TURBO C VERSION 2.0 kieåu char laø kieåu coù daáu.
  18. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.2 CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 1- Kieåu char Ví duï: Bieán kieåu char löu trò haèng kyù töï #include main() { char c; c = 'a'; printf (“Ky tu trong bien c la %c ", c); }
  19. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.2 CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 1- Kieåu char Ví duï: Bieán kieåu char löu trò soá nguyeân #include main() { char c; c = 89; printf ("Tri trong bien c la %d ", c); }
  20. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.2 CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 2- Kieåu int Kieåu int laø moät kieåu soá nguyeân, coù theå ñöôïc söû duïng ñeå khai baùo bieán, bieán ñoù coù kích thöôùc trong boä nhôù laø kích thöôùc cuûa soá nguyeân maø maùy quy ñònh, ñoái vôùi maùy PC vaø boä dòch Borland C/C++ thì chieàu daøi cuûa kieåu int laø 16 bit coù daáu, nhö vaäy moät bieán hay haèng thuoäc kieåu naøy coù taàm trò bieåu dieãn töø –32768 ñeán 32767 (töùc töø –2–15 ñeán 215 – 1).
  21. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.2 CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 2- Kieåu int Ví duï : #include main() { int i; i = 1234; i = i + 123; printf ("Trò trong bieán i laø %d ", i); }
  22. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.2 CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 3- Kieåu float vaø double float laø kieåu soá thöïc daáu chaám ñoäng, coù ñoä chính xaùc ñôn (7 kyù soá sau daáu chaám thaäp phaân), double laø kieåu soá thöïc, daáu chaám ñoäng, coù ñoä chính xaùc keùp (15 kyù soá sau daáu chaám thaäp phaân). Kieåu double coøn coù theå ñöôïc khai baùo laø long float, do ñoù khi khai baùo double b; thì cuõng hoaøn toaøn töông ñöông vôùi long float b;
  23. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.2 CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 3- Kieåu float vaø double Ñeå xuaát nhaäp cho haèng, bieán, bieåu thöùc float chuoãi ñònh daïng ñöôïc söû duïng laø "%f" ñoái vôùi kieåu double thì chuoãi ñònh daïng laø "%lf" cho caùc haøm printf vaø scanf. Ví duï: float a; double b;
  24. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.2 CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 3- Kieåu float vaø double Ví duï: #include #include #include main() { double x, y, luy_thua; clrscr(); printf ("Moi nhap 2 so:"); scanf ("%lf %lf“, &x, &y); if (x < 0 && (y - (int)y != 0)), printf ("Ban da nhap sai tri"); else { luy_thua = pow (x, y); printf ("Luy thua cua %5.2lf voi %5. 2lf la %5.2lf", x, y, luy_thua); } }
  25. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.2 CAÙC KIEÅU DÖÕ LIEÄU CUÛA C Ngoaøi ra, ANSI (American National Standards Institute – ANSI) coøn ñöa theâm moät kieåu döõ lieäu nöõa laø void. Ñaây laø kieåu khoâng trò, chæ duøng ñeå bieåu dieãn keát quaû traû veà cuûa haøm vaø khai baùo pointer khoâng troû ñeán moät kieåu döõ lieäu xaùc ñònh naøo caû. Kieåu naøy seõ ñöôïc noùi chi tieát hôn ôû caùc phaàn sau.
  26. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.2 CAÙC KIEÅU DÖÕ LIEÄU CUÛA C Ñeå boå sung cho boán kieåu döõ lieäu cô baûn C coøn ñöa ra caùc daïng boå sung signed, unsigned, short, long : - signed xaùc ñònh kieåu coù daáu. - unsigned xaùc ñònh kieåu khoâng daáu. - short xaùc ñònh kieåu ngaén cuûa kieåu cô baûn. - long xaùc ñònh kieåu daøi cuûa kieåu cô baûn.
  27. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.2 CAÙC KIEÅU DÖÕ LIEÄU CUÛA C
  28. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.2 CAÙC KIEÅU DÖÕ LIEÄU CUÛA C Chuù yù raèng trong boä nhôù maùy tính, caùc giaù trò ñeàu ñöôïc löu tröõ döôùi daïng maõ nhò phaân coù nhieàu bit (8, 16 hoaëc 32 bit tuøy theo kieåu cuûa bieán hoaëc giaù trò), trong ñoù soá thöù töï cuûa caùc bit ñöôïc ñaùnh soá töø phaûi sang traùi baét ñaàu töø 0, soá hieäu naøy ñöôïc goïi laø vò trí cuûa bit. Moãi bit nhö vaäy coù moät troïng soá laø 2 muõ n, vôùi n laø vò trí cuûa bit ñoù.
  29. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.2 CAÙC KIEÅU DÖÕ LIEÄU CUÛA C Do ñoù, moät soá maø nhò phaân laø 10011110 seõ ñöôïc bieåu dieãn nhö sau:
  30. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.2 CAÙC KIEÅU DÖÕ LIEÄU CUÛA C Ví duï: moät giaù trò kieåu integer (coù daáu) 0 0 0 0 0 0 1 0 1 0 0 0 1 0 1 0 29+27+23+21 = 512 + 128 + 8 + 2 = +650
  31. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.2 CAÙC KIEÅU DÖÕ LIEÄU CUÛA C Ví duï: moät giaù trò kieåu integer (coù daáu) 1 0 0 0 0 0 1 0 1 0 0 0 1 0 1 0 = 29+27+23+21-215 = 512 + 128 + 8 + 2 – 32768 = 650 – 32768 = –32118
  32. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.2 CAÙC KIEÅU DÖÕ LIEÄU CUÛA C Ví duï: moät giaù trò kieåu unsigned integer (khoâng coù daáu) 1 0 0 0 0 0 1 0 1 0 0 0 1 0 1 0 = 29+27+23+21+215 = 512 + 128 + 8 + 2 + 32768 = 650+32768 = 33418
  33. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.2 CAÙC KIEÅU DÖÕ LIEÄU CUÛA C Ví duï: : khi caàn khai baùo moät bieán n coù kieåu laø unsigned int ta chæ caàn vieát: unsigned int n; hoaëc goïn hôn unsigned n; hoaëc chæ caàn vieát: long p; laø ñuû ñeå khai baùo cho bieán p coù kieåu laø signed long int.
  34. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.2 CAÙC KIEÅU DÖÕ LIEÄU CUÛA C Ta caàn chuù yù laø khi muoán khai baùo ñaây laø moät char coù hay khoâng coù bit daáu thì neân khai baùo ñaày ñuû: signed char c; hay unsigned char c;
  35. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.2 CAÙC KIEÅU DÖÕ LIEÄU CUÛA C Moãi kieåu döõ lieäu chæ bieåu dieãn ñöôïc caùc giaù trò naèm trong moät giôùi haïn nhaát ñònh. Giôùi haïn naøy phuï thuoäc vaøo soá bit maø kieåu döõ lieäu ñoù quy ñònh khi khai baùo bieán vaø do ñoù coøn tuøy thuoäc vaøo loaïi maùy. Giôùi haïn naøy ta goïi laø taàm trò cuûa kieåu.
  36. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.2 CAÙC KIEÅU DÖÕ LIEÄU CUÛA C
  37. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.3 HAÈNG (CONSTANT) Haèng laø nhöõng giaù trò coá ñònh coù trò hoaøn toaøn xaùc ñònh vaø khoâng theå thay ñoåi ñöôïc chuùng trong quaù trình thöïc thi chöông trình. Trong C, moãi haèng ñeàu coù moät kieåu döõ lieäu rieâng maø caên cöù vaøo kieåu döõ lieäu ta coù caùc loaïi haèng sau: - Haèng soá - Haèng kyù töï - Chuoãi kyù töï - Bieåu thöùc haèng
  38. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.3 HAÈNG (CONSTANT) 1- Haèng soá Haèng soá laø caùc trò soá ñaõ xaùc ñònh, moät haèng soá coù theå laø soá nguyeân hoaëc soá thöïc.
  39. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.3 HAÈNG (CONSTANT) 1- Haèng soá Haèng soá nguyeân Trong ngoân ngöõ C, haèng soá nguyeân coù theå thuoäc moät trong hai kieåu laø integer hoaëc long integer. ÖÙng vôùi moãi kieåu, haèng soá coù theå ñöôïc bieåu dieãn ôû daïng thaäp phaân, baùt phaân(05) hay thaäp luïc phaân(0x6).
  40. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.3 HAÈNG (CONSTANT) 1- Haèng soá Haèng soá nguyeân + Haèng soá nguyeân ñöôïc vieát moät caùch bình thöôøng vaø thöôøng chieám moät töø (word) trong boä nhôù, do ñoù noù coù giaù trò ñi töø –32768 ñeán 32767, coù nghóa laø MSB cuûa daïng löu tröõ nhò phaân cuûa moät soá nguyeân luoân laø bit daáu. Caùc haèng soá nguyeân 10 –4 –23456
  41. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.3 HAÈNG (CONSTANT) 1- Haèng soá Haèng soá nguyeân Ta caàn löu yù khi söû duïng haèng soá nguyeân vöôït quaù taàm quy ñònh. Ví duï: Xeùt chöông trình sau: #include main() { printf ("%d %d %d", 32767, 32767 + 1, 32767 + 2); } 32767 -32768 –32767
  42. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.3 HAÈNG (CONSTANT) 1- Haèng soá Haèng soá nguyeân + Haèng soá nguyeân daïng long integer laïi ñöôïc löu tröõ trong boä nhôù vôùi chieàu daøi 32 bit, coù nghóa laø noù coù theå coù trò naèm trong khoaûng -2147483648 ñeán +2147483647, vaø khi vieát caùc haèng soá nguyeân daïng naøy ta caàn phaûi theâm l hay L ngay sau soá caàn laøm vieäc.
  43. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.3 HAÈNG (CONSTANT) 1- Haèng soá Haèng soá nguyeân Ví duï: #include #include main() { clrscr(); printf ("%ld %ld %ld", 32767L, 32768L, 32769L); getch(); }
  44. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.3 HAÈNG (CONSTANT) 1- Haèng soá Haèng soá nguyeân Haèng soá nguyeân coù theå ôû daïng unsigned, khi ñoù ta seõ theâm u hoaëc U vaøo ngay sau soá ñang laøm vieäc (soá ñoù coù theå ñang ôû kieåu integer hoaëc long integer). Ví duï: Caùc haèng soá sau ñaây ôû daïng unsigned 123U 234u 24UL
  45. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.3 HAÈNG (CONSTANT) 1- Haèng soá Haèng soá nguyeân
  46. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.3 HAÈNG (CONSTANT) 1- Haèng soá Haèng thöïc Trong ngoân ngöõ C, soá thöïc coù theå ôû daïng daáu chaám tónh hoaëc daáu chaám ñoäng. Ví duï: caùc soá thöïc sau ôû daïng daáu chaám tónh 1.4 –2.34 –10.0234
  47. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.3 HAÈNG (CONSTANT) 1- Haèng soá Haèng thöïc Moät haèng thöïc ôû daïng soá daáu chaám ñoäng coù theå coù caùc thaønh phaàn sau: - phaàn nguyeân: phaàn naøy laø tuøy yeâu caàu. - daáu chaám thaäp phaân: baét buoäc phaûi coù. - phaàn leû: tuøy yeâu caàu. - caùc kyù töï "e" hoaëc "E" vaø moät soá muõ. Soá muõ baûn thaân noù coù theå aâm.
  48. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.3 HAÈNG (CONSTANT) 1- Haèng soá Haèng thöïc Haèng thöïc daáu chaám ñoäng Haèng thöïc töông ñöông 2.1415e4 21415.0 0.2344e–4 0.00002344 .2344e3 234.4
  49. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.3 HAÈNG (CONSTANT) 1- Haèng soá Caàn löu yù: - Caùc haèng soá ñöôïc vieát khoâng coù daáu thaäp phaân hoaëc soá muõ, seõ ñöôïc hieåu laø nguyeân vaø ñöôïc löu tröõ theo kieåu int, ngöôïc laïi seõ ñöôïc löu tröõ theo kieåu double. - Caùc haèng soá nguyeân lôùn hôn khaû naêng moät int ñöôïc töï ñoäng löu tröõ theo kieåu long. - Caùc haèng soá nguyeân lôùn hôn moät long ñöôïc löu tröõ theo kieåu double.
  50. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.3 HAÈNG (CONSTANT) 2- Haèng kyù töï Haèng kyù töï bieåu dieãn moät giaù trò kyù töï ñôn, kyù töï naøy phaûi ñöôïc vieát giöõa caëp daáu nhaùy ñôn (''), moãi kyù töï coù moät maõ soá töông öùng trong baûng maõ kyù töï cuûa maùy, bình thöôøng laø maõ ASCII. Ví duï: 'a' '/' '9' 'A' coù maõ laø 65 trong baûng maõ ASCII. '0' coù maõ laø 48 (0x30) trong baûng maõ ASCII.
  51. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.3 HAÈNG (CONSTANT) 2- Haèng kyù töï Ví duï 1.26: #include main() { printf ("Kyù töï: %c %c %c \n", 'A', '$', '1' ); printf ("Maõ ASCII (Octal): %o %o %o \n", 'A', '$', '1' ); printf ("Maõ ASCII (Decimal): %d %d %d \n", 'A', '$', '1' ); }
  52. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.3 HAÈNG (CONSTANT) 2- Haèng kyù töï Ví duï 1.26: Chöông trình in ra maøn hình keát quaû sau: Kyù töï: A $ 1 Maõ ASCII (Octal): 101 44 61 Maõ ASCII (Decimal): 65 36 49
  53. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.3 HAÈNG (CONSTANT) 2- Haèng kyù töï Ví duï: '\n' laø kyù töï xuoáng doøng (line feed) '\45' laø kyù töï ASCII coù maõ octal laø 45 hay 37 decimal '\0' laø kyù töï NUL
  54. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.3 HAÈNG (CONSTANT) 3- Chuoãi kyù töï Trong ngoân ngöõ C, moät chuoãi kyù töï laø moät loaït caùc kyù töï naèm trong caëp daáu nhaùy keùp (“ ”); caùc kyù töï naøy coù theå laø kyù töï ñöôïc bieåu dieãn baèng chuoãi thoaùt. Ví duï: "Moät chuoãi kyù töï" "Chuoãi kyù töï coù chuoãi thoaùt: i can\'t go to school \n\a"
  55. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.3 HAÈNG (CONSTANT) 3- Chuoãi kyù töï Ví duï: “string”
  56. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.3 HAÈNG (CONSTANT) 4- Bieåu thöùc haèng Moät bieåu thöùc ñöôïc xem laø moät bieåu thöùc haèng neáu giaù trò cuûa bieåu thöùc hoaøn toaøn xaùc ñònh, nhö vaäy moät bieåu thöùc toaùn hoïc laø moät bieåu thöùc haèng khi trong bieåu thöùc ñoù caùc toaùn haïng ñeàu laø nhöõng haèng soá hoaëc haèng kyù töï. Ví duï: Xeùt caùc bieåu thöùc haèng sau 10 – 13 % 3 seõ ñöôïc tính tröôùc vaø ñöôïc ghi laø 9 'a' – 'A' seõ ñöôïc tính tröôùc vaø ñöôïc ghi laø 32 1 < 8 seõ ñöôïc tính tröôùc vaø ñöôïc ghi laø 1 (true)
  57. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.4 BIEÁN (VARIABLE) 7.4.1 Khai baùo bieán Taát caû caùc bieán ñöôïc söû duïng trong moät chöông trình C ñeàu phaûi ñöôïc khai baùo tröôùc. Khi muoán söû duïng bieán ta chæ caàn goïi teân bieán, dó nhieân teân bieán phaûi laø moät danh hieäu khoâng chuaån hôïp leä
  58. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.4 BIEÁN (VARIABLE) 7.4.1 Khai baùo bieán Ví duï: bat_dau  If  ñeàu la øcaùc danh hieäu hôïp leä _hoten Thu_thang_1_68 printf  pow  ñeàu la øcaùc danh hieäu khoâng hôïp leä 31_thang_12 ket thuc 
  59. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.4 BIEÁN (VARIABLE) 7.4.1 Khai baùo bieán Ví duï: BIEN BiEN Bien  ñeàu la ønhöõng bieán khaùc nhau biEN bien 
  60. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.4 BIEÁN (VARIABLE) 7.4.1 Khai baùo bieán Cuù phaùp khai baùo bieán kieåu dsach_tenbien; Giaûi thích: kieåu kieåu cuûa caùc bieán caàn khai baùo dsach_tenbien danh saùch lieät keâ caùc teân bieán caàn khai baùo, caùc bieán caùch nhau baèng daáu ",“ Ví duï: int lap, count, max; double he_so_1, he_so_2, delta;
  61. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.4 BIEÁN (VARIABLE) 7.4.1 Khai baùo bieán Ví duï: #include main() { int thu; thu = 65; printf ("Trò trong bieán thu laø %d \n", thu); thu = thu + 10; printf ("Sau khi gaùn, trò trong bieán thu laø %d \n", thu); }
  62. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.4 BIEÁN (VARIABLE) 7.4.1 Khai baùo bieán Bieán cuûa moät chöông trình C coù theå ñöôïc khai baùo ôû moät trong ba vò trí sau: -Ngoaøi taát caû caùc haøm khi ñoù ta coù bieán toaøn cuïc. - Ñaàu phaàn thaân cuûa moät haøm hoaëc moät khoái leänh khi ñoù ta coù bieán cuïc boä. -Trong phaàn ñònh nghóa ñoái soá cuûa haøm (goïi laø ñoái soá haøm hoaëc tham soá haøm).
  63. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.4 BIEÁN (VARIABLE) 7.4.1 Khai baùo bieán Ví duï: #include int a, b; khai baùo bieán ngoaøi main() { a = 10; b = a + 24; }
  64. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.4 BIEÁN (VARIABLE) 7.4.1 Khai baùo bieán Ví duï: int tong() { int i, tam; khai baùo bieán trong for (i = 10; }
  65. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.4 BIEÁN (VARIABLE) 7.4.1 Khai baùo bieán Ví duï: int luy_thua (int n, char ket_qua) ñoái soá haøm { for (i =1; }
  66. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.4 BIEÁN (VARIABLE) 7.4.1 Khai baùo bieán Moät bieán coù theå ñöôïc khôûi ñoäng trò ngay sau khi khai baùo baèng pheùp gaùn vôùi giaù trò töông öùng, khi ñoù cuù phaùp khai baùo bieán nhö sau: kieåu bien1 = tri1, bien2 = tri2; vôùi caùc tri1 vaø tri2 phaûi laø nhöõng giaù trò ñaõ xaùc ñònh.Ví duï: double he_so_1 = 20.37; char ky_tu = 'A', ky_tu_moi = ky_tu:
  67. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.4 BIEÁN (VARIABLE) 7.4.2 Caùc boå tuùc kieåu const vaø volatile Töø khoùa const: khi ñöôïc khai baùo cho bieán thì noù xaùc ñònh raèng bieán seõ khoâng bò thay ñoåi trò trong suoát quaù trình thöïc thi chöông trình, moïi söï thay ñoåi trò ñeàu gaây ra loãi, bieán ñoù ta goïi laø bieán haèng. Cuù phaùp: const kieåu teân_bieán [ = trò ñöôïc thay theá]; Ví duï: const double bat_dau = 3.1415: const int max = 100;
  68. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.4 BIEÁN (VARIABLE) 7.4.2 Caùc boå tuùc kieåu const vaø volatile Neáu kieåu cuûa bieán haèng khoâng neâu cuï theå thì bieán haèng ñoù seõ thuoäc loaïi int, ngay caû neáu trò ñöôïc thay theá laø moät trò khaùc int thì chæ phaàn nguyeân ñöôïc söû duïng vaø löu vaøo bieán haèng maø thoâi. Ví duï : const max = 100; const pi = 3.14; khi ñoù bieán pi chæ laø 3 maø thoâi
  69. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.4 BIEÁN (VARIABLE) 7.4.2 Caùc boå tuùc kieåu const vaø volatile Töø khoùa volatile: chæ ra raèng moät bieán coù theå bò thay ñoåi trò töø moät taùc nhaân khoâng naèm trong chöông trình. Töø khoùa naøy laøm cho bieán cuûa C coù moät tính linh ñoäng raát cao, ví duï nhö bieán cuûa C coù theå thay ñoåi theo ñoàng hoà heä thoáng hay theo moät chöông trình neàn naøo ñoù. Cuù phaùp: volatile ;
  70. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.5 BIEÅU THÖÙC Bieåu thöùc laø moät söï keát hôïp cuûa caùc toaùn haïng laø caùc bieán, haèng hoaëc pheùp goïi haøm baèng caùc toaùn töû xaùc ñònh cuûa C ñeå taïo ra ñöôïc moät trò, trò naøy coù theå ñöôïc söû duïng hoaëc khoâng ñöôïc söû duïng tuøy nhu caàu cuûa laäp trình vieân. Ví duï: Ñoái vôùi C, moät bieåu thöùc nhö sau laø hôïp leä: a = (x = 10) – (y = a + 1) * ( (b += 1) > 12);
  71. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.6 CAÙC PHEÙP TOAÙN CUÛA C 7.6.1 Toaùn töû soá hoïc C coù caùc toaùn töû soá hoïc bình thöôøng giöõa 2 toaùn haïng, ñoù laø - Toaùn töû coäng (+) : thöïc hieän pheùp toaùn coäng - Toaùn töû tröø (–) : thöïc hieän pheùp toaùn tröø - Toaùn töû nhaân (*) : thöïc hieän pheùp nhaân - Toaùn töû chia (/) : thöïc hieän pheùp chia - Toaùn töû modulo (%): thöïc hieän pheùp toaùn laáy soá dö cuûa pheùp chia nguyeân
  72. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.6 CAÙC PHEÙP TOAÙN CUÛA C 7.6.1 Toaùn töû soá hoïc Caùc pheùp toaùn naøy ñeàu thöïc hieän ñöôïc treân taát caû caùc toaùn haïng laø haèng, bieán hoaëc bieåu thöùc coù kieåu döõ lieäu char, int, long, float, double, tröø toaùn töû modulo chæ thöïc hieän pheùp toaùn treân caùc döõ lieäu thuoäc caùc kieåu nguyeân (char, int, long, unsigned). Thöù töï keát hôïp theo nguyeân taéc toaùn hoïc: nhaân, chia, modulo tröôùc; coäng, tröø sau, neáu caùc toaùn haïng ñeàu ngang caáp thì keát hôïp töø traùi sang phaûi.
  73. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.6 CAÙC PHEÙP TOAÙN CUÛA C 7.6.1 Toaùn töû soá hoïc Ví duï: float a, b, c: double y;y = a * b – c; Pheùp toaùn coäng, tröø cuõng coù theå ñöôïc duøng nhö pheùp toaùn ñôn haïng (laáy döông vaø aâm cuûa moät toaùn haïng). Ví duï: b = – b; a = + b;
  74. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.6 CAÙC PHEÙP TOAÙN CUÛA C 7.6.1 Toaùn töû soá hoïc Pheùp nhaân vaø chia caùc soá nguyeân seõ chæ cho keát quaû nguyeân (C töï ñoäng caét boû phaàn thaäp phaân neáu coù). Ví duï: int a = 10, b = 3, c; double x = 10., y = 3, z; c = a/b; /* c =3 */ z = x/y; /* z =3.3333 */ c = a % b; /* c =1 */
  75. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.6 CAÙC PHEÙP TOAÙN CUÛA C 7.6.1 Toaùn töû soá hoïc Moät vaán ñeà ñaët ra laø neáu coù nhieàu toaùn haïng khaùc kieåu nhau thì C seõ thöïc hieän vieäc tính toaùn bieåu thöùc ra sao? C seõ thöïc hieän vieäc chuyeån kieåu töï ñoäng theo quy luaät sau: toaùn haïng thuoäc kieåu coù trò nhoû hôn seõ ñöôïc chuyeån sang kieåu coù trò lôùn hôn.Ví duï: double a = 10, c; int b = 2; c=a/b;
  76. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.6 CAÙC PHEÙP TOAÙN CUÛA C 7.6.2 Toaùn töû quan heä - Toaùn töû baèng (==) - Toaùn töû khaùc (!=) - Toaùn töû lôùn hôn ( ) - Toaùn töû lôùn hôn hoaëc baèng (>=) - Toaùn töû nhoû hôn hoaëc baèng (<=)
  77. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.6 CAÙC PHEÙP TOAÙN CUÛA C 7.6.2 Toaùn töû quan heä Khi moái quan heä giöõa hai toaùn haïng theo toaùn töû quan heä trong bieåu thöùc laø ÑUÙNG thì bieåu thöùc ñoù seõ traû veà moät trò nguyeân laø 1, coøn ngöôïc laïi moái quan heä ñoù laø SAI thì bieåu thöùc ñoù seõ traû veà moät trò nguyeân laø 0, ñaây laø caùc trò nguyeân bình thöôøng maø ta coù theå duøng noù ñeå tính toaùn.
  78. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.6 CAÙC PHEÙP TOAÙN CUÛA C 7.6.2 Toaùn töû quan heä Ví duï : if (delta > 0) { } else
  79. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.6 CAÙC PHEÙP TOAÙN CUÛA C 7.6.2 Toaùn töû quan heä Ví duï: int a, b, c; char kt; a = 1; b = 2; c = –3; kt = (a >= 4) * 2 + (b < 3) – c;
  80. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.6 CAÙC PHEÙP TOAÙN CUÛA C 7.6.2 Toaùn töû quan heä Ví duï: 1/ a = (b == 4); 2/ a = (b = 4); toaùn töû quan heä toaùn töû gaùn
  81. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.6 CAÙC PHEÙP TOAÙN CUÛA C 7.6.3 Toaùn töû logic C coù caùc toaùn töû logic not (!), and (&&), or (||). Caùc toaùn töû naøy cho pheùp laäp trình vieân lieân keát caùc bieåu thöùc quan heä ñôn laïi vôùi nhau ñeå taïo caùc bieåu thöùc phöùc taïp hôn. Caùc toaùn töû naøy coù ñoä öu tieân laø not, and, or; neáu trong bieåu thöùc caùc toaùn töû ñeàu ngang caáp nhau thì thöù töï tính toaùn töø traùi sang phaûi.
  82. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.6 CAÙC PHEÙP TOAÙN CUÛA C 7.6.3 Toaùn töû logic Toaùn haïng Toaùn haïng Keát quaû 1 2 A B ! A A && B A ||B baèng 0 baèng 0 1 0 0 baèng 0 khaùc 0 1 0 1 khaùc 0 baèng 0 0 0 1 khaùc 0 khaùc 0 0 1 1
  83. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.6 CAÙC PHEÙP TOAÙN CUÛA C 7.6.3 Toaùn töû logic Ví duï: int a, b; a = 4; b = 5; Bieåu thöùc: (a > 5) && (b < 3) coù trò laø false (0)
  84. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.6 CAÙC PHEÙP TOAÙN CUÛA C 7.6.3 Toaùn töû logic Ví duï: int a, b; a = 4; b = 5; thì bieåu thöùc (a > 5) ¦¦ (b > 3) coù trò laø true (1)
  85. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.6 CAÙC PHEÙP TOAÙN CUÛA C 7.6.3 Toaùn töû logic Ví duï: trong meänh ñeà if sau ñaây thay vì vieát if (delta == 0) { } ta coù theå vieát goïn hôn nhö sau: if (!delta) { }
  86. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.6 CAÙC PHEÙP TOAÙN CUÛA C 7.6.3 Toaùn töû logic Ñieàu caàn löu yù laø caùc pheùp toaùn and (&&) vaø or ( ) ñöôïc thöïc hieän töø traùi sang phaûi vaø vieäc tính toaùn seõ döøng laïi ngay khi giaù trò cuûa caû bieåu thöùc logic ñaõ xaùc ñònh trò maø khoâng caàn tính tieáp caùc phaàn coøn laïi cuûa bieåu thöùc nöõa. Ví duï: (c >= 'A') && (c = 'a') && (c <= 'z')
  87. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.6 CAÙC PHEÙP TOAÙN CUÛA C 7.6.3 Toaùn töû logic Ví duï: scanf ("%d", &x); if ( (x >= 10) && (x <= (y = 100)) ) { }
  88. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.6 CAÙC PHEÙP TOAÙN CUÛA C 7.6.4 Toaùn töû treân bit C coù saùu toaùn töû ñaëc bieät cho pheùp laäp trình vieân xöû lyù döõ lieäu kieåu nguyeân (nhö char, int, long, unsigned hoaëc signed) ôû caáp ñoä bit, caùc toaùn töû naøy ñöôïc goïi laø toaùn töû treân bit.
  89. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.6 CAÙC PHEÙP TOAÙN CUÛA C 7.6.4 Toaùn töû treân bit - NOT: ~, thöïc hieän vieäc ñaûo bit, töø bit 0 qua 1 vaø ngöôïc laïi - AND: &, thöïc hieän vieäc and bit - OR: | , thöïc hieän vieäc or bit - XOR: ^ , thöïc hieän vieäc vieäc xor bit - Dòch traùi: >, dòch caùc bit sang phaûi
  90. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.6 CAÙC PHEÙP TOAÙN CUÛA C 7.6.4 Toaùn töû treân bit Bit Bit Pheùp toaùn A B ~ A A & B A | B A ^ B 0 0 1 0 0 0 0 1 1 0 1 1 1 0 0 0 1 1 1 1 0 1 1 0
  91. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.6 CAÙC PHEÙP TOAÙN CUÛA C 7.6.4 Toaùn töû treân bit Ví duï : a = 1030 coù maõ nhò phaân laø 0000 0100 0000 0110 b = 224 coù maõ nhò phaân laø 0000 0000 1110 0000
  92. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.6 CAÙC PHEÙP TOAÙN CUÛA C 7.6.4 Toaùn töû treân bit Pheùp toaùn AND (&) seõ keát hôïp vôùi moät trò maø ta goïi laø maët naï che caùc bit döõ lieäu khoâng caàn quan taâm, nhö vaäy trong giaù trò maët naï taïi nhöõng vò trí caàn che, bit seõ coù trò laø 0, caùc bit coøn laïi laø 1, vaø qua ñoù ta coù theå ñaùnh giaù ñöôïc döõ lieäu ñang laøm vieäc moät caùch chính xaùc.
  93. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.6 CAÙC PHEÙP TOAÙN CUÛA C 7.6.4 Toaùn töû treân bit Ví duï: Nhaäp vaøo moät soá nguyeân, xeùt xem bit coù vò trí laø 9 coù baèng 1 hay khoâng #include #include #define MASK 0x0200 main() { int a; clrscr();
  94. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.6 CAÙC PHEÙP TOAÙN CUÛA C 7.6.4 Toaùn töû treân bit printf ("Moi nhap mot so: "); scanf ("%d", &a); if (a & MASK) printf ("Bit 9 bang 1 \n"); else printf ("Bit 9 bang 0 \n"); getch(); }
  95. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.6 CAÙC PHEÙP TOAÙN CUÛA C 7.6.4 Toaùn töû treân bit Pheùp toaùn OR (|) ñöôïc duøng keát hôïp vôùi moät maët naï ñeå baät caùc bit caàn thieát trong moät giaù trò leân moät 1 vaø giöõ nguyeân caùc bit khaùc. Ñeå taïo ra moät trò maët naï, caùc bit taïi caùc vò trí caàn thieát seõ ñöôïc baät leân 1, coøn laïi giöõ 0. Keát quaû cuûa pheùp OR thu ñöôïc töø moät giaù trò vaø moät maët naï laø moät giaù trò maø trong ñoù caùc bit quan taâm seõ ñöôïc gaùn baèng 1.
  96. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.6 CAÙC PHEÙP TOAÙN CUÛA C 7.6.4 Toaùn töû treân bit Ví duï: Nhaäp vaøo moät soá nguyeân, xeùt xem bit coù vò trí laø 9 coù baèng 1 hay khoâng, neáu noù baèng 0 thì baät bit ñoù leân 1 vaø in ra keát quaû. #include #include #define MASK 0x0200 main() { int a; clrscr(); printf ("Moi nhap mot so: ");
  97. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.6 CAÙC PHEÙP TOAÙN CUÛA C 7.6.4 Toaùn töû treân bit scanf ("%d", &a); if (a & MASK) { printf ("Bit 9 bang 1 \n"); printf ("Tri cua bien a la %d \n", a); } else { a =a | MASK; printf ("Bit 9 bang 0 va da duoc bat len 1\n"); printf ("Tri cua bien a la %d \n", a); } getch(); }
  98. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.6 CAÙC PHEÙP TOAÙN CUÛA C 7.6.4 Toaùn töû treân bit Pheùp toaùn XOR (^) keát hôïp vôùi moät maët naï duøng ñeå ñaûo caùc bit caàn thieát trong moät giaù trò töø 0 leân 1 vaø töø 1 veà 0, giöõ nguyeân caùc bit khaùc. Maët naï naøy coù caùc bit taïi caùc vò trí caàn thieát seõ ñöôïc baät leân 1, caùc bit coøn laïi giöõ nguyeân.
  99. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.6 CAÙC PHEÙP TOAÙN CUÛA C 7.6.4 Toaùn töû treân bit Ví duï: Nhaäp vaøo moät soá nguyeân, xeùt xem bit coù vò trí laø 9 coù baèng 1 hay khoâng, neáu noù baèng 0 thì baät ñoù leân 1, neáu baèng 1 thì ñöa veà 0 vaø in ra keát quaû. #include #include #define MASK 0x0200 main() { int a; clrscr();
  100. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.6 CAÙC PHEÙP TOAÙN CUÛA C 7.6.4 Toaùn töû treân bit printf ("Moi nhap mot so: "); scanf (%d, &a); if (a & MASK) printf ("Bit 9 bang 1 \n"); else printf ("Bit 9 bang 0 \n"); printf ("Tri cua bien a truoc khi dao bit 9 la %d \n", a); a = a ^ MASK; if (a & MASK) printf ("Bit 9 sau khi dao bang 1 \n"); else printf ("Bit 9 sau khi dao bang 0 \n"); printf ("Tri cua bien a sau khi dao bit 9 la %d \n", a); getch(); }
  101. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.6 CAÙC PHEÙP TOAÙN CUÛA C 7.6.4 Toaùn töû treân bit Toaùn töû NOT (~) cho pheùp thöïc hieän vieäc ñaûo taát caû caùc bit cuûa moät giaù trò töø 0 leân 1 vaø töø 1 xuoáng 0. Pheùp toaùn nhö vaäy ta goïi laø pheùp buø 1 giaù trò hieän haønh.
  102. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.6 CAÙC PHEÙP TOAÙN CUÛA C 7.6.4 Toaùn töû treân bit Toaùn töû dòch traùi ( >) cho pheùp thöïc hieän vieäc dôøi caùc bit cuûa toaùn haïng sang beân traùi hoaëc sang phaûi. Cuù phaùp nhö sau: bieåu_thöùc_nguyeân > soá_bit_dôøi Vôùi bieåu_thöùc_nguyeân vaø soá_bit_dôøi coù theå laø haèng, bieán hoaëc bieåu thöùc kieåu nguyeân.
  103. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.6 CAÙC PHEÙP TOAÙN CUÛA C 7.6.4 Toaùn töû treân bit Trong pheùp dòch traùi, caùc bit ôû beân phaûi cuûa toaùn haïng seõ ñöôïc ghi vaøo caùc giaù trò laø 0
  104. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.6 CAÙC PHEÙP TOAÙN CUÛA C 7.6.4 Toaùn töû treân bit Ví duï:
  105. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.6 CAÙC PHEÙP TOAÙN CUÛA C 7.6.4 Toaùn töû treân bit Trong pheùp dòch phaûi ta coù hai tröôøng hôïp: - Neáu toaùn haïng beân traùi coù döõ lieäu thuoäc daïng unsigned (unsigned int, unsigned long, unsigned char) thì pheùp dòch phaûi seõ ghi 0 vaøo caùc bit beân traùi cuûa keát quaû. - Coøn neáu toaùn haïng beân traùi coù döõ lieäu thuoäc daïng signed (int, long, char) thì pheùp dòch phaûi seõ ghi bit daáu vaøo caùc bit beân traùi cuûa keát quaû.
  106. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.6 CAÙC PHEÙP TOAÙN CUÛA C 7.6.4 Toaùn töû treân bit Ví duï:
  107. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.6 CAÙC PHEÙP TOAÙN CUÛA C 7.6.4 Toaùn töû treân bit Ví duï:
  108. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.6 CAÙC PHEÙP TOAÙN CUÛA C 7.6.5 Toaùn töû taêng giaûm Trong C coù hai toaùn töû ñaëc bieät goïi laø toaùn töû taêng (++) vaø toaùn töû giaûm ( ) duøng ñeå taêng hoaëc giaûm moät bieán naøo ñoù ñi 1.Cuù phaùp söû duïng: ++ bieán bieán ++ – – bieán bieán – – vôùi bieán coù theå thuoäc loaïi baát kyø hoaëc pointer.
  109. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.6 CAÙC PHEÙP TOAÙN CUÛA C 7.6.5 Toaùn töû taêng giaûm Kyù hieäu ++ vaø coù theå ñöôïc ñaët tröôùc (goïi laø tieàn toá) hoaëc sau (goïi laø haäu toá) moät teân bieán. Ví duï: ++ a; hoaëc a ++; chính laø a = a + 1;
  110. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.6 CAÙC PHEÙP TOAÙN CUÛA C 7.6.5 Toaùn töû taêng giaûm Ví duï: int i = 12; double a, b; a = ++i; b = i ++;
  111. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.6 CAÙC PHEÙP TOAÙN CUÛA C 7.6.5 Toaùn töû taêng giaûm Caàn löu yù raèng caëp daáu ++ hoaëc phaûi ñöôïc vieát lieàn nhau vaø caàn phaûi roõ raøng, trong nhöõng tröôøng hôïp coù theå laàm laãn, ví duï nhö 2 bieåu thöùc: a++ + b vaø a + ++b laø khaùc nhau.
  112. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.6 CAÙC PHEÙP TOAÙN CUÛA C 7.6.5 Toaùn töû taêng giaûm Caùc pheùp toaùn taêng giaûm naøy nhanh hôn nhieàu so vôùi thao taùc bình thöôøng laø coäng hoaëc tröø bieán ñoù vôùi 1 roài gaùn trôû laïi cho bieán ñoù vì chuùng raát gaàn vôùi caùc pheùp toaùn taêng giaûm cuûa ngoân ngöõ maùy
  113. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.6 CAÙC PHEÙP TOAÙN CUÛA C 7.6.5 Toaùn töû taêng giaûm Ví duï: Trong thaân voøng while cuûa chöông trình tính toång töø 1 tôùi n, ta coù theå vieát nhö sau s = 0; so = 1; while (so <= n) { s = s + so; so++; }
  114. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.6 CAÙC PHEÙP TOAÙN CUÛA C 7.6.6 Toaùn töû gaùn Pheùp toaùn gaùn laø pheùp toaùn cô baûn trong moãi ngoân ngöõ laäp trình. Trong C pheùp gaùn coù hai daïng theo cuù phaùp sau ñaây. Gaùn ñôn giaûn bieán = trò Gaùn phöùc taïp bieán op = tri Vôùi trò coù theå laø haèng, bieán hoaëc laø bieåu thöùc op coù theå laø * / % + – hoaëc > & ^ |
  115. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.6 CAÙC PHEÙP TOAÙN CUÛA C 7.6.6 Toaùn töû gaùn Pheùp gaùn trò phöùc taïp bieán op = tri chính laø bieán = bieán op tri Ví duï: int a, b = 2; a = 4; a = 4 b *= a * 3; b = 24
  116. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.6 CAÙC PHEÙP TOAÙN CUÛA C 7.6.6 Toaùn töû gaùn Trong pheùp gaùn ñôn, neáu hai toaùn haïng coù cuøng kieåu thì toaùn haïng beân phaûi seõ ñöôïc gaùn vaøo toaùn haïng beân traùi. Neáu khoâng, tröôùc khi gaùn toaùn haïng beân phaûi seõ ñöôïc chuyeån theo kieåu cuûa toaùn haïng beân traùi, ñieàu naøy coù theå seõ gaây ra keát quaû sai hoaëc khoâng chính xaùc, neáu nhö kieåu cuûa toaùn haïng beân traùi thaáp hôn kieåu cuûa toaùn haïng beân phaûi.
  117. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.6 CAÙC PHEÙP TOAÙN CUÛA C 7.6.6 Toaùn töû gaùn Kieåu toaùn haïng traùi Kieåu toaùn haïng phaûi Trò coù theå maát sau khi gaùn signed char unsigned char Giaù trò > 127, thaønh soá aâm char short int Maát trò töø bit 8 trôû ñi char int Maát trò töø bit 8 trôû ñi char long Maát trò töø bit 8 trôû ñi short int long int Maát 16 bit cao (moät int) int float Maát phaàn thaäp phaân vaø phaàn trò lôùn hôn moät int float double Ñoä chính xaùc do laøm troøn
  118. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.6 CAÙC PHEÙP TOAÙN CUÛA C 7.6.6 Toaùn töû gaùn Ñoái vôùi pheùp gaùn phöùc, vieäc chuyeån kieåu ñöôïc thöïc hieän theo vieäc chuyeån kieåu töï ñoäng trong khi thöïc hieän vieäc tính toaùn bieåu thöùc vaø vieäc chuyeån kieåu cuûa pheùp gaùn ñôn giaûn. Pheùp gaùn phöùc hôïp naøy toû ra raát hieäu quaû nhaát laø khi caùc toaùn haïng beân traùi laø nhöõng bieán khaù daøi.
  119. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.6 CAÙC PHEÙP TOAÙN CUÛA C 7.6.6 Toaùn töû gaùn Ví duï: Thay vì vieát: n = n * (x + 5) + n * (a + 8); ta chæ caàn vieát: n *= x + 5 + a + 8; Hoaëc phöùc taïp hôn a[i][j] –= b[i][j]; thay vì phaûi vieát daøi doøng a[i][j] = a[i][j] – b[i][j]; .
  120. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.6 CAÙC PHEÙP TOAÙN CUÛA C 7.6.6 Toaùn töû gaùn Ñoái vôùi C, neáu moät bieåu thöùc gaùn ñöôïc keát thuùc baèng moät daáu ";" thì ta coù moät leänh gaùn; coøn neáu bieåu thöùc gaùn naøy ñöôïc söû duïng trong moät bieåu thöùc phöùc hôïp khaùc thì bieåu thöùc gaùn seõ coù trò laø trò cuûa bieán sau khi gaùn. Ví duï: int a = 4, b = 1; b + = (a = 2 * b) + (a *= b);
  121. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.6 CAÙC PHEÙP TOAÙN CUÛA C 7.6.7 Toaùn töû phaåy - Bieåu thöùc phaåy Cuù phaùp: bieåu_thöùc_1, bieåu_thöùc_keát_quaû Vôùi bieåu_thöùc_1 vaø bieåu_thöùc_keát_quaû laø hai bieåu thöùc baát kyø. Ví duï: m = (a = 2, t = a + 3); seõ cho a = 2, t = 5 vaø m = t = 5 hoaëc x = (t = 1, t + 4); seõ cho t = 1 vaø x = 5
  122. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.6 CAÙC PHEÙP TOAÙN CUÛA C 7.6.8 Toaùn töû ñieàu kieän - bieåu thöùc ñieàu kieän Trong ngoân ngöõ C coù moät toaùn töû khaù ñaëc bieät goïi laø toaùn töû ñieàu kieän, kyù hieäu cuûa toaùn töû ñieàu kieän laø hai daáu "?" vaø ":" theo cuù phaùp sau: dieu-kien ? bieu-thuc1 : bieu-thuc2 vôùi dieu-kien laø moät bieåu thöùc baát kyø coù keát quaû thuoäc kieåu chuaån (scalar type) bieu-thuc1, bieu-thuc2 laø hai bieåu thöùc baát kyø vaø dó nhieân coù theå laø moät bieåu thöùc ñieàu kieän khaùc.
  123. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.6 CAÙC PHEÙP TOAÙN CUÛA C 7.6.8 Toaùn töû ñieàu kieän - bieåu thöùc ñieàu kieän Ví duï: Thay vì phaûi vieát daøi doøng if ( i >0 ) n = 1; else n = 0; ta chæ caàn duøng bieåu thöùc ñieàu kieän n =(i > 0) ? 1 : 0;
  124. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.6 CAÙC PHEÙP TOAÙN CUÛA C 7.6.8 Toaùn töû ñieàu kieän - bieåu thöùc ñieàu kieän Ví duï: Vieát chöông trình nhaäp moät kyù töï, ñoåi kyù töï ñoù sang kyù töï hoa neáu ñoù laø kyù töï thöôøng. #include #include main() { char c; clrscr(); printf ("Nhap mot ky tu: ");
  125. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.6 CAÙC PHEÙP TOAÙN CUÛA C 7.6.8 Toaùn töû ñieàu kieän - bieåu thöùc ñieàu kieän c = getchar(); (1) c =( c >= 'a' && c <= 'z' ) ? c - 32 : c; (2) printf ("Ky tu da duoc doi la: "); putchar (c); getch(); }
  126. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.6 CAÙC PHEÙP TOAÙN CUÛA C 7.6.9 Toaùn töû sizeof Ñaây laø moät toaùn töû cho ta kích thöôùc cuûa moät bieán hoaëc moät kieåu döõ lieäu naøo ñoù. Do phaïm vi söû duïng cuûa sizeof raát roäng vaø thöôøng ñöôïc duøng ñeå laáy kích thöôùc caùc kieåu döõ lieäu phöùc hôïp nhö struct, union Vieäc söû duïng toaùn töû naøy cho pheùp ta khoâng phaûi quan taâm ñeán chieàu daøi cuï theå cuûa caùc bieán.
  127. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.6 CAÙC PHEÙP TOAÙN CUÛA C 7.6.9 Toaùn töû sizeof Toaùn haïng cuûa sizeof laø moät bieán hoaëc moät kieåu döõ lieäu baát kyø naøo ñoù ñaõ ñònh nghóa. sizeof (bieán) sizeof bieán sizeof (kieåu) Keát quaû cuûa toaùn töû naøy laø moät giaù trò nguyeân chæ kích thöôùc (tính baèng byte hoaëc char) cuûa kieåu döõ lieäu hoaëc cuûa bieán ñoù. Bieán hoaëc kieåu naøy coù theå laø moät bieán hoaëc moät kieåu ñôn giaûn hay phöùc hôïp.
  128. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.6 CAÙC PHEÙP TOAÙN CUÛA C 7.6.9 Toaùn töû sizeof Ví duï: Neáu coù moät bieán ñaõ khai baùo: double f; thì: sizeof (f); sizeof f; hoaëc: sizeof (double); seõ cho ta keát quaûlaø 8 (byte).
  129. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.6 CAÙC PHEÙP TOAÙN CUÛA C 7.6.10 Ñoä öu tieân cuûa caùc toaùn tö Trong moät bieåu thöùc, caùc pheùp toaùn luoân ñöôïc thöïc hieän theo moät möùc ñoä öu tieân khaùc nhau, vaø neáu cuøng moät ñoä öu tieân thì caùc pheùp toaùn seõ ñöôïc keát hôïp vôùi nhau theo moät traät töï nhaát ñònh.
  130. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.6 CAÙC PHEÙP TOAÙN CUÛA C 7.6.10 Ñoä öu tieân cuûa caùc toaùn tö Ñoä öu tieân Pheùp toaùn Thöù töï keát hôïp 1 () [ ] ->. Traùi qua phaûi 2 ! ~ ++ – + (type) * & sizeof Phaûi qua traùi * 3 * / % Traùi qua phaûi 4 + – Traùi qua phaûi 5 > Traùi qua phaûi 6 >= Traùi qua phaûi 7 == != Traùi qua phaûi 8 & Traùi qua phaûi 9 ^^ Traùi qua phaûi 10 | Traùi qua phaûi 11 && Traùi qua phaûi 12 || Traùi qua phaûi 13 ?: Tráaùi qua traùi * 14 = += –= *= /= %= >= &= |= ^= Phaûi qua traùi * 15 , Traùi qua phaûi
  131. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.7 CAÁU TRUÙC TOÅNG QUAÙT CUÛA MOÄT CHÖÔNG TRÌNH C Moät chöông trình C toång quaùt bao haøm hai phaàn: phaàn khai baùo ñaàu (header) vaø phaàn haøm (function). Phaàn khai baùo ñaàu cuûa moät chöông trình C bao goàm: - Caùc leänh tieàn xöû lyù: include, define - Caùc khai baùo haèng, bieán ngoaøi - Caùc prototype cuûa caùc haøm ñöôïc söû duïng trong chöông trình
  132. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.7 CAÁU TRUÙC TOÅNG QUAÙT CUÛA MOÄT CHÖÔNG TRÌNH C Phaàn haøm cuûa moät chöông trình C laø phaàn ñònh nghóa caùc haøm söû duïng trong chöông trình, trong caùc haøm naøy phaûi coù haøm main().
  133. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.7 CAÁU TRUÙC TOÅNG QUAÙT CUÛA MOÄT CHÖÔNG TRÌNH C Ví duï: Nhaäp moät soá kieåm tra soá ñoù chaün hay leû. #include #include int kiem_tra (int so); /* ham kiem_tra nhan vao doi so la mot so nguyen, tra ve tri phaàn khai baùo - 0 la so chan - 1 la so le */
  134. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.7 CAÁU TRUÙC TOÅNG QUAÙT CUÛA MOÄT CHÖÔNG TRÌNH C main() { int n; clrscr(); printf ("Nhap mot so: "); scanf ("%d", &n); if (kiem_tra(n)) printf ("So da nhap la so le \n");
  135. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.7 CAÁU TRUÙC TOÅNG QUAÙT CUÛA MOÄT CHÖÔNG TRÌNH C else printf ("So da nhap la so chan \n"); getch(); } int kiem_tra (int so) { return (so % 2 == 0)? 0:1; }
  136. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C BAØI TAÄP CUOÁI CHÖÔNG 1. Vieát chöông trình in ra maøn hình trò thaäp phaân cuûa caùc haèng sau ñaây 067 01234 0x1al 0x89ad 0xfb 'h' 022 02365 2. Nhaäp ba soá, tìm soá lôùn nhaát vaø nhoû nhaát trong ba soá ñoù.
  137. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C BAØI TAÄP CUOÁI CHÖÔNG 3. Nhaäp boán soá, saép xeáp theo thöù töï töø lôùn tôùi nhoû vaø töø nhoû tôùi lôùn theo menu sau: 1. Töø lôùn tôùi nhoû 2. Töø nhoû tôùi lôùn 3. Keát thuùc Môøi baïn choïn thao taùc (1 3): 4. Nhaäp ba caïnh tam giaùc, kieåm tra ba caïnh ñoù coù thoûa ñieàu kieän hình thaønh tam giaùc khoâng, in keát quaû kieåm tra.
  138. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C BAØI TAÄP CUOÁI CHÖÔNG 5. Nhaäp ba caïnh tam giaùc, kieåm tra ba caïnh ñoù coù thoûa ñieàu kieän hình thaønh tam giaùc khoâng, neáu thoûa in ra keát quaû xem tam giaùc ñoù laø tam giaùc gì (vuoâng thì vuoâng taïi ñaâu, caân thì caân taïi ñaâu )?
  139. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C BAØI TAÄP CUOÁI CHÖÔNG 6. Vieát chöông trình nhaäp moät kyù töï vaø xöû lyù theo yeâu caàu sau: - Neáu kyù töï laø hoa thì ñoåi sang thöôøng, in keát quaû ñoåi - Neáu kyù töï laø thöôøng thì khoâng laøm gì caû, in keát quaû - Neáu kyù töï laø kyù soá thì in ra maøn hình caâu: "Day la mot ky so".
  140. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C BAØI TAÄP CUOÁI CHÖÔNG 7. Duøng haøm pow () ñeå tính bình phöông vaø luõy thöøa ba cuûa moät soá nhaäp töø baøn phím. 8. Vieát chöông trình ñoåi töø ñoä Fahrenheit (F) sang ñoä Celcius (C) theo coâng thöùc sau: F 32 9 C 5
  141. CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C KEÁT THUÙC CHÖÔNG 7