Chơng trình: Var s, n: integer;

Một phần của tài liệu GA tin 8_ki 2_2013 (Trang 37 - 42)

Var s, n: integer; Begin s := 10; n := 0; while s < 10 do begin n := n + 3; s := s – n; end; writeln(‘s =’, s:6:2); readln; end.

Hoạt động 2: Bài tập 2 (bài 4 sgk)

GV: Yêu cầu hs đọc đề ra, suy nghĩ, thảo luận -> trả lời câu hỏi.

Hs: Suy nghĩ, thảo luận -> trả lời:

Gv: Với đoạn lệnh đó chơng trình sẽ thực hiện bao nhiêu vòng lặp? Giá trị của n và của s sẽ là bao nhiêu?

Hs: quan sát , trả lời

Gv: Với đoạn lệnh đó chơng trình sẽ thực hiện bao nhiêu vòng lặp? Giá trị của n và

Câu a. s := 0; n := 0; while s <= 10 do begin n := n + 1; s := s + n end; N 0 1 2 3 4 5 S 0 1 3 6 10 15 Vòng lặp 1 2 3 4 5 5 - Chơng trình sẽ thực hiện 5 vòng lặp

- Sau đoạn chơng trình giá trị của n là 5 và giá trị của s là 15.

Câu b.

s := 0; n := 0;

while s <= 10 do n := n + 1; s := s + n

của s sẽ là bao nhiêu? ? Hãy rút ra nhận xét? Hs: đọc lại chơng trình, nhận xét Gv: chuẩn kiến thức N 0 1 2 3 ... S 0 0 0 0 Vòng lặp 1 2 3 4 ...

Vì s luôn luôn bằng 0 (bé hơn 10) nên vòng lặp sẽ vô hạn.

Suy nghĩ, thảo luận -> rút ra nhận xét:

Khi thực hiện vòng lặp, điều kiện trong câu lệnh phải đợc thay đổi để sớm hay muộn giá trị của điều kiện sẽ đợc chuyển từ đúng sang sai, để vòng lặp không rơi vào trờng hợp lặp vô hạn.

Hoạt động 3: Bài tập 3 (bài 5 sgk)

Gv: Yêu cầu học sinh đọc đề ra, suy nghĩ, thảo luận -> trả lời câu hỏi:

Hs: Suy nghĩ, thảo luận -> trả lời:

? Hãy chỉ ra lỗi trong câu lệnh trong câu a? Hs: đọc, tìm các lỗi

Gv: Hãy sửa lại cho đúng? Hs: lên bảng, sửa

Gv: Hãy chỉ ra lỗi trong câu lệnh trong câu b?

? Hãy sửa lại cho đúng? Hs: lên bảng, sửa

Gv: Hãy chỉ ra lỗi trong câu lệnh trong câu c?

? Hãy sửa lại cho đúng? Hs: lên bảng, sửa

Gv: nhận xét, cho điểm

Câu a.

x := 10; while x := 10 do x := x + 5;

x := 10 là sai bởi vì đây không phải là một điều kiện. Sửa lại: x = 10,.. Câu b. x := 10; while x = 10 do x = x + 5; x = x + 5 không phải là một phép gán sửa lại: x := x + 5; Câu c. s := 0; n := 0; while s <= 10 do n := n +1; s := s + n;

vì s luôn luôn bằng 0 (s < 10) nên vòng lặp sẽ vô hạn. sử lại: s := 0; n := 0; while s <= 10 do begin n := n +1; s := s + n; end; Hoạt động 4: Bài tập 4

GV: Treo bảng phụ y/c hs đọc đề bài

Viết chơng trình tính tổng n số tự nhiên đầu tiên với n đợc nhập vào từ bàn phím bằng 2 lệnh lặp for ... do và while ... do, thông báo kết quả ra màn hình?

Hs: Ghi đề và suy nghĩ làm bài. GV: Yêu cầu hs suy nghĩ, làm bài? ? Hãy mô tả thuật toán của bài toán.

Gv: Yêu cầu 2 hs lên bảng trình bày hai chơng trình viết bằng 2 câu lệnh khác nhau.

Hs: lên bảng

Gv: gọi nhận xét, cho điểm

Thuật toán: B1: nhập n, i <- 1

B2: trong khi i ≤ n thì s <- s + i; i <- i + 1 B3: thông báo kết quả và kết thúc.

Cách 1: Var s, i, n: integer; Begin s := 0; Writeln(‘Nhap n =’); readln(n); For i := 1 to n do s := s + i; Writeln(‘Tong la:’, s); Readln; End. Cách 2: Var s, i, n: integer;

Begin Writeln(‘Nhap n =’); readln(n); i := 1; s := 0; while i <= n do begin s := s + i; i := i + 1; end; Writeln(‘Tong la:’, s); Readln; End. 4. Cũng cố.

- GV hệ thống lại nội dung chính sau tiết bài tập.

5. Hớng dẫn về nhà.

- Yêu cầu hs về nhà ôn tập kiến thức cũ.

- BT: Sử dụng ngôn ngữ lập trình Pascal viết chơng trình tính tổng các số tự nhiên chắn và các số tự nhiên lẽ trong n số tự nhiên đầu tiên với n đợc nhập vào từ bàn phím. In kết quả tính toán ra màn hình.

---

Kiểm tra, ngày 28 tháng 2 năm 2013 TP Nguyễn Ngọc Tuân Ngày soạn: 6/3 Ngày giảng:11/3 Tiết 54: Bài tập a. Mục tiêu:

1. Kiến thức: Hệ thống lại một số kiến thức về lý thuyết đã học.

2. Kỹ năng: Vận dụng sự hiểu biết đó vào viết các chơng trình máy tính có sử dụng lệnh điều kiện, lệnh lặp với số lần biết trớc và lệnh lặp với số lần cha biết trớc.

3. Thái độ: Rèn luyện tính kiên trì ham học hỏi, hiểu biết.

b. Chuẩn bị :

- Giáo viên: bài tập, SGK, tài liệu tham khảo. - Học sinh: SGK, ôn tập bài trớc.

C. Tiến trình lên lớp

I. ổn định: 8A: 8B: 8C:II. Kiểm tra bài cũ II. Kiểm tra bài cũ

Viết cú pháp và trình bày hoạt động của câu lệnh điều kiện, lặp với số lần biết trớc và lặp với số lần không biết trớc trong ngôn ngữ lập trình Pascal?

III. Bài mới

Hoạt động Thầy – Trò Nội dung

Hoạt động 1: Bài tập 5

GV: Sử dụng ngôn ngữ lập trình Pascal viết chơng trình tính tổng các số tự nhiên chắn và các số tự nhiên lẽ trong n số tự nhiên đầu tiên với n đợc nhập vào từ bàn phím. In kết quả tính toán ra màn hình.

Hs: Ghi đề và suy nghĩ làm bài. ? Hãy mô tả thuật toán của bài toán?

? để biết i là số chẵn hay lẽ ta làm thế nào? Hs: Suy nghĩ, nhắc lại.

GV: Yêu cầu hs lên bảng viết chơng trình với câu lệnh lặp for... do.

Hs: lên bảng

Gv: Yêu cầu hs lên bảng viết chơng trình với câu lệnh lặp while... do.

Hs: lên bảng

Gv: Nhận xét, so sánh kết quả 2 cách

Thuật toán:

B1: Nhập n, TC <- 0; TL <- 0; i <- 1; B2: Trong khi i ≤ n thì:

Nếu i chia hết cho 2 thì TC <- TC + i Ngợc lại TL <- TL + i B3: Thông báo kq ra màn hình và kết thúc. Var tc, tl, n, i: integer; Begin Write(‘Nhap n=’); readln(n); tc := 0; tl := 0; for i := 1 to n do if i mod 2 = 0 then tc := tc + i else tl := tl + i;

write(‘Tong chan la:’, tc); write(‘Tong le la:’, tl); readln;

end.

Hoạt động 2: Bài tập 6

GV: Sử dụng ngôn ngữ lập trình Pascal viết chơng trình nhập vào 3 số nguyên xác định 3 số đó có thể tạo thành độ dài 3 cạnh của một tam giác hay không? nếu phải thì đó là tam giác gì?

Hs: Yêu cầu hs ghi đề bài và suy nghĩ làm bài. Gv: y/c hs trả lời các câu hỏi

? khi nào 3 số nguyên là các cạnh của 1 tam giác?

? Làm sao biết đó là tam giac gì? Hs; trả lời

Var a, b, c: integer; Begin

Write(‘Nhap so thu nhat:’); readln(a); Write(‘Nhap so thu hai :’); readln(b); Write(‘Nhap so thu ba :’); readln(c); If (a + b > c) and (a +c > b) and (b + c) > a then

If (a = b) and (b = c) then Writeln(‘ la do dai 3 canh cua mot tam giac deu’)

Else If (a = b) or (b = c) or (c = a) then Writeln(‘la do dai 3 canh cua tam giac can’) Else If (a*a = b*b + c*c) or (b*b = a*a+c*c) or (c*c = a*a + b*b) then Writeln(‘la

Gv: hs viết chơng trình Hs: viết ra nháp

Gv: cho Hs quan sát chơng trình chuẩn Hs: quan sát

Gv: nhắc lại 1số kiến thức về phép toán logic And, or , not

Hs: quan sát

do dai 3 canh cua mot tam giac vuong’)

Else Writeln(‘la do dai 3 canh cua mot tam giac thuong’)

Else Writeln(‘Ko la do dai 3 canh cua mot tam giac’);

Readln; End.

Hoạt động 3: Bài tập 7

Gv: Sử dụng ngôn ngữ lập trình Pascal viết ch- ơng trình tính tổng các số tự nhiên chẵn và chia hết cho 3 trong n số tự nhiên đầu tiên với n đợc nhập vào từ bàn phím. In kết quả tính toán ra màn hình.

Hs: Ghi đề và suy nghĩ làm bài. ? Hãy mô tả thuật toán của bài toán?

? để biết i là số chẵn hay lẽ ta làm thế nào? Gv: Yêu cầu hs lên bảng viết chơng trình với câu lệnh lặp for... do.

Gv: Yêu cầu hs lên bảng viết chơng trình với câu lệnh lặp while... do.

Hs: lên bảng

Gv: nhận xét cho điểm

Thuật toán:

B1: Nhập n, T <- 0; T <- 0; i <- 1; B2: Trong khi i ≤ n thì:

Nếu i chia hết cho 2 và i chia hết cho 3 thì: T <- T + i B3: Thông báo kq ra màn hình và kết thúc. Var t, n, i: integer; Begin Write(‘Nhap n=’); readln(n); T := 0; for i := 1 to n do

if (i mod 2 = 0) and (i mod 3 = 0) then T:= T + i; write(‘Tong la:’, T); readln; end. Var t, n, i: integer; Begin Write(‘Nhap n=’); readln(n); t := 0; i := 1; while i <= n do begin

if (i mod 2 = 0) and (i mod 3 = 0) then t := t + i ; i := i + 1; end; write(‘Tong la:’, T); readln; end. IV. Cũng cố.

- GV hệ thống lại nội dung chính sau tiết bài tập.

V. HDVN:

- Yêu cầu hs về nhà ôn tập kiến thức cũ.

---

Ngày soạn: 6/3

Ngày giảng:12/3

Tiết 55: Kiểm tra thực hành 1 tiết

a. Mục tiêu:

- Đánh giá kiến thức, kỷ năng của học sinh về: sử dụng biến, hằng, câu lệnh điều kiện và câu lệnh lặp để viết chơng trình đơn giản trong ngôn ngữ lập trình Pascal.

- Kiến thức: kiểm tra kiến thức về cấu trúc, cú pháp và hoạt động của các câu lệnh trong ngôn ngữ lập trình Pascal.

- Kỷ năng: Viết một chơng trình đơn giản.

- Thái độ: Nghiêm túc làm bài.

b. Chuẩn bị:

Một phần của tài liệu GA tin 8_ki 2_2013 (Trang 37 - 42)

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

(79 trang)
w