Kỹ năng: Nâng cao kỹ năng sử dụng một số câu lệnh và một số kiểu dữ liệu thông qua việc tìm hiểu, chạy thử các chương trình có sẵn.. II.[r]
(1)Tiết 27 : BÀI TẬP VÀ THỰC HÀNH 3( tiết 1) I Mục tiêu
1 Kiến thức:
- Củng cố cho học sinh kiến thức kiểu mảng
- Mô tả cách khai báo, tham chiếu đến phần tử mảng, cách nhập xuất phần tử mảng
- Biết giải số tốn tính tốn, tìm kiếm đơn giản máy tính 2 Kỹ năng: Nâng cao kỹ sử dụng số câu lệnh số kiểu dữ liệu thơng qua việc tìm hiểu, chạy thử chương trình có sẵn
II Chuẩn bị
1 Giáo viên: Giáo án, SGK, sách giáo viên, phòng máy, máy chiếu. 2 Học sinh: Vở ghi, sách giáo khoa, đồ dùng học tập.
III Tổ chức hoạt động học tập 1. Ổn định tổ chức lớp:
2. Kiểm tra cũ: Tiến hành trình thực hành. 3. Tiến trình học:
Hoạt động thầy trò Nội dung
Hoạt động 1: Thực hành phần a (25p)
GV: Giới thiệu nội dung thực hành:
GV:Yêu cầu học sinh tìm hiẻu chạy thử chương tình câu a, sách giáo khoa, trg 63
HS: Tìm hiểu chạy thử chương trình máy:
GV: Chiếu chương trình lên bảng
GV: - Myarray tên kiểu liệu hay tên biến?
- Vai trò nmax n có khác nhau?
- Dòng lệnh để tạo biến mảng A? HS: - Tên kiểu liệu
- nmax số phần tử tối đa chứa biến mảng A, n số phần tử thực tế A
- Dòng lệnh để tạo biến mảng A? - Lệnh khai báo kiểu khai báo biến
GV: Thực chương trình để học sinh thấy kết
- Hỏi:Lệnh gán a[i]:=random(300) – random(300) có ý nghĩa gì?
GV: Lệnh sinh ngẫu nhiên giá trị cho mảng a từ – 299 đến 299
Bài 1: Tạo mảng A gồm n (n<=100) số nguyên, số có giá trị tuyệt đối khơng vượt q 300 Tính tổng phần tử mảng bội số số nguyên dương k cho trước
=> Chương trình: Program Sum 1; Uses Crt;
Const nmax:=100;
Type Myarray = Array[1 nmax] of integer;
Var A:myarray; s, n, i, k:integer; Begin
Clrscr; Randomize; Write(‘nhap n=’); readln(n);
For i:=1 to n a[i]:=random(301) – random(301);
For i:=1 to n Write(A[i]:5); Writeln;
Write('nhap k=’); readln(k); s:=0;
(2)Hoạt động thầy trò Nội dung GV: Lệnh For i:=1 to n
Write(A[i]:5);có ý nghĩa gì?
HS: In hình giá trị phần tử mảng a
GV: Lệnh For – Do cuối thực hin nhim v gỡ?
HS:Cộng phần tử chia hÕt cho k
GV: Lệnh s:=a+a[i]; thựchiện lần?
HS: Có số lần số phần tử a[i] chia hết k
GV: Thực lại chương trình yêu cầu HS thực máy
HS: Thực hành máy
Hoạt động 2: Làm tập phần b (15p)
GV: Sửa chương trình câu a để chương trình giải toán câu b - Chiếu lên hình lệnh cần thêm vào chương trình câu a
HS: Quan sát ý theo dõi câu hỏi giáo viên
GV: Quan sát lệnh suy nghĩ vị trí cần sửa chương trình câu a
GV: Ý nghĩa biến Posi neg? - Hỏi: Chức lệnh:
If a[i] >0 then posi:=posi+1
else if a[i] <0 then neg:=neg+1; HS: Dùng để lưu số lượng đếm - Đếm số dương đếm số âm
GV: Yêu cầu học sinh thêm vào vị trí cần thiết để chương đếm số
HD: Chỉ vị trí cần thêm vào chương trình
- Lưu chương trình Thực chương trình thông báo kết
if a[i] mod k=0 then s:=s+a[i]; Write(‘tong can tinh la’,s); readln;
End
b) Thêm vào chương trình câu 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; Write(posi:4,neg:4);
để chương trình đếm số lượng số âm số dương
4 Tổng kết hướng dẫn học tập nhà (05p)
- Tổng kết lỗi học sinh mắc phải trình thực hành cách khắc phục
chương trình