1. Trang chủ
  2. » Giáo án - Bài giảng

GA 11 sua theo PPCT moi ki 2 nam 2020 2021

39 64 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 39
Dung lượng 475,5 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Giáo án tin học 11 kỳ II soạn theo 5 bước định hướng phát triển năng lực bài học. Các ví dụ được mô tả và viết trong Free Pascal trọn bộ Kỳ II gồm: kiến thức phần magr, phần xâu, phần tệp, phần chương trình con.

Trang 1

Bài soạn số 14

Tiết dạy: 20, 21, 22, 23, 24, 25, 26, 27, 28 Ngày soạn: 10, 11, 12, 13/1/2020 Tuần dạy: 20, 21, 22, 23, 24

CHỦ ĐỀ: KIỂU DỮ LIỆU CÓ CẤU TRÚC

PHẦN: KIỂU MẢNG

I Xác định chủ đề bài học

- Tên chủ đề: Kiểu mảng gồm Bài 11: “Kiểu mảng” dạy trong 9 tiết gồm 4 tiết lí thuyết và 5 tiết bài

tập và thực hành Trong khuôn khổ chương trình, chỉ xét mảng một chiều

- Vấn đề cần giải quyết trong bài học này là :

• Biết kiểu mảng là một kiểu dữ liệu có cấu trúc, cần thiết và tiện dụng trong lập trình Vì vậy, cácngôn ngữ lập trình thông dụng đều cho phép người lập trình dễ dàng khai báo kiểu dữ liệu mảng

• Hiểu mảng một chiều là một dãy hữu hạn các phần tử cùng kiểu Khi khai báo mảng một chiều cầnkhai báo số lượng các phẩn tử, kiểu phần tử và cách đánh số các phần tử của mảng

Truy cập phần tử mảng một chiều: <tên biến mảng >[chỉ số]

• Xây dựng được thuật toán, sử dụng được kiểu mảng một chiều để giải bài toán tìm phần tử lớn nhấtcủa dãy số nguyên

II Xác định chuẩn kiến thức kĩ năng

1 Kiến thức:

•Hiểu khái niệm mảng một chiều

•Hiểu cách khai báo và truy cập đến các phần tử của mảng

VI KHUNG TIẾN TRÌNH DẠY HỌC

Khởi động Tình huống xuất phát Tạo động cơ xuất phát 15 phút

Hình thành kiến

thức

- Khái niệm kiểu dữ liệu mảng - Tìm hiểu kiến thức qua SGK 10 phút

- Khai báo mảng và truy cập đến từng phần tử của mảng trong Pascal

- Nhập dữ liệu cho mảng và tìmphần tử lớn nhất (nhỏ nhất) củamảng

- Cá nhân tham khảo SGK và

- Sắp xếp trong mảng - Cá nhân tham khảo SGK và đưa ra vấn đề 45 phút

- Tìm kiếm phần tử thỏa mãn điều kiện nào đó trong mảng

- Cá nhân tham khảo SGK và

số 4 và các bài tập mở rộng - Thực hiện hoạt động 225 phút

V HƯỚNG DẪN CỤ THỂ TIẾN TRÌNH DẠY – HỌC

Trang 2

Tiết 1: Dạy xong hoạt động khởi động và khai báo biến mảng, truy cập đến từng phần tử của mảng

trong Pascal

1 Hoạt động khởi động:

- Mục tiêu: Tạo động cơ để học sinh có nhu cầu tìm hiểu về kiểu mảng

- Phương pháp, kĩ thuật dạy học: nêu vấn đề, cá nhân và thảo luận nhóm

- Phương tiện dạy học: SGK

- Sản phẩm: học sinh có nhu cầu tìm hiểu về kiểu mảng

Nội dung hoạt động

Bài toán: Lập trình nhập vào từ bàn phím nhiệt độ của 7 ngày trong

tuần Sau đó, tính nhiệt độ trung bình của tuần đó và cho biết có bao

nhiêu ngày có nhiệt độ lớn hơn nhiệt độ trung bình của tuần

- Yêu cầu: xác định số lượng và kiểu dữ liệu cho các biến của bài toán

Để đém số ngày có nhiệt độ lớn hơn nhiệt độ trung bình của tuần ta

phải sử dụng câu lệnh nào?

- Hỏi: Khi mở rộng bài toán với nhiệt độ của một tháng, một năm thì

có những hạn chế nào?

- Dẫn dắt: Để khắc phục những hạn chế trên, người ta thường ghép

chung 7 biến trên thành một dãy và đặt cho nó chung một tên và đánh

cho một phần tử một chỉ số Đó là kiểu mảng một chiều Dẫn dắt sang

phần tìm hiểu mảng một chiều

- Suy nghĩ trả lời

2 Hoạt động hình thành kiến thức:

2 1 Khái niệm mảng một chiều

- Mục tiêu: Biết Khái niệm mảng một chiều

- Phương pháp, kĩ thuật dạy học: nêu vấn đề, cá nhân và thảo luận nhóm

- Phương tiện dạy học: SGK

- Sản phẩm: học sinh biết khái niệm mảng một chiều

Nội dung hoạt động

1 Chiếu đề bài và chương trình ví dụ lên bảng

- Hỏi: Khi N lớn thì chương trình trên có những

hạn chế như thế nào?

- Dẫn dắt: Để khắc phục những hạn chế trên,

người ta thường ghép chung 7 biến trên thành

một dãy và đặt cho nó chung một tên và đánh

cho một phần tử một chỉ số

2 Yêu cầu học sinh tham khảo sách giáo khoa

và hỏi: Em hiểu như thế nào về mảng một

chiều?

- Hỏi: Để mô tả mảng một chiều, ta cần xác

định những yếu tố nào?

1 Quan sát trên màn hình, suy nghĩ và trả lời

- Phải khai báo quá nhiều biến Chương trìnhphải viết rất dài

2 Nghiên cứu sách giáo khoa để trả lời

- Mảng một 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 một chiều cần xác định đượckiểu của các phần tử và cách đánh số các phần tửcủa nó

