LẬP TRÌNH CĂN BẢN - GIỚI THIỆU VỀ CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬ doc

7 353 0
LẬP TRÌNH CĂN BẢN - GIỚI THIỆU VỀ CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬ doc

Đang tải... (xem toàn văn)

Thông tin tài liệu

1 LẬP TRÌNH CĂN BẢN GIỚI THIỆU VỀ CẤU TRÚC DỮ LIỆU VÀGIẢI THUẬT 2 Nộidung 1. Từ bài toán đến chương trình 2. Giải thuật l Kiểudữliệu l Khái niệm về ngôn ngữ lập trình l Chương trình dịch 3 1.Từ BàiToán ĐếnChươngTrình l Cácbướcgiảibàitoánbằngmáytính l Môtảcácbướcgiảibàitoán l Vẽ sơđồ xử lý l Viếtchươngtrìnhxửlýbằngngônngữ giả l Chọnngônngữ lậptrìnhvàchuyểnchương trìnhtừngônngữ giả sang ngônngữ lập trình l Thựchiệnchươngtrình: nhậpvàocáctham số, nhậnkếtquả 4 2. GiảiThuật l Kháiniệmgiảithuật l Các đặctrưngcủagiảithuật l Ngônngữ biểudiễngiảithuật l Mộtsốgiảithuậtcơbản lCáccấutrúcsuyluậncơbảncủagiải thuật l Từ giảithuật đếnchươngtrình 5 KháiNiệmGiảiThuật l Vídụ:Hoán đổichấtlỏngtrong2 bìnhA (nước mắm) vàB (rượu): l Yêucầuphảicóthêmmộtbìnhthứ bagọilàbìnhC. l Bước1: Đổ rượutừbìnhBsang bìnhC. l Bước2: Đổ nướcmắmtừbìnhAsang bìnhB. l Bước3: Đổ rượutừbìnhC sang bìnhA. l “Giải thuật làmột dãy các thao tác trên những dữ liệu vào sao cho sau một hữu hạn bước ta thu được kết quả của bài toán”. 6 Các ĐặcTrưngCủaGiảiThuật l Tínhkếtthúc l Số bướclàhữuhạn lTínhxác định l Máyphảithựchiện được l Chocùngkếtquả trêncácmáykhácnhau l Tínhphổ dụng l Tínhhiệuquả l Thờigian l Tàinguyênmáy 7 NgônNgữ BiểuDiễnGiảiThuật l Ngônngữ tự nhiên l Ngônngữ sơđồ l Ngônngữ giả 8 NgônNgữ Tự Nhiên l Làngônngữ củachúngta l Vídụ:Giảithuậtgiảiphươngtrìnhbậcnhất ax+b=0. Bước1: Nhậngiátrị của các tham số a, b. Bước2: Xétgiátrị của a xem cóbằng0haykhông? Nếua=0thìlàm bước3,nếuakhác không thì làm bước4. Bước3: (abằng0)Nếubbằng0 =>pt vô số nghiệm. Nếu bkhác0=> pt vô nghiệm. Bước4:( akhác0) Takết luận phương trình có nghiệm x=-b/a. 9 NgônNgữ Sơ Đồ (1) l Môtảgiảithuậtbằngcácsơđồ hìnhkhối đã đượcquy ướctrước 10 NgônNgữ Sơ Đồ (2) l Vídụ:Dùnglưuđồđể biểudiễngiảithuậttìm USCLNnhư sau: 11 NgônNgữ Giả l Làmộtsựkếthợpgiữa ngônngữ tự nhiên với cáccấutrúc câulệnhcủamộtngônngữ lập trình. l Vídụ: Giảithuậtgiảiphươngtrìnhbậcnhất ax+b=0. l Nhậpvàoa, b l If a==0 then If b==0 then Kếtluậnphươngtrìnhvôsốnghiệm else Kếtluậnphươngtrìnhvônghiệm else Kếtluậnphươngtrìnhcónghiệmx=-b/a 12 MộtSốGiảiThuật Cơ Bản(1) l Vídụ1: Yêucầu: l Nhậpvào1 dãyn số hạnga 1 , a 2 , , a n l TínhtổngS: S= a 1 + a 2 + a 3 + + a n l In S ramànhình 13 MộtSốGiảiThuật Cơ Bản(2) l Vídụ2: Yêu cầu: l Nhậpvào2 số a vàb là 2 hệ số của pt: ax+b=0 l Chobiết nghiệmcủa phương trình. 14 C á c C ấ u Tr ú c Suy Lu ậ n Cơ B ả n CủaGiảiThuật(1) l Giảithuật đượcthiếtkếtheo 3 cấutrúcsuyluận cơ bản: l Tuầntự(Sequential): l Cáccôngviệc đượcthựchiệntuầntự, côngviệcnàynốitiếp côngviệckia. l Cấutrúclựachọn(Selection) l Lựachọnmộtcôngviệc để thựchiệncăncứvàomộtđiềukiện nào đó l Cấutrúc1:Nếu< điềukiện> (đúng) thìthựchiện<côngviệc> l Cấutrúc2:Nếu< điềukiện> (đúng) thìthựchiện<côngviệc 1>, ngượclại(điềukiệnsai) thìthựchiện<côngviệc2> l Cấutrúc3: Trườnghợp< i> thựchiện<côngviệci> 15 C á c C ấ u Tr ú c Suy Lu ậ n Cơ B ả n CủaGiảiThuật(2) l Cấutrúclặp(Repeating) l Lặplạithực hiện mộtcôngviệc không hoặc nhiềulầncăncứvàomộtđiềukiệnnào đó. l Có2 dạng như sau: l Lặpvới số lần xác định l Lặpvới số lần khôngxác định 16 Từ GiảiThuật ĐếnChươngTrình l Cả 2 đềulà tậpcácchỉ thị (instruction) –làm thế nào để giảiquyết1 côngviệc(task). l Giảithuật l Nóichuyệnvớicon người, dễ hiểu. l Dùngngônngữđơngiản(English) –khôngviết bằngmã. l Chươngtrình l Nóichuyệnvớimáytính. l Cóthểđượcxemnhư 1 diễntảhìnhthức(formal expression) của1 giảithuật. 17 3. KiểuDữLiệu l Vídụ: int x,y; float r=3.25; l “Kiểudữliệulàmộttậphợpcácgiátrị cócùng mộttínhchất và tậphợpcácphéptoán thao táctrêncácgiátrịđó”. l Có2 loại l Kiểudữliệu sơ cấp l Kiểudữliệu cócấutrúc 18 KiểuDữLiệu Sơ Cấp l “Kiểudữliệusơcấplàkiểudữliệumà giátrị củanólà đơnnhất”. l Vídụ:Kiểu int trong C l làkiểu sơ cấp l gồmcác số nguyêntừ-32768 32767 l vàcácphéptoán: +, -, *, /, %… 19 KiểuDữLiệuCóCấuTrúc l “Kiểudữliệucócấutrúclàkiểudữliệu màcácgiátrị củanólàsựkếthợpcủa cácgiátrị khác”. l Vídụ:KiểuchuỗikýtựtrongC. l làkiểucócấutrúc. l Vídụ: char *chuoi= “Chao cacban!”; 20 4. NgônNgữ LậpTrình l Kháiniệmvềngônngữ lậptrình l Chươngtrìnhdịch 21 KháiNiệmVềNgônNgữ LậpTrình l Ngônngữ lậptrìnhlàmộtngônngữ dùng để viếtchươngtrìnhchomáytính l Ta cóthể chiangônngữ lậptrìnhthành cácloạisau: l Ngônngữ máy l Hợpngữ l Ngônngữ cấpcao 22 NgônNgữ Máy(machine language) l Làcác chỉ thị dướidạng nhị phân, can thiệptrực tiếpvàotrongcác mạch điệntử. l Cóthểđược thựchiện ngay khôngcầnqua bướctrunggiannào. l Tuynhiênchươngtrình viếtbằngngônngữ máy dễ saisót, cồngkềnhvà khó đọc, khóhiểu vì toànnhữngcon số 0 và 1. 3 Machine Language 10100110 01110110 00100110 00000000 11111010 11111010 01001110 10100110 11100110 10010110 11001110 00101110 10100110 01001110 11111010 01100110 01001110 10000110 etc 23 HợpNgữ (Assembly language) l Baogồmtênvàquytắcviết cáccâulệnh. l Têncáccâulệnhbaogồm haiphần: l Mãlệnh (English) chỉ phéptoáncầnthựchiện l Địachỉ chứatoánhạng củaphéptoán đó. l Để máythựchiện đượcmột chươngtrìnhviếtbằng hợp ngữ thìchươngtrình đóphải đượcdịchsang ngônngữ máy (Assembler). AssemblyLanguage INPUT a ; Nhập giátrị cho a LOAD a ; Đọc giátrị a vào thanh ghi A PRINT a; Hiển thị giátrị của a ra màn hình. INPUT b ADD b ; Cộng giátrị của thanh ghi tổng A ;với giátrị b 24 NgônCấpCao (High level language ) l Rất gầnvớingônngữ con người. l Mộtchươngtrìnhviếtbằng ngônngữ cấpcao đượcgọi là chươngtrìnhnguồn (source programs). l Để máytính"hiểu" vàthực hiện đượccáclệnhtrong chươngtrìnhnguồnthìphải cómộtchươngtrìnhdịch để dịchchươngtrìnhnguồn thànhdạngchươngtrình có khả năngthựcthi. 25 5. ChươngTrìnhDịch l Đượcdùng để chuyểnmộtchương trìnhnguồn sang chươngtrình đích. l Có2 dạng: l Thôngdịch(interpreter): l Dịchtừnglệnhmột, dịchtớiđâuthựchiệntớiđó. l Vídụ:ngônngữ LISP. l Biêndịch(compiler): l Dịchtoànbộchươngtrìnhnguồnthànhchương trình đíchrồisau đómớithựchiện. l Vídụ:Pascal, C . 1 LẬP TRÌNH CĂN BẢN GIỚI THIỆU VỀ CẤU TRÚC DỮ LIỆU VÀGIẢI THUẬT 2 Nộidung 1. Từ bài toán đến chương trình 2. Giải thuật l Kiểud liệu l Khái niệm về ngôn ngữ lập trình l Chương trình dịch 3 1.Từ. Thựchiệnchươngtrình: nhậpvàocáctham số, nhậnkếtquả 4 2. GiảiThuật l Kháiniệmgiảithuật l Các đặctrưngcủagiảithuật l Ngônngữ biểudiễngiảithuật l Mộtsốgiảithuậtc bản lCáccấutrúcsuyluậncơbảncủagiải thuật l. NgônNgữ LậpTrình l Kháiniệmvềngônngữ lậptrình l Chươngtrìnhdịch 21 KháiNiệmVềNgônNgữ LậpTrình l Ngônngữ lậptrìnhlàmộtngônngữ dùng để viếtchươngtrìnhchomáytính l Ta cóthể chiangônngữ lậptrìnhthành cácloạisau:

Ngày đăng: 26/07/2014, 07:20

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan