MÔN NGÔN Chươ PHƯƠNG PHÁP GIẢ BộMôn Công nghệphần mềm Khoa Công nghệThông tin Trường ĐH Bách Khoa Tp.HCM BẰNG MÁY NNGỮJAVA ơng 1 ẢI QUYẾT BÀI TOÁN Môn : Ngôn ngưJava Slide 1 YTÍNH SỐ Chương 1: Phương pháp giải quyết bài toán bằng máy tính số Máy tính sốlà thiếtbị có thểthựch bản(tậplệnh), cơchếthựchiệnc đếnlệnh cuối cùng. Danh sách cá là chương trình. Các lệnh mà máy hiểuvà thựch dùng ngôn ngữđểmiêu tảcác lện yếutố: cúphápvàngữnghĩa. C Các khái niệm cơ b BộMôn Công nghệphần mềm Khoa Công nghệThông tin Trường ĐH Bách Khoa Tp.HCM yếutố: cúphápvàngữnghĩa. C phầntửđểcấu thành 1 lệnh (câu) lệnhđó. Bấtkỳcông việc (bài toán) ngoàiđ trình tựnhiềucông việcnhỏhơn.T gọilàgiảithuậtgiải quyếtcôngviệ cũng có thểđượcchianhỏhơnn đượcmiêu tảbằng 1 trình tựcác lệ hiện1sốhữuhạncác chứcnăng cơ các lệnh là tựđộngtừlệnhđầucho áclệnhđượcthựchiệnnàyđượcgọi hiệnđượcđượcgọilàlệnh máy.Ta nh. Ngôn ngữlậptrìnhcấu thành từ2 Cúphápquiđịnhtrật tựkết hợpcác bản vềmáy tính số Môn : Ngôn ngưJava Slide 2 Cúphápquiđịnhtrật tựkết hợpcác , còn ngữnghĩachobiếtýnghĩacủa đờinàocũng có thểđược chia thành Trình tựcác công việcnhỏnàyđược ệc ngoàiđời. Mỗicôngviệcnhỏhơn nữa,...⇒công việc ngoàiđờicóthể ệnh máy (chương trình). Chương 1: Phương pháp giải quyết bài toán bằng máy tính số vấnđềmấuchốtcủaviệcdùngmá là lậptrình(đượchiểu nôm na là lệnh máyđểthểhiệncông việc). củacon người (vớisựtrợgiúp ngà Với công nghệphầncứng hiệnna mà tậplệnh máy rấtsơkhai, mỗi l việcrấtnhỏvàđơngiản⇒công ới tì ht ất lớ (hà tiệ ) á Các khái niệm cơbả BộMôn Công nghệphần mềm Khoa Công nghệThông tin Trường ĐH Bách Khoa Tp.HCM với trìnhtựrất lớn(hàngtriệu) cá ngữmáy rấtphứctạp, tốnnhiều bảo trì, phát triển. Ta muốncó máyluậnlývớitậpl trình) cao cấpvàgầngủihơnvới này bằng 1 máy vậtlý+1chươn trình phân giải (interpreter). áy tính giải quyếtcôngviệc ngoàiđời qui trình xácđịnh trình tựđúng các Chođếnnay,lập trình là công việc ày càng nhiềucủa máy tính). ay, ta chỉ có thểchếtạo các máy tính lệnh máy chỉ có thểthựchiện1 công việc ngoàiđờithường tươngđương á lệ h á Lậ tì hbằ ô ản vềmáy tính số(tt) Môn : Ngôn ngưJava Slide 3 áclệnhmáy⇒Lậptrìnhbằng ngôn thời gian, công sức, kếtquảrấtkhó lệnh (đượcđặctảbởingônngữlập con người. Ta thường hiệnthựcmáy gtrìnhdịch (compiler) hay 1 chương Chương 1: Phương pháp giải quyết bài toán bằng máy tính số Gọingônngữmáy vậtlýlàN0 . ngôn ngữN0sẽnhậnđầuvàolà ngữN1 , phân tích từng lệnh N1 rồ ngôn ngữN0 có chứcnăng tươn ngôn ngữN1sang N0dễdàng,độ N1khôngquácaosovớitừng lệnh Sau khi có máy luậnlýhiểuđược Các khái niệm cơbả BộMôn Công nghệphần mềm Khoa Công nghệThông tin Trường ĐH Bách Khoa Tp.HCM nghĩavàhiệnthựcmáyluậnlýN2 có 1 máy luậnlýhiểuđượcngôn dễdàng miêu tảgiảithuậtcủabài Nhưng qui trình trên chưacóđiểm và kiếnthức ngày càng nhiều,n ngôn ngữmớivớitậplệnh ngàyc miêu tảgiảithuậtcàngdễdàng, g Trìnhbiêndịch ngôn ngữN1 sang chương trìnhđượcviếtbằng ngôn ồichuyển thành danh sách các lệnh ngđương.Đểchương trình dịch từ ộphứctạpcủatừng lệnh ngôn ngữ hngôn ngữN0 . cngôn ngữluậnlý N1,tacóthểđịnh ản vềmáy tính số(tt) Môn : Ngôn ngưJava Slide 4 1 theo cách trên và tiếptụcđếnkhita nngữNmrấtgầngủivớiconngười, toán cầngiải quyết... mdừng, vớiyêu cầu ngày càng cao ngườitatiếptụcđịnh nghĩanhững càng gầngủihơnvớicon người để ọnnhẹvà trong sáng hơn. Chương 1: Phương pháp giải quyết bài toán bằng máy tính số Ngôn ngữmáy vậtlý làloạingôn bình thường có thểdùngđược.C miêu tảbởicácsốbinary (hay hexa máy vậtlý cóthểhiểutrựctiếp,n khăntrong việcviếtvàbảotrì chươ Ngôn ngữassembly rấtgầnvới n nhấtcủangôn ngữassembly tươ biểudiễndưới dạnggợi nhớNgoà Các cấp động BộMôn Công nghệphần mềm Khoa Công nghệThông tin Trường ĐH Bách Khoa Tp.HCM biểudiễndưới dạnggợi nhớ. Ngoà niệmlệnh macrođểnâng sứcmạ Ngôn ngữcấp cao theo trường phá Tậplệnh củangônngữnày khá bình thường. Ngôn ngữhướngđốitượng nhưC phương pháp cấutrúcchương trì phát triểnvàthaythếlinh kiện. nngữthấpnhấtmàngườilậptrình Các lệnh và tham sốcủalệnhđược adecimal).Đây là loạingônngữmáy nhưng con ngườithìgặpnhiềukhó ơng trình. ngôn ngữmáy, những lệnh cơbản ơngứng vớilệnh máy nhưngđược àira người ta tăngcườngthêm khái gôn ngữlập trình Môn : Ngôn ngưJava Slide 5 àira, người ta tăngcườngthêm khái ạnh miêu tảgiảithuật. áilậptrình cấutrúc nhưPascal, C,... mạnh và gầnvớitưduy củangười ++, Visual Basic, Java, C,... cảitiến nh sao cho trong sáng,ổnđịnh, dễ Chương 1: Phương pháp giải quyết bài toán bằng máy tính số Các lệnh củachương trình (code) tin (dữliệu). Chương trình giải quyết bài toán n khác nhau với tính chấtrất đadạ cần 3 thông tin vềdữliệuđó: tên nhậndạng(identifier) xác kiểudữliệu(type)miêutảcấu Dữliệu của c BộMôn Công nghệphần mềm Khoa Công nghệThông tin Trường ĐH Bách Khoa Tp.HCM kiểudữliệu(type)miêutảcấu tầmvựctruyxuất (visibility) nào) truy xuấtdữliệu. Chương trình cổđiển=dữliệu+g Chương trình con(function, subr chứcnăngđược dùng nhiềulầnở cho phép cấutrúc chương trình, s )sẽtham khảohoặcxửlý (truy xuất) nàođócóthểtruy xuấtnhiềudữliệu ạng.Đểtruy xuất1dữliệucụthể,ta định vị trí củadữliệu. utrúccủadữliệu chương trình Môn : Ngôn ngưJava Slide 6 utrúccủadữliệu. miêu tảphạm vi khách hàng (lệnh giảithuật. routine,...) là 1đoạncodethểhiện ởnhiềuvị trí trong chương trình, nó ửdụng lại code... Chương 1: Phương pháp giải quyết bài toán bằng máy tính số Chương trình = cấu trú ttt module (package) Cấu trúc 1 chươ BộMôn Công nghệphần mềm Khoa Công nghệThông tin Trường ĐH Bách Khoa Tp.HCM entry start c dữliệu + giải thuật global data local data of module ơng trình cổ điển Môn : Ngôn ngưJava Slide 7 of module local data of function Chương 1: Phương pháp giải quyết bài toán bằng máy tính số Bộnhớ (Memory) Đơn vị x (CPU chứa code và data đang thực thi thực thi từn của chương Mô hình máy tính BộMôn Công nghệphần mềm Khoa Công nghệThông tin Trường ĐH Bách Khoa Tp.HCM (Memory) (CPU Bus gia xửlý ) Các thiết bị vào ra (IO) g lệnh gtrình giao tiếp với bên ngoài (thường là người) để nhậpxuất tin sốVon Neumann Môn : Ngôn ngưJava Slide 8 ) vào ra (IO) ao tiếp Chương 1: Phương pháp giải quyết bài toán bằng máy tính số Dữliệu cần xửlý bằng máy tính (chữsố, hình ảnh, âm thanh,...) Qui trình tổngquát để giải quy BộMôn Công nghệphần mềm Khoa Công nghệThông tin Trường ĐH Bách Khoa Tp.HCM Xửlý d dạng c Mã hóa dữliệu thành dạng chuỗi bit Giảiãhỗi Kết quảcó được sau khi xửlý bằng máy tính (chữsố, hình ảnh, âm thanh,...) yết bài toán bằngmáytính số Môn : Ngôn ngưJava Slide 9 Giảimãchuỗi bit ra dạng người, thiết bị ngoài hiểu được dữliệu huỗi bit Chương 1: Phương pháp giải quyết bài toán bằng máy tính số Trong quá khứ,phương pháp thườn phương pháp từtrênxuống (topdow Nộidung củaphương pháp này là xé đóthì cầnphảilàmnhững công việcn tìm đượclại được phân thành những chođến khi những công việcphảilàm có thểthựchiệndễdàng. Phương pháp phân BộMôn Công nghệphần mềm Khoa Công nghệThông tin Trường ĐH Bách Khoa Tp.HCM ự ệ g Thí dụviệchọclấybằng kỹsưCNTT bao gồm9 công việcnhỏhơnlà học là họcnmônhọccủahọckỳđó, họ mônđó,... Hình vẽcủaslidekếcho thấytrựcqua ngsửdụngđểphân tích bài toán là n analysis). étxem,muốngiải quyếtvấnđềnào nhỏhơnnào.Mỗicôngviệcnhỏhơn công việcnhỏhơnnữa, cứnhưvậy mlà những công việcthật đơngiản, tích từtrênxuống Môn : Ngôn ngưJava Slide 10 Tkhoa CNTTĐHBK TP.HCM có thể ctừng họckỳtừ1tới9,họchọckỳi ọc1mônhọclàhọcmchương của ancủaviệc phân tích topdown. Chương 1: Phương pháp giải quyết bài toán bằng máy tính số Công vi giải quy Công việc A1 Công v A2 Phương pháp phân tí BộMôn Công nghệphần mềm Khoa Công nghệThông tin Trường ĐH Bách Khoa Tp.HCM Công việc A11 Công việc A12 Công việc A1n ... ... iệc cần yết (A) việc Công việc An ... ích từtrênxuống (tt) Môn : Ngôn ngưJava Slide 11 Công việc An1 Công việc An2 Công việc Ann ... ... Chương 1: Phương pháp giải quyết bài toán bằng máy tính số Công việc cầ ≡đối tượng Đối tượng A1 Đối tư A Phương pháp phân tí BộMôn Công nghệphần mềm Khoa Công nghệThông tin Trường ĐH Bách Khoa Tp.HCM Đối tượng A11 Đối tượng A12 Đối tượng A1n ... ... ần giải quyết phức hợpA ượng A2 Đối tượng An ... ích từtrênxuống (tt) Môn : Ngôn ngưJava Slide 12 Đối tượng An1 Đối tượng An2 Đối tượng Ann . ... ... Chương 1: Phương pháp giải quyết bài toán bằng máy tính số MÔN NGÔN Chươ THỂHIỆN BộMôn Công nghệphần mềm Khoa Công nghệThông tin Trường ĐH Bách Khoa Tp.HCM Ệ TRONG MÁ NNGỮJAVA ơng 2 NDỮLIỆU Môn : Ngôn ngưJava Slide 13 Ệ ÁY TÍNH SỐ Chương 2 : Thểhiện dữliệu trong máy tính số Phầntửnhớnhỏnhấtcủa máy tính (ta gọilà bit). Ta kếthợpnhiềuphầntửnhớđểcó dụta dùng 8 bit đểmiêu tả2 8 =25 đượcgọi là byte, đây là 1 ô nhớtron Bộnhớtrong của máy tínhđượcd chươngtrình đangthựcthi Nólà 1d Cơbản vềviệc lưu trửvà BộMôn Công nghệphần mềm Khoa Công nghệThông tin Trường ĐH Bách Khoa Tp.HCM chươngtrình đangthựcthi. Nólà 1d nhớđượctruyxuất độclập thôngq Thường ta dùng chỉ sốtừ0 nđểm Mặc dù ngoàiđờitađã quen dùng phầncứng bên trong máy tính, máy liệuởdạng nhị phân. Dođótrongc niệmnềntảng vềhệthống sốvà các hsốchỉ có thểchứa2giátrị :0và 1 óthểmiêu tảđạilượng lớnhơn. Thí 56giátrị khác nhau. Dãy 8 bit nhớ ngbộnhớcủa máy tính. dùngđểchứadữliệuvà code của dãyđồngnhất cácônhớ8bit mỗi ô àxửlý tin trong máy tính Môn : Ngôn ngưJava Slide 14 dãyđồngnhất cácônhớ8bit, mỗi ô quađịachỉ củanó(tênnhậndạng). miêu tảđịachỉ củatừng ô nhớ. ghệthống sốthập phân, nhưng về chỉ có thểchứavà xửlý trựctiếpdữ hương này, ta sẽgiớithiệu các khái chmiêu tảdữliệu trong máy tính. Chương 2 : Thểhiện dữliệu trong máy tính số Hệthống số(number system) là c thống sốgồm3thànhphần chính : 1. cơsố:sốlượng ký số(ký h 2. qui luậtkếthợpcáckýsố 3. các phép tính cơbảntrên c Trong3 thànhphầntrên, chỉ có thàn Cơbản về h BộMôn Công nghệphần mềm Khoa Công nghệThông tin Trường ĐH Bách Khoa Tp.HCM g p , thống số, còn 2 thành phần2 và 3 th Thí dụ:hệthống sốthập phân (h 0,1,2,3,4,5,6,7,8,9. hệnhịphândùng 2 ký s hệbát phân dùng 8 ký số hệthập lục phândùng 1 công cụđểbiểuthị lượng. Mộthệ iệuđểnhậndạng các sốcơbản). đểmiêu tả1lượng nàođó. các số. nhphần 1 là khác nhaugiữacác hệ hệthống số Môn : Ngôn ngưJava Slide 15 p g ệ hìgiống nhau giữacác hệthống số. hệthập phân) dùng 10 ký số: số: 0,1. ố: 0,1,2,3,4,5,6,7. 16 ký số: 0 đến 9,A,B,C,D,E,F. Chương 2 : Thểhiện dữliệu trong máy tính số Biểudiễncủalượng Q trong hệthốn dndn1...d 1d0d1...dm ⇔ Q=dnB n +dn1B n1 +...+d0B 0 +d trong đómỗidi là1kýsốtrong hệth Trong thựctếlậptrìnhbằng ngôn thống sốthậpphânđểmiêu tảdữ Cơbản vềhệthống số BộMôn Công nghệphần mềm Khoa Công nghệThông tin Trường ĐH Bách Khoa Tp.HCM quen). Chỉ trong 1 sốtrường hợpđặ phân (hay thậplục phân)đểmiêu tả hợp này, qui luậtbiểudiễncủalượng đơngiảnlà: dndn1...d 1d0⇔ Q=dnB n +dn1B n1 +...+d1B 1 +d0 trong đómỗidi là1kýsốtrong hệth ngsốB(B>1) là: d1B 1 +...+dmB m hống B. ngữcấp cao, ta thường dùng hệ ữliệusốcủachương trình (vìđã Qui luật miêu tảlượng Môn : Ngôn ngưJava Slide 16 ặcbiệt, ta mớidùnghệthống sốnhị ả1vàigiátrị nguyên, trong trường gnguyên Q trong hệthống sốBsẽ 0B 0 hống B. Chương 2 : Thểhiện dữliệu trong máy tính số Thí dụvềbiểudiễncáclượng trong lượng mườibảyđượcmiêut 17 = 110 1 +710 0 lượng mườibảyđượcmiêut 11 = 116 1 +116 0 lượng mườibảyđượcmiêut 10001 = 12 4 +02 3 +02 2 +02 1 + Cơbản vềhệthố BộMôn Công nghệphần mềm Khoa Công nghệThông tin Trường ĐH Bách Khoa Tp.HCM Trong môi trường sửdụngđồng thờ lẫntrongcácbiểudiễncủacác lư nhậndạng hệthống sốđượcdùngt viết: 17Dđểxácđịnh sựbiểudiễntr 11H(hệthống sốthậplụcphân 10001 B(hệthống sốthậpnhị p các hệthống số: tảlà 17 trong hệthậpphânvì : tảlà 11 trong hệthậplụcphânvì : tảlà 10001 trong hệnhị phân vì : +12 0 ống sốVài thí dụ Môn : Ngôn ngưJava Slide 17 inhiềuhệthống số,đểtránh nhằm ợng khác nhau, ta sẽthêm ký tự trong biểudiễn liên quan. Thí dụta rong hệthống sốthập phân. n.) phân.) Chương 2 : Thểhiện dữliệu trong máy tính số Các phép tính cơbảntrong1hệthố 1. phép cộng 2. phép trừ 3. phép chia 4. phép nhân 5. phép dịch trái n ký số 6. phép dịch phải n ký số Cơbản vềhệthống BộMôn Công nghệphần mềm Khoa Công nghệThông tin Trường ĐH Bách Khoa Tp.HCM Ngoài ra dođặcđiểmcủahệnhị phâ tính sau (các phép tính luậnlý): 1. phép OR bit 2. phép AND bit 3. phép XOR bit 4. .... ng sốlà : (+). (). (). (). (> n). gsố Các phép tính Môn : Ngôn ngưJava Slide 18 ân, hệnàycòncungcấp1 sốphép (|). (). (). Chương 2 : Thểhiện dữliệu trong máy tính số Thí dụvềcác phép tính cơbản(cá hệnhị phân : 0 1 1 0 + 0 0 1 1 1 0 0 1 10 0 00 1 01 1 Thí dụvềphép BộMôn Công nghệphần mềm Khoa Công nghệThông tin Trường ĐH Bách Khoa Tp.HCM ácgiátrịđềuđượcbiểudiễnbằng 1 1 0 1 0 0 1 0 1 0 1 1 0 0 1 cộng, trừ, nhân Môn : Ngôn ngưJava Slide 19 00 0 0 1 0 0 1 1 0 1 1 0 1 Chương 2 : Thểhiện dữliệu trong máy tính số 1 0 1 1 1 0 1 0 1 0 1 Thí dụvềcác phép tính cơbản(cá hệnhị phân) : Thí dụvề BộMôn Công nghệphần mềm Khoa Công nghệThông tin Trường ĐH Bách Khoa Tp.HCM 0 1 0 0 1 1 1 0 0 1 ácgiátrịđềuđượcbiểudiễnbằng sốbịchia sốchia thương số phép chia Môn : Ngôn ngưJava Slide 20 dưsố Chương 2 : Thểhiện dữliệu trong máy tính số Thí dụvềcác phép tính dịch ký số bằng hệnhị phân) : 00001 10 1bịdịch trái 2 bit (tương dương Thí dụvềphé BộMôn Công nghệphần mềm Khoa Công nghệThông tin Trường ĐH Bách Khoa Tp.HCM 00001 10 1bịdịch phải 2 b (tương dương ố(các giá trịđềuđượcbiểudiễn 00 00 11 01 00 tthành với nhân 2 2 ) 0 0 ép dịch ký số Môn : Ngôn ngưJava Slide 21 00001 10 1 bit thành với chia 2 2 ) 00 Chương 2 : Thểhiện dữliệu trong máy tính số ĐạisốBoolenghiêncứuvềcác phé có 2 giá trị 0và 1,tươngứng với h (hay không và có) củađờithường xynotxxandyxnandy 00 1 0 1 01 0 1 Các phép tính c BộMôn Công nghệphần mềm Khoa Công nghệThông tin Trường ĐH Bách Khoa Tp.HCM 10 0 0 1 11 1 0 BiểuthứcBoolelà1biểuthứctoán Boole trên các toán hạng là các biến éptoán thựchiện trên các biếnchỉ hai thái cựcluận lý sai và đúng g. Các phép toán này gồm: y xoryxnoryxxory 01 0 10 1 ủa đại sốBoole Môn : Ngôn ngưJava Slide 22 10 1 10 0 nhoc cấu thành từcác phép toán nchỉ chứa2trị 0và 1. Chương 2 : Thểhiện dữliệu trong máy tính số Các đơn vị đo lường bộnhớthường 1. byte : 8bit, có thểmiêu tả đượ 2. word :2 byte, có thểmiêu tả 3. double word: 4 byte, có thể nhau. 4 KB (kilo byte)=210 = 1024 b Các đơn vịnhớ BộMôn Công nghệphần mềm Khoa Công nghệThông tin Trường ĐH Bách Khoa Tp.HCM 4. KB (kilo byte)= 2 10 = 1024 b 5. MB (mega byte) = 2 20 = 1024 6. GB (giga byte) = 2 30 = 1024M 7. TB (tetra byte) = 2 40 = 1024G Thí dụ, RAM của máy bạn là 256MB dùng là : ợc 2 8 = 256 giá trịkhác nhau. được 2 16 = 65536 giá trịkhác nhau. miêu tả được 2 32 = 4 tỉgiá trịkhác byte ớthường dùng Môn : Ngôn ngưJava Slide 23 byte. 4KB ≅1 triệu byte. MB ≅1 tỉbyte. GB≅1 ngàn tỉbyte. , đĩa cứng là 30GB. Chương 2 : Thểhiện dữliệu trong máy tính số Tùy ngôn ngữlập trình mà cách biểudiễnsốtrong máy có những khác biệtnhất định. Riêng VC++ có nhiều phương pháp biểudiễnsố khác nhau, trongđó 2 cách thường dùng là sốnguyên Biểu diễn sốngu 00 00 .. 01 BộMôn Công nghệphần mềm Khoa Công nghệThông tin Trường ĐH Bách Khoa Tp.HCM và sốthực. Máydùng 1 word(2byte)để chứadữliệu nguyên (short) theo qui định sau (khi chứa vào bộnhớthì byte trọng số nhỏđitrước LE Little Endian) : 01 10 10 .. 11 uyên trong Java 0000000 00000000 0 0000000 00000001 1 ... 1111111 11111111 32767 Sựbiểu diễngiá trị Môn : Ngôn ngưJava Slide 24 1111111 11111111 32767 0000000 00000000 32768 0000000 00000000 32767 ... 1111111 11111111 1 Chương 2 : Thểhiện dữliệu trong máy tính số Đểmiêu tảđược các giá trị nguyên 32767, VC++ cung cấpkiểuintlo 1giátrị nguyên với cùng nguyên tắc long miêu tảcác sốnguyên trong phạ Máydùng8byteđểchứadữliệuthự ±m Be , m gọi là định trị(0.1≤m Biểu diễn sốth BộMôn Công nghệphần mềm Khoa Công nghệThông tin Trường ĐH Bách Khoa Tp.HCM b63 11 1 phần định trị m phần sốmũe bit dấu nnằm ngoài phạmvitừ32768 đến ong, kiểu này dùng 4 byteđểmiêu tả cnhưkiểushort.Kếtquảlà kiểuint, ạmvitừ2 tỉđến2tỉ. ực(Kiểu double) theo dạng sau : m ? PQ R S T U V W X Y Z _ pq r s t u v w x y z { | } ~ Chương 2 : Thểhiện dữliệu trong máy tính số Mã ISO88591 dùng các giá trị (mã) mã ký tựđầuquiđịnh giống nhưmã mã từ031 là cácmãđiềuk LF=10 (Line Feed), ESC=27( mã 32 miêu tảký tựtrống, 33 Bảng mã ISO %( ) + 0 BộMôn Công nghệphần mềm Khoa Công nghệThông tin Trường ĐH Bách Khoa Tp.HCM % ( ) +,. 0 A B C D E F G H I J K L M N O P `a b c d e f g h i j k l m n o p € ‚ ƒ „ … † ‡ ˆ ‰ Š ‹ Œ Ž ¡ ¢ £ ¤ ¥ ¦ § ¨ © ª « ¬ ® ¯ ° À Á Â Ã Ä ÅÆ Ç È É Ê Ë Ì Í Î Ï Ð àá â ã ä å æ ç è é ê ë ì í î ï ð từ0256đểmiêu tảcáckýtự(128 ASCII) : khiểnnhưCR=13 (Carriage Return), (Escape)... 3miêu tảký tự,... theo bảng sau : O88591 (8 bit) 0 1234 56 789: ;< =>? Môn : Ngôn ngưJava Slide 28 0 1 2 3 4 5 6 7 8 9 : ; < = > ? PQ R S T U V W X Y Z _ pq r s t u v w x y z { | } ~ ‘ ’ “ ” • – — ˜ ™ š › œ ž Ÿ °± ² ³ ´ µ ¶ · ¸ ¹ º » ¼ ½ ¾ ¿ ÐÑ Ò Ó Ô Õ Ö × Ø Ù Ú Û Ü Ý Þ ß ðñ ò ó ô õ ö ÷ ø ù ú û ü ý þ ÿ Chương 2 : Thểhiện dữliệu trong máy tính số MãĐHBK 1 byte cóđượcbằng cách mã từ031 là cácmãđiềuk LF=10 (Line Feed), ESC=27( mã 32 miêu tảký tựtrống, 33 Bảng mã tiếng V % () + 0123 456789 : BộMôn Công nghệphần mềm Khoa Công nghệThông tin Trường ĐH Bách Khoa Tp.HCM % ( ) +, . 0 1 2 3 4 5 6 7 8 9 : A B C D E F G H I J K L M N O P Q R S T ` a b c d e f g h i j k l m n o p q r s t u v w x y z Á ‚ ƒ „ … † ‡ ˆ ‰ Š ‹ Œ Ị ‘ ’ “ ” • –— Ấ¡ ¢ £ ¤ ¥ ¦ § ¨ © ª « ¬ ® ¯ ° ± ² ³ ´ µ ¶ · ¸ ¹ º » À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï Ð Ñ Ò Ó Ô à á â ã ä å æ ç è é ê ë ì í î ï ð ñ ò ó ô õ ö ÷ ø ù ú hhiệuchỉnh bảng mã ISO88591 : khiểnnhưCR=13 (Carriage Return), (Escape)... 3miêu tảký tự,... theo bảng sau : Việt ĐHBK 1 byte ;? Môn : Ngôn ngưJava Slide 29 ; < = > ? TU V W X Y Z _ z{ | } ~ —˜ ™ š › œ ẶŸ »¼ ½ ¾ ¿ Õ Ö × Ø Ù Ú Û Ü Ý Þ ß úû ü ý þ ÿ Chương 2 : Thểhiện dữliệu trong máy tính số Mã Unicode Windows dùng 2 byteđể 256 mãđầutừ0255 giống mã từ256 trởđichứacác ký thếgiới(quákhứ,hiệntạivà thí dụsaulà1phầnmãtiếng Một phần mã tiếng Vi mã 1ea0H biểu diễn kýtự Ạ BộMôn Công nghệphần mềm Khoa Công nghệThông tin Trường ĐH Bách Khoa Tp.HCM Ạ ạ Ả ả Ấ ấ Ầ ầ Ẩ ẩ Ẫ ẫ Ậ ậ Ắ ắ Ằ ằ Ẳ ẳ Ẵ ẵ Ặ Ề ề Ể ể Ễ ễ Ệ ệ Ỉ ỉ Ị ị Ọ ọ Ỏ ỏ Ố ố Ồ ồ Ổ ổ Ỗ ỗ Ỡ ỡ Ợ ợ Ụ ụ Ủ ủ Ứ ứ Ừ ừ Ử ử Ữ ữ Ự ự Ỳ ỳ Ỵ H ý ựẠ ểmiêu tả1kýtự: ynhưmã ISO88591. ýtựcủahầuhết các ngôn ngữtrên tương lai). Việt trong mã Unicode : ệt Unicode dựng sẵn mã 1ef9H biểu diễn kýtự ỹ Môn : Ngôn ngưJava Slide 30 Ặ ặ Ẹ ẹ Ẻ ẻ Ẽ ẽ Ế ế Ộ ộ Ớ ớ Ờ ờ Ở ở ỵ Ỷ ỷ Ỹ ỹ H ý ựỹ Chương 2 : Thểhiện dữliệu trong máy tính số Sốnguyên (short), sốthực (double) mã hóa dữliệuphổdụng, ngoài ram hóa riêngđểmã hóa dữliệuđặc thanh,... Trong chương 5và 6 chúngtasẽtr ngôn ngữVC++ hỗtrợ. Nhưngta đãtrình bàytrongslide9(c Mã hóa dữliệu BộMôn Công nghệphần mềm Khoa Công nghệThông tin Trường ĐH Bách Khoa Tp.HCM Nhưngta đãtrình bàytrongslide9(c thểnào thì kếtquảcủaviệcmãhóa đểcó thểđượclưutrửvà xửlý bên t Bộnhớcủa máy tính thường có dun nóđểchứacodevàdữliệucủachươ 1máytínhcóthểlưutrữrấtnhiều trên các thiếtbị chứatin(bộ nhớ CDROM,... ),chuỗiký tự(char) là những dạng mỗi ứng dụng có thểcầncócáchmã c thù củamìnhnhưhìnhảnh, âm rình bày chi tiếtcáckiểudữliệumà chương1) dùdùngcáchmãhóacụ của ứng dụng Môn : Ngôn ngưJava Slide 31 chương1), dùdùngcáchmãhóacụ aphải là 1 chuỗi bit (hay chuỗibyte) trong máy tính. nglượng không lớnnênta chỉ dùng ơng trìnhđang thựcthi. chươngtrìnhvàdữliệucủa chúng ớngoài) nhưđĩamềm,đĩacứng, Chương 2 : Thểhiện dữliệu trong máy tính số code của1 chương trình, chuỗiby thiếtbị chứatintrong 1 phầntửch 1thiếtbị chứatinthường chứar xuất 1 file, ta dùng tên nhậndạn tên nhậndạng củanó sẽởdạngt nghĩacủanội dung file), thí dụnh toàn bộnộidungluậnántốtnghiệ Thiết bịchứ BộMôn Công nghệphần mềm Khoa Công nghệThông tin Trường ĐH Bách Khoa Tp.HCM g g Nếutadùng khônggianphẳngđ chứatinthìvìsốlượng file quá dạng, xửlý,... (nói chung là quảnl Đểgiải quyếtvấnđềtrên ta dùng và quản lý các file trên từng thiếtb yte miêu tảdữliệuđượclưutrữtrên hứatinluậnlýđượcgọilàfile. rấtnhiềufile.Đểnhậndạng và truy ggán cho mỗifile.Đểdễdùng file, tên gợinhớ(chuỗiký tựmiêu tảngữ hưfile luậnántốtnghiệp.doc chứa ệpcủangườidùngmáy. ứa tin File Môn : Ngôn ngưJava Slide 32 g g y đểđặt tên cho các file trên 1 thiếtbị lớnnêntakhólòngđặttên,nhận lý) từng file. gkhông gian cây thứbậcđểtổchức bị chứatin. Chương 2 : Thểhiện dữliệu trong máy tính số Đểtạo không gian cây thứ b (directory). thưmụclàphầntửchứanhiềup hay thưmục. Thường ta sẽdùng con có mốiquan hệmậtthiếtnào ảnh kỷniệm, thưmụcchứacác fil Thiết bị chứatin vật lý (đĩamềm Thiết bịchứa tin : Kh BộMôn Công nghệphần mềm Khoa Công nghệThông tin Trường ĐH Bách Khoa Tp.HCM Thiết bị chứatin vật lý (đĩamềm tượng hóa nhưlà1thưmục(tag gốc). Thưmụcgốcchứanhiềup con củathưmụcgốcthường là file. Mỗithưmụccon lạicóthểch cứthếta sẽhình thành 1 cây thứ Ta cũng dùng tên gợinhớđểnhậ gian cây thứbậc, ta sẽdùng kh nhậndạng 1 file hay 1 thưmục. bậc, ta dùng khái niệmthư mục phầntửbên trong nó : có thểlà file gthưmụcđểchứanhững phầntử ođó, thí dụnhưthưmụcchứacác enhạcưa thích,... mđĩacứng CDROM ) đượctrừu ông gian cây thứbậc Môn : Ngôn ngưJava Slide 33 m, đĩacứng, CDROM,...) đượctrừu gọithưmụcđặcbiệt này là thưmục phầntửcon bên trong, mỗiphầntử thưmụccon nhưng cũng có thểlà hứanhiềuthưmục con hay file... và bậccác thưmụcvàfile. ậndạng từng thưmục. Trong không hái niệmđường dẫn (pathname)để Chương 2 : Thểhiện dữliệu trong máy tính số Thí dụvềhệ Windows Aud config.sys System Fonts i Cây thứbậc của ổc: BộMôn Công nghệphần mềm Khoa Công nghệThông tin Trường ĐH Bách Khoa Tp.HCM System ... win.com arial.ttf ệthống file dioFile VideoFile ... USAFilm VNFilm ChinaFilm Môn : Ngôn ngưJava Slide 34 ... Dòng đời.mpg Chương 2 : Thểhiện dữliệu trong máy tính số Đường dẫn (pathname) là thôngt từ1vị trí nào đó, nó chứadanhs các phầntửmà ta phải điqua xu cần tìm. ta dùng 1 dấungănđặcbiệt để nhau trongđường dẫn(trong Wind Tên thưmụcgốcluônlà. Đường dẫn tuyệt BộMôn Công nghệphần mềm Khoa Công nghệThông tin Trường ĐH Bách Khoa Tp.HCM ụ g Có2kháiniệmđường dẫn:đư tươngđối. Đường dẫntuyệt đối l gốc,đường dẫntươngđốixuất directory). Trướckhi bắt đầuchạy, hệthống ứng dụng (theo cơchếnàođó).T quyềnthayđổithưmục working th tin đểtìm kiếm (xácđịnh) 1 phầntử sách chính xác các tên gợinhớcủa uất phát từvị trí đầuđể đếnphầntử ngăncách 2têngợinhớliên tiếp dows, dấungănlà) đối và tương đối Môn : Ngôn ngưJava Slide 35 ường dẫntuyệt đốivàđường dẫn làđường dẫnxuất phát từthưmục phát từthưmụclàm việc (working gsẽkhởi động thưmụcthực thi cho Trong quá trình thựcthi,ứng dụng có heo yêu cầuriêng tạitừng thời điểm. Chương 2 : Thểhiện dữliệu trong máy tính số Xét cây thứbậccủaổc: trên sl nhậndạng chính xác file arial.ttf tr c:WindowsFontsarial.ttf Nếuthưmục working củachươn ta có thểdùngđường dẫntươngđ arial.ttf Đườngdẫntuyệt đối thườngdàih Đường dẫn tuyệt đ BộMôn Công nghệphần mềm Khoa Công nghệThông tin Trường ĐH Bách Khoa Tp.HCM Đườngdẫntuyệt đối thườngdàih luôn có giá trị bấtchấpứng dụngđ Đường dẫntươngđốithường gọ truy xuấtvìứng dụng sẽthiếtlập các file màứng dụng truy xuất) working cụthể. Trong 1 vài trường hợpđặcbiệt, ngay cảnó dài và phứctạphơnđ lide x, đường dẫntuyệt đốisausẽ rong thưmụcFonts: ng trình hiện là c:WindowsFonts thì đốisauđâyđểxácđịnh file arial.ttf : hơnđườngdẫntươngđối nhưngnó đối và tương đối (tt) Môn : Ngôn ngưJava Slide 36 hơnđườngdẫntươngđối nhưngnó đangởthưmục working nào. ọnhơn(đasốchỉ chứatênfilecần pthưmục working là thưmụcchứa nhưng chỉ có giá trị với1 thưmục ta phảidùngđường dẫntươngđối ường dẫntuyệt đối Chương 2 : Thểhiện dữliệu trong máy tính số Hình dạng và cấutrúc của1hệth người dùng thiếtlậpnhờcác tác tạoxóa file, copymove filethưmục Nhưng trướckhi thựchiện1tácv file : làm hiểnthị cấutrúc củahệth nó dễdàng. Hệthống dùng nhiềucơchếkhác ời dù 1t á hế Quản lý hệ BộMôn Công nghệphần mềm Khoa Công nghệThông tin Trường ĐH Bách Khoa Tp.HCM người dùng.1trong cáccơchếm mỗifile1sốthuộc tính truy xuất, m : Read Only, nếu=1thìhệ xóahiệuchỉnh phầntử. Hidden, nếu=1thìhệthống cácứng dụng duyệtfile. Archiveđượcthiếtlập=1n (phụcvụcho cơchếbackupt ống file của1thiếtbị chứatinsẽdo vụphổbiếnnhư:tạoxóa thưmục, ctừnơi này đếnnơikhác. vụnàođó, ngườidùngthường duyệt ống fileở1dạng nàođóđểquan sát nhauđểbảovệviệctruyxuấtfilebởi àWi d 9 dù là kết h ới ệthống file Môn : Ngôn ngưJava Slide 37 màWindows9xdùnglà kết hợpvới mỗithuộc tínhđượclưutrữtrong 1 bit ệ thống không cho các ứng dụng gsẽdấu không hiểnthị phầntửbởi nếuphầntửbị hiệuchỉnh nộidung tăng dần). Chương 2 : Thểhiện dữliệu trong máy tính số Tấtcảtác vụliên quan đếnhệthố thống file. hệthống sẽcung cấp1ứng dụn thựchiệncáctácvụquảnlýfile.T tiện ích Windows Explorerđểqu Có 3 cách phổbiếnđểchạy1ứng Tiện ích quản l BộMôn Công nghệphần mềm Khoa Công nghệThông tin Trường ĐH Bách Khoa Tp.HCM 1. doubleclickvàoicon miêut (phảitạoiconchương trình tr 2. duyệt ứng dụng từmenuS Explorer 3. vào menu Start.Run, rồinhậ xácđịnh file chương trình và ống fileđượcgọilàtácvụquảnlýhệ ng(tiện ích)đểngườidùngdễdàng Thí dụtrên Windows ta thường dùng ảnlýhệthống file. gdụng (tiệních): ả lý hệthống file Môn : Ngôn ngưJava Slide 38 ảứng dụng trên màn hình desktop rước khi dùng cách chạy này). Start.Programs.Accessories.Windows ậphànglệnh explorer (đường dẫn các tham sốhàng lệnh). Chương 2 : Thểhiện dữliệu trong máy tính số MenuBar chứa tất cả tác vụmà ứng dụng hỗtrợ Toolbar chứa các icon tác vụthường dùng ể Cửa sổcủa WE các p BộMôn Công nghệphần mềm Khoa Công nghệThông tin Trường ĐH Bách Khoa Tp.HCM TreeCtrl hiển thịhệ thống file dạng cây ListCtrl hiển thịcác phần tửtrong thưmục StatusBar Taskbar phần tửgiao diện chính Môn : Ngôn ngưJava Slide 39 Chương 2 : Thểhiện dữliệu trong máy tính số Click vào ô đểthu nhỏnội dung thưmục Click vào ô + đểchi tiết hóa nội dung thư mục. ố ấ Các thao tác duy BộMôn Công nghệphần mềm Khoa Công nghệThông tin Trường ĐH Bách Khoa Tp.HCM Nhưng tốt nhất là doubleclick vào tên thưmục đểchi tiết hóathu nhỏnội dung Click vào tên thưmục đểhiển thịnội dung yệt hệthống file Môn : Ngôn ngưJava Slide 40 Chương 2 : Thểhiện dữliệu trong máy tính số Qui trình chung đểthực hiện tác vụtrên 1 hay nhiều phần tử nào đó là : 1. chọn 1 hay nhiều phần tử cần xửlý. 2. chọn option trong menu hay icon trong toolbar thực Các tác vụ BộMôn Công nghệphần mềm Khoa Công nghệThông tin Trường ĐH Bách Khoa Tp.HCM hay icon trong toolbar thực hiện tác vụmong muốn. Chọn nhiều phần tửliên tiếp : 1. chick vào phần tử đầu, 2. ấn và giửphím Shift, 3. click vào phần tửcuối. 4. thảphím Shift. ụxửlý file Môn : Ngôn ngưJava Slide 41 Chương 2 : Thểhiện dữliệu trong máy tính số Chọn nhiều phần tửrời rạc : 1. chick vào phần tử đầu, 2. ấn và giửphím Ctrl, 3. dời mouse đến từng phần tửcần chọn rồi click vào nó. ề ầ Các tác vụ BộMôn Công nghệphần mềm Khoa Công nghệThông tin Trường ĐH Bách Khoa Tp.HCM 4. lặp lại bước 3 nhiều lần cho nhiều phần tử 5. thảphím Ctrl. ụxửlý file Môn : Ngôn ngưJava Slide 42 Chương 2 : Thểhiện dữliệu trong máy tính số Thường việc tạo file mới được thực hiện bên trong ứng dụng. Qui trình tạo mới 1 thưmụcfile trong WE nhưsau : 1. duyệt cây thưmục trong cửa sổbên trái và chọn thưmục mà Tạo thưmụ BộMôn Công nghệphần mềm Khoa Công nghệThông tin Trường ĐH Bách Khoa Tp.HCM ọ ụ ở đó bạn muốn tạo thưmụcfile mới. 2. chọn menu File.New 3. nếu muốn tạo thư mục, chọn Folder. 4. nếu muốn tạo file, chọn loại file trong danh sách. ụcfile mới Môn : Ngôn ngưJava Slide 43 Chương 2 : Thểhiện dữliệu trong máy tính số Qui trình xóa 1 thưmụcfile trong WE nhưsau : 1. duyệt cây thưmục trong cửa sổbên trái và chọn thưmục mà ở đó bạn muốn xóa thư mụcfile. 2. chọn các phầntửcần Xóa thưmụcfi BộMôn Công nghệphần mềm Khoa Công nghệThông tin Trường ĐH Bách Khoa Tp.HCM 2. chọn các phần tử cần xóa trong ListCtrl bên phải. 3. chọn menu File hay ấn phải chuột vào vịtrí chọn các phần tử để hiển thịmenu các tác vụcó thểthực hiện. 4. chọn option Delete ile đang tồn tại Môn : Ngôn ngưJava Slide 44 Chương 2 : Thểhiện dữliệu trong máy tính số Qui trình copy thưmụcfile trong WE nhưsau : 1. duyệt cây thưmục trong cửa sổbên trái và chọn thưmục mà ở đó bạn muốn copy thư mụcfile. 2. chọn các phầntửcần Copy thưmụcfi BộMôn Công nghệphần mềm Khoa Công nghệThông tin Trường ĐH Bách Khoa Tp.HCM 2. chọn các phần tử cần copy trong ListCtrl bên phải. 3. chọn menu Edit hay ấn phải chuột vào vịtrí chọn các phần tử để hiển thịmenu các tác vụcó thểthực hiện. 4. chọn option Copy le vào clipboard Môn : Ngôn ngưJava Slide 45 Chương 2 : Thểhiện dữliệu trong máy tính số Qui trình dán thưmụcfile từ clipboard vào thưmục chứa nhưsau : 1. duyệt cây thưmục trong cửa sổbên trái và chọn thưmục mà ở đó bạn muốn dán thư mụcfile. Dán thưmụcfi BộMôn Công nghệphần mềm Khoa Công nghệThông tin Trường ĐH Bách Khoa Tp.HCM ụ 2. chọn menu Edit để hiển thịmenu các tác vụcó thểthực hiện. 3. chọn option Paste le từclipboard Môn : Ngôn ngưJava Slide 46 Chương 2 : Thểhiện dữliệu trong máy tính số Việc di chuyển thưmụcfile được thực hiện bởi 3 tác vụ copypastedelete như đã được trình bày. Qui trình move thưmụcfile khác như sau : 1. duyệt cây thưmục trong cửa sổbên trái và chọn thưmụcmàởđóbạn Di chuyển (mov BộMôn Công nghệphần mềm Khoa Công nghệThông tin Trường ĐH Bách Khoa Tp.HCM thư mục mà ở đó bạn muốn copy thưmụcfile. 2. chọn các phần tửcần copy trong ListCtrl bên phải. 3. chọn menu Edit đểhiển thị menu các tác vụcó thể thực hiện. 4. chọn option Move to Folder và xác định thư mục đích. ve) thưmụcfile Môn : Ngôn ngưJava Slide 47 Chương 2 : Thểhiện dữliệu trong máy tính số Qui trình chạy ứng dụng và load file vào bộnhớ để hiệu chỉnh nội dung file nhưsau : 1. duyệt cây thưmục trong cửa sổbên trái và chọn thưmục file cần hiệu chỉnh. 2 chọn file cầnhiệuchỉnh Load file vào bộ n BộMôn Công nghệphần mềm Khoa Công nghệThông tin Trường ĐH Bách Khoa Tp.HCM 2. chọn file cần hiệu chỉnh trong ListCtrl bên phải. 3. ấn phải chuột vào file chọn đểhiển thịmenu các tác vụcó thểthực hiện. 4. chọn option Open with và xác định ứng dụng được dùng đểhiệu chỉnh file. nhớ đểhiệu chỉnh Môn : Ngôn ngưJava Slide 48 Chương 2 : Thểhiện dữliệu trong máy tính số Qui trình làm hiển thịcửa sổ thông tin thưmụcfile như sau : 1. duyệt cây thưmục trong cửa sổbên trái và chọn thưmụcfile cần hiển thị thông tin. 2. chọn thưmụcfile cần hiểnthị thông tin trong Hiển thịcửa sổthôn BộMôn Công nghệphần mềm Khoa Công nghệThông tin Trường ĐH Bách Khoa Tp.HCM hiển thị thông tin trong ListCtrl bên phải. 3. ấn phải chuột vào file chọn đểhiển thịmenu các tác vụcó thểthực hiện. 4. chọn option Properties đểlàm hiển thịcửa sổ thông tin của thư mụcfile tương ứng. ng tin vềfilethưmục Môn : Ngôn ngưJava Slide 49 Chương 2 : Thểhiện dữliệu trong máy tính số Khi cửa sổthông tin của thư mụcfile đã được hiện thị, chọn trang generalVersion đểthấy các thông tin tương ứng. Trang bên phải là trang General. 1. xem các thuộc tính file. 2 nếumuốn thayđổi Xem và hiệu chỉnh thuộ BộMôn Công nghệphần mềm Khoa Công nghệThông tin Trường ĐH Bách Khoa Tp.HCM 2. nếu muốn thay đổi thuộc tính nào đó, ấn chuột vào checkbox tương ứng. Thuộc tính sẽchuyển từkhông thành có hay ngược lại. 3. nếu muốn cập nhật các hiệu chỉnh thì ấn chuột vào button OK. ộc tính filethưmục (tt) Môn : Ngôn ngưJava Slide 50 Chương 2 : Thểhiện dữliệu trong máy tính số MÔN NGÔN Chươ TỔNG QUÁT V BộMôn Công nghệphần mềm Khoa Công nghệThông tin Trường ĐH Bách Khoa Tp.HCM BẰNG JB NNGỮJAVA ơng 3 VỀLẬP TRÌNH Môn : Ngôn ngưJava Slide 51 Ậ BUILDER Chương 3 : Tổng quát vềlập trình JBuilder Cấu trúc của 1 ứng dụng Chương trình = cấu trú ttt module (package) BộMôn Công nghệphần mềm Khoa Công nghệThông tin Trường ĐH Bách Khoa Tp.HCM entry start g được lập trình cấu trúc úc dữliệu + giải thuật global data local data of module Môn : Ngôn ngưJava Slide 52 of module local data of function Chương 3 : Tổng quát vềlập trình JBuilder Xét cấutrúcchương trình cổđiểnc điểm chính sau : 1. rấtkhóđảmbảo tính nhấtquá vì bấtkỳlệnh nào trong hàm nà 2. nếuchương trình cầnđồng thờ thì cơchếlậptrình cấutrúc instance này Từlập trình cấu BộMôn Công nghệphần mềm Khoa Công nghệThông tin Trường ĐH Bách Khoa Tp.HCM instance này. Đểkhắcphục2nhượcđiểm chính trê ta sẽ lậptrìnhtheohướng đối Programming) trongđóchương trình tác nhau (xem slide kếtiếp). Visual Basic là ngôn ngữhỗtrợviệc nữaVBcònlàmôitrường lậptrìnhtrự củaslidetrước, ta thấycó2nhược ánvàđúngđắncủadữliệutoàn cục àocũng có thểtruy xuất chúng. ờinhiều instance của cùng 1 module không cho phép tạotựđộng các utrúc đến OOP Môn : Ngôn ngưJava Slide 53 ên(và bổsung nhiềuưuđiểm khác), tượng (OOP Object Oriented hlà 1 tậpcácđốitượng sống tương lậptrình theohướngđốitượng, hơn ực quan (visual) nên rấtdễdùng. Chương 3 : Tổng quát vềlập trình JBuilder Chương trình = tập các đ entry đối tượng (object) Cấu trúc của 1 BộMôn Công nghệphần mềm Khoa Công nghệThông tin Trường ĐH Bách Khoa Tp.HCM entry đối tượng tương tác nhau local data of object ứng dụng OOP Môn : Ngôn ngưJava Slide 54 of object local data of operation Chương 3 : Tổng quát vềlập trình JBuilder Đối tượng ~Mô hìnhđốitượng quan niệmchương và tương tác với nhau. ~Đốitượng bao gồmnhiều thành phần thuộctính(attribute) : mang 1 giá tác vụ(operation) : thựchiện1 cô BộMôn Công nghệphần mềm Khoa Công nghệThông tin Trường ĐH Bách Khoa Tp.HCM Interface (abstract type) g(Object) gtrình bao gồmcácđốitượng sinh sống ,mỗi thành phầnthuộc1trong2 loại: átrị nhấtđịnh tạitừng thời điểm. ông việcnàođó. Implementation (class) Môn : Ngôn ngưJava Slide 55 Chương 3 : Tổng quát vềlập trình JBuilder Kiểu trừu tượng ~Abstract type(type)định nghĩain ~Interface là tậphợp các entrym tượng. ~Dùngsignatuređể định nghĩamỗ tênmethod (operation, functio danh sách tham sốhình thứ th ộ tí h tê t à hiề BộMôn Công nghệphần mềm Khoa Công nghệThông tin Trường ĐH Bách Khoa Tp.HCM thuộctính:tên,type vàchiều đặctảchứcnăngcủamethod ~Dùng abstract type (chứkhôngp thuộc tính, tham sốhình thức. ~User không cầnquan tâmđến tượng. g(Abstract type) terface sửdụngđốitượng. mà bên ngoài có thểgiao tiếpvới đối ỗi entry. Signature gồm: on) ức, mỗithamsốđượcđặctảbởi3 di h ể (IN OUTINOUT) Môn : Ngôn ngưJava Slide 56 dichuyển(IN, OUT, INOUT). d(thườngởdạng chú thích). phải class) để đặctảkiểu cho biến, class (hiệnthựccụthể)củađối Chương 3 : Tổng quát vềlập trình JBuilder Class (Imple ~Class định nghĩa chi tiết hiện t định nghĩa các thuộc tính d tính xác định trạng thái của kiểu của thuộc tính có thể l ký tự, chuỗi ký tự,...) hay a sau thuộc tính chứa tham k BộMôn Công nghệphần mềm Khoa Công nghệThông tin Trường ĐH Bách Khoa Tp.HCM sau thuộc tính chứa tham k coding các method và các ~Định nghĩa các method tạo và ~Định nghĩa các method constr ~User không cần quan tâm đến ementation) thực đối tượng : dữliệu : giá trịcủa tất cảthuộc a đối tượng. là type cổ điển (sốnguyên, thực, abstract type, trong trường hợp khảođếnđốitượng khác Môn : Ngôn ngưJava Slide 57 khảo đến đối tượng khác. internal function. àxóa đối tượng. ructor và destructor. nclass của đối tượng. Chương 3 : Tổng quát vềlập trình JBuilder Tính bao đóng ( ~Baođóng : che dấumọich không cho bên ngoài thấyvàt cao giữacácđốitượng (hayt đốitượng rấtthấp), nhờđódễ che dấucácthuộctínhdữ 1thuộc tính, ta tạo2met BộMôn Công nghệphần mềm Khoa Công nghệThông tin Trường ĐH Bách Khoa Tp.HCM sát việctruyxuấtvà chedấ che dấuchitiếthiệnthựcc che dấu các internal functi (encapsulation) hitiếthiệnthựccủađốitượng, truy xuất ⇒đảmbảo tínhđộclập tính kết dính cohesion giữacác ễbảotrì,pháttriểnứng dụng : liệu:nếucần cho phép truy xuất thod getset tươngứngđểgiám Môn : Ngôn ngưJava Slide 58 ấuchitiếthiệnthực bên trong. các method. on và sựhiệnthựccủa chúng. Chương 3 : Tổng quát vềlập trình JBuilder Tính thừa kế ~Viết1ứng dụng OOP làđịn đốitượng cấu thànhứng dụn ~Tính thừakế cho phép gi typeclass : ta có thểđịnh ngh đầumà bằng cách kếthừac nghĩa thêm các chi tiếtmới m Đathừakếhayđơnthừa BộMôn Công nghệphần mềm Khoa Công nghệThông tin Trường ĐH Bách Khoa Tp.HCM Đathừakếhayđơnthừa Mốiquan hệsupertypesu có thểoverride sựhiệnt kếtquảoverride chỉ có tá class con. Đốitượng của class conc cha nhưng ngượclạithìk (inheritance) nhnghĩa các typeclass củacác g. ảmnhẹ công sức định nghĩa hĩa các typeclass không phảitừ các typeclass có sẵn, ta chỉđịnh màthôi(thường khá ít). kế Môn : Ngôn ngưJava Slide 59 kế. btype và superclasssubclass. thựccácmethodcủa class cha, ácdụng trên cácđốitượng của cóthểđóngvai tròcủađốitượng hôngđúng. Chương 3 : Tổng quát vềlập trình JBuilder Tính bao gộp 1 đối tượng có thểchứa nhiều hệbao gộp 1 cách đệqui giữa Có 2 góc nhìn vềtính bao gộp Góc nhìn ngữnghĩa BộMôn Công nghệphần mềm Khoa Công nghệThông tin Trường ĐH Bách Khoa Tp.HCM O1 O2 O3 O O4 O5 (aggregation) u đối tượng khác nhờmối quan acác đối tượng. : ngữnghĩa và hiện thực. Góc nhìn hiện thực O Môn : Ngôn ngưJava Slide 60 O1 O2 O3 O4 O5 Chương 3 : Tổng quát vềlập trình JBuilder Thông điệp ~Thông điệp là 1 phép gọi tác v khảo. ~Thông điệp bao gồm 3 phần : tham khảođến đối tượng đ tên tác vụ muốn gọi. danh sách tham số thực cầ BộMôn Công nghệphần mềm Khoa Công nghệThông tin Trường ĐH Bách Khoa Tp.HCM danh sách tham số thực cầ tác vụ. ví dụ: aCircle.Draw (pWnd truy xuất thuộc tính trong in aCircle.Radius = 10 ≡ aC r = aCircle.Radius ≡ r = ~Thông điệp là phương tiện gia giữa các đối tượng. p(Message) vụcủa 1 đối tượng từ1 tham đích. ần truyền theo (haynhận về từ) Môn : Ngôn ngưJava Slide 61 ần truyền theo (hay nhận về từ) d) nterface : Circle.SetRadius(10); =aCircle.GetRadius(); ao tiếp (hay tương tác) duy nhất Chương 3 : Tổng quát vềlập trình JBuilder Xem lạislide9miêutảqui trình tổn quyết1 vấnđềngoàiđời, ta th phần chính : 1. giao diệnngười dùng :là tác vớichương trìnhđểnhậ sát hoạt động củachương dùnglà tậpcácđốitượngg Hai thành phần chí BộMôn Công nghệphần mềm Khoa Công nghệThông tin Trường ĐH Bách Khoa Tp.HCM g ập ợgg nhiềuđốitượng nhỏhơnn listbox, treeview... 2. giảithuậtxửlý bên trong cácđốitượng giao diệnvà Mỗi method là danh sách cá đểmiêu tảgiảithuậtmà met ng quát củaviệcdùngmáytínhgiải hấy1ứng dụng gồm2phần thành phương tiệncho ngườidùngtương ậpxuấtdữliệu,để điềukhiểngiảm trình. Trong OOP, giao diệnngười giao diệnnhưform, mỗiformchứa nh của 1 ứng dụng Môn : Ngôn ngưJava Slide 62 g ệ , nhưmenu, toolbar, button, textedit, : đượcthểhiệnbởi các method của cácđốitượng bên trongứng dụng. áclệnh thựcthi(cấutrúcđiềukhiển) thod thựchiện. Chương 3 : Tổng quát vềlập trình JBuilder Định nghĩacácđốitượng giao diện 1công việcrấtkhókhănvàtốnnhiề Đểgiảmnhẹcông sứcđịnh nghĩa trường lậptrình trực quan (visual)đ thường dùng và cung cấpcôngcụđ giao diệncủaứng dụng bằng cácht sẵnnày:ngườilậptrìnhđóng va ể ầ Thiết kếtrực quan các BộMôn Công nghệphần mềm Khoa Công nghệThông tin Trường ĐH Bách Khoa Tp.HCM thướcdi chuyểnvị trí các phầntửgi Ngoài ra môi trường trực quan còn đốitượng giao diệnmới(ActiveXC đượcviếtsauđó. Qui trình tạoviết ứ là viết ứng dụng bằng cách lắpghé nhưviệclắp máy tính từcác linh kiệ keyboard, monitor,... bằng cách viếtcodetường minh là ucôngsức, thời gian. cácđốitượng giao diện, các môi đãviếtsẵn1sốđốitượng giao diện đểngườilậptrình thiếtkếtrựcquan tích hợpcácđốitượng giao diệncó aitròhọasĩđểvẽhiệuchỉnh kích ầ c đối tượng giao diện Môn : Ngôn ngưJava Slide 63 ao diệncầnchoứng dụng. cho phép ngườilậptrìnhtựtạocác ontrol)đểdùng trong cácứng dụng ứng dụng theo cơchếnàyđượcgọi p các linh kiệnphầnmềm, nó giống ệnphầncứng nhưCPU, RAM, disk, Chương 3 : Tổng quát vềlập trình JBuilder Control buttons Window ≡Form, Dialogbox Title bar Editbox Các đối tượng giao BộMôn Công nghệphần mềm Khoa Công nghệThông tin Trường ĐH Bách Khoa Tp.HCM Button diện có trong VC++ Môn : Ngôn ngưJava Slide 64 Chương 3 : Tổng quát vềlập trình JBuilder Static text DriveListBox Combobox ≡ Editbox + ListBox Các đối tượng giao d BộMôn Công nghệphần mềm Khoa Công nghệThông tin Trường ĐH Bách Khoa Tp.HCM Tree Control ListBox Picture iện có trong VC++ (tt) Môn : Ngôn ngưJava Slide 65 Chương 3 : Tổng quát vềlập trình JBuilder Group Box Radio Button Các đối tượng giao d BộMôn Công nghệphần mềm Khoa Công nghệThông tin Trường ĐH Bách Khoa Tp.HCM Checkbox iện có trong VC++ (tt) Môn : Ngôn ngưJava Slide 66 Chương 3 : Tổng quát vềlập trình JBuilder MenuBar Toolbar Button Popup Menu Các đối tượng giao d BộMôn Công nghệphần mềm Khoa Công nghệThông tin Trường ĐH Bách Khoa Tp.HCM 1 window chứa 1 document của ứng dụng StatusBar iện có trong VC++ (tt) Môn : Ngôn ngưJava Slide 67 Chương 3 : Tổng quát vềlập trình JBuilder Đốitượng giao diệncónhững tính ch ngoài ra chúng còn có 1 sốđặcđiểm Đốitượng giao diệncũngđượccấuth và tác vụ. Mỗi đốitượng giao diệnchứakhán loạitrạng thái khác nhau : các thuộc tính xácđịnh vị trí và kíc Các tính chất chung của BộMôn Công nghệphần mềm Khoa Công nghệThông tin Trường ĐH Bách Khoa Tp.HCM các thuộc tính xác định tính BackColor,... các thuộc tính xácđịnh hành vi :E ... hấtgiống nhưđốitượng bình thường, riêng. hành từ2loại thành phần:thuộc tính nhiềuthuộctínhliênquanđếnnhiều chthước : Left, Top, Height, Width... ấ ể các đối tượng giao diện Môn : Ngôn ngưJava Slide 68 chấthiểnthị : Caption, Picture, Enable, ... Chương 3 : Tổng quát vềlập trình JBuilder Khi tạotrựcquan1đốitượng giao diệ cho các thuộc tính, thường ta chỉ cần đượcyêu cầuriêng.Có2cáchđểhiệ 1. trực quan thông qua cửasổthuộ 2. lập trình truy xuấtthuộc tính của Hiệu chỉnh thuộc tính c diệ BộMôn Công nghệphần mềm Khoa Công nghệThông tin Trường ĐH Bách Khoa Tp.HCM ện, môi trườngđãgángiátrị banđầu nthay đổi1vàithuộc tính làđápứng ệuchỉnh giá trị 1thuộc tính : ộc tính củađốitượng giao diện. đốitượng giao diện. của các đối tượng giao ện Môn : Ngôn ngưJava Slide 69 Chương 3 : Tổng quát vềlập trình JBuilder Mỗi đốitượng giao diệncókhánhiềutá là hàm xửlý biếncốvì cơchếgọihàm ứng dụng thông qua sựtương tác trựct khởihàm xửlý tươngứng chạy. Biến cốHàm Thí dụ khi ta ấnchuột vào button tên IDC_C, hệthống tạorabiếncố ể BộMôn Công nghệphần mềm Khoa Công nghệThông tin Trường ĐH Bách Khoa Tp.HCM BN_CLICKED để kích khởihàm OnC()chạy. ácvụ(method), hầuhết chúng đượcgọi mnày chủyếulà trựctiếptừngười dùng tiếpvới đốitượng, từđótạobiếncốkích mxửlý biến cố Môn : Ngôn ngưJava Slide 70 Chương 3 : Tổng quát vềlập trình JBuilder 1. chọnmenu View.ClassWizard để hiễnthị cửasổcode. 2. chọn tên class sẽchứa hàm xửlý biếncố. 3. chọnbiếncố cầntạo Cách tạo hàm xửlý b Qui trình tổng quát củaviệctạohàmxửl là dùng ClassWizard : BộMôn Công nghệphần mềm Khoa Công nghệThông tin Trường ĐH Bách Khoa Tp.HCM hàm xửlý trong danh sách Objects IDs, chọn biếncốtươngứng rồi ấn button Add function. 4. sửdụng kiếnthứcvề giảithuật cú pháp ngôn ngữVC++đểviết code cho hàm xửlý. biến cốcủa đối tượng lýcho1biếncốnàođócủa1đốitượng Môn : Ngôn ngưJava Slide 71 Chương 3 : Tổng quát vềlập trình JBuilder 1. Trướchếtphảinắmbắtyêucầuphầ ứng dụng phảicungcấp cho người 2. Phân tích sơlượctừng chứcnăng thành chứcnăng tươngứng. 3. Thiếtkếchi tiết các class phân tích cũng nhưphát họagiảithuậtcủatừ 4. Hiệnthựcphầnmềmbằng VC++ gồ ế ế Tổng kết qui trình viết 1 BộMôn Công nghệphần mềm Khoa Công nghệThông tin Trường ĐH Bách Khoa Tp.HCM 1. thiếtkếtrựcquan cácformg nhiềuphầntửgiao diện, các ph khôngtaphảitạothêm1sốđối Ứng vớimỗiphầntửgiao diện 1sốthuộc tính cầnthiết. 2. tạobiếnkếthợpvớiphầntửg 3. tạohàmxửlý biếncốcho các diệnrồiviếtcodechotừng hàm ầnmềmđểxácđịnh các chứcnăng mà dùng. gvà phát họa các class phân tích cấu :xácđịnh các thuộctínhvàcác tácvụ ng tác vụ. ồm3công việc chính : ỗ 1 ứng dụng bằng VC++ Môn : Ngôn ngưJava Slide 72 giao diệnngườidùng:mỗiformchứa hầntửgiao diệnthườngđãcósẵn, nếu tượng giao diệnmới(ActiveX Control). vừatạo ra, nên thiếtlậpgiátrịđầucho giao diệnđểtruy xuấtnótừlập trình. cbiếncốcầnthiếtcủacác phầntửgiao xửlý biếncốvừatạora. Chương 3 : Tổng quát vềlập trình JBuilder Chươ QUI TRÌNH THIẾT MÔN NGÔN BộMôn Công nghệphần mềm Khoa Công nghệThông tin Trường ĐH Bách Khoa Tp.HCM GIAO DIỆN CỦA Ứ JBUIL ơng 4 TKẾTRỰC QUAN NNGỮJAVA Môn : Ngôn ngưJava Slide 73 Ự ỨNG DỤNG BẰNG LDER Chương 4: Qui trình thiết kếtrực quan giao diện của ứng dụng Thí dụlậ Bài tập này cho phép bạn làm quen với qui trình viết 1 chương trình Java bằng JBuilder. Thí dụviết 1 trình Calculator đơn giản có giao diện (i diệ ủ BộMôn Công nghệphần mềm Khoa Công nghệThông tin Trường ĐH Bách Khoa Tp.HCM sau (giao diện của tiện ích Calculator trong Windows ở chế độStandard) : ập trình Môn : Ngôn ngưJava Slide 74 Chương 4: Qui trình thiết kếtrực quan giao diện của ứng dụng Thí dụlậ Với các chi tiết menu nhưsau : BộMôn Công nghệphần mềm Khoa Công nghệThông tin Trường ĐH Bách Khoa Tp.HCM ập trình Môn : Ngôn ngưJava Slide 75 Chương 4: Qui trình thiết kếtrực quan giao diện của ứng dụng DựÁn (Project) Ứn 1ứng dụng javađượccấu thành từn Các phầntửgiao diện Các file code .java miêu tảsựh Cácđốitượng khác nhưcác pa được dùng cho giao diện,... Đểquảnlý ứngdụngđượcdễdàn BộMôn Công nghệphần mềm Khoa Công nghệThông tin Trường ĐH Bách Khoa Tp.HCM Đểquảnlý ứngdụngđượcdễdàn (Project). Dựánlà1câythứbậccá ứng dụng là qui trình tạodựán, thêm dựán. Thao tácđểthựchiệncác tácvụtrên biếttrênhệthống file thứbậccủamá ng Dụng (Application) nhiềuđốitượng thuộcnhiềuloại: hiệnthựccủa các class. ackageđượcdùnglại, các tài nguyên ngta sửdụngphươngtiệnDựán Môn : Ngôn ngưJava Slide 76 ngta sửdụngphươngtiện Dựán ácphầntửcấu thànhứng dụng. Viết mbớt, hiệuchỉnh từng phầntửtrong nkhá giống với các thao tác mà ta đã áy tính. Chương 4: Qui trình thiết kếtrực quan giao diện của ứng dụng Khởi động JBuilder là 1ứng dụng nhưbaoứngd trongWindows,tacónhiều cách khác chọnmenuStart.Programs. Trial.Borland JBuilder 7 Enterp Ấn kép chuột vào icon shortcut (ta phảitạotrứciconshortcutnà chọn menu Start.Run,rồi nhập h BộMôn Công nghệphần mềm Khoa Công nghệThông tin Trường ĐH Bách Khoa Tp.HCM ọ , ập c:JBuilder7inJBuilderW.exe dùng trình quảnlýhệthống file chương trình JBuilder (thí dụ chương trình JBuilderW.exe. Sau khi JBuilderWđượckhởi động,t sau: gJBuilder dụng khác.Đểkhởi động 1ứng dụng cnhau : Borland JBuilder 7 Enterprise prise Trial. của JBuilder trên màn hình desktop ày). hànglệnh chạy ứngdụng,thí dụnhư Môn : Ngôn ngưJava Slide 77 gệ ạy g ụg, ụ . eWE, duyệt đếnthưmụcchứafile ụ c:JBuilder7in), ấnképvàofile tathường thấycửasổmànhìnhnhư Chương 4: Qui trình thiết kếtrực quan giao diện của ứng dụng Cửa sổkhởi đ BộMôn Công nghệphần mềm Khoa Công nghệThông tin Trường ĐH Bách Khoa Tp.HCM động JBuilder Môn : Ngôn ngưJava Slide 78 Chương 4: Qui trình thiết kếtrực quan giao diện của ứng dụng Tạo mớ Chọnmenu File.New Project, cửasổbên phải hiệnra. Nhậptêndựán phầnmềmvào textbox Name. Bạncó thểthay BộMôn Công nghệphần mềm Khoa Công nghệThông tin Trường ĐH Bách Khoa Tp.HCM Bạncó thểthay đổicác thông số khác trong cửa sổđếnlúc vừaý thì ấn button Next để đến Step 2. ới dựán Môn : Ngôn ngưJava Slide 79 Chương 4: Qui trình thiết kếtrực quan giao diện của ứng dụng Tạo mới d Trong cửa sổStep 2 of 3, bạn có thể thay đổi các thông sốtheo ý muốn rồi ấn button Next để đi tiếp Step 3. BộMôn Công nghệphần mềm Khoa Công nghệThông tin Trường ĐH Bách Khoa Tp.HCM dựán (tt) Môn : Ngôn ngưJava Slide 80 Chương 4: Qui trình thiết kếtrực quan giao diện của ứng dụng Tạo mới d Trong cửa sổStep 3 of 3, bạn có thể thay đổi các thông sốtheo ý muốn rồi ấn button Finish để kết thúc qui trình Project Wizard. BộMôn Công nghệphần mềm Khoa Công nghệThông tin Trường ĐH Bách Khoa Tp.HCM dựán (tt) Môn : Ngôn ngưJava Slide 81 Chương 4: Qui trình thiết kếtrực quan giao diện của ứng dụng Tạo mới d Màn hình JBuilder sau khi kết thúc Project Wizard BộMôn Công nghệphần mềm Khoa Công nghệThông tin Trường ĐH Bách Khoa Tp.HCM dựán (tt) Môn : Ngôn ngưJava Slide 82 Chương 4: Qui trình thiết kếtrực quan giao diện của ứng dụng Tạo mới ứng dụ Chọnmenu File.New, cửasổ bên phảihiệnra. Chọntab General, chọn icon Application đểtạomới1ứng dụng rồi ấn BộMôn Công nghệphần mềm Khoa Công nghệThông tin Trường ĐH Bách Khoa Tp.HCM ụ g button OK. ng trong Project Môn : Ngôn ngưJava Slide 83 Chương 4: Qui trình thiết kếtrực quan giao diện của ứng dụng Tạo mới ứng dụng Nhậptên package chứa các class của ứng dụng. Nhập tên class miêu tảđối tượngứng dụng. Bạncó thểthay BộMôn Công nghệphần mềm Khoa Công nghệThông tin Trường ĐH Bách Khoa Tp.HCM Bạncó thểthay đổicác thông số khác trong cửa sổđếnlúc vừaý thì ấn button Next để đến Step 2. gtrong Project (tt) Môn : Ngôn ngưJava Slide 84 Chương 4: Qui trình thiết kếtrực quan giao diện của ứng dụng Tạo mới ứng dụng Nhập tên class miêu tả frame giao diện ứng dụng. Nhậptiêu đề củaframe này. Bạncó thểchọn các option cần BộMôn Công nghệphần mềm Khoa Công nghệThông tin Trường ĐH Bách Khoa Tp.HCM p thiết(thídụ menu bar, About Dialog,..). Khi vừaý thìấn button Next để đếnStep3. gtrong Project (tt) Môn : Ngôn ngưJava Slide 85 Chương 4: Qui trình thiết kếtrực quan giao diện của ứng dụng Tạo mới ứng dụng Trong bước này, bạnthường chỉ cần ấn button Finish để hoàn thành qui trình Application Wizard. BộMôn Công nghệphần mềm Khoa Công nghệThông tin Trường ĐH Bách Khoa Tp.HCM gtrong Project (tt) Môn : Ngôn ngưJava Slide 86 Chương 4: Qui trình thiết kếtrực quan giao diện của ứng dụng Màn hình JBuilder sau khi kết thúc Application Wizard Tạo mới ứng dụng BộMôn Công nghệphần mềm Khoa Công nghệThông tin Trường ĐH Bách Khoa Tp.HCM gtrong Project (tt) Môn : Ngôn ngưJava Slide 87 Chương 4: Qui trình thiết kếtrực quan giao diện của ứng dụng Thiết kếtrực q Chọn tab Design để chuyển cửa sổlàm việc vềchế độ thiết kếgiao diện như hình bên. BộMôn Công nghệphần mềm Khoa Công nghệThông tin Trường ĐH Bách Khoa Tp.HCM quan giao diện Môn : Ngôn ngưJava Slide 88 Chương 4: Qui trình thiết kếtrực quan giao diện của ứng dụng Thiết kếtrực qu Đểtựdo bốtrí các phần tử giao diện, bạn chọn phần tử contentPane trong cửa sổ cây các phần tửgiao diện ể
MÔN NGÔ N Chư ơ PHƯƠNG PHÁP GI Ả Bộ Môn Công nghệ phần mềm Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM BẰNG MÁ Y N NGỮ JAVA ơ ng 1 Ả I QUYẾT BÀI TOÁN Môn : Ngôn ngư Java Slide 1 Y TÍNH SỐ Chương 1: Phương pháp giải quyết bài toán bằng máy tính số Máy tính số là thiếtbị có thể thực h bản(tậplệnh), cơ chế thựchiện c đếnlệnh cuối cùng. Danh sách c á là chương trình. Các lệnh mà máy hiểuvàthực h dùng ngôn ngữđểmiêu tả các lệ n yếu tố : cú pháp và ngữ nghĩa . C Các khái niệm cơ b Bộ Môn Công nghệ phần mềm Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM yếu tố : cú pháp và ngữ nghĩa . C phầntửđểcấu thành 1 lệnh (câu) lệnh đó. Bấtkỳ công việc (bài toán ) ngoài đ trình tự nhiềucôngviệcnhỏ hơn. T gọilàgiảithuậtgiải quyếtcôngvi ệ cũng có thểđượcchianhỏ hơn n đượcmiêutả bằng 1 trình tự các l ệ h iện1số hữuhạncácchứcnăng cơ c ác lệnh là tựđộng từ lệnh đầucho á clệnh đượcthựchiệnnàyđượcgọi h iện được đượcgọilàlệnh máy.Ta n h. Ngôn ngữ lậptrìnhcấu thành từ 2 Cú pháp qui định trật tự kết hợp các b ản về máy tính số Môn : Ngôn ngư Java Slide 2 Cú pháp qui định trật tự kết hợp các , còn ngữ nghĩachobiếtýnghĩacủa đ ờinàocũng có thểđược chia thành T rình tự các công việcnhỏ này được ệ c ngoài đời. Mỗicôngviệcnhỏ hơn n ữa, ⇒ công việc ngoài đờicóthể ệ nh máy (chương trình). Chương 1: Phương pháp giải quyết bài toán bằng máy tính số vấn đề mấuchốtcủaviệcdùngm á là lậptrình(đượchiểu nôm na là lệnh máy để thể hiệncôngviệc). củaconngười (vớisự trợ giúp ng à Với công nghệ phầncứng hiệnn a mà tậplệnh máy rấtsơ khai, mỗi l việcrấtnhỏ và đơngiản ⇒ công ới tì h t ất lớ (hà tiệ ) á Các khái niệm cơ b ả Bộ Môn Công nghệ phần mềm Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM v ới t r ì n h t ự r ất lớ n (hà ng t r iệ u ) c á ngữ máy rấtphứctạp, tốnnhiều bảo trì, phát triển. Ta muốncómáyluậnlývớitập l trình) cao cấpvàgầngủihơnvới này bằng 1 máy vậtlý+1chươn trình phân giải (interpreter). á y tính giải quyếtcôngviệc ngoài đời qui trình xác định trình tựđúng các Cho đếnnay,lập trình là công việc à y càng nhiềucủa máy tính). a y, ta chỉ có thể chế tạo các máy tính l ệnh máy chỉ có thể thựchiện1công việc ngoài đờithường tương đương á lệ h á Lậ tì h bằ ô ả n về máy tính số (tt) Môn : Ngôn ngư Java Slide 3 á c lệ n h m á y ⇒ Lậ p t r ì n h bằ ng ng ô n thời gian, công sức, kếtquả rấtkhó l ệnh (được đặctả bởingônngữ lập con người. Ta thường hiệnthựcmáy gtrìnhdịch (compiler) hay 1 chương Chương 1: Phương pháp giải quyết bài toán bằng máy tính số Gọingônngữ máy vậtlýlàN 0 . ngôn ngữ N 0 sẽ nhận đầuvàolà ngữ N 1 , phân tích từng lệnh N 1 r ồ ngôn ngữ N 0 có chứcnăng tươ n ngôn ngữ N 1 sang N 0 dễ dàng, đ ộ N 1 khôngquácaosovớitừng lện h Sau khi có máy luậnlýhiểu đượ c Các khái niệm cơ b ả Bộ Môn Công nghệ phần mềm Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM nghĩavàhiệnthựcmáyluậnlýN 2 có 1 máy luậnlýhiểu đượcngô n dễ dàng miêu tả giảithuậtcủabài Nhưng qui trình trên chưacóđiể m và kiếnthức ngày càng nhiều, n ngôn ngữ mớivớitậplệnh ngày c miêu tả giảithuậtcàngdễ dàng, g Trìnhbiêndịch ngôn ngữ N 1 sang chương trình đượcviếtbằng ngôn ồ ichuyển thành danh sách các lệnh n g đương. Để chương trình dịch từ ộ phứctạpcủatừng lệnh ngôn ngữ h ngôn ngữ N 0 . c ngôn ngữ luậnlýN 1 ,tacóthểđịnh ả n về máy tính số (tt) Môn : Ngôn ngư Java Slide 4 1 theo cách trên và tiếptục đếnkhita n ngữ N m rấtgầngủivớiconngười, toán cầngiải quyết m dừng, vớiyêucầu ngày càng cao n gườitatiếptục định nghĩanhững c àng gầngủihơnvớiconngười để ọnnhẹ và trong sáng hơn. Chương 1: Phương pháp giải quyết bài toán bằng máy tính số Ngôn ngữ máy vậtlýlàloạingô n bình thường có thể dùng được. C miêu tả bởicácsố binary (hay hex a máy vậtlýcóthể hiểutrựctiếp, n khăntrongviệcviếtvàbảotrìchư ơ Ngôn ngữ assembly rấtgầnvới n nhấtcủangônngữ assembly tư ơ biểu diễn dưới dạng gợi nhớ Ngoà Các cấp độ n g Bộ Môn Công nghệ phần mềm Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM biểu diễn dưới dạng gợi nhớ . Ngoà niệm"lệnh macro" để nâng sứcm ạ Ngôn ngữ cấp cao theo trường ph á Tậplệnh củangônngữ này khá bình thường. Ngôn ngữ hướng đốitượng như C phương pháp cấutrúcchương trì phát triểnvàthaythế linh kiện. n ngữ thấpnhấtmàngườilậptrình C ác lệnh và tham số củalệnh được a decimal). Đây là loạingônngữ máy n hưng con ngườithìgặpnhiềukhó ơ ng trình. n gôn ngữ máy, những lệnh cơ bản ơ ng ứng vớilệnh máy nhưng được ài ra người ta tăng cường thêm khái g ôn ngữ lập trình Môn : Ngôn ngư Java Slide 5 ài ra , người ta tăng cường thêm khái ạ nh miêu tả giảithuật. á ilậptrìnhcấutrúcnhư Pascal, C, mạnh và gầnvớitư duy củangười ++, Visual Basic, Java, C#, cảitiến nh sao cho trong sáng, ổn định, dễ Chương 1: Phương pháp giải quyết bài toán bằng máy tính số Các lệnh củachương trình (code ) tin (dữ liệu). Chương trình giải quyết bài toán n khác nhau với tính chấtrất đad ạ cần 3 thông tin về dữ liệu đó: - tên nhậndạng (identifier) xác - kiểu dữ liệu (type) miêu tả cấu Dữ liệu của c Bộ Môn Công nghệ phần mềm Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM - kiểu dữ liệu (type) miêu tả cấu - tầmvựctruyxuất (visibility) nào) truy xuấtdữ liệu. Chương trình cổđiển=dữ liệu+ g Chương trình con (function, sub r chứcnăng được dùng nhiềulần ở cho phép cấutrúcchương trình, s ) sẽ tham khảohoặcxử lý (truy xuất) n ào đócóthể truy xuấtnhiềudữ liệu ạ ng. Để truy xuất1dữ liệucụ thể,ta định vị trí củadữ liệu. u trúc của dữ liệu c hương trình Môn : Ngôn ngư Java Slide 6 u trúc của dữ liệu . miêu tả phạm vi khách hàng (lệnh g iảithuật. r outine, ) là 1 đoạncodethể hiện ở nhiềuvị trí trong chương trình, nó ử dụng lại code Chương 1: Phương pháp giải quyết bài toán bằng máy tính số Chương trình = cấu trú t'tt' module (package) Cấu trúc 1 chư ơ Bộ Môn Công nghệ phần mềm Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM en t ry ' s t ar t' c dữ liệu + giải thuật global data local data of module ơ ng trình c ổ đi ể n Môn : Ngôn ngư Java Slide 7 of module local data of function Chương 1: Phương pháp giải quyết bài toán bằng máy tính số Bộ nhớ (Memory) Đ ơn vị x (CPU chứa code và data đang thực thi thực thi từn của chươn g Mô hình máy tính Bộ Môn Công nghệ phần mềm Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM (Memory) (CPU Bus gi a x ử lý ) Các thiết bị vào ra (I/O) g lệnh g trình giao tiếp với bên ngoài (thường là người) để nhập/xuất tin số Von Neumann Môn : Ngôn ngư Java Slide 8 ) vào ra (I/O) a o tiếp Chương 1: Phương pháp giải quyết bài toán bằng máy tính số Dữ liệu cần xử lý bằng máy tính (chữ số, hình ảnh, âm thanh, ) Qui trình tổn g quát để g iải qu y Bộ Môn Công nghệ phần mềm Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Xử lý d dạng c Mã hóa dữ liệu thành dạng chuỗi bit Giảiãhỗi Kết quả có được sau khi xử lý bằng máy tính (chữ số, hình ảnh, âm thanh, ) y ết bài toán bằn g má y tính số Môn : Ngôn ngư Java Slide 9 Giải m ã c h u ỗi bit ra dạng người, thiết bị ngoài hiểu được d ữ liệu huỗi bit Chương 1: Phương pháp giải quyết bài toán bằng máy tính số Trong quá khứ,phương pháp thườ n phương pháp từ-trên-xuống (top-dow Nộidungcủaphương pháp này là x é đóthìcầnphảilàmnhững công việc n tìm đượclại được phân thành những cho đến khi những công việcphảilà m có thể th ự chi ệ ndễ dàn g . Phương pháp phân Bộ Môn Công nghệ phần mềm Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM ự ệ g Thí dụ việchọclấybằng kỹ sư CNT T bao gồm9côngviệcnhỏ hơnlàhọ c là họcnmônhọccủahọckỳđó, h ọ môn đó, Hình vẽ củaslidekế cho thấytrựcqu a n gsử dụng để phân tích bài toán là n analysis). é txem,muốngiải quyếtvấn đề nào n hỏ hơnnào.Mỗicôngviệcnhỏ hơn công việcnhỏ hơnnữa, cứ như vậy m là những công việcthật đơngiản, tích t ừ -trên-xuống Môn : Ngôn ngư Java Slide 10 T khoa CNTT ĐHBK TP.HCM có thể c từng họckỳ từ 1tới9,họchọckỳ i ọ c1mônhọclàhọcmchương của a ncủaviệc phân tích top-down. Chương 1: Phương pháp giải quyết bài toán bằng máy tính số Công v i giải qu y Công việc A 1 Công v A 2 Phương pháp phân t í Bộ Môn Công nghệ phần mềm Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Công việc A 11 Công việc A 12 Công việc A 1n i ệc cần y ết (A) v iệc Công việc A n í ch t ừ -trên-xuống (tt) Môn : Ngôn ngư Java Slide 11 Công việc A n1 Công việc A n2 Công việc A nn Chương 1: Phương pháp giải quyết bài toán bằng máy tính số Công việc c ầ ≡ đối tượng Đối tượng A 1 Đ ối t ư A Phương pháp phân t í Bộ Môn Công nghệ phần mềm Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Đối tượng A 11 Đối tượng A 12 Đối tượng A 1n . ầ n giải quyết phức hợpA ư ợng A 2 Đối tượng A n í ch t ừ -trên-xuống (tt) Môn : Ngôn ngư Java Slide 12 Đối tượng A n1 Đối tượng A n2 Đối tượng A nn . Chương 1: Phương pháp giải quyết bài toán bằng máy tính số MÔN NGÔ N Chư ơ TH Ể HI ỆN Bộ Môn Công nghệ phần mềm Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Ệ TRONG M Á N NGỮ JAVA ơ ng 2 N DỮ LI Ệ U Môn : Ngôn ngư Java Slide 13 Ệ Á Y TÍNH SỐ Chương 2 : Thể hiện dữ liệu trong máy tính số Phầntử nhớ nhỏ nhấtcủa máy tín h (ta gọilàbit). Ta kếthợpnhiềuphầntử nhớđểc ó dụ ta dùng 8 bit để miêu tả 2 8 =2 5 đượcgọi là byte, đây là 1 ô nhớ tro n Bộ nhớ trong của máy tính được d chương trình đang thực thi Nó là 1 d Cơ bản về việc lưu trử v à Bộ Môn Công nghệ phần mềm Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM chương trình đang thực thi . Nó là 1 d nhớđượctruyxuất độclập thông q Thường ta dùng chỉ số từ 0-nđể m Mặc dù ngoài đờitađã quen dùn g phầncứng bên trong máy tính, máy liệu ở dạng nhị phân. Do đótrongc niệmnềntảng về hệ thống số và cá c h số chỉ có thể chứa2giátrị :0và1 ó thể miêu tảđạilượng lớnhơn. Thí 5 6giátrị khác nhau. Dãy 8 bit nhớ n gbộ nhớ của máy tính. d ùng để chứadữ liệuvàcodecủa dãy đồng nhất các ô nhớ 8 bit mỗi ô à xử lý tin trong máy tính Môn : Ngôn ngư Java Slide 14 dãy đồng nhất các ô nhớ 8 bit , mỗi ô q ua địachỉ củanó(tênnhậndạng). m iêu tảđịachỉ củatừng ô nhớ. g hệ thống số thập phân, nhưng về chỉ có thể chứavàxử lý trựctiếpdữ hương này, ta sẽ giớithiệu các khái c hmiêutả dữ liệu trong máy tính. Chương 2 : Thể hiện dữ liệu trong máy tính số Hệ thống số (number system) là c thống số gồm3thànhphần chính : 1. cơ số :số lượng ký số (ký h 2. qui luậtkếthợpcáckýsố 3. các phép tính cơ bản trên c Tron g 3 thành p hầntrên , ch ỉ có thà n Cơ bản về h Bộ Môn Công nghệ phần mềm Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM g p , thống số, còn 2 thành phần2và3t h Thí dụ :-hệ thống số thập phân ( h 0,1,2,3,4,5,6,7,8,9. - hệ nhị phân dùng 2 ký s -hệ bát phân dùng 8 ký s ố - hệ thập lục phân dùng 1 c ông cụđểbiểuthị lượng. Mộthệ iệu để nhậndạng các số cơ bản). để miêu tả 1lượng nào đó. c ác số. n h p hần 1 là khác nhau g iữacách ệ h ệ thống số Môn : Ngôn ngư Java Slide 15 p g ệ h ìgiống nhau giữacáchệ thống số. h ệ thập phân) dùng 10 ký số : s ố : 0,1. ố : 0,1,2,3,4,5,6,7. 1 6 ký số : 0 đến 9,A,B,C,D,E,F. Chương 2 : Thể hiện dữ liệu trong máy tính số Biểudiễncủalượng Q trong hệ thố n d n d n-1 d 1 d 0 d -1 d -m ⇔ Q=d n *B n +d n-1 *B n-1 + +d 0 *B 0 + d trong đómỗid i là1kýsố trong hệ t h Trong thựctế lậptrìnhbằng ngôn thống số thậpphânđể miêu tả d ữ Cơ bản về hệ thống số - Bộ Môn Công nghệ phần mềm Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM quen). Chỉ trong 1 số trường hợp đ ặ phân (hay thậplục phân) để miêu t ả hợp này, qui luậtbiểudiễncủalượn g đơngiảnlà: d n d n-1 d 1 d 0 ⇔ Q=d n *B n +d n-1 *B n-1 + +d 1 *B 1 +d 0 trong đómỗid i là1kýsố trong hệ t h n gsố B(B>1)là: d -1 *B -1 + +d -m *B -m h ống B. ngữ cấp cao, ta thường dùng hệ ữ liệusố củachương trình (vì đã - Qui luật miêu tả lượng Môn : Ngôn ngư Java Slide 16 ặ cbiệt, ta mớidùnghệ thống số nhị ả 1vàigiátrị nguyên, trong trường g nguyên Q trong hệ thống số Bsẽ 0 *B 0 h ống B. Chương 2 : Thể hiện dữ liệu trong máy tính số Thí dụ về biểudiễncáclượng trong -lượng "mườibảy" đượcmiêu t 17 = 1*10 1 +7*10 0 -lượng "mườibảy" đượcmiêu t 11 = 1*16 1 +1*16 0 -lượng "mườibảy" đượcmiêu t 10001 = 1*2 4 +0*2 3 +0*2 2 +0*2 1 + Cơ bản về hệ th ố Bộ Môn Công nghệ phần mềm Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Trong môi trường sử dụng đồng thờ lẫntrongcácbiểudiễncủacáclư nhậndạng hệ thống sốđượcdùng t viết: -17 D để xác định sự biểudiễnt r -11 H (hệ thống số thậplụcphâ n - 10001 B (hệ thống số thậpnhị p các hệ thống số : t ả là 17 trong hệ thậpphânvì: t ả là 11 trong hệ thậplụcphânvì: t ả là 10001 trong hệ nhị phân vì : + 1*2 0 ố ng số -Vài thí dụ Môn : Ngôn ngư Java Slide 17 inhiềuhệ thống số, để tránh nhằm ợng khác nhau, ta sẽ thêm ký tự t rong biểudiễn liên quan. Thí dụ ta r ong hệ thống số thập phân. n .) p hân.) Chương 2 : Thể hiện dữ liệu trong máy tính số Các phép tính cơ bảntrong1hệ thố 1. phép cộng 2. phép trừ 3. phép chia 4. phép nhân 5. phép dịch trái n ký số 6. phép dịch phải n ký số Cơ bản về hệ thốn g Bộ Môn Công nghệ phần mềm Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Ngoài ra do đặc điểmcủahệ nhị ph â tính sau (các phép tính luậnlý): 1. phép OR bit 2. phép AND bit 3. phép XOR bit 4. ng số là : (+). (-). (/). (*). (<< n). (>> n). g số - Các phép tính Môn : Ngôn ngư Java Slide 18 â n, hệ nàycòncungcấp1số phép (|). (&). (^). Chương 2 : Thể hiện dữ liệu trong máy tính số Thí dụ về các phép tính cơ bản(c á hệ nhị phân : 0 1 1 0 + 0 0 1 1 1 0 0 1 1 0 0 - 0 0 1 0 1 1 Thí dụ về phép Bộ Môn Công nghệ phần mềm Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM á cgiátrịđều đượcbiểudiễnbằng 1 1 0 1 0 0 1 * 0 1 0 1 1 0 0 1 cộng, trừ, nhân Môn : Ngôn ngư Java Slide 19 0 0 0 0 1 0 0 1 1 0 1 1 0 1 Chương 2 : Thể hiện dữ liệu trong máy tính số 1 0 1 1 -1 0 1 0 1 0 1 Thí dụ về các phép tính cơ bản(c á hệ nhị phân) : Thí dụ về Bộ Môn Công nghệ phần mềm Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM 0 1 -0 0 1 1 -1 0 0 1 á cgiátrịđều đượcbiểudiễnbằng số bị chia số chia thương số phép chia Môn : Ngôn ngư Java Slide 20 dư số Chương 2 : Thể hiện dữ liệu trong máy tính số Thí dụ về các phép tính dịch ký s ố bằng hệ nhị phân) : 00001101 bị dịch trái 2 bi t (tương dương Thí dụ về ph é Bộ Môn Công nghệ phần mềm Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM 00001101 bị dịch phải 2 b (tương dương ố (các giá trịđều đượcbiểudiễn 0000110100 t thành với nhân 2 2 ) 0 0 é p dịch ký số Môn : Ngôn ngư Java Slide 21 00001101 b it thành với chia 2 2 ) 00 Chương 2 : Thể hiện dữ liệu trong máy tính số Đạisố Boolenghiêncứuvề các ph é có 2 giá trị 0và1,tương ứng với h (hay "không" và "có") của đờithườn g xynot xxand yxnand y 00 1 0 1 01 0 1 Các phép tính c Bộ Môn Công nghệ phần mềm Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM 10 0 0 1 11 1 0 BiểuthứcBoolelà1biểuthứctoá n Boole trên các toán hạng là các biế n é ptoánthựchiện trên các biếnchỉ h ai thái cựcluận lý "sai" và "đúng" g . Các phép toán này gồm: y x or yxnor yxxor y 01 0 10 1 ủa đại số Boole Môn : Ngôn ngư Java Slide 22 10 1 10 0 n hoc cấu thành từ các phép toán n chỉ chứa2trị 0và1. Chương 2 : Thể hiện dữ liệu trong máy tính số Các đơn vị đo lường bộ nhớ thường 1. byte : 8bit, có th ể miêu tả đư ợ 2. word : 2 byte, có th ể miêu tả 3. double word : 4 byte, có thể nhau. 4 KB (kilo byte) =2 10 = 1024 b Các đơn vị nh ớ Bộ Môn Công nghệ phần mềm Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM 4 . KB (kilo byte) = 2 10 = 1024 b 5. MB (mega byte) = 2 20 = 102 4 6. GB (giga byte) = 2 30 = 1024 M 7. TB (tetra byte) = 2 40 = 1024 G Thí dụ, RAM của máy bạn là 256MB dùng là : ợ c 2 8 = 256 giá trị khác nhau. được 2 16 = 65536 giá trị khác nhau. miêu tả được 2 32 = 4 tỉ giá trị khác byte ớ thường dùng Môn : Ngôn ngư Java Slide 23 byte . 4 KB ≅ 1 triệu byte. M B ≅ 1 tỉ byte. G B ≅ 1 ngàn tỉ byte. , đĩa cứng là 30GB. Chương 2 : Thể hiện dữ liệu trong máy tính số Tùy ngôn ngữ lập trình mà cách biểudiễnsố trong máy có những khác biệtnhất định. Riêng VC++ có nhiều phương pháp biểudiễnsố khác nhau, trong đó 2 cách thường dùng là số nguyên Bi ể u diễn số ng u 00 00 01 Bộ Môn Công nghệ phần mềm Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM và số thực. Máydùng1word(2byte)để chứadữ liệu nguyên (short) theo qui định sau (khi chứa vào bộ nhớ thì byte trọng số nhỏđitrước - LE - Little Endian) : 01 10 10 11 u yên trong Java 0 000000 00000000 0 0 000000 00000001 1 . 1111111 11111111 32767 Sự biểu diễngiá trị Môn : Ngôn ngư Java Slide 24 1111111 11111111 32767 0 000000 00000000 -32768 0 000000 00000000 -32767 . 1 111111 11111111 -1 Chương 2 : Thể hiện dữ liệu trong máy tính số miờu tc cỏc giỏ tr nguyờ n 32767, VC++ cung cpkiu'int'&'l o 1giỏtr nguyờn vi cựng nguyờn t c long miờu t cỏc s nguyờn trong ph Mỏydựng8byte chad liuth m *B e , m gi l nh tr (0.1 m Bi u din s t h B Mụn Cụng ngh phn mm Khoa Cụng ngh Thụng tin Trng H Bỏch Khoa Tp.HCM b 63 111 phn nh tr m phn s m e bit du n nm ngoi phmvit -32768 n o ng', kiu ny dựng 4 byte miờu t c nh kiushort.Ktqu l kiuint, mvit -2 tn2t. c(Kiu double) theo dng sau : m <1), B l c s v e l s m. h c trong Java Mụn : Ngụn ng Java Slide 25 b 0 52 m vi c s B = 16 Chng 2 : Th hin d liu trong mỏy tớnh s Chuikýt l danh sỏch nhiukýt binbitnh : mó ASCII dựng 7 bit (dựng lu ụ 1kýt tpkýt m mó AS mó ISO8859-1 dựng 8 bit (1 b m mó ISO8859-1 miờu t Bi u din chui B Mụn Cụng ngh phn mm Khoa Cụng ngh Thụng tin Trng H Bỏch Khoa Tp.HCM mó Unicode trờn Windows d ự tpkýt m mó Unico d 65536. Hincúnhiuloimóting Vitkh ỏ riquinh licỏchhinth 1s ký t b mó thng nhttoncu, trong ú ,mikýtcmiờut trong mỏy ụ n1bytenhng b bit 8) miờu t S CII miờu tc l 128. b yte) miờu t 1kýt tpkýt cl256. ký t trong Java Mụn : Ngụn ng Java Slide 26 ự ng 16 bit (2 byte) miờu t 1kýt d e trờn Windows miờu tcl ỏ c nhau, as dựng mó ISO8859-1 thnh ký t Vit. Riờng Unicode l cú cỏc ký t Vit. Chng 2 : Th hin d liu trong mỏy tớnh s Mó ASCII dựng cỏc giỏ tr (mó) t 0 - mó t 0-31lcỏcmóiu k LF=10 (Line Feed), ESC=27 ( mó 32 miờu t ký t trng, 3 3 Bng mó A $ / B Mụn Cụng ngh phn mm Khoa Cụng ngh Thụng tin Trng H Bỏch Khoa Tp.HCM ! " # $ % & ' ( ) * + , - . / 0 @ A B C D E F G H I J K L M N O P ` a b c d e f g h i j k l m n o p - 127 miờu t cỏckýt : k hi nnh CR=13 (Carriage Return), ( Escape) 3 miờu t ký t !, theo bng sau : A SCII 7 bit Mụn : Ngụn ng Java Slide 27 0 1 2 3 4 5 6 7 8 9 : ; < = > ? P Q R S T U V W X Y Z [ \ ] ^ _ p q r s t u v w x y z { | } ~ Chng 2 : Th hin d liu trong mỏy tớnh s Mó ISO8859-1 dựng cỏc giỏ tr (mó) mó ký tuquinh ging nh mó mó t 0-31lcỏcmóiu k LF=10 (Line Feed), ESC=27 ( mó 32 miờu t ký t trng, 3 3 Bng mó IS O !"#$%&'()*+ /0 B Mụn Cụng ngh phn mm Khoa Cụng ngh Thụng tin Trng H Bỏch Khoa Tp.HCM ! " # $ % & ' ( ) * + , - . / 0 @ A B C D E F G H I J K L M N O P ` a b c d e f g h i j k l m n o p Ă Â Ê Ô Ơ Ư Đ ă â ê ô ơ - đ ặ ầ ẩ ẫ ấ ậ è ẻ ẽ é ỏ õ ó ọ ồ ổ ỗ ố ộ ờ ở ỡ ớ ợ ù t 0-256 miờu t cỏckýt (128 ASCII) : k hinnh CR=13 (Carriage Return), ( Escape) 3 miờu t ký t !, theo bng sau : O 8859-1 (8 bit) 0123456789:;<=>? Mụn : Ngụn ng Java Slide 28 0 1 2 3 4 5 6 7 8 9 : ; < = > ? P Q R S T U V W X Y Z [ \ ] ^ _ p q r s t u v w x y z { | } ~ à ả ã á ạ ằ ẳ ẵ ắ é ẹ ề ể ễ ế ệ ì ỉ ĩ í ị ò ủ ũ ú ụ ừ ử ữ ứ ự ỳ ỷ ỹ ý ỵ Chng 2 : Th hin d liu trong mỏy tớnh s Mó HBK 1 byte cú cbng cỏc h mó t 0-31lcỏcmóiu k LF=10 (Line Feed), ESC=27 ( mó 32 miờu t ký t trng, 3 3 Bng mó ting V !"#$%&'()*+ /0123456789: B Mụn Cụng ngh phn mm Khoa Cụng ngh Thụng tin Trng H Bỏch Khoa Tp.HCM ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : @ A B C D E F G H I J K L M N O P Q R S T ` a b c d e f g h i j k l m n o p q r s t u v w x y z Ă Â Ê Ô Ơ Ư Đ ă â ê ô ơ - đ à ả ã á ạ ằ ặ ầ ẩ ẫ ấ ậ è ẻ ẽ é ẹ ề ể ễ ỏ õ ó ọ ồ ổ ỗ ố ộ ờ ở ỡ ớ ợ ù ủ ũ ú ụ ừ ử ữ ứ ự ỳ h hiuchnh bng mó ISO8859-1 : k hi nnh CR=13 (Carriage Return), ( Escape) 3 miờu t ký t !, theo bng sau : V it HBK 1 byte ;<=>? Mụn : Ngụn ng Java Slide 29 ; < = > ? T U V W X Y Z [ \ ] ^ _ z { | } ~ ằ ẳ ẵ ắ ế ệ ì ỉ ĩ í ị ò ỳ ỷ ỹ ý ỵ Chng 2 : Th hin d liu trong mỏy tớnh s Mó Unicode Windows dựng 2 byte 256 mó ut 0-255ging mó t 256 trichacỏck ý th gii(quỏkh,hintiv thớ d saul1phnmóting Mt phn mó ting Vi mó 1ea0 H biu din k ý t B Mụn Cụng ngh phn mm Khoa Cụng ngh Thụng tin Trng H Bỏch Khoa Tp.HCM H ý miờu t 1kýt : ynh mó ISO8859-1. ý t cahuht cỏc ngụn ng trờn tng lai). Vit trong mó Unicode : t Unicode dng sn mó 1ef9 H biu din k ý t Mụn : Ngụn ng Java Slide 30 H ý Chng 2 : Th hin d liu trong mỏy tớnh s S nguyờn (short), s thc (double ) mó húa d liuph dng, ngoi ra m húa riờng mó húa d liu c thanh, Trong chng5v6chỳngtas t r ngụn ng VC++ h tr. Nhng ta ó trỡnh by trong slide 9 (c Mó húa d liu B Mụn Cụng ngh phn mm Khoa Cụng ngh Thụng tin Trng H Bỏch Khoa Tp.HCM Nhng ta ó trỡnh by trong slide 9 (c th no thỡ ktqu cavicmóhú a cú thclutr v x lý bờn t B nh ca mỏy tớnh thng cú du n nú chacodevd liucach 1mỏytớnhcúth lutr rtnhiu trờn cỏc thitb chatin(b nh CDROM, ) ,chuikýt (char*) l nhng dng m i ng dng cú th cncúcỏchmó c thự camỡnhnh hỡnh nh, õm r ỡnh by chi titcỏckiud lium chng 1 ) dự dựng cỏch mó húa c ca ng dng Mụn : Ngụn ng Java Slide 31 chng 1 ) , dự dựng cỏch mó húa c a phi l 1 chui bit (hay chuibyte) t rong mỏy tớnh. n glng khụng lnnờntach dựng ng trỡnh ang thcthi. chngtrỡnhvd liuca chỳng ngoi) nhamm, acng, Chng 2 : Th hin d liu trong mỏy tớnh s code ca1chng trỡnh, chuib y thitb chatintrong1phnt c h 1thitb chatinthng cha r xut 1 file, ta dựng tờn nhndn tờn nhndng canúsdng t nghacani dung file), thớ d n h ton b nidun g lunỏnttn g hi Thit b ch B Mụn Cụng ngh phn mm Khoa Cụng ngh Thụng tin Trng H Bỏch Khoa Tp.HCM g g Nutadựngkhụnggianphng chatinthỡvỡs lng file quỏ dng, x lý, (núi chung l qun l gii quytvn trờn ta dựn g v qun lý cỏc file trờn tng thit b y te miờu t d liu clutr trờn h atinlunlýcgilfile. r tnhiufile. nhndng v truy g gỏn cho mifile. d dựng file, t ờn ginh (chuikýt miờu t ng h file "lunỏnttnghip.doc" cha pcan g idựn g mỏ y . a tin - File Mụn : Ngụn ng Java Slide 32 g g y t tờn cho cỏc file trờn 1 thitb lnnờntakhúlũngttờn,nhn l ý) tng file. g khụng gian cõy th bc t chc b chatin. Chng 2 : Th hin d liu trong mỏy tớnh s Để tạo không gian cây thứ b (directory). thư mụclàphầntử chứanhiều p hay thư mục. Thường ta sẽ dùn g con có mốiquanhệ mậtthiếtnà o ảnh kỷ niệm, thư mụcchứacácfil Thiết bị chứa tin vật lý (đĩa mềm Thiết bị chứa tin : Kh Bộ Môn Công nghệ phần mềm Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Thiết bị chứa tin vật lý (đĩa mềm tượng hóa như là1thư mục(ta g gốc). Thư mụcgốcchứanhiều p con củathư mụcgốcthường là file. Mỗithư mụcconlạicóthể c h cứ thế ta sẽ hình thành 1 cây thứ Ta cũng dùng tên gợinhớđểnh ậ gian cây thứ bậc, ta sẽ dùng k h nhậndạng 1 file hay 1 thư mục. b ậc, ta dùng khái niệmthư mục p hầntử bên trong nó : có thể là file g thư mục để chứanhững phầntử o đó, thí dụ như thư mụcchứacác enhạc ưa thích, m đĩa cứng CDROM ) được trừu ông gian cây thứ bậc Môn : Ngôn ngư Java Slide 33 m , đĩa cứng , CDROM , ) được trừu g ọithư mục đặcbiệt này là thư mục p hầntử con bên trong, mỗiphầntử thư mụcconnhưng cũng có thể là h ứanhiềuthư mục con hay file và bậccácthư mụcvàfile. ậ ndạng từng thư mục. Trong không h ái niệm đường dẫn (pathname) để Chương 2 : Thể hiện dữ liệu trong máy tính số Thí dụ về h ệ Windows A u d config.sys Syste m Fonts i Cây thứ bậc của ổ c: Bộ Môn Công nghệ phần mềm Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM System w i n.com arial.ttf ệ thống file \ d ioFile VideoFile USAFilm VNFilm ChinaFilm Môn : Ngôn ngư Java Slide 34 Dòng đời.mpg Chương 2 : Thể hiện dữ liệu trong máy tính số Đường dẫn (pathname) là thông t từ 1vị trí nào đó, nó chứadanh s các phầntử mà ta phải điquax u cần tìm. ta dùng 1 dấungăn đặcbiệt để nhau trong đường dẫn(trongWin d Tên thư m ụ c g ốcluônlà' \ '. Đ ường dẫn tuyệt Bộ Môn Công nghệ phần mềm Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM ụ g Có2kháiniệm đường dẫn:đ ư tương đối. Đường dẫntuyệt đối l gốc, đường dẫntương đốixuất directory). Trướckhibắt đầuchạy, hệ thốn g ứng dụng (theo cơ chế nào đó). T quyềnthayđổithư mục working t h t in để tìm kiếm (xác định) 1 phầntử s ách chính xác các tên gợinhớ của u ất phát từ vị trí đầu để đếnphầntử ngăncách2têngợinhớ liên tiếp d ows, dấungănlà'\') đối và tương đối Môn : Ngôn ngư Java Slide 35 ư ờng dẫntuyệt đốivàđường dẫn l à đường dẫnxuất phát từ thư mục phát từ thư mụclàmviệc (working g sẽ khởi động thư mụcthực thi cho T rong quá trình thựcthi,ứng dụng có h eo yêu cầuriêngtạitừng thời điểm. Chương 2 : Thể hiện dữ liệu trong máy tính số Xét cây thứ bậccủa ổ c: trên s l nhậndạng chính xác file arial.ttf t r c:\Windows\Fonts\arial.ttf Nếuthư mục working củachươ n ta có thể dùng đường dẫntương đ arial.ttf Đường dẫn tuyệt đối thường dài h Đ ường dẫn tuyệt đ Bộ Môn Công nghệ phần mềm Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Đường dẫn tuyệt đối thường dài h luôn có giá trị bấtchấp ứng dụng đ Đường dẫntương đốithường g ọ truy xuấtvìứng dụng sẽ thiếtlậ p các file mà ứng dụng truy xuất) working cụ thể. Trong 1 vài trường hợp đặcbiệt, ngay cả nó dài và phứctạphơn đ l ide x, đường dẫntuyệt đốisausẽ r ong thư mục'Fonts': n g trình hiện là c:\Windows\Fonts thì đ ốisauđây để xác định file arial.ttf : hơn đường dẫn tương đối nhưng nó đ ối và tương đối (tt) Môn : Ngôn ngư Java Slide 36 hơn đường dẫn tương đối nhưng nó đ ang ở thư mục working nào. ọ nhơn(đasố chỉ chứatênfilecần p thư mục working là thư mụcchứa nhưng chỉ có giá trị với1thư mục ta phảidùngđường dẫntương đối ường dẫntuyệt đối! Chương 2 : Thể hiện dữ liệu trong máy tính số Hình dạng và cấutrúccủa1hệ th người dùng thiếtlậpnhờ các tác tạo/xóa file, copy/move file/thư mụ c Nhưng trướckhithựchiện1tác v file : làm hiểnthị cấutrúccủahệ th nó dễ dàng. Hệ thống dùng nhiềucơ chế khác ời dù 1 t á hế Quản lý h ệ Bộ Môn Công nghệ phần mềm Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM ngư ời dù ng. 1 t rong c á ccơ c hế m mỗifile1số thuộc tính truy xuất, m : Read Only, nếu=1thìh ệ xóa/hiệuchỉnh phầntử. Hidden, nếu=1thìhệ thốn g các ứng dụng duyệtfile. Archive đượcthiếtlập=1 n (phụcvụ cho cơ chế backup t ống file của1thiếtbị chứatinsẽ do vụ phổ biếnnhư :tạo/xóa thư mục, c từ nơi này đếnnơikhác. v ụ nào đó, ngườidùngthường duyệt ống file ở 1dạng nào đó để quan sát nhau để bảovệ việctruyxuấtfilebởi à Wi d 9 dù là kết h ới ệ thống file Môn : Ngôn ngư Java Slide 37 mà Wi n d ows 9 x dù ng là kết h ợpv ới m ỗithuộc tính đượclưutrữ trong 1 bit ệ thống không cho các ứng dụng g sẽ dấu không hiểnthị phầntử bởi n ếuphầntử bị hiệuchỉnh nộidung t ăng dần). Chương 2 : Thể hiện dữ liệu trong máy tính số Tấtcả tác vụ liên quan đếnhệ th ố thống file. hệ thống sẽ cung cấp1ứng dụ n thựchiệncáctácvụ quảnlýfile. T tiện ích "Windows Explorer" để qu Có 3 cách phổ biến để chạy1ứn g Tiện ích quản l Bộ Môn Công nghệ phần mềm Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM 1. double-clic k vàoiconmiêut (phảitạoiconchương trình t r 2. duyệt ứng dụng từ menu S Explorer 3. vào menu Start.Run, rồinh ậ xác định file chương trình và ố ng file đượcgọilàtácvụ quảnlýhệ n g(tiện ích) để ngườidùngdễ dàng T hí dụ trên Windows ta thường dùng ảnlýhệ thống file. g dụng (tiệních): ả l ý hệ thống file Môn : Ngôn ngư Java Slide 38 ả ứng dụng trên màn hình desktop r ước khi dùng cách chạy này). S tart.Programs.Accessories.Windows ậ phànglệnh "explorer" (đường dẫn các tham số hàng lệnh). Chương 2 : Thể hiện dữ liệu trong máy tính số MenuBar chứa tất cả tác vụ mà ứng dụng hỗ trợ Toolbar chứa các icon tác vụ thường dùng ể Cửa sổ của WE & các p Bộ Môn Công nghệ phần mềm Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM TreeCtrl hi ể n thị hệ thống file dạng cây ListCtrl hiển thị các phần tử trong thư mục StatusBar Taskbar p hần tử giao diện chính Môn : Ngôn ngư Java Slide 39 Chương 2 : Thể hiện dữ liệu trong máy tính số Click vào ô - để thu nhỏ nội dung thư mục Click vào ô + để chi tiết hóa nội dung thư mục. ố ấ Các thao tác du y Bộ Môn Công nghệ phần mềm Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Nhưng t ố t nh ấ t là double-click vào tên thư mục để chi tiết hóa/thu nhỏ nội dung Click vào tên thư mục để hiển thị nội dung y ệt hệ thống file Môn : Ngôn ngư Java Slide 40 Chương 2 : Thể hiện dữ liệu trong máy tính số [...]... tin Trường ĐH Bách Khoa Tp.HCM Môn : Ngôn ngư Java Chương 5 : Các kiểu dữ liệu trong Java Slide 114 Bộ Môn Công nghệ phần mềm Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Ngôn ngư Java Chương 6 : Các lệnh định nghĩa & khai báo Java Slide 116 Tổng quát về n ngôn ngữ Java Để dễ tiếp cận ngôn ngữ Java, ta hãy n nhìn lại ngôn ngữ tiếng Việt Ta nói ngôn ngữ tiếng Việt định nghĩa 1 tập các từ... Tp.HCM Môn : Ngôn ngư Java Chương 7 : Biểu thức Java Slide 134 Bộ Môn Công nghệ phần mềm Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM 3 4 Môn : Ngôn ngư Java Chương 7 : Biểu thức VB Slide 136 Tổng quát về các lệnh thực thi Java (tt) MÔN NGÔN NGỮ JAVA N Chươ 8 ơng CÁC LỆNH THỰ THI JAVA Ệ HỰC Bộ Môn Công nghệ phần mềm Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Ngôn ngư Java Chương... hĩ ủ á hầ tử được tạo ra Vì ngôn ngữ Java là ng ngữ lập trình cho máy tính thực hiện gôn nên sẽ không cho phép 1 ngoại lệ nào trong việc xây dựng các phần tử Nghiên cứu ngôn ngữ lập trình là học đ nhớ rõ các ký tự cơ bản của ngôn để ngữ, các qui tắc để tạo danh hiệu, biểu thức, các qui tắc để viết các câu lệnh u cùng ngữ nghĩa của chúng ⇒ rất giống với việc học 1 ngôn ngữ tự nhiên : Anh, g Pháp, Nhật,... AboutBox Môn : Ngôn ngư Java Chương 4: Qui trình thiết kế trực quan giao diện của ứng dụng Slide 97 Tạo method xử lý sự kiệ cho từng phần tử (tt) ện MÔN NGÔN NGỮ JAVA N Cửa sổ code sẽ được hiển thị để bạn viết code cho method vừa tạo ra Chươ 5 ơng Bạn cần nắm vững cú pháp ngôn ngữ Java để viết code Bộ Môn Công nghệ phần mềm Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Ngôn ngư Java Chương... : Ngôn ngư Java Chương 7 : Biểu thức Java Slide 130 Bộ Môn Công nghệ phần mềm Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Ngôn ngư Java Chương 7 : Biểu thức Java Slide 132 Các toán tử gán v thứ tự ưu tiên và Bộ Môn Công nghệ phần mềm Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Ngôn ngư Java Chương 7 : Biểu thức Java Slide 133 Các toán tử shift và thứ tự ưu tiên Môn : Ngôn. .. bài văn (document) cùng ngữ nghĩa của các phần tử được tạo ra Vì ngôn ngữ Việt là ngôn ngữ tự nhiên nên thường cho phép nhiều ngoại lệ trong việc xây dựng các phần tử Ngôn ngữ lập trình Java cũng định ngh 1 tập các ký tự cơ bản (chưa có hĩa nghĩa), các qui tắc ghép các ký tự để tạ thành các từ có nghĩa (identifier), biểu ạo thức ( thứ (expression), câu lệ h ( t t i ) â lệnh (statement method cùng ngữ. .. từ khoá (keyword) như : if, for, ới while… (từ khóa là những từ mà ng ngữ Java đã dùng cho những gôn thành phần xác định của ngôn ngữ) Bộ Môn Công nghệ phần mềm Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Ngôn ngư Java Chương 5 : Các kiểu dữ liệu trong Java Slide 103 Các kiểu dữ liệu cơ b định sẵn của Java bản Mặc dù Java cho phép đặt tên biến khá thoải mái, nhưng ta nên tuân n thủ các... project Java thường quản lý các th hành phần cấu thành 1 ứng dụng Java Trong 1 project Java có nhiều loại phần tử, trong đó các file * .java chứa source n code của các class cấu thành ứng dụng, do đó ta cần biết cú pháp Java để xây dựng các loại phần từ này Tổ chức code trong file * .java như sau : đó là danh sách nhiều lệnh Java phục vụ định nghĩa kiểu, hằng, biến và meth của các class trong file * .java. .. : Ngôn ngư Java Chương 6 : Các lệnh định nghĩa & khai báo Java Slide 117 Các ký hiệu cơ bản của ngôn ngữ Java Về nguyên tắc, Java cho phép dùng hầ hết các ký tự mà bạn có thể nhập từ ầu bàn phím, trong đó các ký tự chữ và số được dùng chủ yếu ố Qui tắc cấu tạo 1 danh hiệu đã được tr rình bày ở Slide 128 (chương 5) 1 danh hiệu có thể được dùng để đặt tên cho b biến, hằng gợi nhớ, method, class, và ngữ. .. phần tử giao c diện rồi viết code cho từng hàm xử lý biến cố vừa tạo ra Môn : Ngôn ngư Java Chương 3 : Tổng quát về lập trình JBuilder Slide 70 Bộ Môn Công nghệ phần mềm Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn : Ngôn ngư Java Chương 3 : Tổng quát về lập trình JBuilder Slide 72 Thí dụ lậ trình ập MÔN NGÔN NGỮ JAVA N Với các chi tiết menu như sau : Chươ 4 ơng QUI TRÌNH THIẾT KẾ TRỰC QUAN