2.2 Tạo kiểu mảng một chiều và khai báo biến mảng một chiều, truy cập đến từng phần tử của mảng

trong Pascal

- Mục tiêu: Biết khai báo và truy cập đến từng phần tử của kiểu mảng một chiều

- Phương pháp, kĩ thuật dạy học: nêu vấn đề, cá nhân và thảo luận nhóm

- Phương tiện dạy học: SGK

- Sản phẩm: học sinh biết biết khai báo và truy cập đến từng phần tử của kiểu mảng một chiều

Trang 3

Nội dung hoạt động

Tiết 2: Nhập dữ liệu cho mảng từ bàn phím và tìm giá trị lớn nhất (nhỏ nhất) trong mảng

2.3 Tìm phần tử lớn nhất của dãy số nguyên

- Mục tiêu: Biết nhập dữ liệu cho mảng và tìm phần tử lớn nhất của kiểu mảng một chiều

- Phương pháp, kĩ thuật dạy học: nêu vấn đề, cá nhân và thảo luận nhóm

- Phương tiện dạy học: SGK

- Sản phẩm: học sinh Biết nhập dữ liệu cho mảng và tìm phần tử lớn nhất của kiểu mảng một chiều

1 Yêu cầu học sinh nghiên cứu sách giáo

khoa và cho biết cách tạo kiểu dữ liệu mảng

một chiều trong ngôn ngữ lập trình Pascal

- Hỏi: Những khai báo nào đúng?

2 Yêu cầu học sinh cho biết cách khai báo

biến và một ví dụ khai báo một biến mảng

ứng với kiểu dữ liệu vừa tạo

- Gọi học sinh khác, hỏi: Ý nghĩa của lệnh

bạn vừa viết?

- Dung lượng bộ nhớ của biến a đã chiếm là

bao nhiêu?

- Chú ý cho học sinh về cách đặt tên kiểu dữ

liệu và tên biến, tránh nhầm lẫn

3 Giới thiệu cách tham chiếu đến từng phần

tử của mảng một chiều Yêu cầu học sinh lấy

một ví dụ

1 Tham khảo sách giáo khoa và trả lời

- TYPE tên_km= Array[kiểu_cs] Ofkiểu_thành_phần;

- Ví dụ: Type mmc=array[1 100] of integer;

- Tạo một kiểu dữ liệu mới có tên mmc, gồm 100phần tử, có kiểu nguyên

- Quan sát bảng và chọn khai báo đúng

Arrayr=array[1 200] of real;

Arrayb=array[-100 0] of boolean;

2 Tham khảo sách giáo khoa và trả lời

- VAR tên_biến : tên_km;

- Ví dụ: Var a : mmc;

- Khai báo một biến mảng một chiều

- A đã chiếm 200 byte trong bộ nhớ

3 Theo dõi hướng dẫn của GV và độc lập suynghĩ để trả lời

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

Trang 4

Nội dung hoạt động

Tiết 3: Sắp xếp trong mảng

2.4 Sắp xếp dãy số nguyên bằng thuật toán tráo đổi

- Mục tiêu: Biết nhập viết chương trình sắp xếp cho biến kiểu mảng một chiều

- Phương pháp, kĩ thuật dạy học: nêu vấn đề, cá nhân và thảo luận nhóm

- Phương tiện dạy học: SGK

- Sản phẩm: học sinh Biết nhập viết chương trình sắp xếp cho biến kiểu mảng một chiều

Nội dung hoạt động

- Yêu cầu học sinh xác định bài toán?

- Hỏi: Em hãy nêu thuật toán để giải bài toán trên?

- Hướng dẫn học sinh xây dựng thuật toán

- Yêu cầu học sinh lên bảng thực hiện viết chương

trình

- Đối với lớp A1 đến A4 thì yêu cầu học sinh hoàn

thiện chương trình không hướng dẫn bằng ngôn ngữ

tự nhiên Còn đối với các lớp còn lại, giáo viên

hướng dẫn các bước bằng ngôn ngữ tự nhiên rồi gọi

học sinh hoàn thiện chương trình bằng ngôn ngữ

Pascal theo các bước

-Input: số nguyên N (N≤250) và dãy sốnguyên A1, A2, , An

- Output: Chỉ số và giá trị của một phần tửlớn nhất trong dãy đã cho

- Hs suy nghĩ trả lời

- Tập trung nghe giảng và ghi bài

- Thực hiện viết chương trình

Tiết 4: Tìm kiếm phần tử thỏa mãn

2 5 Tìm kiếm tuần tự

- Mục tiêu: Biết nhập viết chương trình tìm kiếm cho biến kiểu mảng một chiều

- Phương pháp, kĩ thuật dạy học: nêu vấn đề, cá nhân và thảo luận nhóm

- Phương tiện dạy học: SGK

- Sản phẩm: học sinh Biết nhập viết chương trình tìm kiếm cho biến kiểu mảng một chiều

Nội dung hoạt động

- Đưa ra yêu cầu trong thực tế của bài toán tìm kiếm

và phát biểu bài toán

- Yêu cầu học sinh xác định bài toán?

- Hỏi: Em hãy nêu thuật toán để giải bài toán trên?

- Hướng dẫn học sinh xây dựng thuật toán

- Yêu cầu học sinh lên bảng thực hiện viết chương

-Input: số nguyên N (N≤250) và dãy sốnguyên A1, A2, , An , số nguyên K

- Output: Vị trí i mà ai = k hoặc thông báokhông có phần tử nào trong dãy có giá trịbằng k

- Suy nghĩ trả lời

- Trong cuộc sống có rất nhiều việc cần tìm giá trị lớn nhất, ví

dụ như cuối học kì I cần tìm người có điểm trung bình cao nhất

lớp, thấp nhất lớp, tìm người có chiều cao cao nhất lớp, hay

trong xã hội tìm người giàu nhất Việt Nam, Những bài toán

đó đều có thể lập trình cho máy tính làm việc vì vậy để đơn

giản bài toán người ta phát biểu bài toán như sau: Cho số

nguyên dương N (N ≤ 500) và dãy số nguyên A có N phần tử

