BÀI THỰC HÀNH 4: SỬ DỤNG CÂU LỆNH ĐIỀU KIỆN IF…THEN

Một phần của tài liệu lớp 8 - kì 1 (Trang 51 - 54)

IV. ĐÁP ÁN VÀ THANG ĐI ỂM:

BÀI THỰC HÀNH 4: SỬ DỤNG CÂU LỆNH ĐIỀU KIỆN IF…THEN

I. MỤC TIÊU:1. Kiến thức 1. Kiến thức

- Viết được câu lệnh If..then trong chương trình.

2. Kĩ năng

- Rèn được kĩ năng ban đầu về đọc các chương trình đơn giản và hiểu được ý nghĩa của thuật toán sử dụng trong chương trình.

II. CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH: 1. Giáo viên 1. Giáo viên

o Giáo án, SGK, chuẩn bị một số thuật toán và chương trình của các bài tập trong sgk..

2. Học sinh

o SGK, vở.

o Nghiên cứu trước nội dung bài thực hành.

III. PHƯƠNG PHÁP:

Thuyết trình, vấn đáp, thảo luận nhóm.

IV. TIẾN TRÌNH DẠY HỌC:1. Ổn định lớp:: kiểm tra sỉ số. 1. Ổn định lớp:: kiểm tra sỉ số.

2. Kiểm tra bài cũ:

- Kiểm tra sự chuẩn bị của thuật toán của bài 1, 2, 3 trong bài thực hành 4. - Viết lại cú pháp của câu lệnh điều kiện dạng thiếu và dạng đầy đủ.

3. Bài mới: Bài thực hành 4

Hoạt động của giáo viên và học sinh Nội dung

- HS: đọc bài tập và nêu yêu cầu bài toán. - GV: Hãy mô tả thuật toán để giải bài toán đã cho?

- HS: trả lời.

- GV: chốt lại và đưa ra thuật toán.

+ Bước 1: nhập hai số nguyên a, b từ bàn phím. + Bước 2: nếu a b≤ thì hiển thị ra màn hình giá trị biến a trước rồi đến giá trị biến b

+ Bước 3: nếu b < a thì hiển thị ra màn hình giá trị biến b trước rồi đến giá trị biến a.

+ Bước 4: kết thúc thuật toán.

GV yêu cầu HS quan sát và tìm hiểu ý nghĩa chương trình bên.

- Chia lớp ra thành các nhóm 2 -3 HS để gõ chương trình vào máy tính.

GV: làm thế nào để dịch và chạy chương trình? Lưu chương trình như thế nào?

- HS: trả lời.

- Yêu cầu HS cho dịch và chạy chương trình. Nhập các bộ dữ liệu để thử chương trình, lưu chương trình với tên Sap_xep;

- Các nhóm báo cáo kết quả của nhóm.

- Cho HS xem chương trình trong (SGK) đưa ra để thấy được sự khác nhau việc sử dụng câu lệnh điều kiện dạng thiếu và đầy đủ.

- Đưa ra nội dung bài tập 2, nêu yêu cầu bài? - HS: đưa ra thuật toán bài 2.

GV: đưa ra chương trình của bài 2 – sgk và yêu cầu HS tìm hiểu ý nghĩa các câu lệnh trong chương trình, theo em chương trình có lỗi gì không?

- Cho các nhóm thực hành gõ và lưu chương trình vào máy, cho dịch và chạy.

- Các nhóm cho chạy chương trình với các bộ dữ liệu mà gsk yêu cầu. Qua kết quả nhận được em thấy chương trình đã viết đã được chưa? Hãy tìm chỗ chưa đúng để sửa chương trình? - Các nhóm cử đại diện phát biểu ý kiến để tìm lỗi.

- GV: giải thích lỗi chương trình trong câu a (sgk): khi máy thực hiện đến câu lệnh thứ 2 là: If Long < Trang then writeln(‘ban Trang cao hon’)

nguyên a và ba khác nhau từ bàn phím và in hai số đó ra màn hình theo thứ tự không giảm

a) Mô tả thuật toán để giải bài toán đã cho ( tham khảo bài tập 4, bài 5)

b) Gõ chương trình sau: Program sap_xep; Uses crt; Var a, b, t : integer; Begin Clrscr;

{nhap 2 so nguyen a, b tu ban phim} Write(‘nhap so a:’); readln(a); Write(‘nhap so b:’); readln(b); {buoc 2: neu a< b thi hien thi ra man hinh gia tri bien a truoc roi den gia tri bien b}

If a <= b then write(a, ‘’, b);

{neu b< a thi hien thi ra man hinh gia tri bien b truoc roi den gia tri bien a}

If b < a then write (b, ‘’, a); Readln;

End.

c) Tìm hiểu ý nghĩa các câu lệnh trong chương trình.

Thử với bộ dữ liệu sau: (12, 53), (65, 20) Lưu chương trình với tên Sap_xep;

Bài 2:

Viết chương trình nhập chiều cao cảu hai bạn Long và Trang. In ra màn hình kết quả so sánh chiều cao của bai bạn, chẳng hạn “bạn Long cao hơn” (tham khảo thuật toán trong ví dụ 5, bài 5)

