Kiểu mảng hai chiều Bài toán: Bảng nhân

Một phần của tài liệu giao an tin 11 (Trang 35 - 42)

ChƯơng III: Cấu trúc rẽ nhánh và lặp

IV. Mét sè vÝ dô

2. Kiểu mảng hai chiều Bài toán: Bảng nhân

?Cần phải khai báo bao nhiêu biến mảng

GV giới thiệu mảng 2 chiều

? Nêu khái niệmmảng 2 chiều.

? Yêu cầu HS nhận xét về mảng hai chiều

? Để mô tả kiểu mảng hai chiều, cần xác định những yếu tố nào

Hoạt động 3

Khai báo biến mảng 2 chiều, cách tạo /in mảng ( 20phút) GV đưa ra hai cách khai báo biến mảng hai chiều.

GV giải thích các thành phần trong khai báo.

Gọi HS nêu cách khai báo gián tiếp biến B để lưu trữ bảng nhân ở SGK.

GV đưa ví dụ : Viết chương trình tạo và in mảng hai chiều gồm m hàng, n cột

GV hướng dẫn HS cách tạo mảng hai chiều có m hàng, n cột.

GV hướng dẫn HS cách in mảng hai chiều vừa tạo.

bảng.

HS: Khai báo 9 biến mảng một chiều.

HS: nghe giảng HS trả lời

HS: Nếu coi mảng hai chiều là mảng một chiều mà mỗi phần tử của nó là mảng một chiều.

Tham khảo SGK và trả lời.

HS chú ý theo dõi.

HS nghe giảng

HS đứng tại chỗ trả lời.

HS nghe giảng và ghi bài

HS ghi bài

a. Khái niệm mảng hai chiều SGK

* Các yếu tố cần xác định để mô tả kiểu mảng hai chiều SGK

b. Khai báo - C1: Trực tiếp:

Var <tênbiếnmảng>:array [kiểu chỉ số hàng, kiểu chỉ số cột] of

<kiểu phần tử>;

- C2: Gián tiếp:

Type <tên kiểu mảng> =

array[kiểu chỉ số hàng, kiểu chỉ số cột] of <kiểu ptử>;

Var <tên biến mảng>:<tên kiểu mảng>;

VD: var A:array [1..50,1..100]

of integer;

* Ví dụ:

program Tao_in_mang;

var i, j, m, n: integer;

A: array [1..100,1..100] of integer;

begin

write ('Nhap so hang m = ');

readln(m);

write ('Nhap so cot n = ');

readln (n);

{Tạo mảng}

for i := 1 to m do for j := 1 to n do begin

write('Nhap A[',i, ',' ,j,']=');

readln (A[i , j]);

end;

{In mảng}

for i:= 1 to m do begin

Hoạt động 4 Củng cố (3phút)

- Cách khai báo biến mảng hai chiều.

- Cách tạo mảng hai chiều

HS nghe giảng

for j := 1 to n do write (A[i , j]:4);

writeln;

end;

readln end.

3. Dặn dò

- Xem các ví dụ còn lại trong SGK - Làm các bài tập trong SBT

Soạn:

Giảng:

TiÕt 25

Bài thực hành số 4

I. Mục tiêu

- Củng cố cho HS những kiến thức và kĩ năng đã có dịp lập trình với dữ liệu kiểu mảng - Củng cố cho HS 1 số thuật toán

- Rèn kỹ năng diễn đạt thuật toán, rèn ý thức cần có của 1 người lập trình là viết chương trình với khối lượng tính toán ít nhất có thể

- Góp phần hình thành và rèn luyện tư duy lập trình, tác phong của người lập trình II. Chuẩn bị

1.Thầy: Máy tính, 2.Trò:

III. Tiến trình dạy học

1. ổn định tổ chức

11B1... 11B9 ...

11B2... 11B7 ...

11B8...

2. Bài mới

Hoạt động của GV Hoạt động của HS Ghi bảng

Hoạt động 1 Kiểm tra bài cũ (5phút)

? Trình bày khái niệm và cách khai báo biến mảng 2 chiều

Hoạt động 2 Lý thuyết (15phút)

? Nêu cách khai báo kiểu mảng 1 chiều.

? Nhập từ bàn phím xây dựng mảng một chiều A có 6 phần tử.

HS: gián tiếp, trực tiếp

HS: For i:= 1 to 6 do Begin

Writeln(‘Nhap phan tu thu ’,i,’=’);

Readln(A[i]);

Hoạt động 3 Luyện tập

GV yêu cầu HS làm 1 Chiếu đề bài lên bảng.

? Xác định bài toán

? Yêu cầu hs nhắc lại ý tưởng thuật toán(Lớp 10)

? Vai trò của biến i, j trong CT

? Đoạn lệnh nào thực hiện tráo đổi giá trị 2 phần tử liền kề của mảng

Yêu cầu hs tự nhập dữ liệu với CT có sẵn.

