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

GA Tin 11 XỊN

69 276 0
Tài liệu đã được kiểm tra trùng lặp

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

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Một Số Khái Niệm Về Lập Trình Và Ngôn Ngữ Lập Trình
Trường học Trường THPT Lờ Quý Đụn
Chuyên ngành Tin học
Thể loại Giáo án
Thành phố Nam Định
Định dạng
Số trang 69
Dung lượng 907,5 KB

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

Nội dung

LƯU Ý SƯ PHẠM: 1 Trong chương trình lớp 10 các em đã được biết đến một số khái niệm: ngôn ngữ lập trình, chương trình dịch; nên trong bài này chúng ta nên trình bày rõ cho học sinh hiểu

Trang 1

Sở GD – ĐT Nam Định Trường THPT Lê Quý Đôn

2 Biết vai trò của chương trình dịch

3 Biết khái niệm thông dịch và biên dịch

4 Biết một trong những nhiệm vụ quan trọng của chương trình dịch là phát hiện lỗi cú pháp của chương trình nguồn.

II PHƯƠNG PHÁP, PHƯƠNG TIỆN DẠY HỌC:

1 Phương pháp: Thuyết trình, vấn đáp

2 Phương tiện: Máy chiếu, máy tính, phòng chiếu hoặc bảng.

III LƯU Ý SƯ PHẠM:

1 Trong chương trình lớp 10 các em đã được biết đến một số khái niệm: ngôn ngữ lập trình, chương trình dịch; nên trong bài này chúng ta nên trình bày rõ cho học sinh hiểu về biên dịch và thông dịch.

IV NỘI DUNG BÀI GIẢNG:

Ổn định lớp:

+ Chào thầy cô.

+ Cán bộ lớp báo cáo sỉ số

+ Chỉnh đốn trang phục

GV: Đặt câu hỏi 1: Em hãy cho biết các

bước giải một bài toán trên máy tính?

HS: Suy nghĩ và trả lời câu hỏi.

GV: Phân tích câu trả lời của học sinh.

Nhắc lại các bước giải bài toán trên

máy tính đã học ở lớp 10.

GV: Đặt câu hỏi 2: Em hãy cho biết có

mấy loại ngôn ngữ lập trình?

HS: Trả lời câu hỏi của giáo viên.

Khái niệm lập trình: Lập trình là sử dụng một cấu trúc dữ liệu và các câu lệnh của một ngôn ngữ lập trình cụ thể

để mô tả dữ liệu và diễn đạt thuật toán

-Trả lời câu hỏi: Có 3 loại ngôn ngữ lập trình: Ngôn ngữ máy, hợp ngữ và ngôn ngữ bậc cao.

Trang 2

Sở GD – ĐT Nam Định Trường THPT Lê Quý Đôn

GV: Phân tích câu trả lời của học sinh.

Mỗi loại máy có một ngôn ngữ riêng,

thường thì chương trình viết bằng ngôn

ngữ của máy nào chỉ chạy được trên

máy đó.

Khi viết chương trình bằng ngôn ngữ

bậc cao muốn thi hành được trên loại

máy nào thì cần chuyển chương trình

sang ngôn ngữ máy của máy đó.

GV: Đặt câu hỏi 3 : Làm thế nào để

chuyển chương trình viết bằng ngôn

ngữ bậc cao sang ngôn ngữ máy?

Đưa ra ví dụ : Bạn là người không biết

tiếng Anh vậy làm sao để bạn có thể

nói chuyện với người Anh hay đọc một

cuốn sách tiếng Anh?

+ Khi một người làm phiên dịch người

đó phải dịch như thế nào? (Dịch

ngay từng câu khi 2 người nói

chuyện)

+ Khi một người muốn dịch 1 cuốn

sách sang tiếng Việt thì làm thế

nào? (Dịch toàn bộ cuốn sách đó

sang tiếng Việt để người đó có thể

đọc được)

GV: Lấy ví dụ về biên dịch và thông

dịch cho học sinh có thể hình dung

được mỗi công việc.

Biên dịch: Sử dụng ngôn ngữ lập trình

Pascal để dịch một chương trình viết

sẵn ra đĩa và thi hành chương trình đã

dịch để học sinh quan sát.

Thông dịch: Sử dụng các lệnh trong

Command promt để thực hiện một số

lệnh của DOS hoặc dùng ngôn ngữ

Foxpro để thực hiện một số lệnh quản

trị dữ liệu, học sinh dễ dàng nhận ra

việc thông dịch.

Đi kèm với các chương trình dịch

thường có các công cụ như soạn thảo

chương trình nguồn, lưu trữ, tìm kiếm,

phát hiện lỗi, thông báo lỗi,… ngôn ngữ

Chương trình viết bằng ngôn ngữ máy

có thể nạp trực tiếp vào bộ nhớ thi hành ngay.

Chương trình viết bằng ngôn ngữ bậc cao nói chung không phụ thuộc loại máy, muốn thi hành được thì nó phải được chuyển sang ngôn ngữ máy.

=>Cần phải có chương trình dịch để chuyển chương trình viết bằng ngôn ngữ lập trình bậc cao sang ngôn ngữ máy để máy có thể thi hành được.

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

 Dịch toàn bộ chương trình nguồn thành một chương trình đích (ngôn ngữ máy) để có thể thực hiện trên máy và

có thể lưu trữ để sử dụng lại khi cần.

+ Thông dịch (Interpreter): Dịch lần lượt từng câu lệnh và thực hiện ngay câu lệnh ấy.

Thông dịch được thực hiện bằng cách lặp lại dãy các bước sau:

 Kiểm tra tính đúng đắn của câu lệnh tiếp theo trong chương trình nguồn

 Chuyển đổi các câu lệnh đó thành một

Trang 3

Sở GD – ĐT Nam Định Trường THPT Lê Quý Đôn

lập trình thường chứa tất cả các dịch vụ

trên hay nhiều câu lệnh trong ngôn ngữ máy.

 Thực hiện các câu lệnh vừa chuyển đổi được

V CỦNG CỐ , DẶN DÒ:

 Nhắc lại một số khái niệm mới.

Trang 4

Sở GD – ĐT Nam Định Trường THPT Lê Quý Đôn

 Hiểu và phân biệt được 3 thành phần này.

 Biết các thành phần cơ bản của Pascal: Bảng chữ cái, tên, tên

chuẩn, tên riêng (từ khóa), hằng và biến.

 Phân biệt được tên, hằng và biến

 Biết đặt tên đúng.

II PHƯƠNG PHÁP, PHƯƠNG TIỆN DẠY HỌC:

 Phương pháp: Thuyết trình, vấn đáp

 Phương tiện: Máy chiếu, máy tính, phòng chiếu hoặc bảng

III LƯU Ý SƯ PHẠM:

 Phần này bắt đầu một kiến thức mới, ngoài giới thiệu cho các em

biết các khái niệm mới, cần giải thích sự khác nhau giữa cú pháp và ngữ nghĩa.

 Riêng các thành phần cơ sở của Pascal, với mỗi khái niệm cần nên

lấy ví dụ minh họa đúng-sai, và ví dụ sự khác biệt giữa chúng, nên minh họa bằng một đoạn chương trình đơn giản.

IV NỘI DUNG BÀI GIẢNG:

Hoạt động của Giáo viên và Học sinh Nội dung

GV: Các ngôn ngữ lập trình nói chung

thường có chung một số thành phần như:

Dùng những ký hiệu nào để viết chương

trình, viết theo quy tắc nào, viết như vậy

có ý nghĩa là gì? Mỗi ngôn ngữ lập trình có

một quy định riêng về những thành phần

này.

Ví dụ: Bảng chữ cái của các ngôn ngữ lập

trình khác nhau có sự khác nhau Chẳng

hạn ngôn ngữ Pascal không sử dụng dấu !

nhưng ngôn ngữ C ++ lại sử dụng ngôn ngữ

này.

1.Các thành phần cơ bản:

- Mỗi ngôn ngữ lập trình thường có 3 thành phần cơ bản là : bảng chữ cái, cú pháp và ngữ nghĩa.

a.Bảng chữ cái: Là tập các ký hiệu dùng để

viết chương trình.

-Trong ngôn ngữ Pascal bảng chữ cái gồm: Các chữ cái trong bảng chữ cái tiếng Anh, các chữ số 0  9 và một số ký tự đặc biệt (xem trong SGK)

b.Cú pháp: Là bộ quy tắc dùng để viết

Trang 5

Sở GD – ĐT Nam Định Trường THPT Lê Quý Đôn

- Cú pháp các ngôn ngữ lập trình khác

nhau cũng khác nhau, ngôn ngữ Pascal

dùng cặp từ Begin – End để gộp nhiều lệnh

Khi đó dấu + trong (1) sẽ là cộng hai số

thực, trong (2) là cộng hai số nguyên.

- Mỗi ngôn ngữ khác nhau cũng có cách

xác định ngữ nghĩa khác nhau.

HS: Lắng nghe, ghi chép.

GV: Đưa ra ví dụ ngôn ngữ tự nhiên cũng

có bảng chữ cái, ngữ pháp (cú pháp) và

nghĩa của câu, từ.

GV: Trong các ngôn ngữ lập trình nói

chung, các đối tượng sử dụng trong

chương trình đều phải đặt tên để tiện cho

việc sử dụng Việc đặt tên trong các ngôn

ngữ khác nhau là khác nhau, có ngôn ngữ

phân biệt chữ hoa, chữ thường, có ngôn

ngữ không phân biệt chữ hoa, chữ thường.

GV: Giới thiệu cách đặt tên trong ngôn ngữ

cụ thể Pascal.

Ví dụ :

Tên đúng: a, b, c, x1, x2, _ten …

Tên sai: a bc,2x, a&b …

GV: Ngôn ngữ nào cũng có 3 loại tên cơ

bản này nhưng tùy theo ngôn ngữ mà các

tên có ý nghĩ khác nhau trong các ngôn

ngữ khác nhau.

o Trong khi soạn thảo chương trình, các

ngôn ngữ lập trình thường hiển thị các

tên dành riêng với một màu chữ khác

hẳn với các tên còn lại giúp người lập

trình nhận biết được tên nào là tên

dành riêng (từ khóa) Trong ngôn ngữ

Pascal, từ khóa thường hiển thị bằng

màu trắng.

chương trình.

c Ngữ nghĩa: Xác định ý nghĩa thao tác cần

thực hiện ứng với tổ hợp ký tự dựa vào ngữ cảnh của nó.

- Cú pháp cho biết cách viết chương trình hợp lệ, ngữ nghĩa xác định ý nghĩa của các tổ hợp ký tự trong chương trình.

- Lỗi cú pháp được chương trình dịch phát hiện và thông báo cho người lập trình Chương trình không còn lỗi cú pháp thì mới có thể dịch sang ngôn ngữ máy.

- Lỗi ngữ nghĩa được phát hiện khi chạy chương trình.

2 Một số khái niệm

a Tên

- Mọi đối tượng trong chương trình đều phải được đặt tên Mỗi ngôn ngữ lập trình có một quy tắc đặt tên riêng

- Trong ngôn gnữ Turbo Pascal tên là một dãy liên tiếp không qúa 127 ký tự bao gồm các chữ cái, chữ số và dấu gạch dưới nhưng phải bắt đầu bằng chữ cái hoặc dấu gạch dưới.

- Trong Free Pascal, tên có thể có tối đa

- Tên dành riêng còn được gọi là từ khóa

Trang 6

Sở GD – ĐT Nam Định Trường THPT Lê Quý Đôn

GV: Mở một chương trình viết bằng Pascal

để học sinh quan sát cách hiển thị của

một số từ khóa trong chương trình.

- Các ngôn ngữ lập trình thường cung

cấp một số đơn vị chương trình có sẵn

trong các thư viện chương trình giúp

người lập trình có thể thực hiện được

nhanh một số thao tác thường dùng.

- Giáo viên chỉ cho học sinh một số tên

chuẩn trong ngôn ngữ Pascal.

GV: Đưa ra ví dụ: Để viết chương trình

giải phương trình bậc hai ta cần khai báo

- Hằng thường có 2 loại, hằng được đặt

tên và hằng không được đặt tên Hằng

không được đặt tên là những giá trị

viết trực tiếp khi viết chương trình.

Mỗi ngôn ngữ lập trình có một quy

định về cách viết hằng riêng.Hằng

được đặt tên cũng có cách đặt tên cho

hằng khác nhau.

- Biến là đối tượng được sử dụng nhiều

nhất trong khi viết chương trình Biến

là đại lượng có thể thay đổi được nên

thường được dùng để lưu trữ kết qủa,

làm trung gian cho các tính toán,…Mỗi

loại ngôn ngữ có những loại biến khác

nhau và cách khai báo cũng khác

nhau.

- Khi viết chương trình, người lập trình

thường có nhu cầu giải thích cho

những câu lệnh mình viết, để khi đọc

lại được thuận tiện hoặc người khác

đọc có thể hiểu được chương trình

mình viết, do vậy các ngôn ngữ lập

trình thường cung cấp cho ta cách để

đưa các chú thích vào trong chương

trình.

- Ngôn ngữ khác nhau thì cách viết chú

thích cũng khác nhau.

GV: Mở một chương trình Pascal đơn giản

có chứa các thành phần là các khái niệm

của bài học, nếu không có máy để giới

- Các tên trong chương trình không được trùng nhau

b Hằng và biến

Hằng: Là các đại lượng có giá trị không đổi

trong quá trình thực hiện chương trình.

Trong Pascal chú thích được đặt trong { và } hoặc (* và *)

Trong C ++ Chú thích đặt trong /* và */

Trang 7

Sở GD – ĐT Nam Định Trường THPT Lê Quý Đôn

thể hiện trong chương trình

IV CỦNG CỐ , DẶN DÒ :

 Nhắc lại một số khái niệm mới

 Cho bài tập về nhà

Trang 8

Sở GD – ĐT Nam Định Trường THPT Lê Quý Đôn

 Nhận biết được các thành phần của một chương trình đơn giản.

II.PHƯƠNG PHÁP, PHƯƠNG TIỆN DẠY HỌC:

 Phương pháp: Thuyết trình, vấn đáp

 Phương tiện: Máy chiếu, máy tính, phòng chiếu hoặc bảng

III LƯU Ý SƯ PHẠM:

 Cách dạy hiệu qủa nhất là có một chương trình mẫu với đầy đủ

các thành phần của một chương trình, chỉ cho học sinh từng thành phần trong chương trình đó và thành phần nào có thể có, thành phần nào bắt buộc phải có …

IV NỘI DUNG BÀI GIẢNG:

Hoạt động của Giáo viên và Học sinh Nội dung

GV : Phần khai báo sẽ báo cho máy biết

chương trỉnh sẽ sử dụng những tài nguyên

nào của máy.

GV : Mỗi ngôn ngữ lập trình có cách khai

báo khác nhau và tùy thuộc vào ngôn ngữ

mà ta cần tìm hiểu xem trong chương

- Có thể khai báo tên chương trình, hằng được đặt tên, biến, thư viện, chương trình con,…

Khai báo tên chương trình

- Trong Turbo pascal Program <tên chương trình>;

- Tên chương trình do người lập trình tự đặt theo đúng quy tắc đặt tên.

Ví dụ : Program Bai_1;

Program Tong;

Trang 9

Sở GD – ĐT Nam Định Trường THPT Lê Quý Đôn

GV : Thư viện chương trình thường chứa

những đoạn chương trình lập sẵn giúp

người lập trình thực hiện một số công việc

thường dùng, các đoạn chương trìnhnày

cực kỳ hữu ích cho gnười lập trình, nhất là

trong những ngôn ngữ lập trình tiên tiến

hiện nay.

GV : Lấy một ngôn ngữ lập trình mới nhất

hiện nay, chẳng hạn Visual Basic.NET, lấy

một số lệnh để học sinh thấy được sự tiện

dụng khi sử dụng thư viện.

GV : Khai báo hằng là việc đặt tên cho

hằng để tiện khi sử dụng và tránh việc

phải viết lặp lại nhiều lần cùng một hằng

trong chương trình Khai báo hằng còn

tiện lợi hơn khi cần thay đổi giá trị của nó

trong chương trình.

GV : Lập trình bằng ngôn ngữ nào cần tìm

hiểu cách khai báo hằng của ngôn ngữ ấy.

GV : Nếu có thể giáo viên giải thích để học

sinh có thể hiểu được rằng, khai báo biến

là xin máy tính cấp cho chương trình một

vùng nhớ để lưu trữ và xử lý thông tin

trong bộ nhớ trong.

GV : Mỗi ngôn ngữ lập trình có cách tổ

chức chương trình khác nhau, thường thì

phần thân chứa các câu lệnh của chương

trình.

GV : Đưa ra những ví dụ khác nhau về

cách viết thân chương trình trong các

ngôn ngữ lập trình khác nhau.

GV : Cho học sinh quan sát 2 chương trình

trong 2 ngôn ngữ khác nhau là Pascal và

C ++

HS : Quan sát và nhận xét về cách viết của

hai chương trình trong 2 ngôn ngữ khác

nhau.

Thông qua đó học sinh cần nhận ra : hai

chương trình cùng thực hiện một công

việc nhưng viết bằng hai ngôn ngữ khác

nhau nên hệ thống các câu lệnh trong

chương trình cũng khác nhau.

Khai báo thư viện:

- Trong ngôn gnữ Pascal : Uses <tên thư viện>;

- Trong ngôn ngữ C ++ : #include<Tên tệp thư viện>

Ví dụ: Trong Turbo Pascal : Uses CRT,

Ví dụ:

Trong Pascal : Const N = 100;

e = 2.7;

Trong C ++ : Const int N = 100;

Const float e = 2.7

Khai báo biến :

- Mọi biến sử dụng trong chương trình đều phải khai báo để chưoyng trình dịch biết để xử lý và lưu trữ.

- Biến chỉ mang một giá trị gọi là biến đơn

(Khai báo biến sẽ trình bày ở bài 5)

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

- Thân chương trình thường là nơi chứa toàn bộ các câu lệnh của chương trình hoặc lời gọi chương trình con.

- Thân chương trình thường có cặp dấu hiệu bắt đầu và kết thúc chương trình

Ví dụ: Trong ngôn gnữ Pascal

Begin [<Các câu lệnh>]

End.

3 Ví dụ chương trình đơn giản

Xét hai chương trình đơn giản trong 2 ngôn ngữ khác nhau sau đây :

Chương trình 1 : Trong ngôn ngữ Turbo

Pascal Program VD;

Begin Write(‘Chao cac ban’);

Trang 10

Sở GD – ĐT Nam Định Trường THPT Lê Quý Đôn

Có thể thêm câu lệnh hiển thị một xâu vào

trong chương trình Pascal để thể hiện rõ

hơn là nếu muốn đưa ra câu thông báo thì

ta có thể sử dụng lệnh Writeln và xâu

được để trong dấu nháy đơn

{ Printf(“Chao cac ban”);

}

V CỦNG CỐ , DẶN DÒ:

 Nhắc lại một số khái niệm mới

 Cho một chương trình mẫu về nhà yêu cầu học sinh phân biệt và chỉ rõ từng

thành phần của chương trình đó.

Trang 11

Sở GD – ĐT Nam Định Trường THPT Lê Quý Đôn

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

 Biết một số kiểu dữ liệu định sẵn: nguyên, thực, ký tự, logic, và

miền con.

 Xác định được kiểu cần khai báo của dữ liệu đơn giản.

II PHƯƠNG PHÁP, PHƯƠNG TIỆN DẠY HỌC:

 Phương pháp: Thuyết trình, vấn đáp

 Phương tiện: Máy chiếu, máy tính, phòng chiếu hoặc bảng

III LƯU Ý SƯ PHẠM:

 Trong phần này giáo viên chú ý cần lấy nhiều ví dụ đơn giản để

học sinh luyện tập việc xác định kiểu dữ liệu cần khai báo …

IV NỘI DUNG BÀI GIẢNG:

Ổn định lớp:

 Chào thầy cô.

 Cán bộ lớp báo cáo sỉ số

 Chỉnh đốn trang phục

GV : Vấn đáp: Khi cần viết chương trình

quản lý học sinh ta cần sử lý thông tin ở

những dạng nào ?

HS : Suy nghĩ, trả lời câu hỏi của GV

GV : Phân tích câu trả lời của học sinh,

đưa ra một vài dạng thông tin như sau :

- Họ tên học sinh là những thông tin

- Ngôn ngữ lập trình nào cũng đưa ra

một số kiểu dữ liệu chuẩn đơn giản,

từ những kiểu đơn giản này ta có thể

xây dựng thành những kiểu dữ liệu

phức tạp hơn.

- Kiểu dữ liệu nào cũng có miền giới

hạn của nó, máy tính không thể lưu

trữ tất cả các số trên trục số nhưng

nó có thể lưu trữ với độ chính xác cực

cao.

- Tùy thuộc vào ngôn ngữ lập trình mà

tên của các kiểu dữ liệu khác nhau và

miền giá trị của các kiểu dữ liệu này

2 Kiểu thực

- Có nhiều kiểu cho giá trị là số thực nhưng hay dùng một số kiểu sau :

Tên kiểu Miền giá trị Số Byte

REAL 0 hoặc nằm trong

(10 -38  10 38 ) 6 EXTENDE

D 0 hoặc nằm trong (10 -4932  10 4932 ) 10

3 Kiểu kí tự

- Tên kiểu: CHAR

- Miền giá trị: Là các kí tự trong bảng

Trang 12

Sở GD – ĐT Nam Định Trường THPT Lê Quý Đôn

- Với mỗi kiểu dữ liệu người lập trình

cần ghi nhớ tên kiểu, miền giá trị và

số lượng ô nhớ để lưu một giá trị

mã thập phân tương ứng Để lưu các

giá trị là kí tự thì phải lưu mã thập

phân tương ứng của nó

GV : Đặt câu hỏi: Em biết những bảng mã

nào?

HS : HS sẽ đưa ra một số bảng mã nhưng

GV chú ý các em NNLT Pascal chỉ sử dụng

bảng mã ASCII cho kiểu kí tự.

- Kiểu logic là kiểu thường chỉ có 2 giá

trị đúng – sai Mỗi ngôn ngữ khác nhau

lại có cách mô tả kiểu logic khác nhau,

Pascal dùng True – False nhưng một

số ngôn ngữ khác lại mô tả bằng 0 – 1,

… Có ngôn ngữ lại không có kiểu logic

mà người lập trình phải tự tìm cách để

thể hên những giá trị dạng này.

mã ASCII gồm 256 ký tự

- Mỗi ký tự có 1 mã tương ứng từ 0 đến 255

- Các kí tự có quan hệ so sánh, việc so sánh dựa trên mã của từng kí tự.

Ví dụ: Trong bảng mã ASCII, các kí tự trong

bảng chữ cái tiếng Anh xếp liên tiếp vối nhau, các chữ số cũng xếp liên tiếp, cụ thể:

A mã 65; a mã 97, 0 mã 48

4 Kiểu logic

- Tên kiểu : Boolean

- Miền giá trị : Chỉ có 2 giá trị là TRUE (Đúng) hoặc FALSE (Sai)

- Một số ngôn ngữ có cách mô tả các giá trị logic bằng những cách khác nhau.

- Khi viết chương trình bằng ngôn ngữ lập trình nào thì cần tìm hiểu đặc trưng của các kiểu dữ liệu của ngôn ngữ đó.

V CỦNG CỐ , DẶN DÒ:

 Nhắc lại các kiểu dữ liệu đơn giản hay dùng.

 Cho về nhà một số ví dụ về việc lưu trữ trong cuộc sống và yêu cầu

học sinh tìm kiểu dữ liệu tương ứng

Trang 13

Sở GD – ĐT Nam Định Trường THPT Lê Quý Đôn

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

 Hiểu được cách khai báo biến.

 Khai báo đúng

 Nhận biết được khai báo sai.

II PHƯƠNG PHÁP, PHƯƠNG TIỆN DẠY HỌC:

 Phương pháp : Thuyết trình, vấn đáp

 Phương tiện : Máy chiếu, máy tính, phòng chiếu hoặc bảng

III LƯU Ý SƯ PHẠM:

Trong phần này giáo viên chú ý cần llấy nhiều ví dụ đơn giản để học sinh luyện tập việc xác định kiểu dữ liệu và tự khai báo biến.

Chú ý cho học sinh :

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

 Không nên đặt tên qúa ngắn hay quá dài, dễ dẫn đến mắc lỗi

hoặc hiểu nhầm.

 Khai báo biến cần quan tâm đến phạm vi giá trị của nó.

IV NỘI DUNG BÀI GIẢNG :

GV : Khai báo biến là chương trình báo cho

máy biết phải dùng những tên nào trong

cần khai báo các biến như sau:

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

- Để tính chu vi và diện tích tam giác

cần khai báo các biến sau:

Var a, b, c, p, s, cv: Real;

Trong đó :

a, b, c: dùng để lưu độ dài 2 cạnh

của tam giác.

p: nửa chu vi tam giác

cv, s: chu vi và diện tích tam giác

GV : Đặt câu hỏi: Khi khai báo biến cần chú

ý những điều gì ?

HS : Suy nghĩ trả lời câu hỏi

GV : Phân tích câu trả lời của học sinh

- Trong ngôn ngữ Pascal, biến đơn được khai báo như sau :

Var <danh sách biến> : <kiểu số liệu>

Trong đó:

+ Var : là từ khóa dùng để khai báo biến

+ Danh sách biến : tên các biến cách nhau

bởi dấu phẩy

+ Kiểu dữ liệu : là một kiểu dữ liệu nào đó

của ngôn ngữ Pascal

+ Sau Var có thể khai báo nhiều danh sách biến có những kiểu dữ liệu khác nhau

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

+ Không nên đặt tên quá ngắn hay quá dài, dễ dẫn tới mắc lỗi hoặc hiểu nhầm.

+ Khai báo biến cần quan tâm đến phạm

vi giá trị của nó

Trang 14

Sở GD – ĐT Nam Định Trường THPT Lê Quý Đôn

V CỦNG CỐ , DẶN DÒ :

 Nhắc lại một số khái niệm mới.

 Cho bài tập về nhà

Trang 15

Sở GD – ĐT Nam Định Trường THPT Lê Quý Đôn

 Phân biệt được sự khác nhau giữa lệnh gán (:=) và phép so sánh bằng.

 Viết được biểu thức số học và logic với các phép toán thông dụng

II PHƯƠNG PHÁP, PHƯƠNG TIỆN DẠY HỌC:

 Phương pháp: Thuyết trình, vấn đáp

 Phương tiện: Máy chiếu, máy tính, phòng chiếu hoặc bảng

III LƯU Ý SƯ PHẠM:

Đối với việc dạy phép toán, cần chú ý cho học sinh một số phép toán thường không dùng trong toán học, và một số phép toán có kí hiệu khác với kí hiệu trong toán học.

Kết quả của phép toán quan hệ mang giá trị logic.

Đối với việc dạy biểu thức số học, cần phân biệt cho học sinh cách viết biểu thức số học trong toán học và trong tin học Kiễu giá trị của biểu thức thường là kiểu của biến, hay hằng có độ lớn kiểu lớn nhất trong nó, nên sử dụng biến trung gian để tránh việc sử dụng biến nhiều lần.

Khi dạy biểu thức quan hệ và biểu thức logic, cần lấy nhiều ví dụ từ đơn giản đến phức tạp để học sinh có thể tính toán đưa ra giá trị của biểu thức, hay nêu ví dụ cụ thể về các mối quan hệ trong cuộc sống để học sinh tự đưa ra biểu thức logic.

Tại câu lệnh gán cần cho học sinh hiểu lệnh gán là lấy giá trị của biểu thức bên phải để đưa vào biến bên trái, hay thay giá trị biến bên trái lệnh gán bằng giá trị của biểu thức bên phải Có thể cho học sinh so sánh với phép so sánh bằng và từ đó phân biệt dễ dàng.

IV NỘI DUNG BÀI GIẢNG :

Ổn định lớp:

+ Chào thầy cô.

+ Cán bộ lớp báo cáo sỉ số

+ Chỉnh đốn trang phục

GV : Dẫn dắt vào bài: Trong khi viết

chương trình ta thường phải thực hiện các

tính toán, thực hiện các so sánh để đưa ra

quyết định xem làm việc gì? Vậy trong

chương trình ta viết thế nào? Có giống với

ngôn ngữ tự nhiên hay không? Tất cả các

ngôn ngữ có sử dụng chúng một cách

giống nhau không ?

GV : Toán học có những phép toán nào ?

- Ngôn ngữ lập trình nào cũng sử dụng đến phép toán, biểu thức, câu lệnh gán.

- Ta xét các khái niệm này trong ngôn ngữ Pascal

1 Phép toán

Trang 16

Sở GD – ĐT Nam Định Trường THPT Lê Quý Đôn

HS : Đưa ra một số phép toán thường dùng

trong toán học

GV : Chúng có dùng được trong các ngôn

ngữ lập trình ?

Chỉ một số phép dùng được, một số phép

phải xây dựng từ các phép toán khác.

VD : Phép lũy thừa không phải ngôn ngữ

nào cũng viết được.

GV : Mỗi ngôn ngữ khác nhau lại có cách kí

hiệu phép toán khác nhau.

GV : Trong toán học, biểu thức là gì?

HS : Đưa ra khái niệm.

GV : Đưa ra khái niệm biểu thức trong lập

trình.

GV: Cách viết các biểu thức này trong lập

trình có giống cách viết trong toán học ?

HS : Đưa ra ý kiến của mình

GV : Phân tích ý kiến của học sinh.

GV : Đưa ra cách viết biểu thức và thứ tự

thực hiện phép toán trong lập trình.

GV : Cách viết biểu thức phụ thuộc cú

pháp từng ngôn ngữ lập trình.

Đưa ra một số biểu thức toán học và yêu

cầu các em viết chúng trong ngôn ngữ

Pascal.

HS : Gọi một vài học sinh lên bảng viết.

GV : Đặt câu hỏi, muốn tính X 2 ta viết thế

giản, người ta xây dựng sẵn một số đơn vị

chương trình trong các thư viện chương

trình giúp người lập trình tính toán nhanh

các giá trị thông dụng.

GV : Với các hàm chuẩn, cần quan tâm đến

kiểu của đối số và kiểu của giá trị trả về.

VD : Sinx thì được đo bằng độ hay radian ?

GV : Trong lập trình thường ta phải so

sánh hai giá trị nào đó trước khi thực hiện

lệnh nào đó Biểu thức quan hệ còn được

gọi là biểu thức so sánh 2 giá trị, cho kết

quả là đúng hoặc sai (logic).

VD : 3>5: Cho kết quả sai

NNLT Pascal sử dụng một số phép toán sau:

- Với số nguyên : +, -, * (nah6n), div

(chia lấy nguyên), mod (chia lấy dư)

- Với số thực : +, -, *, / (chia)

- Các phép toán quan hệ <, <= , >, >=, =,

<>: Cho kết qủa là một giá trị logic (True hoặc False)

- Các phép toán Logic : NOT (phủ định),

OR (hoặc), AND (và): thường dùng để kết hợp nhiều biểu thức quan hệ với nhau.

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

- Là một dãy các phép toán +, -, *, / Div và Mod từ các hằng, biến kiểu số

và các hàm.

- Dùng cặp dấu () để qui định trình tự tính toán.

Thứ tự thực hiện các phép toán :

- Trong ngoặc trước, ngoài ngoặc sau.

- Nhân chia trước cộng trừ sau.

- Giá trị của biểu thức có kiểu là kiểu của biến hoặc hằng có miền giá trị lớn nhất trong biểu thức.

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

- Các ngôn ngữ lập trình thường cung cấp sẵn một số hàm số học để tính một số giá trị thông dụng.

- Cách viết : Tên_hàm (Đối số)

- -Kết qủa của hàm phụ thuộc vào kiểu của đối số.

- Đối số là một hay nhiều biểu thức số học đặt trong dấu ngoặc () sau tên hàm.

- Bản thân hàm cũng có thể coi là biểu thức số học và có thể tham gia vào biểu thức như toán hạng bất kỳ.

Trang 17

Sở GD – ĐT Nam Định Trường THPT Lê Quý Đôn

GV : Đặt câu hỏi, muốn so sánh nhiều điều

kiện đồng thời làm thế nào?

HS : Đưa ra ý kiến của mình (và, hoặc,…)

Đưa ra ví dụ và cách viết đúng trong ngôn

GV : Phân tích câu trả lời của học sinh sau

đó tổng hợp lại: cần chú ý đến kiểu của

biến và kiểu của biểu thức.

GV : Minh họa một vài lệnh gán bằng một

ví dụ trực quan trên bảng hoặc trên màn

Ví dụ:

- Ba số dương a, b, c là độ dài ba cạnh tam giác nếu biểu thức sau cho giá trị đúng

(a+ b > c) and (b+ c >a) and (c+ a

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

- Trong đó biểu thức phải phù hợp với tên biến Có nghĩa là kiểu của tên biến phải cùng kiểu với kiểu của biểu thức hoặc phải bao hàm kiểu của biểu thức.

- Hoạt động của lệnh gán : Tính giá trị của biểu thức sau đó ghi giá trị đó vào tên biến.

Ví dụ:

X1 := (-b –sqrt(b*b – 4*a*c))/(2*a); X2 := (-b +sqrt(b*b – 4*a*c))/(2*a);

I := I + 1;

J := J – 2;

Trong đó : lệnh thứ 3 tăng giá trị của I một

đơn vị, lệnh thứ 4 giảm giá trị biến J hai đơn vị.

V CỦNG CỐ , DẶN DÒ:

 Nhắc lại một số khái niệm mới.

 Cho bài tập về nhà, ngoài bài tập có trong sách có thể cho thêm

nhiều biểu thức logic để học sinh về nhà tính toán tìm giá trị của

nó, cho học sinh một số biểu thức trong toán học và yêu cầu viết

nó trong tin học (NNLT); có thể cho thêm bài theo cột, một cột là

Trang 18

Sở GD – ĐT Nam Định Trường THPT Lê Quý Đôn

biểu thức toán học, một cột là biểu thức trong tin học tương ứng

và tìm chỗ sai của biểu thức so với trong toán.

Trang 19

Sở GD – ĐT Nam Định Trường THPT Lê Quý Đôn

 Viết được một số lệnh vào ra đơn giản.

II PHƯƠNG PHÁP, PHƯƠNG TIỆN DẠY HỌC:

 Phương pháp: Thuyết trình, vấn đáp

 Phương tiện: Máy chiếu, máy tính, phòng chiếu hoặc bảng

III LƯU Ý SƯ PHẠM :

 Cần chú ý cho học sinh phân biệt giữa 2 lệnh nhập dữ liệu liệu Read và

Readln, khi nhập dữ liệu nên dùng Readln vì nếu không có thể làm trôi lệnh readln; (không tham số) tiếp theo.

 Cần hướng dẫn cụ thể cho học sinh việc sử dụng lệnh Write và Writeln, các

cách để hiển thị dữ liệu, các kiểu dữ liệu trong nó.

 Cần hướng dẫn học sinh cách kết hợp hai lệnh vào ra dữ liệu khi viết chương

trình cho hợp lý, sáng sủa (tốt nhất là viết chương trình cụ thể, đơn giản)

IV NỘI DUNG BÀI GIẢNG:

Hoạt động của Giáo viên và Học sinh Nội dung

nhập thông tin vào, như vậy bằng cách

nào ta nhập được thông tin nào khi lập

trình?

Làm cách nào để nhập giá trị từ bàn

phím vào cho biến.

GV: Diễn giải hoạt động của

READ/READLN, nêu sự khác nhau khi

dùng Read/Readln.

GV: Mỗi ngôn ngữ có cach nhập thông tin

vào khác nhau.

GV: Đưa ra hai ví dụ về chương trình có

nhập thông tin vào từ bàn phím

Chú ý : Khi nhập dữ liệu từ bàn phím READ và

READLN có ý nghĩa như nhau, thường hay dùngREADLN hơn READLN luôn chờ gõ phím Enter

Write(‘Moi ban nhap 3 so:’);

Readln(a, b, c);

Write(‘Ban vua nhap vao 3 so:, a, b, c); Readln;

End.

Trang 20

Sở GD – ĐT Nam Định Trường THPT Lê Quý Đôn

Write(‘Cam on, tuoi cua ban la’,tuoi,

Có thể thay đổi lệnh Readln(a, b, c) trong

ví dụ 2 thánh Read(a, b, c), chạy chương

trình để học sinh thấy sự khác nhau khi sử

dụng hai lệnh này

GV : Ta thấy ở ví dụ 2 của phần 1 việc ghi

ra dữ liệu thì 3 giá trị a, b, c dính liền vào

nhau và người sử dụng không thể phân

biệt được giá trị của từng biến Vậy làm

thế nào và có những cách nào để hiển thị

dữ liệu theo ý muốn của người lập trình

GV : Mỗi ngôn ngữ có cách đưa thông tin

ra màn hình khác nhau.

Lấy thêm ví dụ về các thủ tục đưa thông

tin ra màn hình của ngôn ngữ khác

Có thể lấy dữ liệu của phần nhập dữ dữ

liệu sửa để học sinh thấy việc khác nhau

giữa 2 lệnh Write và Writeln.

Minh họa quy cách đưa thông tin ra bằng

chương trình.

Sửa lại ví dụ 2 của phần 1 để dữ liệu của 3

số phân cách nhau – người dùng có thể

phân biệt được.

Trong đó: {1} Đưa ra thông báo:

Nhap gia tri cua M:

2 Đưa dữ liệu ra màn hình

- Để đưa dữ liệu ra màn hình tại vị trí con trỏ, ta dùng thủ tục WRITE hoặc WRITELN với cấu trúc :

Write/Writeln(<Giá trị 1>, <Giá trị 2>,

…,<Giá trị n>);

- Trong đó các Giá trị có thể là tên biến, tên hằng, giá trị cụ thể, biểu thức hoặc tên hàm.

Ví dụ:

Write(a, b, c);

Writeln(‘Gia tri cua N la : ’,N);

-Thủ tục Writeln sau khi đưa kết quả ra sẽ chuyển con trỏ màn hình xuống đầu dòng tiếp theo

Ngoài ra trong TP còn có qui cách đưa thông tin ra như sau :

Write(‘Vay la ban co’,N -1,‘nguoi ban trong lop’);

Write(‘Go Enter de ket thuc chuong trinh’);

Trang 21

Sở GD – ĐT Nam Định Trường THPT Lê Quý Đôn

§ 8

SOẠN THẢO, DỊCH, THỰC HIỆN

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

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

 Biết các bước soạn thảo, dịch, thực hiện và hiệu chỉnh chương trình

 Biết một số công cụ của môi trường Turbo pascal.

 Bước đầu sử dụng được chương trình dịch để phát hiện lỗi.

 Bước đầu chỉnh sửa được chương trình dựa vào thông báo lỗi của chương trình

dịch và tính hợp lý của kết quả thu được.

II PHƯƠNG PHÁP, PHƯƠNG TIỆN DẠY HỌC :

 Phương pháp : Thuyết trình, vấn đáp

 Phương tiện : Máy chiếu, máy tính, phòng chiếu hoặc bảng

III LƯU Ý SƯ PHẠM:

Ta có thể gõ một chương trình từ đầu, tạo ra các lỗi điển hình, sửa lỗi, làm mịn chương trình để học sinh có thể hình dung ra quá trình lập trình, sử dụng chương trình dịch để giúp tìm lỗi, lập trình nhanh hơn

IV NỘI DUNG BÀI GIẢNG :

Hoạt động của Giáo viên và Học sinh Nội dung

Ổn định lớp:

 Chào thầy cô.

 Cán bộ lớp báo cáo sỉ số

 Chỉnh đốn trang phục

GV : Giới thiệu một số tập tin vần thiết để

Turbo Pascal có thể chạy được, hướng dẫn

các em cách khởi động Pascal trên máy

tính.

Turbo.exe (file chạy)

Turbo.tpl (file thư viện)

Turbo.tph (file hướng dẫn)

GV : Giới thiệu một số thao tác thường

dùng khi soạn thảo chương trình trong môi

trường soạn thảo Turbo Pascal

GV : Thực hiện một vài lần các thao tác này

để các em nhận thấy mức độ tệin lợi của

nó khi soạn thảo cũng như chạy chương

trình

GV : Viết một chương trình ví dụ, thực

hiện các thao tác sửa lỗi…

Có thể lấy ví dụ yêu cầu người dùng nhập

vào năm sinh, trả ra kết quả là tuổi của

-Chạy chương trình: Ctrl + F9 -Đóng cửa sổ chương trình: Alt + F3 -Chuyển qua lại giữa các cửa sổ: F6 -Xem lại màn hình kết qủa: Alt + F5 -Thoát khỏi Turbo Pascal: Alt + X

V CỦNG CỐ , DẶN DÒ:

- Nhắc lại hoạt động của Write/Writeln, Read/Readln.

Trang 22

Sở GD – ĐT Nam Định Trường THPT Lê Quý Đôn

- Cho bài tập về nhà

Trang 23

Sở GD – ĐT Nam Định Trường THPT Lê Quý Đôn

 Hiểu nhu cầu cấu trúc rẽ nhánh trong biểu diễn thuật toán.

 Hiểu câu lệnh rẽ nhánh (dạng thiếu và dạng đủ)

 Hiểu câu lệnh ghép.

 Sử dụng cấu trúc rẽ nhánh trong mô tả thuật toán của một số bài toán đơn

giản.

 Viết được các lệnh rẽ nhánh khuyết, rẽ nhánh đầy đủ và áp dụng để thể hiện

được thuật toán của một số bài tóan đơn giản.

II PHƯƠNG PHÁP, PHƯƠNG TIỆN DẠY HỌC:

 Phương pháp: Thuyết trình, vấn đáp

 Phương tiện: Máy chiếu, máy tính, phòng chiếu hoặc bảng

III LƯU Ý SƯ PHẠM :

 Nên sử dụng các thuật toán các em đã học ở lớp 10.

 Cần xây dựng các bài thực hành và tổ chức thực hiện tại phòng máy để học

sinh đạt được những kỹ năng theo yêu cầu.

IV NỘI DUNG BÀI GIẢNG :

Hoạt động của Giáo viên và Học sinh Nội dung

Ổn định lớp:

 Chào thầy cô.

 Cán bộ lớp báo cáo sỉ số

 Chỉnh đốn trang phục

GV : Đưa ra ví dụ rồi cùng học sinh thảo

luận phương pháp giải quyết bài toán.

- Nếu  <0 thì phương trình vô nghiệm

- Nếu  >=0 thì phương trình có nghiệm

- Như vậy tùy thuộc vào giá trị của  mà

ta đưa ra vô nghiệm hay có nghiệm.

- Hoặc có thể nói : Nếu  < 0 thì phương trình vô nghiệm, ngược lại thì phương trình có nghiệm.

=>Như vậy ta thấy một số mệnh đề có dạng

+ Nếu … thì…

+ Nếu … thì… ngược lại thì Cấu trúc này được gọi là cấu trúc rẽ nhánh

Các NNLT thường cung cấp các câu lệnh

để mô tả các cấu trúc rẽ nhánh như trên

Kiểm tra

Trang 24

Sở GD – ĐT Nam Định Trường THPT Lê Quý Đôn

Đưa ra khái niệm rẽ nhánh trong lập

trình.

Mỗi NNLT có cách thể hiện rẽ nhánh

khác nhau

GV : Đưa ra cấu trúc lệnh rẽ nhánh trong

Pascal Nhắc nhở học sinh đây là cấu trúc

quan trọng, nó sẽ được sử dụng rất nhiều

trong các chương trình sau này.

GV : Lưu ý các em sau Then và sau Else

chỉ có một lệnh chương trình.

GV : Với hai dạng này, dạng nào dùng

thuận tiện hơn ?

HS : Tìm câu trả lời, giáo viên gợi ý để

học sinh đưa ra được tùy trường hợp cụ

thể mà dùng dạng thiếu hay dạng đủ.

Đưa ra các ví dụ có sử dụng lệnh rẽ

nhánh, nếu không có lệnh rẽ nhánh thì

không thể thực hiện được.

GV : ở VD3: Cách nào nhanh hơn, tiện

hơn?

=> Cách 2 tiện hơn

GV : Phân tích sự tiện lợi trong cách 2 và

số lệnh mà máy phải thực hiện.

GV : Trong câu lệnh If – Then muốn thực

hiện nhiều lệnh sau Then hay nhiều lệnh

sau Else làm thế nào ?

HS : Phát biểu ý kiến của mình.

GV : Khi đó ta cần gộp nhiều lệnh đó lại

và coi đó là một câu lệnh trong chương

trình Các ngôn ngữ lập trình thường có

cấu trúc để giúp ta thực hệin điều này.

GV : Giới thiệu lệnh ghép của một vài

- Điều kiện : Là biểu thức quan hệ Logic.

- Câu lệnh, câu lệnh 1, câu lệnh 2 là 1 câu lệnh của Pascal

Ý nghĩa của các câu lệnh :

- Dạng thiếu : Nếu điều kiện đúng thì câu

lệnh được thực hiện, nếu điều kiện sai thì không thực hiện gì

- Dạng đủ : Nếu điều kiện đúng thì thực hiện

câu lệnh 1, nếu điều kệin sai thì thực hiện câu lệnh 2.

VD 1 : If (X Mod 2 = 0) Then

WRITE(x,’La so chan’);

VD 2: If DELTA <0 Then

WRITE(‘PT Vo Nghiem’) Else WRITE(‘PT co nghiem’);

VD 3: Tìm giá trị lớn nhất (max) của 2 số a

Trang 25

Sở GD – ĐT Nam Định Trường THPT Lê Quý Đôn

C==: {}

VB: If – Then – Endif

GV : Chỉ rõ đâu là lệnh ghép trong chuỗi

lệnh này.

GV nên soạn sẵn hai chương trình này

và cho các em quan sát cách viết chương

trình để các em hình thành dần cách viết

một chương trình

Chạy thử chương trình và chỉ rõ các

lệnh trong chương trình dùng để làm gì

Nếu có nhiều thời gian, GV có thể gõ

từng lệnh chương trình, gõ đến đâu giải

thích cho học sinh đến đó.

Nếu còn thời gian, gọi học sinh lên bảng viết

câu lệnh If – Then cho một số bài toán đơn

giản

Có thể viết chương trình mẫu cho học

sinh xong, yêu cầu các em gõ lại chương

trình vừa được theo dõi mà không cần

nhìn vào bài mẫu

BEGIN X1 :=(-B-SQRT(DELTA))/(2*A);

X2 := - B/A – X1;

WRITELN(‘X1=’,X1:6:3,’X2=’,X2:6:3); END;

V CỦNG CỐ , DẶN DÒ:

 Nhắc lại một số khái niệm mới

 Nhắc lại cấu trúc câu lệnh IF – THEN, IF – THEN – ELSE thông qua các ví dụ

 Cho bài tập về nhà

Trang 26

Sở GD – ĐT Nam Định Trường THPT Lê Quý Đôn

§10 CẤU TRÚC LẶP

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

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

 Hiểu cấu trúc lặp kiểm tra điều kiện trước, cấu trúc lặp với số lần định trước

 Biết cách vận dụng đúng đắn cấu trúc lặp vào tình huống cụ thể

 Mô tả thuật toán của một số bài toán đơn giản có sử dụng lệnh lặp

 Viết đúng các lệnh lặp kiểm tra điều kiện trước, lệnh lặp với số lần lặp trước

 Viết được thuật toán của một số bài toán đơn giản

II PHƯƠNG PHÁP, PHƯƠNG TIỆN DẠY HỌC :

 Phương pháp : Thuyết trình, vấn đáp

 Phương tiện : Máy chiếu, máy tính, phòng chiếu hoặc bảng

III LƯU Ý SƯ PHẠM :

Cần tổng kết 3 loại cấu trúc điều khiển: tuần tự, rẽ nhánh và lặp

Bước đầu hình thành khái niệm lập trình có cấu trúc cho học sinh.

Cần xây dựng các bài thực hành và tổ chức thực hiện tại phòng máy để học sinh đạt được những kỹ năng theo yêu cầu

Khi dạy lệnh lặp, với mỗi một dạng lệnh lặp, tốt nhất viết một ví dụ cụ thể, với

số lần lặp nhỏ rồi viết mô tả việc hoạt động của vòng lặp bằng cấu trúc tuần tự (thể hiện sự tương đương trong công việc nhưng lệnh lặp diễn tả ngắn hơn nhiều) điều đó cũng giúp học sinh hiểu hơn về vòng lặp)

IV. NỘI DUNG BÀI GIẢNG :

Hoạt động của Giáo viên và Học sinh Nội dung

Ổn định lớp:

Chào thầy cô.

Cán bộ lớp báo cáo sỉ số

Chỉnh đốn trang phục

GV : Đưa ra bài toán, yêu cầu học sinh tìm

cách để lập trình giải các bài toán này

HS : Đưa ra cách giải của mình, học sinh

có thể đưa ra những cách giải khác nhau

GV : Đưa ra cách giải cho bài toán

Giải theo các lệnh tuần tự

Với N = 100 thì lặp 100 lần như thế nhưng

theo việc kiểm tra điều kiện thì không

biết phải làm theo cách nào? Theo cả hai

trường hợp thì đều quá dài.

2

11

11

a a

Bài toán 2 : Tính Tổng

S2= 1

2

11

11

a a

Với điều kệin 1 0.0001

N a

Cách giải :

- Bắt đầu S được gán giá trị 1/a.

- Tiếp theo mỗi lần cộng thêm vào S là 1/(a+N) với N = 1, 2, 3, …

- Với bài toán 1, việc cộng thêm dừng khi 1/(a+N) < 0.0001, => số lần lặp chưa biết.

- Với bài toán 2, việc cộng thêm dừng khi N = 100, => số lần lặp đã biết trước.

Trang 27

Sở GD – ĐT Nam Định Trường THPT Lê Quý Đôn

Để học sinh hiểu được khái niệm lặp, giáo

viên đưa ra một số ví dụ trong thực tế

được tính toán lặp đi lặp lại nhiều lần.

VD1 : Bài toán gửi tiền vào ngân hàng.

Hằng tháng phải tính lãi và cộng thêm vào

gốc đang gửi hay nói cách khác gốc của

tháng sau = gốc + lãi tháng trước.

VD 2: Tính tổng của một đoạn số nguyên

mà không được dùng công thức.

N:=101;

B2: N := N -1;

B3: Nếu N < 1 thì chuyển sang bước 5;

B4: S:= S+

1/(a+N) rồi quay lại B2;

B5: Đưa ra S rồi kết thúc.

GV : Gọi một số học sinh nhận xét về 2

thuật toán trên về một số vấn đề :

 Thuật toán có lặp không?

Sau khi so sánh hai thuật toán trên, giáo

viên đưa ra hai cách lặp trong ngôn ngữ

Pascal, giải thích ý nghĩa của các thành

phần trong câu lệnh

GV : Lấy ví dụ minh họa trong Pascal để

các em thấy được sự thay đổi giá trị của

biến đếm trong một chương trình thực sự

của Pascal

Với 2 ví dụ này, giáo viên nên gõ sẵn

chương trình và cho học sinh quan sát

việc chạy chương trình, giáo viên vừa cho

chạy chương trình vừa giải thích ý nghĩa

các lệnh trong chương trình (chú ý nhiều

đến lệnh lặp)

GV : Đưa ra thuật toán hoặc có thể yêu

cầu học sinh tự xây dựng thuật toán giải

bài toán 2, nếu tự xây dựng được thuật

Trong lập trình, có những thao tác phải lặp lại nhiều lần, khi đó ta gọi là cấu trúc lặp.

Lặp thường có 2 loại :

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

 Lặp với số lần không biết trước

NNLT nào cũng cung cấp một số câu lệnh

để mô tả các cấu trúc lặp như trên.

Sau đây chúng ta sẽ tìm hiểu các câu lệnh trong ngôn ngữ Pascal.

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

Trong Pascal, có 2 lọai câu lệnh lặp có số lần biết trước :

- Lặp dạng tiến:

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

cuối> do <câu lệnh>;

- Lặp dạng lùi

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

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

Trong đó:

 Biến đếm thường là biến kiểu số

nguyên.

 Giá trị đầu, giá trị cuối là các biểu

thức cùng kiểu với biến đếm Giá trị đầu phải nhỏ hơn hay bằng giá trị cuối.

 Ở dạng lặp tiến: Biến đếm tự tăng

dần từ giá trị đầu đến giá trị cuối.

 Ở dạng lặp lùi: Biến đếm tự giảm dần

từ giá trị cuối đến giá trị đầu.

 Tương ứng với mỗi giá trị của biến

đếm, câu lệnh sau do thực hiện 1 lần

Ví dụ 1 : Hai chương trình cài đặt thuật toán

Trang 28

Sở GD – ĐT Nam Định Trường THPT Lê Quý Đôn

toán thì các em sẽ hiểu hơn về lặp không

biết trước số lần

Đưa thêm ví dụ : Nhắc lại bài toán gửi

tiền vào ngân hàng: Nếu có số tiền là A,

muốn gửi vào ngân hàng để được số tiền

là B > A thì cần gửi trong bao lâu với lãi

suất là k%.

Yêu cầu học sinh đưa ra cách giải cho

bài toán này

GV : Phân tích phương án trả lời của học

sinh sau đó đưa ra lời giải cho bài toán.

GV : Đưa ra cấu trúc câu lệnh While – Do

Trong Pascal, giải thích ý nghĩa các thành

phần.

HS : Lắng nghe và ghi chép.

GV: Nên gõ sãn những ví dụ này để học

sinh có thể quan sát chương trình, giáo

viên chạy thử chương trình trong Pascal.

Riêng với VD 2, trước khi đưa ra thuật

toán, GV nên cho học sinh xây dựng thuật

toán tìm ước chung lớn nhất (đã học ở lớp

10)

Chạy chương trình với nhiều cặp M, N

khác nhau.

Tốt nhất chạy từng bước, cho học sinh

thấy sự thay đổi của các biến.

_ Pascal sử dụng câu lệnh lặp While

- Do để tổ chức lặp với số lần chưa viết như sau

While <Điều kiện> Do <Câu lệnh>;

Trong đó

- Điều kiện là biểu thức quan hệ hoặc logic.

- Câu lệnh là một câu lệnh trong Pascal.

Ý nghĩa : Khi điều kiện còn đúng thì còn

thực hiện câu lệnh sau Do sau đó lại quay lại kiểm tra điều kiện.

Ví dụ 1 : Chương trình của bài toán 1.

Ví dụ 2 : Tìm ước chung lớn nhất của M và

N.

Thuật toán : B1: Nếu M = N thì ƯCLN := M;

Kết thúc.

B2: Nếu M > N thì M := M – N rồi quay lại B1, ngược lại N := N – M rồi quay lại B1 Sau đây là chương trình tìm UCLN;

V CỦNG CỐ , DẶN DÒ:

 Nhắc lại một số khái niệm mới

 Nhắc lại cấu trúc câu lệnh.

 Cho bài tập về nhà

Trang 29

Sở GD – ĐT Nam Định Trường THPT Lê Quý Đôn

Chương IV :

KIỂU DỮ LIỆU CÓ CẤU TRÚC

Bài 11 : KIỂU MẢNG

I MỤC ĐÍCH, YÊU CẦU :

Hiểu khái niệm mảng một chiều và hai chiều

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

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

Thực hiện được khai báo mảng, truy cập, tính toán các phần tử của mảng

II PHƯƠNG PHÁP, PHƯƠNG TIỆN :

 Phương pháp : Thuyết trình, vấn đáp

 Phương tiện : Máy chiếu, máy tính, phông chiếu hoặc bảng

III LƯU Ý SƯ PHẠM :

IV. Cần cho học sinh thấy cần phải có một kiểu dữ liệu mới, ích lợi của kiểu dữ liệu

đó, có thể minh họa bằng hình ảnh

 Khi làm việc với mảng, học sinh khó hiểu nhất vẫn là cách truy xuất tới các phần

tử của mảng Cần làm rõ các khái niệm như : đánh số các phần tử của mảng, chỉ

số, kiểu chỉ số.

V NỘI DUNG BÀI GIẢNG :

HOẠT ĐỘNG CỦA GIÁO VIÊN VÀ HỌC SINH NỘI DUNG

Ổn định lớp :

- Chào thầy cô

- Cán bộ lớp báo cáo sĩ số

- Chỉnh đốn trang phục

Trước khi vào bài, giáo viên đưa ra một số vấn

đề cần giải quyết như sau :

Với những kiểu dữ liệu như đã biết, làm thế nào

Trong lập trình thường có 2 loại mảng :

- Mảng một chiều

Trang 30

Sở GD – ĐT Nam Định Trường THPT Lê Quý Đôn

một số kiểu dữ liệu được xây dựng từ những

kiểu dữ liệu chuẩn gọi là kiểu dữ liệu có cấu

trúc

Chương này chúng ta sẽ tìm hiểu một số

kiểu dữ liệu trong ngôn ngữ Pascal để trả lời 3

câu hỏi trên

GV : Đưa ra ví dụ, cần lập lập trình xử lý một

dãy số nguyên, hãy tìm cách lưu trữ một dãy số

nguyên trong khi lập trình ?

Bằng cách nào để lưu trữ được thông tin dưới

dạng bảng khi lập trình ?

HS : Đưa ra ý kiến

GV : Đánh giá ý kiến của học sinh, sau đó đưa

ra mục đích của việc sử dụng cấu trúc mảng

trong chương trình

GV : Đưa ra khái niệm mảng một chiều và một

số yếu tố liên quan trong lập trình nói chung

GV : Đi sâu phân tích hai chương trình để cho

học sinh nhận thấy sự tiện lợi khi sử dụng mảng

.

HS : Trong khi giáo viên phân tích hai chương

trình, học sinh sẽ đưa ra ý kiến nhận xét về 2

chương trình.

GV : Đưa ra cách khai báo mảng một chiều

trong ngôn ngữ Pascal, giải thích ý nghĩa của

các từ khóa mới

GV : Khai báo bằng cách nào tiện lợi hơn ?

HS : Thường thì học sinh trả lời cách 1 tiện lợi

Với mảng một chiều ta quan tâm đến :

- Tên mảng một chiều

- Số lượng phần tử trong mảng

- Kiểu dữ liệu của phần tử

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

- Cách truy cập vào từng phần

tử của mảng

Xét ví dụ : Nhập vào nhiệt độ trung

bình mỗi ngày trong tuần Tính và đưa ra màn hình nhiệt độ trung bình của cả tuần và đếm số ngày có nhiệt

độ lớn hơn nhiệt độ trung bình này Quan sát hai chương trình viết bằng ngôn ngữ Pascal cùng để giải bài toán trên

- Chương trình 1 : Không sử dụng kiểu mảng

- Chương trình 2 : Sử dụng kiểu mảng một chiều

a> Khai báo mảng một chiều

Trong ngôn ngữ Pascal, mảng một chiều được khai báo bằng hai cách như sau :

;

Trong đó :

- Type là từ khóa dùng để khai

báo biến, Array là từ khóa để khai báo mảng

- Kiểu chỉ số thường là đoạn số nguyên liên tục có n1 n2, với n1 là chỉ số đầu và n2 là chỉ số cuối.

- Kiểu thành phần là kiểu dữ liệu

Trang 31

Sở GD – ĐT Nam Định Trường THPT Lê Quý Đôn

Nếu có nhiều thời gian, giáo viên sẽ tiến hành

soạn chương trình từ đầu để học sinh có thể dễ

dàng nhận ra các thao tác cần phải thực hiện

khi viết chương trình

Type ArrayInteger=Array[1 100] of Integer;

ArrayReal=Array[1.50] of Real; Var A : Array[1 50];

B : Array[1 50] of Real;

Khai báo mảng trực tiếp :

Var A : Array[1 100] of Integer ;

B : Arrat[1 50] of Real ;

b>Một số ví dụ :

Ví dụ 1 : Tìm phần tử lớn nhất của

một dãy số nguyên

- Input : Số nguyên dương N và

dãy số A1, A2, … , AN

- Output : Chỉ số và giá trị của số

Chương trình như sau :

Program timmax ; Uses crt ;

var a : array[1 250] of integer ; n,i,max,csmax : Integer ; Begin

clrscr ; Write('Nhap n = ') ; Readln(n) ;

For i := 1 to n do Begin

Write('a[',i,'] = ') ; readln(a[i]) ; End ;

max := a[i] ; csmax := 1 ; For i := 2 to n do

If a[i] > max then Begin

max := a[i] ; csmax :=i ; End ;

Writeln('Gia tri lon nhat : ',max) ; Writeln('chi so ptu lon nhat : ',csmax) ;

Trang 32

Sở GD – ĐT Nam Định Trường THPT Lê Quý Đôn

GV : Đưa ra ví dụ, nhắc lại ý tưởng của thuật

Nếu có thời gian, giáo viên sẽ tiến hành soạn

chương trình từ đầu để học sinh có thể dễ dàng

nhận ra việc chuyển đổi ngôn ngữ từ ngôn ngữ

thuật toán sang ngôn ngữ lập trình

GV : Đưa ra ví dụ, nhắc lại ý tưởng của thuật

toán

HS : Xây dựng thuật toán để giải bài toán

(thuật toán đã học ở lớp 10)

Readln ; End

Ví dụ 2 : Sắp xếp dãy số nguyên

theo bằng thuật toán tráo đổi

- Input : Số nguyên dương N và

dãy số A1, A2, …, AN

- Output : Dãy A được sắp xếp theo

thứ tự không giảm

- Ý tưởng :

+ Đổi để đưa số lớn nhất về vị trí cuối cùng

+ Làm tương tự đối với những

số còn lại

Chương trình như sau :

Program sapxep ; Uses crt ;

var A : Array[1 250] of integer ; n,i,j,tg : Integer ;

Begin clrscr ; Write('Nhap so phan tu mang n = ') ;

Readln(n) ; For i := 1 to n do Begin

Write('A[',i,'] = ') ; readln(A[i]) ; End ;

For j := n downto 2 do Begin

For i := 1 to j-1 do

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

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

End ; Writeln('day sau khi sap xep : ') ; For i := 1 to n do

write(a[i]:8) ; readln ;

End Writeln('chi so ptu lon nhat : ',csmax);

readln ; End

Ví dụ 3 : Tìm kiếm nhị phân

- Input : Dãy số A 1 , A 2 ,………, A N

đã được sắp xếp tăng dần

- Output : Có hay không chỉ số i

mà A[i] = k hoặc thông báo không tìm thấy

- Ý tưởng :

Trang 33

Sở GD – ĐT Nam Định Trường THPT Lê Quý Đôn

GV soạn sẵn chương trình và cho học sinh quan

sát chương trình

Nếu có thời gian, giáo viên sẽ tiến hành soạn

chương trình từ đầu để học sinh có thể dễ dàng

nhận ra việc chuyển đổi ngôn ngữ từ ngôn ngữ

thuật toán sang ngôn ngữ lập trình

GV : Quay lại ví dụ về lưu trữ dữ liệu dạng bảng

để các em nhận ra nhu cầu phải sử dụng mảng

var A : Array[1 250] of integer ; n,i,k : Integer ;

dau,cuoi,giua : Integer ;

TK : boolean ; Begin

clrscr ; Write('Nhap so ptu mang n = ') ; Readln(n) ;

For i := 1 to n do Begin

Write('A[',i,'] = ') ; readln(A[i]) ; End ;

Write('nhap so can tim k : ') ; Readln(k);

dau := 1 ; cuoi := n ;

TK := false ; while (dau <= cuoi) and Not TK Do Begin

giua := (dau+cuoi) div 2 ;

If A[giua] = k then TK := true Else

If a[giua]>k then cuoi := giua

- 1 Else dau := giua + 1 ; End ;

If TK then write('Chi so la : ',giua) else write(' Khong tim thay '); readln ;

End

2 Kiểu mảng 2 chiều :

- Mảng hai chiều là một bảng các phần tử cùng kiểu

Với mảng hai chiều ta quan tâm đến :

- Tên kiểu mảng hai chiều

- Số lượng phần tử của mỗi chiều trong mảng

- Kiểu dữ liệu của phần tử

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

- Cách truy cập vào từng phần

tử của mảng

a> Khai báo mảng hai chiều

- Trong ngôn ngữ Pascal, mảnh hai chiều được khai báo như sau :

Trang 34

Sở GD – ĐT Nam Định Trường THPT Lê Quý Đôn

GV : Khai báo cách nào tiện lợi hơn (tương tự

mảng 1 chiều) ?

HS : Thường thì học sinh vẫn chọn cách 1

GV : Tùy theo trường hợp cụ thể nhưng thường

thì cách 1 hay được dùng hơn

GV : Khi khai báo mảng 2 chiều cần chú ý điều

gì ?

HS : Tìm câu trả lời, GV gợi ý để các em chỉ ra

được chỉ số của mảng, số dòng, số cột và kiểu

của mỗi phần tử trong mảng

GV : Gọi một số học sinh lên khai báo một số

biến mảng một chiều theo yêu cầu của giáo

viên

Minh họa bằng hình ảnh mảng 2 chiều và chỉ số

các phần tử mảng hai chiều cũng như cách viết

truy cập phần tử mảng

GV cho học sinh quan sát chương trình và giải

thích các lệnh trong chương trình, chú ý đi sâu

vào các lệnh lặp để các em nhận ra thường thì

ta sử dụng vòng lặp for - do để duyệt qua các

phần tử mảng

GV nên soạn sẵn chương trình và cho các em

quan sát chương trình, và chạy thử chương

trình trên máy để các em tiện theo dõi

Program Timkiem;

Uses crt;

var A : Array[1 100,1 100] of Integer;

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

Var : <Tên mảng> : Array[kiểu chỉ

số dòng, kiểu chỉ số cột] of < kiểu phần tử> ;

Cách 2 : Khai báo gián tiếp thông

qua khai báo kiểu mảng Type <Tên kiểu mảng> = Array[kiểu chỉ số dòng, kiểu chỉ số

cột] of <kiểu phần tử> ;

Var <Tên mảng> : <Tên kiểu

mảng> ;

Ví dụ : Khai báo biến mảng thông qua kiểu mảng :

Type ArrayInteger = Array[1 10,1 15]

of Integer ; ArrayReal=Array[1 50,1 100] of Real ;

Var A : ArrayInteger ;

B : ArrayReal ;

Khai báo mảng trực tiếp :

Var A : Array[1 10,1 15] og Integer ;

i, j : Byte ; Begin Clrscr ; Writeln('Bang cuu chuong 1 -> 9 : ');

Writeln ;

Ngày đăng: 04/09/2013, 01:10

Xem thêm

HÌNH ẢNH LIÊN QUAN

Bảng mã kí tự, trong các bảng mã hóa - GA Tin 11 XỊN
Bảng m ã kí tự, trong các bảng mã hóa (Trang 12)
Hình khoảng cách của trại xa với trại của hiệu - GA Tin 11 XỊN
Hình kho ảng cách của trại xa với trại của hiệu (Trang 48)

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

TÀI LIỆU LIÊN QUAN

w