a) Gõ chương trình như trong sgk.

b) Lưu chương trình với tên aicaohon.pas. dịch và sửa lỗi.

c) chạy chương tình với các bộ dữ liệu (1.5, 1.6) và (1.6, 1.5) và (1.6, 1.6). Quan sát kết quả nhận được và nhận xét. Hãy tìm chỗ chưa đúng trong chương trình.

d) Sửa lại chương trình để có kết quả đúng. Program aicaohon;

Uses crt;

Var Long, Trang: real; Begin

Else writeln(‘hai ban cao bang nhau’);

Thì máy tính “không còn nhớ” đã thực hiện lệnh thứ nhất ngay trước là:

If Long > Trang then writeln(‘ban Long cao hơn’);

Nên khi thực hiện đến lệnh thứ 2 thì máy lại xét tất cả các trường hợp có thể, dẫn đến lỗi chương trình.

- Các nhóm tự sửa theo ý kiến và báo cáo. - GV: chốt lại và đưa ra đoạn chương trình để HS sửa.

If Long > Trang then writeln(‘Ban Long cao hon’) else

If Long < Trang then writeln(‘Ban Trang cao hon’)

Else writeln(‘Hai ban cao bang nhau’);

- Ngoài ra GV có thể đưa thêm phương án sửa khác để HS thử đó là dùng ba câu lệnh điều kiện dạng thiếu:

If Long > Trang then writeln(‘Ban Long cao hon’) ;

If Long < Trang then writeln(‘Ban Trang cao hon’) ;

If Long = Trang then writeln(‘hai ban cao bang nhau’);

- Cho HS nhận xét ý nghĩa câu lệnh trong đoạn chương trình phương án sửa thứ nhất, giới thiệu câu lệnh lặp if…then lồng nhau, đưa ra mẫu cấu trúc câu lệnh lặp if…then lồng nhau:

If <điều kiện 1> then <câu lệnh 1> else

If <điều kiện 2> then <câu lệnh 2> else <câu lệnh 3>;

- GV: nhấn mạnh: không đặt dấu phẩy trước từ khoá else. Chú ý trong Pascal dấu phẩy dùng để ngăn cách giữa các câu lệnh.

- GV: đưa ra nội dung bài tập 3. HS nêu yêu cầu của bài.

- GV: ba số dương có thể là ba cạnh của tam giác khi thoả mãn điều kiện gì?

- HS: khi a, b, c đồng thời thoả mãn cả ba điều kiện a + b > c, b + c > a và c + a > b

GV: đưa ra chương trình bài 3, yêu cầu các nhóm thảo luận và tìm ý nghĩa các câu lệnh trong chương trình, cho dịch và chạy với các bộ số tuỳ ý.

Các nhóm thảo luận và phát biểu kết quả, GV nhận xét.

GV: có điều gì mới trong chương trình trên?

Clrscr;

Write(‘nhap chieu cao cua Long:’); readln(Long);

Write(‘nhap chieu cao cua Trang:’); readln(Trang);

if Long > Trang then writeln(‘Ban Long cao hon’) else

if Long < Trang then writeln(‘Ban Trang cao hon’)

Else writeln(‘Hai ban cao bang nhau’); Readln;

End. Hoặc:

Program aicaohon; Uses crt;

Var Long, Trang: real; Begin

Clrscr;

Write(‘nhap chieu cao cua Long:’); readln(Long);

Write(‘nhap chieu cao cua Trang:’); readln(Trang);

If Long > Trang then writeln(‘Ban Long cao hon’) ;

If Long < Trang then writeln(‘Ban Trang cao hon’) ;

If Long = Trang then writeln(‘hai ban cao bang nhau’);

Readln; End.

Bài tập 3:

Dưới đây là là chương trình nhập ba số dương a, b và c từ bàn phím, kiểm tra và in ra màn hình kết quả kiểm tra ba số đó có thể là độ dài các cạnh của một tam giác hay không?

Program Ba_canh_tam_giac ; Uses crt;

Var a, b, c: real; Begin

Giới thiệu từ khoá and: để kết hợp nhiều phép so sánh đơn giản thành một phép so sánh. Giá trị của phép so sánh này chỉ đúng khi nào? Ngược lại phép so sánh này sai khi nào?

Hãy so sánh

(a + b > c) and (b +c > a) and (c + a > b) với

(a + b > c) and (b +c > a) and (c + a > b) HS: phát biểu ý kiến.

GV: giới thiệu từ khoá or: sử dụng để kết hợp nhiều phép so sánh đơn giản. Giá trị của phép so sánh đúng khi và chỉ khi ít nhất có một trong các phép so sánh thành phần có giá trị đúng. Ngược lại có giá trị sai.

Clrscr;

Write(‘nhap ba so a, b, c’); readln(a, b,c);

If (a + b > c) and (b +c > a) and (c + a > b) then

Writeln(‘a, b, c la ba canh cua mot tam giac!’)

Else writeln(‘a, b, c khong la ba canh của 1 tam giac!’)

Readln; End.

Một phần của tài liệu lớp 8 - kì 1 (Trang 51 - 54)

Tải bản đầy đủ (DOC)

(66 trang)
w