GV nêu đề bài mục 1b

? Yêu cầu HS xác I/O bài toán?

? Biến Dem được tăng lên khi nào

? Cần đưa câu lệnh tăng Dem vào chỗ nào trong CT trên

? Lệnh Dem:= 0 được đặt vào vị trí nào trong CT

GV nhận xét

Hoạt động 4 Củng cố ( 5 phút)

- Thuật toán sắp xếp bằng tráo đổi.

- Đếm số lần tráo đổi

End;

HS đọc đề

HS: - Vào: mảng A - Ra: mảng A đã sắp xếp

HS: thuật toán sắp xếp đã học.

HS: Làm biến chỉ số HS: tg := a[i];

a[i]:= a[i+1];

a[i+1]:= tg;

HS: Chạy CT, nhập dữ liệu, xem kết quả.

HS: I: mảng a;

O: mảng a đã sắp xếp, số lần tráo đổi HS: A[i] > A[i+1]

HS: Trong thân CL If: trước hoặc sau 3 lệnh tráo đổi.

HS trả lời

Bài 1 a

SGK/65

Bài 1 b

SGK/65

3. Dặn dò

Bài tập về nhà

- Tìm thêm các thuật toán sắp xếp khác tối ưu hơn.

- Cho mảng A và mảng B (là mảng A đã được sắp xếp). Hãy in ra chỉ số của các phần tử mảng A theo mảng B.

Soạn:

Giảng:

TiÕt 26

Bài thực hành số 4 (tiếp) I. Mục tiêu

- Củng cố cho HS những kiến thức và kĩ năng đã có dịp lập trình với dữ liệu kiểu mảng - Củng cố cho HS 1 số thuật toán

- Rèn kỹ năng diễn đạt thuật toán, rèn ý thức cần có của 1 người lập trình là viết chương trình với khối lượng tính toán ít nhất có thể

- Góp phần hình thành và rèn luyện tư duy lập trình, tác phong của người lập trình

II. Chuẩn bị

1.Thầy: Máy tính, 2.Trò:

III. Tiến trình dạy học

1. ổn định tổ chức

11B1... 11B9 ...

11B2... 11B7 ...

11B8...

2. Bài mới

Hoạt động của GV Hoạt động của HS Ghi bảng

Hoạt động 1 Lý thuyết ( 5phút)

? Cách khai báo kiểu mảng 1 chiều.

Hoạt động 2 Luyện tập (35phút) GV đưa đề bài lên bảng.

? Xác định bài toán GV lấy ví dụ minh hoạ

A 4 5 1 2 3 7

1 2 3 4 5 6

B

1 2 3 4 5 6

Ban đầu: mọi B[i] = 0

? Mỗi B[i] được tạo mới bằng bao nhiêu

GV: Viết chương trình thô

? Yêu cầu HS cho biết từng phần của chương trình cần xây dựng

? Bước B2 được cụ thể trong CT như thế nào

GV chiếu chương trình chuẩn bị sẵn, Giải thích từng phần của chương trình

? So sánh giá trị B[i] và B[i-1]

Đặc biệt: B[1]

GV nêu sự tối ưu của thuật toán

HS: có 2 cách + gián tiếp:

+ trực tiếp

Quan sát đề và lắng nghe câu hỏi của gv.

HS trả lời

HS: Theo dõi ví dụ minh hoạ

HS trả lời

Lần lượt từng HS trình bày

HS: sử dụng 2 vòng for lồng nhau.

for i:=1 to n do begin

b[i]: =0;

for j:=1 to i do b[i]:=b[i]+a[j];

end;

HS: lắng nghe, quan sát và ghi nhớ.

B[i]:=B[i-1]+A[i]

Tl: B[1]=A[1]

HS: Chú ý theo dõi

Bài 2

SGK/66 Khai báo:

+ Khai báo mảng + Biến đơn

Phần thân:

B1: tạo mảng A.

B2: xd mảng B theo A.

B3: In mảng B.

+ Số lượng phép toán '+' ít hơn

+Chỉ dùng 1 vòng lặp for -> chỉ sd 1 biến chỉ số i cho cả 2 mảng A, B.

Gv chiếu chương trình được cải tiến

? Yêu cầu HS nhập CT cải tiến vào máy.

Hoạt động 3 Củng cố (5 phút)

Trình bày khai báo biến đơn, kahi báo mảng

HS nhập chương trình vào máy

* Đoạn CT cải tiến SGK

3. Dặn dò

- Xem, chuẩn bị trước bài 12: Kiểu xâu - Làm tiếp các bài tập trong SBT

Soạn:

Giảng:

TiÕt 27

Bài thực hành số 4 (tiếp) I. Mục tiêu

- Củng cố cho HS những kiến thức và kĩ năng đã có dịp lập trình với dữ liệu kiểu mảng - Củng cố cho HS 1 số thuật toán

- Rèn kỹ năng diễn đạt thuật toán, rèn ý thức cần có của 1 người lập trình là viết chương trình với khối lượng tính toán ít nhất có thể

- Góp phần hình thành và rèn luyện tư duy lập trình, tác phong của người lập trình II. Chuẩn bị

1.Thầy: Máy tính, 2.Trò:

III. Tiến trình dạy học

1. ổn định tổ chức

11B1... 11B9 ...

11B2... 11B7 ...

11B8...

2. Bài mới

Hoạt động của GV Hoạt động của HS Ghi bảng

Hoạt động 1 Luyện tập (35phút) GV đưa đề bài lên bảng.

? Xác định bài toán GV lấy ví dụ minh hoạ

? Mỗi B[i] được tạo mới bằng bao nhiêu

Quan sát đề và lắng nghe câu hỏi của gv.

HS trả lời

HS trả lời

Bài tập:

Cho mảng A gồm n phần tử.

Hãy viết chương trình tạo mảng B[1..n], trong đố B[i] là tổng của i phần tử cuối cùng

Giải

- Phần Khai báo:

+ Khai báo mảng + Biến đơn

GV: Viết chương trình thô

? Yêu cầu HS cho biết từng phần của chương trình cần xây dựng

? Bước B2 được cụ thể trong CT như thế nào

GV chiếu chương trình chuẩn bị sẵn, Giải thích từng phần của chương trình

GV nêu sự tối ưu của thuật toán

+ Số lượng phép toán '+' ít hơn

+Chỉ dùng 1 vòng lặp for -> chỉ sd 1 biến chỉ số i cho cả 2 mảng A, B.

Gv chiếu chương trình được cải tiến

? Yêu cầu HS nhập CT cải tiến vào máy.

Hoạt động 3 Củng cố (5 phút)

Trình bày khai báo biến đơn, kahi báo mảng

Lần lượt từng HS trình bày

HS: sử dụng 2 vòng for lồng nhau.

for i:=n to 1 do begin

b[i]: =n;

for j:=n to i do b[i]:=b[i]+a[j];

end;

HS: lắng nghe, quan sát và ghi nhớ.

HS: Chú ý theo dõi

HS nhập chương trình vào máy

Phần thân:

B1: tạo mảng A.

B2: xd mảng B theo A.

B3: In mảng B.

- Phần tạo B[]

For i:=n downto 1 do begin

B[i]:=n;

for j:=n downto i do B[i]:=B[i]+A[j];

end;

* Đoạn CT cải tiến SGK

3. Dặn dò

- Xem, chuẩn bị trước bài 12: Kiểu xâu - Làm tiếp các bài tập trong SBT

Soạn:

Giảng:

TiÕt 28

kiÓu x©u

I. Mục tiêu

- Biết khái niệm, cách khai báo 1 xâu

- Biết sử dụng thủ tục, hàm thông dụng về xâu

- Rèn kỹ năng khai báo kiểu xâu, so sánh 2 xâu, nhận biết và bước đầu sử dụng các hàm và thủ tục chuẩn

II. Chuẩn bị

1.Thầy: Máy tính, 2.Trò:

III. Tiến trình dạy học

1. ổn định tổ chức

11B1... 11B9 ...

11B2... 11B7 ...

11B8...

2. Bài mới

Hoạt động của GV Hoạt động của HS Ghi bảng

Hoạt động 1 Khái niệm xâu (8 phút)

? Xâu là gì

Yêu cầu HS khác nhận xét GV nêu lại khái niệm

? Xâu có bao nhiêu kí tự

? Y/c HS viết xâu có ký tự trống, xâu rỗng, nêu số lượng ký tự của mỗi xâu.

GV: Giới thiệu cách tham chiếu phần tử

Hoạt động 2 Khai báo dữ liệu (14 phút)

? Ý nghĩa của từ String

? Độ dài lớn nhất của xâu là bao nhiêu

? Hãy nhắc lại các phép toán đã học trên kiểu dữ liệu chuẩn GV chiếu chương trình VD

? Kết quả của chương trình in ra màn hình

? Chức năng của phép cộng GV: Chiếu chương trình VD về phép so sánh

? Yêu cầu HS cho biết kết quả Hoạt động 3

Các thao tác sử lý xâu ( 20 phút)

GV giới thiệu từng thủ tục và hàm

Ứng với mỗi thủ tục và hàm giáo viên đưa ra một ví dụ minh hoạ theo sgk.

? Ý nghĩa của hàm Length(b)

HS trả lời Nhận xét HS ghi bài Trả lời.

HS Trả lời HS Trả lời HS nhắc lại

Quan sát chương trình để dự tính kết HS dùng để ghép xâu

HS dự đoán

HS nghe giảng

HS trả lời

* Khái niệm SGK

1. Khai báo

SGK Lưu ý:

Một xâu có độ dài nhỏ hơn có thể lớn hơn (>) và ngược lại

Một phần của tài liệu giao an tin 11 (Trang 35 - 42)

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

(49 trang)
w