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.2 Caùc kieåu döõ lieäu chuaån cuûa C 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 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. 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ï: +, -, *, /, %, =, >, < 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). 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. 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. 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 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.
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 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: 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 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 ? 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*/ 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.0, giaù trò naøy laø 31, trong Borland C++ 5.02, giaù trò naøy laø 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.1 DANH HIEÄU Ví duï: ket_thuc_vong_lap_in_ra_ky_tu_khoang_trang ket_thuc_vong_lap_in_ra_k 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 .7E+308 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. 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 <stdio.h> main() { char d; d = 'a'; printf (“Ky tu trong bien d la %c ", d); } 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 <stdio.h> main() { char c; c = 89; printf ("Tri trong bien c la %d ", 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.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öø –215 ñeán 215 – 1). 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 <stdio.h> main() { int i; i = 1234; i = i + 123; printf ("Trò trong bieán i laø %d ", i); } 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; 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; 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 <stdio.h> 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", x, y, luy_thua); } } 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.
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.
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 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ù. 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: 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 CHÖÔNG 7 CAÙC THAØNH PHAÀN CÔ BAÛN VAØ CAÙC KIEÅU DÖÕ LIEÄU CUÛA C 7.