A1, , AN Tìm phần tử lớn nhất trong dãy A Biết dữ liệu dược

nhập vào từ bàn phím

Yêu cầu học sinh xác định bài toán?

- Hỏi: Em hãy nêu thuật toán để giải bài toán trên?

- Hướng dẫn học sinh xây dựng thuật toán

- Theo thuật toán nếu dãy có nhiều phần tử đạt giá trị lớn nhất

thì chỉ số vt tìm được trong thuật toán sẽ là chỉ số của phần tử

max nào của mảng

- Yêu cầu học sinh lên bảng thực hiện viết chương trình

- Mở rộng bài toán với tìm giá trị nhỏ nhất và đếm số lượng

bằng phần tử lớn nhất, nhỏ nhất

-Input: số nguyên N (N≤250) vàdãy số nguyên A1, A2, , An

- Output: Chỉ số và giá trị củamột phần tử lớn nhất trong dãy

đã cho Hs suy nghĩ trả lời

- Đó là phần tử cuối cùng trongmảng mà bằng max

- Tập trung nghe giảng và ghibài

- Thực hiện viết chương trình

Trang 5

- Đối với lớp A1 đến A4 thì yêu cầu học sinh hoàn

thiện chương trình không hướng dẫn bằng ngôn ngữ

tự nhiên Còn đối với các lớp còn lại, giáo viên

hướng dẫn các bước bằng ngôn ngữ tự nhiên rồi gọi

học sinh hoàn thiện chương trình bằng ngôn ngữ

Pascal theo các bước

- Tập trung nghe giảng và ghi bài

- Thực hiện viết chương trình

Tiết 5: Bài tập và thực hành 3

2.6 Bài thực hành số 3:

2.6.1 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

1 Tìm hiểu chương trình ở câu a, sách giáo

khoa, trang 63 và chạy thử chương trình

- Chiếu chương trình lên bảng

- Hỏi: Khai báo Uses CRT; có ý nghĩa gì?

- Hỏi: Myarray là tên kiểu dữ liệu hay tên biến?

- Hỏi: Vai trò của nmax và n có gì khác nhau?

- Hỏi: Những dòng lệnh nào dùng để tạo biến

- Thực hiện lại chương trình lần cuối để học

sinh thấy kết quả

2 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

- Chiếu lên màn hình các lệnh cần thêm vào

chương trình ở câu a

- Hỏi: Ý nghĩa của biến Posi và neg?

- Hỏi: 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;

- Yêu cầu học sinh thêm vào vị trí cần thiết để

chương trình đếm được số

- Yêu cầu học sinh gõ nội dung và lưu lại với

tên caub.pas Thực hiện chương trình và báo

cáo kết quả

1 Quan sát, chú ý và trả lời

- Khai báo thư viện chương trình con Crt để sửdụng được thủ tục Clrscr;

- Tên kiểu dữ liệu

- nmax là số phần tử tối đa có thể chứa của biếnmảng a n là số phần tử thực tế của a

- Lệnh khai báo kiểu và khai báo biến

- Quan sát chương trình thực hiện và kết quả trênmàn hình

- Lệnh sinh ngẫu nhíên giá trị cho mảng a từ -299đến 299

- In ra màn hình giá trị của từng phần tử trongmảng a

- Cộng các phần tử chia hết cho k

- Có số lần đúng bằng số phần tử a[i] chia hết k

- Quan sát GV thực hiện chương trình và kết quảtrên màn hình

2 Quan sát và chú ý theo dõi các câu hỏi của GV:

- Quan sát các lệnh và suy nghĩ vị trí cần sửa trongchương trình câu a

- Dùng để lưu số lượng đếm được

- Đếm số dương hoặc đếm số âm

- Chỉ ra vị trí cần thêm vào trong chương trình

- Lưu chương trình Thực hiện chương trình vàthông báo kết quả

Tiết 6: Bài tập và thực hành 3

2.6.1 Bài tập tự viết

1 Viết chương trình nhập vào từ bàn phím số nguyên

- Viết đoạn chương trình nhập N và dãy A

- Cho i chạy từ 1 đến N rồi dùng lệnh Writehiển thị A[i]

Trang 6

B1: Nhập N

B2: Cho i: 1  N làm

Cv1: thông báo nhập phần tử thứ i

Cv2: Nhập A[i]

- Hiển thị mảng A lên màn hình ta làm như thế nào?

- Hs nhớ lại thuật toán tìm max, tìm min làm tiếp

- Đối với các lớp từ A1 đến A4 thì không hướng dẫn

các bước bằng lời, các lớp còn lại hướng dẫn chi tiết

bằng lời rồi yêu cầu học sinh chuyển qua chương trình

Pascal

- Lớp A1, A3 yêu cầu học sinh tìm Min, Max ngay

trong quá trình nhập dữ liệu bằng cách gán max = giá

trị nhỏ nhất của tập số thực và Min = giá trị lớn nhất

1 Gợi ý cho học sinh thuật toán sắp xếp tăng dần

- Lấy một ví dụ thực tiễn: Người mù sắp xếp một

dãy các viên bi theo kích thước không giảm

- Yêu cầu: Vạch ra các bước để sắp xếp các phần

tử của một mảng không giảm

2 Tìm hiểu chương trình ví dụ, sách giáo khoa,

trang 65

- Chiếu chương trình ví dụ lên bảng

- Hỏi: Vai trò của biến i, j trong chương trình? mỗi

vòng lặp For trong đoạn chương trình sắp xếp có

ý nghĩa gì?

- Hỏi: Ba lệnh tg:=a[i]; a[i]:=a[i+1]; a[i+1]:=tg;

có ý nghĩa gì?

- Thực hiện chương trình, nhập dữ liệu để học

sinh thấy kết quả chương trình

- Hỏi: Chương trình làm công việc gì?

3 Sửa chương trình để giải quyết bài toán ở câu b

- Đặt yêu cầu mới: Khai báo thêm biến nguyên

Dem và bổ sung vào chương trình đoạn lệnh cần

thiết để biến Dem tính số lần thực hiện tráo đổi

trong thuật toán In kết quả tìm được ra màn hình

- Hỏi: Đoạn chương trình nào dùng để thực hiện

tráo đổi giá trị?

- Yêu cầu hoc sinh viết lệnh để đếm số lần tráo

đổi

- Hỏi: Lệnh này được viết ở vị trí nào trong

chương trình?

- Yêu cầu học sinh soạn chương trình vào máy

- Yêu cầu học sinh nhập dữ liệu vào của GV và

thông báo kết quả

- Đánh giá kết quả của học sinh

1 Chú ý theo dõi những dẫn dắt của GV để trảlời câu hỏi

- Lần lượt lấy từng phần tử từ trái qua phải

- Cứ mỗi phần tử ta đem so sánh lần lượt vớicác phần tử đứng bên phải của nó

- Nếu nhỏ hơn thì đổi chỗ

2 Quan sát chương trình, suy nghĩ câu hỏi vàtrả lời

- Quan sát GV thực hiện chương trình

- Chương trình sắp xếp dãy số thao thứ tựkhông giảm

3 Quan sát yêu cầu mới, chú ý định hướng giảiquyết của GV

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

- Dem := Dem+1;

- Ngay sau đoạn lệnh tráo đổi

- Soạn chương trình vào máy, thực hiện chươngtrình và thông báo kết quả

- Nhập dữ liệu theo yêu cầu của GV, thực hiện chương trình và thông báo kết quả sau khi thực hiện

Trang 7

HOẠT ĐỘNG CỦA GV HOẠT ĐỘNG CỦA HS

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

- Chiếu đề bài lên bảng

- Yêu cầu: Xác định dữ liệu vào, dữ liệu ra?

- Gợi ý để học sinh đề xuất thuật toán thô

2 Giới thiệu chương trình chưa cải tiến

- Chiếu chương trình diễn đạt thuật toán

- Thực hiện chương trình để học sinh biết thời gian

thực hiện chương trình và kết quả của chương trình

- Hỏi: Trong chương trình phải thực hiện bao nhiêu

phép cộng?

- Hỏi: Có cách nào để cải tiến?

- Lệnh này được thay lệnh nào trong chương trình?

Viết ở vị trí nào?

3 Yêu cầu: Viết chương trình hoàn thiện

4 Tiểu kết: Cùng một bài toán, có nhiều cách giải

quyết khác nhau Người lập trình cần chọn cách sao

cho máy thực hiện nhanh nhất

1 Quan sát đề bài và trả lời câu hỏi

- Vào: Mảng A gồm n phần tử

- Ra: Mảng B gồm n phần tử

- Tại vị trí i ta tính tổng giá trị các phần tử

từ 1 đến i

2 Quan sát chương trình trên bảng

- Quan sát GV thực hiện, nhận xét về thờigian thực hiện chương trình

- Phải thực hiện n(n+1)/2 phép cộng

- Để tính bước thứ i, ta sử dụng kết quả đãtính ở bước thứ i-1

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

- Thay đoạn lệnhFor j:=1 to i do B[i]:=B[i]+A[j];

3 Soạn chương trình vào máy, thực hiệnchương trình và thông báo kết quả

- Nhận xét về thời gian thực hiện củachương trình này so với chương trình trướckhi cải tiến

Tiết 9: Bài tập - Rèn luyện kĩ năng viết chương trình

1 Đưa bài toán 1: Cho số nguyên dương N (1 < N <

500) và dãy số nguyên A gồm N phần tử A1, , AN

Hãy lập trình

a Nhập vào từ bàn phím N và dãy A

b Đếm và hiển thị lên màn hình số lượng các số

dương của dãy A

c Tính tổng và hiển thị lên màn hình số lượng các số

chia hết cho 2 của dãy A

- Yêu cầu học sinh xác định bài toán

- Yêu cầu: Xác định dữ liệu vào, dữ liệu ra?

- Gợi ý để học sinh đề xuất thuật toán thô

- Yêu cầu: Viết chương trình hoàn thiện

- Tiểu kết: Cùng một bài toán, có nhiều cách giải quyết

khác nhau Người lập trình cần chọn cách sao cho máy

thực hiện nhanh nhất Khi nhập dữ liệu, chúng ta có

thể gộp các công việc tính toán, tìm kiếm trên mảng

2 Đưa bài toán 2: Cho số nguyên dương N (1 < N <

500) và dãy số nguyên A gồm N phần tử A1, , AN

Hãy lập trình

a Nhập vào từ bàn phím N và dãy A

b Sắp xếp dãy A theo thứ tự không giảm

c Hiển thị lên màn hình số lượng số có giá trị lớn

nhất, số lượng số có giá trị nhỏ nhất trong dãy A

- Yêu cầu học sinh xác định bài toán

- Yêu cầu: Xác định dữ liệu vào, dữ liệu ra?

- Gợi ý để học sinh đề xuất thuật toán thô

- Yêu cầu: Viết chương trình hoàn thiện

1 Quan sát đề bài và trả lời câu hỏi

- Viết chương trình trên giấy

- Soạn chương trình vào máy, thực hiệnchương trình và thông báo kết quả

- Nhận xét về thời gian thực hiện củachương trình này so với chương trình trướckhi cải tiến

- Suy nghĩ làm bài

RÚT KINH NGHIỆM GIỜ DẠY

Trang 8

Yên Dũng, ngày tháng năm 2020

Duyệt của tổ bộ môn

Trang 9

Bài soạn số 15 Ngày soạn: 18/3/2020

KIỂM TRA MỘT TIẾT

I Xác định chủ đề bài học

- Đánh giá kiến thức đã học bài: Kiểu mảng và các kiến thức đã học trong học kì I

II Xác định chuẩn kiến thức kĩ năng

1 Kiến thức:

•Hiểu khái niệm mảng một chiều

•Hiểu cách khai báo và truy cập đến các phần tử của mảng

- Năng lực nhận biết và giải quyết vấn đề, làm quen với dữ liệu có cấu trúc.

III MA TRẬN ĐỀ KIỂM TRA:

Bài học

Các mức độ nhận thức

Tự luận

Trắc nghiệm

Tự luận

Trắc nghiệm

Tự luận

Trắc nghiệm

Tự luận

Trắc nghiệm

Chủ đề: Kiểu mảng và

biến có chỉ số

7 câu(2,8đ)

5 câu(2,0 đ)

2 câu(3điểm)

3 câu(1,2điểm)

1 câu(1điểm)

IV ĐỀ KIỂM TRA:

I Trắc nghiệm: Em hãy chọn một đáp án đúng nhất rồi điền vào bảng phía dưới (5 điểm)

Câu 1 Thế nào là khai báo biến mảng gián tiếp?

Câu 2 Phát biểu nào dưới đây về chỉ số của mảng là phù hợp nhất?

C Dùng trong vòng lặp với mảng để quản lí kích thước của mảng; D Dùng để truy cập đến một phần

tử bất kì trong mảng;

Câu 3 Cho khai báo mảng như sau: Var M : array[0 10] of integer ;

Phương án nào dưới đây gọi phần tử thứ 10 của mảng?

Câu 4 Trong ngôn ngữ lập trình Pascal, với khai báo như sau :

Type mang = ARRAY[1 100] of integer ;

Var a, b : mang ;

c : array[1 100] of integer ;

Câu lệnh nào dưới đây là hợp lệ?

Câu 5 Trong ngôn ngữ lập trình Turbo Pascal, về mặt cú pháp câu lệnh nào sau đây là đúng?

char;

Trang 10

C Type mang1c=array[1 100] of char; D Type 1chieu=array[1 100] of char; Câu 6 Trong ngôn ngữ lập trình Pascal, để khởi tạo cơ chế sinh số ngẫu nhiên, ta dùng lệnh:

Câu 7 Trong Pascal, phương án nào dưới đây là khai báo mảng hợp lệ?

Câu 9 Phát biểu nào sau đây là đúng?

A Có thể dùng bất cứ một kiểu dữ liệu chuẩn nào để đánh chỉ số cho các phần tử của mảng một

chiều

B Mảng một chiều là một dãy hữu hạn các số nguyên.

C Khi xây dựng kiểu mảng một chiều, người lập trình không cần khai báo kiểu dữ liệu của phần tử

D của mảng

D Mảng một chiều là một dãy hữu hạn các phần tử cùng tên và cùng kiểu dữ liệu

Câu 10 Phát biểu nào dưới đây về kiểu mảng là phù hợp?

Câu 11 Cho khai báo sau a : array[0 16] of integer ; Câu lệnh nào dưới đây sẽ in ra tất cả các phần tử

của mảng a?

Câu 12 Cho khai báo mảng Var a : array[0 50] of real ; và đoạn chương trình như sau:

k := 0 ;

for i := 1 to 50 do if a[i] > a[k] then k := i ;

Đoạn chương trình trên thực hiện công việc gì dưới đây?

Câu 13 Phát biểu nào sau đây về mảng là không chính xác?

A Chỉ số của mảng không nhất thiết bắt đầu từ 1; B Độ dài tối đa của mảng là 255;

Câu 14 Trong ngôn ngữ lập trình Pascal, đoạn chương trình sau thực hiện việc nào trong các việc sau

Câu 15 Trong ngôn ngữ lập trình Pascal, để đổi giá trị hai phần tử mảng một chiều A tại hai vị trí i và

j , ta viết lệnh như sau :

A Tag := A[i]; A[i] := A[j]; A[j] := Tag; B A[i] := Tag; A[i] := A[j]; A[j] := Tag;

Trang 11

C Tag := A[i]; A[j] := A[i]; A[j] := Tag; D Tag := A[i]; A[i] := A[j]; Tag := A[j];

Trả lời trắc nghiệm

II Tự luận (5 điểm)

Cho số nguyên dương N ( 1 ≤ N ≤ 500) và dãy số nguyên A có N phần tử A1, …, AN Hãy lập trình:

a Nhập vào từ bàn phím N và dãy A

b Hiển thị dãy A vừa nhập lên màn hình

c Tính trung bình cộng các số chẵn của dãy A

1

0,5

(Lưu ý: Nếu học sinh làm theo các khác đúng vẫn cho điểm)

VI Rút kinh nghiệm giờ dạy

Trang 12

Yên Dũng, ngày tháng năm 2020

Duyệt của tổ bộ môn

Bài soạn số 16

Tiết dạy: 30, 31, 32, 33

Ngày soạn: 2/5/2020 Tuần dạy: 28, 29

CHỦ ĐỀ: KIỂU DỮ LIỆU CÓ CẤU TRÚC

KIỂU DỮ LIỆU XÂU

- Biết được một kiểu dữ liệu mới, biết được khái niệm kiểu xâu

- Phân biệt được sự giống và khác giữa kiểu mảng ký tự với xâu ký tự

- Biết được cách khai báo biến, nhập xuất dữ liệu, tham chiếu đến từng ký tự của xâu

- Biết các phép toán liên quan xâu

VI KHUNG TIẾN TRÌNH DẠY HỌC

- Chủ đề này dạy trong 1 tiết học 45 phút

Khởi động Tình huống xuất phát Tạo động cơ xuất phát 10 phút

Hình thành kiến

thức

- Khái niệm kiểu dữ liệu xâu - Tìm hiểu kiến thức qua SGK 10 phút

- Các phép toán trên xâu: So

- Các thủ tục trên xâu - Cá nhân tham khảo SGK và đưa ra vấn đề 15 phút

- Các hàm trên xâu - Cá nhân tham khảo SGK và đưa ra vấn đề 10 phút

- Xâu trong Pascal - Cá nhân tham khảo SGK và đưa ra vấn đề 35 phútLuyện tập – Vận

dụng- Tìm tòi

mở rộng

- Làm bài tập áp dụng phần ví

dụ và bài tập thực hành số 5 - Thực hiện hoạt động 90 phút

Tiết 1: Dạy xong hoạt động khởi động và khái niệm xâu, các phép ghép xâu, so sánh xâu.

V HƯỚNG DẪN CỤ THỂ TIẾN TRÌNH DẠY – HỌC

1 Hoạt động khởi động:

Trang 13

- Mục tiêu: Tạo động cơ để học sinh có nhu cầu tìm hiểu về kiểu xâu

- Phương pháp, kĩ thuật dạy học: nêu vấn đề, cá nhân và thảo luận nhóm

- Phương tiện dạy học: SGK

- Sản phẩm: học sinh có nhu cầu tìm hiểu về kiểu xâu

Nội dung hoạt động

2 Hoạt động hình thành kiến thức:

2 1 Khái niệm xâu

- Mục tiêu: Biết khái niệm xâu và bản chất của xâu là mảng một chiều các kí tự

- Phương pháp, kĩ thuật dạy học: nêu vấn đề, cá nhân và thảo luận nhóm

- Phương tiện dạy học: SGK

- Sản phẩm: học sinh biết khái niệm xâu

- Chiếu đề bài của bài toán đặt vấn đề: Viết

chương trình nhập họ tên của 30 học sinh

trong lớp

- Hỏi: Ta sẽ chọn kiểu dữ liệu như thế nào?

Khai báo biến như thế nào?

- Yêu cầu học sinh: Viết đoạn lệnh để nhập và

xuất dữ liệu cho từng phần tử

- Hỏi: Có những khó khăn gì gặp phải?

- Dẫn dắt: Cần có một kiểu dữ liệu mới cho

phép ta nhập/xuất dữ liệu cho xâu bằng một

Trang 14

Nội dung hoạt động

2 2 Các phép toán trên xâu

- Mục tiêu: Biết ghép xâu và so sánh xâu

- Phương pháp, kĩ thuật dạy học: nêu vấn đề, cá nhân và thảo luận nhóm

- Phương tiện dạy học: SGK

- Sản phẩm: học sinh biết kết quả của ghép xâu và so sánh xâu

1 Tìm hiểu về kiểu xâu

- Chiếu lên bảng cách khai báo biến xâu trong ngôn ngữ

lập trình Pascal

- Hỏi: Ý nghĩa của từ String, [n]

- Hỏi: Khi khai báo không có [n] thì số lượng ký tự tối

đa là bao nhiêu?

- Yêu cầu học sinh cho ví dụ một xâu ký tự

- Hỏi: Xâu có bao nhiêu ký tự?

- Diễn giải: Mỗi ký tự được gọi là một phần tử của xâu

Số lượng ký tự trong xâu được gọi là độ dài của xâu

- Hỏi: Xâu chỉ gồm một ký tự trống được viết như thế

nào? số lượng ký tự bao nhiêu?

- Hỏi: Xâu rỗng được viết như thế nào? số lượng ký tự

- Yêu cầu học sinh tìm ví dụ cụ thể

- Hỏi: Khi viết lệnh nhập/xuất dữ liệu cho biến xâu, có

gì khác so với biến mảng các ký tự

- Dẫn dắt: Ta có thể sử dụng lệnh gán để nhập giá trị

cho biến xâu Cấu trúc chung:

tên_biến_xâu:=hằng_xâu;

- Yêu cầu học sinh tìm một ví dụ cụ thể

3 Tham chiếu đến từng ký tự của xâu

- Giới thiệu cấu trúc chung

- Hỏi: Có gì giống và khác nhau so với cách tham chiếu

đến từng phần tử của mảng

- Yêu cầu học sinh tìm một ví dụ

4 Kiểm tra kiến thức

- Chiếu nội dung bài tập kiểm tra kiến thức:

Var st:string[1]; c:char;

Begin

c:=st[1]; {1}

c:=st; {2}

End

- Hỏi: Trong hai lệnh {1} và {2}, lệnh nào đúng?

- Thực hiện chương trình để học sinh tự kiểm nghiệm

suy luận

1 Quan sát cấu trúc khai báo và thamkhảo sách giáo khoa

- String là tên kiểu xâu

- [n] là giá trị quy định số lượng ký tự tối

đa mà biến xâu có thể chứa

- Số ký tự tối đa là 255

- Ví dụ: ‘HA NOI’

- Xâu có 6 ký tự, dấu cách là một ký tự

- Ký hiệu của xâu gồm một ký tự trống là

‘ ’ Xâu này có độ dài là 1

- Ký hiệu của xâu rỗng là ‘ ’ Xâu này

có độ dài là 0

2 Quan sát bảng để trả lời

- Ví dụ: Readln(hoten);

- Ví dụ: Write(‘Ho ten ’,hoten);

- Viết một lệnh nhập nguyên cho cả xâu.Viết lệnh gọn hơn, chương trình gọn

- Ví dụ: St:= ‘HA NOI’;

3 Quan sát và suy nghĩ để trả lời

- Giống cấu trúc chung khi tham chiếutên biến[chỉ số]

Trang 15

Nội dung hoạt động

2 3 Các thủ tục trên xâu

- Mục tiêu: Biết thủ tục xóa và chèn xâu

- Phương pháp, kĩ thuật dạy học: nêu vấn đề, cá nhân và thảo luận nhóm

- Phương tiện dạy học: SGK

2 Tìm hiểu chức năng của một số phép toán trong

kiểu xâu qua một số ví dụ

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

- Thực hiện chương trình để học sinh thấy kết

quả

- Yêu cầu học sinh tìm một số ví dụ khác

- Hỏi: Chức năng của phép cộng ?

- Giới thiệu thêm một số ví dụ khác và yêu cầu

học sinh cho biết kết quả

st:= ‘Ha’ +‘Noi’;

st:= ‘Ha ’+‘Noi’;

st:= ‘ ’ + ‘Ha Noi’;

st:= ‘Ha Noi’ + ‘Việt’ + ‘Nam’;

- Chiếu chương trình ví dụ về phép so sánh xâu

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

- Thực hiện chương trình để học sinh thấy kết

quả

- Hỏi: Còn các phép so sánh nào nữa?

- Chiếu các ví dụ về các phép so sánh và yêu cầu

học sinh cho biết kết quả của các phép so sánh đó

‘AB’ < ‘ABC’

‘AC’ < ‘ABC’

- Lưu ý cho học sinh: Một xâu có độ dài nhỏ hơn

