giải thuật xử lý thông tin và ngôn ngữ lập trình

36 388 0
giải thuật xử lý  thông tin và ngôn ngữ lập trình

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

KHOA CÔNG NGHỆ THÔNG TIN BỘ MÔN CÔNG NGHỆ PHẦN MỀM Bài 5. Giải thuật xử lý thông tin và ngôn ngữ lập trình Bài giảng: LẬP TRÌNH CƠ BẢN Tài liệu tham khảo  Giáo trình tin học cơ sở, Hồ Sỹ Đàm, Đào Kiến Quốc, Hồ Đắc Phương. Đại học Sư phạm, 2004 – Chương 7, 9. Giải thuật xử lý thông tin và ngôn ngữ lập trình2 NỘI DUNG  Khái niệm bài toán giải thuật  Đặc trưng của giải thuật  Các phương pháp diễn đạt giải thuật Sơ lược về đánh giá giải thuật  Sơ lược về đánh giá giải thuật  Ngôn ngữ lập trình và các mức khác nhau của ngôn ngữ lập trình  Quá trình thực hiện chương trình trên ngôn ngữ bậc cao 3 Giải thuật xử lý thông tin và ngôn ngữ lập trình KHÁI NIỆM BÀI TOÁN Cho số tự nhiên n n có phải số nguyên tố hay không “có” hay “không” Input Yêu cầu Output Cho hồ sơ điểm sinh viên Tìm tất cả các sinh viên có điểm trung bình trên 8 Danh sách sv thoả mãn Thiết kế hình học, tải trọng Tính sức bền Độ bền Cho một bài toán nghĩa là cho input, và yêu cầu để tìm (tính) ra output 4 Giải thuật xử lý thông tin và ngôn ngữ lập trình KHÁI NIỆM THUẬT TOÁN  Thuật toán (algorithm) là một quá trình gồm một dãy hữu hạn các thao tác có thể thực hiện được sắp xếp theo một trình tự xác định dùng để giải một bài toán  Ví dụ : thuật toán Euclid tìm ước số chung lớn nhất của hai số tự nhiên. Thay vì phải tính toán theo định nghĩa chỉ làm rõ cấu trúc của nhiên. Thay vì phải tính toán theo định nghĩa chỉ làm rõ cấu trúc của USCLN (tích của các ước số chung với số mũ nhỏ nhất) thuật toán Euclid dựa trên các tính chất sau:  USCLN(a,b) = USCLN (b,a))  Nếu a> b, USCLN(a,b) = USCLN (a-b,b)  USCLN(a,a)= a 5 Giải thuật xử lý thông tin và ngôn ngữ lập trình THUẬT TOÁN EUCLID TIM USCLN CỦA HAI SỐ TỰ NHIÊN  Bài toán: Cho hai số m, n tìm d = USCLN(m,n) 1. Bước 1: Kiểm tra nếu m= n thì về bước 5, nếu không thực hiện tiếp bước 2 2. Bước 2: Nếu m> n thì về bước 4 nếu không thực hiện tiếp bước 3 3. Bước 3: m <n, bớt n đi một lượng bằng m và quay về bước 1 Bước 3: m <n, bớt n đi một lượng bằng m và quay về bước 1 4. Bước 4: bớt m đi một lượng bằng n và quay về bước 1 5. Bước 5: Lấy d chính là giá trị chung của m và n. Kết thúc 6 Giải thuật xử lý thông tin và ngôn ngữ lập trình VÍ DỤ CÁC BƯỚC CỦA THUẬT TOÁN EUCLID m n 15 21 9 6 15 6 m<n m>n m>n 9 6 3 6 3 3 m>n m<n m=n USCLN(15,21) = 3 7 Giải thuật xử lý thông tin và ngôn ngữ lập trình CÁC ĐẶC TRƯNG CỦA THUẬT TOÁN  Input  Output  Tính xác định: Sau mỗi bước, bước tiếp theo hoàn toàn xác định.  Tính khả thi: các chỉ dẫn đặt ra đều có thể thực hiện được  Tính dừng: quá trình tính toán luôn phải dừng sau một số hữu hạn bước.  Tính dừng: quá trình tính toán luôn phải dừng sau một số hữu hạn bước.  Tính phổ dụng: mỗi thuật toán không chỉ dùng cho một bài toán với dữ liệu cụ thể mà có thể áp dụng với một lớp các bài toán cùng kiểu. Chẳng hạn người ta nói tới thuật toán tìm USCLN của hai số tự nhiên bất kỳ chứ không phải thuật toán tìm USCLN của 15 và 21. 8 Giải thuật xử lý thông tin và ngôn ngữ lập trình CÁC PHƯƠNG PHÁP BIỂU DIỄN THUẬT TOÁN  Dùng ngôn ngữ tự nhiên  Dùng sơ đồ khối  Dùng mã giả (pseudo-code) 9 Giải thuật xử lý thông tin và ngôn ngữ lập trình THUẬT TOÁN BỐC SỎI Dùng ngôn ngữ tự nhiên  Ví dụ: Bài toán bốc sỏi: có 30 viên sỏi. Hai người chơi, mỗi người đến lượt mình bốc từ 1 đến 3 viên sỏi. Ai bốc cuối cùng là thắng. Làm thế nào để người đi trước thắng. Bước 1, bốc 2 viên 1. Bước 1, bốc 2 viên 2. Bước 2: nếu số sỏi đã hết, dừng cuộc chơi, tuyên bố người (đi trước) thắng cuộc. Nếu không về bước tiếp theo 3. Bước 3: Đối phương bốc k viên 0 < k<4 4. Bước 4: Người đi trước bốc một lượng là 4 - k sau đó quay về bước 2 10 Giải thuật xử lý thông tin và ngôn ngữ lập trình [...]... và nêu rõ nghĩa c a tính ch t Gi i thu t x lý thông tin và ngôn ng l p trình CÂU H I VÀ BÀI T P 7 So sánh ngôn ng thu t toán v i ngôn ng máy và h p ng 8 K tên m t s ngôn ng l p trình mà b n bi t 9 N u các bư c th c hi n m t chương trình trên ngôn ng thu t gi i 10 Phân bi t l i cú pháp và l i ng nghĩa 11 Trình bày môi trư ng phát tri n tích h p 35 Gi i thu t x lý thông tin và ngôn ng l p trình H I VÀ... chương trình và n p d li u ch y Khi ch y v n còn có th có l i ng nghĩa L i ng nghĩa ch có th phát hi n khi ch y chương trình 29 Gi i thu t x lý thông tin và ngôn ng l p trình D CH SANG NGÔN NG Ph n m m so n th o Chương trình ngu n Chương trình d ch Các mô un i tư ng L i cú pháp So n th o 30 D ch MÁY Chương trình liên k t Chương trình ch y ư c L i liên k t Liên k t Gi i thu t x lý thông tin và ngôn ng... m t chương trình nh phân hoàn ch nh Sau ó m i n p chương trình này vào thi hành 25 Gi i thu t x lý thông tin và ngôn ng l p trình NGÔN NG B C CAO Ngôn ng máy và h p ng ph thu c vào máy, l i khó dùng, vì nó bu c ngư i l p trình ph i vi t tinh t n m c l nh máy Ngư i ta mu n các ngôn ng ch di n t thu t toán mà thôi, không liên quan n các h l nh c thù c a máy tính c th Các ngôn ng này g i là ngôn ng b... trên và c khâu g l i ư c tích h p vào trong m t t ng th 32 Gi i thu t x lý thông tin và ngôn ng l p trình TH O LU N S khác bi t gi a các m c ngôn ng l p trình, nguyên t c phân bi t các m c c a NNLT ánh giá hi u qu c a các thu t toán khác nhau cùng gi i quy t 1 bài toán Phân tích ưu, như c i m c a t ng phương pháp bi u di n gi i thu t? 33 Gi i thu t x lý thông tin và ngôn ng l p trình CÂU H I VÀ BÀI... thông d ch th c s trò m t máy o Trong ch óng vai thông d ch, không sinh chương trình tương ng trong mã nh phân - D ch chương trình trong ngôn ng thu t toán thành m t chương trình ng máy b o toàn ng nghĩa nh chương trình biên d ch (compiler) 28 Gi i thu t x lý thông tin và ngôn ng l p trình ngôn TH C HI N CHƯƠNG TRÌNH TRÊN NGÔN NG B C CAO So n th o chương trình nh m t b so n th o nào ó Phân tích t v ng... thu t x lý thông tin và ngôn ng l p trình D CH NGÔN NG B C CAO Máy tính ch có th thi hành tr c ti p ngôn ng nh phân, do ó ph i d ch b ng m t cách nào ó máy tính có th th c hi n ư c Có hai cách th c hi n: S d ng m t chương trình mô ph ng (ph n m m này ã mã nh phân g i là chương trình thông d ch - interpreter) Chương trình này - c và thi hành các l nh trong ngôn ng b c cao Do v y chương trình thông d... Kh i input u K t thúc Th t x lý 11 Gi i thu t x lý thông tin và ngôn ng l p trình BI U DI N B NG LƯU THU T TOÁN EUCLID B t u m,n m=n? + - d:= m m>n ? + m:=m-n - n:= n - m d K t thúc 12 Gi i thu t x lý thông tin và ngôn ng l p trình BI U DI N B NG GI MÃ Trong khi m ≠ n thì l p l i kh i sau: N u m > n thì B t m i m t lư ng là n i u ch nh l i giá tr N u ngư c l i thì c a m và n B t n i m t lư ng là m Cho... thông tin và ngôn ng l p trình t CÁC M C C A NGÔN NG L P TRÌNH Ngôn ng máy: ngôn ng th hi n tr c ti p trong h l nh c a máy Nói chung ngôn ng máy là ngôn ng m c các bít, nên cũng ư c g i là ngôn ng nh phân H p ng (assembly) là lo i ngôn ng v cơ b n là g n v i ngôn ng nh phân, m i l nh c a ngôn ng máy có m t l nh tương ng c a h p ng nhưng h p ng s d ng mã ch Ngôn ng b c cao – còn g i là ngôn ng thu t... ra ngôn ng máy (thay mã l nh và a ch ) Có các l nh macro, cho phép thay th hi u qu hơn Ưu i m: d l p trình d s a l i hơn ngôn ng máy Như c i m: v n còn ph c t p và ph thu c vào máy H p ng Mã máy trong h hexa MOV AX CHIEU_DAI ADD AX CHIEU_RONG 03 66 10 MOV NUA_CHU_VI AX 24 A1 64 10 A3 00 2B Gi i thu t x lý thông tin và ngôn ng l p trình D CH H P NG (ASSEMBLY) máy có th ch y ư c thì ph i d ch chương trình. .. 4 N u b-a > ε, quay v 1, n u không làm ti p 5 D ng, l y c làm nghi m 15 Gi i thu t x lý thông tin và ngôn ng l p trình TÍNH NGHI M X P X V I CHÍNH XÁC ε = 0.000001 C A PHƯƠNG TRÌNH f(x)= ex- x3 = 0 a:= 1; b:= 4; ε = 0.00001 c:= (a+b)/2 + f(c) >0 ? - a:= c 16 b:= c b-a < ε + c Gi i thu t x lý thông tin và ngôn ng l p trình BI U DI N B NG Gi MÃ Cho ε = 0.000001, a=1 b=4 L p l i kh i sau: Tính c:= (a+b)/2 . đánh giá giải thuật  Ngôn ngữ lập trình và các mức khác nhau của ngôn ngữ lập trình  Quá trình thực hiện chương trình trên ngôn ngữ bậc cao 3 Giải thuật xử lý thông tin và ngôn ngữ lập trình KHÁI. kiện + - 11 Giải thuật xử lý thông tin và ngôn ngữ lập trình BIỂU DIỄN BẰNG LƯU ĐỒ THUẬT TOÁN EUCLID m=n? m,n Bắt đầu n:= n - m m=n? - + d m>n ? + - m:=m-n d:= m 12 Giải thuật xử lý thông tin và ngôn. 7, 9. Giải thuật xử lý thông tin và ngôn ngữ lập trình2 NỘI DUNG  Khái niệm bài toán giải thuật  Đặc trưng của giải thuật  Các phương pháp diễn đạt giải thuật Sơ lược về đánh giá giải thuật  Sơ

Ngày đăng: 03/02/2015, 09:29

Từ khóa liên quan

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

Tài liệu liên quan