giao an 11 full

81 9 0
giao an 11 full

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

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

Thông tin tài liệu

Củng cố các kiến thức cơ bản và kĩ năng đã có khi lập trình với kiểu dữ liệu mảng.\ Củng cố HS một thuật toán sắp xếp các phần tử của một dãy (bằng tráo đổi). Kĩ năng[r]

(1)

CHƯƠNG 1: MỘT SỐ KHÁI NIỆM VỀ LẬP TRÌNH VÀ NGƠN NGỮ LẬP TRÌNH

- -KHÁI NIỆM LẬP TRÌNH VÀ NGƠN NGỮ LẬP TRÌNH

I MỤC ĐÍCH, U CẦU

- Hiểu khả ngơn ngữ lập trình bậc cao, phân biệt với ngôn ngữ máy hợp ngữ - Hiểu ý nghĩa nhiệm vụ chương trình dịch

- Phân biệt biên dịch thông dịch

II PHƯƠNG PHÁP

Phát vấn kết hợp diễn giảng

III PHƯƠNG TIỆN DẠY HỌC

SGK, SGV, bảng vẽ khổ lớn… có máy chiếu tốt

IV NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP 1 Ổn định lớp (Kiểm tra sĩ số)

2 Ơn lại kiến thức cũ (nếu có) 3 Hoạt động dạy học

HOẠT ĐỘNG CỦA GV HOẠT ĐỘNG CỦA HS NỘI DUNG

Hoạt động 1: tìm hiểu khái niệm

lập trình ngơn ngữ lập trình Ở lớp 10 em học loại ngơn ngữ lập trình

? Hãy cho thầy biết có loại

ngơn ngữ lập trình?

? Cho biết đặc điểm loại?

? Có bước để giải tốn máy tính? Kể tên?

Chúng ta thấy bước thứ viết chương trình hay cịn gọi lập trình?

Thế lập trình?

Bài tốn:

Viết chương trình giải phương trình ax + b = 0?

Có loại: ngơn ngữ máy, hợp ngữ, ngơn ngữ lập lập trình bậc cao? Ngơn ngữ máy ngơn ngữ máy hiểu trực tiếp

Hợp ngữ: sd từ tiếng Anh

Ngơn ngữ lập trình bậc cao:

Các bước để giải tốn máy tính:

- Xác định toán - Xây dựng lựa thuật toán

- Viết chương trình (lập trình)

- Hiệu chỉnh - Viết tài liệu

Input: hai số a, b

Ngày soạn: 03/8/2010 Tuần:

(2)

? Hãy xác định Input Output

bài tốn?

Xác định thuật tốn?

Đó thuật toán toán ? Để diễn tả thuật toán cho người nước ngồi hiểu em dùng ngơn ngữ nào?

? Còn máy hiểu em dùng ngôn ngữ nào?

Dẫn dắt vấn đề: hoạt động diễn đạt thuật tốn thơng qua ngơn ngữ lập trình gọi lập trình

Đọc SGK cho biết lập trình?

Giải thích câu lệnh Về việc chọn ngơn ngữ lập trình ta chọn loại ngôn ngữ

Nhưng đặc điểm vượt trội ngôn ngữ bậc cao nên người ta thường sd để lập trình

? Những đặc điểm

đặc điểm nào? Và để sd ngơn ngữ lập trình bậc cao phải có gì? Đó đặc điểm ngơn ngữ lập trình Nhưng sd ngơn ngữ lập trình bậc cao cần phải có chương trình dịch

Chức chương trình dịch

Ví dụ SGK giới thiệu trường

Chương trình dịch có hai loại: Biên dịch thông dịch

Output: x = - b/a, ptvn, pt có vơ số nghiệm Bước 1: nhập a, b; Bước 2: a <> x=-b/a

Bước 3: Nếu a = ptvn;

Bước 4: a = b=0 pt có vơ số nghiệm Em dùng tiếng Anh Ngơn ngữ lập trình HS phát biểu

HS chia nhóm thảo luận phút

Dịch từ ngôn ngữ khác sang ngơn ngữ máy

1 Khái niệm lập trình

Lập trình sử dụng cấu trúc liệu câu lệnh ngơn ngữ lập trình cụ thể để mô tả liệu diễn đạt thao tác thuật tốn

2 Chương trình dịch

Chức năng: chuyển đổi chương trình viết NNLT bậc cao thành chương trình thực máy

Chương trình dịch có hai loại: biên dịch thông dịch

a) Thông dịch:

Chương trình dịch

Chương trình nguồn

(3)

? Biên dịch thông dịch khác

nhau chỗ nào?

Biên dịch:

- Dịch toàn chương trình

- Có thể lưu trữ để sd lại Thông dịch:

- Dịch câu lệnh - Khơng lưu lại

 Kiểm tra tính đắn câu lệnh chương trình nguồn

 Chuyển đổi câu lệnh thành nhiều câu lệnh tương ứng NN máy

 Thực câu lệnh vừa chuyển

b) Biên dịch:

 Duyệt, phát lỗi, kiểm tra tính đắn câu lệnh

 Dịch tồn chương trình nguồn thành chương trình đích thực máy lưu trữ để sd lại cần thiết

V CỦNG CỐ - DẶN DÒ a Củng cố:

Thế lập trình?

Chức chương trình dịch?

Sự giống khác biên dịch thông dịch?

b Dặn dò: Soạn trước:

? Thành phần NNLT?

? Thế tên? Qui tắc đặt tên?

? Có loại tên? phải nhớ tên riêng? ? Thế hằng? biến?

(4)

CÁC THÀNH PHẦN CƠ BẢN CỦA NGƠN NGỮ LẬP TRÌNH

 I MỤC ĐÍCH U CẦU

- Biết ngơn ngữ lập trình có ba thành phần

- Biết số khái niệm tên, tên dành riêng, tên chuẩn, biến

- HS nhớ qui định cách đặt tên hằng, biến Biết nhận biết tên đặt sai,

II PHƯƠNG PHÁP

Diễn giảng kết hợp phát vấn

III PHƯƠNG TIỆN DẠY HỌC

SGK, SGV, có máy chiếu tốt

IV NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP 1 Ổn định lớp (Kiểm tra sỉ số)

2 Kiểm tra cũ

Câu 1: Chức chương trình dịch

Câu 2: Sự giống khác biên dịch thông dịch

3 Nội dung

HOẠT ĐỘNG CỦA GV HOẠT ĐỘNG CỦA HS NỘI DỤNG

Hoạt động 1:

? Có yếu tố để xây dựng nên ngôn ngữ tiếng Việt?

NNLT tương tự vậy, gồm thành phần: bảng chữ cái, cú pháp ngữ nghĩa

? Hãy đọc SGK trang 9 cho thầy biết Pascal bảng chữ bao gồm kí tự nào?

Sau HS trả lời treo bảng khổ lớn bảng chữ

Bảng chữ NNLT nói chung khơng khác nhiều

VD: C++ khác với Pascal cịn có sd thêm kí tự dấu (“), ( \), ( ! )

Nhờ vào chúng mà chương trình dịch biết tổ hợp kí tự bảng chữ hợp lệ tổ hợp

 Bảng chữ tiếng Việt, số, dấu

 Cách ghép kí tự thành câu, cách ghép từ thành câu  Ngữ nghĩa từ và câu

Đọc SGK trả lời câu hỏi

Chú ý nghe giảng

1 Các thành phần bản a) Bảng chữ

Tập hợp kí tự dùng để viết chương trình

Khơng dùng kí tự ngồi kí tự qui định bảng chữ

Ví dụ:

Trong Pascal bảng chữ bao gồm: Chữ thường chữ in hoa tiếng Anh

a z ; A Z;

10 chữ thập phân: kí tự đặc biệt:

+ - * / = < < [ ] , ; # ^ @ $ & ( ) { } : ‘

Dấu cách (mã ASCII 32) 

b) Cú pháp Là qui tắt để viết chương

trình

Ngày soạn: 08/8/2010 Tuần:

(5)

nào khơng hợp lệ Nhờ đó, mơ tả thuật toán để máy thực

VD: phần lớn NNLT sd dấu cộng ( +)

Xét hai biểu thức sau:

A + B (1)

I + J (2)

Giả sử: A, B đại lượng nhận giá trị thực; I, J nhận giá trị nguyên

(giải thích số thực số nguyên)

Dấu (+) biểu thức (1) cộng hai số thực

Dấu (+) biểu thức (2) cộng hai số nguyên

Hoạt động 2: Một số khái niệm

Một khái niệm tên

Tên phải đặt theo qui tắc đặt tên tuỳ vào NNLT

? Những tên tên nào qui tắc tên sai qui tắc NNLT Pascal? LOP11C2

LOP 11C2 LOP_11C2 2D

A\B

Lưu ý: NNLT Pascal không phân biệt chữ hoa chữ thường

Lấy ví dụ tên HS Tên có loại tên sau:

Chúng ta không dùng tên với ý nghĩa khác

? Trong Pascal có những tên riêng nào?

Ý nghĩa tên chuẩn qui định thư viện NNLT

? Trong Pascal có những tên chuẩn nào?

Chúng ta nên đặt tên cho gợi nhớ nội dung khơng nên đặt dài hay

Những tên đúng: LOP11C2 LOP_11C2 Những tên sai

LOP 11C2, 2D, A\B

Program, uses, const, type, var, begin, end…

abs, sqr, sqrt, byte, integer, real, longin…

c) Ngữ nghĩa xác định ý nghĩa thao tác

cần phải thực hiện, ứng với tổ hợp kí tự dựa vào ngữ cảnh

2 Một số khái niệm a) Tên

Mọi đối tượng chương trình phải đặt tên theo qui tắc NNLT chương trình dịch cụ thể

* Trong Turbo Pascal tên:

- Khơng chứa dấu cách, khơng q 127 kí tự, khơng chứa kí hiệu đặc biệt

- Bắt đầu chữ dấu gạch

VD:

- Tên

LOP11C2, LOP_11C2 - Tên sai:

LOP 11C2, 3D, A\B

* Tên dành riêng (từ khoá): NNLT qui định dùng với ý nghĩa xác định

Vd: Trong pascal: program, uses, const, type, var, begin, end…

* Tên chuẩn: dùng với ý nghĩa Nhưng ta khai báo dùng với ý nghĩa mục đích khác

(6)

ngắn vd: để đặt tên cho điểm mơn tốn ta nên đặt dtoan khơng nên đặt dt hay diem_mon_toan

? Vì ta phải nhớ tên dành riêng?

Hằng có nhiều loại như: số học, logic, xâu…

VD: DELTA, I, J…

Khi đặt thích chương trình dịch bỏ qua

Để đặt tên khơng trùng

* Tên người lập trình đặt: tên xác định cách khai báo trước sd, không trùng với tên dành riêng Vd: X1; X2; DELTA, CT_VD; BAI6_3

b) Hằng biến * Hằng:

Hằng đại lượng không thay đổi trình thực chương trình Vd: - số học: 2; 0; -5; 1.25; -2.36

- logic: TRUE; FALSE

- xâu: ‘tin hoc’; ‘nguyen_van_A’; ‘Truong THPT Duyen Hai’

* Biến:

Biến đại lượng đặt tên, dùng để lưu trữ giá trị giá trị thay đổi trình thực chương trình

c) Chú thích:

Đặt thích để người đọc chương trình dễ hiểu

Trong pascal thích đặt dấu (* *) { }

V.CỦNG CỐ - DẶN DÒ 1 Củng cố:

- Thành phần NNLT: bảng chữ cái, cú pháp, ngữ nghĩa - Một số khái niệm: tên, hằng, biến

2 Dặn dò:

(7)

BÀI TẬP CUỐI CHƯƠNG 1

- -I MỤC ĐÍCH - YÊU CẦU

- Củng cố lại kiến thức chương - Giải số tập chương

II PHƯƠNG PHÁP

Phát vấn kết hợp làm việc theo nhóm diễn giảng

III NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP 1 Ổn định lớp: (Kiểm tra sĩ số)

2 Kiểm tra cũ

Câu 1: Hãy kể tên thành phần NNLT?

Câu 2: Thế tên dành riêng? Tại ta phải nhớ tên dành riêng? Câu 3: Những tên sau qui tắc, sai qui tắc?

_VIDU1; A#B; VI_DU1; VAR; VAR1

3 Nội dung:

HOẠT ĐỘNG CỦA GV HOẠT ĐỘNG CỦA HS NỘI DỤNG

Câu Tại người ta phải

xây dựng NNLT bậc cao?

Câu 2: Chương trình dịch là

gì? Tại phải có chương trình dịch?

Nêu Input Output chương trình dịch

Câu 3: Biên dịch thông

dịch khác chỗ nào?

Câu Cho biết điểm

khác tên riêng tên chuẩn?

Gọi em trả lời

Câu 5: Hãy viết tên đúng

và tên sai theo qui tắc Pascal

Câu 6: Hãy cho biết những

biểu diễn không

Trao đổi nhóm phút

Trao đổi nhóm phút?

Trả lời câu hỏi

Trả lời câu hỏi

-3 tên đúng: VI_DU, _BAI6, BAITAP

- Tên sai: 2AB, I+J, BAI TAP

Câu 1

Người ta phải xây dựng NNLT bậc cao:

- NNLT bậc cao gần với NN tự nhiên hơn, thuận tiện cho đông đảo người lập trình

- Chương trình viết NNLT bậc cao phụ thuộc vào máy

- Chương trình viết NNLT bậc cao dễ hiểu, dễ hiệu chỉnh dễ nâng cấp - Cho phép làm việc với nhiều kiểu liệu cách tổ chức liệu đa dạng thuận tiện cho mơ tả thuật tốn

Câu 2:

- SGK trang

- Nhờ có chương trình dịch mà chương trình dịch mà máy thực chương trình viết NNLT bậc cao

Câu 4: tên dành riêng không dùng

với ý nghĩa khác; tên chuẩn dùng với ý nghĩa khác

Ngày soạn: 14/8/2010 Tuần:

(8)

phải biểu diễn Pascal lỗi trường hợp:

a) 150.0 b) -22 c) 6,23 d) ‘43’ e) A20 f) ‘C g) 1.06E-15 h) 4+6 i) ‘TRUE”

Nếu thời gian cho bài tập thêm:

Câu 7: Hãy tên

nào tên sai Pascal giải thích lí do:

#TONG 1DIEM SO2

USES1 DT HV END

EN5D BAI_1 BAI1

Câu 8: thích nào

sau sai? Giải thích lí do?

a (*giải phương trình* b.(*giải phương trình*) c.(*giải phương trình} d.{giải phương trình e.{giải {phương{ trình} f.{giải (*phương trình}

Thảo luận phút

Những tên sai:

#TONG : Sai tên bắt đầu kí tự đặc biệt #

1DIEM : Sai bắt đầu kí tự số

END : Sai trùng với từ khố

DT HV : Sai có dấu cách

Chú thích sai: a : sai thiếu dấu )

c : sai mở (* đóng }

d : sai thiếu dấu }

Những biểu diễn không hằng:

6,23: dấu phẩy (nếu dấu chấm đúng)

A20: tên khơng rõ giá trị

‘C: sai qui định xâu: thiếu dấu nháy đơn cuối

IV DẶN DÒ

Về nhà học tiết sau kiểm tra 15 phút Soạn trước theo câu hỏi sau:

Câu 1: Cấu trúc chương trình viết NNLT?

Câu 2: Các cách khai báo Pascal: khai báo tên chương trình, khai báo thư viện, khai báo hằng, khai báo biến

Câu 3: thân chương trình Pascal gồm từ khố nào?

(9)

KIỂM TRA ĐÁNH GIÁ 15 PHÚT

I MỤC ĐÍCH

Kiểm tra lại khã tiếp thu q trình học tập HS Từ điều chỉnh phương pháp giảng dạy

II BẢNG RA ĐỀ KIỂM TRA

III NỘI DUNG

IV KẾT QUẢ KIỂM TRA

Trên trung bình: Dưới trung bính:

Mức độ Bài Bài

Biết 1, 2, 3, 5, 6, 7, 8, 10, 13, 14, 15, 18, 19, 20

Hiểu 9, 11, 12

(10)

CHƯƠNG II CHƯƠNG TRÌNH ĐƠN GIẢN -

 -BÀI CẤU TRÚC CHƯƠNG TRÌNH

I MỤC ĐÍCH – U CẦU

Hiểu chương trình mơ tả thuật tốn NNLT

Biết cấu trúc chương trình đơn giản: cấu trúc chung thành phần Nhận biết thành phần chương trình đơn giản

II PHƯƠNG PHÁP

Phát vấn kết hợp với diễn giảng

III PHƯƠNG TIỆN DẠY HỌC

SGK, SGV, giáo án, số bảng vẽ lớn

IV NỘI DUNG VÀ DIỄN BIẾN TIẾT DẠY 1 Ổn định lớp (kiểm tra sĩ số)

2 Kiểm tra cũ

Câu 1: NNLT có thành phần nào?

Câu 2: Thế tên dành riêng? Viết số tên dành riêng mà em biết? Câu 3: Tên dành riêng khác với tên chuẩn điểm nào?

3 Nội dung

HOẠT ĐỘNG CỦA GV HOẠT ĐỘNG CỦA HS NỘI DUNG

Hoạt động 1:

? Một làm văn em thường viết có phần? phần có thứ tự không? phải chia vậy?

Tư tự chương trình viết NNLT bậc cao có thành phần thứ tự thành phần

Yêu cầu HS đọc SGK

? Cấu trúc chung chương trình viết NNLT bậc cao có thành phần nào?

Phần khai báo đặt dấu ngoặc vng có nghĩa có khơng Phần thân thiết phải có

? Trong khai báo có loại nào?

? Để khai báo tên chương trình ta khoá nào?

Khai báo tên chương trình có ý nghĩa để ghi nhớ tên tốn cần giải

Một số NNLT không cần

Lắng nghe, suy nghĩ trả lời:  Có phần

 Có thứ tự: mở bài, thân bài, kết luận

 Để dễ viết, dễ đọc, dễ hiểu nội dung

Đọc SGK Trả lời câu hỏi

Bắt đầu từ khoá

Program

1 Cấu trúc chung

[<phần khai báo>] <phần thân>

2 Thành phần chương trình a Phần khai báo:

a1) Khai báo tên chương trình Cú pháp:

Program <tên chương trình>;

Ví dụ:

Program giai_phuong_trinh; Program VI_DU;

Ngày soạn: 24/8/2010 Tuần:

(11)

phải khai báo tên chương trình

Lưu ý kết thúc câu lệnh ta dùng dấu chấm phẩy‘;’

Mỗi NNLT thường có sẵn số thư viện cung cấp số chương trình thơng dụng lập sẵn để sử dụng chương trình cần khai báo thư viện chứa

Trong thư viện CRT pascal cung cấp chương trình có sẵn để làm việc với hình văn bàn phím

Khai báo thường sử dụng cho giá trị xuất nhiều lần chương trình

? Yêu cầu lấy ví dụ khai báo Pascal

Tất biến dùng chương trình phải đặt tên phải khai báo cho chương trình dịch biết để lưu trữ xử lí

Khai báo biến ta học Ở ta làm quen khái niệm biến đơn

Ví dụ: khảo sát phương trình đường thẳng ax + by + c = hệ số a, b, c khai báo biến đơn

Ngồi ta cịn khai báo chương trình trình bày chương VI

? Dấu hiệu để nhận biết thân chương trình

Hướng dẫn học sinh bước  Khai báo tên chương trình  Dùng câu lệnh đưa hình lệnh Write hay Writeln Pascal

Yêu cầu học sinh viết chương trình này?

Giải thích khác lệnh write writeln

Ví dụ tương tự ví dụ thêm câu lệnh Writeln

Ví dụ:

CONST Nmax = 1000; PI = 3.14;

Thân chương trình nằm hai từ khố mở đầu kết thúc

Một em lên bảng trình bày em khác làm nháp

a2) Khai báo thư viện Cú pháp:

USES <tên thư viện>;

Ví dụ: khai báo thư viện pascal:

USES CRT;

Sau khai báo CRT ta dùng lệnh: clrscr; (lệnh xóa hình) a3) Khai báo hằng

Cú pháp

CONST Tên _hằng = giá trị;

a4) Khai báo biến:

Biến đơn biến nhận giá trị thời điểm thực chương trình

b) Phần thân chương trình:

Thân chương trình Pascal

3 Ví dụ chương trình đơn giản Ví dụ 1: viết chương trình đưa

màn hình thơng báo ‘Xin chao cac ban!’

Program vi_du1; Begin

writeln(‘Xin chao cac ban’);

End. Ví dụ 2:

Program vi_du2;

BEGIN

[<dãy câu lệnh>]

(12)

Yêu cầu học sinh viết chương trình này?

Lên bảng viết chương trình Begin

writeln(‘Xin chao cac ban’); writeln(‘Moi cac ban lam quen voi Pascal’);

End.

V CỦNG CỐ DẶN DÒ 1 Củng cố:

 Cấu trúc chương trình có phần?

 Các từ khố khai báo: tên chương trình; hằng; thư viện.  Dấu hiệu nhận biết thân chương trình Pascal

2 Dặn dò

Về nhà soạn 4, SGK

 Trong Pascal sử dụng kiểu liệu nào? Phạm vi kiểu?  Cách khai báo biến Ví dụ khai báo biến Pascal.

(13)

§ MỘT SỐ KIỂU DỮ LIỆU CHUẨN § KHAI BÁO BIẾN

I MỤC ĐÍCH – YÊU CẦU

Biết số kiểu liệu chuẩn: nguyên; thực, logic, kí tự Xác định kiểu cần khai báo liệu đơn giản Hiểu cách khai báo biến

Biết khai báo biến

II PHƯƠNG PHÁP

Diễn giảng, phát vấn kết hợp làm việc nhóm

III PHƯƠNG TIỆN DẠY HỌC

Bảng vẽ khổ lớn, SGK, giáo án…

IV NỘI DUNG VÀ DIỄN BIẾN TIÉT DẠY 1 Ổn định lớp (kiểm tra sĩ số)

2 Kiểm tra cũ

Câu 1: Cấu trúc chung chương trình viết NNLT bậc cao?

Câu 2: Trong Pascal khai báo tên chương trình, thư viện, ta dùng từ khoá nào? 3 Nội dung

HOẠT ĐỘNG CỦA GV HOẠT ĐỘNG CỦA HS NỘI DUNG

Các tốn thực tế thường có liệu vào kết thuộc kiểu liệu quen biết: số nguyên, thực, kí tự…

Treo bảng vẽ lên bảng Ta nên chọn kiểu số nguyên cho phù hợp để tốn nhớ

Có nhiều kiểu dùng để khai báo đại lượng nhận giá trị số thực Thường dung kiểu liệt kê bảng

Treo bảng lên

? Ở kí tự kí

tự bảng mã ASCII Bộ mã ASCII kí tự?

Ví dụ kí tự A có mã

§ MỘT SỐ KIỂU DỮ LIỆU CHUẨN 1 Kiểu nguyên

Kiểu Bộ nhớ lưu trữ

một giá trị Phạm vi giá trị

Byte Byte → 255

Integer Byte -215 → 215 – 1

Word Byte → 216-1

Longint Byte -231 → 231-1

2 Kiểu thực

Kiểu

Bộ nhớ lưu trữ giá

trị Phạm vi giá trị Real Byte giá trị tuyệt đối nằm phạm vi

10-38 Đến 1038

Extended 10 Byte giá trị tuyệt đối nằm phạm vi 10-4932 đến 104932

3 Kiểu kí tự

Kiểu

Bộ nhớ lưu trữ giá

trị

Phạm vi giá trị Char Byte 256 Ktự mã

Ngày soạn: 3/9/2010 Tuần:

(14)

ASCII thập phân 65 ? Dấu cách có mã ASCII bao nhiêu?

Chú ý: người lập trình

cần tìm hiểu đặc trưng kiểu liệu chuẩn xác định dịch sử dụng để khai báo biến

Như nói trên, biến dùng chương trình cần khai báo tên kiểu liệu Tên biến dung để xác lập quan hệ biến với địa nhớ nơi lưu giữ giá trị biến

? Trong chương trình biến khai báo lần?

Phần trình bày chương IV Ta khai báo nào?

Ví dụ 2:

Xét khai báo sau:

VAR

X, Y, Z: real; C: char; I, J: byte; N: word;

? Trong khai báo

nhớ cần cấp phát ?

Khi khai báo ta cần ý

Bộ mã ASCII có 256 kí tự Dấu cách có mã ASCII 32

Một lần

Lên bảng khai báo

Bộ nhớ cấp cho ba biến X, Y, Z 18 byte

ASCII

4 Kiểu lôgic

Kiểu Bộ nhớ lưu trữ giá

trị

Phạm vi giá trị Boolean Byte True False

§ KHAI BÁO BIẾN

Mọi biến dùng chương trình cần khai báo tên kiểu liệu

Trong Pascal khai báo biến khoá

VAR Cú pháp

VAR <danh sách biến>: <kiểu liệu>;

Danh sách biến: gồm nhiều biến, các biến viết cách dấu phẩy;

Kiểu liệu kiểu liệu chuẩn kiểu dũ liệu người lập trình tự định nghĩa

Ví dụ 1: GSử chương trình cần biến

A, B, C, D, X1, X2 biến thực M, N biến nguyên

Ta khai báo

VAR

(15)

đến số vấn đề sau: - Ví dụ: cần đặt tên hai biến biểu diễn điểm toán, điểm tin mà khơng nên ngắn gọn mà đặt d1, d2 mà nên đặt dtoan, dtin

- Ví dụ khơng nên dùng d1, d2 diemmontoan, diemmontin Ví dụ khai báo biến số học sinh lớp nên khai báo biến thuộc kiểu byte, số HS tồn trường phải kiểu word

C byte I, J byte N byte

Tổng cộng: 23 byte

* Một số vấn đề cần ý:

- Cần đặt tên biến cho gợi nhớ ý nghĩa của biến đó.

- Khơng nên đặt tên biến ngắn hay dài, dễ mắc lỗi viết tên biến nhiều lần.

- Khai báo biến cần đặc biệt lưu ý đến phạm vi giá trị nó.

V CỦNG CỐ DẶN DÒ 1 Củng cố:

- Các kiểu liệu chuẩn: số nguyên (integer), số thực (real), kí tự (char), logic (Boolean) - Mọi biến chương trình đèu phải khai báo tên kiểu liệu

VAR <danh sách biến>: <kiểu liệu>;

2 Dặn dò

Về nhà học trả lời câu hỏi 1; 2; 3; 4; SGK trang 35

Soạn 6:

Yêu cầu 1: lớp chia làm nhóm chuẩn bị bảng phụ ghi bảng sau:

Tổ 1: ghi bảng phép toán Pascal

Tổ 2: ghi qui tắt viết biểu thức toán học Pascal Tổ 3: chuẩn bị bảng số hàm chuẩn

Yêu cầu 2: soạn phần 4, 5, 6

Câu 1: biểu thức quan hệ có dạng nào? Trình tự thực biểu thức quan hệ? Kết biểu thức quan hệ?

Câu 2: Biểu thức lôgic gồm biểu thức nào? Các biểu thức quan hệ đặt đâu? Giá trị thực biểu thức logic?

(16)

§ PHÉP TỐN, BIỂU THỨC, CÂU LỆNH GÁN

I MỤC ĐÍCH – YÊU CẦU

Biết khái niệm: phép toán, biểu thức số học, hàm số học chuẩn, biểu thức quan hệ Hiểu lệnh gán

Viết lệnh gán

Viết biểu thức số học logic với phép tốn thơng dụng

II PHƯƠNG PHÁP

Phát vấn diễn giảng

III PHƯƠNG TIỆN DẠY HỌC

Bảng phụ, SGK, giáo án…

IV NỘI DUNG VÀ DIỄN BIẾN TIÉT DẠY 1 Ổn định lớp (kiểm tra sĩ số)

2 Kiểm tra cũ

Câu 1: Có kiểu liệu chuấn nào?

Câu 2: Để khai báo tuổi người tốt ta dùng kiểu liệu nào?

Câu 3: giả sử ta có biến sau: x, y nhận giá trị thực; i, j nhận giá trị nguyên ta khai báo

như nào?

3 Nội dung

HOẠT ĐỘNG CỦA GV HOẠT ĐỘNG CỦA HS NỘI DUNG

Để mô tả thao tác thuật toán, NNLT xác định sd khái niệm bản: Phép toán, biểu thức gán giá trị cho biến

Hoạt động 1

? Hãy kể phép toán toán học

Tương tự Pascal có phép tốn diễn đạt cách

Cho tổ treo bảng phụ phép toán bảng

Giải thích phép tốn div, mod, not, or, and.

Chú ý:

Kết phép toán quan hệ cho giá trị logic

Ứng dụng phép toán logic để tạo biểu thức phức tạp từ quan hệ đơn giản

Cộng, trừ, nhân, chia, lấy phần dư, chia nguyên…

Lên treo bảng phụ chuẩn bị trước

§ PHÉP TỐN, BIỂU THỨC, CÂU LỆNH GÁN

1 Phép tốn

Phép toán Trong toánhọc PascalTrong Các phép

toán số học với số nguyên

+, -, x, /, div, mod

+, -, x, /, div, mod Các phép

toán số học

với số thực +, -, x, / +, -, x, / Các phép

toán quan

hệ 

   

,

, , ,

, <, <=, >,

>=, =, <> Các phép

toán lôgic  (phủ dịnh), 

(hoặc), 

(và)

not, or, and

Ngày soạn: 10/9/2010 Tuần:

(17)

Hoạt động 2

Trong lập trình, biểu thức số học biến kiểu số biến kiểu sô số liên kết với số hữu hạn phép toán số học dấu ngoặc tròn (và )

Treo bảng tổ chuẩn bị

Lấy số ví dụ

Yêu cầu HS viết cho

Chú ý:

Nếu biểu thức chứa hay biến thực ta có biểu thức số học thực, giá trị biểu thức thuộc kiểu thực

Trong số trường hợp nên dùng biến trung gian

Hoạt động 3

Để lập trình dễ dàng thuận tiện hơn, NNLT có thư viện chứa số chương trình tính giá trị hàm tốn học thường dùng

Cú pháp:

Hàm(đối số) Treo bảng hàm chuẩn

Yêu cầu hai học sinh lên bảng biểu diễn

Hoạt động 4

Hai biểu thức kiểu liên

Tổ đem bảng lên

Lên bảng viết biểu thức tương ứng

Hai em lên bảng

2 Biểu thức số học

Qui tắc viết biểu thức:

- Dùng dấu ngoặc tròn để xác định trình tự thực phép tốn

- Viết từ trái sang phải

- Khơng bỏ qua dấu nhân (*) tích

Thứ tự thực phép toán: - Trong ngoặc thực trước

- Nếu khơng có dấu ngoặc thực từ trái sang phải theo thứ tự nhân, chia, div, mod, thực trước sau cộng, trừ Vd: 3x7y 3*x7*y

c b a c ab / *  C x B x x A C Bx

Ax2   * *  * 

xy z x x y x    

→(x + y)/(x -1/2) – (x-z)/(x*y)

3 Hàm số học chuẩn

Hàm Toánhọc Pascal đối sốKiểu kết quảKiểu

Bình

phương x2 sqr(x) I or R

Theo kiểu đối

số Căn bậc

hai sqrt(x) I or R R Trị tuyệt

đối |x| abs(x) I or R

Theo kiểu đối

số

Lôgarit Lnx ln(x) R R

Lũy thừa

của e ex exp(x) R R

Sin sinx sin(x) R R

Cos cosx cos(x) R R

VD: a