có thể lớn hơn (>) xâu có độ dài lớn

1 Chú ý theo dõi, suy nghĩ và trả lời

- Kết quả cho ta: st = ‘HA NOI’

- Quan sát kết quả chương trình

- Ví dụ: st:= ‘HA NOI’ + ‘Co ho GUOM’ Kếtquả:

st = ‘HA NOICo ho GUOM’

- Là phép toán nối xâu thứ hai vào cuối xâu thứnhất

Trang 16

Nội dung hoạt động

- Giới thiệu cấu trúc chung của thủ tục delete(st,vt,n);

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

- Thực hiện chương trình để học sinh thấy kết quả

- Hỏi chức năng của thủ tục delete();

- Thay lệnh gán st:= ‘HaNoi’; và thủ tục xóa bởi các

lệnh sau và hỏi kết quả in ra màn hình

st:=’abc’; Delete(st,1,5);

st:=’abc’; Delete(st,5,2);

st:=’abc’; Delete(st,1,0);

- Chiếu bài tập ứng dụng: Viết chương trình nhập một

xâu và xoá đi các dấu cách thừa ở đầu xâu

- Giới thiệu cấu trúc chung của thủ tục Insert(st1,st2,vt);

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

- Thực hiện chương trình để học sinh thấy kết quả

- Hỏi chức năng của thủ tục insert();

- Thay lệnh gán st2:=‘HaNoi’; và thủ tục chèn bởi các

lệnh như sau và hỏi kết quả:

st=’Hai’

- Quan sát kết quả của chương trình

- Thủ tục thực hiện việc xóa đi trongbiến xâu st gồm n ký tự, bắt đầu từ vịtrí vt

while st[1]= ‘ ’ do delete(st,1,1);writeln(st);

- Kết quả st2=’Ha Noi’

- Quan sát kết quả của chương trình

- Thủ tục thực hiện việc chèn xâu st1vào trong biến xâu st2 bắt đầu tại vị trívt

st2= ‘efabc’;

st2= ‘abcef’;

Tiết 2: Các hàm trên xâu và xâu trong Pascal

2 4 Các hàm trên xâu

- Mục tiêu: Biết các hàm trên xâu

- Phương pháp, kĩ thuật dạy học: nêu vấn đề, cá nhân và thảo luận nhóm

- Phương tiện dạy học: SGK

- Sản phẩm: học sinh biết cú pháp và áp dụng các hàm

Nội dung hoạt động

1 Giới thiệu cấu trúc chung của hàm length(st) lên

1 Quan sát cấu trúc chung

- Length: là tên hàm, có nghĩa là độ dài,st: là một biểu thức xâu ký tự

- Quan sát chương trình để dự tính kết quả

- Kết quả là: 6

- Quan sát kết quả của chương trình

Trang 17

End

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

- Thực hiện chương trình để học sinh thấy kết quả

- Hỏi: Chức năng của hàm length() là gì?

- Chiếu đề bài tập ứng dụng: Viết chương trình nhập

một xâu, in ra màn hình số ký tự ‘a’ có trong xâu

2 Giới thiệu cấu trúc chung của hàm Upcase(ch)

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

- Thực hiện chương trình để học sinh thấy kết quả

- Hỏi: Chức năng của hàm upcase()?

- Chiếu bài tập ứng dụng: Viết chương trình nhập

một xâu, in ra màn hình xâu đó dạng in hoa

3 Giới thiệu cấu trúc chung của hàm Pos(s1,s2)

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

- Thực hiện chương trình để học sinh thấy kết quả

- Hỏi: Chức năng của hàm pos?

- Thay tham số của hàm Pos trong chương trình bằng

Pos(‘k’, ‘abc’) Hỏi kết quả của hàm bằng bao

nhiêu?

- Chiếu bài tập ứng dụng: Viết chương trình nhập

vào một xâu st Xét xem trong xâu có dấu cách hay

không?

- Hỏi: Có cách giải nào khác?

4 Giới thiệu cấu trúc chung của hàm copy(st,vt,n)

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

- Thực hiện chương trình để học sinh thấy kết quả

- Hỏi: Chức năng của hàm copy?

- Thay các tham số của hàm copy trong chương trình

ví dụ trên như sau và hỏi kết quả in ra màn hình:

Copy(‘abc’,1,5)

Copy(‘abc’,5,2)

Copy(‘abc’,1,0)

- Thực hiện chương trình để học sinh thấy kết quả

- Hàm cho số lượng ký tự của xâu st

2 Quan sát cấu trúc chung của hàmUpcase

- Quan sát chương trình để dự tính kết quả

- Kết quả là: H

- Quan sát kết quả của chương trình

- Cho giá trị là chữ cái in hoa của ch

Var st:string;

Beginreadln(st);

For i:=1 to length(st) do write(upcase(st[i]));

- Quan sát kết quả của chương trình

- Hàm cho giá tri là một số nguyên là vị trícủa xâu st2 trong xâu st2

- Bằng không 0

Var st:string;

Beginreadln(st);

if pos(‘ ’, st)<>0 then write(‘Co’)else write(‘Khong’);

- Quan sát chương trình để dự tính kết quả

- Kết quả là: ‘i ta’

- Quan sát kết quả của chương trình

- Hàm cho giá trị là một xâu ký tự đượclấy trong xâu st, gồm n ký tự bắt đầu tại vịtrí vt

Cho giá trị là: ‘abc’

Cho giá trị là xâu rỗngCho giá trị là xâu rỗng

- Quan sát kết quả của chương trình để kiểm nghiệm suy luận

2.5 Xâu trong Pascal

- Mục tiêu: Biết khai báo biến xâu, truy cập đến từng phần tử trên xâu, nhập dữ liệu từ bàn phím choxâu

- Phương pháp, kĩ thuật dạy học: nêu vấn đề, cá nhân và thảo luận nhóm

- Phương tiện dạy học: SGK

Trang 18

- Sản phẩm: học sinh biết khai báo biến xâu, truy cập đến từng phần tử trên xâu, nhập dữ liệu từ bànphím cho xâu

Nội dung hoạt động

- Đặt vấn đề cách khai báo biến trong Pascal

- Nêu cách khai báo kiểu xâu

- ĐVĐ kiểu xâu thực chất là kiểu mảng

Vậy để truy cập đến từng phần tử của xâu ta truy cập như mảng một

chiều Nêu qui ước

- Lấy ví dụ: Nhập vào từ bàn phím họ tên của một bạn trong lớp Sau

đó hiển thị lên màn hình chữ cái đầu trong tên bạn đó

HD:

b1: Khai báo biến

B2: Nhập giá trị của xâu vào từ bàn phím

B3: n  độ dài của xâu; i n

B4: Chừng nào mà S[i] <> dấu cách và i <> 0 thì i  i-1

B5: Hiển thị lên màn hình S[i]

- Nêu hiểu biết

- Mục tiêu: Biết vận dụng các hàm và thủ tục trên xâu vào làm bài tập

- Phương pháp, kĩ thuật dạy học: nêu vấn đề, cá nhân và thảo luận nhóm

- Phương tiện dạy học: SGK

- Sản phẩm: học sinh biết khai báo biến xâu, truy cập đến từng phần tử trên xâu, nhập dữ liệu từ bànphím cho xâu, xử lí các phép toán trên xâu

Nội dung hoạt động

1 Tìm hiểu đề bài

- Cho xâu S và xâu S1 được nhập từ bàn phím

Hãy đưa ra màn hình:

a Xâu có độ dài dài hơn, nếu hai xâu có độ dài

bằng nhau thì đưa ra xâu nập trước

b Xxâu S bằng cách loại bỏ hết dấu cách trong S

B4: Cho i : 1 đến L kiểm tra

+ Nếu S[i] = ‘ ’ thì xóa phần tử thứ i trong S

B5: hiển thị giá trị S lên màn hình

1 Quan sát, đọc kỹ đề

Suy nghĩ để viết chương trình

Quan sát đề và xác định những công việccần thực hiện Độc lập soạn chương trìnhvào máy

- Tìm test

- Nhập dữ liệu của GV và thực hiện chươngtrình để xem kết quả

- Thông báo kết quả cho GV

Tiết 4: Bài tập áp dụng và bài tập và thực hành 5

2.6 Rèn luyện kĩ năng lập trình

- Mục tiêu: Biết vận dụng các hàm và thủ tục trên xâu vào làm bài tập

- Phương pháp, kĩ thuật dạy học: nêu vấn đề, cá nhân và thảo luận nhóm

- Phương tiện dạy học: SGK

- Sản phẩm: học sinh biết khai báo biến xâu, truy cập đến từng phần tử trên xâu, nhập dữ liệu từ bànphím cho xâu, xử lí các phép toán trên xâu

Trang 19

Nội dung hoạt động

1 Tìm hiểu đề bài

- Giới thiệu nội dung đề bài lên bảng

- Diễn giải: Một xâu được gọi là Palidrom

nếu ta đọc các ký tự từ phải sang trái sẽ

giồng khi đọc từ trái sang phải

- Yêu cầu học sinh cho hai ví dụ về xâu

palidrom và một ví dụ không phải là

palidrom

2 Tìm hiểu chương trình gợi ý

- Chiếu chương trình lên bảng

- Hỏi: Chương trình sau đây có chức năng

làm gì? Kết quả in ra màn hình như thế nào?

- Thực hiện chương trình để học sinh kiểm

nghiệm suy luận của mình

1 Quan sát, đọc kỹ đề

Phải: 12321 abccbaKhông phải: abcdea

2 Quan sát chương trình, suy nghĩ phân tích đểhiểu chương trình

- Kiểm tra một xâu có phải Palidrom hay không?

- In ra: ‘xau la palidrom’

‘Xau khong la palidrom’

- Quan sát GV thực hiện chương trình, nhập dữliệu và kết quả của chương trình

V RÚT KINH NGHIỆM GIỜ DẠY

Yên Dũng, ngày tháng năm 2019

Duyệt của tổ trưởng bộ môn

Bài soạn số 17

Tiết dạy: 34, 35, 36

Ngày soạn: 10/05/2020 Tuần dạy: 29, 30, 31

CHỦ ĐỀ: TỆP VÀ CÁC THAO TÁC VỚI TỆP

I Xác định chủ đề bài học

- Tên chủ đề: Tệp và các thao tác với tệp gồm 3 bài là: Bài 14 - “Kiểu dữ liệu tệp”, Bài 15 – “Các

thao tác với tệp”, Bài 16 – “Ví dụ làm việc với tệp” dạy trong 3 tiết gồm 2 tiết lí thuyết và 1 tiết dạybài 16 là tiết bài tập (chỉ dạy ví dụ 1)

- Vấn đề cần giải quyết trong bài học này là :

• Biết vai trò của kiểu tệp và tệp văn bản

• Biết các thao tác với tệp và 2 thao tác cơ bản là đọc tệp, ghi tệp

II Xác định chuẩn kiến thức kĩ năng

1 Kiến thức:

- Biết được đặc điểm của kiểu dữ liệu tệp

- Biết khái niệm tệp văn bản

- Biết các thao tác với tệp đặc biệt thao tác đọc tệp và ghi tệp

2 Kĩ năng:

- Khai báo đúng biến kiểu tệp

- Thực hiện được thao tác xử lý tệp: Gán tên tệp, mở/đóng tệp, đọc/ghi tệp

- Sử dụng được các thủ tục, hàm liên quan để đọc/ghi dữ liệu của tệp

3 Thái độ:

- Thấy được sự cần thiết và tiện lợi của kiểu dữ liệu tệp

- Có ý thức lưu trữ dữ liệu một cách khoa học

- Giáo dục thêm về ý thức tôn trọng bản quyền, không sửa chữa, sao chép các phần mềm chưamua bản quyền

III ĐỒ DÙNG DẠY HỌC

1 Chuẩn bị của GV

- Máy vi tính, máy chiếu projector để giới thiệu ví dụ

2 Chuẩn bị của học sinh

- Sách giáo khoa

Ngày đăng: 05/01/2021, 20:40

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w