Kỹ năng: - Tạo được kiểu mảng một chiều và sử dụng biến mảng một chiều trong ngôn ngữ lập trình Pascal để giải quyết một số bài toán cụ thể.. Như vậy, các em thấy bản chất của bài toán l
Trang 1Ngày soạn:
Ngày dạy:
Tiết theo PPCT: 19
Chương IV KIỂU DỮ LIỆU CÓ CẤU TRÚC
§11 KIỂU MẢNG
I Mục tiêu: Sau khi học xong bài học này, học sinh sẽ:
1 Kiến thức:
- Biết được kiểu dữ liệu mới là kiểu mảng một chiều
- Biết được cấu trúc tạo kiểu mảng một chiều và cách khai báo biến mảng một chiều
2 Kỹ năng:
- Tạo được kiểu mảng một chiều và sử dụng biến mảng một chiều trong ngôn ngữ lập trình Pascal để giải quyết một số bài toán cụ thể
II Đồ dùng dạy học
1 Chuẩn bị của giáo viên: Giáo án, Laptop, Projector để giới thiệu các ví dụ và minh họa.
2 Chuẩn bị của học sinh: Sách giáo khoa, vở ghi chép và học bài cũ ở nhà.
III.Hoạt động dạy – học:
1 Oån định lớp: (1’)
- Kiểm tra sĩ số: - Tổng số: Vắng: - có phép: - không phép:
- Kiểm tra tác phong
2 Kiểm tra bài cũ: (8’)
Câu hỏi: Viết chương trình nhập từ bàn phím dãy A gồm 10 số nguyên: a 1 , a 2 , a 3, a 4 , a 5 , a 6 , a 7 , a 8 , a 9 ,
a 10
Trả lời:
Program Nhap_So_nguyen;
Uses crt;
Var
a1,a2,a3,a4,a5,a6,a7,a8,a9,a10: integer;
BEGIN
Clrscr;
Writeln(‘Nhap gia tri cua cac so nguyen:’);
Write(‘a1=’); Readln(a1);
Write(‘a2=’); Readln(a2);
Write(‘a3=’); Readln(a3);
Write(‘a4=’); Readln(a4);
Write(‘a5=’); Readln(a5);
Write(‘a6=’); Readln(a6);
Write(‘a7=’); Readln(a7);
Write(‘a8=’); Readln(a8);
Write(‘a9=’); Readln(a9);
Write(‘a10=’); Readln(a10);
Readln
END.
3 Dẫn dắt vào bài: (2’)
- Bài toán trên yêu cầu chúng ta thực hiện bao nhiêu công việc?
- Bài toán trên đã khai báo bao nhiêu biến? và sử dụng bao nhiêu cặp câu lệnh Write và Readln?
- Giả sử yêu cầu của bài toán là nhập vào 100 số nguyên thì chúng ta sẽ phải khai báo bao nhiêu biến? sử dụng bao nhiêu câu lệnh Readln?
Trang 2Như vậy, các em thấy bản chất của bài toán là không khó nhưng khi viết chương trình thì phải khai báo rất nhiều biến và lặp đi lặp lại một câu lệnh nhiều lần Để khắc phục vấn đề này, Pascal cung cấp một kiểu dữ liệu mới là Kiểu mảng Để hiểu rõ hơn, Thầy và các em cùng nghiên cứu qua bài học hôm nay.
4 Tổ chức các hoạt động dạy – học trên lớp
Hoạt động 1: Tìm hiểu ý nghĩa của mảng một
chiều (3’) 1 Kiểu mảng một chiều
GV: Yêu cầu Hs nghiên cứu Sgk
HS: Nghiên cứu nội dung Sgk.
? Em hiểu thế nào về Mảng 1 chiều?
? Trình bày các kiểu dữ liệu đã học?
? Để mơ tả mảng 1 chiều, cần xác định những yếu tố
nào?
HS: Trả lời các câu hỏi Chép bài.
- Mảng 1 chiều là dãy hữu hạn các phần tử cĩ cùng kiểu dữ liệu
- Các phần tử trong mảng cĩ cùng chung một tên
và phân biệt nhau bởi chỉ số
- Để mơ tả mảng 1 chiều cần xác định kiểu của các phần tử và cách đánh số các phần tử của nĩ
Hoạt động 2: Tạo kiểu mảng 1 chiều và khai báo
biến mảng (17’)
GV: Yêu cầu Hs nghiên cứu Sgk, rồi trả lời các câu
hỏi sau:
HS: Nghiên cứu nội dung Sgk.
a Khai báo
* Cách 1: Khai báo trực tiếp
Var <Tên biến mảng>: array[kiểu chí số] of
<kiểu phần tử>;
? Để khai báo biến ta sử dụng từ khĩa nào?
? Cĩ mấy cách khai báo biến mảng 1 chiều? Trình
bày?
HS: Trả lời các câu hỏi Chép bài vào vở.
* Cách 2: Khai báo gián tiếp
Type <Tên kiểu mảng>=array[kiểu chỉ số] of
<kiểu phần tử>;
Var <tên biến mảng>: <tên kiểu mảng>;
Trong đĩ:
Kiểu chỉ số thường là một đoạn số nguyên liên tục cĩ dạng n1 n2 xác định chỉ số đầu và chỉ số cuối (n1 n2);
Kiểu phần tử là kiểu của các phần tử mảng
? Đây là khai báo mảng trực tiếp hay gián tiếp?
HS: Trực tiếp.
? Tên biến mảng là gì? (HS: A)
? Kiểu chí số là gì? (Integer)
? Em thử cho biết ý nghĩa của khai báo biến này?
HS: Tạo mảng A gồm 10 phần tử, cĩ kiểu nguyên.
? Thử chuyển sang khai báo gián tiếp? (dẫn dắt hs
trả lời)
Ví dụ:
Var A: array[1 10] of Integer;
Type MangInt = array[1 10] of Integer;
Var A: MangInt;
GV: Lấy thêm một vài ví dụ khác
(chiếu ví dụ lên màn hình rồi giải thích cho hs) Ví dụ:
? Cho biết tên của các kiểu dữ liệu mới?
HS: MangInt và MangChar
? MangInt và MangChar cĩ bao nhiêu phần tử? Kiểu
chỉ số là gì? (HS: 20 phần tử; Từ 1 đến 20)
? Mỗi phần tử của MangInt thuộc kiểu gì?
HS: Kiểu nguyên
? Mỗi phần tử của MangChar thuộc kiểu gì?
HS: Kiểu kí tự
? MI, MJ, MK là gì? (HS: biến cĩ kiểu MangInt)
? M1, M2 là mảng gồm bao nhiêu phần tử? Kiểu chỉ
số là gì? (HS: 21 phần tử; Từ -10 đến 10)
Type MangInt = array[1 20] of Integer;
MangChar = array[1 20] of Char;
Var
MI, MJ, MK: MangInt;
X, Y: mangChar;
M1, M2: array[-10 10] of Integer;
M3: array[‘A’ ‘Z’] of Integer;
M3 là mảng các số nguyên được xác định chỉ số từ A
đến Z Gồm bao nhiêu phần tử? (HS: 26 phần tử)
Để tham chiếu đến từng phần tử của mảng ta thực
hiện như sau:
(Diễn giảng, cho ví dụ để hs hiểu)
* Tham chiếu đến từng phần tử
Tên biến mảng[chỉ số]
Trang 3Ví dụ:
- A[1]: là phần tử ở vị trí 1 của mảng A
- A[i]: là phần tử ở vị trí i của mảng A
Hoạt động 3: Rèn luyện kỹ năng sử dụng kiểu
mảng 1 chiều (10’)
? Hãy khai báo một mảng số thực B gồm các phần tử
được đánh số từ -100 đến 200?
HS: Lắng nghe, suy nghĩ rồi thực hiện
* Khai báo trực tiếp:
Var B: array[-100 200] of Real;
* Khai báo gián tiếp:
Type MangReal = array[-10 200] of Real;
Var B: MangReal;
? Sử dụng kiểu mảng để viết chương trình nhập từ
bàn phím dãy A gồm 10 số nguyên: a 1 , a 2 , a 3, a 4 , a 5 ,
a 6 , a 7 , a 8 , a 9 , a 10
Program Nhap_Day_so;
Uses Crt;
Var A: array[1 10] of Integer; {khai báo mảng} i: Integer;
BEGIN Clrscr;
Writeln(‘Nhap gia tri cua day A:’);
For i:=1 to 10 Do Begin
Write(‘A[‘,i,’]=’); Readln(A[i]); End;
Readln END.
? Công việc nhập các số nguyên được lặp lại bao
nhiêu lần? Sử dụng vòng lặp nào?
HS: lặp lại 10 lần, sử dụng vòng lặp FOR
? Các em chú ý cách nhập dữ liệu cho mảng?
? So sánh với chương trình ban đầu.
5 Củng cố, sơ kết bài học (1’)
Qua bài học này, các em cần nắm vững:
- Cách khai báo mảng 1 chiều
- Tham chiếu đến các phần tử của mảng 1 chiều
6 Dặn dò, ra bài tập về nhà (3’)
Bài tập: Viết chương trình nhập từ bàn phím dãy A gồm 10 số nguyên: a1 , a 2 , a 3, a 4 , a 5 , a 6 , a 7 , a 8 , a 9 ,
a 10 Rồi thực hiện:
a Tính tổng của các số nguyên có trong dãy A.
b Tính tổng của các số chẵn.
Trang 4Ngày soạn:
Ngày dạy:
Tiết theo PPCT: 43
Chương VI CHƯƠNG TRÌNH CON VÀ LẬP TRÌNH CĨ CẤU TRÚC
§18 VÍ DỤ VỀCÁCH VIẾT VÀ SỬ DỤNG CHƯƠNG TRÌNH CON (Tiết 2)
I Mục tiêu: sau khi học xong bài học này, học sinh sẽ:
1 Kiến thức:
- Biết được cấu trúc chung của hàm Biết được vị trí khai báo hàm trong chương trình chính
2 Kỹ năng:
- Phân biệt được khác nhau cơ bản của hàm và thủ tục
- Sử dụng đúng lời gọi hàm trong chương trình chính
II Đồ dùng dạy học
1 Chuẩn bị của giáo viên: Giáo án, Bảng phụ để giới thiệu các ví dụ và minh họa.
2 Chuẩn bị của học sinh: Sách giáo khoa, vở ghi chép và học bài cũ ở nhà.
III Hoạt động dạy – học:
1 Oån định lớp: (1’)
- Kiểm tra sĩ số: - Tổng số: Vắng: - có phép: - không phép:
- Kiểm tra tác phong
2 Kiểm tra bài cũ: (5’)
Câu hỏi 1: Trình bày cấu trúc của Thủ tục?
Câu hỏi 2: Tham trị là gì? Tham biến là gì
Trả lời:
Procedure <tên thủ tục>[(<Danh sách tham số>)];
[<Phần khai báo>]
Begin
[<dãy các lệnh>]
End;
- Tham số hình thức được thay bằng tham số thực
sự là các giá trị cụ thể gọi là tham trị
- Tham số hình thức được thay bằng tham số thực
sự là các biến chứa dữ liệu gọi là tham biến
3 Dẫn dắt vào bài: (1’)
- Chương trình con gồm mấy loại?
Ở tiết học trước, chúng ta đã được làm quen với cách viết và sử dụng thủ tục Cịn với chương trình con là hàm thì cách viết và sử dụng sẽ như thế nào? Tiết học này chúng ta sẽ tiếp tục tìm hiểu?
4 Tổ chức các hoạt động dạy – học trên lớp
Hoạt động 1: Tìm hiểu cấu trúc của hàm
(20’) 2 Cách viết và sử dụng hàm
GV:
? Hàm là gì? (Hàm là CTC thực hiện một số
thao tác nào đĩ và trả về một giá trị qua tên
của nĩ)
? Trình bày các kiểu dữ liệu đã học?
? Kể tên một số hàm số học chuẩn mà em đã
học?
HS:
- Hàm ABS(): Tính giá trị tuyệt đối
- Hàm SQRT(): Tính căn bậc 2…
? Để tính x, trong pascal ta sẽ viết như thế
nào?
HS: SQRT(x)
? SQRT là thành phần nào của hàm?
? x là thành phần nào của hàm?
Trang 5
-Cách viết như thế này gọi là cách sử dụng hàm.
Còn để viết một hàm như thế nào thì trước hết
chúng ta cần tìm hiểu cấu trúc của hàm là như
thế nào?
? Khai báo hàm ta dùng từ khóa nào? a Cấu trúc của hàm
? So sánh sự giống và khác nhau của hàm và
thủ thục? (Cho hs làm nhanh, lấy 5 hs nhanh
nhất để chấm điểm)
- Giống: có cấu trúc tương tự.
- Khác: Phần đầu (Tên dành riêng, tên hàm
phải quy định kiểu dữ liệu)
Function <Tên hàm>[(<ds tham số>)]: <kiểu dữ liệu>; [<phần khai báo>]
Begin [<dãy các lệnh>]
End;
GV: Nhận xét kết quả, đánh giá cho điểm.
Để thấy rõ hơn, chúng ta cùng nhau tìm hiểu Ví
dụ 1, trang 100/ SGK
GV: Treo bảng phụ
HS: Kết hợp xem SGK + Bảng phụ.
Trong đó:
Kiểu dữ liệu gồm: Integer, Real, Char, Boolean, String
Phần thân hàm phải có câu lệnh gán
<Tên hàm>:=<biểu thức>
? Trong chương trình có mấy hàm? Đó là
những hàm nào? (HS: một hàm: UCLN)
? Chỉ ra vị trí xuất hiện của hàm?
? Chỉ ra các tham số của hàm? Đây là tham
biến hay tham trị? (HS: x, y là các tham trị)
? Kiểu dữ liệu của hàm là gì? (HS: Integer)
? Chỉ ra câu lệnh gán giá trị cho tên hàm?
HS: UCLN:=x;
Hoạt động 2: Cách sử dụng hàm (15’)
Thông qua ví dụ này, các em đã thấy được sự
giống và khác nhau giữa thủ tục và hàm Còn
hàm được sử dụng ntn? Chúng ta sẽ sang phần
? Lệnh gọi hàm được thực hiện như thế nào? Hoàn toàn tương tự như sử dụng các hàm chuẩn
Lệnh gọi hàm có thể tham gia vào biểu thức và có thể là tham số của lời gọi hàm, thủ tục khác
Để thấy rõ hơn vấn đề này, chúng ta cùng nhau
tìm hiểu ví dụ 2, SGK/trang 102.
GV: Treo bảng phụ
HS: Kết hợp theo dõi SGK + Bảng phụ
? Đâu là biến toàn cục? (HS: a, b, c)
? Đâu là biến cục bộ? (HS: không có)
? Tên và các tham số của hàm? (HS: Min(a,b)).
? Kiểu dữ liệu của hàm? (HS: Real)
? Chỉ ra lời gọi hàm? (HS: Min(Min(a,b),c))
Như vậy, các em thấy hàm Min(a,b) lại là
một tham số của hàm Min bên ngoài.
5 Củng cố, sơ kết bài học (2’)
Qua bài học này, các em cần nắm được:
- Có 2 loại Chương trình con (Thủ tục và hàm)
- Cấu trúc và vị trí của Chương trình con trong chương trình chính (? Chương trình con được viết
ở phần nào của Chương trình chính?)
- Phân biệt được tham số hình thức, tham số thực sự, tham biến, tham trị?
- Chương trình con được gọi thông qua tên của nó
6 Dặn dò, ra bài tập về nhà.(1’)
Chuẩn bị trước bài tập và thực hành 6, trang 103/SGK
Trang 6Ngày soạn:
Ngày dạy:
Tiết theo PPCT: 04
BÀI TẬP VÀ THỰC HÀNH 1
I MỤC TIÊU
1 Kiến thức
- Cũng cố hiểu biết ban đầu về tin học, máy tính
- Sử dụng bộ mã ASCII để mã hĩa kí tự, số nguyên
- Viết được số thực dưới dạng dấu phẩy động
2 Kĩ năng
- Biết được cách mã hĩa của máy tính
- Biết biểu diễn các hệ đếm cơ số 10, 2, 16
3 Tư tưởng, tình cảm,Thái độ
- Giúp cho học sinh cĩ tính sáng tạo, tìm tịi, nghiên cứu
- Gây động cơ học tập tích cực
II ĐỒ DÙNG DẠY HỌC
1 Chuẩn bị của giáo viên
- Sách Giáo khoa, Sách Giáo viên
2 Chuẩn bị của học sinh
- Sách Giáo khoa
III TIẾN TRÌNH TỔ CHỨC DẠY VÀ HỌC
1 Ổn định tổ chức lớp: (2’)
- Nắm sĩ số:
- Ổn định trật tự, tạo tâm lý tốt để bắt đầu tiết học
2 Kiểm tra bài cũ: (3’)
- Câu hỏi 1: Hệ đếm cơ số 10, 2, 16 sử dụng các ký hiệu nào?
- Câu hỏi 2: Cách biểu diễn của hệ nhị phân? Biểu diễn số 1012?
3 Dẫn dắt vào bài mới: (1’)
Bài trước ta đã học về tin học và máy tính, mã hĩa thơng tin, biểu diễn số nguyên và số thực Hơm nay ta sẽ đi vào giải một số bài tập cụ thể
4 Tổ chức các hoạt động Dạy và Học trên lớp:
1 Hoạt động 1: Tin học và Máy tính (10’) a Tin học, máy tính
GV: Em hãy cho biết 1GB bằng bao nhiêu MB?
- Gọi hs trả lời tại chổ Rồi làm câu a2) Câu a2) B
GV: Đổi 1GB = ?byte
- Gọi hs lên bảng làm.
GV: Hơm trước các em đã được học cách mã hĩa thơng
tin Các em đã biết được cách biểu diễn trạng thái của
bĩng đèn, bây giờ các em làm tương tự như vậy các e cĩ
thể biểu diễn tương ứng với học sinh nam là bit 1, tương
ứng với học sinh nữ là bit 0
- Gọi một số học sinh lên bảng làm Rồi nhận xét
Câu a3) trang 16/SGK
Hoạt động 2: Sử dụng bảng mã ASCII để mã hĩa và
giải mã (10’)
b Sử dụng mảng mã ASCII để mã hĩa và giải mã
GV: Thơng tin đưa vào máy tính được mã hĩa như thế
nào?
- Gọi hs trả lời tại chổ.
- Yêu cầu hs xem bảng Phụ lục 1 trang 169/SGK Rồi
dựa vào đĩ để mã hĩa và giải mã.
- Gọi 2 hs lên bảng làm bài b1) và b2)
Đáp án:
b1)
“VN” 01010110 01001110
“Tin” 01010100 01101001 01101110
b2) 01001000 01101111 01100001 là Hoa
Trang 7- Cho một số ví dụ khác đề hs tự giải.
Hoạt động 3: Biểu diễn thông tin trong máy(17’) c Biểu diễn số nguyên và số thực
GV: Gọi 2 hs lên bảng làm bài tập sau:
- Chuyển 1112 sang ?10 1112 1 * 22 1 * 21 * 20 710
AE
- Yêu cầu hs làm bài tập c1), c2) trang 16, 17/SGK
5 Củng cố, sơ kết bài học (1’)
- Nhận xét, rút kinh nghiệm
- Các em cần phải nắm vững cách sử dụng bảng mã ASCII để mã hóa các kí tự
- Nắm vững cách biểu diễn thông tin trong máy tính
6 Dặn dò, ra bài tập cho học sinh (1’)
- Đọc Bài đọc thêm 2 trang 17/SGK
- Xem trước bài số 3 trang 19/SGK để chuẩn bị cho tiết học sau