Chương 1
MỘT SỐ KHÁI NIỆM VỀ LẬP TRÌNH VÀ
NGÔN NGỮ LẬP TRÌNH
Bài 1 : §1
KHÁI NIỆM LẬP TRÌNH VÀ NGÔN NGỮ
LẬP TRÌNH
I. MỤC ĐÍCH YÊU CẦU
- Biết có 3 lớp ngôn ngữ lập trình và các mức của ngôn ngữ lập trình: ngôn ngữ
máy, hợp ngữ và ngôn ngữ bậc cao.
- Biết vai trò của chương trình dịch
- Biết khái niệm thông dịch và biên dịch
- 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:
- 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 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:
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: Đặ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 đã
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ữ lập trình thường chứa tất cả các dịch
vụ trên.
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
và thông dịch
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
Ổ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: 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.
- Cú pháp các ngôn ngữ lập trình khác nhau
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.
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.
c. Ngữ nghĩa: Xác định ý nghĩa thao tác cần
người lập trình tự đặt.
Tên dành riêng:
- Là những tên được ngôn ngữ lập trình quy
định với ý nghĩa xác định mà người lập
trình không thể dùng với ý nghĩa khác.
- Tên dành riêng còn được gọi là từ khóa
Ví dụ: Một số từ khóa
Trong ngôn ngữ Pascal: Program, Var,
Uses, Begin, End, …
Trong ngôn ngữ C
++
: main, include, while,
void,…
Tên chuẩn:
- Là những tên được ngôn ngữ lập trình
(NNLT) dùng với ý nghĩa nào đó trong các
thư viện của NNLT, tuy nhiên người lập
trình có thể sử dụng với ý nghĩa khác.
Giáo án Lý Thuyết TIN HỌC 11
- 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 những
tên sau:
+ a,b,c là ba tên để lưu ba hệ số của
chương trình.
+ X1,X2 là 2 tên dùng để lưu nghiệm
nếu có.
+ Delta là tên để lưu giá trị của Delta.
- Hằng thường có 2 loại, hằng được đặt tên
Trong ngôn ngữ Pascal: Real, Integer, Sin, Cos,
Char, …
Trong ngôn ngữ C
==
: cin,cout. Getchar…
Tên do người lập trình tự đặt
- Được xác định bằng cách khai báo trước khi
sử dụng và không được trùng với tên dành
riêng.
- 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.
- Các ngôn ngữ lập trình thường có:
+ Hằng số học : số nguyên hoặc số thực.
+ Hằng xâu : là chuỗi ký tự đặt trong d6áu
nháy “ hoặc ””
+ Hằng Logic : là các giá trị đúng hoặc sai
Biến:
- Là đại lượng được đặt tên, giá trị có thể
thay đổi được trong chương trình.
- Các NNLT có nhiều loại biến khác nhau.
- Biến phải khai báo trước khi sử dụng.
c. Chú thích
- Trong khi viết chương trình có thể viết các
chú thích cho chương trình. Chú thích
không làm ảnh hưởng đến chương trình.
Trong Pascal chú thích được đặt trong { và }
hoặc (* và *)
chương trình :
HS: Lắng nghe, ghi chép
GV : Thuyết trình đưa ra kiến thức
HS : Lắng nghe, ghi chép .
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 trình ta cần
khai báo những gì .
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.
1. Cấu trúc chung
- Mỗi chương trình nói chung gồm 2 phần:
phần khai báo và phần thân chương trình.
[<Phần khai báo>]
<Phần thân>
2. Các thành phần của chương trình
a.Phần khai báo
- 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
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.
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 .
Ví dụ: Trong Turbo Pascal : Uses CRT, GRAPH;
Trong VISUAL STUDIO 2005 :
Imports System.Xml
Khai báo hằng :
- Những hằng sử dụng nhiều lần trong
chương trình thường được đặt tên cho tiện
khi sử dụng.
Ví dụ:
Trong Pascal :
Const N = 100;
e = 2.7;
Trong C
++
#include<stdio.h>
Main()
{
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 đó.
Giáo án Lý Thuyết TIN HỌC 11
§4 MỘT SỐ KIỂU DỮ LIỆU CHUẨ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:
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 : 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 ?
NNLT Pascal có một số kiểu dữ liệu chuẩn sau :
1. Kiểu số nguyên
Kiểu Số
Byte
Miền giá trị
BYTE 1 0 … 255
INTEGER 2 -2
15
… 2
15
- 1
WORD 2 0 … 2
16
- 1
LONGINT 4 -2
31
… 2
31
- 1
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
phải tự tìm cách để thể hên những giá trị
dạng này.
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
Giáo án Lý Thuyết TIN HỌC 11
§5 KHAI BÁO BIẾ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
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ó .
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à
Giáo án Lý Thuyết TIN HỌC 11
§6 PHÉP TOÁN, BIỂU THỨC, CÂU LỆNH GÁN
I. MỤC ĐÍCH YÊU CẦU
Giới thiệu phép toán, biểu thức số học, hàm số học chuẩn và biểu thức quan hệ.
Hiểu lệnh gá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 ?
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.
- 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
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)
Giáo án Lý Thuyết TIN HỌC 11
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ì?
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
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,…)
- 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ổ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 hình.
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 >b)
- Biểu thức điều kiện 0 d” X d’ 5 được viết
như sau:
(x >= 0) and (x <= 5)
6. Câu lệnh gán
- Lệnh gán là cấu trúc cơ bản nhất của mọi
ngôn ngữ lập trình, thường dùng để gán
giá trị cho biến
Cấu trúc:
<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
Chào thầy cô.
Cán bộ lớp báo cáo sỉ số
Chỉnh đốn trang phục
GV: Khi sử dụng các ứng dụng ta thường 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 .
Ví dụ 1 : Xét chương trình sau:
Program VD;
Uses crt;
Var Tuoi: Byte
Begin
Clrscr;
Write(‘Moi ban cho biet tuoi cua ban’);
Readln(tuoi);
Write(‘Cam on, tuoi cua ban la’,tuoi, ‘Tuoi’);
Readln;
End.
Trong ngôn ngữ Pascal các thủ tục vào ra chuẩn
viết như sau :
1. Nhập dữ liệu từ bàn phím
- Ta dùng thủ tục chuẩn READ hoặc READLN có
cấu trúc như sau:
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++: cout ….
GV : Giải thích sự khác nhau giữa Write,
Writeln.
Lấy ví dụ minh họa cụ thể bằng chương trình.
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.
GV : Đưa ra 2 ví dụ :
Ví dụ 1:
Để nhập giá trị từ bàn phím ta thường dùng:
Write(‘Nhap gia tri cua M:’); {1}
Readln(M) {2}
Trong đó: {1} Đưa ra thông báo:
Nhap gia tri cua M:
Còn {2} Dùng để đọc giá trị và gán cho biến M.
Cấu trúc {1}, {2} gọi là giao tiếp người – máy.
Việc lập dữ liệu cho nhiều biến thì giá trị
mỗi biến phải cách nhau ít nhất một dấu cách
Write(‘Vay la ban co’,N -1,‘nguoi ban trong
lop’);
Write(‘Go Enter de ket thuc chuong trinh’);
Readln;
End.
VI. CỦNG CỐ , DẶN DÒ:
Lấy 1 ví dụ đơn giản lập trình trực tiếp trên máycho học sinh quan sát .
Ra bài tập về nhà .
Giáo án Lý Thuyết TIN HỌC 11
§ 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ô.
-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.
- Cho bài tập về nhà
Giáo án Lý Thuyết TIN HỌC 11
Ch ương III : CẤU TRÚC RẼ NHÁNH VÀ LẶP
§9 CẤU TRÚC RẼ NHÁNH
I. MỤC ĐÍCH YÊU CẦU
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.
1. Khái niệm rẽ nhá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 ngôn
Max :=a; If b >a Then max :=b;
Cách 2 :
If a >b Then max :=a Else max :=b;
3. Câu lệnh ghép
- Trong ngôn ngữ Pascal, Câu lệnh ghép có
dạng:
Begin
<các câu lệnh>
End ;
Chú ý :
- Sau End phải là dấu; và trước Else không chứa
dấu ;
- Từ nay nói đến câu lệnh thì đó có thể là câu
lệnh đơn hoặc là câu lệnh ghép.
Giáo án Lý Thuyết TIN HỌC 11
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
§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 .
+
+
+
+
aaaa
Bài toán 2 : Tính Tổng
S2=
...
1
...
2
1
1
11
+
+
++
+
+
+
+
Naaaa
Với điều kệin
0001.0
1
<
+ Na
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/
B1: S:=1/a;
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?
Lặp bao nhiêu lần?
Hai thuật toán giống và khác nhau như
thế nào?
Cái gì thay đổi trong thuật toán này?
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) .
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
tong_1a và tong_1b .
Ví dụ 2 : Tính tổng các số nguyên chia hết cho 3
hoặc 5 trong phạm vi từ M đến N (M<N).
3. Lặp với số lần chưa biết trước và
câu lệnh while – do
Để giải bài toán 2 ta dùng thuật toán như sau :
Bước 1 : S :=1/a; N :=0;
Bước 2 : Nếu 1/(a+N) < 0.0001 thì chuyển đến
bước 5 ;
Giáo án Lý Thuyết TIN HỌC 11
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.
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à
Giáo án Lý Thuyết TIN HỌC 11
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 :
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ố.
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 .
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 :
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 hơn ?
GV : Tùy trường hợp cụ thể mà ta dùng cách 1 hay
cách 2 nhưng thông thường ta sử dụng cách 1 .
GV : Sử dụng một sồ hình ảnh trực quan minh họa
cho học sinh cấu trúc mảng và chỉ số của phần tử
Chỉ
số
1 2 3 4 5 6 7 8
Giá
trị
53 81 62 18 26 41 24 53
1. Kiểu mảng một chiều
- Mảng một chiều là một dãy hữu hạn
các phần tử có cùng kiểu, mảng được
đặt tên và mỗi phần tử mang một chỉ
số. Để mô tả mảng một chiều ta cần xác
định kiểu của các phần tử và cách đánh
chỉ số các phần tử .
Với mảng một chiều ta quan
tâm đến :
- 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
của phần tử mảng .
- Để truy cập vào phần tử mảng ta
viết :
- <Tên biến mảng>[Chỉ số]
Ví dụ :
A[20] Truy cập phần tử mang chỉ số 20
Giáo án Lý Thuyết TIN HỌC 11
Đưa ra một số khai báo mảng trong Pascal .
GV : Đưa ra ví dụ .
HS : Xây dựng thuật toán để giải bài toán (thuật
toán đã học ở lớp 10) .
GV soạn sẵn chương trình và cho học sinh quan sát
chương trình .
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 .
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
trong mảng A .
Ví dụ :
Khai báo biến mảng thông qua kiểu
mảng :
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)
;
Readln ;
End .
Ví dụ 2 : Sắp xếp dãy số nguyên theo
bằng thuật toán tráo đổi .
Giáo án Lý Thuyết TIN HỌC 11