GIÁO ÁN SỐ 8 Lớp 11 soạn thảo, dịch, thực hiện và hiệu chỉnh chương trình Giáo viên hướng dẫn : Thầy Trần Doãn Vinh Sinh viên thực hiện : Nguyễn tiến Lợi A - Mục đích, yêu cầu - Giới thiệu cho học sinh biết các bước :soạn thảo, dịch, thực hiện và hiệu chỉnh chương trình. -Biết một số công cụ của môi trường Turbo pascal. -Bước đầu sử dụng chương trình dịch để phát hiện lỗi. -Bước đầu chỉnh sửa được chương trình dựa vào thông báo lỗi của chương trình dịch và tính hợp lý của kết quả thu được. B – phương pháp, phương tiện. - Sử dụng phương pháp : thuyết trình, vấn đáp, thực hành… - Sách giáo khoa, vở ghi, sách tham khảo… C - Tiến trình nội dung bài giảng I - Ổn định lớp - yêu cầu lớp trưởng báo cáo sỹ số. II - Kiểm tra bài cũ, giới thiệu bài mới - gọi học sinh lên bảng trả lời câu hỏi và cho điểm. -Đặt câu hỏi và giới thiệu bài mới. III - Nội dung bài học N ội dung Ho ạt động của thầy v à trò T.Gian - Đ ể thực hiện ch ương tr ình ta vi ết bằng ngôn ngữ lập trình, ta cần soạn thảo, sử dụng chương trình dịch để dịch chương trình đó sang ngôn ngữ máy. Các hệ thống lập trình cụ thể thường cung cấp phần mềm phục vụ cho việc soạn thảo, dịch và hiệu chỉnh chương trình. - Soạn thảo : Là quá trình gõ nội dung chương trình gồm phần khai báo và các lệnh trong thân chương trình. Về cơ bản việc soạn thảo chương trình gần giống việc soạn thảo văn bản thông thường. Để lưu nội dung chương trình vào đĩa bằng cách nhấn phím F2, nhập tên tệp rồi nhấn phím Enter - Biên dịch chương trình : chương trình dịch Tubo Passcal thuộc loại biên dịch. Lỗi cú pháp được phát hiện ngay trong quá trình dịch. Khi gặp lỗi, TP sẽ không dich tiếp mà - Đưa yêu c ầu ra cho học sinh : em hãy nêu 1 số ngôn ngữ lập trình mà em biết - Lấy ví dụ về ngôn ngữ Passcal, C, C ++ … - lấy ví dụ về giải phương trình bậc 2 : 2x 2 + 3x – 5 = 0 Program Var a , b, c , d : real; x 1 , x 2 : real ; begin write (‘ nhap cac he so a, b, c :’); readln (a,b,c); d:= sqr(b)-4a*c ; if d<0 then writeln (‘phuong trinh vo nghiem’) if d=0 then writeln(‘phuong trinh co nghiem kep : x 1 =x 2 =’,-b/(2-a) :0:5); if d>0 then x 1 := (-b=sqrt(d))/(2*a) ; d ừng lạ i cho bi ết lỗi v à v ị trí lỗi .Vì vậy trong quá trình soạn chương trình có thể dùng chương trình d ịch( kết hợp sử dụng các phím F7, F8, F4 và F9), nhấn tổ hợp phím Alt+F9. Nếu chương trình có lỗi cú pháp thì, phần mềm sẽ hiển thị thông báo. Nếu không có lỗi chương trình lại được tiếp tục. - Thực hiện chương trình(chạy chương trình) : Nhấn tổ hợp phím Ctr+F9( thuộc bảng chon Run). Nếu trước đó ta vừa dịch không có lỗi chương trình sẽ thực hiện ngay. + Trong quá trình chạy chương trình nếu gặp thủ tục readln không có tham sỗ thì người dung phải nhấn phím Enter hoặc readln có kèm theo nhiều danh sách biến thì nhập giá trị cho biến rồi nhấn Enter -Chú ý : Khi thực hiện chương trình TP vó thể không báo lỗi, chẳng hạn như lỗi chia chia cho 0, lỗi vượt phạm vi khai báo, lỗi tràn stack… -Có trường hợp không còn lỗi nhưng kết quả thu được vẫn x 2 ;= - b/a - x 1 ; writeln(‘phuong trinh co 2 nghiem :’); writeln(‘x 1 = ’); writeln(‘x 2 = ’); end; readln; - Giới thiệu cho học sinh một bộ test Cho bảng A kích thường m x n (m dòng, n cột), mỗi ô trong bảng có kí hiệu là A(i,j) (hàng i cột j) chứa 1 số nguyên dương. Từ ô A(i,j) có thể đi được tới A(i-1,j+1) hoặc A(i,j+1) hoặc A(i+1,j+1). Tìm đường đi từ cột 1 đến cột n sao cho tổng giá trị trong các ô đi qua là lớn nhất. Thuật giải: Ta gọi A(i,j) là giá trị trong các ô A(i,j). B(i,j) là tổng lớn nhất của các ô đi qua từ cột 1 đến ô A(i,j), như vậy ta có công sai.Trong trương h ợp n ày, nguyên nhân thường do bộ đọc dữ liệu sai hoặ viết chương trình chưa thể hiện đúng thuật toán hoặc thuật toán trong chương trình chưa đảm bảo tính đúng đắn. Thông thường người ta kiểm tra tính đúng đắn của thuật toán bằng một số bộ dữ liệu đặc biệt( bộ test ). Các dạng của bộ test + Kích thước nhỏ, dễ đoán nhận kết quả( không cần máy tính) +Kích thước nhỏ, dễ đoán nhận kết quả nhưng có tính chất đặc biệt ( dễ dẫn đến kết quả sai). +Kích thước lớn nhưng có quy luật tìm ra output bằng suy luận không nhờ máy tính +Kích thước lớn và có giá trị ngẫu nhiên để kiểm tra các lỗi về tổ chức dữ liệu và thời gian cho phép thực hiện. - Ngoài cách kiểm tra bằng các bộ test có thể dùng thủ tục write, writeln để hiển thị giá trị một vài biến đang cần quan tâm tại một thời điểm thực hiện trên màn hình hoặc th ức: Code: B(i,1)= A(i,1) B(i,j)= Max{B(i-1,j-1), B(i,j-1), B(i+1,j-1)} + A(i,j) Và kết quả cuối cùng là Max{B(i,n)}. *Trong gìơ thực hành nên đưa một số bộ test vào từng bài cụ thể s ử dụng tổ hợp ph ìm Ctl+F7 đ ể theo dõi các giá trị các biến trong cửa sổ watches( chạy chương trình), căn cứ vào giá trị các biến đó có thể điều chỉnh chương trình để có kết quả như mong muốn .Sau khi chương trình kết thúc thì xoá các lệnh này IV. Củng cố bài - Hôm nay chúng đã tìm hiểu soạn thảo, dịch, thực hiện và hiệu chỉnh chương trình, tìm hiểu thế nào là bộ test V. Bài tập về nhà - Viết một chương trình hoàn chỉnh để giải phương trình 5x + 10 =0 - Cho hay thử trên máy, tập sử dụng các phím chức năng F2, F3, F9,…. -Chuẩn bị bài cho giờ thực hành. VI. Nhận xét và rút kinh nghiệm giờ giảng . GIÁO ÁN SỐ 8 Lớp 11 soạn thảo, dịch, thực hiện và hiệu chỉnh chương trình Giáo viên hướng dẫn : Thầy Trần Doãn Vinh Sinh viên thực hiện : Nguyễn tiến Lợi . Giới thiệu cho học sinh biết các bước :soạn thảo, dịch, thực hiện và hiệu chỉnh chương trình. -Biết một số công cụ của môi trường Turbo pascal. -Bước đầu sử dụng chương trình dịch để phát hiện. - Hôm nay chúng đã tìm hiểu soạn thảo, dịch, thực hiện và hiệu chỉnh chương trình, tìm hiểu thế nào là bộ test V. Bài tập về nhà - Viết một chương trình hoàn chỉnh để giải phương trình 5x