Giáo án tin học lớp 11 học kỳ 2 phương pháp mới 5 bước hoạt động

Giáo án tin học lớp 11 học kỳ 2 phương pháp mới 5 bước hoạt động

4.3/5

Tác giả: Thầy Tùng

Đăng ngày: 22 Aug 2022

Lưu về Facebook:
Hình minh họa Giáo án tin học lớp 11 học kỳ 2 phương pháp mới 5 bước hoạt động

Công thức toán học không thể tải, để xem trọn bộ tài liệu hoặc in ra làm bài tập, hãy tải file word về máy bạn nhé

Tuần: 20 Tiết: 20 Ngày dạy:01/01/2018 đến 07/01/2018

BÀI 11. KIỂU MẢNG

I. MỤC TIÊU

1. Về 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.

2. Về kĩ năng

- Cài đặt được thuật toán giải một số bài toán đơn giản với kiểu dữa liệu mảng một chiều.

- Thực hiện khai báo mảng, truy cập, tính toán, đếm các phần tử trong mảng.

3. Về thái độ

- Thái độ nghiêm túc trong học tập.

- Chủ động tìm hiểu kiến thức mới.

4. Năng lực hướng tới:

- Khai báo biến dữ liệu hợp lý. Hiểu nguyên lý lưu dữ liệu một cách có cấu trúc.

II. CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH

1. Chuẩn bị của giáo viên: Giáo án, sách giáo khoa, sách giáo viên, máy tính, máy chiếu, phông chiếu, bút lông, bảng,…

2. Chuẩn bị của học sinh: Sách giáo khoa, tập, viết,…

III. TỔ CHỨC CÁC HOẠT ĐỘNG HỌC TẬP

1. Ổn định lớp

2. Kiểm tra bài cũ (không)

3. Tiến trình bài học

  • HOẠT ĐỘNG 1: Hoạt động khởi động:

(1) Mục tiêu: Tạo động cơ để học sinh hiểu được cách sử dụng và khai báo được biến mảng.

(2) Phương pháp/kĩ thuật dạy học: Cá nhân, thảo luận nhóm.

(3) Phương tiện dạy học: SGK, Projector, máy tính.

(4) Học sinh có nhu cầu mong muốn được học cách khai báo biến mảng

Nội dung hoạt động

Hoạt động của giáo viên

Hoạt động của học sinh

- Trong thực tế, các kiểu dữ liệu chuẩn không thể đáp ứng đủ biểu diễn của các bài toán lớn. Vì thế, dựa trên các kiểu dữ liệu đó người lập trình có thể tạo ra các kiểu dữ liệu phức tạp hơn để giải quyết các bài toán trong thực tế.

(?) Các em hãy tham khảo bài toán sách giáo khoa trang 53 và cho biết cần nhập thông tin gì? Và dữ liệu đưa ra là gì?

- Nhận xét, như vậy nếu muốn tính nhiệt độ trung bình của n ngày (365 ngày) thì sẽ gặp phải những khó khăn gì?

Để giải quyết vấn đề đó, ta sử dụng kiểu mảng một chiều để mô tả dữ liệu đó

- Hôm nay chúng ta sẽ tìm hiểu khái niệm mảng 1 chiều.

- Nghe giảng.

- Tham khảo sách giáo khoa và trả lời: Input: Nhập vào nhiệt độ trung bình của 7 ngày t1, t2, t3, t4, t5, t6, t7;

Output: Nhiệt độ trung bình của tuần tb, và số ngày vượt mức trung bình dem;

- Trả lời: phải khai báo từ t1...t365.

  • HOẠT ĐỘNG 2: Hình thành kiến thức

(1) Mục tiêu: Giúp học sinh biết được khái niệm về mảng một chiều, cách khai báo mảng một chiều, hiểu cách nhập và in mảng một chiều.

(2) Phương pháp/kĩ thuật dạy học: Vấn đáp, thuyết trình, đặt vấn đề, phân tích.

(3) Hình thức tổ chức hoạt động: Làm việc cá nhân.

(4) Phương tiện dạy học: SGK, Projector, máy tính.

(5) Kết quả: Học sinh nắm được khái niệm về bảng, cách khai báo biến mảng một chiều, hiểu cách nhập và in mảng một chiều, hiểu được một số ví dụ giải bài toán về mảng một chiều.

Nội dung hoạt động

Hoạt động giáo viên

Hoạt động học sinh

Nội dung trình bày

(?) Các em hãy tham khảo sách giáo và cho biết khi làm việc với mảng 1 chiều cần xác định những gì?

- Nhận xét.

- Cho ví dụ để học sinh hiểu

rõ hơn về mảng 1 chiều.

(?) Với mảng một chiều vừa cho ta xác định được gì?

- Nhận xét.

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

- Nghe giảng và ghi bài.

- Ghi ví dụ.

- Suy nghĩ trả lời.

- Ghi bài.

  1. Kiểu mảng một chiều

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

* Khi làm việc với mảng một chiều ta cần xác định được:

+ Tên mảng;

+ Số lượng phần tử;

+ Kiểu dữ liệu;

+ Cách khai báo;

+ Cách tham chiếu đến một phần tử nào đó trong mảng.

Ví du: A

5 8 7 1

Chỉ số 1 2 3 4

+ Tên mảng: A

+ Số lượng phần tử: 4

+ Kiểu dữ liệu: Số nguyên

+ Tham chiếu đến PT thứ 3, ta viết A[3].

- Đối với các biến trong NNLT khi sử dụng thì bắt buộc chúng ta phải khai báo, và đối với biến mảng 1 chiều chúng ta cũng phải khai báo. Cách khai báo thế nào thầy và cả lớp cùng tìm hiều phần 2. Khai báo mảng 1 chiều.

- Đối với mảng một chiều ta có 2 cách khai báo.

- Bên cạnh đó ta có cách khai báo thứ hai.

- Giải thích ví dụ rõ để học sinh phân biệt tên kiểu mảng, tên biến mảng.

- Yêu cầu học sinh cho ví dụ về 2 cách khai báo trên.

- Nhận xét, chỉnh sửa nếu có sai sót.

- Ghi mục bài.

- Nghe giảng và ghi bài.

- Nghe giảng và ghi bài.

- Nghe giảng.

- Thực hiện theo yêu cầu giáo viên.

2. Khai báo

Cách 1. Khai báo trực tiếp

VAR <tên biến mảng>: array[<chỉ số đầu..chỉ số cuối>] of <kiểu phần tử>;

Ví dụ:

VAR A: array[1..10] of real;

Cách 2. Khai báo gián tiếp

TYPE <tên kiểu mảng> = array[<chỉ số đầu>..<Chỉ số cuối>] of <kiểu phần tử>;

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

Ví dụ:

TYPE nhietdo = array[1..365] of real;

VAR a : nhietdo;

(?) Khi ta đã khai báo được mảng một chiều, lúc đó ta đã xác định được những gì của mảng đó?

- Nhận xét.

(?) Giá trị của từng phần tử mảng đã xác định được chưa, làm thế nào để có các giá trị đó?

- Nhận xét, để có được giá trị của các phần tử chúng ta phải nhập và thủ tục nhập như thế nào thầy và cả lớp cùng tìm hiểu phần a. Nhập mảng 1 chiều.

- Để làm được điều đó ta cần xác định các thao tác sau:

+ Trước tiên, cần xác định có bao nhiêu phần tử cần dùng;

+ Dùng vòng lặp For - do để nhập giá trị cho từng phần tử A[i].

- Hướng dẫn học sinh cách in các phần tử của mảng 1 chiều.

- Suy nghĩ trả lời: xác định được tên mảng, số lượng phần tử tối đa của mảng, kiểu dữ liệu của mảng.

- Suy nghĩ trả lời.

- Nghe giảng và ghi mục bài.

- Ghi bài.

- Nghe giảng và ghi bài.

3. Các thao tác trên mảng một chiều

a/ Nhập mảng một chiều

Trước tiên, cần xác định có bao nhiêu phần tử cần dùng:

Write(‘nhap so phan tu: ‘);

Readln(n);

Dùng vòng lặp For - do để nhập giá trị cho từng phần tử A[i]:

For i:=1 to n do

Begin

Write(‘Nhap phan tu thu: ’, i);

Readln(A[i]);

End;

b/ In mảng một chiều

Dùng vòng lặp For - do để in các phần tử trong mảng:

For i:= 1 to n do

Write(A[i]:4);

  • HOẠT ĐỘNG 3: Hoạt động luyện tập, vận dụng:

(1) Mục tiêu: Giúp học sinh thực hiện được thao tác tạo khai báo, nhập và in mảng một chiều

(2) Phương pháp/kĩ thuật dạy học: Vấn đáp, thuyết trình, đặt vấn đề, phân tích, so sánh,...

(3) Hình thức tổ chức hoạt động: giải bài tập trên bảng

(4) Phương tiện dạy học:SGK, bảng.

(5) Học sinh biết vận dụng kiến thức đã học vào giải quyết tình huống thực tiễn cụ thể.

Nội dung hoạt động

GV yêu cầu HS: Với cách khai báo biến mảng sau đây:

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

Em hãy cho biết?

- Mảng tên gì? Được nhập tối đa bao nhiêu phần tử cho mảng? Các giá trị phần tử có kiểu dữ liệu gì? Cách khai báo trên là trực tiếp hay gián tiếp?

GV hướng dẫn và cho các em thảo luận.

GV gọi các nhóm trả lời.

GV nhận xét, giải đáp thắc mắc của học sinh, đưa ra các nhận xét cuối cùng

  • HOẠT ĐỘNG 4: Hoạt động tìm tòi mở rộng:

(1) Mục tiêu: Giúp học sinh có nhu cầu mở rộng thêm kiến thức của mình.

(2) Phương pháp/kĩ thuật dạy học: làm việc cá nhân, nhóm.

(3) Hình thức tổ chức hoạt động: Ngoài lớp học

(4) Phương tiện dạy học:SGK, Projector, máy tính.

(5) Học sinh biết cách mở rộng các kiến thức của mình thông qua bài tập cụ thể.

Nội dung hoạt động

- GV: cho bài tập:

Viết chương trình nhập dãy N số nguyên (N<=200). In giá trị của phần tử cuối và đầu của dãy số.

- HS: làm bài tập GV yêu cầu.

- Gv: học bài và xem trước phần b

IV. RÚT KINH NGHIỆM ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

Duyệt của tổ trưởng chuyên môn Giáo viên soạn

Lê Thị Lịnh Lê Minh Tâm

Tuần: 20 Tiết: 21 Ngày dạy:01/01/2018 đến 07/01/2018

BÀI 11. KIỂU MẢNG (Tiếp theo)

I. MỤC TIÊU

1. Về 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.

2. Về kĩ năng

- Cài đặt được thuật toán giải một số bài toán đơn giản với kiểu dữa liệu mảng một chiều.

- Thực hiện khai báo mảng, truy cập, tính toán, đếm các phần tử trong mảng.

3. Về thái độ

- Thái độ nghiêm túc trong học tập.

- Chủ động tìm hiểu kiến thức mới.

4. Năng lực hướng tới:

- Khai báo biến dữ liệu hợp lý. Hiểu nguyên lý lưu dữ liệu một cách có cấu trúc.

II. CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH

1. Chuẩn bị của giáo viên: Giáo án, sách giáo khoa, sách giáo viên, máy tính, máy chiếu, phông chiếu, bút lông, bảng,…

2. Chuẩn bị của học sinh: Sách giáo khoa, tập, viết,…

III. TỔ CHỨC CÁC HOẠT ĐỘNG HỌC TẬP

1. Ổn định lớp

2. Kiểm tra bài cũ (không)

3. Tiến trình bài học

  • HOẠT ĐỘNG 1: Hoạt động khởi động:

(1) Mục tiêu: Tạo động cơ để học sinh hiểu được cách sử dụng và khai báo được biến mảng.

(2) Phương pháp/kĩ thuật dạy học: Cá nhân, thảo luận nhóm.

(3) Phương tiện dạy học: SGK, Projector, máy tính.

(4) Học sinh có nhu cầu mong muốn được tìm hiểu cách dùng mảng trong việc giải các bài toán.

Nội dung hoạt động

Hoạt động của giáo viên

Hoạt động của học sinh

- Tiết trước chúng ta đã tìm hiểu về cách khai báo mảng một chiều. Nhưng khi giải các bài toán bằng mảng ta cần hiểu sâu hơn nữa về cách thức sử dụng mảng trong giải các bài toán đơn giản.

- Hôm nay chúng ta sẽ hiểu sâu hơn qua các ví dụ.

- Nghe giảng

  • HOẠT ĐỘNG 2: Hình thành kiến thức

(1) Mục tiêu: Giúp học sinh biết được khái niệm về mảng một chiều, cách khai báo mảng một chiều, hiểu cách nhập và in mảng một chiều.

(2) Phương pháp/kĩ thuật dạy học: Vấn đáp, thuyết trình, đặt vấn đề, phân tích.

(3) Hình thức tổ chức hoạt động: Làm việc cá nhân.

(4) Phương tiện dạy học: SGK, Projector, máy tính.

(5) Kết quả: Học sinh nắm được khái niệm về bảng, cách khai báo biến mảng một chiều, hiểu cách nhập và in mảng một chiều, hiểu được một số ví dụ giải bài toán về mảng một chiều.

Nội dung hoạt động

Hoạt động giáo viên

Hoạt động học sinh

Nội dung trình bày

- Yêu cầu học sinh đọc ví dụ trong SGK và xác định input, output.

- Nhận xét.

- Các em chú ý thuật toán trong sách giáo khoa.

- Sau khi hiểu thuật toán có thể giải thích các bước viết chương trình hoàn chỉnh.

- Yêu cầu học sinh về đọc các ví dụ sách giáo khoa.

- Dựa vào SGK suy nghỉ trả lời.

- Chú ý lắng nghe và ghi lại bài.

- Chú ý quan sát.

- Chú ý quan sát cách viết chương trình và viết chương trình vào tập.

4. Một số ví dụ

Ví dụ 1: Tìm phẩn tử lớn nhất của dãy số nguyên.

- Input: Số nguyên dương N và dãy gồm N sô nguyên dương a1, a2, …, an.

- Output: Max(a1, a2, …, an), chỉ số Max.

Thuật toán:

B1: Nhập N, và dãy a1, a2, …, an.

B2: Max 🡸 a1; i 🡸 2;

B3: Nếu i > N thì đưa ra Max, rồi kết thúc;

B4:

  • Nếu ai > Max thì Max 🡸 ai;
  • i 🡸 i + 1 rồi quay lại B3.

Program Tim_max;

Const Nmax = 250;

Type ArrInt = Array[1..Nmax] of integer;

Var

N, i, Max, csmax: integer;

A: ArrInt;

Begin

Write(‘Nhap so phan tu cua day so, N=’);

Readln(N);

For i:=1 to N do

Begin

Write(‘Phan tu thu ‘, i, ‘ =’);

Readln(A[i]);

End;

Max:=A[1]; csmax:=1;

For i:=2 to N do

If A[i] > Max then

Begin

Max := A[i];

csMax := i;

End;

writeln(‘Gia tri cua p.tu max la:’, max);

writeln(‘Chi so cua p.tu max la:’, csmax);

Readln;

End.

  • HOẠT ĐỘNG 3: Hoạt động luyện tập, vận dụng:

(1) Mục tiêu: Giúp học sinh thực hiện được thao tác tạo khai báo, nhập và in mảng một chiều

(2) Phương pháp/kĩ thuật dạy học: Vấn đáp, thuyết trình, đặt vấn đề, phân tích, so sánh,...

(3) Hình thức tổ chức hoạt động: giải bài tập trên bảng

(4) Phương tiện dạy học:SGK, bảng.

(5) Học sinh biết vận dụng kiến thức đã học vào giải quyết tình huống thực tiễn cụ thể.

Nội dung hoạt động

GV yêu cầu HS: Viết chương trình nhập dãy N số nguyên (N<=100). In dãy số nguyên vừa nhập.

GV hướng dẫn và kêu một học sinh lên bảng làm bài.

GV nhận xét, giải đáp thắc mắc của học sinh, đưa ra các nhận xét cuối cùng

  • HOẠT ĐỘNG 4: Hoạt động tìm tòi mở rộng:

(1) Mục tiêu: Giúp học sinh có nhu cầu mở rộng thêm kiến thức của mình.

(2) Phương pháp/kĩ thuật dạy học: làm việc cá nhân, nhóm.

(3) Hình thức tổ chức hoạt động: Ngoài lớp học

(4) Phương tiện dạy học:SGK, Projector, máy tính.

(5) Học sinh biết cách mở rộng các kiến thức của mình thông qua bài tập cụ thể.

Nội dung hoạt động

- GV: cho bài tập:

Viết chương trình nhập dãy N số nguyên (N<=200). Tính và in ra tổng dãy số nguyên vừa nhập.

- HS: làm bài tập GV yêu cầu.

- GV: xem trước về bài tập mảng một chiều

IV. RÚT KINH NGHIỆM ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

Duyệt của tổ trưởng chuyên môn Giáo viên soạn

Lê Thị Lịnh Lê Minh Tâm

Tuần: 21 Tiết: 22 Ngày dạy:08/01/2018 đến 14/01/2018

BÀI TẬP VỀ MẢNG

I. MỤC TIÊU

1. Về kiến thức

- Các quy tắc kiểu dữ liệu có cấu trúc để thực hiện dữ liệu thực tế.

- Kiểu dữ liệu có cấu trúc được xây dựng từ những kiểu dữ liệu cơ sở theo một số cách thức tạo kiểu do ngôn ngữ lập trình Pascal quy định.

- Trong ngôn ngữ Pascal dùng mô tả kiểu dữ liệu mới với từ khoá Type.

2. Về kĩ năng

- Rèn luyện kĩ năng khai báo kiểu dữ liệu có cấu trúc.

- Sử dụng thành thạo các thao tác vào/ra và các phép toán trên các thành phần cơ sở.

3. Về thái độ

- Thái độ nghiêm túc trong học tập, chủ động giải bài tập.

4. Năng lực hướng tới

- Năng lực tự học, năng lực giải quyết vấn đề.

II. CHUẨN BỊ

1. Chuẩn bị của giáo viên: Giáo án, sách giáo khoa, sách giáo viên, máy tính, máy chiếu, phông chiếu, bút lông, bảng,…

2. Chuẩn bị của học sinh: Sách giáo khoa, tập, viết,…

III. HOẠT ĐỘNG DẠY VÀ HỌC

  1. Ổn định lớp, kiểm tra sĩ số
  2. Kiểm tra bài cũ: không.
  3. Tiến trình bày học
  • HOẠT ĐỘNG 1: Hoạt động khởi động:

(1) Mục tiêu: Tạo động cơ để học sinh hiểu được cách thao tác với mảng một chiều

(2) Phương pháp/kĩ thuật dạy học: Cá nhân.

(3) Phương tiện dạy học: SGK, Projector, máy tính.

(4) Học sinh có nhu cầu mong muốn được học cách sử dụng kiểu mảng một chiều để giải các bài toán.

Nội dung hoạt động

Hoạt động của giáo viên

Hoạt động của học sinh

Với những bài toán yêu cầu nhập dãy số xác định ta dùng khai báo kiểu gì để lưu các giá trị đó?

Ta có thể tham chiếu đến các phần tử và lấy giá trị các phần tử của dãy số đó để tính toán được không?

Để hiểu được sự lợi ích nhiều hơn của việc sử dụng kiểu mảng một chiều hôm nay chúng ta sẽ làm một số bài tập vận dụng cấu trúc rẽ nhánh, cấu trúc lặp với kiểu mảng

- Trả lời : Kiểu mảng một chiều

- Trả lời : Được

- Nghe giảng

  • HOẠT ĐỘNG 2: Hình thành kiến thức

(1) Mục tiêu: Giúp học sinh biết được cách khai báo mảng một chiều, hiểu cách nhập và in mảng một chiều.

(2) Phương pháp/kĩ thuật dạy học: Đặt vấn đề, phân tích.

(3) Hình thức tổ chức hoạt động: Làm việc cá nhân.

(4) Phương tiện dạy học: SGK, Projector, máy tính.

(5) Kết quả: Học sinh nắm được cách khai báo biến mảng một chiều, hiểu cách nhập và in mảng một chiều, giải được các bài toán về mảng một chiều.

Nội dung hoạt động

Hoạt động giáo viên

Hoạt động học sinh

Nội dung trình bày

- Xác định input và output

- Cần khai báo phạm vi của mảng là bao nhiêu?

- Tương tự như tìm giá trị lớn nhất của dãy số, ta gán một giá trị min là phần tử đầu sau đólần lượt so sánh với các phần tử còn lại nếu nhỏ hơn min thì gán lại giá trị này.

- Khai báo những biến nào?

  • Gọi học sinh lên bảng làm.

- Quan sát các học sinh khác làm bài.

  • Gọi học sinh nhận xét.

- Nhận xét

- Xác định input và output

- Ta cần sử dụng hàm gì để tính chia hết?

- Vậy đều kiện như thế nào là chia hêt?

- Cần dùng vòng lặp nào để duyệt hết các phần tử mảng?

- Sau khi ta nhập mảng sao đó duyệt lần lượt các phần tử của mảng, số nào chia hết cho 3 thi in số đó ra màn hình.

  • Gọi học sinh lên bảng làm.

- Quan sát các học sinh khác làm bài.

  • Gọi học sinh nhận xét.

- Nhận xét

- Trả lời: Giá trị n và dãy số a1,a2,..an, và output là số nhỏ nhất

- Trả lời: [1..100]

- Nghe giảng.

- Trả lời: Biến mảng, biến min, n, i.

- Một học sinh lên bảng làm

- Nhận xét

- Nghe giảng và ghi bài.

- Trả lời: Giá trị n và dãy số a1,a2,..an, và output là các số chia hết cho 3

- Trả lời: hàm mod

- Trả lời: a[i] mod 3=0

- Trả lời: Vòng lặp for

- Nghe giảng

- Một học sinh lên bảng làm

- Nhận xét

- Nghe giảng và ghi bài.

Câu 1. Viết chương trình nhập từ bàn phím số nguyên dương N (N<=100) và dãy A gồm N số nguyên A1, A2, …AN. Tìm và in ra màn hình giá trị nhỏ nhất của dãy số vừa nhập?

Program tim_min;

Uses crt;

Var A: Array[1..100] of integer;

min, n, i: integer;

Begin

Clrscr;

Writeln('nhap vao n va n phai lon hon khong');

Readln(n);

For i:=1 to n do

Begin

Writeln('nhap phan tu thu ', i);

Readln(A[i]);

End;

Min:=a[1];

For i:=2 to n-1 do

If a[i]<min then

min:=a[i];

Writeln(‘Gia tri nho nhat la',min);

Readln ;

End.

Câu 2. Viết chương trình nhập từ bàn phím số nguyên dương N (N<=100) và dãy A gồm N số nguyên A1, A2, …AN. Tìm và in ra màn hình các số chia hết cho 3?

Program Chia_het_cho_3;

Uses crt;

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

n, i: integer;

Begin

clrscr;

Writeln('nhap vao n');

Readln(n);

For i:=1 to n do

Begin

Writeln('nhap vao phan tu thu ', i);

Readln(A[i]);

End;

Writeln(‘Cac so chia het cho 3 la:’)

For i:=1 to n do

If (A[i] mod 3=0) then

Write(a[i]:4);

Readln;

  • HOẠT ĐỘNG 3: Hoạt động luyện tập, vận dụng:

(1) Mục tiêu: Giúp học sinh biết được cách khai báo mảng một chiều, hiểu cách nhập và in mảng một chiều.

(2) Phương pháp/kĩ thuật dạy học: Đặt vấn đề, phân tích.

(3) Hình thức tổ chức hoạt động: Làm việc cá nhân.

(4) Phương tiện dạy học: SGK, Projector, máy tính.

(5) Kết quả: Học sinh nắm được cách khai báo biến mảng một chiều, hiểu cách nhập và in mảng một chiều, giải được các bài toán về mảng một chiều.

Nội dung hoạt động

GV cho bài tập : Viết chương trình nhập dãy N số nguyên (N<=250). Tìm và in ra màn hình các số chẵn và lẻ riêng biệt.

GV hướng dẫn và kêu một học sinh lên bảng làm bài.

GV nhận xét, giải đáp thắc mắc của học sinh, đưa ra các nhận xét cuối cùng

  • HOẠT ĐỘNG 4: Hoạt động tìm tòi mở rộng:

(1) Mục tiêu: Giúp học sinh có nhu cầu mở rộng thêm kiến thức của mình.

(2) Phương pháp/kĩ thuật dạy học: làm việc cá nhân, nhóm.

(3) Hình thức tổ chức hoạt động: Ngoài lớp học

(4) Phương tiện dạy học:SGK, Projector, máy tính.

(5) Học sinh biết cách mở rộng các kiến thức của mình thông qua bài tập cụ thể.

Nội dung hoạt động

- GV: cho bài tập:

Viết chương trình nhập dãy N số nguyên (N<=200). Tính và in ra tổng các số chẵn.

- HS: làm bài tập GV yêu cầu.

- GV: xem trước về bài tập và thực hành 3

IV. RÚT KINH NGHIỆM ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

Duyệt của tổ trưởng chuyên môn Giáo viên soạn

Lê Thị Lịnh Lê Minh Tâm

Tuần: 21 + 22 Ngày soạn: 25/12/2017

Tiết: 23 + 24 Ngày dạy: 08/01/2018 đến 21/01/2018

BÀI TẬP VÀ THỰC HÀNH 3

I. MỤC TIÊU

1. Về kiến thức

- Biết các thao tác nhập xuất mảng một chiều, chạy thử một số chương trình có sẵn.

- Giải được một số bài toán tính toán đơn giản.

2. Về kĩ năng

- Thực hiện đúng các thao tác từ khai báo đến nhập xuất mảng một chiều.

3. Về thái độ

- Thái độ nghiêm túc trong học tập.

4. Năng lực hướng tới:

- Giải quyết vấn đề, sử dụng công nghệ thông tin giải các bài toán đơn giản.

II. CHUẨN BỊ

1. Chuẩn bị của giáo viên: Giáo án, sách giáo khoa, sách giáo viên, máy tính, máy chiếu, phông chiếu, bút lông, bảng,…

2. Chuẩn bị của học sinh: Sách giáo khoa, tập, viết,…

III. HOẠT ĐỘNG DẠY VÀ HỌC

  1. Ổn định lớp, kiểm tra sĩ số
  2. Kiểm tra bài cũ:

- Câu 1. Thế nào là mảng một chiều?

- Câu 2. Có mấy cách khai báo mảng một chiều? Cho ví dụ từng cách khai báo mảng một chiều?

- Câu 3. Viết một phần chương trình nhập vào mảng n phần tử và giá trị từng phần tử trong mảng?

  1. Nội dung bài mới:
    • HOẠT ĐỘNG 1: Hoạt động khởi động:

(1) Mục tiêu: Tạo động cơ để học sinh sử dụng máy tính giải các bài toán.

(2) Phương pháp/kĩ thuật dạy học: Cá nhân.

(3) Phương tiện dạy học: SGK, Projector, máy tính.

(4) Học sinh có nhu cầu mong muốn được học cách sử dụng kiểu mảng một chiều để giải các bài toán.

Nội dung hoạt động

Hoạt động của giáo viên

Hoạt động của học sinh

- Khi làm việc với mảng một chiều trước tiên chúng ta cần thành thạo các thao tác khai báo, nhập, xuất mảng. Để làm được điều đó thầy và cả lớp cùng tìm hiểu và thực hành một số bài tập ở Bài tập và thực hành số 3 trong SGK.

- Nghe giảng

  • HOẠT ĐỘNG 2: Hình thành kiến thức

(1) Mục tiêu: Giúp học sinh sử dụng máy tính chạy được một số bài tập về mảng

(2) Phương pháp/kĩ thuật dạy học: Thực hành trên máy tính.

(3) Hình thức tổ chức hoạt động: Làm việc cá nhân.

(4) Phương tiện dạy học: SGK, Projector, máy tính.

(5) Kết quả: Học sinh sử dụng máy tính chạy được một số bài toán về kiểu mảng một chiều.

Nội dung hoạt động

Hoạt động giáo viên

Hoạt động học sinh

Nội dung trình bày

- Đọc nội dung yêu cầu của bài 1.

(?) Các em hãy xác định số lượng phần tử và yêu cầu của bài là gì?

- Nhận xét, cho ví dụ cho học sinh quan sát.

- Hướng dẫn cho học sinh cách viết chương trình.

- Với bài tập vừa làm các em có thể vận dụng giải quyết bài toán tìm phần tử lớn nhất trong mảng 1 chiều.

- Yêu cầu học sinh nêu thuật toán để giải bài toán trên.

- Nhận xét, hướng dẫn các em cách viết chương trình.

- Trong học kì I thầy đã giới thiệu cho các em một số bài toán như kiểm tra tính chẵn lẻ của một số, tổng các số chẵn lẻ trong dãy số. Hôm này chúng ta sẽ áp dụng những thuật toán đó vào bài toán đối với mảng một chiều.

- Đọc yêu cầu bài toán cho học sinh ghi bài.

(?) Các em hãy xác định Input và Output của bài toán.

- Nhận xét, hướng dẫn cho học sinh cách ghi bài.

- Tương tự như vậy các em hãy viết chương trình tính tổng các giá của mảng N phần tử.

- Yêu cầu một học sinh lên bảng viết chương trình.

- Nhận xét, bổ sung nếu có sai sót.

- Yêu cầu học sinh tham khảo các bài tập SGK trang 63, 64.

- Ghi bài tập.

- Suy nghĩ trả lời: đối với bài này chúng ta có n phần tử, sao khi giá trị các phần tử của mảng được nhập thì ta in các phần tử trong mảng ngược lại.

- Chú ý quan sát ví dụ.

- Ghi bài.

- Ghi nội dung bài học.

- Suy nghĩ trả lời.

- Ghi bài.

- Nghe giảng.

- Ghi bài.

- Suy nghĩ trả lời.

- Chú ý quan sát và ghi bài.

- Ghi bài.

- Suy nghĩ và thực hiện theo yêu cầu của giáo viên.

- Chú ý quan sát và ghi bài.

Bài 1. Viết chương trình nhập vào mảng 1 chiều với N phần tử, với N nhập từ bàn phím, sao đó in ra màn hình sao khi đảo ngược mảng đó.

Program Dao_nguoc_mang;

Uses crt;

Var A: Array[1..100] of Integer;

N, i: Integer;

Begin

Clrscr;

Writeln('Nhap vao N');

Readln(N);

For i:=1 to N do

Begin

Writeln('Nhap vao phan tu thu ', i);

Readln(A[i]);

End;

Writeln('Mang vua duoc dao nguoc lai la');

For i:=N downto 1 do

Write(A[i]);

Readln;

End.

Bài 2. Viết chương trình nhập vào mảng 1 chiều với N phần tử, với N nhập từ bàn phím, sao đó in ra màn hình phần tử lớn nhất của mảng.

Program Phan_tu_max;

Uses crt;

Var A: Array[1..100] of Integer;

N, Max, i: Integer;

Begin

Clrscr;

Writeln('Nhap vao N');

Readln(N);

For i:=1 to N do

Begin

Writeln('Nhap vao phan tu thu ', i);

Readln(A[i]);

End;

Max:=A[1];

For i:=2 to n do

If (Max<A[i]) then Max :=A[i];

Write(‘Phan tu lon nhat ’, Max);

Readln;

End.

Bài 3. Viết chương trình nhập vào mảng 1 chiều với N phần tử, với N nhập từ bàn phím, sao đó in ra màn hình số lần xuất hiện của số chẵn và số lẻ.

Program Demch_Deml;

Uses crt;

Var A: array[1..100] of Integer;

N, dle, dchan, i: Integer;

Begin

Clrscr;

Writeln('Nhap vao N');

Readln(N);

For i:=1 to N do

Begin

Writeln('Nhap vao phan tu thu ', i);

Readln(A[i]);

End;

dle:=0;

dchan:=0;

For i:=1 to N do

If (A[i] mod 2=0) then dchan:=dchan+1

else

dle:=dle+1;

Writeln(‘So lan xuat hien so chan la ', dchan);

Writeln('So lan xuat hien so le la ', dle);

Readln;

End.

Bài 4. Viết chương trình nhập vào mảng 1 chiều với N phần tử, với N nhập từ bàn phím, sao đó in ra màn hình tổng các phần tử của mảng.

Program Tong_mang;

Uses crt;

Var A: Array[1..100] of Integer;

N, Tong, i: Integer;

Begin

Clrscr;

Writeln('Nhap vao N');

Readln(N);

For i:=1 to N do

Begin

Writeln('Nhap vao phan tu thu ', i);

Readln(A[i]);

End;

Tong:=0;

For i:=1 to N do

Tong:=Tong+A[i];

Write(‘Tong mang la’, Tong);

Readln;

End.

  • HOẠT ĐỘNG 3: Hoạt động luyện tập, vận dụng:

(1) Mục tiêu: Giúp học sinh giải được các bài toán về kiểu mảng

(2) Phương pháp/kĩ thuật dạy học: Đặt vấn đề

(3) Hình thức tổ chức hoạt động: Làm việc cá nhân.

(4) Phương tiện dạy học: SGK, Projector, máy tính.

(5) Kết quả: Học sinh giải được các bài toán về kiểu mảng

Nội dung hoạt động

GV cho bài tập : Viết chương trình nhập dãy N số nguyên (N<=250). Đếm và in ra màn hình các số chẵn và lẻ.

GV hướng dẫn và kêu một học sinh lên bảng làm bài.

GV nhận xét, giải đáp thắc mắc của học sinh, đưa ra các nhận xét cuối cùng

  • HOẠT ĐỘNG 4: Hoạt động tìm tòi mở rộng:

(1) Mục tiêu: Giúp học sinh có nhu cầu mở rộng thêm kiến thức của mình.

(2) Phương pháp/kĩ thuật dạy học: làm việc cá nhân, nhóm.

(3) Hình thức tổ chức hoạt động: Ngoài lớp học

(4) Phương tiện dạy học:SGK, Projector, máy tính.

(5) Học sinh biết cách mở rộng các kiến thức của mình thông qua bài tập cụ thể.

Nội dung hoạt động

- GV: cho bài tập:

Viết chương trình nhập dãy N số nguyên (N<=200). Tính và in ra tổng các số dương.

- HS: làm bài tập GV yêu cầu.

- GV: xem trước về bài tập thực hành 4

IV. RÚT KINH NGHIỆM .....................................................................................................................................................

Duyệt của tổ trưởng chuyên môn Giáo viên soạn

Lê Thị Lịnh Lê Minh Tâm

Tuần: 22 + 23 Ngày soạn: 02/01/2018

Tiết: 25 + 26 Ngày dạy:15/01/2018 đến 28/01/2018

BÀI TẬP VÀ THỰC HÀNH 4

I. MỤC TIÊU

1. Về kiến thức

- Củng cố lại các kiến thức cơ bản khi lập trình với kiểu dữ liệu mảng.

- Làm quen với thuật toán sắp xếp đơn giản trên máy tính.

2. Về kĩ năng

- Rèn luyện kĩ năng sử dụng kiểu dữ liệu có cấu trúc.

- Rèn luyện kĩ năng nhận xét, phân tích và đề xuất cách giải bài toán sao

cho chương trình chạy nhanh hơn.

3. Về thái độ

- Thái độ nghiêm túc trong học tập, tự giác, chủ động trong khi thực hành.

4. Năng lực hướng tới:

- Giải quyết vấn đề, sử dụng máy tính giải một số bài toán về kiểu xâu.

II. CHUẨN BỊ

1. Chuẩn bị của giáo viên: Giáo án, sách giáo khoa, sách giáo viên, máy tính, máy chiếu, phông chiếu, bút lông, bảng,…

2. Chuẩn bị của học sinh: Sách giáo khoa, tập, viết,…

III. HOẠT ĐỘNG DẠY VÀ HỌC

1. Ổn định lớp, kiểm tra sĩ số

  1. Kiểm tra bài cũ: không.
  2. Nội dung bài mới:
  • HOẠT ĐỘNG 1: Hoạt động khởi động:

(1) Mục tiêu: Tạo động cơ để học sinh sử dụng máy tính giải các bài toán.

(2) Phương pháp/kĩ thuật dạy học: Cá nhân.

(3) Phương tiện dạy học: SGK, Projector, máy tính.

(4) Học sinh có nhu cầu mong muốn được học cách sử dụng kiểu mảng để giải các bài toán.

Nội dung hoạt động

Hoạt động của giáo viên

Hoạt động của học sinh

- Khi làm việc với kiểu mảng trước tiên chúng ta cần thành thạo các thao tác khai báo, nhập, xuất xâu. Để làm được điều đó thầy và cả lớp cùng tìm hiểu và thực hành một số bài tập ở Bài tập và thực hành số 4 trong SGK.

- Nghe giảng

  • HOẠT ĐỘNG 2: Hình thành kiến thức

(1) Mục tiêu: Giúp học sinh sử dụng máy tính chạy được một số bài tập về kiểu mảng

(2) Phương pháp/kĩ thuật dạy học: Thực hành trên máy tính.

(3) Hình thức tổ chức hoạt động: Làm việc cá nhân.

(4) Phương tiện dạy học: SGK, Projector, máy tính.

(5) Kết quả: Học sinh sử dụng máy tính chạy được một số bài toán về kiểu mảng.

Nội dung hoạt động

Hoạt động giáo viên

Hoạt động học sinh

Nội dung trình bày

(?) Các em hãy cho thầy một số ví dụ về một mảng một chiều có dãy số tăng dần hoặc giảm.

- Nhận xét, như vậy với một dãy số bất kỳ trong mảng 1 chiều làm sao chúng ta có thể sắp xếp như vậy. Để hiểu rõ hơn thầy và cả lớp cùng xét bài tập thứ nhất.

- Hướng dẫn và giải thích chương trình.

- Đối với bài toán như vậy các em sẽ khó hiểu, để dể hiểu hơn thầy và cả lớp cùng viết chương trình nhập vào mảng n phần tử và nhập vào giá trị từng phần tử chứ không cho giá trị ngẫu nhiên.

- Yêu cầu học sinh viết chương trình, nhận xét, chiếu chương trình hoàn chỉnh lên máy chiếu, khi thực thi chương trình nhập từ bước cho học sinh quan sát.

(?) Theo các em số lần tráo đổi của từng dãy số có khác nhau không?

- Như thế ta có thể xác định số lần tráo đổi được không, để biết được đều đó thì chúng ta phải đếm số lần tráo đổi. Như vậy thì chúng ta cần phải bổ xung vào chương trình cái gì?

- Nhận xét, ta cần khai báo biến dem và sao mỗi vòng lặp tráo đổi ta tăng biến dem lên 1 đơn vị.

- Hướng dẫn học sinh cách viết chương trình.

- Cho bài tập yêu cầu học sinh hãy viết chương trình tính tổng các phần tử của mảng với điều kiện các phần tử đó phải chia hết cho 5.

- Giải thích yêu cầu của bài toán.

- Yêu cầu học sinh lên viết chương trình.

- Nhận xét, bổ sung nếu có sai sót.

(?) Giả sử bây giờ thầy muốn đếm xem trong mảng chúng ta vừa nhập có bao nhiêu phần tử chia hết cho 5 thì như thế nào?

- Hướng dẫn các em cách viết chương trình.

- Suy nghĩ cho ví dụ.

- Nghe giảng và ghi bài.

- Nghe giảng và viết chương trình vào tập.

- Chú ý nghe giảng và ghi bài.

- Chú ý quan sát.

- Suy nghĩ trả lời: có.

- Suy nghĩ trả lời.

- Nghe giảng.

- Chú ý quan sát và ghi bài.

- Ghi bài.

- Chú ý nghe giảng.

- Viết chương trình.

- Nghe nhận xét và ghi bài.

- Suy nghĩ trả lời: chúng ta phải kiểm tra từng phần tử sau đó coi có chia hết cho 5 không, nếu chia hết thì chúng ta đếm lên một giá trị.

- Nghe giảng và ghi bài.

Bài 1. Hãy tìm hiểu và chạy thử chương trình thực hiện thuật toán sắp xếp dãy số nguyên bằng thuật toán tráo đổi với các giá trị khác nhau của n dưới đây

Program Sap_xep;

Uses crt;

Const nmax=250;

Type arrint=array[1..nmax] of integer;

Var n, i, j, t: integer;

A: arrint;

Begin

Clrscr;

Randomize;

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]: 5);

Writeln;

For j:=n downto 2 do

For i:=1 to j - 1 do

If A[i] >A[i+1] then

Begin

t:=A[i];

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

A[i+1]:=t;

End;

Writeln('day so sau khi sap xep');

For i:=1 to n do write(A[i]: 7);

Writeln;

Readln;

End.

Bài 2. Viết chương trình nhập vào mảng n phần tử, sau đó sắp xếp mảng vừa nhập theo chiều tăng dần.

Program MaxElement;

Uses crt;

Const nmax=200;

Type MyArray=array[1..nmax] of integer;

Var A: MyArray;

n, t, i, j: integer;

Begin

Clrscr;

Write('Nhap n=');

Readln(n);

For i:=1 to n do

Begin

Writeln('Nhap vao phan tu thu ', i);

Readln(A[i]);

End;

Writeln;

Writeln('Mang vua nhap la');

For i:=2 to n do

Write(A[i],' ');

For j:=n downto 2 do

For i:=1 to j-1 do if A[i]>A[i+1] then

Begin

t:=A[i];

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

A[i+1]:=t;

End;

Write(' Day so duoc sap xep la ');

For i:=1 to n do

Write(A[i]:4);

Readln;

End.

Program Sap_xep;

Uses crt;

Const nmax=250;

Type arrint=array[1..nmax] of integer;

Var n, i, j, t, dem: integer;

A: arrint;

Begin

clrscr;

Randomize;

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]: 5);

Writeln;

For j:=n downto 2 do

For i:=1 to j - 1 do

If A[i] >A[i+1] then

Begin

t:=A[i];

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

A[i+1]:=t;

dem:=dem+1;

End;

Writeln('day so sau khi sap xep');

For i:=1 to n do write(A[i]: 7);

Writeln('So lan trao doi ', dem);

Readln;

End.

Bài 3. Viết chương trình nhập vào mảng 1 chiều với N phần tử, tính tổng các phần tử chia hết cho 5, sau đó in tổng ra màn hình.

Program Tong_chia5;

Uses crt;

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

N, i, Tong: integer;

Begin

Clrscr;

Write('Nhap N=');

Readln(N);

For i:=1 to N do

Begin

Writeln('Nhap vao phan tu thu ', i);

Readln(A[i]);

End;

Tong:=0;

For i:=1 to N do

If (A[i] mod 5=0) then Tong:=Tong+A[i];

Write('Tong cac so chia het cho 5 la ', Tong);

Readln;

End.

Program Dem_chia5;

Uses crt;

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

N, i, Dem: integer;

Begin

Clrscr;

Write('Nhap N=');

Readln(N);

For i:=1 to N do

Begin

Writeln('Nhap vao phan tu thu ', i);

Readln(A[i]);

End;

Dem:=0;

For i:=1 to N do

If (A[i] mod 5=0) then Dem:=Dem+1;

Write('Mang 1 chieu co ', Dem, ‘ chia het cho 5’);

Readln;

End.

  • HOẠT ĐỘNG 3: Hoạt động luyện tập, vận dụng:

(1) Mục tiêu: Giúp học sinh giải được các bài toán về kiểu mảng

(2) Phương pháp/kĩ thuật dạy học: Đặt vấn đề

(3) Hình thức tổ chức hoạt động: Làm việc cá nhân.

(4) Phương tiện dạy học: SGK, Projector, máy tính.

(5) Kết quả: Học sinh giải được các bài toán về kiểu mảng

Nội dung hoạt động

GV cho bài tập : Viết chương trình nhập dãy N số nguyên (N<=250). In ra màn hình tổng các số chẵn và lẻ.

GV hướng dẫn và kêu một học sinh lên bảng làm bài.

GV nhận xét, giải đáp thắc mắc của học sinh, đưa ra các nhận xét cuối cùng

  • HOẠT ĐỘNG 4: Hoạt động tìm tòi mở rộng:

(1) Mục tiêu: Giúp học sinh có nhu cầu mở rộng thêm kiến thức của mình.

(2) Phương pháp/kĩ thuật dạy học: làm việc cá nhân, nhóm.

(3) Hình thức tổ chức hoạt động: Ngoài lớp học

(4) Phương tiện dạy học:SGK, Projector, máy tính.

(5) Học sinh biết cách mở rộng các kiến thức của mình thông qua bài tập cụ thể.

Nội dung hoạt động

- GV: cho bài tập:

Viết chương trình nhập dãy N số nguyên (N<=200). Đếm và in ra số lần xuất hiện các số dương và âm.

- HS: làm bài tập GV yêu cầu.

- GV: xem trước về bài kiểu xâu

IV. RÚT KINH NGHIỆM .....................................................................................................................................................

Duyệt của tổ trưởng chuyên môn Giáo viên soạn

Lê Thị Lịnh Lê Minh Tâm

Tuần: 23 Ngày soạn: 08/01/2018

Tiết: 27 Ngày dạy:22/01/2018 đến 04/02/2018

CHỦ ĐỀ 4: KIỂU XÂU

BÀI 12. KIỂU XÂU

I. MỤC TIÊU

1. Về kiến thức

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

- Biết 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 đến xâu.

2. Về kĩ năng

- Rèn luyện kĩ năng sử dụng kiểu dữ liệu có cấu trúc.

- Khai báo được biến kiểu xâu trong ngôn ngữ lập trình Pascal. Sử dụng biến xâu và các phép toán trên xâu để giải quyết các bài toán đơn giản.

3. Về thái độ

- Nghiêm túc trong giờ học, chủ động tìm hiều kiến thức mới.

4. Năng lực hướng tới

- Nhận biết, giải quyết vấn đề, thảo luận.

II. CHUẨN BỊ

1. Chuẩn bị của giáo viên: Giáo án, sách giáo khoa, sách giáo viên, máy tính, máy chiếu, phông chiếu, bút lông, bảng,…

2. Chuẩn bị của học sinh: Sách giáo khoa, tập, viết,…

III. HOẠT ĐỘNG DẠY VÀ HỌC

  1. Ổn định lớp, kiểm tra sĩ số
  2. Kiểm tra bài cũ: không.
  3. Nội dung bài mới:
  • HOẠT ĐỘNG 1: Hoạt động khởi động:

(1) Mục tiêu: Tạo động cơ để học sinh hiểu được cách sử dụng và khai báo được biến xâu.

(2) Phương pháp/kĩ thuật dạy học: Cá nhân, thảo luận nhóm.

(3) Phương tiện dạy học: SGK, Projector, máy tính.

(4) Học sinh có nhu cầu mong muốn được học cách khai báo biến xâu

Nội dung hoạt động

Hoạt động của giáo viên

Hoạt động của học sinh

- Trong thực tế, các kiểu dữ liệu chuẩn không thể đáp ứng đủ biểu diễn của các bài toán lớn. Vì thế, dựa trên các kiểu dữ liệu đó người lập trình có thể tạo ra các kiểu dữ liệu phức tạp hơn để giải quyết các bài toán trong thực tế.

(?) Để nhập vào một ký tự nào đó ta khai báo kiểu dữ liệu gi?

- Nhận xet

- Vậy để nhập vào một chuỗi hay một xâu các kí tự thì chúng ta dùng kiểu char được không?

- Để giải quyết vấn đề này hôm nay chúng ta sẽ tìm hiểu về kiểu xâu.

- Nghe giảng.

- Kiểu char

- Nghe giảng

  • HOẠT ĐỘNG 2: Hình thành kiến thức

(1) Mục tiêu: Giúp học sinh biết được khái niệm về xâu, cách khai báo mảng một chiều, hiểu cách nhập và in một xâu kí tự.

(2) Phương pháp/kĩ thuật dạy học: Vấn đáp, thuyết trình, đặt vấn đề, phân tích.

(3) Hình thức tổ chức hoạt động: Làm việc cá nhân.

(4) Phương tiện dạy học: SGK, Projector, máy tính.

(5) Kết quả: Học sinh nắm được khái niệm về xâu, cách khai báo biến xâu một chiều, hiểu cách nhập và in xâu, hiểu được một số ví dụ giải bài toán về xâu kí tự

Nội dung hoạt động

Hoạt động giáo viên

Hoạt động học sinh

Nội dung trình bày

(?) Các em hãy cho thầy một vài ví dụ về dãy kí tự nào đó?

(?) Các em hãy tham khảo sách giáo khoa và cho thầy biết khái niệm xâu?

- Nhận xét và nhắc lại khái niệm.

(?) Các em hãy cho thầy biết độ dài của 2 ví dụ vừa nêu?

- Qua đó giải thích cho học sinh biết thế nào là độ dài của xâu.

(?) Có tồn tại xâu nào không chứa bất kì kí tự nào không?

- Nhận xét, hướng dẫn cách biểu diễn xâu rỗng.

- Tương tự mảng 1 chiều chúng ta có các quy tắc xác định thì kiểu xâu cũng vậy.

- Suy nghĩ trả lời:

Ví dụ: ‘Ha Noi’

‘Ho Chi Minh’

- Trả lời: Là dãy kí tự trong bảng mã ASCII, mỗi kí tự là một phần tử, được đặt trong hai dấu nháy đơn ‘’.

- Ghi bài.

- Trả lời:

+ Xâu 1: Độ dài: 6.

+ Xâu 2: Độ dài: 11.

- Nghe giảng và ghi bài.

- Trả lời: có, gọi là xâu rỗng.

- Nghe giảng.

- Ghi các quy tắc xác định một xâu.

1. Định nghĩa xâu

Xâu là dãy các kí tự trong bộ mã ASCII, mỗi kí tự là một phần tử của xâu.

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

- Xâu rỗng là xâu không chứa kí tự nào (xâu có độ dài bằng 0), được biểu diễn bằng hai dấu nháy đơn liên tiếp ‘’.

- Có thể xem xâu là mảng 1 chiều mà mỗi phần tử là một kí tự.

- Cách thức cho phép xác định:

+ Tên kiểu xâu.

Ví dụ: s:=‘Lop 11A’;

+ Cách khai báo biến kiểu xâu.

Ví dụ: Var s: string[20];

+ Số lượng các kí tự của xâu.

Ví dụ: ‘Lop 11A’ gồm 7 kí tự.

+ Các phép toán thao tác với xâu như: Ghép, so sánh, chèn…

+ Cách tham chiếu đến phần tử của xâu (Tên xâu[chỉ số]).

Ví dụ: s[1] là kí tự ‘L’.

- Giới thiệu về cách khai báo biến xâu trong ngôn ngữ lập trình Pascal, giải thích ý nghĩa của từ String, [n] cho học sinh hiểu String là tên kiểu xâu [n] là giá trị qui định số lượng kí tự tối đa mà biến xâu có thể chứa.

(?) Các em hãy cho biết khi khai báo không có [n] thì số lượng kí tự tối đa cho phép là bao nhiêu?

- Cho ví dụ giúp học sinh hiểu rõ cách khai báo kiểu xâu.

- Nghe giảng và ghi bài.

- Trả lời: Số lượng kí tự tối đa là 255.

- Chú ý quan sát, ghi bài.

2. Khai báo

Var <tên biến>: String[Độ dài lớn nhất của xâu];

- Khi độ dài lớn nhất của xâu sẽ nhận giá trị ngầm là 255.

Ví dụ:

Var hoten: string[26];

Var chugiai: string;

(?) Đối với dữ liệu chuẩn, sử dụng thủ tục nào để nhập giá trị?

- Nhận xét, đối với kiểu xâu cũng thực hiện các thao tác tương tự.

(?) Làm thế nào để ghép hai hay nhiều xâu lại với nhau?

- Yêu cầu học sinh cho ví dụ cách ghép xâu.

(?) Các em hãy cho biết để so sánh, có các phép toán so sánh nào?

(?) Cho 2 xâu A và B, khi nào thì xâu A được coi là lớn hơn xâu B?

- Nhận xét và phân tích, cho ví dụ.

- Để xóa kí tự trong xâu ta dùng thủ tục Delete, trình bày cú pháp, khái niệm.

- Yêu cầu học sinh nêu ví dụ về thủ tục Delete?

- Giới thiệu: thủ tục Insert dùng để chèn xâu, trình bày cú pháp, khái niệm.

- Hãy nêu ví dụ về thủ tục Insert?

- Hàm copy dùng để tạo một xâu mới bằng cách sao chép các kí tự trong xâu cũ, trình bày cú pháp và khái niệm.

Hãy nêu ví dụ về hàm copy?

- Hàm length dùng để trả về giá trị độ dài của xâu.

Trình bày cú pháp và khái niệm.

Xác định độ dài của xâu sau:

A := ‘Truong Van Hoa II’

Hàm pos xác định vị trí xuất hiện đầu tiên của xâu này trong một xâu khác hay vị trí xuất hiện đầu tiên của một dãy kí tự trong một xâu.

Trình bày cú pháp và khái niệm.

Xác định kết quả của VD:

A := ‘Ho Guom’

B := ‘Guom’

Pos(B, A)

Hàm Upcase trả về chữ cái in hoa tương ứng với các chữ cái trong xâu.

Trình bày cú pháp và khái niệm

(?) Cho ví dụ về hàm Upcase?

- Trả lời:

+ Nhập: Read, readln.

+ Xuất: Write, writeln.

- Ghi bài.

- Trả lời: dấu cộng (+).

- Cho ví dụ.

- Trả lời: Các phép so sánh: =, <>, <, >, <=, >=.

- Tham khảo sách giáo khoa trả lời: (A>B) Nếu xâu B là đoạn đầu của xâu A.

+ (A>B) Nếu kí tự đầu tiên khác nhau giữa chúng kể từ trái sang trong xâu A có mã ASCII lớn hơn;

+ (A=B) Nếu chúng giống nhau hoàn toàn giống nhau.

- Ghi bài.

- Nghe giảng và ghi bài.

Ví dụ: A:= ‘Tin hoc’

Delete( A, 4, 1)

KQ: ‘Tinhoc’

- Nghe giảng, ghi bài.

Ví dụ: A:= ‘Tin’ ; B:= ‘Hoc ’

Insert(A, B, 4)

KQ: ‘Học Tin’

- Ghi bài.

Ví dụ: A:= ‘Mua xuan’

Copy(A, 5, 4)

KQ: ‘xuan’

- Nghe giảng.

- Trả lời: 17

- Ghi bài.

- Trả lời: 4.

- Quan sát và ghi bài.

- Suy nghĩ cho ví dụ.

3. Các thao tác xử lý xâu

Nhập giá trị, in ra giá trị biến kiểu xâu:

* Nhập giá trị cho xâu:

Read (<tên biến xâu>);

Readln (<tên biến xâu>);

* Viết ra giá trị của xâu:

Write (<tên biến xâu>);

Writeln (<tên biến xâu>);

a. Phép ghép xâu

Để ghép hai hay nhiều xâu thành một, ta dùng dấu “+” để ghép. Có thể thực hiện ghép xâu đối với các hằng và biến xâu.

VD: ghép ‘Ha’ + ‘ Noi’

KQ: ‘Ha Noi’

b. Các phép so sánh xâu

Các phép so sánh: =, <>, <, >, <=, >=.

Quy tắc so sánh:

+ A < B nếu độ dài của B lớn hơn và A là đoạn đầu của B;

+ A > B nếu kí tự đầu tiên khác nhau giữa chúng kể từ trái sang trong xâu A có mã ASCII lớn hơn;

+ A = B nếu chúng hoàn toàn giống nhau.

Ví dụ:

‘Ha’ = ‘Ha’

‘Ha’ < ‘Ha Noi’

‘HaNoi’ > ‘HaNam’

c. Thủ tục Delete

Delete(st, vt, n)

Thực hiện việc xóa n kí tự của biến xâu st bắt đầu từ vị trí vt chỉ định.

Ví dụ: A:= ‘Tin hoc’

Delete( A, 4, 1)

KQ: ‘Tinhoc’

d. Thủ tục Insert

Insert( s1, s2, vt)

Thực hiện chèn xâu s1 vào xâu s2 bắt đầu ở vị trí vt.

e. Hàm copy

Copy( S, vt, n)

Thực hiện việc copy n kí tự liên tiếp bắt đầu từ vị trí vt của xâu S để tạo thành một xâu mới.

f. Hàm length

Length(x)

Ví dụ

A := ‘Truong Van Hoa II’

Độ dài: 17

g. Hàm pos

Pos(s1, s2)

Cho vị trí xuất hiện đầu tiên của xâu s1 trong xâu s2.

Pos(kí tự, x)

Cho vị trí xuất hiện đầu tiên của kí tự hoặc dãy kí tự trong xâu x.

Ví dụ:

A := ‘Ho Guom’

B := ‘Guom’

Pos(B, A)

Kq: 4

h. Hàm upcase

Upcase(ch)

Cho chữ cái in hoa ứng với các chữ cái trong xâu ch.

Ví dụ: A := ‘d’

Upcase(A) 🡪 ‘D’

  • HOẠT ĐỘNG 3: Hoạt động luyện tập, vận dụng:

(1) Mục tiêu: Giúp học sinh thực hiện được thao tác tạo khai báo, nhập và in mảng một chiều

(2) Phương pháp/kĩ thuật dạy học: Vấn đáp, thuyết trình, đặt vấn đề, phân tích, so sánh,...

(3) Hình thức tổ chức hoạt động: giải bài tập trên bảng

(4) Phương tiện dạy học:SGK, bảng.

(5) Học sinh biết vận dụng kiến thức đã học vào giải quyết tình huống thực tiễn cụ thể.

Nội dung hoạt động

GV yêu cầu HS: Viết khai báo xâu a có độ dài lớn là 200 kí tự và xâu b có độ dài lớn nhất.

GV hướng dẫn và kêu một học sinh lên bảng làm bài.

GV nhận xét, giải đáp thắc mắc của học sinh, đưa ra các nhận xét cuối cùng

  • HOẠT ĐỘNG 4: Hoạt động tìm tòi mở rộng:

(1) Mục tiêu: Giúp học sinh có nhu cầu mở rộng thêm kiến thức của mình.

(2) Phương pháp/kĩ thuật dạy học: làm việc cá nhân, nhóm.

(3) Hình thức tổ chức hoạt động: Ngoài lớp học

(4) Phương tiện dạy học: SGK, Projector, máy tính.

(5) Học sinh biết cách mở rộng các kiến thức của mình thông qua bài tập cụ thể.

Nội dung hoạt động

- GV: cho bài tập:

Cho xâu s:= ‘Thien Ho Dương’

- Viết hàm xác định độ dài của xâu s

- Viết thủ tục xóa xâu s thành ‘Thien Ho’

- HS: làm bài tập GV yêu cầu.

- GV: xem trước về phần 3 một số ví dụ

IV. RÚT KINH NGHIỆM ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

Duyệt của tổ trưởng chuyên môn Giáo viên soạn

Lê Thị Lịnh Lê Minh Tâm

Tuần: 24 Ngày soạn: 08/01/2018

Tiết: 28 Ngày dạy:22/01/2018 đến 04/02/2018

BÀI 12. KIỂU XÂU (Tiếp theo)

I. MỤC TIÊU

1. Về kiến thức

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

- Biết 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 đến xâu.

2. Về kĩ năng

- Rèn luyện kĩ năng sử dụng kiểu dữ liệu có cấu trúc.

- Khai báo được biến kiểu xâu trong ngôn ngữ lập trình Pascal. Sử dụng biến xâu và các phép toán trên xâu để giải quyết các bài toán đơn giản.

3. Về thái độ

- Nghiêm túc trong giờ học, chủ động tìm hiều kiến thức mới.

4. Năng lực hướng tới

- Nhận biết, giải quyết vấn đề, thảo luận.

II. CHUẨN BỊ

1. Chuẩn bị của giáo viên: Giáo án, sách giáo khoa, sách giáo viên, máy tính, máy chiếu, phông chiếu, bút lông, bảng,…

2. Chuẩn bị của học sinh: Sách giáo khoa, tập, viết,…

III. HOẠT ĐỘNG DẠY VÀ HỌC

  1. Ổn định lớp, kiểm tra sĩ số
  2. Kiểm tra bài cũ: không.
  3. Nội dung bài mới:
  • HOẠT ĐỘNG 1: Hoạt động khởi động:

(1) Mục tiêu: Tạo động cơ để học sinh hiểu được cách sử dụng kiểu xâu để giải cách bài toán đơn giản

(2) Phương pháp/kĩ thuật dạy học: Cá nhân, thảo luận nhóm.

(3) Phương tiện dạy học: SGK, Projector, máy tính.

(4) Học sinh có nhu cầu mong muốn được học cách sử dụng kiểu xâu để giải cách bài toán đơn giản

Nội dung hoạt động

Hoạt động của giáo viên

Hoạt động của học sinh

- Tiết trước chúng ta đã tìm hiểu về cách khai xâu, một số thao tác với xâu. Nhưng khi giải các bài toán bằng mảng ta cần hiểu sâu hơn nữa về cách thức sử dụng xâu trong giải các bài toán đơn giản.

- Hôm nay chúng ta sẽ hiểu sâu hơn qua các ví dụ.

- Nghe giảng

  • HOẠT ĐỘNG 2: Hình thành kiến thức

(1) Mục tiêu: Giúp học sinh biết được cách sử dụng kiểu xâu để giải cách bài toán đơn giản

(2) Phương pháp/kĩ thuật dạy học: Vấn đáp, thuyết trình, đặt vấn đề, phân tích.

(3) Hình thức tổ chức hoạt động: Làm việc cá nhân.

(4) Phương tiện dạy học: SGK, Projector, máy tính.

(5) Kết quả: Học sinh nắm được cách sử dụng kiểu xâu để giải cách bài toán đơn giản thông qua các ví dụ

Nội dung hoạt động

Hoạt động giáo viên

Hoạt động học sinh

Nội dung trình bày

Ví dụ 1. Viết chương trình nhập vào họ đệm và tên của học sinh. In ra màn hình họ và tên của học sinh đó.

(?) Theo các em làm sao ta có thể in học tên học sinh?

- Hướng dẫn học sinh cách viết chương trình.

Ví dụ 2. Nhập vào hai xâu, kiểm tra kí tự đầu tiên của xâu thứ nhất có trùng với kí tự cuối cùng của xâu thứ hai không?

- Hướng dẫn các em cách truy cập phần tử cuối của xâu.

Ví dụ 3. Nhập vào một xâu, in ra màn hình xâu đó viết theo thứ tự ngược lại.

(?) Để làm được đó ta phải sử dụng vòng lặp gì?

- Nhận xét trước tiên ta phải dùng hàm length sao đó ta lặp từ chỉ số cuối về chỉ số đầu.

Ví dụ 4. Nhập vào một xâu, đưa ra màn hình xâu thu được từ nó nhưng đã loại bỏ dấu cách.

- Hướng dẫn học sinh cách viết chương trình.

Ví dụ 5. Nhập vào xâu x1, tạo một xâu x2 gồm tất cả các chữ số có trong x1, giữ nguyên thứ tự xuất hiện giữa chúng, rồi in ra màn hình.

- Giáo viên nhận xét.

- Suy nghĩ trả lời: ta ghép 2 xâu đó lại.

- Nghe giảng và ghi bài.

- Trả lời: Hàm length.

- Chú ý nghe giảng, ghi bài.

Nghe giảng và ghi bài.

- Trả lời: vòng lặp lùi.

- Nghe giảng và viết chương trình.

- Ghi bài.

- Tự viết chương trình.

4. Một số ví dụ

Ví dụ 1. Viết chương trình nhập vào họ đệm và tên của học sinh. In ra màn hình họ và tên của học sinh đó.

Program In_hoten;

Var a, b, x : string;

Begin

Write(‘Nhap vao ho hoc sinh: ’); Readln(a);

Write(‘Nhap vao ten hoc sinh: ’); Readln(b);

x:= a + b;

Write(‘Ho va ten hoc sinh la: ’, x);

Readln;

End.

Ví dụ 2. Nhập vào hai xâu, kiểm tra kí tự đầu tiên của xâu thứ nhất có trùng với kí tự cuối cùng của xâu thứ hai không?

Program Ktkitutrung;

Var x: integer;

A, b: string;

Begin

Write(‘ Nhap vao xau thu nhat: ’); readln(a);

Write(‘ Nhap vao xau thu hai: ’); readln(b);

x := length(b);

If a[1] = b[x] then write(‘Trung nhau’)

else write(‘Khac nhau’);

Readln;

End.

Ví dụ 3. Nhập vào một xâu, in ra màn hình xâu đó viết theo thứ tự ngược lại.

Program Daonguocxau;

Uses Crt;

Var i, k: integer;

a: string;

Begin

Write(‘ Nhap xau: ’); Readln(a);

k:= length(a);

For i:= k downto 1 do write(a[i]);

Readln;

End.

Ví dụ 4. Nhập vào một xâu, đưa ra màn hình xâu thu được từ nó nhưng đã loại bỏ dấu cách.

Program Xoakhoangcach;

Var i, k: byte;

a: string;

Begin

Write(‘ Nhap xau: ’); readln(a);

k:= length(a);

b:= ‘’;

For i:= 1 to k do

If a[i] <> ‘ ’ then b:=b+a[i];

Writeln(‘Ket qua: ’, b);

Readln;

End.

Ví dụ 5. Nhập vào xâu x1, tạo một xâu x2 gồm tất cả các chữ số có trong x1, giữ nguyên thứ tự xuất hiện giữa chúng, rồi in ra màn hình.

Program Xauchuso;

Uses crt;

Var x1, x2: string;

i: byte;

Begin
Write(‘ Nhập vào xâu x1: ’); Readln(x1);

x2 := ‘’;

For i := 1 to length(x1) do

If (‘0’ =< x1[i]) and (x1[i] <= ‘9’) then

x2 := x2 + x1[i];

Writeln(‘Ket qua la: ’, x2);

Readln;

End.

  • HOẠT ĐỘNG 3: Hoạt động luyện tập, vận dụng:

(1) Mục tiêu: Giúp học sinh thực hiện được sử dụng kiểu xâu để giải cách bài toán đơn giản

(2) Phương pháp/kĩ thuật dạy học: Vấn đáp, thuyết trình, đặt vấn đề, phân tích, so sánh,...

(3) Hình thức tổ chức hoạt động: giải bài tập trên bảng

(4) Phương tiện dạy học:SGK, bảng.

(5) Học sinh biết vận dụng kiến thức đã học vào giải quyết tình huống thực tiễn cụ thể.

Nội dung hoạt động

GV yêu cầu HS: Viết chương trình nhập vào hai xâu, in ra màn hình xâu dài hơn.

GV hướng dẫn và kêu một học sinh lên bảng làm bài.

GV nhận xét, giải đáp thắc mắc của học sinh, đưa ra các nhận xét cuối cùng

  • HOẠT ĐỘNG 4: Hoạt động tìm tòi mở rộng:

(1) Mục tiêu: Giúp học sinh có nhu cầu mở rộng thêm kiến thức của mình.

(2) Phương pháp/kĩ thuật dạy học: làm việc cá nhân, nhóm.

(3) Hình thức tổ chức hoạt động: Ngoài lớp học

(4) Phương tiện dạy học: SGK, Projector, máy tính.

(5) Học sinh biết cách mở rộng các kiến thức của mình thông qua bài tập cụ thể.

Nội dung hoạt động

- GV: cho bài tập:

Viết chương trình nhập hai xâu kí tự a, b bất kì. Kiểm tra kí tự cuối của xâu a có trùng với kí tự thứ hai trong xâu b hay không.

- HS: làm bài tập GV yêu cầu.

- GV: xem trước về bài tập kiểu xâu

IV. RÚT KINH NGHIỆM .....................................................................................................................................................

Duyệt của tổ trưởng chuyên môn Giáo viên soạn

Lê Thị Lịnh Lê Minh Tâm

Tuần: 24 Ngày soạn: 15/01/2018

Tiết: 29 Ngày dạy:29/01/2018 đến 04/02/2018

BÀI TẬP

I. MỤC TIÊU

1. Về kiến thức

- Các quy tắc kiểu dữ liệu có cấu trúc để thực hiện dữ liệu thực tế.

- Kiểu dữ liệu có cấu trúc được xây dựng từ những kiểu dữ liệu cơ sở theo một số cách thức tạo kiểu do ngôn ngữ lập trình Pascal quy định.

- Trong ngôn ngữ Pascal dùng mô tả kiểu dữ liệu mới với từ khoá Type.

2. Về kĩ năng

- Rèn luyện kĩ năng khai báo kiểu dữ liệu có cấu trúc.

- Sử dụng thành thạo các thao tác vào/ra và các phép toán trên các thành phần cơ sở.

3. Về thái độ

- Thái độ nghiêm túc trong học tập, chủ động giải bài tập.

4. Năng lực hướng tới

- Khai báo biến dữ liệu hợp lý. Hiểu nguyên lý lưu dữ liệu một cách có cấu trúc.

II. CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH

1. Chuẩn bị của giáo viên: Giáo án, sách giáo khoa, sách giáo viên, máy tính, máy chiếu, phông chiếu, bút lông, bảng,…

2. Chuẩn bị của học sinh: Sách giáo khoa, tập, viết,…

III. TỔ CHỨC CÁC HOẠT ĐỘNG HỌC TẬP

1. Ổn định lớp

2. Kiểm tra bài cũ (không)

3. Tiến trình bài học

  • HOẠT ĐỘNG 1: Hoạt động khởi động:

(1) Mục tiêu: Tạo động cơ để học sinh hiểu được cách thao tác với kiểu xâu

(2) Phương pháp/kĩ thuật dạy học: Cá nhân.

(3) Phương tiện dạy học: SGK, Projector, máy tính.

(4) Học sinh có nhu cầu mong muốn được học cách sử dụng kiểu xâu để giải các bài toán.

Nội dung hoạt động

Hoạt động của giáo viên

Hoạt động của học sinh

Với những bài toán yêu cầu nhập xâu kí tự bất kỳ ta dùng khai báo kiểu gì để lưu các giá trị đó?

Ta có thể tham chiếu đến các phần tử và lấy giá trị các phần tử của xâu kí tự được không?

Để hiểu được sự lợi ích nhiều hơn của việc sử dụng kiểu xâu hôm nay chúng ta sẽ làm một số bài tập vận dụng cấu trúc rẽ nhánh, cấu trúc lặp với kiểu xâu

- Trả lời : Kiểu xâu

- Trả lời : Được

- Nghe giảng

  • HOẠT ĐỘNG 2: Hình thành kiến thức

(1) Mục tiêu: Giúp học sinh biết được cách khai báo mảng một chiều, hiểu cách nhập và in mảng một chiều.

(2) Phương pháp/kĩ thuật dạy học: Đặt vấn đề, phân tích.

(3) Hình thức tổ chức hoạt động: Làm việc cá nhân.

(4) Phương tiện dạy học: SGK, Projector, máy tính.

(5) Kết quả: Học sinh nắm được cách khai báo biến mảng một chiều, hiểu cách nhập và in mảng một chiều, giải được các bài toán về mảng một chiều.

Nội dung hoạt động

Hoạt động giáo viên

Hoạt động học sinh

Nội dung trình bày

- Xác định input và output

- Cần khai báo những biến nào?

- Sử dụng vòng lặp gì để duyệt các phần tử?

- Vòng lặp đi từ giá trị nào?

- Để so sánh một kí tự với khoảng trắng ta viết như thế nào?

- Gọi học sinh lên bảng làm?

- Quan sát

- Gọi học sinh nhận xét

- Nhận xét

- Xác định input và output

- Cần khai báo những biến nào?

- Khởi tạo s2 bang bao nhiêu?

- Sử dụng vòng lặp gì để duyệt các phần tử?

- Vòng lặp đi từ giá trị nào?

- Đều kiện để lấy giá trị cho s2?

- Gọi học sinh lên bảng làm?

- Quan sát

- Gọi học sinh nhận xét

- Nhận xét

- Trả lời: Xâu s, output là số lượng dấu cách

- Trả lời:Biến xâu s, dem, i

­- Trả lời:vòng lặp for

- Trả lời:1->length(s)

- Trả lời:a[i]=’ ‘

- Một học sinh lên bảng làm

-Nhận xét

-Nghe giảng và ghi bài

- Trả lời: Xâu s1, output xâu s2

- Trả lời:Biến xâu s1, s2, i

-Trả lời:s2=’’

­- Trả lời:vòng lặp for

- Trả lời :

1->length(s1)

-Trả lời: s1[i]<’0’ or s1[i]>’9’

- Một học sinh lên bảng làm

-Nhận xét

-Nghe giảng và ghi bài

Bai 1: Viết chương trình nhập một xâu s bất kỳ vào từ bàn phím. Đếm và in ra màn hình xâu có bao nhiêu dấu cách?

Program dem_trang;

Uses crt;

Var s:string;

Dem, I:integer;

Begin

Write(‘Nhap xau:’);

Readln(s);

Dem:=0;

For i:=1 to length(s) do

If a[i]=’ ‘ then

Dem:=dem+1;

Write(‘so luong dau cach la:’,dem);

Readln

End

Bai 2: Viết chương trình nhập một xâu s1 bất kỳ vào từ bàn phím, tạo xâu s2 gồm tất cả các ký tự không phải là chữ số có trong xâu s1 và in kết quả ra màn hình.

Program tao_xau;

Var s1,s1:string;

I:integer;

Begin

Write(‘Nhap s1:’);

Readln(s1);

S2:=’’;

For i:=1 to length(s1) do

If s1[i]<’0’ or s1[i]>’9’ then

S2:=s2+s1[i];

Writeln(‘xau s2 la:’,s2);

Readln

End.

  • HOẠT ĐỘNG 3: Hoạt động luyện tập, vận dụng:

(1) Mục tiêu: Giúp học sinh biết được cách khai báo biến xâu, hiểu cách nhập và in xâu.

(2) Phương pháp/kĩ thuật dạy học: Đặt vấn đề, phân tích.

(3) Hình thức tổ chức hoạt động: Làm việc cá nhân.

(4) Phương tiện dạy học: SGK, Projector, máy tính.

(5) Kết quả: Học sinh nắm được cách khai báo biến xâu, hiểu cách nhập và in xâu, giải được các bài toán về kiểu xâu.

Nội dung hoạt động

GV cho bài tập : Viết chương trình nhập một xâu kí tự bất kì. Đếm và in ra số lần xuất hiện chữ số trong xâu.

GV hướng dẫn và kêu một học sinh lên bảng làm bài.

GV nhận xét, giải đáp thắc mắc của học sinh, đưa ra các nhận xét cuối cùng

  • HOẠT ĐỘNG 4: Hoạt động tìm tòi mở rộng:

(1) Mục tiêu: Giúp học sinh có nhu cầu mở rộng thêm kiến thức của mình.

(2) Phương pháp/kĩ thuật dạy học: làm việc cá nhân, nhóm.

(3) Hình thức tổ chức hoạt động: Ngoài lớp học

(4) Phương tiện dạy học:SGK, Projector, máy tính.

(5) Học sinh biết cách mở rộng các kiến thức của mình thông qua bài tập cụ thể.

Nội dung hoạt động

- GV: cho bài tập:

Viết chương trình nhập một xâu kí tự bất kì và một kí tự bất ki. Cho biết số lần xuất hiện kí tự vừa nhập.

- HS: làm bài tập GV yêu cầu.

- GV: xem trước về bài tập thực hành 5

IV. RÚT KINH NGHIỆM .....................................................................................................................................................

Duyệt của tổ trưởng chuyên môn Giáo viên soạn

Lê Thị Lịnh Lê Minh Tâm

Tuần: 25 Ngày soạn: 15/01/2018

Tiết: 30+31 Ngày dạy:05/02/2018 đến 24/02/2018

BÀI TẬP VÀ THỰC HÀNH 5

I. MỤC TIÊU

1. Về kiến thức

- Củng cố cho học sinh những hiểu biết về kiểu xâu.

- Cung cấp cho học sinh một vài thuật toán cơ bản và đơn giản thường gặp trong xử lý xâu.

2. Về kĩ năng

- Làm việc với xâu trong lập trình.

- Bước đầu viết được một số thuật toán kiêu xâu quen thuộc bằng Pascal.

- 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.

3. Về thái độ

- Thái độ nghiêm túc trong học tập.

4. Năng lực hướng tới

II. CHUẨN BỊ

1. Chuẩn bị của giáo viên: Giáo án, sách giáo khoa, sách giáo viên, máy tính, máy chiếu, phông chiếu, bút lông, bảng,…

2. Chuẩn bị của học sinh: Sách giáo khoa, tập, viết,…

III. HOẠT ĐỘNG DẠY VÀ HỌC

  1. Ổn định lớp, kiểm tra sĩ số
  2. Kiểm tra bài cũ: không.
  3. Nội dung bài mới:
  • HOẠT ĐỘNG 1: Hoạt động khởi động:

(1) Mục tiêu: Tạo động cơ để học sinh sử dụng máy tính giải các bài toán.

(2) Phương pháp/kĩ thuật dạy học: Cá nhân.

(3) Phương tiện dạy học: SGK, Projector, máy tính.

(4) Học sinh có nhu cầu mong muốn được học cách sử dụng kiểu xâu để giải các bài toán.

Nội dung hoạt động

Hoạt động của giáo viên

Hoạt động của học sinh

- Khi làm việc với kiểu xâu trước tiên chúng ta cần thành thạo các thao tác khai báo, nhập, xuất xâu. Để làm được điều đó thầy và cả lớp cùng tìm hiểu và thực hành một số bài tập ở Bài tập và thực hành số 5 trong SGK.

- Nghe giảng

  • HOẠT ĐỘNG 2: Hình thành kiến thức

(1) Mục tiêu: Giúp học sinh sử dụng máy tính chạy được một số bài tập về kiểu xâu

(2) Phương pháp/kĩ thuật dạy học: Thực hành trên máy tính.

(3) Hình thức tổ chức hoạt động: Làm việc cá nhân.

(4) Phương tiện dạy học: SGK, Projector, máy tính.

(5) Kết quả: Học sinh sử dụng máy tính chạy được một số bài toán về kiểu mảng.

Nội dung hoạt động

Hoạt động giáo viên

Hoạt động học sinh

Nội dung trình bày

Bài 1. Nhập từ bàn phím một xâu. Kiểm tra xâu đó có phải là xâu đối xứng không. Xâu đối xứng có tính chất: đọc từ bên phải sang trái cũng thu được kết quả giống như từ trái sang phải (còn gọi là xâu palindrome).

(?) Khi đó chúng làm như thế nào?

- Nhận xét, bên cạnh đó ta còn kiểm tra phần tử đầu trùng với phần tử cuối và tương tự cho đến phần tử ở giữa xâu.

- Giới thiệu các dòng lệnh giúp học sinh hiểu rõ cấu trúc chương trình.

Bài 2. Viết chương trình nhập từ bàn phím một xâu kí tự S và thông báo ra màn hình số lần xuất lần của mỗi chữ cái tiếng Anh trong S (không phân biệt chữ hoa hay chữ thường).

- Hướng dẫn học sinh cách viết chương trình.

Bài 3. Nhập tự bàn phím một xâu. Thay thế tất cả các cụm tự ‘anh’ bằng kí tự ‘em’.

(?) Khi đó ta dùng thủ tục gì?

- Nhận xét, khi đó ta gặp chữ ‘anh’ ta xóa 3 kí tự sao đó ta chèn vào vị trí đó chữ ‘em’.

- Trả lời: sao khi đảo ngược xâu thì xâu mới giống xâu cũ.

- Nghe giảng và ghi bài.

- Lắng nghe để hiểu rõ hơn.

- Nghe giảng và viết chương trình.

- Chú ý quan sát, ghi bài.

- Trả lời: ta dùng thủ tục Delete và Insert.

- Viết chương trình vào tập.

Bài 1. Nhập từ bàn phím một xâu. Kiểm tra xâu đó có phải là xâu đối xứng không. Xâu đối xứng có tính chất: đọc từ bên phải sang trái cũng thu được kết quả giống như từ trái sang phải (còn gọi là xâu palindrome).

a/ Program xaudoixung;

Var i, x: byte;

a, p: string;

Begin

Writeln('Nhap vao xau: ');

Readln(a);

x:=length(a);

p:='';

For i:=x downto 1 do

p:=p+a[i];

If a=p then

Writeln('Xau la palindrome')

Else

Writeln('Xau khong la palindrome');

Readln;

End.

b/ Program xaudoixung;

Uses crt;

Var A: string;

i, dem, n: integer;

Begin

Clrscr;

Writeln('nhap vao xau');

Readln(A);

n:=length(A);

dem:=0;

For i:=1 to n div 2 do

If (A[i]=A[n+1-i]) then

dem:=dem+1;

If (dem=n div 2 ) then

Writeln('Xau la palindrome')

Else

Writeln('Xau khong la palindrome');

Readln;

End.

Bài 2. Viết chương trình nhập từ bàn phím một xâu kí tự S và thông báo ra màn hình số lần xuất lần của mỗi chữ cái tiếng Anh trong S (không phân biệt chữ hoa hay chữ thường).

Program xuathienchu;

Uses crt;

Var i, n: integer;

j: char;

dem, demso: integer;

A:string;

Begin

Clrscr;

Writeln('Nhap xau ki tu A');

Readln(A);

For i:=1 to length(A) do

If (A[i]=' ') then

delete(A, i, 1);

For i:=1 to length(A) do

A[i]:=upcase(A[i]) ;

For n:=0 to 9 do

begin

For i:=1 to length(A) do

If (A[i]=n) then

demso:=demso+1;

end;

For j:='A' to 'Z' do

begin

dem:=0;

For i:=1 to length(A) do

If (A[i]=j) then dem:=dem+1;

If (dem>0) then writeln ('ki tu ', j, ' xuat hien ', dem, ' lan');

end;

Readln;

End.

Bài 3. Nhập tự bàn phím một xâu. Thay thế tất cả các cụm tự ‘anh’ bằng kí tự ‘em’.

Program thaytheanhem;

Uses crt;

Var A: string;

vt, i: integer;

Begin

Clrscr;

Writeln('nhap vao xau A');

Readln(A);

While pos('anh', A)<>0 do

Begin

vt:=pos('anh', A);

delete(A, vt, 3);

insert('em', A, vt);

End;

Writeln(A);

Readln;

End.

  • HOẠT ĐỘNG 3: Hoạt động luyện tập, vận dụng:

(1) Mục tiêu: Giúp học sinh giải được các bài toán về kiểu xâu

(2) Phương pháp/kĩ thuật dạy học: Đặt vấn đề

(3) Hình thức tổ chức hoạt động: Làm việc cá nhân.

(4) Phương tiện dạy học: SGK, Projector, máy tính.

(5) Kết quả: Học sinh giải được các bài toán về kiểu xâu

Nội dung hoạt động

GV cho bài tập : Viết chương trình nhập từ bàn phím một xâu bất kỳ. Đếm xem trong xâu vừa nhập có bao nhiêu chữ số.

GV hướng dẫn và kêu một học sinh lên bảng làm bài.

GV nhận xét, giải đáp thắc mắc của học sinh, đưa ra các nhận xét cuối cùng

  • HOẠT ĐỘNG 4: Hoạt động tìm tòi mở rộng:

(1) Mục tiêu: Giúp học sinh có nhu cầu mở rộng thêm kiến thức của mình.

(2) Phương pháp/kĩ thuật dạy học: làm việc cá nhân, nhóm.

(3) Hình thức tổ chức hoạt động: Ngoài lớp học

(4) Phương tiện dạy học:SGK, Projector, máy tính.

(5) Học sinh biết cách mở rộng các kiến thức của mình thông qua bài tập cụ thể.

Nội dung hoạt động

- GV: cho bài tập:

Viết chương trình nhập từ bàn phím một xâu bất kỳ. In xâu vừa nhập sau khi đã chuyển tất cả kí thường thành kí tự hoa.

- HS: làm bài tập GV yêu cầu.

- GV: xem trước câu hỏi và bài tập chương IV

IV. RÚT KINH NGHIỆM .....................................................................................................................................................

.....................................................................................................................................................

.....................................................................................................................................................

Duyệt của tổ trưởng chuyên môn Giáo viên soạn

Lê Thị Lịnh Lê Minh Tâm

Tuần: 27 Ngày soạn: 29/01/2018

Tiết: 32+33 Ngày dạy:26/02/2018 đến 03/03/2018

CÂU HỎI VÀ BÀI TẬP

I. MỤC TIÊU

1. Về kiến thức

- Các quy tắc kiểu dữ liệu có cấu trúc để thực hiện dữ liệu thực tế.

- Kiểu dữ liệu có cấu trúc được xây dựng từ những kiểu dữ liệu cơ sở theo một số cách thức tạo kiểu do ngôn ngữ lập trình Pascal quy định.

- Trong ngôn ngữ Pascal dùng mô tả kiểu dữ liệu mới với từ khoá Type.

2. Về kĩ năng

- Rèn luyện kĩ năng khai báo kiểu dữ liệu có cấu trúc.

- Sử dụng thành thạo các thao tác vào/ra và các phép toán trên các thành phần cơ sở.

3. Về thái độ

- Thái độ nghiêm túc trong học tập, chủ động giải bài tập.

4. Năng lực hướng tới

II. CHUẨN BỊ

1. Chuẩn bị của giáo viên: Giáo án, sách giáo khoa, sách giáo viên, máy tính, máy chiếu, phông chiếu, bút lông, bảng,…

2. Chuẩn bị của học sinh: Sách giáo khoa, tập, viết,…

III. HOẠT ĐỘNG DẠY VÀ HỌC

  1. Ổn định lớp, kiểm tra sĩ số
  2. Kiểm tra bài cũ: không.
  3. Nội dung bài mới:
    • HOẠT ĐỘNG 1: Hoạt động khởi động:

(1) Mục tiêu: Tạo động cơ để học sinh ôn nắm lại kiến thức kiểu mảng một chiều và kiểu xâu.

(2) Phương pháp/kĩ thuật dạy học: Cá nhân.

(3) Phương tiện dạy học: SGK, Projector, máy tính.

(4) Học sinh có nhu cầu mong muốn được trả lời các câu hỏi và các bài tập về kiểu mảng một chiều và kiểu xâu.

Nội dung hoạt động

Hoạt động của giáo viên

Hoạt động của học sinh

- Để ôn lại về khái niệm thế nào là kiểu mảng một chiều, kiểu xâu. Sử dụng kiểu mảng một chiều, kiểu xâu để giải các bài toán đơn giản, hôm nay chúng ta sẽ làm câu hỏi và bài tập trang 79

- Yêu cầu học sinh mở sách giáo khoa trang 79 sau đó trả lời từng câu hỏi.

- Nghe giảng.

  • HOẠT ĐỘNG 2: Hình thành kiến thức

(1) Mục tiêu: Giúp học sinh ôn lại kiến thức về kiêu xâu và kiểu mảng một chiều, giải các bài toán đơn giản.

(2) Phương pháp/kĩ thuật dạy học: Vấn đáp, thuyết trình, đặt vấn đề, phân tích.

(3) Hình thức tổ chức hoạt động: Làm việc cá nhân, nhóm.

(4) Phương tiện dạy học: SGK, Projector, máy tính.

(5) Kết quả: Học sinh nắm được kiến thức đã học, sử dụng kiểu xâu và mảng giải được một số bài toán đơn giản

Nội dung hoạt động

Hoạt động giáo viên

Hoạt động học sinh

Nội dung trình bày

(?) Gọi học sinh lên trả lời câu hỏi vì sao gọi dữ liệu có cấu trúc?

- Nhận xét, kết luận mảng là kiểu dữ liệu có cấu trúc.

(?) Tại sao phải khai báo kích thước mảng?

- Nhắc lại, sự cần thiết khai báo kích thước.

(?) Các em hãy kể tên các kiểu liệu đã được học?

- Tương tự như vậy mảng cũng có các kiểu dữ liệu như vậy.

(?) Để tham chiếu đến phần tử của mảng, phần quan trọng nhất là gì?

- Nhận xét: cần xác định tên mảng, chỉ số, phải để trong dấu [].

(?) Các em đã học toán hãy cho một ví dụ về cấp số cộng?

- Tương tự trong Pascal vẫn giống như vậy, hôm nay chúng ta sẽ lập trình bài toán kiểm tra dãy số có phải là cấp số cộng không.

(?) Theo toán học để kiểm tra dãy số có phải là cấp số cộng không, ta cần tính giá trị nào?

- Như vậy ta phải cần có công sai, khi đó chúng ta lấy phần tử thứ 2 trừ phần tử thứ nhất ta sẽ được công sai. Tiếp tục lấy phần tử i+1 trừ phần từ i nếu các phép trừ cho kết quả bằng công sai thì ta được cấp số cộng.

(?) Các em đã biết khái niệm thế nào là số chẵn thế nào là số lẻ và số nguyên tố là số như thế nào? Hôm nay chúng ta sẽ lập trình bài toán kiểm tra số đó có phải là số nguyên tố không?

(?) Yêu cầu học sinh nhắc lại thế nào là số chẵn, số lẻ?

- Nhận xét, còn số nguyên tố là số chia hết cho 1 và chính nó, nhưng số 1 không là số nguyên tố, hướng dẫn học sinh cách viết chương trình.

(?) Các em hãy cho biết thế nào là dãy Phi- bô- na –xi?

- Nhận xét: Dãy Fibonaxi là dãy vô hạn các số tự nhiên bắt đầu bằng hai phần tử 0 và 1, các phần tử sau đó được thiết lập theo quy tắc mỗi phần tử luôn bằng tổng hai phần tử trước nó

- Hướng dẫn học sinh cách viết chương trình.

- Theo các em thì chương trình chúng ta chạy tới với giá trị nào của N?

- Với từng kiểu số nguyên khác nhau sẽ cho giá trị N, vì mỗi kiểu có phạm vi giá trị khác nhau.

- Yêu cầu học sinh đọc và thảo luận bài tập 10 trang 80 SGK.

(?) Khi đó ta phải kiểm tra từ phần tử đầu đến phần tử cuối. Để tìm phần tử cuối thì chúng ta phải dùng hàm gì?

- Khi đó ta cho vòng lặp chạy từ phần tử 1 đến phần tử có giá trị bằng length(S), nếu nằm trong khoảng từ 0 đến 9 thì ta đếm lên một giá trị.

- Nhận xét cách viết chương trình của học sinh, chỉnh sửa nếu có sai sót.

- Trả lời: vì nó có khuôn dạng do ngôn ngữ lập trình cung cấp.

- Nghe giảng, ghi bài.

- Suy nghĩ trả lời.

- Nghe giảng và ghi bài.

- Trả lời: Real, Integer, Longint, Boolean.

- Ghi bài.

- Trả lời: chỉ số của mảng, cách ghi đúng.

- Nghe giảng.

- Trả lời: dãy số là 1 3 5 7

- Nghe giảng.

- Trả lời: ta tính công sai.

- Nghe giảng và ghi bài.

- Nghe giảng.

- Trả lời: là số chia hết và không chia hết cho 2.

- Xem cách viết chương trình và ghi vào tập.

- Suy nghĩ trả lời.

- Nghe giảng.

- Chú ý quan sát.

- Trả lời phụ thuộc vào khai báo N.

- Nghe giảng.

- Trả lời: Hàm length.

- Nghe giảng, tự viết chương trình.

- Viết chương trình vào tập.

Câu 1. Tại sao mảng là kiểu dữ liệu có cấu trúc?

Mảng là kiểu dữ liệu có cấu trúc bởi vì nó là kiểu có cấu trúc được đề cập tới sớm nhất trong các ngôn ngữ lập trình. Nó được xây dựng từ những kiểu dữ liệu đã có theo quy tắc khuôn dạng do ngôn ngữ lập trình cung cấp.

Câu 2. Tại sao phải khai báo kích thước của mảng?

+ Để đánh số các phần từ;

+ Tránh tốn ô nhớ giúp chương trình chạy nhanh hơn.

Câu 3. Các phần tử của mảng có thể có những kiểu gì?

Các kiểu dữ liệu: Real, Boolean, Integer, Longint.

Câu 4. Tham chiếu đến phần tử của mảng bằng cách nào?

- Cần xác định tên mảng, chỉ số, phải để trong dấu ngoặc vuông [chỉ số].

Câu 5. Viết chương trình nhập từ bàn phím số nguyên dương N (N<=100) và dãy A gồm N số nguyên A1, A2, …AN có giá trị tuyệt đối không lớn hơn 1000. Hãy cho biết dãy số A có phải là cấp số cộng hay không và thông báo kết quả ra màn hình.

Program capsocong;

Uses crt;

Var A: Array[1..100] of integer;

cs, n, i, dem: integer;

Begin

Clrscr;

Writeln('nhap vao n va n phai lon hon khong');

Readln(n);

For i:=1 to n do

Begin

Writeln('nhap phan tu thu ', i);

Readln(A[i]);

End;

dem:=0;

cs:=A[2]-A[1];

For i:=2 to n-1 do

If (A[i+1]-A[i]=cs) then

dem:=dem+1;

If (dem=n-2) then

writeln('La cap so cong')

Else

Writeln('Khong la cap so cong');

Readln ;

End.

Câu 6. Viết chương trình nhập từ bàn phím số nguyên dương N (N<=100) và dãy A gồm N số nguyên A1, A2, …AN có giá trị tuyệt đối không lớn hơn 1000. Hãy đưa ra thông báo sau:

a. Số lượng số chẵn và số lẻ trong dãy;

b. Số lượng số nguyên tố trong dãy.

Program Thuoctinhcuaday;

Uses crt;

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

n, demle, demchan, demngto, i , j: integer;

tam: boolean;

Begin

clrscr;

Writeln('nhap vao n');

Readln(n);

If (abs(n)>1000) then writeln(' Nhap lai N')

Else

Begin

For i:=1 to n do

Begin

Writeln('nhap vao phan tu thu ', i);

Readln(A[i]);

End;

demle:=0;

demchan:=0;

For i:=1 to n do

If (A[i] mod 2=0) then demchan:=demchan+1

Else

demle:=demle+1;

demngto:=0;

tam:=true;

For i:=1 to n do

If (A[i] >1) then

Begin

j:=2;

While (j<=sqrt(A[i]) ) and (A[i] mod j<>0) do

j:=j+1;

If (j>sqrt(A[i])) then demngto:=demngto+1;

End;

writeln('Cac so chan la ', demchan);

writeln('Cac so le la ', demle);

writeln('So nguyen to la', demngto);

End;

Readln;

End.

Câu 7. Dãy F là Phi-bô-na- xi nếu:

F0=0; F1=1; FN=FN-1+FN-2 với N>=2.

Viết chương trình nhập từ bàn phím số nguyên dương N và đưa ra màn hình số hạng thứ N của dãy Phi- bô- na-xi. Chương trình của bạn thực hiện được với giá trị lớn nhất của N là bao nhiêu?

Program Dayfibonaxi;

Uses crt;

Var n, i, f0, f2, f1, f: integer;

Begin

Clrscr;

Writeln('nhap vao n');

Readln(n);

f0:=0;

f1:=1;

f2:=1;

If (n=2) then

writeln('Phan tu thu ', n, 'la ', f0 + f1)

Else

Begin

For i:=3 to n do

Begin

f:=f1+f2;

f1:=f2;

f2:=f;

End;

Writeln('Phan tu thu ', n, 'la ', f);

End;

Readln;

End.

Câu 10. Viết chương trình nhập từ bàn phím xâu kí tự S có độ dài không quá 100. Hãy cho biết có bao nhiêu chữ số xuất hiện trong xâu S.

Program demso;

Var s: string[100];

i, dem: integer;

Begin

Writeln('Nhap 1 xau ki tu do dai khong qua 100');

Readln(s);

dem:=0;

For i:=1 to length(s) do

If ('0'<=s[i]) and (s[i]<='9')

then dem:=dem+1;

Writeln('Trong xau s co ', dem, ' chu so xuat hien’);

Readln;

End.

  • HOẠT ĐỘNG 3: Hoạt động luyện tập, vận dụng:

(1) Mục tiêu: Giúp học sinh giải thêm các bài tập về xâu, mảng một chiều.

(2) Phương pháp/kĩ thuật dạy học: Vấn đáp, thuyết trình, đặt vấn đề, phân tích, so sánh,...

(3) Hình thức tổ chức hoạt động: giải bài tập trên bảng

(4) Phương tiện dạy học:SGK, bảng.

(5) Học sinh biết vận dụng kiến thức đã học vào giải quyết tình huống thực tiễn cụ thể.

Nội dung hoạt động

GV yêu cầu HS: Viết chương trình nhập vào một dãy số nguyên có n phần tử.

- Sắp xếp dãy theo thứ tự tăng dần và in kết quả ra màn hình.

- Nhập vào một số x bất kì, đếm số lần xuất hiện của nó trong dãy trên.

- In ra màn hình số phần tử nhỏ hơn hoặc bằng x.

- In ra màn hình số phần tử lớn hơn x

GV hướng dẫn và kêu một học sinh lên bảng làm bài.

GV nhận xét, giải đáp thắc mắc của học sinh, đưa ra các nhận xét cuối cùng

  • HOẠT ĐỘNG 4: Hoạt động tìm tòi mở rộng:

(1) Mục tiêu: Giúp học sinh có nhu cầu mở rộng thêm kiến thức của mình.

(2) Phương pháp/kĩ thuật dạy học: làm việc cá nhân, nhóm.

(3) Hình thức tổ chức hoạt động: Ngoài lớp học

(4) Phương tiện dạy học: SGK, Projector, máy tính.

(5) Học sinh biết cách mở rộng các kiến thức của mình thông qua bài tập cụ thể.

Nội dung hoạt động

- GV: cho bài tập:

Viết chương trình nhập một đoạn văn. Đếm có bao nhiêu câu trong đoạn vừa nhập.

- HS: làm bài tập GV yêu cầu.

IV. RÚT KINH NGHIỆM ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

Duyệt của tổ trưởng chuyên môn

Lê Thị Lịnh

Tuần: 28 Ngày soạn: 25/02/2018

Tiết: 34 Ngày dạy:05/03/2018 đến 10/03/2018

ÔN TẬP

I. MỤC TIÊU

1. Về kiến thức

- Các quy tắc kiểu dữ liệu có cấu trúc để thực hiện dữ liệu thực tế.

- Kiểu dữ liệu có cấu trúc được xây dựng từ những kiểu dữ liệu cơ sở theo một số cách thức tạo kiểu do ngôn ngữ lập trình Pascal quy định.

- Trong ngôn ngữ Pascal dùng mô tả kiểu dữ liệu mới với từ khoá Type.

2. Về kĩ năng

- Rèn luyện kĩ năng khai báo kiểu dữ liệu có cấu trúc.

- Sử dụng thành thạo các thao tác vào/ra và các phép toán trên các thành phần cơ sở.

3. Về thái độ

- Thái độ nghiêm túc trong học tập, chủ động giải bài tập.

4. Năng lực hướng tới

II. CHUẨN BỊ

1. Chuẩn bị của giáo viên: Giáo án, sách giáo khoa, sách giáo viên, máy tính, máy chiếu, phông chiếu, bút lông, bảng,…

2. Chuẩn bị của học sinh: Sách giáo khoa, tập, viết,…

III. HOẠT ĐỘNG DẠY VÀ HỌC

1. Ổn định lớp, kiểm tra sĩ số

  1. Kiểm tra bài cũ: không.
  2. Nội dung bài mới:
    • HOẠT ĐỘNG 1: Hoạt động khởi động:

(1) Mục tiêu: Tạo động cơ để học sinh ôn nắm lại kiến thức kiểu mảng một chiều và kiểu xâu.

(2) Phương pháp/kĩ thuật dạy học: Cá nhân.

(3) Phương tiện dạy học: SGK, Projector, máy tính.

(4) Học sinh có nhu cầu mong muốn được làm các bài tập về kiểu mảng một chiều và kiểu xâu.

Nội dung hoạt động

Hoạt động của giáo viên

Hoạt động của học sinh

- Để ôn lại về khái niệm thế nào là kiểu mảng một chiều, kiểu xâu. Sử dụng kiểu mảng một chiều, kiểu xâu để giải các bài toán đơn giản, hôm nay chúng ta sẽ làm một số bài tập

- Nghe giảng.

  • HOẠT ĐỘNG 2: Hình thành kiến thức

(1) Mục tiêu: Giúp học sinh ôn lại kiến thức về kiêu xâu và kiểu mảng một chiều, giải các bài toán đơn giản.

(2) Phương pháp/kĩ thuật dạy học: Vấn đáp, thuyết trình, đặt vấn đề, phân tích.

(3) Hình thức tổ chức hoạt động: Làm việc cá nhân, nhóm.

(4) Phương tiện dạy học: SGK, Projector, máy tính.

(5) Kết quả: Học sinh nắm được kiến thức đã học, sử dụng kiểu xâu và mảng giải được một số bài toán đơn giản

Nội dung hoạt động

Hoạt động giáo viên

Hoạt động học sinh

Nội dung trình bày

- Xác định input và output

- Thế nào là số chẵn?

- Hàm gì để tính điều kiện chia hết?

- Nếu chia hết thì biến tong tăng bao nhiêu?

- Gọi học sinh lên bảng làm?

- Quan sát

- Gọi học sinh nhận xét

- Nhận xét

- Xác định input và output

- Hàm gì đổi một kí tự thường thành hoa?

- Ta dùng vòng lặp nào và đi từ giá trị bao nhiêu?

- Với mõi lần lặp ta thực hiện câu lệnh gì

- Gọi học sinh lên bảng làm?

- Quan sát

- Gọi học sinh nhận xét

- Nhận xét

- Trả lời: Dãy số, output là tổng chẳn

- Trả lời:số chia hết cho 2

- Trả lời:a[i] mod 2=0

-Trả lời tong:=tong+a[i]

- Một học sinh lên bảng làm

-Nhận xét

-Nghe giảng và ghi bài

- Trả lời:Xâu s, output là xâu kí tự hoa

- Trả lời: upcase

- Trả lời:vong lặp for, 1->length(s)

- Trả lời s[i]:=upcase(s[i])

- Một học sinh lên bảng làm

-Nhận xét

-Nghe giảng và ghi bài

Bài 1. Viết chương trình nhập vào mảng 1 chiều với N phần tử, với N nhập từ bàn phím, sao đó in ra màn hình tổng của số chẵn.

Program Tong_chan;

Uses crt;

Var A: array[1..100] of Integer;

N, tongch, i: Integer;

Begin

Clrscr;

Writeln('Nhap vao N');

Readln(N);

For i:=1 to N do

Begin

Writeln('Nhap vao phan tu thu ', i);

Readln(A[i]);

End;

Tongch:=0;

For i:=1 to N do

If (A[i] mod 2=0) then tongch:=tongch+a[i];

Writeln(‘Tong chan la ', tongch);

Readln;

End.

Bài 2: Viết chương trình nhập xâu bất kỳ. In xâu vừa nhập sau khi đổi tất cả các kí thường thành kí tự hoa?

Program xau_hoa;

Uses crt;

Var s:string;

I:integer;

Begin

Clrscr;

Write(‘nhap xau s:’);

Readln(s);

For i:=1 to length(s) do

S[i]:=upcase(s[i]);

Write(‘xau hoa:’,s);

Readln

End.

  • HOẠT ĐỘNG 3: Hoạt động luyện tập, vận dụng:

(1) Mục tiêu: Giúp học sinh thực hiện được thao tác tạo khai báo, nhập và in mảng một chiều

(2) Phương pháp/kĩ thuật dạy học: Vấn đáp, thuyết trình, đặt vấn đề, phân tích, so sánh,...

(3) Hình thức tổ chức hoạt động: giải bài tập trên bảng

(4) Phương tiện dạy học:SGK, bảng.

(5) Học sinh biết vận dụng kiến thức đã học vào giải quyết tình huống thực tiễn cụ thể.

Nội dung hoạt động

GV yêu cầu HS: Viết chương trình nhập 1 xâu bất kỳ gồm các kí tự từ a đến Z. In ra màn hình kí tự xuất hiện nhiều nhất trong câu.

GV hướng dẫn và kêu một học sinh lên bảng làm bài.

GV nhận xét, giải đáp thắc mắc của học sinh, đưa ra các nhận xét cuối cùng

  • HOẠT ĐỘNG 4: Hoạt động tìm tòi mở rộng:

(1) Mục tiêu: Giúp học sinh có nhu cầu mở rộng thêm kiến thức của mình.

(2) Phương pháp/kĩ thuật dạy học: làm việc cá nhân, nhóm.

(3) Hình thức tổ chức hoạt động: Ngoài lớp học

(4) Phương tiện dạy học: SGK, Projector, máy tính.

(5) Học sinh biết cách mở rộng các kiến thức của mình thông qua bài tập cụ thể.

Nội dung hoạt động

- GV: cho bài tập:

Viết chương trình nhập dãy số nguyên bất kì và một số nguyên k bất kì. Tìm và đếm số lần xuất hiện số k đó trong dãy số vừa nhập.

- HS: làm bài tập GV yêu cầu.

IV. RÚT KINH NGHIỆM ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

Duyệt của tổ trưởng chuyên môn

Lê Thị Lịnh

Tuần: 28 Ngày soạn: 25/02/2018

Tiết: 35 Ngày dạy:05/03/2018 đến 10/03/2018

KIỂM TRA 1 TIẾT THỰC HÀNH.

I. MỤC TIÊU

1. Kiến thức:

- Nắm vững các kiến thức đã học.

- Thực hiện đúng các thao tác mảng, xâu.

- Biết phân tích chương trình.

2. Kĩ năng

- Giải những bài toán từ đơn giản tới phức tạp.

3. Thái độ

- Có thái độ nghiêm túc giờ kiểm tra.

II. CHUẨN BỊ ĐỒ DÙNG DẠY HỌC

- Chuẩn bị của giáo viên: Giáo án, SGK, SGV, máy tính, máy chiếu, bút lông, bảng,…

- Chuẩn bị của học sinh: SGK, tập, viết,…

III. PHƯƠNG PHÁP DẠY HỌC

- Vấn đáp, thuyết trình.

IV. TIẾN TRÌNH LÊN LỚP

  1. Ổn định lớp, kiểm tra sĩ số.
  2. Kiểm tra bài cũ:

3. Nội dung đề kiểm tra

Câu 1. Viết chương trình nhập mảng 1 chiều n phần tử. Tính và in ra màn hình tổng các số lẻ.

Câu 2. Viết chương nhập vào xâu A, sau đó in kí tự đầu tiên và kí tự cuối cùng của xâu

4. Củng cố - dặn dò

a. Củng cố.

- Nắm các thao tác với từng loại kiểu dữ liệu.

b. Dặn dò

- Về xem trước bài kiểu dữ liệu tệp.

5. Rút kinh nghiệm …………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………

Tuần: 29 Ngày soạn: 26/02/2018

Tiết: 36 Ngày dạy:12/03/2018 đến 17/03/2018

BÀI 14. KIỂU DỮ LIỆU TỆP

I. MỤC TIÊU

1. Về kiến thức

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

- Biết hai cách phân loại tệp, khái niệm tệp có cấu trúc và tệp văn bản.

2. Về kĩ năng

- Làm quen với kiểu dữ liệu mới.

3. Về thái độ

- Thái độ nghiêm túc trong học tập.

4. Năng lực hướng tới

II. CHUẨN BỊ

1. Chuẩn bị của giáo viên: Giáo án, sách giáo khoa, sách giáo viên, máy tính, máy chiếu, phông chiếu, bút lông, bảng,…

2. Chuẩn bị của học sinh: Sách giáo khoa, tập, viết,…

III. TỔ CHỨC CÁC HOẠT ĐỘNG HỌC TẬP

1. Ổn định lớp

2. Kiểm tra bài cũ (không)

3. Tiến trình bài học

  • HOẠT ĐỘNG 1: Hoạt động khởi động:

(1) Mục tiêu: Tạo động cơ để học sinh hiểu được kiểu dữ liệu là gì

(2) Phương pháp/kĩ thuật dạy học: Cá nhân

(3) Phương tiện dạy học: SGK, Projector, máy tính.

(4) Học sinh có nhu cầu mong muốn được học kiểu dữ liệu tệp

Nội dung hoạt động

Hoạt động của giáo viên

Hoạt động của học sinh

- Sau khi chạy chương trình ở các bài trước ta thấy kết quả in trên màn hình nhưng muốn sử dụng kết quả đó về sau thì không được. Do đó, ta có kiểu dữ liệu mới là kiểu dữ liệu tệp.

- Nghe giảng.

  • HOẠT ĐỘNG 2: Hình thành kiến thức

(1) Mục tiêu: Giúp học sinh biết được về vai trò kiểu dữ liệu tệp, phân loại và biết được các thao tác với tệp.

(2) Phương pháp/kĩ thuật dạy học: Vấn đáp, thuyết trình, đặt vấn đề, phân tích.

(3) Hình thức tổ chức hoạt động: Làm việc cá nhân.

(4) Phương tiện dạy học: SGK, Projector, máy tính.

(5) Kết quả: Học sinh nắm được vai trò kiểu dữ liệu tệp, phân loại và biết được các thao tác với tệp.

Nội dung hoạt động

Hoạt động giáo viên

Hoạt động học sinh

Nội dung trình bày

(?) Các kiểu dữ liệu trước được lưu trữ ở bộ nhớ nào?

(?) Vậy dữ liệu lưu trên Ram thì khi tắt máy hoặc mất điện thì dữ liệu lưu trữ trong bộ nhớ này sẽ như thế nào?

- Hôm nay ta sẽ tìm hiểu tệp là gì? Có đặc điểm gì?

- Em hãy tìm hiểu trong SGK cho thầy biết vai trò của kiểu dữ liệu tệp?

- Trả lời: lưu trên bộ nhớ Ram.

- Trả lời: dữ liệu sẽ mất.

- Nghe giảng và ghi bài.

- Tham khảo SGK trả lời

1. Vai trò của kiểu tệp

- Dữ liệu kiểu tệp có những đặc điểm sau:
+ Được lưu trữ lâu dài ở bộ nhớ ngoài (đĩa từ, CD, ...) và không bị mất khi tắt nguồn điện;
+ Lượng dữ liệu lưu trữ trên tệp có thể rất lớn và chỉ phụ thuộc vào dung lượng đĩa.

(?) Yêu cầu học sinh đọc SGK và cho biết đặc điểm của kiểu dữ liệu tệp?

- Nhận xét và giảng thêm khái niệm 2 loại tệp.

- Hướng dẫn học sinh hai cách truy cập tệp.

- Giới thiệu cho học sinh biết hai thao tác cơ bản khi làm việc với tệp là ghi dữ liệu vào tệp và đọc dữ liệu từ tệp.

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

- Nghe giảng và ghi bài.

- Ghi bài.

- Nghe giảng và ghi bài.

2. Phân loại tệp và thao tác với tệp

Tệp được phân loại theo hai cách:
- Theo cách tổ chức dữ liệu:

+ Tệp văn bản;
+ Tệp có cấu trúc.

- Theo cách thức truy cập:
+ Tệp truy cập tuần tự;
+ Tệp truy cập trực tiếp.

- Không cần biết số lượng phần tử trước.

- Hai thao tác cơ bản đối với tệp là ghi dữ liệu vào tệp và đọc dữ liệu từ tệp. Nhưng người lập trình biết cách thức mà ngôn ngữ lập trình cung cấp:

+ Khai báo biến tệp;

+ Mở tệp;

+ Đọc/ghi dữ liệu;

+ Đóng tệp.

  • HOẠT ĐỘNG 3: Hoạt động luyện tập, vận dụng:

(1) Mục tiêu: Giúp học sinh biết được vai trò kiểu tệp, phân loại tệp và biết các thao tác với tệp

(2) Phương pháp/kĩ thuật dạy học: Vấn đáp, thuyết trình, đặt vấn đề, phân tích, so sánh,...

(3) Hình thức tổ chức hoạt động: giải bài tập trên bảng

(4) Phương tiện dạy học:SGK, bảng.

(5) Học sinh biết vận dụng kiến thức đã học vào giải quyết tình huống thực tiễn cụ thể.

Nội dung hoạt động

GV yêu cầu HS: Trả lời các câu trắc nghiệm sau:

Câu 1: Cữ liệu kiểu tệp

    1. được lưu trữ trên ROM.
    2. được lưu trữ trên RAM.
    3. chỉ được lưu trữ trên đĩa cứng.
    4. được lưu trữ trên bộ nhớ ngoài.

Câu 2: Dữ liệu kiểu tệp

A. sẽ bị mất hết khi tắt máy.

B. sẽ bị mất hết khi tắt điện đột ngột.

C. không bị mất khi tắt máy hoặc mất điện.

D. cả A, B, C đều sai.

Câu 3: Phát biểu nào dưới đây là đúng ?

A. Các kiểu dữ liệu đều được lưu trữ ở bộ nhớ trong (RAM).

B. Dữ liệu kiểu tệp được lưu trữ ở bộ nhớ trong.

C. Dữ liệu kiểu tệp được lưu trữ ở bộ nhờ ngoài (đĩa mềm, đĩa cứng, CD, thiết bị nhớ Flash).

D. Các dữ liệu trong máy tính đều bị mất đi khi tắt nguồn điện.

GV hướng dẫn và cho các em thảo luận.

GV gọi các nhóm trả lời.

GV nhận xét, giải đáp thắc mắc của học sinh, đưa ra các nhận xét cuối cùng

  • HOẠT ĐỘNG 4: Hoạt động tìm tòi mở rộng:

(1) Mục tiêu: Giúp học sinh có nhu cầu mở rộng thêm kiến thức của mình.

(2) Phương pháp/kĩ thuật dạy học: làm việc cá nhân, nhóm.

(3) Hình thức tổ chức hoạt động: Ngoài lớp học

(4) Phương tiện dạy học:SGK, Projector, máy tính.

(5) Học sinh biết cách mở rộng các kiến thức của mình thông qua bài tập cụ thể.

Nội dung hoạt động

- GV: cho bài tập:

Câu 1: Phát biểu nào sau đây là sai ?

  1. Tệp có cấu trúc là tệp mà các thành phần của nó được tổ chức theo một cấu trúc nhất định.
  2. Tệp chứa dữ liệu được tổ chức theo một cách thức nhất định gọi là tệp có cấu trúc.
  3. Tệp văn bản không thuộc loại tệp có cấu trúc.
  4. Tệp văn bản gồm các kí tự theo mã ASCII được phân chia thành một hay nhiều dòng.

Câu 2: Phát biểu nào sau đây là sai ?

  1. Có thể truy cập trực tiếp tệp văn bản.
  2. Tệp có cấu trúc có thể truy cập trực tiếp.
  3. Tệp có cấu trúc có thể truy cập tuần tự.
  4. Truy cập trực tiếp là cách truy cập cho phép tham chiếu đến dữ liệu cần truy cập bằng cách xác định trực tiếp vị trí (thường là số hiệu) của dữ liệu đó.

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

  1. Số lượng phần tử của tệp là cố định.
  2. Kích thước tệp có thể rất lớn.
  3. Dữ liệu một tệp được lưu trữ trên đĩa thành một vùng dữ liệu liên tục.
  4. Tệp lưu trữ lâu dài trên đĩa, không thể xóa tệp trên đĩa.

- HS: làm bài tập GV yêu cầu.

- Gv: học bài và xem trước bài 15

IV. RÚT KINH NGHIỆM ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

Duyệt của tổ trưởng chuyên môn Giáo viên soạn

Lê Thị Lịnh Lê Minh Tâm

Tuần: 29 Ngày soạn: 26/02/2018

Tiết: 37 Ngày dạy:12/03/2018 đến 17/03/2018

BÀI 15. THAO TÁC VỚI TỆP

I. MỤC TIÊU

1. Về kiến thức

- Biết khai báo biến tệp và gắn tên tệp.

2. Về kĩ năng

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

- Thao tác đúng gắn tên tệp

3. Về 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.

4. Năng lực hướng tới

- Khai báo biến dữ liệu hợp lý.

II. CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH

1. Chuẩn bị của giáo viên: Giáo án, sách giáo khoa, sách giáo viên, máy tính, máy chiếu, phông chiếu, bút lông, bảng,…

2. Chuẩn bị của học sinh: Sách giáo khoa, tập, viết,…

III. TỔ CHỨC CÁC HOẠT ĐỘNG HỌC TẬP

1. Ổn định lớp

2. Kiểm tra bài cũ (không)

3. Tiến trình bài học

  • HOẠT ĐỘNG 1: Hoạt động khởi động:

(1) Mục tiêu: Tạo động cơ để học sinh hiểu được cách sử dụng và khai báo được biến tệp.

(2) Phương pháp/kĩ thuật dạy học: Cá nhân, thảo luận nhóm.

(3) Phương tiện dạy học: SGK, Projector, máy tính.

(4) Học sinh có nhu cầu mong muốn được học cách khai báo biến tệp

Nội dung hoạt động

Hoạt động của giáo viên

Hoạt động của học sinh

- Giới thiệu cấu trúc chung của khai báo biến tệp và giải thích, cũng giống như các kiểu dữ liệu khác để có thể hiểu được thì chúng ta cần khai báo.

Nghe giảng

  • HOẠT ĐỘNG 2: Hình thành kiến thức

(1) Mục tiêu: Giúp học sinh biết được cách khai báo mảng một chiều, hiểu cách gắn tên tệp.

(2) Phương pháp/kĩ thuật dạy học: Vấn đáp, thuyết trình, đặt vấn đề, phân tích.

(3) Hình thức tổ chức hoạt động: Làm việc cá nhân.

(4) Phương tiện dạy học: SGK, Projector, máy tính.

(5) Kết quả: Học sinh nắm được cách khai báo biến mảng một chiều, gắn tên tệp

Nội dung hoạt động

Hoạt động giáo viên

Hoạt động học sinh

Nội dung trình bày

(?) Vậy em nào có thể cho thầy biết dạng của khai báo biến tệp văn bản?

- Nhận xét, vậy bạn nào có thể cho một ví dụ về khai báo kiểu biến tệp?

- Cho một số ví dụ giúp học sinh hiểu thêm kiểu dữ liệu mới.

- Nghe giảng và quan sát.

- Trả lời: var <tên biến tệp>: text;

- Trả lời: Var a: text;

- Ghi bài.

1. Khai báo

Khai báo biến tệp văn bản có dạng:
Var <tên biến tệp>: text;
Ví dụ: Var f: text;

- Các thao tác với tệp chia thành bốn nhóm:

+ Gắn tên tệp;

+ Mở tệp;

+ Đọc/ghi tệp;

+ Đóng tệp;

- Để thao tác với tệp, trước hết phải gắn tên tệp cho biến tệp bằng câu lệnh:

Assign (<tên biến tệp>, <tên tệp>);

- Trong đó tên tệp là biến xâu hoặc hằng xâu.

(?) VD1: Giả thiết có biến xâu myfile và cần gắn biến tệp f với tệp có tên DULIEU.DAT. Việc gắn tên tệp được thực hiện bằng các câu lệnh?

- Nhận xét và giải thích thêm ví dụ, đặc biệt là ví dụ 2 đọc trên thư mục gốc của đĩa D.

(?) VD2: Để chuẩn bị thao tác với tệp có tên KQ.DAT ở ổ đĩa C ta dùng các câu lệnh nào để gắn nó với tệp tep2?.

- Nghe giảng.

- Nghe giảng và ghi bài.

- Suy nghĩ và trả lời:

myfie:='DULIEU.DAT';
assign (f, myfile);
hoặc assign (f, 'DULIEU.DAT');

- Ghi ví dụ.

- Suy nghĩ và trả lời câu hỏi của giáo viên.

2. Thao tác với tệp

a/ Gắn tên tệp

- Để thao tác với tệp, trước hết phải gắn tên tệp cho biến tệp bằng câu lệnh:

assign (<tên biến tệp>, <tên tệp>);

- Trong đó tên tệpbiến xâu hoặc hằng xâu.

Ví dụ 1:

myfie:='DULIEU.DAT';
assign (f, myfile);
hoặc assign (f, 'DULIEU.DAT');

Ví dụ 2:
assign(tep2, 'C:\KQ.DAT');

  • HOẠT ĐỘNG 3: Hoạt động luyện tập, vận dụng:

(1) Mục tiêu: Giúp học sinh thực hiện được thao tác khai báo biến tệp và gắn tên tệp

(2) Phương pháp/kĩ thuật dạy học: Vấn đáp, thuyết trình, đặt vấn đề, phân tích, so sánh,...

(3) Hình thức tổ chức hoạt động: giải bài tập trên bảng

(4) Phương tiện dạy học:SGK, bảng.

(5) Học sinh biết vận dụng kiến thức đã học vào giải quyết tình huống thực tiễn cụ thể.

Nội dung hoạt động

GV yêu cầu HS: Trả lời các câu hỏi trắc nghiệm

Câu 1. Để thao tác với tệp?

  1. Ta có thể gắn tên tệp cho biến tệp, hoặc sử dụng trực tiếp tên tệp cũng được.
  2. Ta nên sử dụng trực tiếp tên tệp trong chương trình.
  3. Ta nhất thiết phải gắn tên tệp cho biến tệp.
  4. Ta nhất thiết phải sử dụng trực tiếp tên tệp trong chương trình.

Câu 2. Trong Pascal, để khai báo hai biến tệp văn bản f1, f2 ta viết?

  1. Var f1; f2: text
  2. Var f1, f2: text
  3. Var f1 f2: text
  4. Var f1: f2: text

GV hướng dẫn và cho các em thảo luận.

GV gọi các nhóm trả lời.

GV nhận xét, giải đáp thắc mắc của học sinh, đưa ra các nhận xét cuối cùng

  • HOẠT ĐỘNG 4: Hoạt động tìm tòi mở rộng:

(1) Mục tiêu: Giúp học sinh có nhu cầu mở rộng thêm kiến thức của mình.

(2) Phương pháp/kĩ thuật dạy học: làm việc cá nhân, nhóm.

(3) Hình thức tổ chức hoạt động: Ngoài lớp học

(4) Phương tiện dạy học:SGK, Projector, máy tính.

(5) Học sinh biết cách mở rộng các kiến thức của mình thông qua bài tập cụ thể.

Nội dung hoạt động

- GV: cho bài tập: Hãy khai báo một biến tệp tep1 và gắn với tên tệp là ‘C:\dulieu.dat’

- HS: làm bài tập GV yêu cầu.

- Gv: học bài và xem trước phần 2.b, 2.c, 2.d

IV. RÚT KINH NGHIỆM ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

Duyệt của tổ trưởng chuyên môn Giáo viên soạn

Lê Thị Lịnh Lê Minh Tâm

Tuần: 30 Ngày soạn: 05/03/2018

Tiết: 38 Ngày dạy:19/03/2018 đến 24/03/2018

BÀI 15. THAO TÁC VỚI TỆP (tiết 2)

I. MỤC TIÊU

1. Về kiến thức

- Biết các thao tác cơ bản với tệp văn bản.

- Biết sử dụng một số hàm và thủ tục chuẩn làm việc với tệp.

2. Về kĩ năng

- Sử dụng một số hàm và thủ tục chuẩn làm việc với tệp.

3. Về 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.

4. Năng lực hướng tới:

- Năng lực tự học, năng lực giải quyết vấn đề.

II. CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH

1. Chuẩn bị của giáo viên: Giáo án, sách giáo khoa, sách giáo viên, máy tính, máy chiếu, phông chiếu, bút lông, bảng,…

2. Chuẩn bị của học sinh: Sách giáo khoa, tập, viết,…

III. TỔ CHỨC CÁC HOẠT ĐỘNG HỌC TẬP

1. Ổn định lớp

2. Kiểm tra bài cũ (không)

3. Tiến trình bài học

  • HOẠT ĐỘNG 1: Hoạt động khởi động:

(1) Mục tiêu: Tạo động cơ để học sinh hiểu được các thao tác với kiểu dữ liệu tệp

(2) Phương pháp/kĩ thuật dạy học: Cá nhân, thảo luận nhóm.

(3) Phương tiện dạy học: SGK, Projector, máy tính.

(4) Học sinh có nhu cầu mong muốn được học cách khai báo biến tệp

Nội dung hoạt động

Hoạt động của giáo viên

Hoạt động của học sinh

Ta đã tìm hiểu vai trò kiểu dữ liệu và cách khai báo một biến biến tệp. Hôm nay chúng ta sẽ tìm hiểu để mở một tệp ta phải dùng thủ tục như thế nào và cách ghi và đọc dữ kiệu đối với một tệp mà ta muốn thao tác như thế nào ?

Nghe giảng

  • HOẠT ĐỘNG 2: Hình thành kiến thức

(1) Mục tiêu: Giúp học sinh biết được khái niệm về mảng một chiều, cách khai báo mảng một chiều, hiểu cách nhập và in mảng một chiều.

(2) Phương pháp/kĩ thuật dạy học: Vấn đáp, thuyết trình, đặt vấn đề, phân tích.

(3) Hình thức tổ chức hoạt động: Làm việc cá nhân.

(4) Phương tiện dạy học: SGK, Projector, máy tính.

(5) Kết quả: Học sinh nắm được khái niệm về bảng, cách khai báo biến mảng một chiều, hiểu cách nhập và in mảng một chiều, hiểu được một số ví dụ giải bài toán về mảng một chiều.

Nội dung hoạt động

Hoạt động giáo viên

Hoạt động học sinh

Nội dung trình bày

- Tệp có thể dùng để chứa kết quả ra hoặc dữ liệu vào. Trước khi mở tệp, biến tệp phải được gắn tên tệp bằng thủ tục assign.

- Câu lệnh dùng thủ tục mở tệp để ghi dữ liệu có dạng:

Rewrite(<biến tệp>);

- Khi thực hiện lệnh rewrite(f), Nếu như trên ổ D:\TP chưa có tệp BAITAP.INP, thì tệp sẽ được tạo rỗng. Nếu đã có, thì nội dung cũ bị xoá để chuẩn bị ghi dữ liệu mới.

- Tương tự như vậy để đọc được nội dung của tệp ta cần có thủ tục mở tệp.

(?) Vậy các em hãy đọc sách giáo khoa và cho biết thủ tục là gì?

- Nhận xét.

- Nếu tệp được mở bằng thủ tục reset thì có thể đọc thông tin của tệp, ta sẽ tìm hiểu việc đọc/ghi tệp văn bản như thế nào?

(?) Việc đọc tệp văn bản được thực hiện giống như nhập từ bàn phím. Các em hãy cho biết để nhập từ bàn phím lúc trước ta dùng thủ tục gì?

- Đối với tệp ta cũng dùng thủ tục read hoặc readln nhưng nhưng ở đây có thêm biến tệp.

- Để hiểu rỏ cách đọc như thế nào chúng ta xét ví dụ sau:

Lệnh đọc giá trị từ tệp gắn với biến tệp f và gán cho biến x1, y1.

Myfile(‘D:\DL.INP’);

Assign(f, myfile);

Reset(f);

Readln(f, x1, y1);

- Các em chú ý trước tiên đọc tệp ta cần mở tệp và các biến được ngăn cách dấu phẩy.

- Cũng tương tự như vậy để ghi dữ liệu ra tệp ta sẽ dùng thủ tục write hoặc writeln, khi thực thi chương trình sẽ thì kết quả sẽ được ghi vào tệp.

- Đối với ngôn ngữ lập trình Pascal để đọc/ghi tệp văn bản ta có một số hàm chuẩn thường dùng như: eof eoln.

- Sau khi làm việc xong với tệp cần phải đóng tệp. Việc đóng tệp là đặc biệt quan trọng sau khi ghi thông tin vào tệp, vậy đóng tệp như thế nào chúng ta sẽ tìm hiểu mục d.

- Câu lệnh dùng thủ tục đóng tệp có dạng: close(<biến tệp>);, sau khi đóng tệp chúng ta có thể được mở lại, lưu ý lúc này chúng ta không dùng assign nữa.

- Các em hãy xem hình 16 xem các thao tác với tệp được thực hiện theo trình tự nhất định.

- Nghe giảng và ghi bài.

- Trả lời: ta có thủ tục reset.

- Nghe giảng và ghi bài.

- Trả lời: ta viết read(<danh sách các biến>);

- Nghe giảng và ghi bài.

- Nghe giảng.

- Nghe giảng và ghi ví dụ.

- Ghi bài.

- Ghi ý nghĩa của 2 hàm.

- Nghe giảng và ghi bài.

- Nghe giảng và ghi bài.

2. Thao tác với tệp
b/ Mở tệp
- Câu lệnh dùng thủ tục mở tệp để ghi dữ liệu có dạng:

Rewrite(<biến tệp>);
Ví dụ 1:
myfile:='D:\TP\BAITAP.INP';
assign (f, myfile);
rewrite(f);

- Mở tệp để đọc bằng thủ tục:

Reset(<biến tệp>);

Ví dụ: assign(tep1, ’DL.INP’);

Reset(tep1);

c/ Đọc/ghi tệp văn bản

Câu lệnh dùng thủ tục đọc có dạng:

+ Read(<biến tệp>, <danh sách biến>);

Hoặc

+ Readln(<biến tệp>, <danh sách biến>);

Trong đó: danh sách biếnmột hoặc nhiều tên biến đơn, các biến phải ngăn cách nhau dấu phẩy.

Ví dụ:

Myfile(‘D:\DL.INP’);

Assign(f, myfile);

Reset(f);

Readln(f, x1, y1);

Câu lệnh dùng thủ tục ghi có dạng:

+ Write(<biến tệp>, <danh sách kết quả>);

Hoặc

+ Writeln(<biến tệp>, <danh sách kết quả>);

Trong đó: danh sách kết quả có thể là một hoặc nhiều phần tử, các phần tử có thể là biến đơn hoặc biểu thức (số học, quan hệ hoặc logic) hoặc hằng xâu, các phần tử được ngăn cách nhau bởi dấu phẩy.

Ví dụ:

Myfile(‘D:\DULIEU.DAT’);

Assign(f, myfile);

Rewrite(f);

Writeln(f, a, b);

+ Hàm eof(<biến tệp>) trả về true nếu con trỏ tệp đang chỉ tới cuối tệp.

+ Hàm eoln(<biến tệp>) trả về true nếu con trỏ tệp đang chỉ tới cuối dòng.

d/ Đóng tệp

Câu lệnh dùng thủ tục đóng tệp có dạng: Close(<biến tệp>);

Ví dụ: Close(tep1);

Close(tep2);

  • HOẠT ĐỘNG 3: Hoạt động luyện tập, vận dụng:

(1) Mục tiêu: Giúp học sinh thực hiện được thao tác tạo khai báo, nhập và in mảng một chiều

(2) Phương pháp/kĩ thuật dạy học: Vấn đáp, thuyết trình, đặt vấn đề, phân tích, so sánh,...

(3) Hình thức tổ chức hoạt động: giải bài tập trên bảng

(4) Phương tiện dạy học:SGK, bảng.

(5) Học sinh biết vận dụng kiến thức đã học vào giải quyết tình huống thực tiễn cụ thể.

Nội dung hoạt động

GV yêu cầu HS: Trả lời các câu trắc nghiệm

Câu 1. Thủ tục rewrite(<tên biến tệp>) là thủ tục?

  1. Mở tệp để ghi dữ liệu
  2. Đóng tệp
  3. Đọc dữ liệu từ tệp
  4. Ghi dữ liệu vào tệp

Câu 2. Thủ tục reset(<tên biến tệp>) là thủ tục?

  1. Mở tệp để đọc dữ liệu
  2. Đóng tệp
  3. Đọc dữ liệu từ tệp
  4. Ghi dữ liệu vào tệp

Câu 3 Hãy chọn thứ tự hợp lý nhất khi thực hiện các thao tác đọc dữ liệu từ tệp?

  1. Mở tệp => Đọc dữ liệu từ tệp => Gắn tên tệp với biến tệp => Đóng tệp.
  2. Gắn tên tệp với biến tệp => Đọc dữ liệu từ tệp => Mở tệp => Đóng tệp
  3. Mở tệp => Gắn tên tệp với biến tệp => Đọc dữ liệu từ tệp => Đóng tệp
  4. Gắn tên tệp với biến tệp => Mở tệp => Đọc dữ liệu từ tệp => Đóng tệp

Câu 4. Thao tác ghi trên tệp văn bản chứa dữ liệu là?

  1. Thông báo mở tệp để đọc 🡪 Đọc dữ liệu trong tệp 🡪 Đóng tệp 🡪 Gắn biến tệp với tên tệp.
  2. Gắn biến tệp với tên tệp 🡪 Thông báo mở tệp để ghi dữ liệu mới 🡪 Ghi dữ liệu mới 🡪 Đóng tệp.
  3. Thông báo mở tệp để đọc 🡪 Đọc dữ liệu trong tệp 🡪 Đóng tệp 🡪 Gắn biến tệp với tên tệp.

D. Gắn biến tệp với tên tệp 🡪 Thông báo mở tệp để ghi dữ liệu mới 🡪 Đọc dữ liệu trong tệp 🡪 Đóng tệp.

GV hướng dẫn và cho các em thảo luận.

GV gọi các nhóm trả lời.

GV nhận xét, giải đáp thắc mắc của học sinh, đưa ra các nhận xét cuối cùng

  • HOẠT ĐỘNG 4: Hoạt động tìm tòi mở rộng:

(1) Mục tiêu: Giúp học sinh có nhu cầu mở rộng thêm kiến thức của mình.

(2) Phương pháp/kĩ thuật dạy học: làm việc cá nhân, nhóm.

(3) Hình thức tổ chức hoạt động: Ngoài lớp học

(4) Phương tiện dạy học:SGK, Projector, máy tính.

(5) Học sinh biết cách mở rộng các kiến thức của mình thông qua bài tập cụ thể.

Nội dung hoạt động

- GV: cho bài tập: Với một biến tệp tep1 đã được gắn ten tệp. Em hãy viết cú pháp mở tệp để ghi cho tep1 và ghi vào tep1 một với nội dung là ‘Bai ve kieu tep’

- HS: làm bài tập GV yêu cầu.

- Gv: học bài và xem trước bài 16 ví dụ làm việc với tệp.

IV. RÚT KINH NGHIỆM ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

Duyệt của tổ trưởng chuyên môn Giáo viên soạn

Lê Thị Lịnh Lê Minh Tâm

Tuần: 30+31 Ngày soạn: 05/03/2018

Tiết: 39+40 Ngày dạy:19/03/2018 đến 31/03/2018

BÀI 16. VÍ DỤ LÀM VIỆC VỚI TỆP

I. MỤC TIÊU

1. Về kiến thức

- Biết các bước làm việc với tệp: gán tên cho biến tệp, mở tệp, đọc/ghi tệp, đóng tệp.
- Biết một số hàm và thủ tục chuẩn làm việc với tệp.

2. Về kĩ năng

- Hình thành kỹ năng về các thao tác cơ bản khi làm việc với tệp như: mở tệp, gán tên tệp cho biến tệp, đọc/ghi dữ liệu cho biến tệp, đóng tệp.

3. Về thái độ

- Có thái độ nghiêm túc trong học tập.

- 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.

4. Năng lực hướng tới

- Giải quyết vấn đề, thảo luận nhóm, suy luận.

II. CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH

1. Chuẩn bị của giáo viên: Giáo án, sách giáo khoa, sách giáo viên, máy tính, máy chiếu, phông chiếu, bút lông, bảng,…

2. Chuẩn bị của học sinh: Sách giáo khoa, tập, viết,…

III. TỔ CHỨC CÁC HOẠT ĐỘNG HỌC TẬP

    1. Ổn định lớp, kiểm tra sĩ số
    2. Kiểm tra bài cũ:

Câu 1: Nêu đặc điểm của kiểu tệp?
Câu 2:
- Viết khai báo biến tệp với tên biến tệp là f.
- Gắn tên tệp ‘D:\ViDu.txt’ cho biến tệp f.
- Mở tệp để đọc dữ liệu.
- Đọc dữ liệu từ tệp ‘D:\ViDu.txt’ vào 2 biến x, y.
- Đóng tệp.
Câu 3:
- Viết khai báo biến tệp với tên biến tệp là f.
- Gắn tên tệp ‘D:\Ketqua.txt’ cho biến tệp f.
- Mở tệp để ghi dữ liệu.
- Ghi dữ liệu là s1, s2 vào tệp ‘D:\Ketqua.txt’.
- Đóng tệp.

    1. Nội dung bài mới:
      • HOẠT ĐỘNG 1: Hoạt động khởi động:

(1) Mục tiêu: Tạo động cơ để học sinh muốn tìm hiểu một số ví dụ làm việc với tệp

(2) Phương pháp/kĩ thuật dạy học: Cá nhân, thảo luận nhóm.

(3) Phương tiện dạy học: SGK, Projector, máy tính.

(4) Học sinh có nhu cầu mong muốn tìm hiểu một số ví dụ làm việc với tệp

Nội dung hoạt động

Hoạt động của giáo viên

Hoạt động của học sinh

- Trong tiết học trước các em đã được làm quen với kiểu dữ liệu tệp cũng như các thao tác với tệp như là: Khai báo tệp, gán tên tệp, mở tệp, đọc/ghi dữ liệu vào tệp, đóng tệp. Để hiểu rõ hơn các thao tác làm việc với tệp văn bản chúng ta sẽ đi xét một vài ví dụ cụ thể trong bài 16.

- Nghe giảng

  • HOẠT ĐỘNG 2: Hình thành kiến thức

(1) Mục tiêu: Giúp học sinh biết được một số ví dụ bài tập về kiểu tệp

(2) Phương pháp/kĩ thuật dạy học: Vấn đáp, thuyết trình, đặt vấn đề, phân tích.

(3) Hình thức tổ chức hoạt động: Làm việc cá nhân.

(4) Phương tiện dạy học: SGK, Projector, máy tính.

(5) Kết quả: Học sinh nắm được một số ví dụ bài tập về kiểu tệp

Nội dung hoạt động

Hoạt động giáo viên

Hoạt động học sinh

Nội dung trình bày

- Yêu cầu học sinh đọc ví dụ 1 trong sách giáo khoa và yêu cầu học sinh xác định Input và Output của ví dụ.

- Nhận xét kết quả trả lời của học sinh, nhận định lại Input: Tọa độ trại hiệu trưởng (0, 0); Tệp TRAI.TXT với các cặp số nguyên (x, y) liên tiếp. Output: Khoảng cách giữa trại mỗi lớp với trại của hiệu trưởng.

- Các em hãy cho biết công thức tính khoảng cách của 2 điểm với tọa độ biết trước?

(?) Theo yêu cầu của để bài thì chúng ta thực hiện đọc tệp hay ghi tệp?

- Sao khi đọc nội dung tệp chúng ta tiến hành tính khoảng cách rồi in ra màn hình khoảng cách của từng trại đối với trại hiệu trưởng.

- Từng bước hướng dẫn học sinh cách viết chương trình.

- Đọc ví dụ và xác định Input và Output.

- Trả lời: , với

- Trả lời: đọc nội dụng của tệp TRAI.TXT.

- Quan sát và viết chương trình vào tập.

1. Ví dụ 1

Program Khoang_cach;
Var d: real;
f: text;
x, y: integer;
Begin
Assign (f, ’D:\TRAI.TXT’);
Reset (f);
While not eof (f) do
Begin
Read (f, x, y);
D:= Sqrt (x*x+y*y);
Writeln (‘Khoang cach:’ , d: 10: 2);
End;
Close (f);

Readln;

End.

- Hôm nay chúng ta sẽ tìm hiểu lại cách tính điện trở của một số mạch điện. Yêu cầu học sinh đọc ví dụ.

- Hướng dẫn cách tính điện trở cho từng trường hợp cụ thể.

(?) Đối với ví dụ này thì chúng ta sẽ thực hiện các thao tác nào?

- Nhận xét, để thực hiện ghi tệp chúng ta cần tính được điện trở tương đương rồi mới ghi vào RESIST.EQU. Hướng dẫn cách đọc dữ liệu từ tệp RESIST.DAT và cách ghi ra tệp như thế nào.

- Hướng dẫn cách viết chương trình.

- Đọc ví dụ sách giáo khoa.

- Nghe giảng.

- Trả lời: thực hiện mở tệp để đọc và mở tệp để ghi.

- Nghe giảng.

- Viết chương trình vào tập.

2. Ví dụ 2

Program Dien_tro;

Var a: array[1..5] of real;

R1, R2, R3: real;

f1, f2: text;

i: integer;

Begin

Assign (f1,‘RESIST.DAT’);

Reset(f1);

Assign(f2,‘RESIST.EQU’);

Rewrite(f2);

While not eof(f1) do

Begin

Readln(f1, R1, R2, R3);

a[1] := R1*R2*R3 / (R1*R2+R1*R3+R2*R3);

a[2]:=R1*R2/(R1+R2)+R3;

a[3]:=R1*R3/(R1+R3)+R2;

a[4]:=R2*R3/(R2+R3)+R1;

a[5]:=R1+R2+R3;

For i:=1 to 5 do write(f2, a[i]: 9: 3, ‘ ‘);

Writeln(f2);

End;

Close (f1);

Close (f2);

End.

  • HOẠT ĐỘNG 3: Hoạt động luyện tập, vận dụng:

(1) Mục tiêu: Giúp học sinh thực hiện được thao tác tạo khai báo, nhập và in mảng một chiều

(2) Phương pháp/kĩ thuật dạy học: Vấn đáp, thuyết trình, đặt vấn đề, phân tích, so sánh,...

(3) Hình thức tổ chức hoạt động: giải bài tập trên bảng

(4) Phương tiện dạy học:SGK, bảng.

(5) Học sinh biết vận dụng kiến thức đã học vào giải quyết tình huống thực tiễn cụ thể.

Nội dung hoạt động

GV yêu cầu HS: Hãy cho biết kết quả của đoạn chương trình sau:

Program VD_bt1_txt ;

Uses crt ;

Var f : text ;

Begin

Clrscr;

Assign(f, ‘BT1.TXT ’) ;

Rewrite(f) ;

Write(f, 123 + 456) ;

Close(f) ;

End .

GV gọi một học sinh trả lời.

GV nhận xét, giải đáp thắc mắc của học sinh, đưa ra các nhận xét cuối cùng

  • HOẠT ĐỘNG 4: Hoạt động tìm tòi mở rộng:

(1) Mục tiêu: Giúp học sinh có nhu cầu mở rộng thêm kiến thức của mình.

(2) Phương pháp/kĩ thuật dạy học: làm việc cá nhân, nhóm.

(3) Hình thức tổ chức hoạt động: Ngoài lớp học

(4) Phương tiện dạy học:SGK, Projector, máy tính.

(5) Học sinh biết cách mở rộng các kiến thức của mình thông qua bài tập cụ thể.

Nội dung hoạt động

- GV: cho bài tập:Hãy cho biết nội dung của đoạn chương trình sau viết với mục đích gì?

Program Vi_Du ;

Uses crt ;

Var f : text ; ch : char ; tenfile : string[30] ;

Begin

Write(‘ Nhap ten file : ’) ; readln(tenfile) ;

Assign(f, tenfile) ; Reset(f) ;

While not eof(f) do

Begin

Read(f, ch) ;

Write(ch) ;

End ;

Close(f) ;

End.

- HS: làm bài tập GV yêu cầu.

- GV: Về xem lại cách viết chương trình và xem trước phần câu hỏi và bài tập cuối chương V.

IV. RÚT KINH NGHIỆM ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

Duyệt của tổ trưởng chuyên môn Giáo viên soạn

Lê Thị Lịnh Lê Minh Tâm

Tuần: 31 Ngày soạn: 12/03/2018

Tiết: 41 Ngày dạy:26/03/2018 đến 31/03/2018

CÂU HỎI VÀ BÀI TẬP CHƯƠNG V (trang 89)

I. MỤC TIÊU

1. Về kiến thức

- Biết được lợi ích của việc sử dụng tệp trong ngôn ngữ lập trình pascal.
- Cần ghi nhớ và thực hiện các thao tác với tệp cho phù hợp và chính xác.

2. Về kĩ năng

Hình khả năng phân tích một số ví dụ về tệp, để thực hiện thao tác chính xác.

3. Về thái độ

- Có thái độ nghiêm túc trong học tập.

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

4. Năng lực hướng tới

- Giải quyết vấn đề, hoạt động nhóm.

II. CHUẨN BỊ

1. Chuẩn bị của giáo viên: Giáo án, sách giáo khoa, sách giáo viên, máy tính, máy chiếu, phông chiếu, bút lông, bảng,…

2. Chuẩn bị của học sinh: Sách giáo khoa, tập, viết,…

III. HOẠT ĐỘNG DẠY VÀ HỌC

1. Ổn định lớp, kiểm tra sĩ số

2. Kiểm tra bài cũ: không.

3. Tiến trình bày học

  • HOẠT ĐỘNG 1: Hoạt động khởi động:

(1) Mục tiêu: Tạo động cơ để học sinh hiểu được cách thao tác kiểu dữ liệu tệp

(2) Phương pháp/kĩ thuật dạy học: Cá nhân.

(3) Phương tiện dạy học: SGK, Projector, máy tính.

(4) Học sinh có nhu cầu mong muốn được học cách sử dụng kiểu mảng một chiều để giải các bài toán.

Nội dung hoạt động

Hoạt động của giáo viên

Hoạt động của học sinh

- Các tiết rồi chúng ta vừa tìm hiểu các thao tác và thực hành với tệp, hôm nay chúng ta sẽ nhắc lại vì sao tệp có những ưu điểm như vậy.

- Nghe giảng

  • HOẠT ĐỘNG 2: Hình thành kiến thức

(1) Mục tiêu: Giúp học sinh biết rõ hơn về vai trò của kiểu tệp.

(2) Phương pháp/kĩ thuật dạy học: Vấn đáp, thuyết trình, đặt vấn đề, phân tích.

(3) Hình thức tổ chức hoạt động: Làm việc cá nhân.

(4) Phương tiện dạy học: SGK, Projector, máy tính.

(5) Kết quả: Học sinh nắm được rõ hơn về vai trò kiểu dữ liệu tệp.

Nội dung hoạt động

Hoạt động giáo viên

Hoạt động học sinh

Nội dung trình bày

- Các tiết rồi chúng ta vừa tìm hiểu các thao tác và thực hành với tệp, hôm nay chúng ta sẽ nhắc lại vì sao tệp có những ưu điểm như vậy.

(?) Các em hãy đọc sách giáo khoa và trả lời câu 1 trang 89 sách giáo khoa?

- Để khắc phục sự cố và hạn chế khả năng lưu trữ dữ liệu của các dữ liệu trước, thì đối với tệp thì chúng ta có thể lưu trữ dữ liệu lớn, và được lưu trữ lâu dài, không phải sợ tắt máy hay mất điện đột ngột.

(?) Các em hãy quan sát sơ đồ trang 86 kể các thao tác cần ghi dữ liệu ra tệp?

- Nhận xét, nhắc lại các thao tác.

(?) Vì sao chúng ta cần phải mở tệp trước khi đọc/ghi tệp?

- Nhận xét, đó là 2 thao tác quan trọng khi lập trình Pascal.

(?) Công việc cuối cùng khi thao tác với tệp là gì?

- Vậy tác dụng của việc đóng tệp là gì?

- Nghe giảng.

- Đọc sách giáo khoa và suy nghĩ trả lời.

- Nghe giảng và ghi bài.

- Quan sát và trả lời.

- Ghi bài.

- Trả lời: để xác định thao tác đó là mở để đọc hay mở để ghi vào tệp.

- Ghi bài.

- Trả lời: ta thực hiện đóng tệp.

Câu 1. Nêu một số trường hợp cần phải dùng tệp?

Một số trường hợp cần thiết khi dùng tệp:

+ Lưu trữ thông tin lớn;

+ Được lưu trữ và sử dụng lâu dài.

Câu 2. Các thao tác khi ghi dữ liệu ra tệp

+ Gắn tên tệp;

+ Dùng thủ tục mở tệp (rewrite);

+ Ghi tệp;

+ Đóng tệp.

Câu 3. Cần phải mở tệp trước khi đọc/ghi vì

- Ta phải sử dụng câu lệnh mở tệp để trình dịch biết thực hiện mục đích mở tệp để đọc hay ghi, đồng thời đặt con trỏ ở vị trí thích hợp.

Câu 4. Dùng câu lệnh đóng tệp sau khi kết thúc ghi dữ liệu: dùng để hoàn tất việc ghi dữ liệu ra tệp.

  • HOẠT ĐỘNG 3: Hoạt động luyện tập, vận dụng:

(1) Mục tiêu: Giúp học sinh biết được cách khai báo biến tệp, các thao tác kiểu tệp

(2) Phương pháp/kĩ thuật dạy học: Đặt vấn đề, phân tích.

(3) Hình thức tổ chức hoạt động: Làm việc cá nhân.

(4) Phương tiện dạy học: SGK, Projector, máy tính.

(5) Kết quả: Học sinh nắm được cách khai báo biến tệp, các thao tác kiểu dữ liệu tệp.

Nội dung hoạt động

GV cho bài tập : Trả lời các câu trắc nghiệm sau

Câu 1 : Trong PASCAL để khai báo biến tệp văn bản ta phải sử dụng cú pháp

  1. Var <tên tệp> : Text;
  2. Var <tên biến tệp> : Text;
  3. Var <tên tệp> : String;
  4. Var <tên biến tệp> : String;

Câu 2: Trong PASCAL, để khai báo hai biến tệp văn bản f1, f2 ta viết

    1. Var f1 f2 : Text;
    2. Var f1 ; f2 : Text;
    3. Var f1 , f2 : Text;
    4. Var f1 : f2 : Text;

Câu 3: Để thao tác với tệp

  1. Ta có thể gán tên tệp cho tên biến tệp, hoặc sử dụng trực tiếp tên tệp cũng được.
  2. Ta nhất thiết phải gán tên tệp cho tên biến tệp.
  3. Ta nên sử dụng trực tiếp tên tệp trong chương trình.
  4. Ta nhất thiết phải sử dụng trực tiếp tên tệp trong chương trình.

GV hướng dẫn gọi học sinh trả lời.

GV nhận xét, giải đáp thắc mắc của học sinh, đưa ra các nhận xét cuối cùng

  • HOẠT ĐỘNG 4: Hoạt động tìm tòi mở rộng:

(1) Mục tiêu: Giúp học sinh có nhu cầu mở rộng thêm kiến thức của mình.

(2) Phương pháp/kĩ thuật dạy học: làm việc cá nhân, nhóm.

(3) Hình thức tổ chức hoạt động: Ngoài lớp học

(4) Phương tiện dạy học:SGK, Projector, máy tính.

(5) Học sinh biết cách mở rộng các kiến thức của mình thông qua bài tập cụ thể.

Nội dung hoạt động

- GV: cho bài tập:

Trong Pascal, cho trước tệp văn bản BT2.TXT chỉ có một dòng, chứa dòng chữ : CHAO MUNG BAN DEN VOI LAP TRINH ngay ở đầu dòng. Thực hiện chương trình để được kết quả đưa ra màn hình dòng chữ CHAO MUNG BAN DEN VOI LAP TRINH?

- HS: làm bài tập GV yêu cầu.

- GV: xem trước bài tập và thực hành 6.

IV. RÚT KINH NGHIỆM ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

Duyệt của tổ trưởng chuyên môn Giáo viên soạn

Lê Thị Lịnh Lê Minh Tâm

Tuần: 32 Ngày soạn: 19/03/2018

Tiết: 42+43 Ngày dạy:02/04/2018 đến 07/04/2018

BÀI TẬP VÀ THỰC HÀNH 6

I. MỤC TIÊU

1. Về kiến thức

- Biết các vận dụng cấu trúc chương trình con để giải các bài toán từ đơn giản tới phức tạp.

- Biết các thao tác xử lý trên xâu.

2. Về kĩ năng

Hình khả năng phân tích để sử dụng hàm và thủ tục cho đúng.

3. Về thái độ

Có thái độ nghiêm túc trong học tập.

4. Năng lực hướng tới

- Năng lực tự học, năng lực giải quyết vấn đề, sử dụng máy tính giải các bài toán.

II. CHUẨN BỊ

1. Chuẩn bị của giáo viên: Giáo án, sách giáo khoa, sách giáo viên, máy tính, máy chiếu, phông chiếu, bút lông, bảng,…

2. Chuẩn bị của học sinh: Sách giáo khoa, tập, viết,…

III. HOẠT ĐỘNG DẠY VÀ HỌC

1. Ổn định lớp, kiểm tra sĩ số

2. Kiểm tra bài cũ: không.

3. Tiến trình bày học

  • HOẠT ĐỘNG 1: Hoạt động khởi động:

(1) Mục tiêu: Tạo động cơ để học sinh muốn sử dụng máy tính giải các bài toán trong đó có sử dụng kiểu xâu

(2) Phương pháp/kĩ thuật dạy học: Cá nhân.

(3) Phương tiện dạy học: SGK, Projector, máy tính.

(4) Học sinh có nhu cầu mong muốn muốn sử dụng máy tính giải các bài toán trong đó có sử dụng kiểu xâu

Nội dung hoạt động

Hoạt động của giáo viên

Hoạt động của học sinh

- Lúc trước chúng ta đã tìm hiểu các thao tác xử lý tệp, hôm nay chúng ta sử dụng kiểu tệp để thực hành một số bài đơn giản.

- Nghe giảng.

  • HOẠT ĐỘNG 2: Hình thành kiến thức

(1) Mục tiêu: Giúp học sinh biết được cách sử dụng tệp giải các bài tập.

(2) Phương pháp/kĩ thuật dạy học: Đặt vấn đề, phân tích.

(3) Hình thức tổ chức hoạt động: Làm việc cá nhân.

(4) Phương tiện dạy học: SGK, Projector, máy tính.

(5) Kết quả: Học sinh nắm được cách sử dụng tệp giải các bài toán.

Nội dung hoạt động

Hoạt động giáo viên

Hoạt động học sinh

Nội dung trình bày

- Sau đây chúng ta tìm hiểu bài tập về xâu có dùng kiểu tệp để lưu giá trị

- Cho bài tập học sinh thực hành

- Ở bài này chúng ta dùng bao nhiêu biến xâu, biến tệp?

- Nhận xét

- Tệp được thao tác có tên gì?

- Thao tác đọc tệp hay ghi tệp?

- Nhận xét

- Thao tác cuối cùng khi ghi tẹp là gì?

- Nhận xét

- Quan xác hướng dẫn học sinh thực hành.

- Nhận xét

- Cho bài tập 2 học sinh thực hành

- Ở bài này chúng ta dùng bao nhiêu biến xâu, biến tệp?

- Nhận xét

- Tệp được thao tác có tên gì?

- Thao tác đọc tệp hay ghi tệp?

- Nhận xét

- Thao tác cuối cùng khi ghi tẹp là gì?

- Nhận xét

- Quan xác hướng dẫn học sinh thực hành.

- Nhận xét

- Lắng nghe

- Ghi bài

- Trả lời

- Lắng nghe

- Trả lời

- Trả lời

- Lắng nghe

- Trả lời

-Lắng nghe

- Thực hành trên máy

- Lắng nghe, ghi bài

- Ghi bài

- Trả lời

- Lắng nghe

- Trả lời

- Trả lời

- Lắng nghe

- Trả lời

-Lắng nghe

- Thực hành trên máy

- Lắng nghe, ghi bài

Bài 1: Viết chương trình nhập xâu học tên. Ghi xâu vừa nhập vào tệp C:\TP7\BT1.txt

Var tep:text;

S:string;

Begin

Write(‘Nhap xau’);

Readln(s);

Assign(tep,’C:\tp7\bt1.txt’);

Rewrite(tep);

Write(tep,s);

Close(tep);

Readln

End.

Bài 2: Viết chương trình nhập xâu bất kỳ. Đếm và ghi số lượng ký tự là chữ số vào tệp c:\tp7\bt2.txt

Var tep:text;

S:string;

Dem:integer;

Begin

Write(‘Nhap xau’);

Readln(s); dem:=0;

For i:=1 to length(s) do

If (s[i]>=’0’) and (s[i]<=’9’) then

Dem:=dem+1;

Assign(tep,’C:\tp7\bt2.txt’);

Rewrite(tep);

Write(tep,dem);

Close(tep);

Readln

End.

  • HOẠT ĐỘNG 3: Hoạt động luyện tập, vận dụng:

(1) Mục tiêu: Giúp học sinh biết được cách sử dụng kiểu tệp

(2) Phương pháp/kĩ thuật dạy học: Đặt vấn đề, phân tích.

(3) Hình thức tổ chức hoạt động: Làm việc cá nhân.

(4) Phương tiện dạy học: SGK, Projector, máy tính.

(5) Kết quả: Học sinh nắm được cách sử dụng kiểu tệp

Nội dung hoạt động

GV cho bài tập : Viết chương trình nhập xâu bất kỳ. Đếm và ghi số lượng ký tự không là chữ số vào tệp c:\tp7\bt3.txt

HS : Ghi bài và thực hành theo hướng dẫn giáo viên

GV : Quan sát hướng dẫn học sinh thực hành, nhận xét và đưa ra kết luận

Var tep:text;

S:string;

Dem:integer;

Begin

Write(‘Nhap xau’);

Readln(s); dem:=0;

For i:=1 to length(s) do

If (s[i]<=’0’) and (s[i]>=’9’) then

Dem:=dem+1;

Assign(tep,’C:\tp7\bt3.txt’);

Rewrite(tep);

Write(tep,dem);

Close(tep);

Readln

End.

  • HOẠT ĐỘNG 4: Hoạt động tìm tòi mở rộng:

(1) Mục tiêu: Giúp học sinh có nhu cầu mở rộng thêm kiến thức của mình.

(2) Phương pháp/kĩ thuật dạy học: làm việc cá nhân, nhóm.

(3) Hình thức tổ chức hoạt động: Ngoài lớp học

(4) Phương tiện dạy học:SGK, Projector, máy tính.

(5) Học sinh biết cách mở rộng các kiến thức của mình thông qua bài tập cụ thể.

Nội dung hoạt động

GV cho bài tập : Viết chương trình nhập xâu bất kỳ. Đếm và ghi số lượng ký tự là khoảng cách vào tệp c:\tp7\bt4.txt

HS : Ghi bài và thực hành theo hướng dẫn giáo viên

GV : Quan sát hướng dẫn học sinh thực hành, nhận xét và đưa ra kết luận

Var tep:text;

S:string;

Dem:integer;

Begin

Write(‘Nhap xau’);

Readln(s); dem:=0;

For i:=1 to length(s) do

If (s[i]=’ ‘) then

Dem:=dem+1;

Assign(tep,’C:\tp7\bt4.txt’);

Rewrite(tep);

Write(tep,dem);

Close(tep);

Readln

End.

- HS: làm bài tập GV yêu cầu.

- GV: xem trước bài tập 17 chương trình con và phân loại.

IV. RÚT KINH NGHIỆM ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

Duyệt của tổ trưởng chuyên môn Giáo viên soạn

Lê Thị Lịnh Lê Minh Tâm

Tuần: 32

Tiết: 44 +45

BÀI 17. CHƯƠNG TRÌNH CON VÀ PHÂN LOẠI

I. MỤC TIÊU

1. Về kiến thức

- Biết được khái niệm về chương trình con.

- Biết được lợi ích khi sử dụng chương trình con

- Biết được cấu trúc của chương trình con và phân biệt được hai loại chương trình con hàmthủ tục.

2. Về kĩ năng

- Cách thực hiện một chương trình con.

- Nhận biết được phạm vi hoạt động của biến toàn cục, biến cục bộ.

- Nhận biết được hai loại tham số hình thức và tham số thực sự.

3. Về thái độ

Có thái độ nghiêm túc trong học tập.

4. Năng lực hướng tới

- Sử dụng chương trình con giải quyết các bài toán

II. CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH

1. Chuẩn bị của giáo viên: Giáo án, sách giáo khoa, sách giáo viên, máy tính, máy chiếu, phông chiếu, bút lông, bảng,…

2. Chuẩn bị của học sinh: Sách giáo khoa, tập, viết,…

III. TỔ CHỨC CÁC HOẠT ĐỘNG HỌC TẬP

1. Ổn định lớp

2. Kiểm tra bài cũ (không)

3. Tiến trình bài học

  • HOẠT ĐỘNG 1: Hoạt động khởi động:

(1) Mục tiêu: Tạo động cơ để học sinh hiểu được cách sử dụng và khai báo được biến mảng.

(2) Phương pháp/kĩ thuật dạy học: Cá nhân, thảo luận nhóm.

(3) Phương tiện dạy học: SGK, Projector, máy tính.

(4) Học sinh có nhu cầu mong muốn được học cách khai báo biến mảng

Hoạt động của giáo viên

Hoạt động của học sinh

- Khi viết chương trình giải các bài toán phức tạp, chương trình thường rất dài, người đọc rất khó nhận biết chương trình thực hiện công việc gì, người lập trình rất khó xem và sửa chữa khi chương trình sai một vài lỗi nhỏ ở dòng nào đó. Vấn đề đặt ra là phải cấu trúc chương trình thế nào cho dễ đọc dễ hiểu và dễ sửa lỗi khi bị lỗi.

- Chiếu ví dụ đoạn lệnh tính tổng bốn lũy thừa bằng cách truyền thống và bằng chương trình con cho học sinh theo dõi và phân biệt.

(?) Trong Pascal có cách nào để giải quyết vấn đề nêu trên?

- Hôm nay chúng ta sẽ tìm hiểu khái niệm chương trình con.

- Yêu cầu học sinh ghi tựa bài

- Nghe giảng.

- Quan sát ví dụ.

- Trả lời: ta dùng chương trình con.

- Nghe giảng.

- Ghi tựa bài.

  • HOẠT ĐỘNG 2: Hình thành kiến thức

(1) Mục tiêu: Giúp học sinh biết được khái niệm chương trình con, các loại chương trình con, cấu trúc và cách thực hiện chương trình con.

(2) Phương pháp/kĩ thuật dạy học: Vấn đáp, thuyết trình, đặt vấn đề, phân tích.

(3) Hình thức tổ chức hoạt động: Làm việc cá nhân.

(4) Phương tiện dạy học: SGK, Projector, máy tính.

(5) Kết quả: Học sinh nắm được khái niệm chương trình con, các loại chương trình con, cấu trúc và cách thực hiện chương trình con

Nội dung hoạt động

Hoạt động giáo viên

Hoạt động học sinh

Nội dung trình bày

- Giới thiệu cho học sinh biết chương trình con cũng gồm các lệnh để mô tả các thao tác, đặt biệt nó được gọi từ nhiều vị trí trong chương trình.

(?) Như vậy theo các em việc sử dụng chương trình con có những ưu điểm gì?

- Nhận xét và giải thích từng trường hợp cụ thể.

- Ghi bài.

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

- Nghe giảng và ghi bài.

1. Khái niệm chương trình con

Chương trình con là một dãy lệnh mô tả một số thao tác nhất định và có thể được thực hiện (được gọi) từ nhiều vị trí trong chương trình.

* Lợi ích của việc sử dụng chương trình con:

+ Tránh được việc phải lặp đi lặp lại cùng một dãy lệnh.

+ Hỗ trợ việc thực hiện các chương trình lớn.

+ Phục vụ cho quá trình trừu tượng hóa.

- Đối với chương trình con thì ngôn ngữ lập trình Pascal cung cấp cho chúng ta 2 loại chương trình con. Để hiểu rõ hơn thầy và cả lớp cùng tìm hiểu phân loại và cấu trúc của chương trình con.

- Trước tiên thầy sẽ hướng dẫn việc phân loại chương trình con. Đối với chương trình chúng ta có 2 loại cơ bản.

(?) Các em hãy tham khảo sách giáo khoa và cho biết chương trình con có 2 loại nào?

- Nhận xét và giải thích chức năng của từng loại. Hàm Function phải trả giá trị qua tên của nó.

VD: Hàm Sin(x) nhận giá trị của số thực x sau đó thực hiện tính toán, nhưng sau khi tính toán xong thì hàm Sin(x) cũng phải mang giá trị Sin(x).

Thực hiện trên Pascal với

VD: Thực hiện lệnh gọi hàm Sin(x) và Thủ tục Writeln:

Nếu gọi Sin(x): thì chương trình báo lỗi.

Sửa lỗi a:=Sin(x);

Nếu gọi Writeln: thì chương trình hoạt động bình thường.

- Đối với thủ tục thì không trả về giá trị nào thông qua tên của nó.

-(?) Các em hãy nhắc lại cấu trúc của một chương trình?

- Cấu trúc của chương trình con cũng tương tự chương trình chính. Vậy chương trình con gồm những phần nào?

- Nhận xét: Cấu trúc chương trình con tương tự chương trình chính. Nhưng nhất thiết phải có tên và phần đầu dùng để khai báo tên. Nếu là hàm phải khai báo kiểu dữ liệu cho giá trị trả về của hàm.

<Phần đầu>

[<Phần Khai Báo>]

<Phần Thân>

- Tham số hình thức là các biến được khai báo cho dữ liệu vào ra. Các biến được khai báo để dùng riêng trong chương trình con được gọi là các biến cục bộ. Các biến của chương trình chính được gọi là biến toàn cục.

- Chiếu ví dụ giải bài toán tính tổng lũy thừa: an + bm + cp + dq bằng cách viết bình thường và cách viết có sử dụng chương trình con. Yêu cầu học sinh quan sát.

(?) Hãy xác định đâu là tham số hình thức, biến cục bộ và biến toàn cục?

- Để sử dụng được chương trình con thì phải gọi nó lên để sử dụng. Vậy ta phải dùng lời gọi như thế nào? Để tìm hiểu chúng ta sẽ đi vào phần c thực hiện chương trình con.

VD: sqr(225)

(?) Yêu cầu học sinh xác định đâu là tham số thực sự đâu là tên chương trình con?

- Nhận xét, giải thích cho học sinh hiểu rõ hơn.

- Nghe giảng, ghi mục bài.

- Tham khảo sách giáo khoa và trả lời: hàm thủ tục.

- Nghe giảng và ghi bài.

- Trả lời:

[<Phần Khai Báo>]

<Phần Thân>

- Trả lời:

<Phần đầu>

[<Phần Khai Báo>]

<Phần Thân>

- Nghe giảng, ghi bài.

- Chú ý nghe giảng.

- Quan sát.

- Trả lời: trong chương trình con Luythua(x, k) thì x, k là tham số hình thức còn j là biến cục bộ. Biến Tluythua khai báo trong chương trình chính là biến toàn cục.

- Chú ý nghe giảng, ghi bài.

- Trả lời: sqr là tên chương trình con. 225 là tham số thực sự.

- Nghe giảng, ghi bài.

2. Phân loại và cấu trúc của chương trình con

a/ Phân loại

- Hàm (Function) là chương trình con 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ó.

VD:

Sin(x), Cos(x), Sqrt(x)… Length(x).

- Thủ tục (Procedure) là chương trình con thực hiện một số thao tác nào đó nhưng không trả về một giá trị nào qua tên của nó.

VD:

Writeln, Readln, Delete, …

b. Cấu trúc chương trình con

Phần đầu:

Nhất thiết phải dùng để khai báo tên. Nếu là hàm phải khai báo kiểu dữ liệu cho giá trị trả về của hàm.

Phần khai báo:

Có thể khai báo cho dữ liệu vào và ra, các hằng được sử dụng trong chương trình con.

Phần thân:

Là các dãy lệnh được thực hiện trong chương trình con từ dữ liệu vào và được kết quả như mong muốn.

Tham số hình thức:

Là các biến được khai báo cho dữ liệu vào ra.

Biến cục bộ: Là các biến được khai báo để dùng riêng trong chương trình con.

Biến toàn cục: Các biến của chương trình chính được gọi là biến toàn cục.

Lưu ý: Một chương trình con có thể có hoặc không có tham số hình thức, có thể có hoặc không có biến cục bộ.

c/ Thực hiện chương trình con

- Để thực hiện gọi một chương trình con, ta cần phải có lệnh gọi, bao gồm tên chương trình con với các tham số (nếu có) là các hằng số hoặc biến chứa dữ liệu tương ứng với các tham số hình thức đặt trong cặp ngoặc ( ). Các hằng và biến này được gọi là các tham số thực sự.

VD:

Sqr(225);

Luythua(a, n);

HCN(Chieudai, Chieurong);

HCN(5, 4).

  • HOẠT ĐỘNG 3: Hoạt động luyện tập, vận dụng:

(1) Mục tiêu: Giúp học sinh thực hiện được thao tác tạo khai báo, thực hiện chương trình con

(2) Phương pháp/kĩ thuật dạy học: Vấn đáp, thuyết trình, đặt vấn đề, phân tích, so sánh,...

(3) Hình thức tổ chức hoạt động: giải bài tập trên bảng

(4) Phương tiện dạy học:SGK, bảng.

(5) Học sinh biết vận dụng kiến thức đã học vào giải quyết tình huống thực tiễn cụ thể.

Nội dung hoạt động

GV yêu cầu HS: Trả lời các câu hỏi trắc nghiệm:

Câu 1: Hãy chọn phương án ghép đúng . Kiểu của một hàm được xác định bởi

A. Kiểu của các tham số

B. Kiểu giá trị trả về

C. Tên hàm

D. Địa chỉ mà hàm trả về

Câu 2:Khẳng định nào sau đây là đúng?

    1. Biến cục bộ là biến được dùng trong chương trình con chứa nó và trong chương trình chính.
    2. Biến cục bộ là biến chỉ được dùng trong chương trình chính.
    3. Biến cục bộ là biến chỉ được dùng trong chương trình con chứa nó.
    4. Biến toàn bộ chỉ được sử dụng trong chương trình chính và không được sử dụng trong các chương trình con.

Câu 3: Để khai báo thủ tục trong Pascal bắt đầu bằng từ khóa

A. Program.

B. Procedure.

C. Function.

D. Var.

Câu 4: Khẳng định nào sau đây là đúng?

A. Cả thủ tục và hàm đều có thể có tham số hình thức.

B. Chỉ có thủ tục mới có thể có tham số hình thức.

C. Chỉ có hàm mới có thể có tham số hình thức.

D. Thủ tục và hàm nào cũng phải có tham số hình thức.

  • HOẠT ĐỘNG 4: Hoạt động tìm tòi mở rộng:

(1) Mục tiêu: Giúp học sinh có nhu cầu mở rộng thêm kiến thức của mình.

(2) Phương pháp/kĩ thuật dạy học: làm việc cá nhân, nhóm.

(3) Hình thức tổ chức hoạt động: Ngoài lớp học

(4) Phương tiện dạy học:SGK, Projector, máy tính.

(5) Học sinh biết cách mở rộng các kiến thức của mình thông qua bài tập cụ thể.

Nội dung hoạt động

- GV: cho bài tập: Cho chương trình sau:

Program Vi_du ;

Var x, y : integer ;

Procedure godoit( x, y : integer ) ;

Begin

x := y ;

y := 0 ;

Write( x, y ) ;

End ;

Begin

x := 1 ;

y := 2 ;

godoit( x, y ) ;

writeln( x, y ) ;

End.

- GV: Chương trình trên in ra dãy số nào?

- HS: làm bài tập GV yêu cầu.

- Gv: học bài và xem trước bài 18

IV. RÚT KINH NGHIỆM ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

Duyệt của tổ trưởng chuyên môn Giáo viên soạn

Lê Thị Lịnh Lê Minh Tâm

Tuần: 34

Tiết: 46 + 47

BÀI 18. VÍ DỤ CÁCH VIẾT VÀ SỬ DỤNG

CHƯƠNG TRÌNH CON

I. MỤC TIÊU

1. Về kiến thức

- Biết được cấu trúc và vị trí của thủ tục trong chương trình chính.

- Biết cách viết và cách gọi một thủ tục trong chương trình.

- Biết cấu trúc của hàm, cách sử dụng hàm.

- Phân biệt được giữa hai loại chương trình con (thủ tụchàm).

- Xác định được biến toàn cụcbiến cục bộ.

- Biết cách truyền tham số vào hàm và thủ tục.

2. Về kĩ năng

- Nhận biết từng thành phần của thủ tục, hàm.

- Biết chức năng của hàm và thủ tục để viết chương trình con cho phù hợp.

- Truyền tham số cho phù hợp.

3. Về thái độ

- Có thái độ nghiêm túc trong học tập.

4. Năng lực hướng tới

- Giải quyết vấn đề, thảo luận nhóm, suy luận.

II. CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH

1. Chuẩn bị của giáo viên: Giáo án, sách giáo khoa, sách giáo viên, máy tính, máy chiếu, phông chiếu, bút lông, bảng,…

2. Chuẩn bị của học sinh: Sách giáo khoa, tập, viết,…

III. TỔ CHỨC CÁC HOẠT ĐỘNG HỌC TẬP

1. Ổn định lớp, kiểm tra sĩ số

2. Kiểm tra bài cũ:

Câu 1: Nêu khái niệm chương trình con?
Câu 2:
- Nêu lợi ích chương trình con?
Câu 3:
Viết cấu trúc chương trình con

3. Nội dung bài mới:

  • HOẠT ĐỘNG 1: Hoạt động khởi động:

(1) Mục tiêu: Tạo động cơ để học sinh muốn tìm hiểu một số ví dụ làm việc với chương trình con

(2) Phương pháp/kĩ thuật dạy học: Cá nhân, thảo luận nhóm.

(3) Phương tiện dạy học: SGK, Projector, máy tính.

(4) Học sinh có nhu cầu mong muốn tìm hiểu một số ví dụ làm việc với chương trình con

Nội dung hoạt động

Hoạt động của giáo viên

Hoạt động của học sinh

- Trong tiết học trước các em đã được làm quen với chương trình con. Để hiểu rõ hơn cách sử dụng chương trình con chúng ta sẽ đi xét một vài ví dụ cụ thể trong bài 18.

- Nghe giảng

  • HOẠT ĐỘNG 2: Hình thành kiến thức

(1) Mục tiêu: Giúp học sinh biết được một số ví dụ bài tập về chương trình con

(2) Phương pháp/kĩ thuật dạy học: Vấn đáp, thuyết trình, đặt vấn đề, phân tích.

(3) Hình thức tổ chức hoạt động: Làm việc cá nhân.

(4) Phương tiện dạy học: SGK, Projector, máy tính.

(5) Kết quả: Học sinh nắm được một số ví dụ bài tập về chương trình con

Nội dung hoạt động

Hoạt động giáo viên

Hoạt động học sinh

Nội dung trình bày

(?) Chiếu hình chữ nhật, yêu cầu các em để vẽ được hình chữ nhật chúng ta phải làm sao?

- Nhận xét.

(?) Vậy theo các em để vẽ nhiều hình chữ nhật thì chúng ta phải làm sao?

- Nhận xét, nhưng nếu viết nhiều dòng lệnh thì mất nhiều thời gian để gõ, trong quá trình gõ dễ bị sai sót. Để khắc phục tình trạng đó chúng ta sẽ viết một thủ tục vẽ hình chữ nhật, khi nào cần vẽ thì chỉ việc gọi thủ tục đó thôi.

Program vd1;

Procedure ve_HCN;

Begin

writeln(‘* * * * * * *’);

writeln(‘* *’); writeln(‘* * * * * * *’);

End;

Begin

Ve_HCN; writeln; writeln;

Ve_HCN; writeln; writeln;

Ve_HCN;

Readln;

End.

- Với cách gọi như vậy thì khi thực thi chương trình sẽ có 3 hình chữ nhật sẽ được tạo ra. Nhìn vào chương trình các em có câu hỏi gì không?

- Để hiểu được chương trình chúng ta cần xét cấu trúc viết một thủ tục.

(?) Các em hãy tham khảo sách giáo khoa và cho biết thủ tục có cấu trúc như thế nào?

- Bổ sung nếu có sai sót, yêu cầu các em ghi chính xác vào tập.

- Các em cần chú ý: Sau tên dành riêng End kết thúc chương trình chính là dấu chấm (.) còn sau End kết thúc thủ tục là dấu chấm phẩy (;). Các thủ thục, nếu có phải được khai báo và mô tả trong phần khai báo của chương trình chính, ngay sau phần khai báo biến. Khi cần thực hiện, ta phải viết lệnh gọi thủ tục tương tự như các thủ tục chuẩn.

- Để hiểu sâu hơn và cách viết cũng như nguyên tắc hoạt động của thủ tục ta sẽ đi tìm hiểu các ví dụ.

- Cũng với ví dụ vẽ hình chữ nhật nhưng với ví dụ đó là hình chữ nhật có chiều dài và chiều rộng cố định, nhưng trên thực tế thì hình chữ nhật có chiều dài và rộng khác nhau nên khi biết chương trình chúng ta có thể gọi các thủ tục khác nhau. Chiếu chương trình lên máy chiếu, hướng dẫn ý nghĩa từng câu lệnh cho học sinh.

- Yêu cầu học sinh viết chương trình vào tập.

- Các em thấy thủ tục lúc đầu chúng ta viết là (chdai, chrong) sau đó thay bằng (5, 3) khi đó ta gọi chdai, chrong là tham số hình thức, còn 5 và 3 là tham số giá trị hay còn gọi là tham trị. Còn Ve_Hcn(a, b) trong đó a, b là giá trị hiện thời.

- Các em hãy quan sát 2 ví dụ dùng thủ tục hoán đổi 2 số a và b trong sách giáo khoa trang 99 và 100.

(?) Khi xem 2 ví dụ các em thấy có điểm gì khác?

- Nhận xét, đúng rồi khi đó chạy chương trình cho học sinh quan sát, giải thích cho các em khi sử dụng var thì gọi là tham biến nên giá trị của nó có thể thay đổi, còn không có là tham trị.

- Yêu cầu học sinh viết chương trình vào tập.

- Trả lời: ta phải dùng 3 câu lệnh.

- Nghe giảng.

- Ta sẽ dùng nhiều dòng lệnh để vẽ.

- Nghe giảng và quan sát thủ tục.

- Trả lời: cách viết chương trình hơi khó hiểu, khác với từ trước tới giờ.

- Đọc SGK và trả lời.

- Ghi bài.

- Ghi chú ý vào tập.

- Quan sát, nghe giảng.

- Ghi ví dụ.

- Nghe giảng.

Program VDthamso1;

Uses crt;

Var a, b: integer;

Procedure Hoandoi_1(var x, y: integer);

Var TG: integer;

Begin

TG:=x; x:=y; y:=TG;

End;

Begin

Clrscr;

a:=5; b:=10;

Writeln(a:6, b:6);

Hoandoi_1(a, b);

Writeln(a: 6, b: 6);

Readln;

End.

Program VDthamso2;

Uses crt;

Var a, b: integer;

Procedure Hoandoi_2( x: integer ; var y: integer);

Var TG: integer;

Begin

TG:=x; x:=y; y:=TG;

End;

Begin

Clrscr;

a:=5; b:=10;

Writeln(a: 6, b: 6);

Hoandoi_2(a, b);

Writeln(a: 6, b: 6);

Readln;

End.

- Trả lời: chương trình đầu cả 2 biến a, b đều khai báo var, còn chương trình sau có chỉ dùng var cho biến b.

- Nghe giảng.

- Ghi ví dụ vào tập.

1. Cách viết và sử dụng thủ tục

a/ Cấu trúc của thủ tục

Procedure <Tên thủ tục> [(<DS tham số>)];

[< phần khai báo>]

Begin

[<Dãy các lệnh>]

End;

- Phần đầu thủ tục gồm tên dành riêng Procedure, tiếp theo là tên thủ tục. DS tham số có thể có hoặc không có.

- Phần khai báo: Dùng để xác định các hằng, kiểu, biến và cũng có thể xác định các chương trình con khác được sử dụng trong thủ tục.

- Dãy câu lệnh: Được viết giữa cặp tên dành riêng Begin End tạo thành thân của thủ tục.

- Chú ý:

+ Sau tên dành riêng End kết thúc chương trình chính là dấu chấm (.) còn sau End kết thúc thủ tục là dấu chấm phẩy (;)

+ Các thủ thục, nếu có phải được khai báo và mô tả trong phần khai báo của chương trình chính, ngay sau phần khai báo biến.

+ Khi cần thực hiện, ta phải viết lệnh gọi thủ tục tương tự như các thủ tục chuẩn.

b/ Ví dụ về thủ tục

Program vd2;

Uses Crt;

Var a, b, i: integer;

Procedure ve_HCN(chdai, chrong: integer);

Var i, j: integer;

Begin

For i:=1 to chdai do write(‘*’);

Writeln;

For j:=1 to chrong−2 do

Begin

Write(‘*’);

For i:=1 to chdai−2 do write(‘ ‘);

Writeln(‘*’);

End;

For i:=1 to chdai do write(‘*’);

Writeln;

End;

Begin

Clrscr;

Ve_Hcn(25, 10);

Writeln; writeln;

Ve_Hcn(5, 10);

Readln;

Clrscr;

a:=4; b:=2;

For i:=1 to 4 do

begin

ve_HCN(a, b);

Readln;

a:=a*2; b:=b*2;

End;

Readln;

End.

- Trong lời gọi thủ tục các tham số hình thức được thay bằng tham số thực sự tương ứng là các giá trị cụ thể đgl tham số giá trị (tham trị).

- Trong lệnh gọi thủ tục các tham số hình thức được thay bằng các tham số thực sự tương ứng là tên các biến chứa dữ liệu ra đgl tham số biến (tham biến).

* Sự khác nhau trong khai báo tham số hình thức:

- Các tham số có từ khoá Var đứng trước là tham số biến, còn không có là tham số giá trị.

Chú ý:

- Nếu có nhiều tham biến cùng một kiểu dữ liệu thì có thể dùng 1 từ khoá Var cho phần khai báo, ngăn cách bằng dấu phẩy.

- Chương trình con gồm 2 loại: là thủ tục và hàm, chúng ta sẽ tìm hiểu hàm được viết và sử dụng như thế nào. Thầy với cả lớp cùng tìm hiểu cách viết và sử dụng hàm.

- Điểm khác nhau cơ bản giữa hàm và thủ tục là hàm luôn trả về giá trị thuộc một kiểu xác định.

(?) Các em hãy kể tên các kiểu dữ liệu đã học?

- Đó là các kiểu mà hàm trả giá trị về, ta sẽ tìm hiểu cấu trúc viết hàm trong chương trình con.

- Cũng giống như thủ tục nếu hàm không có tham số hình thức thì không cần danh sách tham số. Trong thân hàm phải có ít nhất một lệnh gán giá trị cho tên hàm.

- Chúng ta sẽ đi xét ví dụ 1 viết chương trình tìm số nhỏ nhất trong ba số nhập từ bàn phím, trong đó sử dụng hàm tìm số nhỏ nhất trong hai số.

- Hướng dẫn học sinh viết hàm tìm số nhỏ nhất trong 2 số, hàm có tên là min, hàm này có bao nhiêu tham số?

- Hướng dẫn học sinh cách viết hàm min.

- Bài 17 chúng ta có xét ví dụ về tính lũy thừa của một số nào đó. Hôm nay chúng ta sẽ tìm hiểu cách viết hàm đó như thế nào?

- Yêu cầu học sinh xác định x, n là gì?

- Ở ví dụ 2 ta cần viết hàm có tên là lt(y, m) có hai tham số hình thức là y và m.

ym=y*y*…*y

- Vậy để được phép nhân m lần ta cần thực hiện thông qua lệnh nào? Giá trị ban đầu của tích này là bao nhiêu?

- Nhận xét và hướng dẫn học sinh cách viết chương trình.

- Các em về xem thêm các ví dụ sách giáo khoa.

- Ghi mục bài.

- Trả lời: integer, real, char, boolean, string.

- Ghi bài.

- Nghe giảng.

- Ghi ví dụ.

- Trả lời: có 2 tham số là a và b.

- Quan sát và ghi bài.

- Trả lời: là biến toàn cục.

- Trả lời: dùng vòng lặp for, với giá trị ban đầu bằng 1.

- Ghi ví dụ.

- Xem sách giáo khoa.

2. Cách viết và sử dụng hàm

Function <tên hàm>[<danh sách tham số>]: <kiểu dữ liệu>;

[khai báo các biến];

Begin

[<dãy các lệnh>]

End;

- <Kiểu dữ liệu>: Kiểu dữ liệu trả lại của hàm như các kiểu integer, real, char, boolean, string.

Vd: Function tong(x, y: integer): integer;

Chú ý: Trong thân hàm phải có ít nhất một lệnh gán giá trị cho tên hàm.

<tên hàm>:= <biểu thức>;

Ví dụ 1: Viết chương trình tìm số nhỏ nhất trong ba số nhập từ bàn phím, trong đó sử dụng hàm tìm số nhỏ nhất trong hai số.

Program vd1;

Var a, b, c : real;

Function Min(a, b : real): real;

Begin

if a<b then min:=a

else min:=b;

End;

Begin

Write(‘Nhap vao a, b, c=’);

readln(a, b, c);

Write(‘Min=’, Min(Min(a, b), c));

Readln;

End.

Ví dụ 2. Viết chương trình tính xn, trong đó sử dụng hàm lt(x, n). Với x, n nhập từ bàn phím.

Program vd2;

Var x, n : integer;

Function Lt(y, m: integer): real;

Var tg, i : integer;

Begin

Tg:=1;

For i:=1 to m do tg:=tg*y;

Lt:=tg;

End;

Begin

Write(‘Nhap vao x, n=’);

readln(x, n);

Write(‘Ket qua=’, Lt(x, n));

Readln;

End.

  • HOẠT ĐỘNG 3: Hoạt động luyện tập, vận dụng:

(1) Mục tiêu: Giúp học sinh thực hiện được thao tác chương trình con

(2) Phương pháp/kĩ thuật dạy học: Vấn đáp, thuyết trình, đặt vấn đề, phân tích, so sánh,...

(3) Hình thức tổ chức hoạt động: giải bài tập trên bảng

(4) Phương tiện dạy học:SGK, bảng.

(5) Học sinh biết vận dụng kiến thức đã học vào giải quyết tình huống thực tiễn cụ thể.

Nội dung hoạt động

GV yêu cầu HS:Viết chương trình tìm số lớn nhất trong ba số nhập từ bàn phím, trong đó sử dụng hàm tìm số lớn nhất trong hai số.

Program vd1;

Var a, b, c : real;

Function Max(a, b : real): real;

Begin

if a>b then max:=a

else max:=b;

End;

Begin

Write(‘Nhap vao a, b, c=’);

readln(a, b, c);

Write(‘Max=’, Max(Max(a, b), c));

Readln;

End.

GV gọi một học sinh trả lời.

GV nhận xét, giải đáp thắc mắc của học sinh, đưa ra các nhận xét cuối cùng

  • HOẠT ĐỘNG 4: Hoạt động tìm tòi mở rộng:

(1) Mục tiêu: Giúp học sinh có nhu cầu mở rộng thêm kiến thức của mình.

(2) Phương pháp/kĩ thuật dạy học: làm việc cá nhân, nhóm.

(3) Hình thức tổ chức hoạt động: Ngoài lớp học

(4) Phương tiện dạy học:SGK, Projector, máy tính.

(5) Học sinh biết cách mở rộng các kiến thức của mình thông qua bài tập cụ thể.

Nội dung hoạt động

- GV: cho bài tập:Sử dụng chương trình con viết chương trình tính tổng các số từ 1 đến N (N>1).

- HS: làm bài tập GV yêu cầu.

- GV: Về xem lại cách viết chương trình con

IV. RÚT KINH NGHIỆM ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

Duyệt của tổ trưởng chuyên môn Giáo viên soạn

Lê Thị Lịnh Lê Minh Tâm

Tuần: 35

Tiết: 48

BÀI TẬP VỀ CHƯƠNG TRÌNH CON

I. MỤC TIÊU

1. Về kiến thức

Nắm lại các kiến thức của chương chương trình con.

2. Về kĩ năng

Sử dụng chương trình con để giải bài toán trên máy tính.

3. Về thái độ

Có thái độ nghiêm túc trong học tập.

4. Năng lực hướng tới

- Năng lực tự học, năng lực giải quyết vấn đề.

II. CHUẨN BỊ

1. Chuẩn bị của giáo viên: Giáo án, sách giáo khoa, sách giáo viên, máy tính, máy chiếu, phông chiếu, bút lông, bảng,…

2. Chuẩn bị của học sinh: Sách giáo khoa, tập, viết,…

III. HOẠT ĐỘNG DẠY VÀ HỌC

1. Ổn định lớp, kiểm tra sĩ số

2. Kiểm tra bài cũ: không.

3. Tiến trình bày học

  • HOẠT ĐỘNG 1: Hoạt động khởi động:

Hoạt động giáo viên

Hoạt động học sinh

Nội dung trình bày

- Cần viết chương trình con để thực hiện công việc gì?

- Ta nên viết thủ tục hay hàm?

- Nhắc lại từ khóa của hàm?

  • Gọi học sinh lên bảng làm.

- Quan sát các học sinh khác làm bài.

  • Gọi học sinh nhận xét.

- Nhận xét

- Trả lời:Tính giai thừa của một số?

-Trả lời: dùng hàm

- Trả lời: Function

- Một học sinh lên bảng làm

- Nhận xét

- Nghe giảng và ghi bài.

- bài 1: Viết chương trình tính với n là số nguyên dương nhập từ bàn phím

- Khởi động chương trình Pascal

Program Tong;

Uses crt;

Var y:real;

N,i:Integer;

Function gthua(var a:integer):integer;

Var i,gt:integer;

Begin

Gt:=1;

For i:=1 to a do gt:=gt*i;

Gthua:=gt;

Begin

Clrscr;

Writeln(‘Nhap gia tri N=:’);

readln(N);

y:=0;

for i:=1 to N do y:=y+1/gthua(i);

Writeln(‘Gia tri cua y=:’,y);

Readln;

END.

4. Củng cố

- Nắm kỹ cấu trúc chương trình con (hàm, thủ tục), biết cách dùng tham số khi cần thiết.

- Nắm cách gọi chương trình con vào chương trình chính.

5. Dặn dò

Về xem lại bài, học bài chuẩn bị thi học kỳ II.

V. RÚT KINH NGHIỆM

............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................