intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Lập trình C cộng cộng - Phần 1

Chia sẻ: Nguyen Uyen | Ngày: | Loại File: PDF | Số trang:80

108
lượt xem
14
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Tài liệu tham khảo dành cho giáo viên, sinh viên cao đẳng, đại học chuyên ngành kỹ thuật - Giáo trình, bài giảng do các thầy cô trường đại học Tôn Đức Thắng biên soạn, giúp sinh viên củng cố và nâng cao kiến thức chuyên ngành của mình.Ngôn ngữ lập trình C là một ngôn ngữ mệnh lệnh được phát triển từ đầu thập niên 1970 bởi Ken Thompson và Dennis Ritchie để dùng trong hệ điều hành UNIX. Từ dó, ngôn ngữ này đã lan rộng ra nhiều hệ điều hành khác và trở thành một những...

Chủ đề:
Lưu

Nội dung Text: Lập trình C cộng cộng - Phần 1

  1. TRÖÔØNG ÑAÏI HOÏC TOÂN ÑÖÙC THAÉNG PHOØNG TRUNG CAÁP CHUYEÂN NGHIEÄP & DAÏY NGHEÀ ----- ----- MOÂN HOÏC ++ LAÄP TRÌNH C GIAÛNG VIEÂN: ThS. LEÂ VAÊN HAÏNH CN. NGUYEÃN VIEÄT HUØNG
  2. ++ NGOÂN NGÖÕ LAÄP TRÌNH C PHAÀN 1 TOÅNG QUAN 1 I. MÔÛ ÑAÀU: 1/- Laäp trình: (Programming) laø moät quaù trình vieát chöông trình baèng moät ngoân ngöõ naøo ñoù maø maùy tính coù theå thöïc hieän vaø nhöõng ngöôøi laäp trình khaùc coù theå hieåu. 2/- Caùc böôùc trong giai ñoaïn laäp trình: Böôùc 1 : GIAÛI THUAÄT • Nghó ra caùch giaûi ( giaûi thuaät) . • Laøm roõ raøng giaûi thuaät : baèng caùch phaân ñoaïn giaûi thuaät thoâng qua caùc hình veõ, sô ñoà. Thoâng thöôøng, ngöôøi ta duøng löu ñoà (Flow Chart) ñeå trình baøy giaûi thuaät. Böôùc 2 : VIEÁT CHÖÔNG TRÌNH • Vieát phaàn loõi cuûa thaân chöông trình. • Theâm caùc phaàn nhaäp vaø xuaát. • Theâm caùc phaàn khai baùo. Böôùc 3 : CHAÏY THÖÛ, SÖÛA CHÖÕA • Chaïy thöû chöông trình trình nhieàu laàn, söûa chöõa nhöõng loãi nhoû. • Söûa chöõa, caûi tieán chöông trình. Böôùc 4 : TOÅNG KEÁT • Theâm nhöõng ghi chuù cho chöông trình nhö : Muïc ñích cuûa caû chöông trình. Muïc ñích cuûa 1 ñoaïn chöông trình hay 1 phaùt bieåu. 3/- Thuaät toaùn (Algorithm): a/- Thuaät toaùn: laø moät daõy caùc böôùc chaët cheõ vaø roõ raøng, xaùc ñònh moät trình töï caùc thao taùc treân moät soá ñoái töôïng naøo ñoù sao cho moät soá höõu haïn laàn thöïc hieän ta thu ñöôïc keát quaû nhö mong ñôïi. b/- Caùc ñaëc tröng cuûa thuaät toaùn: Tính döøng (tính keát thuùc): Moät thuaät toaùn bao giôø cuõng phaûi döøng sau moät soá höõu haïn caùc böôùc thöïc hieän . Tính phoå duïng : thuaät toaùn coù theå giaûi baát kyø baøi toaùn naøo trong moät lôùp caùc baøi toaùn. Cuï theå laø thuaät toaùn coù theå laøm vieäc vôùi caùc döõ lieäu khaùc nhau vaø luoân daãn ñeán moät keát quaû mong muoán. Ví duï : chöông trình Giaûi phöông trình baäc hai phaûi cho keát quaû luoân ñuùng vôùi caùc döõ lieäu soá nhaäp vaøo cho a,b,c laø baát kyø (soá nguyeân, soá thöïc, soá döông, soá aâm. . .) Tính duy nhaát : nghóa laø vôùi nhieàu laàn chaïy chöông trình treân cuøng moat taäp döõ lieäu ñaøu vaøo phaûi cho ra cuøng moät keát quaû. 1 Leâ Vaên Haïnh – Nguyeãn Vieät Huøng Feb09
  3. ++ NGOÂN NGÖÕ LAÄP TRÌNH C PHAÀN 1 c/- Moät thuaät toaùn khoâng phaûi laø moät chöông trình, noù coù theå ñöôïc moâ taû bôûi moät trong ba caùch • Maõ giaû (pseudocode). • Duøng caùc phöông trình toaùn hoïc (formula). • Duøng caùc bieåu töôïng ñöôïc quy ñònh ñeå bieåu dieãn giaûi thuaät (flowchart). Trong ñoù pseudocode thöôøng ñöôïc söû duïng. 4/- Giaûi thuaät: a/- Giaûi thuaät: Trong khi tìm kieám lôøi giaûi cho caùc baøi toaùn trong thöïc teá, ngöôøi ta nhaän ra raèng: • Coù nhöõng baøi toaùn ñeán nay vaãn chöa xaùc ñònh ñöôïc lieäu coù toàn taïi moät thuaät toaùn ñeå giaûi quyeát hay khoâng? • Coù nhöõng baøi toaùn ñaõ coù thuaät toaùn ñeã giaûi nhöng, nhöng khoâng chaáp nhaän ñöôïc do: Thôøi gian ñeå giaûi baøi toaùn theo thuaät toaùn ñoù quaù lôùn. Caùc ñieàu kieän kyõ thuaät cho thuaät toaùn khoù ñaùp öùng. • Coù nhöõng baøi toaùn coù theå giaûi ñöôïc moät caùch höõu hieäu baèng moät lôøi giaûi naøo ñoù, nhöng lôøi giaûi naøy laïi vi phaïm moät soá tính chaát cuûa thuaät toaùn. Trong thöïc tieãn, coù raát nhieàu tröôøng hôïp ngöôøi ta chaáp nhaän caùc caùch giaûi thöôøng cho keát quaû toát (taát nhieân khoâng phaûi luùc naøo cuõng toát) nhöng ít phöùc taïp, hieäu quaû vaø khaû thi. Do ñoù, ngöôøi ta môû roäng khaùi nieäm thuaät toaùn (giuùp cho thuaät toaùn bôùt “cöùng nhaéc”) baèng moät khaùi nieäm môùi laø giaûi thuaät. Giaûi thuaät laø nhöõng caùch giaûi khoâng hoaøn toaøn ñaùp öùng ñaày ñuû caùc tính chaát cuûa moät thuaät toaùn nhöng vaãn cho keát quaû gaàn ñuùng. Hieän nay ñaõ coù nhöõng giaûi thuaät ñeä quy, giaûi thuaät ngaãu nhieân, giaûi thuaät Heuristic, .. . Ñeå thuaän tieän, trong taøi lieäu naøy seõ söû duïng khaùi nieäm giaûi thuaät ñeå chæ chung cho thuaät toaùn vaø giaûi thuaät. 5/- Löu ñoà chöông trình: a)- Khaùi nieäm : Coøn ñöôïc goïi laø sô ñoà khoái. Laø sô ñoà theå hieän caùc böôùc cuûa giaûi thuaät lieân quan ñeán moät vaán ñeà naøo ñoù ñöôïc ñöa vaøo giaûi quyeát baèng maùy tính. b)- Caùc kyù hieäu duøng trong löu ñoà: KYÙ HIEÄU YÙ NGHÓA nhaäp Chöùc naêng cuûa coâng vieäc vaøo ra döõ lieäu. xuaát xöû lyù Nhoùm leänh ñeå thöï hieän moät chöùc naêng naøo ñoù cuûa chöông trình 2 Leâ Vaên Haïnh – Nguyeãn Vieät Huøng Feb09
  4. ++ NGOÂN NGÖÕ LAÄP TRÌNH C PHAÀN 1 chöông chöông trình con ñaõ ñònh nghóa. trình con quyeát Quyeát ñònh reõ nhaùnh naøo caên cöù vaøo ñieàu kieän chæ ñònh ñònh ñöôïc ghi trong khoái. Trong moät soá tröôøng hôïp, hình thoi ñöôïc môû roäng thaønh 1 hình ña giaùc coù nhieàu ñöôøng ra, öùng vôùi caùc giaù trò cuûa bieåu thöùc beân trong. Höôùng xöû lyù cuûa löu ñoà. noái trang Ñieåm vaøo hay ñieåm ra cuûa töøng trang trong löu ñoà chöông trình. ñieåm Ñieåm ñaàu hay ñieåm cuoái cuûa löu ñoà. cuoái Noái Ñieåm vaøo hay ñieåm ra cuûa töøng phaàn trong löu ñoà chöông trình. c)- Moät soá ví duï bieåu dieãn thuaät toaùn baèng löu ñoà: c.1.- Thuaät toaùn khoâng phaân nhaùnh: Ví duï: Tính A=b2+c2. Vôùi b vaø c ñöôïc nhaäp vaøo töø baøn phím. (hình 1) c.2.- Thuaät toaùn coù phaân nhaùnh: Ví duï 1: Cho nhaäp 3 soá, in ra giaù trò lôùn nhaát trong 3 soá. (hình 2) Begin Begin Nhaäp a, b, c Nhaäp b, c S Max = b a>b A=b2+c2 Ñ Max = a Xuaát A S Max < c End Ñ Max = c (Hình 1) Xuaát Max (Hình 2) End 3 Leâ Vaên Haïnh – Nguyeãn Vieät Huøng Feb09
  5. ++ NGOÂN NGÖÕ LAÄP TRÌNH C PHAÀN 1 Ví duï 2: Giaûi phöông trình baäc 1 ax+b=0. Vôùi a,b ñöôïc nhaäp vaøo(hình 3) Ví duï 3: Giaûi phöông trình baäc 2 ax2 + bx + c =0. Vôùi a, b, c ñöôïc nhaäp vaøo. (hình 4) Begin Begin (Hình 4) Nhaäp a, b Nhaäp a, b, c S S Giaûi Xuaát –b/a End a=0 a=0 PTB1(b,c) Ñ Ñ S Xuaát delta=b*b -4ac b=0 “PTVN” Ñ S Xuaát “PTVN” delta < 0 Xuaát “PTVÑ” Ñ S Xuaát –b/2a delta = 0 (Hình 3) End Ñ Xuaát x1 = -b+sqrt(delta)/2*a Xuaát x2 = -b-sqrt(delta)/2*a c.3.- Thuaät toaùn laëp coù chu trình: Ví duï 4: Nhaäp n. Tính toång caùc soá töø 1 ñeán n. Ví duï naøy coù theå thöïc hieän baèng 2 caùch (caùch 1: hình 5, caùch 2: hình 6) (Hình 6) Begin (Hình 5) Begin Nhaäp n Nhaäp n I=1; S=0 I=1; S=0 S = S+i S i
  6. ++ NGOÂN NGÖÕ LAÄP TRÌNH C PHAÀN 1 6/- Maõ giaû (pseudocode): a)- Khaùi nieäm: • Laø vieát noäi dung chöông trình baèng ngoân ngöõ töï nhieân giaûn löôïc. • Thoâng thöôøng, ngöôøi ta duøng löu ñoà hay maõ giaû ñeå dieãn ñaït thuaät toaùn thay cho dieãn ñaït baèng baûn thaân ngoân ngöõ laäp trình. b)- Quy öôùc : • Phaûi deã hieåu, deã nhôù, nhaát quaùn vaø khoâng coù söï hieåu laàm. • Coù theå duøng caùc töø khoùa cuûa ngoân ngöõ ñang duøng, hoaëc coù theå söû duïng moät soá töø khoùa ñaõ ñöôïc quy öôùc tröôùc. c)- Ví duï : vieát chöông trình cho ngöôøi duøng nhaäp 1 soá nguyeân döông (n). Tính toång caùc soá töø 1 ñeán n. B1: Nhaäp soá n B2: Toång=0 B3: Soá ñang xeùt=1 B4: Thöïc hieän khi Soá ñang xeùt
  7. ++ NGOÂN NGÖÕ LAÄP TRÌNH C PHAÀN 1 #define: duøng ñeå ñònh nghóa caùc teân haèng soá (constant) vaø caùc macro coù phaïm vi söû duïng trong toaøn chöông trình hoaëc cho ñeán khi ñöôïc ñònh nghóa laïi sau chæ thò #undef. b)- Haøm main(): Caùc daïng cuûa haøm main: Daïng 1: Daïng 2: Daïng 3: void main() Kieåu_traû_veà main(void) Kieåu_traû_veà main(int i, char *str[]) {{ /* Caùc khai baùo*/ { /* Caùc khai baùo*/ { /* Caùc khai baùo*/ /* Caùc leänh*/ /* Caùc leänh*/ /* Caùc leänh*/ return Giaù_trò_traû_veà; return Giaù_trò_traû_veà; } } } Ví duï: int main() { cout
  8. ++ NGOÂN NGÖÕ LAÄP TRÌNH C PHAÀN 1 Goõ thieáu hoaëc sai teân cuûa moät ñoäi ñoái töôïng hoaëc haøm ví duï cot hay Cout (chöõ C vieát hoa) thay vì cout. Khoâng ñaët haèng chuoãi vaøo caëp daáu nhaùy keùp “”. Thieáu daáu chaám phaåy (;) sau moãi caâu leänh. Dö daáu chaám phaåy (;) sau töø khoùa main ”main();“ III. BIEÁN VAØ KHAI BAÙO BIEÁN: 1/- Khaùi nieäm veà bieán: Bieán laø teân do ngöôøi laäp trình ñaët ra duøng ñeå tham khaûo tôùi moät vuøng nhôù trong maùy tính. Moät bieán coù theå chöùa moät giaù trò phuø hôïp vôùi kieåu döõ lieäu maø ta ñaõ khai baùo cho noù. Giaù trò trong bieán coù theå thay ñoåi ñöôïc trong chöông trình. Teân bieán goàm chöõ caùi, kyù soá, daáu noái (_) vaø khoâng ñöôïc baét ñaàu baèng kyù soá. Bieán khai baùo trong moät khoái ñöôïc goïi laø bieán cuïc boä, bieán khoâng thuoäc khoái naøo goïi laø bieán toaøn cuïc. Bieán coù taùc duïng trong toaøn khoái keå töø luùc ñöôïc khai baùo. 2/- Cuù phaùp: variable_name1, variable_name2; Ví duï: int sum; long int datenum; foat a,b,c; Ta cuõng coù theå gaùn giaù trò cho bieán ngay taïi thôøi ñieåm khai baùo (pheùp gaùn kyù hieäu bôûi daáu baèng =). int a=3,b=5; Vò trí khai baùo bieán trong chöông trình: #include void main() { //Caùc khai baùo bieán // Caùc phaùt bieåu (leänh) cuûa chöông trình } Ví duï: #include void main() { float dmon1,dmon2,d_tb; dmon1=9.5; dmon2=8.0; d_tb=(dmon1+dmon2)/2; cout
  9. ++ NGOÂN NGÖÕ LAÄP TRÌNH C PHAÀN 1 IV. CAÙC ÑOÁI TÖÔÏNG NHAÄP – XUAÁT: 1/- Ñoái töôïng xuaát (cout ) a)- Coâng duïng: xuaát döõ lieäu ra maøn hình. b)- Cuù phaùp: cout
  10. ++ NGOÂN NGÖÕ LAÄP TRÌNH C PHAÀN 1 cout variable_name2...; c)- Ví duï: chöông trình sau khi thöïc hieän cho pheùp nhaäp vaøo 2 soá nguyeân sau ñoù in ra tích cuûa hai soá nguyeân naøy. #include void main(void) { int so1,so2,tich; cout > so1; cout > so2; tich=so1*so2; cout
  11. ++ NGOÂN NGÖÕ LAÄP TRÌNH C PHAÀN 1 Hai ñaëc ñieåm cuûa cin: • Töï ñoäng chuyeån ñoåi döõ lieäu cuûa giaù trò nhaäp vaøo cho phuø hôïp vôùi kieåu döõ lieäu cuûa bieán khi caàn thieát. • Khi cin ñöôïc goïi thöïc hieän noù kieåm tra vuøng ñeäm daønh cho döõ lieäu nhaäp neáu ñaõ coù döõ lieäu thì noù laáy ñuùng phaàn döõ lieäu maø noù caàn (phuï thuoäc vaøo kieåu döõ lieäu cuûa bieán maø noù ñang nhaäp giaù trò), neáu nhö chöa coù thì noù seõ chôø cho ñeán khi döõ lieäu ñaõ nhaäp. Do hai ñaëc ñieåm treân khi nhaäp döõ lieäu neáu ta nhaäp khoâng chính xaùc seõ aûnh höôûng ñeán giaù trò cuûa nhöõng bieán ñöôïc nhaäp sau ñoù. Xeùt caùc chöông trình ví duï sau: Ví duï 1: #include void main(void) { char kt1,kt2; int so; cout > kt1; cout > so; cout > kt2; cout
  12. ++ NGOÂN NGÖÕ LAÄP TRÌNH C PHAÀN 1 Ví duï 2: #include void main(void) { float so1,so3; int so2; cout > so1 >>so2 >> so3; cout
  13. ++ NGOÂN NGÖÕ LAÄP TRÌNH C PHAÀN 1 Phaân loaïi kieåu döõ lieäu soá thöïc trong C++: Kích Teân kieåu Nhoû nhaát Lôùn nhaát Mieàn giaù trò thöôùc float 4 3.4E +/- 38 (7 digits) FLT_MIN FLT_MAX double 8 1.7E +/- 308 (15 digits) DBL_MIN DBL_MAX long double 10 1.2E +/- 4932 (19 digits) LDBL_MIN LDBL_MAX Khi ghi moät soá thöïc trong chöông trình ta coù söï phaân bieät nhö sau: • Coù kyù hieäu f phía sau laø giaù trò thuoäc kieåu float. • Coù kyù hieäu l phía sau laø giaù trò thuoäc kieåu long double. • Ví duï: 9.234 thuoäc kieåu double 9.234f thuoäc kieåu float 9.234l thuoäc kieåu long double Caùc caùch trình baøy soá thöïc: Daïng thaäp phaân chuaån Daïng soá muõ Daïng khoa hoïc 1.625x103 1652. 1.625e3 6.3421x104 63421. 6.3421e4 7.31x10-3 .00731 7.31e-3 6.25x10-4 .000625 6.25e-4 3/- Kyù töï: Kieåu kyù töï bao goàm 256 kyù töï trong ñoù bao goàm caùc chöõ caùi (chöõ thöôøng vaø chöõ hoa), chöõ soá, caùc daáu, moät soá caùc kyù hieäu. Phaân loaïi kieåu döõ lieäu kyù töï trong C++: Teân kieåu Bytes Teân goïi khaùc Mieàn giaù trò char 1 signed char –128 to 127 unsigned char 1 Khoâng coù 0 to 255 Trong chöông trình, ñeå trình baøy moät haèng kyù töï ta ñaët vaøo daáu nhaùy ñôn: ‘a’ , ‘D’ , … Caùc kyù töï vôùi yù nghóa ñaëc bieät: Kyù töï Yù nghóa Kyù töï Yù nghóa \a Alert (bell) \t Horizontal tab \b Backspace \' Single quotation mark \f Next page \" Double quotation mark \n Newline \\ Backslash \r Carriage return \0 Null character 12 Leâ Vaên Haïnh – Nguyeãn Vieät Huøng Feb09
  14. ++ NGOÂN NGÖÕ LAÄP TRÌNH C PHAÀN 1 VI. TOAÙN TÖÛ TRONG C++: 1/- Toaùn töû soá hoïc: Moãi pheùp toaùn soá hoïc seõ keát hôïp 2 toaùn haïng. Pheùp toaùn YÙ nghóa Ghi chuù Pheùp nhaân Pheùp chia Tuøy thuoäc vaøo kieåu döõ lieäu / Pheùp chia laáy phaàn dö Chæ aùp duïng cho hai soá nguyeân % + Pheùp coäng Pheùp tröø - a/- Xaùc ñònh kieåu döõ lieäu cuûa keát quaû trong pheùp toaùn soá hoïc: Neáu caû hai toaùn haïng laø soá nguyeân thì keát quaû thuoäc kieåu nguyeân. Neáu coù moät toaùn haïng naøo laø kieåu soá thöïc thì keát quaû thuoäc kieåu thöïc. b/- Söï keát hôïp vaø ñoä öu tieân cuûa caùc toaùn töû: Hai pheùp toaùn 2 ngoâi khoâng bao giôø ñöùng caïnh nhau. Phaàn bieåu thöùc ñöôïc ñaët trong ngoaëc seõ ñöôïc öu tieân tính toaùn tröôùc. Coù theå coù nhieàu caëp daáu ngoaëc ñöôïc söû duïng loàng vaøo nhau, khi ñoù bieåu thöùc ñaët ôû ngoaëc trong cuøng coù öu tieân cao nhaát. Ñoä öu tieân cuûa caùc pheùp toaùn theo thöù töï lieät keâ ôû baûng treân. Neáu coù 2 pheùp toaùn gioáng nhau trong cuøng bieåu thöùc thì thöù töï xeùt ñoä öu tieân laø töø traùi sang phaûi. Daáu ngoaëc khoâng theå thay theá cho kyù hieäu trong pheùp nhaân. Ví du:ï khoâng theå vieát (3+4)(5+1) maø phaûi vieát (3+4)*(5+1). 2/- Caùc toaùn töû quan heä (relational operators): Coâng duïng: taïo ra caùc ñieàu kieän maø döïa vaøo ñoù moät chöông trình coù theå giaûi quyeát vaán ñeà meàm deûo, linh hoaït. Caùc bieåu thöùc söû duïng toaùn töû quan heä goïi laø bieåu thöùc quan heä (relation expression). Moät bieåu thöùc quan heä ñôn giaûn goàm moät toaùn töû quan heä keát hôïp vôùi hai bieán hoaëc hai giaù trò haèng. Caùc toaùn töû naøy coù theå aùp duïng treân caùc kieåu döõ lieäu: soá nguyeân, soá thöïc, kyù töï. Caùc toaùn töû quan heä trong C++ sau: Toaùn töû Coâng duïng Ví duï < So saùnh nhoû hôn tuoi So saùnh lôùn hôn chieucao >1.7 =100 == So saùnh baèng loai==’a’ != So saùnh khaùc loai!=’b’ Moät bieåu thöùc quan heä (ñieàu kieän) seõ coù moät trong hai keát quaû ñuùng hoaëc sai. Neáu ñuùng thì bieåu thöùc coù giaù trò 1, ngöôïc laïi coù giaù trò 0. 13 Leâ Vaên Haïnh – Nguyeãn Vieät Huøng Feb09
  15. ++ NGOÂN NGÖÕ LAÄP TRÌNH C PHAÀN 1 Moät bieåu thöùc quan heä chæ duøng 1 pheùp toaùn quan heä goïi laø bieåu thöùc quan heä ñôn giaûn. Ví duï: #include void main(void) { char ch1,ch2; ch1='a'; ch2='b'; cout ch2) ; } 3/- Toaùn töû logic: Caùc toaùn töû logic: ° AND (&&) ° OR (||) ° NOT (!) Khi caàn taïo ra caùc ñieàu kieän phöùc hôïp chuùng ta seõ söû duïng keát hôïp giöõa caùc toaùn töû quan heä vaø caùc toaùn töû logic. Khi ñoù caùc bieåu thöùc quan heä ñôn giaûn (nhö +, - , , /, . . .) neân ñaët trong caëp daáu ngoaëc ñôn ( ). Giaù trò cuûa bieåu thöùc gheùp ñöôïc cho trong baûng sau. Trong ñoù true =1 vaø false =0: A B A && B A || B !A True False False False False True True False False False True True True False False True True True True False Ví duï: Ta coù bieåu thöùc sau: // bieåu thöùc treân coù giaù trò baèng 1 khi • (tuoi1.50) // giaù trò cuûa bieán tuoi >30 vaø giaù trò cuûa bieán cao phaûi >1.5. 4/- Toaùn töû moät ngoâi: Trong chöông trình chuùng ta cuõng thöôøng söû duïng caùc leänh taêng hoaëc giaûm giaù trò cuûa bieán ñeám ñi 1. ví duï nhö: i=i+1; hoaëc i=i-1; Thay vì vieát nhö treân ta coù theå vieát: i++(hay ++i) hoaëc i-- hay(--i ) Caùc pheùp toaùn ++, -- nhö treân goïi pheùp toaùn moät ngoâi. Vieäc ñaët pheùp toaùn moät ngoâi tröôùc hoaëc sau teân bieán coù söï khaùc nhau khi söû duïng pheùp toaùn naøy chung vôùi caùc pheùp toaùn khaùc: • Neáu pheùp toaùn moät ngoâi ñaët tröôùc teân bieán thì giaù trò cuûa bieán seõ taêng/giaûm 1 tröôùc khi thuïc hieän nhöõng pheùp toaùn khaùc • Neáu pheùp toaùn moät ngoâi ñaët sau teân bieán thì giaù trò nhöõng pheùp toaùn khaùc seõ ñöôïc thöïc hieän tröôùc sau ñoù môùi taêng/giaûm giaù trò bieán ñi 1. 14 Leâ Vaên Haïnh – Nguyeãn Vieät Huøng Feb09
  16. ++ NGOÂN NGÖÕ LAÄP TRÌNH C PHAÀN 1 5/- Toaùn töû treân bit: Toaùn töû treân bit chæ coù taùc duïng treân caùc kieåu soá nguyeân. Teân toaùn töû YÙ nghóa Ghi chuù 1&1=1 0&1=0 & And 1&0=0 0&0=0 1 | 1 =1 0 | 1 =1 | Or 1|0=1 0|0=0 1^1=0 0^1=1 ^ XOr 1^0=1 0^0=0 n >> Shift phaûi A > n = A/(2n)
  17. ++ NGOÂN NGÖÕ LAÄP TRÌNH C PHAÀN 1 8/- Caùc loãi thöôøng gaëp: Queân khai baùo caùc bieán söû duïng trong chöông trình. Löu moät giaù trò vaøo moät bieán nhöng khoâng cuøng kieåu döõ lieäu vôùi bieán. Söû duïng bieán trong moät bieåu thöùc khi noù chöa coù giaù trò. Loãi naøy thí khoâng ñöôïc phaùt hieän bôûi rình bieân dòch, khi ñoù giaù trò cuûa bieán laø moät giaù trò baát kyø vaø keát quaû cuûa bieåu thöùc laø voâ nghóa. Söû duïng giaù trò cuûa pheùp chia khoâng chính xaùc. Loãi naøy thöôøng xuaát hieän trong caùc bieåu thöùc coù nhieàu toaùn haïng vaø loãi naøy raát khoù phaùt hieän. Ví duï: 3.2+ 2/3+ 1.5 thì keát quaû seõ baèng 4.7 thay vì phaûi baèng 5.3 Söû duïng moät bieåu thöùc maø trong ñoù chöùa nhieàu loaïi döõ lieäu nhöng laïi khoâng bieát chaéc chaén kieåu döõ lieäu cuûa keát quaû Queân kyù hieäu
  18. ++ NGOÂN NGÖÕ LAÄP TRÌNH C PHAÀN 1 ví duï a=b=c=5; • Neáu bieåu thöùc beân phaûi pheùp gaùn khaùc vôùi kieåu döõ lieäu cuûa bieán beân traùi thì keát quaû bieåu thöùc seõ ñöôïc chuyeån ñoåi kieåu cho phuø hôïp vôùi bieán beân traùi. • Khi keát quaû cuûa bieåu thöùc beân phaûi vöôït quaù phaïm vi cuûa bieán beân traùi thì giaù trò gaùn vaøo bieán seõ khoâng chính xaùc. Caùc daïng bieán ñoåi cuûa leänh gaùn: • Khi vieát chöông trình chuùng ta thöôøng söû duïng caùc leänh gaùn coù daïng nhö sau: tong=tong+10; tich=tich*3; a=a-3; c=c%k; ... • Trong caùc tröôøng hôïp treân ta coù theå söû duïng caùc toaùn töû gaùn +=;-=; *=; /=; %= ñöôïc cung caáp bôûi C++ goïi laø shortcut assignment operators Ví duï: tong=tong+10; ⇔ tong +=10; tich=tich*3; ⇔ tich *=3; a=a-3; ⇔ a -=3; c=c%k; ⇔ c %=k; • Veà yù nghóa thì caùc leänh gaùn trong hai tröôøng hôïp treân coù cuøng muïc ñích nhöng caùch duøng shortcut assignment operators seõ giuùp chöông trình chaïy nhanh hôn. 2/- Caùc pheùp bieán ñoåi kieåu (cast): Chuùng ta ñaõ tìm hieåu vieäc chuyeån ñoåi döõ lieäu trong hai tröôøng hôïp: • Trong moät bieåu thöùc chöùa nhieàu loaïi döõ lieäu. • Chuyeån ñoåi döõ lieäu trong bieåu thöùc gaùn. Hai tröôøng hôïp chuyeån ñoåi treân töï ñoäng dieãn ra moät caùch ngaám ngaàm beân trong. Ngoaøi ra C++ cuõng cung caáp cho ngöôøi laäp trình caùc toaùn töû bieán ñoåi kieåu tröïc tieáp goïi laø cast operator. Ñaây laø nhöõng toaùn töû moät ngoâi. Cuù phaùp: datatype(expression). datatype laø kieåu döõ lieäu maø ta muoán aùp ñaët cho cho bieåu thöùc. Ví duï: #include void main(void) { float a=3.5f,b=3.0f; cout
  19. ++ NGOÂN NGÖÕ LAÄP TRÌNH C PHAÀN 1 3/- Haèng (const): a)- Literal data: Laø baát kyø nhöõng döõ lieäu naøo trong chöông trình maø giaù trò cuûa noù cuõng chính laø teân cuûa noù. Ví duï nhö coù ñoaïn leänh sau: void main() { float fchuvi, fbankinh; cout fbankinh; fchuvi=2*3.1416* fbankinh; cout
  20. ++ NGOÂN NGÖÕ LAÄP TRÌNH C PHAÀN 1 • Coâng duïng cuûa haøm. • Loaïi döõ lieäu seõ cung caáp cho haøm. • Kieåu döõ lieäu cuûa keát quaû traû veà bôûi haøm. Cuù phaùp chung cuûa moät haøm laø: Function_name (danh saùch caùc ñoái soá). Khi söû duïng haøm toaùn hoïc caàn khai baùo prototype: # include Moät soá haøm thöôøng duøng: Kieåu döõ lieäu Teân Haøm Coâng Duïng cuûa keát quaû abs(x) Tính trò tuyeät ñoái cuûa soá x (x coù kieåu laø int) int fabs(x) Tính trò tuyeät ñoái cuûa soá x (x coù kieåu laø double) double labs(x) Tính trò tuyeät ñoái cuûa soá x (x coù kieåu laø long int) long int pow(x,y) tính x luõy thöøa y double sqrt(x) tính caên baäc 2 cuûa x double sin(x) tính sin x (x tính baèng radian) double cos(x) tính cos x (x tính baèng radian) double tan(x) tính tan x (x tính baèng radian) double log(x) ln(x) double log10(x) logarit cô soá 10 cuûa x double ex exp(x) double • Ñoái soá cuûa nhöõng haøm treân coù theå laø: Soá nguyeân hoaëc soá thöïc. Noù coù theå laø haèng, bieán hoaëc moät bieåu thöùc. Ví duï: #include #include void main() { int x=5, x=2; cout
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
16=>1