a Viết thuật toán; b Sử dụng ngôn ngữ lập trình để diễn đạt; c Sử dụng ngôn ngữ lập trình để diễn đạt đúng thuật toán; d Sữ dụng ngôn ngữ lập trình để trình bày dữ liệu...[r]
(1)KIỂM TRA BÀI CŨ Em hãy so sánh ngôn ngữ máy và ngôn ngữ lập trình bậc cao? Chương trình dịch dùng để làm gì? Hướng dẫn trả lời Ngôn ngữ máy -Viết mã nhị phân, -Máy tình hiểu ngay, Ngôn ngữ bậc cao -Viết ngôn ngữ gần với ngôn ngữ tự nhiên, -Muốn máy hiểu phải chuyển -Mỗi loại máy có Chương trình dịch dùngsang để dịch từngữ chương ngôn máy, ngôn ngữ riêng trình viết ngôn ngữ khác sang ngôn vào -Không phụ thuộc ngữ máy loại máy, (2) TIẾT 18: GIẢI BÀI TOÁN TRÊN MÁY TÍNH MỤC ĐÍCH -Giới thiệu cách dùng máy tính để giải bài toán -Củng cố rõ khái niệm bài toán, thuật toán, liệu, lệnh, ngôn ngữ lập trình và chương trình YÊU CẦU -Nắm nội dung cụ thể các bước cần thực giải bài toán trên máy tính (3) TIẾT 18: GIẢI BÀI TOÁN TRÊN MÁY TÍNH B2 Lựa chọn B1 B5 Xác Viết định B3 Viết NOÄ I DUNG thiết kế B4 Hiệu chỉnh tài bài liệu toán chương trình thuật toán (4) TIẾT 18: GIẢI BÀI TOÁN TRÊN MÁY TÍNH NỘI DUNG XÁC ĐỊNH BÀI TOÁN XÁC ĐịNH BÀI TOÁN Ví dụ: Cho bài toán tìm ước chung lớn hai số M và N là số nguyên dương Hãy xác định bài toán trên? Input cho M,N Output tìm UCLN(M,N) Việc xác định bài toán là xác định rõ hai thành phần: Input Output Output (5) TIẾT 18: GIẢI BÀI TOÁN TRÊN MÁY TÍNH NỘI DUNG XÁC ĐỊNH BÀI TOÁN LỰA CHỌN HOẶC THIẾT KẾ THUẬT TOÁN a Lựa chọn thuật toán LỰA CHỌN HOẶC THIẾT KẾ THUẬT TOÁN a Lựa chọn thuật toán Cách BÀI TOÁN Có thể có nhiều cách giải (thuật toán) Cách Cách KẾT QUẢ -Lựa chọn thuật toán và tổ chức liệu Cần phải chọn cách giải (Thuật toán) cho : -Thuật toán cần ít thời gian thực hiện, chiếm ít ô nhớ, thực ít phép toán -Thuật toán ít phức tạp, (6) TIẾT 18: GIẢI BÀI TOÁN TRÊN MÁY TÍNH NỘI DUNG LỰA CHỌN HOẶC THIẾT KẾ THUẬT TOÁN XÁC ĐỊNH BÀI TOÁN LỰA CHỌN HOẶC THIẾT KẾ THUẬT TOÁN a Lựa chọn thuật toán b Diễn tả thuật toán b Diễn tả thuật toán Tìm ước chung lớn hai số nguyên dương M,N Xác định bài toán Trình bày ý tưởng vài cách giải Nếu M=N thì giá trị chung là UCLN Chia M cho N lấy dư là R Nếu R=0 thì UCLN(M,N)=N Nếu M>N thì UCLN(M,N)=UCLN(M-N,N) Nếu khác thì gán N cho M Nếu M<N thì gán R cho N UCLN(M,N)=UCLN(M,N-M) Tiếp tục chia M cho N (7) TIẾT 18: GIẢI BÀI TOÁN TRÊN MÁY TÍNH NỘI DUNG LỰA CHỌN HOẶC THIẾT KẾ THUẬT TOÁN XÁC ĐỊNH BÀI TOÁN LỰA CHỌN HOẶC THIẾT KẾ THUẬT TOÁN a Lựa chọn thuật toán b Diễn tả thuật toán b Diễn tả thuật toán ? Thuật toán B1:Nhập M,N B1: Nhập M, N B2: Nếu M=N thì giá trị chung là UCLN kết thúc B2: Chia M cho N lấy dư là R B3:Nếu M>N thì M M-N chuyển sang B2 B4: N N-M chuyển sang B2 B3: Nếu R=0 thì UCLN(M,N)=N kết thúc B4: M N , N sang B2 R chuyển (8) TIẾT 18: GIẢI BÀI TOÁN TRÊN MÁY TÍNH NỘI DUNG LỰA CHỌN HOẶC THIẾT KẾ THUẬT TOÁN XÁC ĐỊNH BÀI TOÁN LỰA CHỌN HOẶC THIẾT KẾ THUẬT TOÁN a Lựa chọn thuật toán b Diễn tả thuật toán b Diễn tả thuật toán Thuật toán Nhập M,N Nhập M,N Đ M=N Đưa KQ KT S Đ M>N S N Chia M cho N lấy dư R Đ R=0 M M-N S M N N-M Đưa KQ KT N R Nên lựa chọn cách giải (thuật toán) nào để viết chương trình? Giải thích sao? (9) TIẾT 18: GIẢI BÀI TOÁN TRÊN MÁY TÍNH NỘI DUNG XÁC ĐỊNH VIẾT CHƯƠNG TRÌNH Thuật toán+ Ngôn ngữ lập trình=chương trình Program Tin UCLN; Program Tin UCLN; LỰA CHỌN HOẶC THIẾT KẾ THUẬT TOÁN Var M, N, R:integer; Var M, N, R:integer; Begin Begin Write(‘Nhap vao M,N); Write(‘Nhap vao M,N); Read(M,N); a Lựa chọn thuật toán Read(M,N); R:=M mod N; b Diễn tả thuật toán While M<>N While N<>0 and R<>0 IF M>N THEN Begin M:=M-N; M:=N; N:=R; ELSE end; N:=N-M; Write(‘ uoc chung lon nhat la:’, N); Write(‘ uoc chung lon nhat la:’, M); End BÀI TOÁN VIẾT CHƯƠNG TRÌNH End (10) TIẾT 18: GIẢI BÀI TOÁN TRÊN MÁY TÍNH NỘI DUNG XÁC ĐỊNH HIỆU CHỈNH ? Chạy thử chương trình với các Input tiêu biểu để tìm Output: BÀI TOÁN LỰA CHỌN HOẶC THIẾT KẾ THUẬT TOÁN a Lựa chọn thuật toán b Diễn tả thuật toán VIẾT CHƯƠNG TRÌNH M=9,N=15; Nhập M,N 9cho 69 Chia15 cho cho15 Chia 96 lấy dư 3=0 0=0 9=0 6=0 HIỆU CHỈNH S M M N N 15 96 93 Đ KQ LÀ KT LẦN M N R 15 15 9 6 UCLN(M,N) (11) TIẾT 18: GIẢI BÀI TOÁN TRÊN MÁY TÍNH NỘI DUNG XÁC ĐỊNH HIỆU CHỈNH ? Chạy thuật toán trên theo bước và điền vào phiếu học tập với Input(M, N): M=6, N=1 để có Output BÀI TOÁN LỰA CHỌN HOẶC THIẾT KẾ THUẬT TOÁN Nhập M,N Nhập M,N Đ a Lựa chọn thuật toán M=N b Diễn tả thuật toán S VIẾT CHƯƠNG TRÌNH HIỆU CHỈNH Đưa KQ KT M>N Đ Đ R=0 M M-N S N Chia M cho N lấy dư R N-M Phiếu học tập S M N N R Đưa KQ KT (12) TIẾT 18: GIẢI BÀI TOÁN TRÊN MÁY TÍNH NỘI DUNG XÁC ĐỊNH BÀI TOÁN LỰA CHỌN HOẶC THIẾT KẾ THUẬT TOÁN a Lựa chọn thuật toán b Diễn tả thuật toán VIẾT CHƯƠNG TRÌNH HIỆU CHỈNH VIẾT TÀI LIỆU VIẾT TÀI LIỆU •Tài liệu phải mô tả chi tiết toàn bài toán, thuật toán, thiết kế chương trình, kết thử nghiệm và hướng dẫn sử dụng, •Tài liệu giúp cho việc sử dụng chương trình và đề xuất khả hoàn thiện thêm Các bước trên có thể lặp lặp lại nhiều lần ta cho chương trình đã làm việc đúng đắn và hiệu (13) TIẾT 18: GIẢI BÀI TOÁN TRÊN MÁY TÍNH CÂU HỎI TRẮC NGHIỆM NỘI DUNG Giải bài toán trên máy tính tiến hành qua bước? XÁC ĐỊNH BÀI TOÁN LỰA CHỌN HOẶC THIẾT KẾ THUẬT TOÁN a Lựa chọn thuật toán b Diễn tả thuật toán VIẾT CHƯƠNG TRÌNH HIỆU CHỈNH VIẾT TÀI LIỆU a) 1; b) 3: c) 5; d) Thuật toán tốt là? a) Sử dụng ít thời gian, ít nhớ b) Sử dụng ít thời gian, nhiều nhớ, ít phép toán c) Sử dụng nhiều thời gian, nhiều nhớ, ít phép toán d) Sử dụng ít thời gian, ít nhớ, ít phép toán Viết chương trình là? a) Viết thuật toán; b) Sử dụng ngôn ngữ lập trình để diễn đạt; c) Sử dụng ngôn ngữ lập trình để diễn đạt đúng thuật toán; d) Sữ dụng ngôn ngữ lập trình để trình bày liệu (14)