a ac b b    → (-b+sqrt(sqr(b)-4*a*c)/(2*a) b sinx 1 cos2 x

 

→ sin(x) = sqrt(1-sqr(cos(x)))

(18)

kiết với phép toán quan hệ cho ta biểu thức quan hệ

Biểu thức quan hệ có dạng nào?

Lấy ví dụ cụ thể i +1 >=2*j Lấy ví dụ SGK

Hoạt động 5

Các biểu thức quan hệ thường được đặt ngoặc trịn

Giải thích biểu thức quan hệ Kết biểu thức quan hệ TRUE FALSE

Hoạt động 6

Trong trường hợp đơn giản tên biến biến đơn

Kiểu biểu thức phải kiểu biến

VD: biến kiểu thực biểu thức phải kiểu thực

Dấu := có nghĩa giá trị giá trị biểu thức vế phải

Chú ý: viết dấu ( : )sát với dấu

Ý nghĩa lệnh giảm giá trị z đơn vị

Ý nghĩa lệnh tăng giá trị x lên đơn vị

Đọc SGK, lên bảng viết - Dạng:<Bthức 1><Phép toán qhệ><Bthức 2>

VD: x<5

i + >= 2*j - Trình tự thực hiện:

+ Tính giá trị biểu thức

+ Thực phép toán quan hệ - Kết quả: TRUE FALSE

5 Biểu thức logic

- Biểu thức logic đơn giản biến logic

- Biểu thức logic biểu thức logic đơn giản, biểu thức quan hệ lien kết với phép toán logic

VD: not(4>6)

(5 <= x) and (x<=11)

(M mod = 0) or (N mod = 0)

6 Câu lệnh gán

- Dạng:

<tên biến> := <biểu thức>;

VD: x1:= (-b + sqrt(delta))/(2*a); x2 := -b/a – x1;

z := z – 1; x := x + 1;

V CỦNG CỐ DẶN DỊ 1 Củng cố:

Các phép tốn , biểu thức số học, hàm chuẩn, biểu thức quan hệ, biểu thức lôgic, câu lệnh gán Pascal

2 Dặn dị

(19)

§7 CÁC THỦ TỤC CHUẨN VÀO/RA ĐƠN GIẢN §8 SOẠN THẢO, DỊCH, THỰC HIỆN

HIỆU CHỈNH CHƯƠNG TRÌNH

I MỤC ĐÍCH – YÊU CẦU

Biết lệnh vào/ra đơn giản để nhập liệu từ bàn phím đưa liệu hình Viết số lệnh vào đơn giản

Biết bước: soạn thảo, dịch, thực hiệu chỉnh chương trình Biết số công cụ môi trường Turbo pascal

Bước đầu sd chương trình dịch để phát lỗi

Bước đầu chỉnh sửa chương trình dựa vào thong báo lỗi chương trình dịch tính hợp lí kết thu

II PHƯƠNG PHÁP

Phát vấn diễn giảng

III PHƯƠNG TIỆN DẠY HỌC

Máy chiếu, máy tính có soạn sẵn chương trình đơn giản, SGK, giáo án…

IV NỘI DUNG VÀ DIỄN BIẾN TIÉT DẠY 1 Ổn định lớp (kiểm tra sĩ số)

2 Kiểm tra cũ

Câu 1: Viết biểu thức biểu diễn toán học sang biểu thức pascal

d b c a

 ; (x y)

y z x

xz y x

 

Câu 2: Biểu diễn hàm sau pascal:

x x

x x

sin cos

) ( sin cos2

 

3 Nội dung

HOẠT ĐỘNG CỦA GV HOẠT ĐỘNG CỦA HS NỘI DUNG

Đặt vấn đề

Để khởi tạo giá trị ban đầu biến, ta dùng lệnh gán để gán giá trị cho biến Như chương trình ln làm việc với liệu vào

Để chương trình làm việc với nhiều liệu vào khác nhau, thư viện NNLT cung cấp số chương trình dùng để dưa liệu vào đưa liệu

Các chương trình đưa liệu vào gọi chung thủ tục chuẩn vào/ra đơn giản

Hoạt động 1

Chú ý lắng nghe

§7 CÁC THỦ TỤC CHUẨN VÀO/RA ĐƠN GIẢN

1 Nhập liệu vào từ bàn phím

Cú pháp:

Ngày soạn: 13/9/2010 Tuần:

(20)

Danh sách biến gồm nhiều biến(trừ biến kiểu Boolean) Trường hợp có nhiều biến tên biến viết cách dấu phẩy

? Lệnh thứ lệnh thứ hai dùng để làm gì?

Khi nhập giá trị cho nhiều biến, giá trị gõ cách dấu cách hoặc xuống dòng (nhấn Enter)

Nhập giá trị biến nguyên không sd dấu chấm thập phân

Nhập giá trị biến thực nhập bình thường dùng dấu phẩy động

Vd: nhập giá trị cho a, b, c 1, -5, ta gõ;

1 -5  1.0  -5  

Hoạt động 2

? viết cú pháp thủ tục đưa ra

màn hình?

? Phân biệt thủ tục write và writeln

Minh hoạ cụ thể

Giải thích qui cách

Lệnh thứ để nhập N Lệnh thứ hai để nhập a, b, c

Lên bảng viết

Write đưa kết hình trỏ khơng chuyển xuống dịng, cịn thủ tục writeln đưa hình trỏ tự động xuống dòng

Read(<danh sách biến vào>);

hoặc

Readln(<danh sách biến vào>);

Ví dụ: read(N); readln(a, b, c);

Nhập giá trị cho a, b, c 1, -5, ta gõ:

1 -5  1.0  -5  

2 Đưa liệu hình

*Cú pháp:

Write(<danh sách kết ra>);

writeln(<danh sách kết ra>); Vd để nhập giá trị cho biến M ta dùng

Writeln('nhap gia tri M’); Readln(M);

*Chú ý:

Các thủ tục readln write khơng có tham số.

Trong thủ tục write writeln, sau kết qui cách ra:

+ Đối với kết thực :<độ rộng>:<số chữ số thập phân>

+ Đối với kết khác: : <độ rộng>

Ví dụ:

Writeln(N:5, x:6:2); Write(( i:3, j:4, a+b:8:3);

Để thực chương trình viết NNLT, cần soạn thảo, sd chương trình dịch để dịch chương trình

(21)

sang NN máy Các hệ thống lập trình cụ thể thường cung cấp phần mềm phục vụ cho việc soạn thảo, dịch hiệu chỉnh chương trình

Chiếu lên hình

Giới thiệu sơ lược hình Pascal

Việc soạn thảo giống soạn thảo word lưu ý không bỏ dấu

Nếu chương trình có lỗi cú pháp phần mềm hiển thị thông báo Cần sửa lỗi lại biên dịch lại tới khơng cịn lỗi

§8 SOẠN THẢO, DỊCH, THỰC HIỆN HIỆU CHỈNH CHƯƠNG

TRÌNH

- Màn hình làm việc Pascal

- Soạn thảo: gõ nội dung chương trình gồm phần khai báo lệnh phần thân

- Lưu chương trình:

 Nhấn phím F2 → gõ tên tệp  Vào File → Save → gõ tên tệp - Biên dịch chương trình: Nhấn Alt +F9 - Chạy chương trình: nhấn Ctrl + F9 - Dóng cửa sổ chương trình: nhấn phím

Alt + F3

- Thốt khỏi phần mềm: Alt + X

- Mở tệp có: nhấn phím F3

V CỦNG CỐ DẶN DÒ 1 Củng cố:

Viết thủ tục đưa liệu vào/ra: write( ) writeln( ), read( ) readln Các thao tác lưu tệp, dịch chương trình, đóng cửa sổ, đóng phần mềm, mở tệp

2 Dặn dò

(22)

BÀI THỰC HÀNH 1

I MỤC ĐÍCH – YÊU CẦU 1 Kiến thức

 Giới thiệu chương trình Pascal hồn chỉnh đơn giản;

 Làm quen với số dịch vụ Turbo Pascal Free Pascal việc soạn thảo, lưu trữ, dịch thực chương trình

2 Kĩ năng

 Soạn chương trình, lưu đĩa, phát thơng báo lỗi cú pháp, thực tìm lỗi thuật toán, hiệu chỉnh

 Bước đầu biết phân tích hồn chỉnh chương trình đơn giản Turbo Pascal

3 Thái độ

Tự giác, tích cực, chủ động thực hành

II PHƯƠNG PHÁP

Nêu vấn đề giải vấn đề

III PHƯƠNG TIỆN DẠY HỌC

Phòng máy thực hành trường, máy chiếu có

IV NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP 1 Ổn định lớp (kiểm tra sĩ số)

2 Nội dung

HOẠT ĐỘNG CỦA GV HOẠT ĐỘNG CỦA HS NỘI DUNG

Phổ biến nội qui phịng máy Chiếu chương trình lên bảng yêu cầu học sinh thực nhiệm vụ

Hướng dẫn học sinh cách khởi động chương trình Pascal

Soạn chương trình vào máy Lưu chương trình với tên PTB2.PAS

Dịch sửa lỗi cú pháp Thực chương trình

Nhập liệu 3 Xem kết

Trở hình soạn thảo Thực chương trình Nhập liệu xem thơng báo

? Vì có lỗi xảy Sửa lại chương trình khơng dùng biến D

Khởi động chương trình Pascal

Gõ nội dung vào máy

Program Giai_PTB2; Uses crt;

Var a, b, c, D: real; x1, x2 : real;

Begin

Clrscr;

Write(‘a, b, c: ‘); Readln(a, b, c); D:=b*b  4*a*c;

x1 = (b  sqrt(D))/(2*a); x2 = b/a  x1;

writeln(‘x1= ‘, x1:6:2,’x2 = ‘,x2:6:2); readln

End.

x1 = (b  sqrt(b*b4*a*c))/(2*a); x2 = (b +sqrt(b*b  4*a*c))/(2*a) writeln(‘x1= ‘, x1:6:2,’x2 = ‘,x2:6:2); readln

Nếu thời gian cho thêm tập

Chiếu nội dung tập lên Quan sát lắng nghe

Viết chương trình tính diện tích hình tơ màu, với a nhập vào bàn phím

Ngày soạn: 20/9/2010 Tuần:

(23)

Phân tích hướng dẫn học sinh làm toán

? Dữ liệu vào? ? Dữ liệu ra? Cách tính:

u cầu HS soạn chương trình lưu đĩa

Quan sát hướng dẫn HS lúc thực hành

Yêu cầu HS nhập liệu thông báo kết

a =

Dữ liệu vào a Dữ liệu S

Tính diện tích hình trịn diện tích hình vng Diện tích hình tơ đen = diện tích hình trịn - diện tích hình vng

- Soạn chương trình - Nhấn phím F2, gõ tên vào - Nhấn phím Alt + F9, dịch sửa lỗi có

- Nhấn phím Ctrl + F9 để thực chương trình Nhập liệu vào

S1:= Pi*R*R; S2:= sqr(a*sqrt(2)); S := S1- S2;

Với a = ta S = 10.26

Với a = - kết khơng độ dài cạnh phải hình vng

V CỦNG CỐ - DẶN DỊ 1 Củng cố:

Các bước để hoàn thành chương trình - Xác định liệu vào, liệu

- Xác định thuật toán

- Soạn chương trình vào máy - Lưu trữ chương trình - Biên dịch chương trình

- Thực hiệu chỉnh chương trình

2 Dặn dị

(24)

BÀI TẬP CHƯƠNG 2

I MỤC ĐÍCH – YÊU CẦU 1 Kiến thức

− Cũng cố nội dung đạt tiết thực hành − Biết sử dụng thủ tục chuẩn vào/ra

− Biết xác định Input Output

II PHƯƠNG PHÁP

Nêu vấn đề giải vấn đề

III PHƯƠNG TIỆN DẠY HỌC

Hình vẽ khổ lớn, bảng phụ…

IV NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP 1 Ổn định lớp (kiểm tra sĩ số)

2 Kiểm tra cũ:

Câu Trong Pascal, biến nhận giá trị nguyên từ phạm vi 10 đến 25532 biến có

thể khai báo kiểu liệu nào?

Câu Viết dạng thủ tục vào/ra? Cho biết khác thủ tục write writeln?

Câu Biến P nhận giá trị 5, 10, 15, 20, 30, 60, 90 biến X nhận giá trị 0.1, 0.2, 0.3,

0.4, 0.5 Khai báo khai báo sau đúng?

a Var X, P: byte; b Var X, P: real;

c Var P: real; d Var X: real;

X: byte; P: byte;

3 Nội dung

HOẠT ĐỘNG CỦA GV HOẠT ĐỘNG CỦA HS NỘI DUNG

Yêu cầu học sinh lên bảng biểu diễn

Yêu cầu HS lên bảng

Lên bảng biểu diễn Pascal

a

b a b

a

2  b

2

abc

c

ac b c

b

a

1

d

b a

b

2

Bài tr35

Hãy biểu diễn biểu thức toán học sau Pascal

3

1 )

1 (

x a

z y x z

 

 

(1+z)*(x+y/z)/(a-1/(1+x*x*x))

Bài - tr36

Hãy chuyển biểu thức Pascal sang biểu thức toán học tương ứng a a/b*2 b a*b*c/2

c 1/a*b/c d b/sqrt(a*a+b)

Bài - tr 36

Hãy viết biểu thức lôgic cho cho kết True toạ độ (x,y) điểm nằm vùng gạch chéo kể biên hình 2.a 2.b

Ngày soạn: 01/10/2010 Tuần: 10

(25)

? Đường thẳng a có phương trình gì?

? Đường thẳng b, c có phương trình gì?

? Vậy miền nằm hai đường thẳng có phương trình?

Tóm lại điểm nằm hình gạch chéo phải thoả điều kiện:

  

 

x y y 1

Yêu cầu HS lên biểu diễn Pascal

Hãy lên biểu diễn hình 2b

Hãy đưa phương án giải

y =

y = x y = −x y > x y > −x

(y <=1) and (y >= abs(x))

((−1 <= y) and (y<=1)) or ((−1<= x) and (x <= 1))

Thảo luận vòng phút

Ta thấy lấy tam giác phần cung bị bơi đen ¼ đường trịn Nếu cộng lại ½ diện tích đường trịn Vậy ta tính diện tích đường trịn chia hai

Hình 2: miền cần xác định

Bài tr 36

Hãy viết chương trình nhập số R (R > 0) tính đưa diện tích phần bơi đen hình

Program BAI_9; Const pi = 3.1416; Var S, R: real; BEGIN

Write('nhap vao ban kinh duong tron’); Readln(R);

S:=1/2*pi*R*R;

Write(' dien tich phan boi den den S = ', S: 6:4);

END

Bài 10 tr 36

−1

1

x y

a

−1

−1

1

x y

(26)

Hướng dẫn sau yêu cầu HS lên bảng viết

Trao đổi thảo luận, sau lên bảng

Lập trình đưa hình vận tốc v chạm đất vật rơi từ độ cao h Biết v 2ghtrong g gia tốc tự

và g = 9.8 m/s2 Độ cao h (m) nhập từ bàn phím

Chương trình Program BAI_10; Const g = 9.8; Var v, h: real; BEGIN

Write('nhap vao cao cua vat d = ’); Readln(h);

v:=sqrt(2*g*h);

Write(' van toc vat cham dat la v= ', v: 6:4, ' m/s’);

END

V CỦNG CỐ - DẶN DÒ 1 Củng cố:

Một số chương trình tính đơn giản

2 Dặn dị

(27)

CHƯƠNG III: CẤU TRÚC RẼ NHÁNH LẶP § CẤU TRÚC RẼ NHÁNH



I MỤC ĐÍCH – YÊU CẦU 1 Kiến thức

− Hiểu nhu cầu cấu trúc rẽ nhánh biểu diễn thuật toán; − Hiểu câu lệnh rẽ nhánh (dạng thiếu dạng đủ)

− Hiểu câu lệnh ghép

2 Kĩ năng:

− Sử dụng cấu trúc rẽ nhánh mơt tả thuật tốn số toán đớn z giản

− Viết câu lệnh rẽ nhánh dạng đủ, dạng thiếu áp dụng để thể thuật toán số toán đơn giảng

II PHƯƠNG PHÁP

Phát vấn, diễn giảng

III PHƯƠNG TIỆN DẠY HỌC

Hình vẽ khổ lớn, bảng phụ…

IV NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP 1 Ổn định lớp (kiểm tra sĩ số)

2 Kiểm tra cũ: (nếu có) 3 Nội dung

HOẠT ĐỘNG CỦA GV HOẠT ĐỘNG CỦA HS NỘI DUNG

Nêu ví dụ thực tiễn minh hoạ cho tổ chức rẽ nhánh:

Chiều nay, trời không mưa An xem đá bóng trời mưa An mở Tivi xem

Yêu cầu HS lấy vài ví dụ tương tự

Yêu cầu học sinh đưa cấu trúc chung cách diễn đạt

Yêu cầu HS lấy ví dụ dạng khuyết đưa cấu trúc chung

Cấu trúc dùng để mơ tả mệnh đề có dạng gọi cấu trúc rẽ nhánh dạng thiếu đủ

? Hãy nêu bước kết lụân nghiệm phương trình bậc hai ax2 + bx + c = (a ≠ 0) ?

Như vậy, sau tính D tuỳ thuộc vào giá trị D, hai thao tác thực

Mọi NNLT có câu lệnh để mô tả cấu trúc rẽ nhánh

Nếu đội tuyển VN thắng Indonesia đá tiếp tranh huy chương vàng với Thái Lan, khơng thắng Indonesia tranh huy chương đồng với Mianma Nếu… … khơng … ……

Nếu Nam làm tập sớm Nam chơi Nếu … thì……

Trước hết ta tính delta: D = b2 − 4ac;

Nếu D không âm ta đưa nghiệm Trong trường hợp ngược lại, ta thông báo phương trình vơ nghiệm

Xét giải phương trình bậc ax2 + bx + c = (a ≠ 0)

TUẦN: TIẾT: 11

NGÀY SOẠN: ………

Nhập a, b, c

D ← b2 − 4ac

D ≥ 0?

Thơng báo vno kết thúc

Tính đưa no kết thúc

(28)

Để mô tả cấu trúc rẽ nhánh, Pascal dùng câu lệnh gì?

Yêu cầu học sinh lên bảng viết dạng thiếu dạng đầy đủ

Ở dạng thiếu: điều kiện tính kiểm tra Nếu điều kiện câu lệnh thực hiện, ngược lại câu lệnh bỏ qua

Ở dạng đủ: điều kiện tính kiểm tra Nếu điều kiện câu lệnh thực hiện, ngược lại câu lệnh thực

Theo cú pháp sau từ khoá then hoặc esle phải câu lệnh. Nhưng sau từ khoá có nhiều câu lệnh ta gọi câu lệnh ghép.

Câu lệnh If … then …

Hai em lên bảng viết

2 Câu lệnh if then a Dạng thiếu

if <điều kiện> then <câu lệnh>;

b Dạng đủ

if <điều kiện> then <câu lệnh1> else <câu lệnh 2>;

Ví dụ 1:

if D < then

writeln( 'phuong trinh vo nghiem’);

Ví dụ 2:

if a mod = then write('a chia het cho 3’) esle write('a khong chia hết cho 3’);

Ví dụ 3: Để tìm giá trị lớn a b có

thể dùng hai cách sau:

Dạng thiếu:

if b >a then max := b; Dạng đủ:

if b >a then max := b esle max:=a; 3 Câu lệnh ghép

Câu lệnh ghép Pascal có dạng

Ví dụ:

if D < then

writeln('phương trinh vo nghiem’)

esle begin

x1 :=(−b − sqrt(D))/(2*a); x2 := −b/a − x1;

end;

Điều kiện

Câu lệnh True

False

Điều kiện

Câu lệnh True

False Câu lệnh

Begin

(29)

Ví dụ 1: Tìm nghiệm thực PTB2: ax2 + bx + c = (a 0) ? Hãy xác định toán?

Hướng dẫn HS viết chương trình

u cầu HS lên bảng viết

Ví dụ 2: Viết chương trình tính số ngày năm N, biết năm chia hết cho 400 chia hết cho không chia hết cho 100

? Hãy xác định toán? Hướng dẫn HS viết chương trình

Yêu cầu HS lên bảng viết

Lên bảng viết chương trình

Lên bảng viết chương trình

4 Một số ví dụ

Ví dụ 1:

Program Giai_PTB2; Uses crt;

Var a, b, c, D: real; x1, x2 : real;

Begin

Clrscr;

Write(‘nhap a, b, c: ‘); Readln(a, b, c);

D:=b*b  4*a*c;

if D < then

writeln('phương trinh vo nghiem’)

esle begin

x1 :=(−b − sqrt(D))/(2*a); x2 := −b/a − x1;

writeln(‘x1= ‘, x1:6:2,’x2 = ‘, x2:6:2);

end;

readln

End. Ví dụ 2:

Program Nam_nhuan; Uses crt;

Var N, SN: integer;

Begin

clrscr;

write(‘nhap nam: ’); readln(N); if (N mod 400 = 0) or ((N mod = 0) and ((N mod 100 <> 0)) then

SN: =366 esle SN:=365;

Write(‘so cua nam:‘, N, ‘la:’, SN); Readln

End. V CỦNG CỐ - DẶN DÒ

1 Củng cố:

Cấu trúc rẽ nhánh if then Câu lệnh ghép

2 Dặn dị

(30)

§ 10 CẤU TRÚC LẶP 

I MỤC ĐÍCH – YÊU CẦU

− Hiểu nhu cầu cấu trúc lặp biểu diễn thuật toán

− Hiểu cấu trúc lặp với số lần biết trước câu lệnh for … …

II PHƯƠNG PHÁP

Phát vấn, diễn giảng

III PHƯƠNG TIỆN DẠY HỌC

Hình vẽ khổ lớn, bảng phụ…

IV NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP 1 Ổn định lớp (kiểm tra sĩ số)

2 Kiểm tra cũ:

Câu 1: Viết cú pháp cấu trúc lặp: dạng thiếu dạng đủ Câu Begin

clrscr;

write(‘nhap nam: ’); readln(N);

(N mod 400 = 0) ((N mod = 0) ((N mod 100 <> 0)) then SN: =366 SN:=365;

Write(‘so cua nam:‘, N, ‘la:’, SN); Readln

End.

3 Nội dung

HOẠT ĐỘNG CỦA GV HOẠT ĐỘNG CỦA HS NỘI DUNG

Hoạt động 1

Nêu vấn đề toán 1:

Ta thấy hai tốn cách tính tổng S có nhiều điểm tương tự

Đối với toán 1: số lần lặp 100, việc cộng vào tổng S kết thúc thực việc cộng 100 lần

Cịn tốn 2: số lần lặp chưa biết trước việc cộng vào tổng kết thúc điều

Chú ý lắng nghe ghi

1 Lặp

Bài tốn 1: tính đưa kết

hình tổng 100 1 1         a a a a S

Bài tốn 2: tính đưa kết hình tổng 1 1          N a a a a

S cho

đến 0,0001 N

a

+ Xuất phát S gán cho giá trị a

1

+ Tiếp theo cộng vào S giá trị: N

a 

1

với N =1, 2, 3,

* Cấu trúc lặp có hai loại: lặp với số lần

biết trước lặp với số lần trước.

TUẦN:

(31)

kiện 0,0001 N

a thoả

mãn

Nói chung số thuật tốn có thao tác lặp lặp lại số lần

Các NNLT có câu lệnh để mô tả cấu trúc lặp

Hoạt động

Trao đổi nhóm phút lên bảng viết thuật tốn 1a 1b:

Nhóm 1, 2, nghiên cứu thuật tốn 1a;

Nhóm 4, 5, nghiên cứu thuật toán 1b;

Ta thấy thuật toán Tong_1a giá trị N bắt đầu tham gia vòng lặp sau lần lặp tăng lên 1cho đến N >100 Thuật toán Tong_1b giá trị N bắt đầu tham gia vòng lặp 100 sau lần lặp giảm xuống N <1 Ta nói cách lặp thuật tốn Tong_1a dạng tiến cịn Tong_1b dạng lùi

Ở dạng lặp tiến câu lệnh sau từ khoá thực tuần tự, biến đếm lần lược nhận giá trị liên tiếp từ giá trị đầu đến giá trị cuối

Ở dạng lặp lùi câu lệnh sau từ khoá thực tuần tự, biến đếm lần lược nhận giá trị giảm liên tiếp từ giá trị cuối đến giá trị đầu

Chia nhóm thảo luận lên bảng trình bày

Các nhóm khác nhận xét bổ sung

2 Lặp với số lần biết trước câu lệnh for……do…

Thuật toán Tong_1a

B1: S ← 1/a; N ← 0; {khởi tạo S,N}; B2: N ← N + 1;

B 3: Nếu N > 100 chuyển đến B5; B 4: S ← S + 1/(a+N) quay lại B2; B5: Đưa S hình kết thúc

Thuật tốn Tong_1a

B1: S ← 1/a; N ← 101; {khởi tạo S,N}; B2: N ← N − 1;

B 3: Nếu N < chuyển đến B5; B 4: S ← S + 1/(a+N) quay lại B2; B5: Đưa S hình kết thúc

* Trong Pascal ta dùng câu lệnh lặp for−do + Lặp dạng tiến:

For <biến đếm>:=<giá trị đầu> to <giá trị

cuối> <câu lệnh>; + Lặp dạng lùi:

For <biến đếm>:=<giá trị cuối> downto

<giá trị đầu> <câu lệnh>;

 Biến đếm biến đơn kiểu nguyên  Giá trị đầu giá trị cuối kiểu với

biến đếm

* Chú ý: giá trị biến đếm điều chỉnh

tự động, câu lệnh viết sau không thay đổi giá trị biến đếm

V CỦNG CỐ - DẶN DÒ 1 Củng cố:

Cấu trúc lặp dạng lặp với số lần biết trước Cú pháp dạng lặp tiến lặp lùi

2 Dặn dị

(32)

§ 10 CẤU TRÚC LẶP (tt) 

I MỤC ĐÍCH – YÊU CẦU

− Biết cách vận dụng đắn loại cấu trúc lặp vào tình cụ thể − Mơ tả số thuật tốn số tốn đơn giản có sd lệnh lặp − Viết chương trình đơn giản có sd dịng lặp for ……do……

− Biết sử dụng cấu trúc lặp với số lần chưa biết trước câu lệnh while … do…

II PHƯƠNG PHÁP

Phát vấn, diễn giảng

III PHƯƠNG TIỆN DẠY HỌC

Hình vẽ khổ lớn, bảng phụ…

IV NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP 1 Ổn định lớp (kiểm tra sĩ số)

2 Kiểm tra cũ:

Câu hỏi: Viết cú pháp câu lệnh lặp dạng tiến dạng lùi giải thích biến đếm, giá trị đầu giá trị cuối phải ?

3 Nội dung

HOẠT ĐỘNG CỦA GV HOẠT ĐỘNG CỦA HS NỘI DUNG

Ở tiết trước em học cú pháp dòng lặp for Tiết tìm hiểu cách vận dụng vịng lặp để viết chương trình

Trao đổi nhóm phút lên bảng viết chương trình

Lên bảng trình bày

Các nhóm cịn lại ý nhận xét bổ sung

2 Lặp với số lần biết trước câu lệnh for……do…

Ví dụ1

Program Tong_1a; Uses crt;

Var S: real;

a, N: integer;

Begin

Clrscr;

Write(‘hay nhap gia tri a vao’); Readln(a);

S:=1/a;

For N:=1 to 100 S:= S+1/(a+N); Write(‘tong S = ’, S:8:4); Readln

End.

Program Tong_1a; Uses crt;

Var S: real;

a, N: integer;

Begin

Clrscr;

Write(‘hay nhap gia tri a vao’); Readln(a);

S:=1/a;

For N:=100 to S:= S+1/(a+N); Write(‘tong S = ’, S:8:4); Readln

End.

TUẦN:

(33)

Hãy xác định tốn

Thảo luận phút lên bảng trình bày

Nhận xét đánh giá cho điểm

Thảo luận nhóm đưa để đưa thuật tốn tính tổng toán Nhận xét, đánh giá cho điểm Như vậy, việc lặp với số lần chưa biết trước kết thúc điều cho trước thoả mãn

Để mô tả cấu trúc lặp Pascal người ta dùng câu lệnh while−do

Nếu câu lệnh ghép ta dùng từ khố gì?

Treo sơ đồ lặp while −

Treo sơ đồ khối thuật toán Tong_2

Input: Hai số M, N;

Output: tổng số chia hết cho chia hết cho

Lên bảng trình bày

Begin end

Quan sát theo dõi

Ví dụ2: Viết chương trình nhập từ bàn

phím hai số nguyên dương M N (M < N) tính đưa hình tổng số chia hết cho phạm vi từ M đến N

Program vi_du_2; Uses crt;

Var M, N, I: integer;

T: longint;

Begin

Clrscr;

Write(‘nhap M nho hon N’); Write(‘M = ‘); readln(M); Write( ‘N = ‘); readln(N); T:= 0;

For I := M to N

if (I mod = 0) or (I mod = 0) then T:= T+I;

Write(‘KET QUA: ‘, T); Readln;

End.

3 Lặp với số lần chưa biết trước câu lệnh while − do

Thuật toán Tong_2

B1: S ← 1/a; N ← 0; {khởi tạo S N} B2: Nếu 1/(a+N)<0.0001 chuyển đến bước 5;

B3: N= N+1;

B4: S ← S + 1/(a+N) quay lại bước 2; B5: đưa S hình, kết thúc

Cú pháp:

While <điều kiện> <câu lệnh>;

Trong đó:

Điều kiện biểu thức lơgic

Câu lệnh: câu lệnh đơn hay lệnh ghép

Điều kiện

Câu lệnh TRUE

(34)

Có nhiều thuật tốn khác tìm ƯCLN M, N Ở lớp 10 em học thuật tốn Treo hình thuật tốn liệt kê bước sơ đồ khối

Chương trình Program Tong_2;

Uses crt; Var S: real;

A, N: integer;

Begin

Write((hay nhap gia trị a vào!’); Readln(a);

S:=1/a; N:= 0;

While not(1/(a+N) < 0.0001) Begin

N:=N+ 1;

S:= S + 1/(a + N );

End;

Writeln(‘ Tong S la: ‘, S: 8: 3); Readln

End.

Ví dụ: Tìm ước chung lớn (ƯCLN) hai số nguyên dương M, N

Chương trình: Program UCLN; Uses crt;

Var M, N : integer; Begin

Clrscr;

Write(‘nhap gia tri M= ’); readln(M); Write(‘nhap gia tri N= ’); readln(N); While M <> N

If M > N then M:= M − N else N:= N − M;

writeln(‘UCLN= ’, M); readln

end.

Chú ý: câu lệnh dòng lặp thường

được lặp lại nhiều lần, để tăng hiệu chương trình thao tác khơng cần lặp lại nên đưa ngồi vịng lặp

V CỦNG CỐ - DẶN DÒ 1 Củng cố:

Cấu trúc lặp dạng lặp với số lần chưa biết trước Các chương trình đơn giản

2 Dặn dò

(35)

BÀI THỰC HÀNH 2

I MỤC ĐÍCH – YÊU CẦU 1 Kiến thức

 Xây dựng chương trình có sử dụng cấu trúc rẽ nhánh − Tiếp tục làm quen với việc hiệu chỉnh chương trình

2 Kĩ năng

Rèn luyện kĩ sử dụng cấu trúc rẽ nhánh việc lập trình giải tốn cụ thể

3 Thái độ

Tự giác, tích cực, chủ động thực hành

II PHƯƠNG PHÁP

Nêu vấn đề giải vấn đề

III PHƯƠNG TIỆN DẠY HỌC

Phịng máy thực hành vi tính , máy chiếu

IV NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP 1 Ổn định lớp (kiểm tra sĩ số)

2 Nội dung

HOẠT ĐỘNG CỦA GV HOẠT ĐỘNG CỦA HS NỘI DUNG

Gợi ý để HS nêu khái niệm số Pitago:

? Thế số Pi ta go

? Lấy ví dụ số Pitago cụ thể? ? Vậy để kiểm tra số có phải số Pi ta go ta kiểm tra đẳng thức nào?

Dành thời gian cho học sinh gõ nội dung vào

Ba số nguyên dương a, b, c gọi số Pi ta go tổng bình phương hai số bình phương số cịn lại

3, 4, a2 = b2 + c2 b2 = a2 + c2 c2 = a2 + b2 Gõ nội dung vào

Viết chương trình nhập từ bàn phím ba số ngun dương a, b, c kiểm tra xem chúng có số Pi ta go hay không

Program Pi_ta_go; Uses crt;

Var a, b, c : integer;

a2, b2, c2: longint;

Begin

Clrscr;

Write('nhap a = '); Readln(a); Write('nhap b = '); Readln(b); Write('nhap c = '); Readln(c); a2 : = a;

b2 := b; c2 := c; a2 := a2*a; b2 := b2*b; c2 := c2*c;

if (a2 = b2 + c2) or (b2 = a2 + c2) or

(c2=a2+ b2) then

writeln('ba so da nhap la bo so Pi ta go)

TUẦN:

(36)

Lưu chương trình với tên PITAGO vào thư mục lớp Nhấn phím F7 để thực câu lệnh chương trình, nhập giá trị a = 3, b = 4, c=5

Vào bảng Debug mở cửa sổ hiệu chỉnh để xem giá trị a2, b2, c2

Nhấn phím F7 để thực câu lệnh tính giá trị nói so sánh với kết a2=9, b2 = 16, c2 = 25

Quan sát rẽ nhánh

Lặp lại bước với liệu a = 700, b = 1000, c=800

a2 : = a; b2 := b; c2 := c; a2 := a2*a; b2 := b2*b; c2 := c2*c; Bằng dãy lệnh

a2 := a*a; b2 := b*b; c2 := c*c;

Thì kết có thay đổi liệu a = 700, b = 1000, c=800

Lưu vào (nhấn F2)

Nhấn F7 sửa lỗi nhập a = 3, b = 4, c=5 nêu kết Vào bảng debug

Nhấn F7 so sánh kết Tiếp tục nhấn F7 để theo dõi trình rẽ nhánh Nhập số: a = 700, b=1000, c = 800 Thông báo kết

Thay đổi câu lệnh với liệu kết luận

else writeln('ba so da nhap khong phai

la bo so Pi ta go); readln

end.

V CỦNG CỐ - DẶN DÒ 1 Củng cố:

Nhắc lại số lỗi thực hành

2 Dặn dò

(37)

BÀI TẬP CHƯƠNG III

I MỤC ĐÍCH – YÊU CẦU 1 Kiến thức

Củng cố kiến thức học chương III: cấu trúc rẽ nhánh cấu trúc lặp

2 Kĩ năng

Rèn luyện kĩ sử dụng cấu trúc rẽ nhánh việc lập trình giải tốn cụ thể

3 Thái độ

Tự giác, tích cực, chủ động việc làm tập

II PHƯƠNG PHÁP

Nêu vấn đề giải vấn đề

III PHƯƠNG TIỆN DẠY HỌC

Bảng phụ, giáo án…

IV NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP 1 Ổn định lớp (kiểm tra sĩ số)

2 Kiểm tra cũ:

Câu 1: viết cấu trúc lặp pascal: dạng lặp tiến lặp lùi? Cho ví dụ? Câu 2: điền câu lệnh vào đoạn chương trình sau: Program Tong_2;

Uses crt;

Var A, N: integer;

………

Begin

Write((hay nhap gia trị a vào!’); Readln(a);

S:=1/a; N:= 0;

While not(1/(a+N) < 0.0001) Begin

N:=N+ 1;

………

End;

Writeln(‘ Tong S la: ‘, S: 8: 3); Readln

End. 3 Nội dung

HOẠT ĐỘNG CỦA GV HOẠT ĐỘNG CỦA HS NỘI DUNG

Yêu cầu HS thảo luận

phút lên bảng viết câu lệnh Thảo luận trình bày bảng

Bài 4: Viết câu lệnh rẽ nhánh tính

a)

    

  

5. 0

2

y x

y x z

if (sqr(x) + sqr(y)) <= then z :=sqr(x) + sqr(y) else

if ((sqr(x) + sqr(y)) > 1) and (y>=x) then z := x+ y else z := 0.5;

nếu x2 + y2 ≤ 1

nếu x2 + y2 > y ≥ x

nếu x2 + y2 > y < x

TUẦN: …… TIẾT: ……

(38)

Điều kiện để M thuộc đường tròn tâm O

Yêu cầu HS lên biểu diễn Pascal

Hướng dẫn giải

? n có giá trị nào?

? Vậy ta phải dùng cấu trúc lặp tốt nhất?

Tương tự chương trình tính tổng VD1

u cầu HS viết chương trình

Gơi ý HS khởi tạo giá trị ban đầu:

OM ≤ R Hay

R b y a

x )2(  )2  (

Lên bảng trình bày

N có giá trị từ đến 50 Cấu trúc lặp với số lần biểt trước For −

Viết chương trình

b       y x y x z

if sqrt(sqr(x − a) +sqr(y − b))<= R then z:=abs(x) + abs(y) else z := x + y;

Bài Lập trình tính:

a) 

   50 1 n n n y Program bai_5a; Uses crt;

Var y : real;

n: byte;

Begin

clrscr;

y := 0; {khởi tạo giá trị y}

for n:= to 50

y:= y + n/(n+1); write('y= ', y:9:3); readln

end

b

! ! ! 1 ) (       n n

e

khi 2 10

!

1   

n đưa giá trị hình

program bai_5b; uses crt;

var n: longint;

e, gt: real;

begin

gt := 1/2; {khởi tạo gt} n := 2;

e := + gt;

while gt > 2*E−6 begin

inc(n); {tăng n lên đơn vị}

Nếu điểm (x, y) thuộc hình trịn bán kính r (r > 0), tâm (a,b) Trường hợp lại M(x, y)

R

(39)

Gợi ý HS viết chương trình

Các tập lại yêu cầu HS tự nhà giải

Hướng dẫn:

Bài dùng dòng lặp while −

Khi tuoicha <> 2*tuoicon làm

tăng tuổi cha lên tăng tuổi lên tăng năm lên

gt := gt*(1/n); e := e + gt;

end;

write('gia tri e(n) la: ', e: 9:4); readln

end.

Bài 6: lập trình giải tốn cổ program btoan_co;

uses crt;

var cho, ga: byte; begin

for cho := to 24 begin

ga := 36 − cho;

if ga + 2*cho = 50 then

write('ga: ', ga, ' cho: ',cho);

end;

readln

end.

V CỦNG CỐ - DẶN DÒ 1 Củng cố:

Nhắc lại câu lệnh lặp với số lần biết trước số lần chưa biết trước

2 Dặn dò

(40)

KIỂM TRA ĐÁNH GIÁ TIẾT

I MỤC ĐÍCH

Kiểm tra lại khã tiếp thu q trình học tập HS Từ điều chỉnh phương pháp giảng dạy

II BẢNG RA ĐỀ KIỂM TRA

III NỘI DUNG

IV KẾT QUẢ KIỂM TRA

Mức độ Chương I Chương II Chương III

Biết Câu 1, 3, 6, 28, 30 Câu 2, 5, 9, 17, 18, 20, 21,

22 , 27 Câu 4, 10, 13, 14, 15, 16, 29,31, 32, 33, 34, 35, 36, 37, 38, 39, 40

Hiểu 7, 24, 25, 11 8, 19, 23, 26, 8, 12

Vận dụng

Lớp Giỏi Khá Trung bình yếu

11C1 11C3 11C4 11C5

TUẦN: …… TIẾT: ……

(41)

TUẦN: ……… TIẾT: ……

NGÀY SOẠN: ………

CHƯƠNG IV: KIỂU DỮ LIỆU CĨ CẤU TRÚC § 11 KIỂU MẢNG



I MỤC ĐÍCH – YÊU CẦU 1 Kiến thức

− Kiểu mảng kiểu liệu có cấu trúc, cần thiết hữu ích chương trình − Mảng chiều dãy hữu hạn phần tử kiểu

− NNLT thông dụng cho phép mô tả kiểu liệu mảng chiều

− Để mô tả mảng chiều cần khai báo kiểu phần tử cách đánh số phần tử

− Có thể tham chiếu phần tử mảng tên mảng só tương ứng phần tử

2 Kĩ năng:

− Nhận biết thành phần khai báo kiểu mảng chiều

− Nhận biết định danh phần tử kiểu mảng chiều xuất chương trình − Biết cách khai báo mảng đơn giản với sô kiểu miền kiểu nguyên

II PHƯƠNG PHÁP

Nêu vấn đề, diễn giảng

III PHƯƠNG TIỆN DẠY HỌC

Máy chiếu Projector

IV NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP 1 Ổn định lớp (kiểm tra sĩ số)

2 Kiểm tra cũ: (nếu có) 3 Nội dung

HOẠT ĐỘNG CỦA GV HOẠT ĐỘNG CỦA HS NỘI DUNG

Chiếu đề chương trình ví dụ

Giải thích: ta dùng biến để lưu trữ nhiệt độ ngày tuần

Và để xét nhiệt độ lớn nhiệt độ trung bình ta dùng 7 câu lệnh if − then

? Khi ta cần xét nhiệt độ cho năm sau?

Để khắc phục hạn chế người ta thường ghép chung biến thành dãy đặt cho chung tên đánh cho phần tử số

? Thế mảng chiều? Ví dụ: a1, a2, …, an

? Để mô tả mảng chiều ta cần ý đến yếu tố nào?

Chiếu slide 2

Hầu hết NNLT có qui tắc cho phép xác định

− Tên kiểu mảng chiều

Chú ý lắng nghe

cần dùng nhiều biến viết nhiều câu lệnh if − then

Đứng dậy phát biểu

Kiểu phần tử cách đánh số phần tử

§ 11 KIỂU MẢNG

1 Kiểu mảng chiều

(42)

− Số lượng phần tử

− Kiểu liệu phần tử − Cách khai báo biến mảng − Cách tham chiếu đến ptử

Chiếu slide phần khai báo

Chiếu chương trình ví dụ

? Trong ví dụ dòng khai báo mảng chiều

Khi khai báo mảng chiều ta có cách để khai báo

? Hãy xác định toán?

Treo bảng thuật toán

Yêu cầu thảo luận phút lên viết chương trình

Dịng

Input: số nguyên N dãy N số nguyên a1, a2, …,aN Output: số giá trị lớn dãy

thảo luận lên viết chương trình

a Khai báo

− Khai báo trực tiếp:

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

số] of <kiểu phần tử>;

Ví dụ: var A : array[1 10] of integer; − Khai báo gián tiếp

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

chỉ số] of <kiểu phần tử>;

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

ví dụ: type mang = array[1 10] of integer; var A : mang;

trong đó:

− Kiểu số: thường đoạn số nguyên liên tục

− Kiểu phần tử kiểu phần tử mảng

* Tham chiếu phần tử mảng: thông qua tên mảng số

Cú pháp: tên_mảng[chỉ số]

Ví dụ: A[2] {tham chiếu đến phần tử thứ hai mảng A

Để tham chiếu đến phần tử thứ 10 mảng ta viết nhietdo[10]

chỉ số phần tử 10 11

Mảng

Nhietdo 23 24 22 28

b Một số ví dụ

ví dụ 1: viết chương trình tìm đưa hình phần tử lớn dãy dố nguyên

* Chương trình:

Program TimMax; Uses crt;

Type Dayso = array[1 250] of integer; Var N, i, Max, csMax: integer;

A: Dayso;

Begin

Clrscr;

Write(‘nhap so phan tu: ‘); readln(N);

For i := to N do Begin

(43)

Yêu cầu xác định toán

Yêu cầu thảo luận phút lên bảng viết chương trình

Hãy xác định toán

Yêu cầu thảo luận phút

Input: Số nguyên dương N, dãy A gồm N số nguyên dương A1, A2, …,AN Output: Dãy số A xếp thành dãy không giảm

Input: Số nguyên dương N, dãy A gồm N số nguyên dương A1, A2, …, AN số nguyên k

Output: số i mà Ai = k thơng báo “khơng tìm thấy số hạng k

Readln(A[i]);

End;

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

For i:= to N If A[i] > Max then Begin

Max := A[i]; Csmax := i;

End;

Write(‘gia tri cua phan tu max: ‘,max); Write(‘chi so cua phan tu Max: ‘, csmax);

Readln

End.

Ví dụ 2: Sắp xếp dãy số nguyên thuật toán tráo đổi

Program sapxep; Uses crt;

Type Dayso = array[1 250] of integer; Var N,i, j,t: integer;

Begin Clrscr;

Write(‘nhap so phan tu day: ‘); readln(N);

for i:=1 to N begin

write(‘nhap vao phan tu thu ‘,i,’: ‘); readln(A[i]);

end;

for j := N downto N for i := to j –

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

begin {trao doi A[i] va A[i + 1]} t := A[i];

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

writeln(‘day so duoc sap xep la:’); for i := to N write(A[i]:4); readln;

End

Ví dụ 3: tìm kiếm nhị phân

Chương trình:

Program TK_nhiphan; Uses crt;

Type Dayso = array[1 250] of integer; Var N, i, k: integer;

(44)

lên bảng trình bày chương trình A: Dayso;

Tim_thay: boolean;

Begin

clrscr;

write(‘nhap so phan tu cua day, N = ‘); readln(N);

writeln(‘nhap cac phan tu cua day so tang: ‘);

For i := to N begin

write(‘phan tu thu’,i,’ = ‘); readln(A[i]);

end;

write(‘nhap gia tri k = ‘); readln(k);

Dau:= 1; cuoi := N; Tim_thay:= false;

while (dau<=cuoi) and not (Tim_thay) do

begin

Giua:= (Dau + Cuoi) div 2;

if A[Giua] = k then

Tim_thay := True

else if A[Giua] > k then

Cuoi := Giua −

else Dau:= Giua + 1; end;

if Tim_thay then

writeln(‘chi so tim duoc la: ‘,Giua)

else write(‘khong tim thay’);

readln

end. V CỦNG CỐ - DẶN DÒ

1 Củng cố:

Các cách khai báo mảng, tham chiếu đến phần tử mảng

2 Dặn dò

(45)

TUẦN: ……… TIẾT: ……

NGÀY SOẠN: ………

BÀI THỰC HÀNH 3

I MỤC ĐÍCH – YÊU CẦU 1 Kiến thức

Củng cố kiến thức kiểu liệu mảng

2 Kĩ năng

− Nâng cao kĩ sử dụng số lệnh kiểu liệu mảng chiều lập trình cụ thể: + Khai báo kiểu liệu mảng

+ Nhập/Xuất liệu cho mảng

+ Duyệt qua tất phần tử mảng để xử lí phần tử − Biết giải số tốn thường gặp:

+ Tính tổng phần tử thoả mãn điều kiện + Đếm phần tử thoả mãn điều kiện + Tìm phần tử nhỏ nhất, lớn

3 Thái độ

Góp phần rèn luyện tác phong, tư lập trình: Tự giác, tích cực, chủ động thực hành

II PHƯƠNG PHÁP

Nêu vấn đề giải vấn đề

III PHƯƠNG TIỆN DẠY HỌC

Phịng máy thực hành vi tính , máy chiếu

IV NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP 1 Ổn định lớp (kiểm tra sĩ số)

2 Nội dung

HOẠT ĐỘNG CỦA GV HOẠT ĐỘNG CỦA HS NỘI DUNG

Chiếu chương trình lên bảng Hướng dẫn tìm hiểu chương trình

? Myarray tên kiểu liệu hay tên biến?

? Những dòng tạo biến mảng A?

? Thủ tục Randomize có ý nghĩa gì?

Giải thích hàm chuẩn Random(n)

Tên kiểu liệu Học sinh trả lời

Khởi tạo chế sinh số ngẫu nhiên

Gõ nội dung vào máy

Bài 1: Tạo mảng A gồm n (n<= 100) số

nguyên, số có trị tuyệt đối khơng vượt q 300 Tính tổng phần tử mảng bội số nguyên dương k cho trước

a Chương trình proram Sum1; uses crt;

type Myarray = array[1 100] of integer; var A:Myarray;

s, n, i, k: integer;

begin

clrscr; randomize; write('nhap n = '); readln(n);

for i := to n

A[i] :=random(300) − random(300);

for i:=1 to n

write(A[i]: 5); writeln;

write('nhap k = '); readln(k);

s := 0;

for i := to n

(46)

b) Yêu cầu HS đưa câu lệnh posi, neg: integer;

posi := 0; neg := 0;

if A[i] > then posi := posi + else if A[i] < then neg:=neg +1;

writeln(posi:4, neg:4);

? câu lệnh có ý nghĩa gì? Sửa lỗi chạy chương trình

b Chỉnh sửa chương trình chạy chương trình

Thêm vào chương trình cho vị trí câu lệnh

Đếm phần tử mảng A dương hay âm

Gõ chương trình vào máy

writeln(' Tong can tinh la: ', s); readln

end.

Bài 2: Viết chương trình tìm phần tử có giá

trị lớn mảng đưa hình số giá trị phần tử tìm Nếu có nhiều phần tử có giá trị lớn đưa phần tử có số nhỏ

a Chương trình Program MaxElement;

uses crt;

type Myarray = array[1 100] of integer; var N, i, j: integer;

A: Myarray;

begin

clrscr;

write(‘nhap so phan tu: ‘); readln(N);

for i := to N do begin

write(‘nhap phan tu thu ‘,i, ‘:’); readln(A[i]);

end;

j := 1;

for i:= to N

if A[i] > A[j] then j := i;

write(‘chi so: ’, j, ‘ Gia tri: ’,A[j]:4); Readln

end.

V CỦNG CỐ - DẶN DÒ 1 Củng cố:

Nhắc lại số lỗi thực hành

2 Dặn dò

(47)

TUẦN: ………

TIẾT: …… § 11 KIỂU MẢNG (tt) NGÀY SOẠN: ………



I MỤC ĐÍCH – YÊU CẦU 1 Kiến thức

HS nắm cấu trúc mảng hai chiều Biết khai báo biến mảng hai chiều

Tham chiếu đến phần tử biến mảng hai chiều

2 Kĩ năng:

− Nhận biết thành phần khai báo kiểu mảng hai chiều

− Nhận biết định danh phần tử kiểu mảng hai chiều xuất chương trình − Biết cách khai báo mảng đơn giản với sô kiểu miền kiểu nguyên

II PHƯƠNG PHÁP

Nêu vấn đề, diễn giảng

III PHƯƠNG TIỆN DẠY HỌC

Máy chiếu Projector

IV NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP 1 Ổn định lớp (kiểm tra sĩ số)

2 Kiểm tra cũ: (nếu có) 3 Nội dung

HOẠT ĐỘNG CỦA GV HOẠT ĐỘNG CỦA HS NỘI DUNG

? Với kiểu liệu thơng thường ta biểu diễn tốn u cầu dạng bảng hay khơng?

Với kiểu liệu thông thường biểu diễn dạng bảng Do đó, chúng ta cần xây dạng kiểu liệu sau học phần ? Hãy cho biết mảng hai chiều?

Ta thấy hàng mảng hai chiều có cấu trúc mảng chiều kích thước ? Để mo tả mảng hai chiều ta cần xác định yếu tố nào?

Cũng giống mảng chiều, muốn sử dụng biến mảng hai chiều ta phải khai báo

Khai báo mảng hai chiều tương tự mảng chiều Yêu cầu HS lên khai báo

Có (hoặc không)

Đứng dậy phát biểu

Nêu yếu tố SGK

Lên bảng khai báo

§ 11 KIỂU MẢNG (tt)

2 Mảng hai chiều:

Mảng hai chiều bảng phần tử có kiểu

* Các yếu tố để xây dựng mảng hai chiều:

- Tên kiểu mảng hai chiều - Số lượng phần tử

- Kiểu liệu phần tử - Các cách khai báo biến - Cách tham chiếu đến phần tử a Khai báo

− Khai báo trực tiếp:

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

số hàng, kiểu số cột] of <kiểu phần tử>;

(48)

Thơng thường cách ta thường dùng

Khi khai báo mảng hai chiều cần ý đến số dòng số cột kiểu phần tử

Hãy nêu cú pháp tham chiếu đến phần tử mảng chiều

Tương tự mảng chiều tham chiếu đến phần tử mảng hai chiều ta có thêm số cột

Soạn sẵn chương trình chiếu lên giải thích câu lệnh

Yêu cầu thảo luận nhóm để viết chương trình

Chiếu lên hình nhận xét đánh giá

Chuẩn bị chương trình để chiếu chạy thử

Tên biến mảng[chỉ số]

Thảo luận nhóm sau trình bày giấy

− Khai báo gián tiếp

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

chỉ số hàng, kiểu số cột] of <kiểu phần tử>;

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

ví dụ: type mang = array[1 9,1 10] of integer;

var A : mang; Trong đó:

- Type, Var, of: từ khóa

- Array: từ khóa để khai biến mảng

- Tên biến mảng, tên kiểu mảng: người lập trình tự đặt

− Kiểu số hàng, kiểu số cột: đoạn số nguyên liên tục

− Kiểu phần tử kiểu phần tử mảng

* Tham chiếu đến phần tử mảng hai chiều

<Tên biến mảng>[chỉ số dòng, số cột] b Một số ví dụ

Ví dụ 1: chương trình đưa bảng nhân

program Bang_nhan; uses crt;

var

B: array[1 9,1 10] of integer; i, j : integer;

begin

clrscr;

for i:=1 to for j:= to 10

B[i,j]:= i*j;

for i:=1 to begin

for j:= to 10 write(B[i,j]:4);

writeln;

end;

readln

end.

Ví dụ 2:

V CỦNG CỐ - DẶN DÒ 1 Củng cố:

Các cách khai báo mảng, tham chiếu đến phần tử mảng hai chiều

2 Dặn dò

(49)

TUẦN: ……… TIẾT: ……

NGÀY SOẠN: ………

BÀI TẬP CHƯƠNG IV 

I MỤC ĐÍCH – YÊU CẦU

Củng cố kiến thức học 11

II PHƯƠNG PHÁP

Nêu vấn đề, diễn giảng., thảo luận nhóm

III PHƯƠNG TIỆN DẠY HỌC

Bảng phụ, máy chiếu, máy tính

IV NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP 1 Ổn định lớp (kiểm tra sĩ số)

2 Kiểm tra cũ:

Câu 1: Viết cú pháp khai báo mảng hai chiều?

Câu 2: Viết câu lệnh nhập phần từ cho mảng hai chiều?

3 Nội dung

HOẠT ĐỘNG CỦA GV HOẠT ĐỘNG CỦA HS NỘI DUNG

Yêu cầu HS thảo luận phút

Gợi ý cho HS viết chương trình

Lấy d = A[2]-A[1]

Khi dãy A cấp số cộng thỏa mãn điều kiện

A[i]=A[1]+(i-1)d

Hoặc điều kiện A[i+1]-A[i]=d (với 1<i<N)

Dùng dòng lặp theo biến đếm i để kiểm tra xem A[i] có thỏa mãn điều kiện nói hay khơng, cần phát phần tử A không thỏa mãn kết luận dãy A cấp số cộng

Yêu cầu HS thảo luận để viết chương trình

HS thảo luận đưa phương án để giải

Thảo luận viết chương trình

Câu trang 79

Câu 6/79: Chương trình Program baitap6; uses crt;

var A: array[1 100] of integer;

N, i, u: integer;

so_nt, so_chan: integer;

begin

so_chan:= 0; so_nt := 0;

write(‘so phan tu cua day A (N<=100), N= ‘); readln(N);

while (N < 0) or (N > 100) begin

write(‘nhap lai so phan tu cua day A (N<=100), N = ‘); readln(N);

end.

(50)

Nhận xét đánh giá cho điểm

Chương trình thực với N = 24 số Phi-pơ-na-xi thứ 25 75025 vượt q phạm vi kiểu word

begin

write(‘A[‘,i,’]= ’); readln(A[i]);

if A[i] mod = then

so_chan:=so_chan+1;

if A[i] > then begin

u:=2;

while (u<=sqrt(A[i])) and

(a[i]mod u <>0) u:=u+1;

if u> sqrt(a[i]) then

so_nt:=so_nt +1;

end; end;

writeln(‘so luong so chan: ‘, so_chan); writeln(‘so luong so le: ‘, N-so_chan); writeln(‘so luong so ngto: ‘, so_nt); readln

end. Câu 7/79

Chương trình:

Program cau_7; Uses crt;

Var n, i:word;

F1, F2, F: word;

Begin

clrscr;

write(‘tim so hang thu N cua day phi-po-na-xi, N= ‘); readln(N);

F1:=1; F2:= 1;

for i:=1 to n do begin

F:= F1+F2; F1:=F2; F2:=F;

end;

write(F); readln

end.

V CỦNG CỐ - DẶN DÒ 1 Củng cố:

Nhắc lại số ý viết chương trình

2 Dặn dị

(51)

TUẦN: ……… TIẾT: ……

NGÀY SOẠN: ………

BÀI THỰC HÀNH

I MỤC ĐÍCH – YÊU CẦU 1 Kiến thức

Củng cố kiến thức kĩ có lập trình với kiểu liệu mảng.\ Củng cố HS thuật toán xếp phần tử dãy (bằng tráo đổi)

2 Kĩ năng

Diễn đạt thuật tốn chương trình sử dụng kiểu liệu mảng

3 Thái độ

Rèn luyện HS ý thức cần có người lập trình viết chương trình với khối lượng tính tốn

Góp phần rèn luyện tác phong, tư lập trình: Tự giác, tích cực, chủ động thực hành

II PHƯƠNG PHÁP

Nêu vấn đề giải vấn đề

III PHƯƠNG TIỆN DẠY HỌC

Phịng máy thực hành vi tính , máy chiếu

IV NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP 1 Ổn định lớp (kiểm tra sĩ số)

2 Kiểm tra cũ 3 Nội dung

HOẠT ĐỘNG CỦA GV HOẠT ĐỘNG CỦA HS NỘI DUNG

Yêu cầu HS mở chương trình Pascal

Hướng dẫn HS tìm hiểu chương trình

? Hãy xác định tốn?

Sử dụng ví dụ chuyển đĩa để đưa bước chuyển đổi sd biến tạm t

yêu cầu HS chỉnh lỗi chạy chương trình

Đặt yêu cầu khai báo thêm biến dem bổ sung vào chương trình câu lệnh để tính số lần thực tráo đổi chương trình

Chúng ta khai báo biến đếm nào?

Yêu cầu HS viết câu lệnh đếm số lần tráo đổi

Đặt dem:= dem +1 đâu:

Mở chương trình Pascal

Input: Dãy A gồm N số nguyên

Output: dãy A xếp

- Dem : integer; dem:= dem +1

- Sau câu lệnh tráo đổi A[i+1] := t;

Bài 1:

uses crt;

type Arrint = array[1 250] of integer; var n, i, j, t: integer;

A : ArrInt;

begin

clrscr; randomize;

write('nhap n = ’); readln(n);

for i:= to n do

A[i] := random(300) – random(300);

for i:=1 to n write(A[i]:5);

writeln;

for j:= n downto n do for i:= to j -1

if A[i] > a[i+1] then begin

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

end;

writeln('day da duoc sap xep:’);

(52)

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

? Trong chương trình phải thực phép cộng

? Có cách cải tiến?

Yêu cầu HS dùng lệnh B[1]:=A[1];

for i:= to n do

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

thay đoạn chương trình từ{Bat dau tao B} đến{Ket thuc tao B}

Phân tích ưu điểm việc thay lệnh

Quan sát giáo viên thực

n(n+1)/2 phép cộng Để tính bước thứ i ta sử dụng kết bước thứ i-1

writeln; readln

end. Bài 2:

program Tinhtong; uses crt;

type MyArray = array[1 250] of integer; var n, i, j: integer;

A,B : MyArray;

begin

clrscr; randomize;

write('nhap n = ’); readln(n);

for i:= to n do

A[i] := random(300) – random(300);

for i:=1 to n write(A[i]:5);

writeln; {Bat dau tao B}

for i :=1 to n begin

B[i]:=0;

for j:= to i B[i]:=B[i]+ A[j]; end;

{Ket thuc tao B}

for i:= to n write(B[i]:7);

readln

end.

V CỦNG CỐ - DẶN DÒ 1 Củng cố:

Nhắc lại số lỗi thực hành

2 Dặn dò

(53)

TUẦN: ………

TIẾT: …… NGÀY SOẠN: ………

KIỂM TRA TIẾT

I MỤC TIÊU ĐÁNH GIÁ:

Đánh giá khả tiếp thu học sinh 11

II.MỤC ĐÍCH YÊU CẦU CỦA ĐỀ:

Yêu cầu học sinh:

- Biết số khái niệm mảng, khai báo mảng

- Nhận biết số lỗi chức chương trình - Viết số chương trình mảng chiều

III CẤU TRÚC ĐỀ IV KẾT QUẢ

Lớp 11A1 11A2 11C4 11C5 11C6 11C7

Giỏi Khá TB Yếu kém

(54)

TUẦN: ………

TIẾT: …… § 12 KIỂU XÂU NGÀY SOẠN: ………



I MỤC ĐÍCH – YÊU CẦU 1 Kiến thức

Biết xâu dãy kí tự (có thể coi xâu mảng chiều) Biết khai báo xâu, truy cập đến phần tử xâu

2 Kĩ năng:

Sử dụng số thủ tục hàm thông dụng xâu Cài đặt số chương trình đơn giản có sd xâu

II PHƯƠNG PHÁP

Nêu vấn đề, diễn giảng., thảo luận nhóm

III PHƯƠNG TIỆN DẠY HỌC

Bảng phụ có viết hàm, thủ tục xử lí xâu

IV NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP 1 Ổn định lớp (kiểm tra sĩ số)

2 Kiểm tra cũ: 3 Nội dung

HOẠT ĐỘNG CỦA GV HOẠT ĐỘNG CỦA HS NỘI DUNG

Đưa tốn: Viết chương trình nhập họ tên 40 HS

? Ta chọn kiểu liệu nào? Khai báo nào? Nhập tên nào?

? Vậy viết chương trình nhập vào tên 40 HS có điều bất tiện?

Dẫn dắt vào

? Thế xâu?

? Độ dài xâu gì?

? Thếnào xâu rỗng ?

? Để mô tả kiểu xâu ta cần xác định yếu tố nào?

Ta xem kiểu xâu mảng chiều, phần tử đánh số bẳt đầu

Hãy nhắc lại cú pháp tham chiếu đến phần tử mảng chiều

Tương tự để tham chiếu đến phần tử xâu ta có cú pháp sau:

Để sd biến xâu trước hết

Kiểu mảng chiều gồm 40 kí tự

readln(A[1]); readln(A[2]); readln(A[3]); readln(A[4]);

Phải viết 40 câu lệnh nhập vào phần tử mảng Đứng dậy phát biểu

Nhìn SGK em đọc yếu tố

Tên biến mảng[chỉ số]

§ 12 KIỂU XÂU

* Một số khái niệm:

- Xâu dãy kí tự mã ASCII, kí tự phần tử xâu

- Số lượng kí tự xâu gọi độ dài xâu

- Xâu có độ dài gọi xâu rỗng * Để mô tả kiểu xâu ta cần xác định:

- Tên kiểu xâu

- Cách khai báo biến kiểu xâu - Số lượng kí tự kiểu xâu

- Các phép toán thao tác với xâu - Cách tham chiếu tới phần tử xâu * Tham chiếu đến phần tử xâu

Tên biến xâu[chỉ số]

(55)

ta phải khai báo

Yêu cầu HS lên viết cú pháp khai báo

? Nếu độ dài tối đa hiểu xâu có tối đa kí tự?

Để thao tác xâu ta cần có phép toan, hàm, thủ tục xử lí xâu

Yêu cầu HS viết kết

? Khi hai xâu nhau?

Đưa ví dụ yêu cầu HS đưa kết

ví dụ: s1: ‘Le’

s2: ‘Nguyen Van A’ insert(s1, s2,8) ->?

ví dụ:

S: ‘Nguyen Van A’

? Muốn lấy xâu ‘Van’ ta phải viết nào?

ví dụ: S: ‘Nguyen Van A’

? length(s) cho giá trị bao nhiêu?

Lên viết phần khai báo

255 kí tự

Truong Duyen Hai

khi chúng giống hoàn toàn

Đưa kết Nguyen A

‘Nguyen Le Van A’

copy(S,8,3)

12

1 Khai báo var

<tên biến xâu>: string[độ dài tối đa xâu]

Trong đó:

- Tên biến xâu: người lập trình tự đặt - var, string: từ khoá

- độ dài tối đa qui định số kí tự tối đa xâu có, nêu khơng ghi ngầm định 255 kí tự

ví dụ: var hoten: string[30]; S : string;

2 Các thao tác xâu:

* Phép ghép xâu (kí hiệu cộng) ví dụ: ‘Truong’ + ‘ ’+ ‘Duyen Hai’ * Phép so sánh xâu: <, >, <=, >=, =, <> theo qui tắc so sánh từ kí tự trái sang phải

Ví dụ: ‘may tinh’ < ‘may tinh cua toi’ ‘TIN HOC’ = ‘TIN HOC’ * Các thủ tục hàm xử lí xâu

a Thủ tục xố n kí tự

Cú pháp delete(st,vt,n)

st: xâu

vt: vị trí bắt đầu xố n: số kí tự xóa ví dụ:

Giá trị st Thao tác Kết

‘Nguyen Van A’ delete(st,8,3) ?

b Thủ tục chèn xâu S1 vào xâu S2

Cú pháp: Insert(s1,s2,vt) s1, s2: xâu

vt: vị trí bắt đầu chèn xâu s1

c Hàm tạo xâu

Cú pháp: copy(s,vt,n) s: xâu

vt: vị trí bắt đầu lấy xâu s n: số kí từ sé lấy

d Hàm tính độ dài xâu

Cú pháp: length(s)

(56)

ví dụ: s1: ‘uy’

s2: ‘Nguyen Van A’ pos(s1,s2) có giá trị bao nhiêu?

Chia nhóm nhóm ví dụ thảo luận phút lên bảng viết chương trình

Nhận xét cho điểm

3

Nhóm 1-6: ví dụ Nhóm 2-5: Ví dụ Nhóm 3-4: ví dụ

lên bảng viết chương trình

cú pháp: pos(s1,s1)

f Hàm cho chữ in hoa

Cú pháp: upcase(ch) ví dụ: upcase(a) -> ‘A’

upcase(B) -> ‘B’

3 Một số ví dụ SGK

V CỦNG CỐ - DẶN DÒ 1 Củng cố:

Thế xâu?

Cách khai báo xâu? Tham chiếu đến phần tử xâu? Các hàm thủ tục xử lí xâu?

2 Dặn dò

(57)

TUẦN: 27

TIẾT: 33 BÀI TẬP CHƯƠNG IV (tt) NGÀY SOẠN: 31/01/2010



I MỤC ĐÍCH – YÊU CẦU

Củng cố kiến thức học 12

II PHƯƠNG PHÁP

Nêu vấn đề, diễn giảng., thảo luận nhóm

III PHƯƠNG TIỆN DẠY HỌC

Bảng phụ viết chương trình tập chương

IV NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP 1 Ổn định lớp (kiểm tra sĩ số)

2 Kiểm tra cũ:

Câu 1: viết cú pháp khai báo xâu?

Câu 2: Giả sử biến xâu St lưu giá trị ‘Truong THPT Duyen Hai’ viết kết sau: Delete(St,13,9) → ?, Copy(st,8,4)→ ?, length(St)→ ?

3 Nội dung

HOẠT ĐỘNG CỦA GV HOẠT ĐỘNG CỦA HS NỘI DUNG

Hôm trước ta dừng lại ví dụ tiết tập ta xét tiếp ví dụ cịn lại

Ví dụ 4: Viết chương trình nhập vào xâu đưa hình xâu thu từ loại dấu cách

Vd:

I: ‘a d nf h d f’ O: ‘adnfhdf’

Ví dụ 5: Viết chương trình nhập vào xâu s1, tạo xâu s2 gồm tất chữ số xâu s1

I: ‘a7cv912n9d356’ O: ‘79129356’

Hướng dẫn gợi ý học sinh thảo luận

Hãy đưa phương án

Bài 10/80

Viết chương trình nhập từ bàn phím xâu kí tự s có độ dài khơng 100 Hãy cho biết có chữ số xuất xâu s

HS thảo luận đưa phương án để giải

Có thể dùng thủ tục delete Dùng xâu mởi lưa xâu xâu kí tự

Kiểm tra kí tự kí tự số đưa vào xâu giống ví dụ

SGK

SGK Câu 10/80.

Chương trình

Program cau_10; Var S:tring[100];

i, dem: byte;

begin

(58)

Thảo luận viết chương trình

readln(S); dem:= 0;

for i:=1 to length(S)

if (‘0’ <= S[i]) and (S[i]<9) then

dem:= dem +1;

write(‘trong xau co ’, dem, ‘ chu so’); readln

end

V CỦNG CỐ - DẶN DÒ 1 Củng cố:

Nhắc lại số ý viết chương trình

2 Dặn dị

(59)

TUẦN: ………

TIẾT: …… BÀI THỰC HÀNH NGÀY SOẠN: ………

I MỤC ĐÍCH – YÊU CẦU 1 Kiến thức

Làm quen với tiềm kiếm, thay biến đổi xâu

2 Kĩ năng

HS biết khai báo xâu

Nhập liệu cho xâu, đưa hình giá trị xâu Duyệt qua tất kí tự xâu

Sử dụng hàm thủ tục chuẩn học

3 Thái độ

Rèn luyện HS ý thức cần có người lập trình

Góp phần rèn luyện tác phong, tư lập trình: Tự giác, tích cực, chủ động thực hành

II PHƯƠNG PHÁP

Nêu vấn đề giải vấn đề

III PHƯƠNG TIỆN DẠY HỌC

Phòng máy thực hành vi tính, máy chiếu

IV NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP 1 Ổn định lớp (kiểm tra sĩ số)

2 Kiểm tra cũ 3 Nội dung

HOẠT ĐỘNG CỦA GV HOẠT ĐỘNG CỦA HS NỘI DUNG

Yêu cầu HS mở chương trình Pascal

Hướng dẫn HS tìm hiểu chương trình

Một xâu gọi Palidrom ta đọc kí tự từ phải sang trái giống từ trái sang phải

Bài 2:

Hướng dẫn HS :

Ta thấy cần ghi nhận số lần xuất chữ Có tất 26 chữ từ A đến Z Có thể dung mảng chiều để ghi nhận số lần xuất

Mở chương trình Pascal

Chương trình

var i, x: byte;

a, p: string;

begin

write('nhap vao xau: ’); readln(a); x:= length(a);

p:=’’;

for i := x downto

p:= p+a[i];

if a = p then write('xau la palindrome’) else write('xau la palindrome’);

readln

end.

b Hãy viết lại chương trình đó, khơng dùng biến xâu p

(60)

xâu S kí tự

Do chương trình khơng phân biệt chữ hoa chữ thường nên ta dùng hàm upcase để đổi kí tự thường thành kí tự hoa

Có thể cho dàn ý sau: {phần khai báo}

begin

{nhập xâu S} N:= length(S);

{khởi tạo giá trị cho mảng dem}

for i:= to N

{nếu S[i] chữ đếm tăng cho S[i] }

for i :=1 to 26

{Thông báo số lần xuất chr(i+ord(‘A’) –1)}

end.

Yêu cầu HS nhà chuẩn bị

V CỦNG CỐ - DẶN DÒ 1 Củng cố:

Nhắc lại số lỗi thực hành

2 Dặn dò

(61)

TUẦN: 27

TIẾT: 34 § 13 KIỂU BẢN GHI NGÀY SOẠN: ………



I MỤC ĐÍCH – YÊU CẦU 1 Kiến thức

Biết khái niệm kiểu ghi

Biết cách khai báo ghi, truy cập đến trường ghi Các thao tác nhập, xuất hay xử lí trường ghi

2 Kĩ năng:

Bước đầu biết mô tả đối tượng số thuộc tính cần quản lí Khai báo kiểu ghi

Nhận biết trường (thuộc tính) biến ghi bước đầu viết vài thao tác xử lí trường ghi

II PHƯƠNG PHÁP

Nêu vấn đề, diễn giảng., thảo luận nhóm

III PHƯƠNG TIỆN DẠY HỌC

Máy chiếu, máy tính…

IV NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP 1 Ổn định lớp (kiểm tra sĩ số)

2 Kiểm tra cũ: 3 Nội dung

HOẠT ĐỘNG CỦA GV HOẠT ĐỘNG CỦA HS NỘI DUNG

Chiếu kết thi tốt nghiệp SGK trang

? Trên bảng có thơng tin gì?

? Bảng chứa thơng tin đối tượng?

Mỗi thông tin đối tượng gọi thuộc tính hay trường Mỗi đối tượng mô tả nhiều thông tin hàng gọi ghi

NNLT cho phép ta xác định kiểu ghi

? Để mô tả kiểu ghi ta cần xác định yếu tố nào?

Để khai báo kiểu ghi ta cần khai báo: Tên kiểu ghi, tên trường, kiểu liệu trường

Họ tên, ngày sinh, giới tính, điểm môn thi Bảng chứa thông tin đối tượng

HS trả lời câu hỏi

§ 13 KIỂU BẢN GHI

* Để mô tả kiểu bàn ghi ta cần xác định: - Tên kiểu ghi

- Tên thuộc tính (trường) - Kiểu liệu trường - Các khai báo biến

- Cách tham chiếu đến trường

1 Khai báo

Cú pháp:

type <tên kiểu ghi> = record

<tên trường 1>: <kiểu trường 1>; < tên trường k>: <kiểu trường k>;

end;

var <tên biến ghi>: <tên kiểu ghi>;

* Trong đó:

(62)

Yêu cầu HS cho ví dụ khai báo kiểu liệu ghi

Nếu A B hai biến ghi có kiểu ta gán giá trị B cho A

Yêu cầu HS viết thủ tục nhập giá trị trường biến ghi DS

Yêu cầu HS nghiên cứu ví dụ SGK

? Sử dụng kiểu liệu để giải toán Nêu bước để giải tốn

u cầu chia nhóm thảo luận sau ghi giấy thu lại cho nhóm khác nhận xét

Chiếu mẫu chương trình chạy thử

Lên cho ví dụ

Readln(DS.Ho_ten); Readln(DS.Ngay_sinh); Readln(DS.Gioi_tinh); Readln(DS.Toan); Readln(DS.Li); Readln(DS.Hoa); Readln(DS.Tin); Một bảng ghi Bước1: Tạo kiểu liệu, khai báo biến

Bước 2: Nhập liệu cho mảng ghi

Bước 3: Tính tổng điểm Toan điểm Van

+ Bước 4: dựa vào tổng điểm để xếp loại

- <tên kiểu ghi>; <tên trường

1>, <tên trường k>; <tên biến ghi>:

do người lập trình tự đặt

- <kiểu trường 1>, , <kiểu trường k>: thuộc kiểu liệu chuẩn hay kiểu liệu có cấu trúc

Vd: type danh_sach = record

Ho_ten:string[30]; Ngay_sinh:string[10]; Gioi_tinh: boolean; Toan, Li, Hoa, Tin:real; end;

Var DS: danh_sach;

* Tham chiếu đến trường bảng ghi:

<tên biến ghi>.<tên trường>

Ví dụ: DS.Tin

2.Gán giá trị

Có hai cách để gán giá trị cho biến ghi:

- Dùng lệnh gán trực tiếp

Nếu A B hai biến ghi có kiểu thì: A:=B;

- Gán giá trị cho trường: A.ht:=B.ht; A.dtb:=B.dtb;

Ví dụ: SGK

Chương trình: SGK

V CỦNG CỐ - DẶN DÒ 1 Củng cố:

Cách khai báo kiểu ghi, tham chiếu đến trường bảng ghi Gán giá trị cho ghi, thủ tục, câu lệnh nhập xuất, xử lí bảng ghi

2 Dặn dị

(63)

TUẦN: 28

TIẾT: 35 NGÀY SOẠN: ………

BÀI TẬP I MỤC ĐÍCH – YÊU CẦU:

1.Kiến thức:

- Ôn lại kiến thức ghi: cú pháp khai biến, cách tham chiếu, số câu lệnh liên quan đến thao tác xử lý ghi

- Nắm số thuật tốn: Nhập thơng báo kết trường, xếp liệu

2.Kỹ năng:

- Khai báo kiểu ghi NNLT Pascal - Nhập xuất liệu cho biến ghi

- Tham chiếu đến trường kiểu ghi - Sử dụng kiểu ghi để giải số toán

3.Thái độ:

Tiếp tục rèn luyện phẩm chất cần thiết nguời lập trình như: ý thức chọn xây dựng kiểu liệu, ý thức rèn luyện kỹ năng,

II PHƯƠNG PHÁP:

Vấn đáp kết hợp diễn giảng III PHƯƠNG TIỆN DẠY HỌC

Máy chiếu, máy tính…

IV NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP 1 Ổn định lớp (kiểm tra sĩ số)

2 Kiểm tra cũ:

1.Hãy nêu cú pháp khai báo biến ghi? 2.Hãy khai báo biến ghi ví dụ sau:

BẢNG ĐIỂM TRUNG BÌNH NĂM HOC 2007-2008

TT Họ tên năm sinh Toán Hoá Văn TB Xếp loại

1 n 3 Nội dung

Đặt vấn đề(1’):

Kiểu liệu ghi dùng để mơ tả đối tượng có số thuộc tính mà thuộc tính có kiểu liệu khác nhau, nghiên cứu lý thuyết kiểu ghi tiết trước Hôm vận dụng kiểu ghi để làm số tập

HOẠT ĐỘNG CỦA GV & HS NỘI DUNG KIẾN THỨC Hoạt động 1: Giới thiệu cách truy xuất

đến trường GV:

-Yêu cầu Hs đọc câu hỏi tập 11/80 -Yêu cầu Hs xem lại ví dụ trả lời câu hỏi sau:

Hãy xem ví dụ SGK bổ sung thêm

Bài tập 11/80(SGK):

Lưu ý vận dụng tập tiết 34

(64)

đoạn chương trình đưa danh sách học sinh có xếp loại A?

HS: Đọc đề kết hợp với ví dụ trong

SGK để sửa lại chương trình

-Phân tích câu lệnh Hs đưa ra=>Kết luận chương trình cụ thể

-Đưa tồn chương trình lên máy chiếu chạy vài test để kiểm chứng thuật toán

Hoạt động 2: Rèn luyện tư lập trình GV: Đưa câu hỏi tập lên máy chiếu

và Y/c học sinh đọc

Hãy nêu cách tổ chức liệu cho tập 2?

HS:Lên bảng viết cách khai báo biến bản

ghi

Tổ chức hoạt động nhóm sau:

+Nhóm 1: Viết đoạn chương trình nhập Họ tên, DTBHK1 DTBHK2 học sinh

+Nhóm 2: Viết đoạn chương trình tính TBCN xếp loại

+Nhóm3: Viết đoạn chương trình xếp theo thứ tự tăng dần cột điểm TBCN

+Nhóm 4: Xuất kết theo bảng sau:

TT Họ tên

DHK1 DHK2 DCN XL

2 n

HS: Thảo luận theo nhóm phân cơng

-Y/c nhóm trình bày giấy A0

-Sau thảo luận nhóm xong nhóm lên bảng trình bày, nhóm khác bổ sung

-Sau nhóm bổ sung thi Gv nhận xét phân tích đoạn chương trình=>Đưa chương tình cụ thể sau lên máy chiếu chạy thử vài Test để kiểm chứng thuật toán

Writeln(' TT ',' Ho va Ten ', ' Xloai '); For i:=1 to n

If lop[i].xeploai='A' Then Begin

Write(i:4);

Write(Lop[i].ten:30); Write(Lop[i].Xeploai); Writeln;

End;

Bài tập 2/145(SBT Pascal5.5):

Viết chương trình nhập họ tên, điểm DHK1 DHK2 Hs lớp

a.Tính TBCN xếp loại

b Xếp hạng theo thứ tự tăng dần cột điểm TBCN học sinh

c.Thông báo theo bảng sau theo thứ tự xếp cột điểm TBCN

TT Họ tên DHK1 DHK2 DCN XL

2 n

*Chương trình:

Type Bdiem=Record Hoten:String;

DHK1,DHK2,TBCN:Real; Xeploai:String[5];

End;

Var Hs:Array[1 60] Of Bdiem; I,j,n:Byte;

Tg:Bdiem; Begin

Write('Nhap so luong Hs n='); Readln(n); For i:=1 To n Do

With Hs[i] Do Begin

(65)

Write('NhapTBHK1',i); readln(DHK1); Write('NhapTBKT2',i); Readln(DHK2); End;

{Tinh TB Ca nam va Xep loai}

For i:=1 To n Do

Hs[i].TBCN:=(Hs[i].DHK1+Hs[i].DHK2*2)/3; For i:=1 To n Do

With Hs[i] Do Begin

If TBCN>=8.0 Then Xeploai:='Gioi'; if (TBCN>=6.5)and(TBCN<8.0) Then Xeploai:='Kha';

If (TBCN>=5) and (TBCN<6.5) Then Xeploai:='TB';

If (TBCN>=3.5) and (TBCN<5) Then Xeploai:='Yeu';

If TBCn<3.5 Then Xeploai:='Kem'; End;

For i:=1 to n-1 Do For j:=i+1 to n Do

If Hs[i].TBCN> Hs[j].TBCN Then Begin

tg:=Hs[i]; Hs[i]:=Hs[j]; Hs[j]:=tg; End;

{Thong bao ket qua nhu sau}

Writeln(' '); Writeln('| TT |','| Ho ten |','| TBCN |','| xeploai |');

Writeln(' '); For i:=1 to n

With Hs[i] Do

Writeln(i:5,hoten:20,TBCN:10:2,Xeploai:10); Readln;

End

V.CỦNG CỐ -DẶN DÒ:

1.Củng cố

 Cách khai báo biến ghi

 Cách truy xuất vào giá trị trường

 Cách nhập xuất trường ghi

2 Dặn dò:

(66)

TUẦN: 28

TIẾT: 36 NGÀY SOẠN: ………

KIỂM TRA THỰC HÀNH DƯỚI 45 PHÚT I MỤC ĐÍCH – YÊU CẦU

Kiến thức

- Kiểm tra lại kiến thức học chương III Kĩ năng: rèn luyện kĩ làm kiểm tra

Thái độ: nghiêm túc, tuân thủ quy chế kiểm tra.

II CHUẨN BỊ

 Giáo viên: đề kiểm tra

 Học sinh: Học trước nhà

III NỘI DUNG

1 Ổn định lớp học 2 Đề kiểm tra

Viết chương trình nhập vào xâu s

a Đếm xuất hình số lần chữ số xuất chữ số xâu

b Tạo xâu cách lấy đổi tất kí tự xâu s thành kí tự in hoa

3 Đáp án

NỘI DUNG CHƯƠNG TRÌNH THANG ĐIỂM

Program chuong_trinh; Uses crt;

Var s, st : string[50]; dem, i, l: byte;

Begin

Write(‘nhap xau: ’); readln(s); 1đ

l:= length(s);

dem:= 0; 1đ

For i:= to l

if (s[i]>= ‘0’) and (s[i] <= ‘9’ then

dem:= dem +1; 2đ

Writeln(‘so lan xuat hien chu so: ’, dem:5); 1đ St:=’’;

2đ For i:= to l

st:= st + upcase(s[i]); Write(‘xau vua tao: ‘, st); Readln

End 1đ

(67)

TUẦN: 29

TIẾT: 37 NGÀY SOẠN: ………

§ 14 KIỂU DỮ LIỆU TỆP § 15 THAO TÁC VỚI TỆP



I MỤC ĐÍCH – YÊU CẦU

- Biết khái niệm vai trò kiểu tệp

- Biết hai cách phân loại tệp: theo cách tổ chức liệu theo cách truy cập - Hiểu chất tệp văn

- Biết bước làm việc với tệp

- Biết khai báo tệp thao tác với tệp văn - Biết sử dụng số hàm thủ tục chuẩn làm việc với tệp

II PHƯƠNG PHÁP

Nêu vấn đề, diễn giảng., thảo luận nhóm

III PHƯƠNG TIỆN DẠY HỌC

Máy chiếu, máy tính…

IV NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP 1 Ổn định lớp (kiểm tra sĩ số)

2 Kiểm tra cũ: Không kiểm tra 3 Nội dung

HOẠT ĐỘNG CỦA GV HOẠT ĐỘNG CỦA HS NỘI DUNG

? Trong máy tính có loại nhớ nào? Loại không bị liệu tắt máy điện?

? Dữ liệu thuộc kiểu liệu xét lưu trữ đâu?

? Vì em biết?

Chốt lại: để lưu trữ liệu lâu dài lưu với dung lượng lớn người ta lưu liệu nhớ ngồi thơng qua tệp (file)

Có nhiều cách để phân loại tệp

? Xét theo cách tổ chức liệu tệp chia thành loại? Kể tên loại?

? Xét theo cách thức truy cập tệp chia thành loại? Kể tên loại?

Mất liệu điện Bộ nhớ nhớ Bộ nhớ không liệu tắt máy điện

Trong RAM

Mất liệu điện

2 loại: tệp văn tệp có cấu trúc

2 loại: tệp truy cập tệp truy cập trực tiếp

§ 14 KIỂU DỮ LIỆU TỆP

1 Vai trò kiểu tệp: Đặc điểm kiểu liệu tệp

+ Dữ liệu kiểu tệp lưu trữ lâu dài nhớ không bị tắt nguồn điện

+ Lượng liệu lưu trữ tệp lớn phụ thuộc vào dung lượng đĩa

2 Phân loại thao tác với tệp

* Xét theo cách tổ chức liệu

+ Tệp văn tệp mà liệu ghi dạng kí tự theo mã ASCII

+ Tệp có cấu trúc: tệp mà thành phần tổ chức theo cấu trúc định

* Xét theo cách thức truy cập:

+ Tệp truy cập tuần tự: cho phép truy cập liệu

(68)

Dẫn dắt để chuyển sang 15 Viết khai báo lên bảng giải thích thành phần cú pháp

Yêu cầu HS lấy ví dụ minh hoạ

Mỗi liệu điều có tên tệp để tham chiếu Trong lập trình ta không cần thao tác trực tiếp với tệp liệu đĩa mà thông qua biến tệp

Yêu cầu lấy ví dụ gắn tên tệp

Lấy hai tình cần phải mở tin học 11: mở để ghi (ghi liệu), mở để học (dọc liệu) => trường hợp phải mở tệp

Giới thiệu thủ tục để mở tệp: Yêu cầu HS lấy ví dụ minh hoạ

? Để nhập liệu từ bàn phím, để in liệu lên hình ta dùng thủ tục nào? Giới thiệu thủ tục đọc liệu từ tệp ghi liệu vào tệp

Yêu cầu HS lấy ví dụ?

Đưa lí phải đóng tệp để giáo dục cho HS ý thức bảo mật, an tồn thơng tin

Ghi vào

var T1, T2: Text;

assign(T1,’BAITAP.TXT); ý nghe giảng liên hệ với học

Mỗi em lấy ví dụ Trả lời câu hỏi

Mỗi em lấy ví dụ

§ 15 THAO TÁC VỚI TỆP

1 Khai báo

Cú pháp: var <tên biến tệp>: Text;

2 Thao tác với tệp a Gắn tên tệp

Thủ tục gắn tên tệp với biến tệp:

assign(<biến tệp>,<tên tệp>);

tên tệp: biến xâu xâu

b Mở tệp

Hai thủ tục để mở tệp - Mở để ghi liệu:

Rewrite(biến tệp); - Mở tệp để đọc liệu:

Reset(biến tệp);

c Đọc/ghi tệp văn bản

- Đọc liệu từ tệp:

Read(biến tệp, danh sách biến);

Readln(biến tệp, danh sách biến); - Ghi liệu vào tệp:

Write(biến tệp, danh sách kết quả);

Writeln(biến tệp, danh sách kết quả); *Một số hàm đọc/ghi tệp văn bản - Hàm eof(biến tệp) trả giá trị TRUE trỏ tệp đến cuổi tệp

- Hàm eoln(biến tệp) trả giá trị TRUE trỏ tệp đến cuổi dịng

d Đóng tệp:

Thủ tục để đóng tệp

Close(biến tệp); V CỦNG CỐ - DẶN DÒ

1 Củng cố:

Cụ thể sơ đồ SGK trang 86

2 Dặn dò

(69)

TUẦN: 29

TIẾT: 38 NGÀY SOẠN: ………

§ 16 VÍ DỤ LÀM VIỆC VỚI TỆP 

I MỤC ĐÍCH – YÊU CẦU

Hiểu thao tác làm việc với tệp

II PHƯƠNG PHÁP

Nêu vấn đề, diễn giảng., vấn đáp…

III PHƯƠNG TIỆN DẠY HỌC

Máy tính máy chiếu projector

IV NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP 1 Ổn định lớp (kiểm tra sĩ số)

2 Kiểm tra cũ:

Câu hỏi: Viết cú pháp mở, đọc/ghi, đóng tệp? Mỗi phần cho ví dụ minh hoạ?

3 Nội dung

HOẠT ĐỘNG CỦA GV HOẠT ĐỘNG CỦA HS NỘI DUNG

Hoạt động 1: Ví dụ 1

Hoạt động 1.1: Tìm hiểu đề bài

Chiếu tốn lên

Hướng dẫn HS tìm hiều đề bài:

? Yêu cầu HS nhắc lại cơng thức tính khoảng cách biết toạ độ hai điểm?

Hoạt động 1.2: tìm hiểu

chương trình:

Chiếu chương trình soạn sẵn lên (có đánh vị trí dịng)

? Gọi HS nêu ý nghĩa câu lệnh dòng?

Nhận xét, sau khái qt chương trình để HS nắm chạy chương trình

Hoạt động 1.3: Mở rộng bài

tốn

u cầu in lên hình khoảng cách trại xa với trại hiệu trưởng nhất?

Hoạt đơng 2: ví dụ 2

Hoạt động 2.1: Tìm hiểu bài

tốn

Chiếu tốn lên

u cầu HS chia nhóm để tính điện trở tương đương sơ đồ

Chiếu sơ đồ điện trở

Phân tích, xác định yêu cầu toán theo hướng dẫn giáo viên

Trả lời câu hỏi

Tìm hiểu nghiên cứu chương trình

Quan sát kết chạy chương trình

Thảo luận phút đưa đáp án

Quan sát tìm hiểu tốn

Chia nhóm nhóm xây dựng cơng thức tính điện trở tương đương

Ví dụ 1:

Chương trình:

Program Khoang_cach; Var d:real;

f:text; x, y: integer;

begin

assign(f,’TRAI.TXT’); reset(f);

while not eof(f) begin

read(f,x,y);

d:= sqrt(x*x+y*y);

write(‘khoang cach: ‘,d:10:2);

end; close(f) end.

Vi dụ

Chương trình:

Program Chuong_trinh; Var a: array[1 5] of real;

R1, R2, R3: real; i: integer;

(70)

Nhận xét yêu cầu nhóm chuyển biểu thức sang NNLT Pascal

Hoạt động 2.2: Xây dựng

chương trình:

Gọi HS lên xây dựng chương trình theo bước

Chiếu bước lên + Khai báo

+ Gán tên tệp cho biến tệp + Đọc liệu từ tệp

+ Tính điện trở tương đương + Ghi vào tệp

+ Đóng tệp

Nhận xét tối ưu chương trình

Chạy chương trình

Mỗi HS lên trình bày theo bước

Theo dõi rút kinh nghiệm chỗ sai sót

Begin

Assign(f1, ‘RESIST.DAT’); Reset(f1);

Assign(f2, ‘RESIST.EQU’); Rewrite(f2);

While not eof(f1) 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 write(f2,a[i]:9:2,‘= ‘); writeln(f2);

end; close(f1); close(f2); end

V CỦNG CỐ - DẶN DÒ 1 Củng cố:

Nhắc lại thủ tục thao tác với tệp

2 Dặn dò

(71)

TUẦN: 30

TIẾT: 39 NGÀY SOẠN:

TIẾT BÀI TẬP 

I MỤC ĐÍCH – YÊU CẦU

Củng cố kiến thức học chương V

II PHƯƠNG PHÁP

Nêu vấn đề, vấn đáp…

III PHƯƠNG TIỆN DẠY HỌC

SGK, bảng phụ…

IV NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP 1 Ổn định lớp (kiểm tra sĩ số)

2 Kiểm tra cũ:

Không kiểm tra cũ kiểm tra 15 phút

3 Nội dung

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

Hoạt động 1: câu 1/89

Nêu câu hỏi sau yêu cầu HS suy nghĩ trả lời

Hoạt động 2: câu 2/89

Trong sơ đồ thao tác với tệp, cần nhập liệu từ tệp phải dùng thao tác nào?

Hoạt động 3: câu 3/89

Tại cần phải có câu lệnh mở tệp trước đọc /ghi tệp?

Hoạt động 4: câu 4/89

Tại sau phải dùng câu lệnh đóng tệp sau kết thúc ghi liệu vào tệp?

Có thể trình bày thêm ý: trước liệu thực ghi vào tệp, lưu trữ nhớ đệm Mỗi nhớ đệm đầy có u cầu đóng tệp liệu nhớ đệm (có thể chưa đầy) chuyển ghi vào tệp

Trả lời câu hỏi: Lưu lượng lớn thông tin, lưu thông tin lâu dài

Trong sơ đồ thao tác với tệp, cần nhập liệu từ tệp phải dùng thao tác như: gắn tên tệp, mở tệp để ghi, ghi liệu vào tệp, đóng tệp để hồn tất việc ghi liệu

assign(f, fi); rewrite(f);

write(f, x, ‘ ‘,y, ‘ ‘,z, ‘ ‘); close(f);

Trước sử dụng tệp phải có câu lệnh để trình dịch biết mục đích mở tệp để đọc hay ghi, đồng thời đặt trỏ tệp vào vị trí thích hợp

Phải dùng câu lệnh đóng tệp sau kết thúc ghi liệu vào tệp để hệ thống hoàn tất việc ghi liệu tệp

V CỦNG CỐ - DẶN DÒ 1 Củng cố:

Nhăc lại cần thiết phải sử dụng trệp

2 Dặn dò

(72)

TUẦN: 30 - 31

TIẾT: 40 - 41 NGÀY SOẠN: ………

CHƯƠNG VI CHƯƠNG TRÌNH CON VÀ LẬP TRÌNH CĨ CẤU TRÚC



§ 17 CHƯƠNG TRÌNH CON VÀ PHÂN LOẠI

I MỤC ĐÍCH – YÊU CẦU 1 Kiến thức

− Biết khái niệm chương trình

− Sự khác biệt hàm thủ tục

− Biết ý nghĩa chương trình con, cần thiết phải viết chương trình thành chương trình

− Biết cấu trúc chương trình

2 Kĩ năng

− Nhận biết thành phần đầu thủ tục

− Nhận biết hai loại tham số hình thức đầu thủ tục

− Biết cách khai thác hai loại chương trình với tham số hình thiức chúng − Biết cách viết lời gọi chương trình thân chương trình

3 Thái độ

Rèn luyện phẩm chất người lập trình tinh thần hợp tác, làm việc theo nhóm,tn thủ u cầu cơng việc chung

II PHƯƠNG PHÁP

Nêu vấn đề, diễn giảng, thảo luận nhóm

III PHƯƠNG TIỆN DẠY HỌC

Máy chiếu, máy tính…

IV NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP 1 Ổn định lớp (kiểm tra sĩ số)

2 Kiểm tra cũ: không kiểm tra cũ

3 Nội dung

HOẠT ĐỘNG CỦA GV HOẠT ĐỘNG CỦA HS NỘI DUNG

Hoạt động 1: khái niệm

chương trình phân loại:

Hoạt động 1.1: Khái niệm

chương trình

Đặt vấn đề: chiếu toán

trong SGK

? Nếu em nhóm trưởng thì

nhóm em giải tốn nào?

Dẫn dắt để đưa khái niệm chương trình

Hoạt động 1.2: Lợi ích của

việc sử dụng chương trình Chiếu chương trình giải tốn

? Em có nhận xét chương

Quan sát tốn

Chia nhóm thảo luận (2’) Em chia bạn thực

Đọc chương trình 3’ nhận xét:: Chương trình

1 Khái niệm chương trình con a Khái niệm:

Chương trình dãy lệnh mơ tả số thao tác định thực (được gọi) từ nhiều ví trí chương trình

b Lợi ích việc sử dụng chương trình con

− Tránh việc phải viết viết lại dãy lệnh

− Chương trình dễ đọc, dễ hiểu, dễ kiểm tra phát lỗi chỉnh sửa

(73)

trình (Đặc biệt phần bôi đen)?

Để xử lí vấn đề NNLT bậc cao cung cấp khã xây dựng chương trình dạng tổng quát “đại diện” cho nhiều đoạn lệnh tương tự

Cho HS nghiên cứu lợi ích việc sử dụng chương trình

Giải thích lợi ích

Hoạt động 2:

Hoạt động 2.1: Phân loại

chương trình

? Thế hàm, thủ tục?

sự khác hàm thủ tục?

? Em làm quen với hàm thủ tục

Hoạt động 2.2: cấu trúc

chương trình con:

Đọc SGK yêu cầu HS lên bảng viết

Yêu cầu HS so sánh với cấu trúc chương trình

Yêu cầu HS giải thích phần khai báo phần thân chương trình

Hoạt động 3: Một số khái

có đoạn lệnh tương tự Làm cho chương trình trở nên dài

Nhóm HS khác nhận xét Đọc SGK cho biết lợi ích

HS phát biếu chỗ

Hàm: Sin(x), SQR(x), length(s)

Thủ tục: write( ), readln, delete(st,p,n)

Lên bảng viết cấu trúc CTC Giống cấu trúc chương trình khác chỗ phần đầu chương trình bắt buộc phải có

HS đứng chỗ phát biểu

lớn

− Phục vụ cho trình trừu tượng hóa − Mở rộng khã NN

− Thuận tiện cho việc phát triển nâng cấp chương trình

2 Phân loại cấu trúc chương trình con

a Phân loại:

− Hàm (Function): chương trình thực số thao tác trả giá trị qua tên

VD: sin(x), sqrt(s), length(s)

− Thủ tục (procedure): chương trình thực số thao tác định khơng trả giá trị qua tên

VD: write( ), readln, delete(st,p,n)

b cấu trúc chương trình con <phần đầu> [<phần khai báo]>

<phần thân>

− Phần khai báo khai báo biến,

− Phần thân dãy lệnh với nhiệm vụ

Chương trình

Modul1(CTC) Modul1(CTC)

Modul1(CTC) Modul1(CTC)

(74)

niệm:

Diễn giải để đưa khái niệm biến cục bộ, tham số hình thức VD: chương trình Luythua(x,k) x, k tham số hình thức j biến cục

Hoạt động 4: Thực CTC ? Để sử dụng thủ tục hàm

chuẩn em thường viết đâu viết nào?

Để gọi chương trình con, ta cần có lệnh gọi tương tư tự hàm thủ tục chuẩn theo cú pháp

Yêu cầu HS cho ví dụ

Chiếu chương trình yêu cầu HS xác định tham số hình thức, tham số thực sự, biến cục bộ, biến tồn cục

Viết chương trình Viết tên thủ thục tham số kết thúc dấu “;” Viết hàm lệnh thủ tục Hàm không viết lệnh

Cho ví dụ

Chia nhóm để trả lời câu hỏi

* Tham số hình thức

Các biến khai báo cho liệu vào/ra gọi tham số hình thức CTC

* Biến cục bộ:

Các biến khai báo dùng riêng cho chương trình gọi biến cục

* Biến tồn cục:

Biến sử dụng cho chương trình, kể CTC

* Tham số thực sự:

Là biến chứa liệu vào tương ứng với tham số hình thức

VD: Luythua(a,m) a, m tham số thực

c Thực chương trình con:

Tên chương trình con(tham số thực sự) VD: Luythua(b,n);

V CỦNG CỐ - DẶN DÒ 1 Củng cố:

- Khái niệm chương trình - Lợi ích việc sd CTC - Phân biệt hàm thủ tục

- Tham số hình thức, tham số thực sự, biến cục biến toàn cục - Thực chương trình

2 Dặn dò

(75)

TUẦN: 31 - 32

TIẾT: 42 - 43 NGÀY SOẠN:

§ 18 VÍ DỤ VỀ CÁCH VIẾT VÀ SỬ DỤNG CTC I MỤC ĐÍCH – YÊU CẦU

1 Kiến thức

− HS thấy thủ tục có cấu trúc tương tự chương trình − Hiểu mối liên quan chương trình thủ tục

− Phân biệt tham trị tham số biến khai báo tham số hình thức thủ tục

2 Kĩ năng

− Nhận biết thành phần đầu thủ tục

− Nhận biết hai loại tham số hình thức phần đầu thủ tục

− Nhận biết lời gọi thủ tục chương trình tham số thực

II PHƯƠNG PHÁP

Nêu vấn đề, diễn giảng, thảo luận nhóm

III PHƯƠNG TIỆN DẠY HỌC

Máy chiếu, máy tính…

IV NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP

1 Ổn định lớp (kiểm tra sĩ số) 2 Kiểm tra cũ:

Câu 1: lợi ích việc sd CTC? Câu 2: hàm khác thủ tục điểm nào?

Câu 3: biến cục bộ, biến toàn cục, tham số hình thức, tham số thật sự, cho ví dụ?

3 Nội dung

HOẠT ĐỘNG CỦA GV HOẠT ĐỘNG CỦA HS NỘI DUNG

Hoạt động 1: Đặc vấn đề:

Chiếu vd lên bảng (ví dụ VD_thutuc1 trang 96)

Giới thiệu cho HS cấu trúc thủ tục vị trí khai báo thủ tục, lời gọi thủ tục Hoạt động 2: Tìm hiểu chương trình

Chiếu chương trình

VD_thutuc1

Giải thích để HS thấy được:

+ Tên thủ tục + Thân thủ tục + Lời gọi thủ tục

+ Hoạt động ch.trình ? Nếu ta muốn vẽ hình chủ nhật ta phải sửa chương trình nào?

Hoạt động 3: cấu trúc thủ

tục

Theo dõi

(76)

? Vị trí thủ tục nằm phần chương trình chính?

? Cấu trúc thủ tục gồm phần?

Phần đầu thủ tục gồm từ khoá procedure là tên thủ tục, DS tham số có khơng

Phần khai báo dùng để xác định kiểu biến xác định chương trình khác sd thủ tục

Dãy câu lệnh viết trong cặp từ khoá begin và

end

? Chương trình Ve_hcn khuyết phần so với cấu trúc thủ tục? Tổng quát chiếu cấu trúc thủ tục

Nhấn mạnh số đặc điểm để HS nắm

Hoạt động 4: Ví dụ thủ

tục có sử dụng tham số

Hoạt động 4.1 VD_thutuc2

Xây dựng chương trình Hướng dẫn HS chia nhỏ yêu cầu để HS viết câu lệnh tương ứng

+ Vẽ cạnh + Vẽ hai cạnh bên + Vẽ cạnh

Chính xác hố thủ tục đưa tồn chương trình hồn chỉnh

Phân tích lời gọi thủ tục đưa khái niệm tham trị

Nằm phần khai báo, sau phần khai báo biến Ba phần: tên thủ tục, khai báo thủ tục phần thân

Khuyết phần khai báo

Theo dõi ghi vào tập

Viết câu lệnh theo hướng dẫn GV

Nghe giảng ghi khái niệm tham trị tham

a Cấu trúc thủ tục

procedure <Tên thủ tục>[(ds tham số)]

[<phần khai báo>] begin

[<dãy lệnh>] end;

* Chú ý:

- Sau từ khoá end “;”

- Các thủ tục có phải khai báo mơ tả phần khai báo chương trình sau phần khai báo biến

- Khi muốn thực thủ tục ta viết lệnh gọi thủ tục thủ tục chuẩn

Chương trình: VD_thutuc2: SGK

* Một số khái niệm:

(77)

tham biến

Hoạt động 4.2:

VD_thambien1

Chiếu yêu cầu đầu yêu cầu HS đưa thuật tốn hốn đổi

Chiếu chương trình lên hình chạy chương trình cho HS thấy hoạt động tham biến

Thay đổi thủ tục cách đưa x var

Hoạt động 5: Cách viết

và sử dụng hàm

? Thủ tục khác với hàm điểm nào?

Hàm có cấu trúc tương tự thủ tục khác với thủ tục phần đầu

Giải thích cụ thể tên hàm, DS tham số, kiểu liệu

Hoạt động 5.1: Ví dụ 1

Chiếu chương trình ví dụ ? Trong chương trình có hàm?

? Hàm UCLN(x,y) dùng để làm gí?

? Lời gọi hàm đâu?

? Có khác với thủ tục lời gọi hàm?

Hoạt động 5.2: Ví dụ 2

Yêu cầu HS tham khảo SGK

biến

Dùng biến trung gian TG TG x;

x  y; y  TG;

Quan sát kết chạy chương trình

Trả lời câu hỏi

Quan sát ví dụ Một hàm UCLN

Tìm UCLN lớn hai số x, y

A:= UCLN(tuso,mauso) Lời gọi hàm phải đặt lệnh lời gọi chương trình khác

hình thức thay tham số thực tương ứng giá trị cụ thể không khai báo sau từ khoá var.

- Tham số biến (tham biến): tham số hình thức thay tham số thực tương ứng tên biến khai báo sau từ khoá var.

Chương trình VD_tham bien1: SGK

2 Cách viết sử dụng hàm:

- Hàm có cấu trúc tương tự thủ tục, khác phần đầu

function <tên hàm>[(DS tham số)]: <kiểu liệu>;

Vi dụ 1: SGK

* Cách sử dụng hàm

- Việc sử dụng hàm tương tự việc sử dụng hàm chuẩn

- Lệnh gọi hàm tham gia vào biểu thức tham số lời gọi hàm, thủ tục khác

V CỦNG CỐ - DẶN DÒ

1 Củng cố:

- Cấu trúc thủ tục hàm - Cách viết sd thủ tục hàm - Phân biệt tham trị tham biến

2 Dặn dò

(78)

TUẦN: 32 - 33

TIẾT: 44 - 45 BÀI THỰC HÀNH NGÀY SOẠN: 19/02/08

I MỤC ĐÍCH – YÊU CẦU 1 Kiến thức

Củng cố lại kiến thức xâu chương trình

2 Kĩ năng

Rèn luyện kĩ xử lí xâu việc tạo hiệu ứng chữ chạy hình Sử dụng chương trình lập trình

3 Thái độ

Rèn luyện HS ý thức cần có người lập trình

Góp phần rèn luyện tác phong, tư lập trình: Tự giác, tích cực, chủ động thực hành

II PHƯƠNG PHÁP

Nêu vấn đề giải vấn đề

III PHƯƠNG TIỆN DẠY HỌC

Phòng máy thực hành vi tính, máy chiếu

IV NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP 1 Ổn định lớp (kiểm tra sĩ số)

2 Kiểm tra cũ 3 Nội dung

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

Yêu cầu HS khởi động chương trình Pascal

Hoạt động 1: Tìm hiểu xây dựng hai thủ tục catdan(s1,s2) cangiua(s)

chiếu thủ tục catdan(s1,s2) lên hình

? Đầu vào thủ tục này?

Chức thủ tục gì? Lấy ví dụ SGK

Chiếu nội dung thủ tục

? Đầu vào thủ tục?

? Thủ tục thực cơng việc gì?

Cần lưu ý không khai báo s tham biến thủ tục khơng có hiệu lực lệnh đưa s hình khơng nằm thủ tục

Hoạt động 2: Tìm hiểu chương trình câu b

Chiếu nội dung chương trình lên hình

? Chức chương trình?

Giới thiệu cho học sinh thủ tục hàm chuẩn Gotoxy(x,y):

Delay(n): thường dùng để làm chậm chương trình lại cho ta quan sát, n số ngun tính ms

Keypressed: cho giá trị True ta nhấn phím

Khởi động chương trình

Quan sát trả lời câu hỏi GV Vào: Xâu kí tự s1

Ra: biến xâu kí tự s2

Thực việc tạo sâu s2 từ xâu s1 việc chuyển kí tự thứ đến vị trí cuối xâu Đầu vào xâu kí tự s khơng q 79 kí tự Bổ sung vào s dấu cách để s đưa hình kí tự ban đầu dịng gồm 80 kí tự

(79)

nào vào bàn phím

Thực chương trình để giúp HS thấy kết chương trình

Hoạt động 3: Rèn luyện kĩ lập trình

Yêu cầu HS tìm hiểu vấn đề

Yêu cầu HS lập trình máy

Yêu cầu HS chạy chương trình nhập test Đánh giá kết lập trình HS

Quan sát kết hình Quan sát đưa kết luận

- Giống nhiệm vụ câu b, khác chương trình câu b ln cho xâu kí tự chạy dịng 12cịn xâu kí tự phải chạy xâu bất kì.Vì truyền tham số cho dòng chạy cho thủ tục

Viết chương trình máy báo cáo kết Nhập test theo hướng dẫn giáo viên

V CỦNG CỐ - DẶN DÒ 1 Củng cố:

Nhắc lại số lỗi thực hành

2 Dặn dò

Câu hỏi tập nhà

Viết thủ tục chaychu(s, dong) nhận tham số xâu s khơng q 79 kí tự biến ngun dịng In hình dịng chữ xác định S chạy dịng Don Viết chương trình thực có sử dụng thủ tục

(80)

TUẦN: 25

TIẾT: 44 BÀI THỰC HÀNH NGÀY SOẠN: 19/02/08

I MỤC ĐÍCH – YÊU CẦU 1 Kiến thức

Củng cố lại kiến thức chương trình

2 Kĩ năng

Rèn luyện kĩ lập trình giải số toán đơn giản

3 Thái độ

Rèn luyện HS ý thức cần có người lập trình

Góp phần rèn luyện tác phong, tư lập trình: Tự giác, tích cực, chủ động thực hành

II PHƯƠNG PHÁP

Nêu vấn đề giải vấn đề

III PHƯƠNG TIỆN DẠY HỌC

Phịng máy thực hành vi tính, máy chiếu

IV NỘI DUNG VÀ TIẾN TRÌNH LÊN LỚP 1 Ổn định lớp (kiểm tra sĩ số)

2 Kiểm tra cũ 3 Nội dung

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

Họat động 1: Tìm hiểu việc xây dựng hàm thủ tục Chiếu khai báo kiểu liệu Diem tam giác Chiếu thủ tục lên bảng

? Chức CTC?

Có tham số nào? Tham số tham số biến, tham số tham trị?

Hoạt động 2: tìm hiểu chương trình câu b SGK Chiếu chương trình câu b

? Chương trình thực cơng việc gì?

Thực chương trình để giúp HS thấy kết Thay biến thành tham trị để HS thấy sai khác

Chức CTC:

Daicanh( ) tính độ dài ba cạnh a, b, c tam giác r

Chuvi( ): real; cho giá trị chu vi tam giác Tinhchat( ) khẳng định tính chất tam giác: đều, cân, vuông

Hienthi( ); hiển thị toạ độ ba đỉnh tam giác

Kh_cach( ); cho giá trị khoảng cách hai điểm

- Tham số biến r, a, b, c - Tham số giá trị p, q

Nhập toạ độ ba đỉnh tam giác khảo sát tính chất tam giác cân, đều, vng In chu vi diện tích tam giác

V CỦNG CỐ - DẶN DÒ 1 Củng cố:

Nhắc lại số lỗi thực hành

2 Dặn dò

Câu hỏi tập nhà

Viết thủ tục chaychu(s, dong) nhận tham số xâu s khơng q 79 kí tự biến ngun dịng In hình dịng chữ xác định S chạy dịng Don Viết chương trình thực có sử dụng thủ tục

(81)

Ngày đăng: 30/04/2021, 01:33

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan