I. Mục tiêu
- Nắm được NNLT gồm 3 loại: NN máy, hợp ngữ, NN bậc cai
- Biết được vai trò của chương trình dịch
- Nắm được khái niệm biên dịch và thông dịch
- Biết 1 trong những nhiệm vụ quan trọng của ct dịch là phát hiện lỗi cú pháp của ct nguồn
II. Phương pháp và phương tiện dạy học
1. Phương pháp
Thuyết trình - vấn đáp
2. Phương tiện dạy học
Giáo viên: SGK, SGV, bài soạn
Học sinh: SGK, vở ghi
III. Tiến trình bài giảng
1. Ổn định lớp
Sĩ số: Vắng: Có phép: Không phép:
2. Nội dung bài mới
Bài soạn 1: KHÁI NIỆM LẬP TRÌNH VÀ NGÔN NGỮ LẬP TRÌNH I. Mục tiêu - Nắm được NNLT gồm 3 loại: NN máy, hợp ngữ, NN bậc cai - Biết được vai trò của chương trình dịch - Nắm được khái niệm biên dịch và thông dịch - Biết 1 trong những nhiệm vụ quan trọng của ct dịch là phát hiện lỗi cú pháp của ct nguồn II. Phương pháp và phương tiện dạy học 1. Phương pháp Thuyết trình - vấn đáp 2. Phương tiện dạy học Giáo viên: SGK, SGV, bài soạn Học sinh: SGK, vở ghi III. Tiến trình bài giảng 1. Ổn định lớp Sĩ số: Vắng: Có phép: Không phép: 2. Nội dung bài mới Nội dung Hoạt động của thầy và trò 1. Khái niệm a. Lập trình - Lập trình là sử dụng cấu trúc dữ liệu và các câu lệnh của NNLT cụ thể để mô tả dữ liệu và diễn đạt các thao tác của thuật toán - NNLT có 3 loại: + Ngôn ngữ máy: Mỗi loại máy tính đều có NN máy riêng, thường thì ct viết banừg NN của loại máy nào chỉ chạy được trên loại máy đó, ct viết bằng nn máy có thể được nạp trực tiếp vào bộ nhớ và thực hiện ngay + Hợp ngữ: + NNLT bậc cao b. Chương trình dịch. Là ct đặc biệt có chức năng chuyển đổi ct viết bằng NNLT bậc cao thành ct thực hiện được trên MT. Ct được dịch thành ct máy tính hiểu được thông thường là ct trên NN máy. 2. Phân loại ct dịch Ct dịch gồm 2 loại là thông dịch và biên dịch a. Thông dịch: Được thực hiện bằng cách lặp lại các bước sau: b1: Kiểm tra tính đúng đắn của câu lệnh tiếp theo trong ct nguồn b2: Chuyển đổi câu lệnh đó thành 1 hay nhiều câu lệnh tương ứng trong nn máy b3: Thực hiện các câu lệnh vừa chuyển đổi được b. Biên dịch: Được thực hiện qua các bước - Duyệt phát hiện lỗi, kiểm tra tính đúng đắn của các câu lệnh trong ct nguồn - Dịch toàn bộ ct nguồn thành 1 ct đích có thể thực hiện trên máy và có thể lưu trữ để sử dụng lại khi cần thiết GV: Thuyết trình đưa ra kiến thức Yêu cầu hs phân biệt NNLT cao với các ngôn ngữ khác Hs: NNLT bậc cao khác các NNLT khác là ct viết bằng NNLT bậc cao nói chung không phụ thuộc vào loại máy và phải dịch sang nn may mới hiểu được Gv: yêu cầu hs phân biệt thông dịch và biên dịch Hs: Thông dịch thì qt dịch là luân phiên và không có ct đích để lưu trữ, còn biên dịch thì cả chương trình nguồn và đích có thể lưu trữ lại dùng cho lần sau GV: Nhắc lại khái niệm về câu lệnh cho hs nắm được - Câu lệnh diễn tả các thao tác trong các bước của thuật toán - Câu lệnh đơn thực hiện bước có 1 thao tác - Câu lệnh cấu trúc thực hiện bước gồm dãy các thao tác 3. Cũng cố IV. Rút kinh nghiệm và bổ sung Bài soạn 2, 3 CÁC THÀNH PHẦN CỦA NGÔN NGỮ LẬP TRÌNH Số tiết:2 I. Mục đích – yêu cầu - Biết NNLT có 3 thành phần cơ bản là: Bảng chữ cái, cú pháp và ngữ nghĩa. Hiểu và phân biệt được 3 thành phần này - Biết một số khái niệm: Tên, tên chuẩn, tên dành riêng, hằng và biến - Yêu cầu hs ghi nhớ các quy định về tên, hằng và biến trong 1 ngôn ngữ lập trình. biết cách đặt tên đúng và nhận biết được tên sai quy định II. Phương pháp và phương tiện dạy học 1. Phương pháp: Thuyết trình, vấn đáp 2. Phương tiện: Giáo viên: SGK, SGV, bài soạn Học sinh: SGK, vở ghi III. Tiến trình bài giảng 1. Ổn định lớp Sĩ số: vắng: Có phép: Không phép: 2. Nội dung bài mới Nội dung Hoạt động của thầy và trò 1. Các thành phần cơ bản a/ Bảng chữ cái: Là tập hợp các kí tự dùng để viết chương trình, không được phép dùng bất kỳ kí tự nào ngoài các kí tự quy định trong bảng chữ cái b/ Cú pháp: Là bộ quy tắc để viết chương trình. Dựa vào chúng, người lập trình và ctd biết được tổ hợp nào của các kí tự trong bảng chữ cái là hợp lệ hay không hợp lệ, nhờ đó có thể mô tả chính xác thuật toán c/ Ngữ nghĩa: Xác định ý nghĩa các thao tác cần phải thực hiện, ứng với tổ hợp kí tự dựa vào ngữ cảnh của nó. - Các lỗi cú pháp được ctd phát hiện và thông báo cho người lập trình biết, 1 ctc ko còn lỗi cú pháp mới có thể đượcdịch sang ngôn ngữ máy - Các lỗi ngữ nghĩa không được máy phát hiện mà nó thường được phát hiện khi thử chạy ct trên các bộ dữ liệu 2. Một số khái niệm a. Tên Quy tắc đặt tên trong TP: - Là một dãy liên tiếp không quá 127 kí tự bao gồm chữ cái, chữ số hoặc dấu gạch dưới Ví dụ: abc, lan_diep - Trong TP không phân biệt chữ hoa chữ thường Có 3 loại tên trong TP là: + Tên dành riêng (từ khoá): Được NNLT quy định dùng với ý nghĩa riêng xác định, người lập trình không được sử dụng với ý nghĩa khác + Tên chuẩn: Được NNLT dùng với ý nghĩa nhất định nào đó, người Lt có thể khai báo và dùng chúng với ý nghĩa và mục đích khác + Tên do người lập trình đặt Được dùng với ý nghĩa riêng, xác định bằng cách khai báo trước khi sử dụng, các tên này không được trùng với tên dành riêng. GV: Bảng chữ cái của các NNLT nói chung không khác nhau nhiều. Trong TP bảng chữ cái bao gồm các kí tự sau: - Các chữ cái in hoa và in thường của bảng chữ cái tiếng anh. - 10 chữ số thập phân Ả rập: 0 1 2 3 4 5 6 7 8 9 - các kí tự đặc biệt: +-*/=[ ] . , ; # ^ $ @& ( ) : ‘ GV: Lấy ví dụ Trong LT TP phần đầu thân 1 chương trình phải được đặt trong cặp dấu: Begin..end. Do vậy nếu 1 phần thân ct mà ko viết vậy là ko hợp lệ. GV: Dựa vào cú pháp của 1 thân ct phải bắt đầu bằng cặp dấu begin và kết thúc bằng end có dấu chầm thì cưa thấy cú pháp begin..end. là 1 thân ct HS: chú ý quan sát lắng nghe và ghi chép bài đầy đủ. GV: ? yêu cầu hs lấy 5 tên hợp lệ và 5 tên không hợp lệ HS: trả lời GV: chú ý tên Hoan = HOAN GV: ví dụ các từ khoá trong TP là: Program, var, const GV: số nguyên trong TP là integer, số thực là real, hàm tính cosin của 1 số là sin. GV: khi giải pt bậc 2 cần dùng 1 biến lưu trữ b2-4ac ta đặt tên là delta.. HS: quan sát, lắng nghe và ghi chéo bài đầy đủ Tiết 3 Mục tiêu: - HS nắm được khái niệm về hằng và biến, chú thích. - HS nắm được các dạng bài tập của chương 1 2b. Hằng và biến. - Hằng: Là đại lượng có giá trị không thay đổi trong quá trình thực hiện chương trình Trong NNLT thường có 3 loại hằng sau: + Hằng số học: Là các số nguyên, thực VD: 12,3; 4;-45.. + Hằng logíc: Là giá trị đúng hoặc sai tương ứng với True hoặc False. VD: True, False + Hằng xâu: Là chuỗi các kí tự trong bộ mã ASCII, khi viết chuỗi kí tự được đặt trong cặp dấu nháy ‘’ hoặc “ “ Ví dụ Trong TP: ‘lan’ Trong C: “lan” Chú ý: Hằng là dấu nháy đơn được viết trong NNLT TP là ‘’’’ - Biến: Biến là đại lượng được đặt tên dùng để lưu trữ giá trị và giá trị có thể được thay đổi trong quá trình thực hiện chương trình Biến phải được khai báo trước khi sử dụng c. Chú thích. Trong khi viết chương trình có thể viết các chú thích cho chương trình, chú thích không làm ảnh hưởng đến chương trình Ví dụ: Trong TP, chú thích được đưa trong cặp dấu {} hoặc (* *). GV: Lấy ví dụ minh hoạ cho các hằng Hằng số học: 2.5; 45; 67; 4+5; 1 số trong hệ hexa biễu diễn trong TP phải thêm dâu $ đằng trước ví dụ $A1 bd số 161 Hằng logic: true, false Hằng xâu: ‘abc’ HS: Lấy 5 ví dụ về hằng đúng GV: Khi viết chú thích trong 1 chương trình thì không làm ảnh hưởng gì đến ct. Ví dụ khi lập trình để phân biệt rõ các bài toán ta ghi đầu đề bài toán lên đầu chương trình để người đọc biết ct giải bài toán nào Khi đó trong TP ta viết {gpt_bac2} 3. Cũng cố Nhắc lại một số khái niệm: Tên, hằng, biến, chú thích Yêu cầu HS về làm bài tập 1 đến 5 trang 13 (SGK) IV. RÚT KINH NGHIỆM VÀ BỔ SUNG Bài soạn 4: BÀI TẬP Số tiết: 1 I. Mục tiêu - Học sinh luyện tập về cách đặt tên, xác định tên, hằng, biến - Khắc sâu một số khái niệm: Chương trình dịch, biên dịch, thông dịch, cú pháp, ngữ nghĩa. II. Phương pháp – phương tiên 1. Phương tiện: GV: SGK, SGV, bài soạn HS: SGK, vở ghi. 2. Phương pháp: Vấn đáp, luyện tập III. Tiến trình lên lớp 1. Ổn định lớp. Sĩ số: Vắng: Có phép: Không phép: 2. Kiểm tra bài cũ. Câu hỏi 1: Cú pháp là gì? Ngữ nghĩa là gì? Lấy VD minh hoạ trong NNLT TP? Câu hỏi 2: Tên chuẩn và tên dành riêng khác nhau ntn? Lấy vd minh hoạ? Câu hỏi 3: Khái niệm hằng, biến? Lấy ví dụ minh hoạ? 3. Nội dung bài mới Nội dung Hoạt động cuả thầy và trò A. Bài tập trong SGK Bài 1: Đáp án Phải xây đựng NNLT bậc cao vì: - NNBC gần với nn tự nhiên hơn - NNLTBC không phụ thuộc vào phần cứng máy tính - Dễ hiểu, dễ hiệu chỉnh và nâng cấp - Cho phép làm việc với nhiều bộ dữ liệu khác nhau, cách tổ chức dữ liệu đa dạng, thuận tiện cho mô tả thuật toán. Bài 6: (trang 13 SGK) Đáp án: Các ý sai: c,h,e vì 6,23: Dấu phẩy cần thay bằng dấu . ‘c: thiếu dấu nháy ‘ A20: chưa rõ giá trị B. Bài tập ra thêm Bài 1: Trong chế độ thông dịch, giả sử 2/3 số câu lệnh trong ct đã được thực hiện, có thể khẳng định rắng: CT ko còn có lỗi cú pháp nữa không? Đáp án; Không ví cú pháp của các câu lệnh chưa thực hiện chưa được kiểm tra. Bài 2: Trong dòng chú thích có thể chứa các kí tự ngoài bẳng chữ cái không? tại sao? Đáp án: Có thể vid TCD laọi bỏ chú thích khi dịch chương trình Bài 3. Hãy chọn những biểu diễn tên trong những bd dưới đây ‘****’ -5+9 PpPpPp 256.53 FA33C9 (2) Đáp án: c,e GV: Gọi hs đứng tại chổ trả lời HS: đứng dậy trả lời GV: Các em chú ý để biểu diễn 1 hằng là 1 số trong hệ hexa ta phải thêm $ vào trước, ví dụ $A1 biểu diễn hằng số là 161 GV: -5+9 là 1 biểu thức cho kết quả là 1 số nên nó cũng là một hằng số 4. Cũng cố và ra bài tập về nhà Phát biểu nào dưới đây là đúng: Khi cần thay đổi ý nghĩa của 1 từ khoá nào đó người lập trình cần khai báo theo ý nghĩa mới Tên do người lập trình đặt không được trùng với từ khoá nhưng cũng có thể trùng với tên chuẩn Mọi đối tượng có giá trị thay đổi trong ct đều gọi là biến Trong ct tên gọi cũng là một đối tượng không thay đổi nên cũng có thể xem là hằng IV. Rút kinh nghiệm và bổ sung Bài soạn 5: CHƯƠNG II: CHƯƠNG TRÌNH ĐƠN GIẢN Bài 3: Cấu trúc chương trình I. Mục đích - yêu cầu - Hiểu chương trình là sự mô tả của thuật toán bằng 1 NNLT - Biết cấu trúc chung của 1 ct - Nắm được và biết cách khai báo 1 số thành phần của chương trình là hằng, tên chương trình, thư viện. - Nhận biết được các thành phần của chương trình II. Phương pháp và phương tiện dạy học Phương pháp: Thuyết trình + vấn đáp Phương tiện dạy học Giáo viên: SGK, bài soạn, SGV Học sinh: SGK, vở ghi III. Tiến trình lên lớp Ổn định lớp Sĩ số: Vắng: Có phép: Không phép; 2. Nội dung bài mới Nội dung Hoạt động của thầy và trò 1. Cấu trúc chung Một ct trong TP có cấu trúc như sau: [] 2. Các thành phần của ct a. Phần khai báo - Khai báo tên ct Phần này có thể có hoặc không, trong TP nếu có được khai báo như sau: Program ; Với tên chương trình do người lt đặt - Khai báo thư viện Muốn sử dụng đến thư viện nào đó ta cần phải khai báo thư viện theo cú pháp: Uses - Khai báo hằng Cú pháp: Const =; Thường được sử dụng cho giá trị xuất hiện nhiều lần trong ct Khai báo hằng tạo điều kiện thuận lời cho việc chỉnh sửa lại giá trị của hằng trong toàn bộ ct khi cần - Khai báo biến: (Học tiết sau) b. Phần thân chương trình Phần thân chương trình bắt buộc phải có và được đánh dấu bắt đầu bằng 1 cặp dấu hiệu mở đầu và kết thúc Ví dụ trong TP: Begin ; End. 3. Một số ví dụ đơn giản SGK GV: Để diễn giải cú pháp của NNLT ... ểu thức logic đơn giản, các bt quan hệ liên kết với nhau bởi phép toán logic - Giá trị BTLG là true hoặc False - Các BTQH thường được đặt trong cặp ngoặc ( và ). 6. Câu lệnh gán Trong TP câu lệnh gán có dạng: :=; Trong đó tên biến là tên của biến đơn, kiểu của giá trị biểu thức phải phù hợp với kiểu của biến. Chức năng của lệnh gán là đặt cho biến có tên ở vế trái dấu ‘:=’giá trị mới bằng giá trị của bt ở vế phải. GV: Để mô tả các thao tác trong thuật toán, mỗi NNLT đều xác định và sử dụng 1 số khái niệm cơ bản: Phép toán, biểu thức, gắn giá trị cho biến, ta sẽ đi tìm hiểu từng thành phần GV thuyết trình đưa ra kiến thức HS: Chú ý lắng nghe và chép bài GV lấy ví dụ: 6*(3+7) (a+b)*c; 6*a+7*b Khi giải pt bậc 2, với = b2-4ac>0 thì tính nghiệm thì cho kết quả sai mà phải dùng dấu () như sau: GV: Lấy ví dụ minh hoạ sau đó yêu cầu hs lấy ví dụ HS: Chú ý lắng nghe bài, phát biểu GV: Biểu thức x= được viết như sau: X=(-b-sqrt(sqr(b)-4*a*c))/(2*a); GV: Hàm tính căn bậc hai của 1 số là sqrt (x) GV: Cho biểu thức quan hệ sau 2a > 3+6b (*) Trong đó 2a và 3+6b là các BT > là phép toán quan hệ Nếu a=3, b=1 thì btqh (*) nhận kết quả là false, nếu a=5, b=1 thì (*) nhận True HS: Lấy ví dụ minh hoạ GV: Dùng biến x để mô tả tuổi của một người ta có điều kiện của x là: (x>=1)and (x<=150) GV: ví dụ x:=25 có nghĩa là gán giá trị 25 cho biến x Cũng cố và ra bài tập về nhà Bài 1: Hãy viết lại các biểu thức sau từ dạng toán học sang dạng biểu diễn tương ứng trong Pascal a. b. cosx c. d. Bài 2. Cho các cặp biểu thức: Bên trái là biểu thức ở dạng toán họcvà bên phải là biểu diễn tương ứng trong Pascal. Ở dạng biểu diễn trong Pascal có 1 số lỗi hãy chỉ ra các lỗi đó. A+sin(x)/sqrt(a*a+x*x+1) 2*exp(abs(x+y))/(sqr(x)*sqr(y)) Sqr(sin)(x)/(y+0.5) Exp(1/3*ln(-8))/(1+exp(x)) IV. NHẬN XÉT VÀ NHỮNG BỔ SUNG Bài soạn 7: Bài 7 CÁC THỦ TỤC VÀO RA ĐƠN GIẢN I. Mục đích – Yêu cầu - Biết các câu lệnh vào ra đơn giản để nhập thông tin từ bàn phím và đưa thông tin ra màn hình - Viết được 1 số lệnh vào ra đơn giản II. Phương pháp và phương tiện dạy học 1. Phương pháp: Thuyết trình và vấn đáp 2. Phương tiện dạy học: - Giáo viên: SGK, SGV, bài soạn - Học sinh: SGK, vở ghi III. Tiến trình dạy học 1. Ổn định lớp Sĩ số: Vắng: Có phép: Không phép: 2. Kiểm tra bài cũ Câu hỏi: Nêu cú pháp, ý nghĩa về lệnh gán trong Pascal, lấy ví dụ minhhoạ về lệnh gán 3. Nội dung bài mới Nội dung Hoạt động của thầy và trò 1. Nhập dữ liệu vào bàn phím Việc nhập dữ liệu từ bàn phím được thực hiện banừg thủ tục chuẩn: Read(); hoặc Readln() Trong đó Danh sách biến vào là một hoặc nhiều tên biến đơn (trừ biến kiểu boolean). Nếu nhiều biến thì các biến cách nhau bởi dấu phẩy Việc nhập giá trị cho biến chỉ kết thúc khi nhấn phím enter Khi nhập giá trị cho nhiều biến, những giá trị này được gõ cách nhau bởi ít nhất 1 dấu cách hoặc phím enter 2. Đưa dữ liệu ra màn hình Khi đưa dữ liệu ra màn hình, Pascal cung cấp thủ tục chuẩn: Write() hoặc Writeln() Trong đó DS kết quả ra có thể là biến đơn, biểu thức hoặc hằng. Các thành phần trong DS kết quả ra được viết cách nhau bởi dấu phẩy Chú ý: - Các thủ tục readln và writeln có thể không có tham số. - Với thủ tục write và writeln có quy cách đưa thông tin ra như sau: Kết quả thực: Write(X::); hoặc writeln(X:m:n); Kết quả khác: Write(Y:); hoặc writeln(Y:); - Trong đó X là kết quả thực còn Y là kết quả khác thực, m là độ rộng của biểu diễn X và Y, n là số chữ số thập phân trong bd của X. - Nếu phần dành cho các chữ số phần nguyên (m-(n+1))>chữ số phần nguyên của X thì trình dịch của TP thêm các dấu cách vào bên trái bd của X sao cho đủ. Trong trường hợp ngược lại Pascal vẫn hiển thị đủ các chữ số phần nguyên của số X - Nếu n số chữ số thập phân của số bd thì các số 0 được điền thêm vào cuối phần thập phân cho đủ n chữ số phần thập phân GV: Xét bài toán ‘tìm số nghiệm của pt bậc 2 ax2+bx+c=0 ‘ Chúng ta thực hiện nhập các bộ số a,b,c từ bàn phím và mỗi lần nhập thì máy tính lại cho kết luận nghiệm tương ứng với bộ số nhập vào. Việc nhập các số a,b,c là việc đưa dữ liệu từ bàn phím vào gán cho các biến a,b,c. Kết quả tính toán được lưu trữ tạm thời trong bộ nhớ và được đưa ra ngoài màn hình hoặc đĩa thông qua ct đưa dl ra. Các ct đưa dl vào và ra đó được gọi chung là các thủ tục chuẩn vào/ra đơn giản của NNLT Pascal Ví dụ Read(N); Dùng để nhập 1 giá trị tù bàn phím và gán cho biến N Readln(a,b,c); Dùng để nhập lần lượt 3 giá trị từ bàn phím và gán giá trị đó tương ứng cho ba biến a,b,c GV: Yêu cầu HS thực hiện nhập dữ liệu cho 3 biến x,y,z thuộc kiểu số thực HS: Suy nghĩ và trả lời GV: Khi nhập dl cho câu lệnh Readln(a,b,c); ví dụ ta sẽ nhập bộ 3,6,7 ta se nhập như sau: 3 cách hoặc enter 6 cách hoặc enter 7 enter Chú ý: khi nhập dữ liệu ta nên dùng readln, khi sử dụng readln luôn chờ gõ phím enter. GV: Lấy ví dụ minh hoạ Write(a,b,c): Đưa ra giá trị các biến a,b,c Write(‘pt co nghiẹm kep x=’,-b/(2*a)); DSkq là hằng xâu và biểu thức Chú ý: - Các hằng xâu thường được dùng để tách các kết quả hoặc đưa ra chú thích - Với thủ tục writeln, sau khi đưa các kq ra màn hình thì con trỏ sẽ chuyển đến đầu dòng tiếp theo, còn write thì không GV: Lấy vd minh hoạ HS: Chú ý lắng nghe và xây dựng bài GV: Writeln không có tham số dùng để xuống dòng còn readln thì ct sẽ tạm dừng ct cho người dung có thể quan sát kq ra trên màn hình, muốn ct chạy tiếp thì nhấn phím enter. GV: Lấy ví dụ minh họa HS: Chú ý quan sát và ghi chép bài đầy đủ 4. Cũng cố và ra bài tập - Cũng cố: Nhắc lại một số thủ tục: Readln, read, write, writeln. - Ra bài tập: Viết chương trình thực hiện công việc sau: Nhập vào tuổi của một người và đưa ta thông báo:’ so tuoi của ban hien nay la ‘,tuoi IV. Rút kinh nghiệm và bổ sung: CHƯƠNG III: CẤU TRÚC RẼ NHÁNH VÀ LẶP Bài 9: CẤU TRÚC RẼ NHÁNH I. MỤC ĐÍCH – YÊU CẦU HS nắm được: Nhu cầu của cấu trúc rẽ nhánh trong biểu diễn thuật toán Hiểu được câu lệnh rẽ nhánh (dạng khuyết và đủ) Hiểu và câu lệnh ghép Sử dụng cấu trúc rẽ nhánh trong mô tả thuật toán của một số bài toán đơn giản II. PHƯƠNG PHÁP VÀ PHƯƠNG TIỆN DẠY HỌC Phương pháp: Thuyết trình, vấn đáp kết hợp mô phỏng bằng dụng cụ trực quan Phương tiện: - Giáo viên: SGK, bài soạn, máy chiếu. - Học sinh: SGK, vở ghi. III. TIẾN TRÌNH BÀI GIẢNG 1. Ổn định lớp. Sĩ số: Vắng: Có phép: Không phép: 2. Nội dung bài mới Nội dung Hoạt động của thầy và trò 1. Rẽ nhánh. Xét ví dụ: Ví dụ 1: Tính diện tích của hình chữ nhật khi nhập vào kích thước a, b. Ta có chương trình: Program Dien_tich; Var S,a,b:real; Begin Writeln(‘nhap kich thuoc a va b’); Readln(a,b); Writeln(‘ Dien tich S= ‘,a*b); Readln End. Nhận xét: Để kết quả đúng (S>0) thì phải thoả mãn điều kiện: - Nếu a >0 và b >0 thì tính S=a*b hoặc - Nếu a>0 và b>0 thì tính S=a*b, nếu không thì thông báo ‘nhap sai du lieu’. Kết luận: Có nhiều mệnh đề diễn đạt dưới dạng : - Nếu .thì - Nếu.thì.,nếu không thì. Cấu trúc trên được gọi là cầu trúc rẽ nhánh 2. Câu lệnh If-then. a. If-then dạng khuyết - Cú pháp: If then ; Trong đó: Điều kiện là một biểu thức lô gíc (ví dụ (a>0) and (b>0)) Câu lệnh là một câu lệnh trong TP (ví dụ s:=a*b;) - Hoạt động: Điều kiện sẽ được tính và kiểm tra, nếu điều kiện đúng thì câu lệnh sẽ được thực hiện, ngược lại câu lệnh sẽ bị bỏ qua. b. If – then dạng đủ - Cú pháp: If then else ; Trong đó: Câu lệnh 1, câu lệnh 2 là 2 câu lệnh của Pascal. Điều kiện là biểu thức logic. - Hoạt động: Điều kiện được kiểm tra, nếu đúng thì thực hiện câu lệnh1, nếu sai thì thực hiện câu lệnh 2. Ví dụ: If (a>0) and (b>0) then s:=a*b else write (‘du lieu khong hop le’); Chú ý: Câu lệnh if-then dạng đủ có thể lồng nhau Ví dụ: xét 1 số a nhập từ bàn phím là số âm, dương,0: If a>0 then write(‘so duong’) else If a<0 then write(‘so am’) else write(‘so 0’); 3. Câu lệnh ghép Trong một số trường hợp sau từ khoá then hoặc từ khoá else có nhiều hơn một câu lệnh cần thực hiện, khi đó ta phải gộp các lệnh đó thành 1 câu lệnh, câu lệnh này gọi là câu lệnh ghép Cú pháp: Begin ; End Chú ý: Câu lệnh ghép mà nằm sau từ khoá else thì sau end phải có dấu chấm phẩy con nếu sau từ khoá then thì không cần dấu ; sau từ khoá end GV: Gọi 1 HS đứng tại chổ đọc chương trình của bài toán cho GV viết lên bảng. HS: Đứng dạy trả lời GV: Chiếu chương trình đúng của bài toán trên màn hình sau đó cho chương trình chạy với 2 bộ dữ liệu và yêu cầu hs nhận xét về kết quả của chúng bộ1 : a= 3, b=5; bộ 2: a=-3, b=5 HS: Nhận xét GV: Theo chương trình thì máy tính thực hiện một cách tuần tự từ trên xuống dưới, dù khi ta nhập kích thước là số âm thì máy tính cũng tính S=a*b, do đó dẫn đến kết quả sai (S=-3*5=-150 và b>0 thì tính s=a*b. Vậy đã xuất hiện mệnh đề nếu..thì.. GV: Trong lập trình các NNLT đều cung cấp các câu lệnh dùng để diễn đạt cấu trúc rẽ nhánh, chúng ta sẽ tìm hiểu trong NNLT Turbo pascal. GV: Áp dụng câu lệnh vào ví dụ 1 ta có câu lệnh if- then như sau: If (a>0)and(b>0) then s:=a*b; GV: Chiếu chương trình đúng khi sử dụng câu lệnh If-then rồi chạy chương trình trên Pascal cho HS quan sát HS: Chú ý quan sát, lắng nghe và chép bài. GV: Tiếp tục chạy chương trình với bộ dữ liệu a=3, b=4 và a=-3, b=4 và yêu cầu HS nhận xét kết quả HS: Quan sát và nhận xét GV: Với bộ dữ liệu đầu là hợp lệ nên máy cho kết quả đúng (s=12.00) nhưng với bộ dữ liệu 2 không hợp lệ nên trên màn hình kết quả không thông báo gì làm ta thấy khó chịu, thay vì xuất hiện màn hình đen không có thông báo gì ta muốn có 1 thông báo ‘du lieu khong hop le’ trên màn hình mỗi khi dữ liệu nhập không đúng ( không dương). Khi đó Pascal cho phép ta dùng câu lệnh if-then dạng đủ GV: Giới thiệu về cấu trúc rẽ nhánh dạng đủ HS: Quan sát và chép bài GV: Yêu cầu HS áp dụng câu lệnh if-then dạng đủ để kiểm tra 1 số x là chẵn hay lẻ HS: Trả lời If (x mod 2=0 ) then write(‘la so chan’) else write(‘la so le’); GV: Yêu cầu HS viết câu lệnh xét delta của 1 phương trình bậc 2 HS: Lên bảng viết GV: Quay lại với ví dụ 1 ở đầu giờ, ta thêm yêu cầu vào bài toán như sau: Tính chu vi, diện tích và đường chéo của hình chữ nhật khi nhập vào số đo 2 cạnh là a và b, ta gọi đây là ví dụ 2 Khi đó, nếu dữ liệu nhập đúng (a>0 và b>0) thì ta phải thực hiện tới 3 câu lệnh là tính C, S, đường chéo, tức là nhiều hơn 1 câu lệnh. Trong trường hợp đó ta gộp các câu lệnh đó thành 1 câu lệnh, câu lệnh này là câu lệnh ghép, bắt đầu bằng begin và kết thức bằng end; Vậy câu lệnh ghép là gì? HS: Suy nghĩ trả lời GV: Đưa ra cú pháp và hoạt động của câu lệnh ghép. GV: Chiếu chương trình của ví dụ 2 sau đó chạy chương trình cho hs quan sát ? Yêu cầu Hs viết chương trình bài toán: Tính nghiệm phương trình bậc 2. HS: Suy nghĩ và thực hiện 3. Cũng cố và ra bài tập về nhà - Nhắc lại 1 số khái niệm: Cấu trúc rẽ nhánh, câu lệnh if-then đủ và khuyết, câu lệnh ghép - Yêu cầu HS về làm bài tập số 2,4 trong SGK trang 51. IV. NHẬN XÉT VÀ NHỮNG BỔ SUNG
Tài liệu đính kèm: