Giáo án Tin học 11 tiết 23: Bài tập và thực hành số 3

Đưa các câu lệnh sau vào những vị trí cần thiết để sửa đổi chương trình ở câu a để chương trình thực hiện đếm số lượng số dương và đếm số lượng số âm của mảng A:

 posi, neg: integer;

 posi := 0; neg := 0;

 if A[i] > 0 then posi := posi + 1

 else if A[i] < 0 then neg := neg + 1;

 writeln(posi:4, neg:4);

 

doc5 trang | Chia sẻ: dung89st | Lượt xem: 4476 | Lượt tải: 3download
Bạn đang xem nội dung tài liệu Giáo án Tin học 11 tiết 23: Bài tập và thực hành số 3, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
 Ngày soạn: 18/01/2008.
 BÀI TẬP VÀ THỰC HÀNH SỐ 3
I. MỤC TIÊU BÀI HỌC:
1. Kiến thức: Củng cố lại các kiến thức cơ bản về kiểu dữ liệu mảng.
2. Kỹ năng: 
-Nâng cao kỹ năng sử dụng một số lệnh kiểu dữ liệu mảng trong lập trình, cụ thể:	+Khai báo kiểu dữ liệu mảng một chiều;
	+Nhập/xuất dữ liệu cho mảng;
	+Duyệt qua tất cả các phần tử của mảng để xử lí từng phần tử của mảng.
-Biết giải một số bài toán cơ bản thường gặp.
3. Thái độ: Tự giác, tích cực, chủ động và sáng tạo trong lập trình.
II. CHUẨN BỊ:
1. Tài liệu, bài tập: SGK, SBT, SGV.
2. Dụng cụ, thiết bị: Phòng máy vi tính.
III. TIẾN TRÌNH LÊN LỚP:
1. Ổ định, tổ chức lớp: CBL báo cáo sĩ số.
2. Kiểm tra bài cũ:	 thông qua bài tập thực hành trên máy.
3. Bài giảng:
Hoạt động của Thầy và Trò
Nội dung ghi bảng
Hoạt động 1: 
-Nội dung: Tìm hiểu cách sử dụng lệnh và kiểu dữ liệu mảng một chiều qua chương trình có sẵn trong bài 1/63.
-Mục tiêu: HS hiểu được chương trình có sẵn ở câu a, biết được kết quả chạy chương trình này, từ đó tìm cách giải quyết câu b.
-Các bước tiến hành:
GV: Hướng dẫn HS phân tích đề bài.
-Xác định input,output?
-Viết thuật tĩan và đưa ra hướng giải quyết
HS: phân tích đề bài.
GV: Lệnh gán A[i] := random(300) - random(300); có ý nghĩa gì?
HS: Lệnh gán trên sinh ngẫu nhiên giá trị cho mảng A từ -299 đến 299.
GV: Hướng dẩn học sinh viết chương trình 
HS tự viết chương trình
GV: Hướng dẫn HS biên dịch, chạy thử và kiểm tra chương trình. 
HS: Thực hiện.
GV: Hướng dẫn HS sửa chương trình ở câu a để được chương trình giải quyết bài toán ở câu b:
 -Biến posi và neg dùng để làm gì?
 -Chức năng của lệnh:
 if A[i] > 0 then posi := posi + 1
 else if A[i] < 0 then neg := neg + 1;
HS: - Biến posi và neg dùng để lưu số lượng đếm được số dương và số âm.
 -Chức năng của lệnh: đếm số dương hoặc số âm.
GV: Yêu cầu HS thêm vào vị trí cần thiết để chương trình đếm được số.
HS: Thực hiện chỉnh sửa chương trình và chạy chương trình để xem kết quả.
GV: Chiếu chương trình đã chỉnh sửa lên bảng.
HS: Đối chiếu với chương trình mà HS tự chỉnh sửa.
Hoạt động 2: 
-Nội dung: Hướng dẫn HS viết chương trình tìm phần tử có giá trị lớn nhất trong 2/64
-Mục tiêu: HS hiểu được chương trình có sẵn ở câu a, biết được kết quả chạy chương trình này, từ đó tìm cách giải quyết câu b.
-Các bước tiến hành:
GV: Hướng dẫn HS phân tích đề bài.
HS: phân tích đề bài.
GV: Yêu HS nhập nội dung chương trình. 
HS: viết chương trình, biên dịch, chạy thử và kiểm tra chương trình. 
GV: Hướng dẫn HS chỉnh sửa chương trình ở câu a để đưa ra chỉ số của các phần tử có cùng giá trị lớn nhất:
GV: Nếu muốn tìm phần tử nhỏ nhất, cần sửa chỗ nào?
HS: Sửa lại: A[i] > A[j] thành A[i] < A[j]
GV: Nếu muốn tìm phần tử lớn nhất (có nhiều phần tử lớn nhất) với chỉ số lớn nhất thì ta sửa chỗ nào?
HS: Sửa: for i:= 2 to n do 
 thành for i:= n - 1 downto 1 do
GV: Nếu muốn CT ở câu a đưa ra các chỉ số của các phần tử có giá trị lớn nhất thì ta cần phải thêm lệnh gì? Vị trí nào?
HS: Cần thêm lệnh in ra các chỉ số có giá trị bằng giá trị lớn nhất tìm được vào vị trí sau khi tìm được giá trị lớn nhất.
GV: Yêu cầu HS viết chương trình hoàn thiện cho câu b.
GV: Chiếu CT đã chỉnh sửa lên bảng.
HS: Đối chiếu với CT mà HS tự chỉnh sửa.
Bài 1: SGK tr.63
a/ Tìm hiểu và chạy thử chương trình:
program Sum1;
uses crt;
const nmax = 100;
type IntArray=Array[1 . . nmax] of integer;
var A : IntArray;
 s, n, i, k : integer;
BEGIN
 Clrscr;
 Write(‘Nhap n = ‘); readln(n);
 For i:= 1 to n do 
 A[i] := random(300) - random(300);
 For i:= 1 to n do write(A[i]);
 Writeln;
 Write(‘Nhap k = ‘); readln(k);
 S := 0;
 For i := 1 to n do
 If A[i] mod k = 0 then s := s + A[i];
 Writeln(‘Tong can tinh la: ‘, s);
 Readln
END.
b/ Đưa các câu lệnh sau vào những vị trí cần thiết để sửa đổi chương trình ở câu a để chương trình thực hiện đếm số lượng số dương và đếm số lượng số âm của mảng A:
 posi, neg: integer;
 posi := 0; neg := 0;
 if A[i] > 0 then posi := posi + 1
 else if A[i] < 0 then neg := neg + 1;
 writeln(posi:4, neg:4);
*Chương trình được sửa như sau:
program Sum1b;
uses crt;
const nmax = 100;
type IntArray=Array[1 . . nmax] of integer;
var A : IntArray;
 n, i, posi, neg: integer;
BEGIN
 Clrscr;
 Write(‘Nhap n = ‘); readln(n);
 For i:= 1 to n do 
 A[i] := random(300) - random(300);
 For i:= 1 to n do write(A[i]);
 Writeln;
 posi := 0; neg := 0;
 For i := 1 to n do
 if A[i] > 0 then posi := posi + 1
 else if A[i] < 0 then neg := neg + 1;
 writeln(posi:4, neg:4);
 Readln
END.
Bài 2: SGK tr.64
a/ Tìm hiểu và chạy thử chương trình:
 (SGK)
b/ Chỉnh sửa chương trình để đưa ra chỉ số của các phần tử có cùng giá trị lớn nhất.
*Chương trình được sửa như sau:
PROGRAM Max_Element_b;
uses crt;
const nmax = 100;
type IntArray=Array[1 . .nmax] of integer;
var A : IntArray;
 n, i, j : integer;
BEGIN
 write(‘Nhap n = ‘); readln(n);
 for i:= 1 to n do 
 begin
 write(‘Phan tu thu ‘, i, ‘=’);
 readln(A[i]);
 end;
 j := 1;
 for i:= 2 to n do 
 if A[i] > A[j] then j:=i;
 for i:= 1 to n do 
 if A[i] = A[j] then write(i:4);
 readln
END.
4.Tổng kết nội dung, đánh giá cuối bài: 
	Một số thuật toán cơ bản:	Tính tổng các phần tử thỏa mãn điều kiện nào đó; Đếm các phần tử thỏa mãn điều kiện nào đó; Tìm phần tử lớn nhất, nhỏ nhất.
5.Dặn dò, kế hoạch học tập tiết sau: 
	-BT: Viết chương trình nhập một mảng một chiều A[1 . . 10] và nhập một số x. Đếm số lượng phần tử trong A có giá trị bằng x.
	-Xem trước nội dung Bài tập và thực hành số 4.
IV. NHỮNG VẤN ĐỀ CẦN RÚT KINH NGHIỆM:
ĐỀ TRẮC NGHIỆM TIN HỌC LỚP 11 (15PHÚT)
Câu 1: Cho đoạn chương trình sau:
Begin
x:=a;
if a<b then x:=a;
end.
Cho a=20, b=15. x nhận giá trị nào sau đây?
a/ 10 	b/ 20 	c/ 25 	d/ 15
Câu 2: Cho đoạn chương trình sau:
i:=1 ; M:= 0;
while i<10 do
begin
M:=M+2;
i:=i+1;
end.
M nhận giá trị nào sau đây?
a/ 10 	b/ 18 	c/ 14	d/ 20
Câu 3: Cấu trúc câu lệnh if-then là:
a/ if then 
b/ if then else 
c/ a, b đều đúng.
d/ a, b đều sai.
Câu 4: Chọn câu sai:
a/ Trong câu lệnh rẽ nhánh điều kiện là biểu thức lơgic.
b/ Cấu trúc rẽ nhánh dùng để mơ tả cấu trúc lặp.
c/ Trong câu lệnh while-do câu lệnh sau do sẽ được thực hiện ít nhất một lần.
d/ Câu lệnh, câu lệnh1, câu lệnh2 trong câu lệnh if-then là một câu lệnh của ngơn ngữ pascal.
Câu 5: Điền vào chỗ trống dưới đây để được đoạn chương trình tìm giá trị lớn nhất trong 2 số a và b:
Begin
if b>a then max:=b;
end.
a/ if b<=a then max:=a;	b/ else max:=a;	c/ a, b đúng.	d/ a, b sai.
Câu 6: Cho đoạn chương trình sau:
T:= 0
For i:=1 to 100 do
If (I mod 2 = 0) and (I mod 3 = 0) then T:= T+i;
Chọn câu đúng:
a/ Chương trình đưa ra tổng các số tự nhiên từ 1 đến 100.
b/ Chương trình đưa ra tổng các số tự nhiên chia hết cho 6.
c/ Chương trình đưa ra tổng các số tự nhiên chia hết cho 6 trong phạm vi từ 1 đến 100.
d/ a, b, c đều đúng.
Câu 7: Chọn câu đúng:
a/ Cĩ thể tổ chức mọi loại chu trình với câu lệnh while-do.
b/ Trong lệnh while-do sau từ khĩa do được phép viết nhiều câu lệnh.
c/ Trong lệnh while-do sau từ khĩa do cĩ thể là một lệnh while-do.
d/ a, b, c đều đúng.
Câu 8: Cho đoạn chương trình sau:
If a=3 then x:=y+2
Chọn câu đúng:
a/ a=2; y=3; x=5	b/ a=1; y=6; x=8	c/ a=3 y=4; x=6	d/ a, b, c đều đúng.
Câu 9: Cho bài tốn: tính tổng và đếm các số tự nhiên chia hết cho 3 trong phạm vi từ 1 đến 100.
S:=0; dem:=0
For i:=1 to 100 do
If .. then
S:=S+1; .
end;
Chọn câu đúng điền vào chỗ trống ở trên.
a/ i mod 3 = 0; begin; dem:=dem+1	b/ i div 3 = 0; dem:=dem+1; begin
c/ i mod 3 0; dem:=dem+1; begin	d/ a, b, c đều đúng
Câu 10: Cho A, B, X là các biến số thực. Chọn câu đúng:
a/ if A<B; then X:=X+1;	b/ if A<B then X:=A+B;
c/ f A<B then X:=A; else X:=B;	d/ i if A<B then X:=A else X:=B;
ĐÁP ÁN ĐỀ TRẮC NGHIỆM 15PHÚT:
Câu1
Câu2
Câu3
Câu4
Câu5
Câu6
Câu7
Câu8
Câu9
Câu10
a
x
x
b
x
x
x
c
x
x
x
d
x
x

File đính kèm:

  • docBT va TH 3_T23.doc