Giáo án Tin học Lớp 8 - Tiết 56: Bài tập (T1) - Năm học 2009-2010

Giáo án Tin học Lớp 8 - Tiết 56: Bài tập (T1) - Năm học 2009-2010

Bài 4:

 a) Chương trình thực hiện 5 vòng lặp.

b) Vòng lặp trong chương trình được thực hiện vô tận vì sau câu lệnh n:=n+1; câu lệnh lặp kết thúc nên điều kiện S=0 luôn luôn được thỏa mãn.

Nhận xét: Trong câu lệnh thực hiện, điều kiện cần phải được thay đổi để sớm hay muộn chuyển sang trạng thái không thỏa mãn. Khi đó vòng lặp mới được kết thúc sau hữu hạn bước. Để làm được điều này, câu lệnh trong câu lệnh lặp while.do thường là câu lệnh ghép.

 

doc 4 trang Người đăng tuvy2007 Lượt xem 783Lượt tải 0 Download
Bạn đang xem tài liệu "Giáo án Tin học Lớp 8 - Tiết 56: Bài tập (T1) - Năm học 2009-2010", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Bài tập
 Tuần 28
Tiết 56
Ngày soạn: 02/03/2010
Ngày dạy: 09/03/2010
I. mục tiêu
1. Kiến thức
	Viết được chương trình Pascal có sử dụng vòng lặp While ... do
Biết sử dụng câu lệnh ghép.
2. Kỹ năng
	Rèn kỹ năng đọc hiểu chương trình có sử dụng vòng lặp while ... do
3. Thái độ
- Thái độ học tập nghiêm túc, tích cực làm các bài tập thực hành.
II. CHUẨN BỊ
1. Giỏo viờn
a. Phương phỏp: : Thuyết trình, nêu vấn đề, vấn đáp
b. Phương tiện: Giỏo ỏn, mỏy chiếu, mỏy tớnh. 
2. HS: Sỏch, vở, làm bài tập về nhà 
III. TIẾN TRèNH DẠY - HỌC
1.Ổn định lớp
- Ổn định trật tự
- Kiểm tra sĩ số
2. Kiểm tra bài cũ
	(kiểm tra trong tiết bài tập)
3. Tiến trình lên lớp
Hoạt động của thầy và trò
Nội dung
GV: Gọi một HS lên đọc bài 2(T71SGK)
HS: Đọc bài
GV: Yêu cầu tất cả HS suy nghĩ tìm ra sự khác nhau của 2 câu lệnh
Chia bảng làm 4 gọi 4 học sinh lên làm bài 3 và 4 (T71 SGK)
HS: Thực hiện yêu cầu
GV: Sau khi học sinh làm bài xong. Nhận xét và cho điểm
GV: Gọi HS lên làm bài 5 (T71 SGK) và 2 HS lên phân tích bài toán và viết chương trình Pascal cho bài tập thêm.
HS: Thực hiện yêu cầu
GV: Sau khi học sinh làm bài xong . Nhận xét và cho điểm
Bài 3: a) Thuật toán 1: 
x:=0.5; S:= 10;
x
S:=S-x
ĐK S>5.2
0.5
S:=9.5
Đ
0.5
S:=9.0
Đ
0.5
S:=8.5
Đ
0.5
................
..................
0.5
S:=5.0, in kết quả
S
10 vòng lặp được thực hiện. Khi kết thúc thuật toán S = 5.0. Đoạn chương trình Pascal tương ứng:
S:=10; x:=0.5;
while S>5.2 do S:=S-x;
writeln(S);
b) Thuật toán 2: Không vòng lặp nào được thực hiện vì ngay từ đầu điều kiện đã không được thỏa mãn nên các bước 2 và 3 bị bỏ qua. S = 10 khi kết thúc thuật toán. Đoạn chương trình Pascal tương ứng:
S:=10; n:= 0;
n
S:=S-n
S<10
0
S:=10
S
S:=10; n:=0;
while S<10 do
 begin n:=n+3; S:=S-n end;
writeln(S);
Nhận xét: Trong các thuật toán và chương trình trên, điều kiện được kiểm tra trước khi các bước lặp được thực hiện. Do đó nếu điều kiện không được thỏa mãn ngay từ đầu, các bước lặp sẽ bị bỏ qua. Điều này đặc biệt đúng đối với câu lệnh lặp while..do.
Bài 4:
 a) Chương trình thực hiện 5 vòng lặp. 
b) Vòng lặp trong chương trình được thực hiện vô tận vì sau câu lệnh n:=n+1; câu lệnh lặp kết thúc nên điều kiện S=0 luôn luôn được thỏa mãn.
Nhận xét: Trong câu lệnh thực hiện, điều kiện cần phải được thay đổi để sớm hay muộn chuyển sang trạng thái không thỏa mãn. Khi đó vòng lặp mới được kết thúc sau hữu hạn bước. Để làm được điều này, câu lệnh trong câu lệnh lặp while..do thường là câu lệnh ghép.
Bài 5:
a) Thừa dấu hai chấm trong điều kiện;
b) Thiếu dấu hai chấm trong câu lệnh gán; 
c) Thiếu các từ khóa begin và end trước và sau các lệnh n:=n+1; S:=S+n, do đó vòng lặp trở thành vô tận.
Bài thêm: 
Cho số tự nhiên n (n>0) . Cần cộng bao nhiêu số tự nhiên đầu tiên để tổng nhỏ nhất lớn hơn một số A bất kỳ là số thực nhập từ bàn phím. 
? a. Em hãy phân tích bài toán và mô tả thuật toán cho bài toán trên
 b. Em hãy sử dụng câu lệnh While ... do để viết chương trình cho bài toán trên.
Trả lời: 
* Phân tích
i<- 0; sum<- 0;
i
Sum<- sum +i
ĐK sum<=A
1
sum = 1
Đ
2
sum= 3
Đ
...
......................
.................
n
Sum= 1+2+.....+n, khi này Sum >A, Thông báo kết quả và kết thúc thuật toán
S
MTTT: 
B1: Nhập số A
B2: i <- 0; sum <- 0;
B3: Nếu sum <= A thì i <- i+1. Ngược lại chuyển bước 5
B4: sum <- sum + i;
B5: Thông báo kết quả và kết thúc thuật toán
Chương trình có thể như sau:
Uses CRT;
Var A, sum: real;
	i: integer;
Begin
	Write('cho so A: '); readln(A);
	i:=0; sum:= 0;
	While (sum<=A) do
	Begin
	i:= i+1;
 sum:= sum+i;
	end;
	Write('Gia tri N bang ', i:6);
	Readln;
	End.
4. Củng cố
Nhắc lại cho học sinh một số cách phân tích và làm bài toán sử dụng câu lệnh lặp với số lần chưa biết trước
5. Dặn dò
Về nhà hoàn thiện các bài tập và học bài cũ
iv. rút kinh nghiệm 

Tài liệu đính kèm:

  • doctuan28_56.doc