Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (491.21 KB, 98 trang )
<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1>
Ngày soạn: 23/08/2009
Tit 1: PPCT
<b> Chơng i: khái niệm về lập trình và ngôn ngữ lập trình</b>
Đ<i><b>1: </b><b>Khái niệm về lập trình</b></i>
<b>A phần chuẩn bị</b>
<b>I. Mục tiªu:</b>
<i><b> 1. KiÕn thøc:</b></i>
- Biết đợc khái niệm về chơng trình dịch.
- Phân biệt đợc hai loại chơng trình dịch là biên dịch và thông dịch.
<i><b> 2. Kỹ nng</b></i>
- Biết vai trò của chơng trình dịch
- Hiu ý nghĩa nhiệm vụ của chơng trình dịch
<i><b> 3. Thái độ:</b></i>
- ý thức đợc tầm quan trọng của môn học và có thái độ học tập nghiêm túc, ln t tỡm
hiu hc tp.
<b>II. Phần chuẩn bị</b>
<i><b>1. Chuẩn bị của giáo viên:</b></i>
- Giáo án, SGK, sách giáo viên, sách bài tËp,
<i><b>2. Chn bÞ cđa häc sinh:</b></i>
- Vở ghi, sách giáo khoa, sách bài tập, đồ dùng học tập.
III Phần thể hiện trên lớp.
1<b>. ổn định lớp</b>
<i><b>1. </b><b>k</b><b>iểm tra sĩ số: </b></i>
<b>2. Kiểmtra bài cũ:</b>
<i><b> </b></i>3. Nội dung bài mới
<b>hớng dẫn của giáo viên</b> <b>Hoạt ng ca hc sinh</b>
<i><b>1.Hot ng1</b></i>
Giáo viên đa nội dung bài toán tìm
ph-ơng trình bậc nhất ax + b = 0.
- Hãy xác định các yếu tố Inputvà
Output của bài toán ?
- Diễn giải; hệ thống các bớc này đợc
gọi là thuật toán .
- Nếu diễn đạt thuật toán này cho máy
hiểu, em sẽ dùng ngơn ngữ nào?
để diễn đạt một thuật tốn thơng qua
một ngơn ngữ lập trình đợc gọi là lập
trình .
Có những loại ngơn ngữ lập trình
nào?-Hỏi : Làm thế nào để chuyển một
<i><b>2.Hoạt động 2.</b></i>
1.Kh¸i niƯm vỊ lËp tr×nh
- Input : a, b
- output : x=-b/a . Vơ nghiệm, Vơ số nghiệm.
Lập trình là việc sử dụng cấu trúc dữ liệu và
các lệnh của ngơn ngữ lập trình cụ thể để mơ
tả dữ liệu và diễn đạt các thao tác của thuật
toán.
- Ta đợc một chơng trình.
Có 3 loại NNLT đó là:
- Ngụn ng mỏy.
- Hp ng.
- Ngôn ngữ bậc cao.
- Ngơn ngữ máy : Các lệnh đợc mã hóa bằng
các kí hiệu 0 - 1. Chơng trình đợc viết trên
ngơn ngữ máy có thể đợc nạp vào bộ nhớ và
thực hiện ngay.
- Ngôn ngữ bậc cao : Các lệnh đợc mã hóa
2. Chơng trình dich
Chơng trình dịch
Có những kỷ thuật dịch nào?
- Biên dịch :
Bớc 1 : Duyệt, phát hiện lỗi, kiểm tra
Bớc 2 : Dịch toàn bộ chơng trình nguồn
thành một chơng trình trên ngôn ngữ
máy.
- Thông dịch :
Bc 1 : Kiểm tra tính đúng đắn của
lệnh tiếp theo trong chơng trình nguồn.
Bớc 2 : Chuyển lệnh đó thành ngụn
ng mỏy.
Bớc 3 : Thực hiện
Hoạt Động 3
HÃy cho biết câu lệnh sau dùng những
kí tự nào?
Cỏc kí tự đặc biệt gồm những kí tự
nào?
Quy t¾c viÕt c©u lƯnh WRITE....
chuyển đổi.
Có 2 kỉ thuật đó là Thụng dch v biờn dch
3. Thành phần của NNLT
Có 3 thành phần chính
a. Bảng chữ cái
- bảng chữ cái tiếng Anh 26 chữ cái gồm
chữ hoa và chữ thờng
- chữ số: 9 chữ số thập phân
- cỏc kớ t đặc biệt...
b. Cú pháp
là bộ quy tắc để viết chơng trỡnh
c. Ng ngha
ý nghĩa của câu lệnh
<b>IV. Đánh giá cuối bµi.</b>
1. Những nội dung đã học.
- Khái niệm lập trình và ngôn ngữ lập trình.
- Có ba loại ngôn ngữ lập trình : Ngôn ngữ máy, hợp ngữ và ngôn ngữ bậc cao.
- Khái niệm chơng trình dịch.
- Có hai loại chơng trình dịch là biên dịch và thông dịch.
2. Câu hỏi và bài tập về nhà.
- Mỗi loại ngơn ngữ lập trình phù hợp với những ngời lập trình có trình độ nh thế nào?
- Kể tên một số ngơn ngữ lập trình bậc cao có sử dụng kĩ thuật biên dịch và một số ngôn
ngữ lập trình có sử dụng kĩ thuật thơng dịch.
- Trả lời các câu hỏi 1, 2, 3, s¸ch gi¸o khoa trang 13.
Ngày soạn: 25/08/2009
Tit 2: PPCT
<b>Các thành phần của ngôn ngữ lập trình</b>
<b>I. Mục tiêu:</b>
<i><b>1. Kiến thức:</b></i>
- Nắm đợc các thành phần của một ngôn ngữ lập trình nói chung
- Biết đợc một số khái niệm nh: tên, tên chuẩn, tên dành riêng
<i><b>2. Kỹ năng</b></i>
- Phân biệt đợc tên chuẩn với tên dành riêng và tên tự đặt.
- Nhớ các qui định về tên, hằng và biến.
- Biết đặt tên đúng, nhận biết tên sai.
<i><b>3. Thái độ</b></i>
- ý thức đợc tầm quan trọng của môn học và có thái độ học tập nghiêm túc, ln từ tìm
hiểu hc tp.
<b>II. Phần chuẩn bị</b>
<i><b>1. Chuẩn bị của giáo viên:</b></i>
- Giao án, SGK, sách giáo viên, sách bài tập,
<i><b>2. Chn bÞ cđa häc sinh:</b></i>
- Vở ghi, sách giáo khoa, sách bài tập , đồ dùng học tập.
<b>III. Phần thể hiện trên lớp.</b>
1.<b>. ổn định lớp</b>
<b>kiểm tra sĩ số:</b>
2<b>. KiĨm tra bµi cị :</b>
3. Néi dung bµi míi.
<b>hớng dẫn của giáo viên</b> <b>Hoạt động của học sinh</b>
<b> Hoạt động 1 </b>
* Mọi đối tợng trong chơng trình đều phải
đợc đặt tên.
Hãy nêu cách đặt tên trong NNLT Pascal?
Có những loại tên nào?
+ Tên dành riêng : Là những tên đợc ngơn
ngữ lập trình quy định dùng với nghĩa xác
định, ngời lập trình khơng đợc dùng vi ý
ngha khỏc .
+ Tên chuẩn
Treo bảng phụ yêu cầu học sinh mỗi nhóm
thực hiện :
+ Xác định tên giành riêng.
+ Xác định tên chuẩn .
+ Xác định tên tự đặt .
- Thu phiÕu häc tËp cña ba nhãm, chiÕu
kÕt quả lên bảng, gọi học sinh nhóm khác
1. Một số khái niệm
a, Tên
- Gồm chữ số, chữ cái, dấu gách dới.
- Bắt đầu bằng chữ cái hoặc dấu gạch dới.
- Độ dài không quá 127 .
- Không trùng với tên dành riêng
Có 3 loại tªn:
Tªn danh riªng
Tªn chuÈn
Tên do ngời dùng t
- Quan sát tranh và điền phiếu học tập .
Tên dành riêng : Program type
Tên chuẩn : Abs Interger Byte
nhËn xÐt bæ sung .
- Tiểu kết cho vấn đề này bằng cách bổ
sung thêm cho mỗi nhóm để đa ra trả lời
đúng .
Hoạt đông 2
<b> * Yêu cầu học sinh cho một số ví dụ về </b>
hằng số, hằng xâu và hằng logic.
- trình bày khái niệm về hằng số, hằng xâu
và hằng logic .
* Ghi bảng : Xác định hằng số và hằng
xâu trong các hằng sau :
- 32767
QB
50
1.5E+2
* Yêu cầu học sinh nghiên cøu s¸ch gi¸o
khoa, cho biÕt kh¸i niƯm biÕn .
- Cho ví dụ một biến .
* Yêu cầu học sinh nghiên cứu sách giáo
- Cho mt ví dụ về một dịngchú thích .
- Hỏi : Tên biến và tên hằng là tên giành
riêng hay tên chuẩn hay tên do ngời lập
trình đặt ?
- Hỏi :Các lệnh đợc viết trong cặp dấu {}
có đợc TP thực hiện khơng? Vì sao?
B, H»ng vµ biÕn
* H»ng
- H»ng sè : 50 60.5
- H»ng x©u : “Ha Noi” “A”
- H»ng logic : False
- H»ng số học là các số nguyên và số thực,
có dấu hoặc không dấu .
- Hng xõu : L chui kí tự trong bộ mã
ASCII, đợc đặt trong cặp dấu nháy.
- Hằng logic : Là giá trị đúng (true) Hoc
sai ( False) .
* Quan sát bẳng và trả lời .
- Hằng số : - 32767, 1.5E+2
*BiÕn:
- Biến là đại lợng đợc đặt tên dùng để lu
trữ giá trị. Giá trị này có thể đợc thay đổi
trong quá trình thực hiện chơng trình đều
phải đợc khai báo .
- VÞ dơ hai tên biến là : Tong, xyz .
* c lập tham khảo sách giáo khoa để trả
lời .
c, Lêi chó thÝch
- Cú thích đợc đặt giữa cặp dấu { } hoặc
(* *) dùng để giải thích cho chơng trình
rõ ràng dễ hiểu .
- {Lenh xuat du lieu}
- Là tên do ngời lập trình đặt .
- Khơng. Vì đó là dịng chú thích .
<b> IV. Đánh giá cuối bài</b>
1. Những nội dung đã học .
- Thành phần của ngôn ngữ lập trình : Bảng chữ, cú pháp và ngữ nghĩa.
- Khái niệm : Tên, tên chuẩn, tên dành riêng, tên do ngời lập trình đặt, hằng, biến và chú
thớch.
2. Câu hỏi và bài tập về nhà .
- Làm bài tập 4, 5, 6, sách gi¸o khoa, trang 13 .
- Xem néi dung phơ lơc B, s¸ch gi¸o khoa trang 128 : Một số tên giành riêng.
Ngày soạn 28/08/09
Tiết3:PPCT
BàI TậP
<b>I. Mục tiêu:</b>
<i><b>1. Kiến thức:</b></i>
- Nm c cỏch t tên trong pascal
- Biết vận dụng những kiến thức đã học vào giải quyết một bai ftoán trong tin học
- Biết đợc một số khái niệm nh: tên, tên chuẩn, tờn dnh riờng.
<i><b>2. Kỹ năng</b></i>
- Nh cỏc qui nh v tên, hằng và biến.
- Biết đặt tên đúng, nhận biết tên sai.
<i><b>3. Thái độ</b></i>
- ý thức đợc tầm quan trọng của mơn học và có thái độ học tập nghiêm tỳc
<b>II. Phn chun b</b>
<i><b>1. Chuẩn bị của giáo viên:</b></i>
- Giao án, SGK, sách giáo viên, sách bài tập,
<i><b>2. Chuẩn bÞ cđa häc sinh:</b></i>
- Vở ghi, sách giáo khoa, sách bài tập , đồ dùng học tập.
<b>III. Phần thể hiện trên lớp.</b>
1.<b>. ổn định lớp</b>
<b>kiểm tra sĩ số:</b>
2<b>. KiÓm tra bµi cị :</b>
<b>3. Néi dung bµi míi.</b>
<b>hớng dẫn của giáo viên</b> <b>Hoạt động của học sinh</b>
C©u 1: H·y cho biết sự khác nhau giữa
hằng và biến?
Thế nào là h»ng, thÕ nµo biÕn?
Câu2: Tại sao phải có chơng trình dịch?
Nếu khơng có chơng trình dịch có đợc
khơng?
C©u 3: Biên dịch và thông dịch giống và
khác nhau nh thế nào?
HS:nghiên cứu
-Hng i lng khụng i
-Bin l i lng có thể thay đổi
-Hằng phải đợc đặt tên
-Hằng có thể cú hoc khụng t tờn
Phải có chơng trình dịch là:
Mt chơng trình viết bằng NNLT bậc cao
hoặc hợp ngữ muốn máy tính thực hiện thì
phải dịch sang mã máy nên địi hỏi phải có
chơng trình dịch
HS:
C©u 4:
Hãy cho biết các tên sau tên nào đúng tên
nào sai, sai vì sao?
A BC
6Pq
R12
X#y
45
Câu 5: Hãy chọn khẳng định sai trong các
khẳng định sau:
a. NNLT Pascal lµ NN bậc cao
b. Sử dụng kỉ thuật biên dịch
c. Dựng viết chơng trình thơng mại
Đáp án: C
C©u 6: H·y viÕt thuật toán thực hiện công
việc sau: Nhập vào số nguyên dơng a>0,
hÃy tính và đa ra màn hình Diện tích của
hình vuông cạnh a nói trên?
Giáo viên nhận xét
HS: thảo luận
Và trả lời
Cỏc tờn ỳng: R12
Tên sai: A BC: cã chøa dÊu c¸ch
6PR, X#y, 45:...
HS thảo luận và cử đại diện của từng nhóm
lên phát biu.
HS: thảo luận
Trả lời
B1: Nhập a>0;
B2: Tính diện tích Shình vuông<- a2
B3: Thông báo Diện tích S và kết thức
IV. Cũng cố và dặn dò
- Về nhà làm bài tập trong SGK trang 35 tin häc líp 11
- §äc trớc bài mới
Ngày soạn: 11/09/09
Tit 4: PPCT
<b>Cấu trúc chơng trình</b>
<b> I. Mơc tiªu</b>
1. KiÕn thøc.
- Biết đợc cấu trúc chung của một chơng trình.
- Các thành phần của một chơng trình
- Khai báo tên chơng trình, th viện, hằng...
2. Kĩ năng.
- S dng c kiểu dữ liệu và khai báo biến để viết đợc một chơng trình đơn giản.
<b> II. Đồ dùng dạy học</b>
- Máy vi tính và máy chiếu projector dùng để chiếu các ví dụ.
- Một số chơng trình mẫu viết sẵn.
2. Chn bÞ cđa häc sinh.
- S¸ch gi¸o khoa.
<b> III. Hoạt động dạy - học</b>
1. ổn định tổ chức
- Sè HS trong lớp....
- Số Hs vắng...
<b>hớng dẫn của giáo viên</b> <b>NéI dung bµi häc</b>
1. Phát vấn gợi ý : Một bài tập làm văn
em thờng viết có mấy phần? Các phần có
thứ tự khơng? Vì sao phải chia ra nh vậy?
2. Yêu cầu học sinh nghiên cứu sách giáo
khoa để trả lời các câu hỏi sau:
- Một chơng trình có cấu trúc mấy phần?
- Trong phần khai báo có những khai báo
nào?
- Yêu cầu học sinh lấy ví dụ khai báo tên
chơng trình trong ngôn ngữ Pascal.
- Yêu cầu học sinh lấy ví dụ khai báo th
viện chơng trình con trong ngôn ngữ
- Yêu cầu học sinh lấy ví dụ khai báo
hằng trong ngôn ngữ Pascal.
- Yêu cầu học sinh lấy ví dụ khai báo
biến trong ngôn ngữ Pascal.
- Yêu cầu học sinh cho biết cấu trúc
chung của phần thân chơng trình trong
ngôn ngữ lập trình Pascal.
3. Tỡm hiu mt chng trình đơn giản.
- Hỏi : Phần khai báo của chơng trình?
- Hái : Phần thân của chơng trình, lệnh
prìnt có chức năng gì?
- Chiu lờn bng mt chơng trình đơn
1. CÊu tróc chung.
- Cã ba 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.
Nghiên cứu sách giáo khoa, thảo luận và
trả lời.
+ Hai phÇn :
[<phần khaibáo>]
<Phần thân chơng trình>
2. Thành phần của chơng trình
a. Phần khai báo
- Khai báo tên chơng trình, khai báo th
viện chơng trình con, khai báo hằng, khai
báo biến và khai báo chơng trình con.
- CÊu tróc : Program
ten_chuong_trinh ;
- VÝ dô : Program tinh_tong ;
- CÊu tróc : Uses tªn_th_viƯn;
- VÝ dô : Uses crt ;
- CÊu tróc : Const tªn_h»ng =
giá_trị;
- Ví dụ : Const maxn=100;
- CÊu tróc : Var
tên_biến=kiểu_dữ_liệu;
- VÝ dô : Var a, b, c : integer;
b, Phần thân chơng trình
Begin
D·y c¸c lƯnh;
End.
3. Chơng trình đơn gin
Nhìn vào SGK nghiên cứu chơng trình
viết bằng pascal
giản trong ngôn ngữ Pascal.
Program VD1 ;
Var x,y:byte; t:word;
Begin
t:=x+y;
Writeln(t);
readln;
End
- Hỏi : Phần khai báo của chơng trình?
- Hỏi : Phần thân của chơng trình? Có
lệnh nào trong thân chơng trình?
4. Yêu cầu học sinh lấy một ví dụ về một
chơng trình Pascal không có phần tên và
phần khai báo.
viện stdio.h
- Phần thân {}
- Lệnh printf dùng để đa thông báo ra
màn hình.
- Khai b¸o tên chơng tr×nh :
Program VD1;
- Khai b¸o biÕn : Var x, y:byte
;t:word;
Var x, y:byte; t:word;
- Còn lại là phần thân.
- Lệnh gán, lệnh đa thông báo ra màn
hình.
4. Thảo luận và trả lời
Begin
Writeln(“Hello”);
Readln;
End.
IV. Cũng cố và dăn dò
Ngày soạn: 08/09/09
<b>Bài4: Một số kiểu dữ liệu chuẩn và khai báo biến</b>
I. Mục đích - yêu cầu
1. Mơc tiªu :
- Biết đợc tên của một số kiểu dữ liệu chuẩn, biết đợc giới hạn biểu diễn của mỗi loại
kiểu dữ liệu đó.
- Học sinh biết đợc rằng mọi biến dùng trong chơng trình đều phải đợc kaho báo tên
và kiểu dữ liệu.
- Học sinh biết đợc cấu trúc chung của khai báo biến trong ngôn ngữ Pascal, khai báo
đợc biến khi lập trình.
2. Thái độ
- Có thái độ nghiên túc, tham gia tích cực vào việc tìm hiểu bài
- Lu«n lu«n phÊn cÊu trong häc tËp
II. Chn bÞ
1. Chn bÞ cđa giáo viên.
- Mỏy vi tớnh v máy chiếu projector dùng để chiếu các ví dụ.
- Một số chơng trình mẫu viết sẵn.
2. Chn bÞ cđa häc sinh.
III. Tiến trình lên lớp
1. ổn định tổ chức
- Sè HS trong líp
- Sè Hs v¾ng
2. KiĨm tra bài cũ
HÃy nêu cấu trức của một chơng trình/
Cách khai báo hằng, th viện, tên chơng trình?
3. Nội dung bµi míi
<b>hớng dẫn của giáo viên</b> <b>Hoạt động của học sinh</b>
1. Đặt vấn đề: Trong toán học, để thực
hiện đợc tính tốn ta cần phải có các tập
số. Đó là các tập số nào?
- Diễn giải: Cũng tơng tự nh vậy, trong
ngơn ngữ lập trình Pascal, để lập trình giải
quyết các bài tốn, cần có các tập hợp, mỗi
tập hợp có một giới hạn nhất định.
- Các em có thể hiểu nơm na: Kiểu dữ
2. Yªu cầu học sinh nghiên cứu sách giáo
khoa, trả lời các câu hỏi sau:
- Có bao nhiêu kiểu dữ liệu chuẩn trong
ngôn ngữ Pascal?
- Số tự nhiên, số nguyên, số hữu tØ, sè
thùc.
- Cã 4 kiÓu: KiÓu nguyên, kiểu thực, kiểu
kí tự và kiểu logic
1. Kiểu số nguyên
Trong ngôn ngữ Pascal biểu diễn kiểu
nguên có các kiĨu sau:
- KiĨu sè nguyªn:
Byte: 0..255
Integer: -32768..32767
Word: 0..65535
- trong ng«n ngữ Pascal, có những kiểu
- trong ngôn ngữ Pascal, có những kiểu
số thực nào thờng dùng, phạm vi biểu diễn
của mỗi loại?
- Trong ngôn ngữ Pascal, có bao nhiêu
kiểu kí tự?
- trong ngôn ngữ Pascal, có bao nhiêu
kiểu logic, gồm các giá trị nµo?
3. Giáo viên giải thích một số vấn đề cho
hc sinh:
+ Vì sao phạm vi biểu diễn của các loại
kiểu nguyên khác nhau?
+ Miềm giá trị của các loại kiĨu thùc, sè
ch÷ sè cã nghÜa?
Hãy nêu cú pháp để khai báo biến?
Nếu có nhiều biến có cùng kiểu dữ liệu, có
thể khai báo ghép, khi đó các biến phân
Cho ví dụ để khai báo một biến nguyên và
một biến kiểu kớ t.
Có bao nhiêu biến tất cả, Bộ nhớ phải cấp
phát là bao nhiêu?
Var x, y: word;
z: longint;
h: integer;
i: byte;
- Liên tởng các tập số trong toán học víi
mét kiĨu d÷ liƯu trong Pascal
2. KiĨu sè thùc
- KiÓu sè thùc:
- Cã 2 lo¹i: real, extended.
3. KiĨu kÝ tù
Có 256 kí tự có mã ASCII trong phạm vi từ
0 đến 255
- Cã 1 lo¹i: Char.
4. KiÓu logic
- Kiểu logic: Là tập hợp gồm hai giá trị
True và Flase, là kết quả của phép so sánh.
5. Khai báo biến
Trong ngôn ngữ lậo trìnhPascal, cấu trúc
chung của khai báo biến là
Var <danh sách biến>: <kiểu dữ liệu>;
Trong ú:
-Var là từ khoá
-Kiểu_dữ_liệu là một trong các kiểu dữ
liƯu chn cđa Pascal.
Var x: word;
y: char;
- Cã 5 biÕn.
- tổng bộ nhớ cần cấp phát.
x (2 byte); y (2 byte); z (4 byte);
h (2 byte); i (1 byte); táng 11 byte
IV. Đánh giá cuối bài
1. Nhng nội dung đã học
- Mét ch¬ng trình gồm có hai phần: Phần khai báo và phần thân.
- Các kiểu dữ liệu chuẩn: KiĨu sè nguyªn, kiĨu sè thùc, kiĨu kÝ tù, kiĨu logic.
- Mọi biến trong chơng trình phải đợc khai báo. Cấu trúc chung của khai báo biến trong
Pascal: Var tờn_ bin: tờn_kiu_d_liu;
2. Câu hỏi và bào tập vỊ nhµ
- Lµm bµi tËp 1, 2, 3, 4, 5, schs gi¸o khoa, trang 35.
- Xem trớc nội dung bài: Phép toán, biĨu thøc, lƯnh g¸n, s¸ch gi¸o khoa, trang 24.
Ngày soạn: 11/09/09
Tiết 6:PPCT
<b>Phép toán, biểu thức, lệnh gán</b>
I. Mục tiêu
1. KiÕn thøc
- Biết đợc các phép tốn thơng dụng trong ngơn ngữ lập trình.
- Biểu diễn đạt một hình thức trong ngơn ngữ lập trình.
- Biết đợc chức năng của lệnh gán.
- Biết đợc cấu trúc của lệnh gán và một số hàm chuẩn trơng dụng trong ngơn ngữ lập
trình Pascal.
2. kĩ năng
- S dng đợc các phép toán để xây dựng biểu thức.
II. Đồ dùng dạy học
1. Chuẩn bị của giáo viên
- Sách gi¸o khoa, tranh chøa c¸c biĨu thøc trong to¸n häc.
- Tranh chứa bảng các hàm số học chuẩn, tranh chứa bảng chân trị.
- máy vi tính và máy chiếu Projector.
2. Chuẩn bị của học sinh
- Sách gi¸o khoa.
III. Hoạt động dạy - học
1. ổn định tổ chức
- Sè HS trong líp
- Sè Hs v¾ng
2. Kiểm tra bài cũ
HÃy nêu cách khai báo biến?
Có những kiểu dữ liệu chuẩn nào?
3. Nội dung bài mới
<b>hng dn của giáo viên</b> <b>Hoạt động của học sinh</b>
<b>1. PhÐp to¸n. </b>
<i><b>Hãy kể các phép toán em đã đợc học</b></i>
<i><b>trong toán học?</b></i>
- Diễn giải: Trong ngôn ngữ lập trình
Pascal cũng có các phép tốn đó nhng đợc
diễn đạt bng mt cỏch khỏc.
- Yêu cầu học sinh nghiên cứu sách giáo
khoa và cho biết các nhãm phÐp to¸n.
Phép Div, Mod đợc sử dụng cho những
kiểu dữ liệu nào?
- Hái: KÕt qu¶ cđa phÐp toán quan hệ
thuộc kiểu dữ liệu nào?
<i><b>2. Biểu thức số häc</b></i>
* Nêu vấn đề: trong toán học ta đợc làm
quen với khái niệm biểu thức, hãy cho biết
yếu tố cơ bản xây dựng nên biểu thức.
- Nếu trong một bài toán mà toán hạng
Suy nghĩ và trả lời :
- PhÐp: Céng, trõ, nh©n, chia, lÊy sè d,
chia lấy nguyên, so sánh.
- Các phÐp to¸n sè häc: + - * / div mod
- C¸c phÐp to¸n quan hÖ: <, <=, >, >=, =,
<>
- Các phép toán logic: And, Or, Not.
- Chỉ sử dụng đợc cho kiểu nguyên.
- Thuéc kiểu logic.
1. Suy nghĩ và trả lời.
là biến số, hằng số hoặc hàm số và toán tử
là các phép toán số học thì biểu thức có tên
gọi là gì?
2. Treo tranh có chứa biểu thức toán học
lên bảng, yêu cầu: Sử dụng các phép to¸n
sè häc, h·y biĨu diƠn biĨu thøc to¸n häc
sau thµnh biĨu thøc trong ngôn ngữ lập
trình.
2a+5b+c
xy
2z
x+y + x 2<sub> </sub>
1 - 2 2z
z
H·y nªu thø tù u tiªn trong tÝnh biĨu thøc
sè häc?
<i><b>3. Hµm sè chn</b></i>
- Treo tranh chứa bảng một số hàm
chuẩn, yêu cầu học sinh điền thêm các
thông tin nh chứac năng của hàm , kiểu
của đối số và kiểu của hàm số.
<i><b>4. BiĨu thøc quan hƯ</b></i>
Khi hai biểu thức số học liên kết với nhau
bằng phép toán quan hệ ta đợc một biểu
thức mới, biểu thức đó gọi là biểu thức gì?
- Hãy lấy một ví dụ về biểu thức quan
hệ?
- Yêu cầu học sinh nghiên cứu sách giáo
khoa và cho biÕt cÊu tróc chung cđa biĨu
thøc quan hƯ?
- Thø tù thùc hiƯn cđa biĨu thøc quan
hƯ?
- Cho biết kết quả của phép toán quan hệ
thuộc kiểu dữ liệu nào đã học?
<i><b>5. BiÓu thøc LogÝc</b></i>
Các biểu thức quan hệ đợc liên kết với
nhau bởi phép toán Logic đợc gọi là biểu
thức Logic.
- H·y cho mét sè vÝ dơ vỊ biĨu thøc
logic.
- Trong to¸n häc ta cã biÓu thøc
5<=x<=11, h·y biÓu diƠn biĨu thøc nµy
trong ngôn ngữ lập trình?
HS: Biểu thức số học
2. Quan sát và trả lời.
2*a+5*b+c
x*y/(2*z)
((x+y)/(1 – (2 /z)))+(x*x/(2*z))
HS: Tr¶ lêi
- Thực hiện trong ngoặc trớc; Ngoài ngoặc
sau. Nhân, chia, công, trừ sau.
. Suy nghĩ và trả lời.
Hàm tri tuyệt đối, hàm căn bậc hai, hàm
sin, hàm cos.
- Quan sát tranh vẽ, nghiên cứu sách giáo
khoa và lên bảng điền tranh.
Suy nghĩ và trả lời.
- Gọi là biĨu thøc quan hƯ.
- VÝ dơ: 2*x<y
- CÊu tróc chung:
<BT1> <phÐp to¸n qh> <BT2>
+ Tính giá trị biểu thức
+ Thực hiƯn phÐp to¸n quan hƯ.
- KiĨu logic.
5. Chó ý theo dâi dÉn d¾t của giáo viên
- Ví dụ: (A>B) or ((X+1)<Y) và (5>2) and
((3+2)<7).
- Thø tù thùc hiÖn biÓu thøc logic.
- Kết quả của biểu thức logic có kiểu dữ
liệu gì?
- Treo tranh có chứa bảng chân trị của A
và B, yêu cầu học sinh điền giá trị cho A
and B; A or B; not A.
<i><b>6. Câu lƯnh g¸n</b></i>
- Giíi thiƯu mét sè vÝ dơ vỊ lƯnh g¸n trong
Pascal nh sau:
x:=4+8;
- Giải thích: Lấy 4 cộng 8, đem kết quả
đặt vào x. Ta đợc x=12.
- Hỏi : HÃy cho biết chức năng của lệnh
gán?
- Yêu cầu học sinh nghiên cứu sách giáo
khoa và cho biết cấu trúc chung của lệnh
gán trong ngôn ngữ Pascal?
- Hóy cho một ví dụ để tính nghiệm của
phơng trình bậc hai.
- Giíi thiƯu thªm vÝ dụ:
Cho chơng trình.
Var i,z:integer;
Begin
z:=4;
i:=6;
z:=z - 1;
i:=i+1;
writeln(“i=”,i);
writeln(“z=”,z);
End.
- Hỏi: Chơng trình in ra màn hình giá trị
b»ng bao nhiªu?
- Thực hiện chơng trình để học sinh
kiểm nghiệm kết quả tự suy luận.
+ Thùc hiƯn c¸c biĨu thøc quan hƯ.
+ Thùc hiƯn phÐp to¸n logic.
- KiÓu logic.
- Häc sinh suy nghĩ và trả lời bằng cách
điền vào bảng.
+ Tính giá trị của biểu thức.
+ Gán giá trị tính đợc vào một biến.
<tên_biến>:=<biểu_thức>;
x:=(-b+sqrt(b*b - 4*a*c))/(2*a);
- In ra màn hình: z=3 và i=7.
- Quan sát kết quả của chơng trình.
<b> IV. Đánh giá cuối bài.</b>
1. Nhng ni dung đã học.
- C¸c phÐp to¸n trong Turbo Pascal: Sè häc, quan hƯ vµ logic.
- C¸c biĨu thøc trong Turbo Pascal: Sè häc, quan hƯ vµ logic
- CÊu tróc lệnh gán trong Turbo Pascal: tên_biến :=biểu_thức;
2. Câu hái vµ bµi tËp vỊ nhµ
- Làm bài tập 5, 6, 7, 8, sách giáo khoa, trang 35 - 36;
- Xem phô lơc A, s¸ch gi¸o khoa trang 121: Mét sè phÐp toán thờng dùng và giá trị phép
toán logic.
TiÕt 7:PPCT
<b>Các thủ tục chuẩn vào/ra đơn giản</b>
<b>Sạon thảo, dịch, thực hiện chơng trình…</b>
1. KiÕn thøc
<i> - Biết đợc ý nghĩa của các thủ tục và/ra chuẩn đối với lập trình.</i>
- Biết đợc cấu trúc chung của thủ tục vào/ra trong ngơn ngữ lập trình Pascal.
- Biết đợc các bớc để hoàn thành một chng trỡnh.
- Biết các file chơng trình cơ bản của Turbo Pascal 7.0
2. Kĩ năng.
- Viết đúng lệnh vào/ra dữ liệu.
- Biết nhập đúng dữ liệu khi thực hiện chơng trình.
- Biết khởi động và thoát hệ soạn thảo Turbo Pascal.
- Soạn đợc một chơng trình vào máy.
- Dịch đợc chơng trình đê phát hiện lỗi cú pháp.
- Thực hiện đợc chơng trình để nhập dữ liệu và thu kết quả, tìm lỗi thuật tốn và sửa lỗi.
II. Đồ dùng dạy hc
1. Chuẩn bị của giáo viên
- S¸ch gi¸o khoa, tranh chøa c¸c biĨu thøc trong to¸n häc, m¸y chiÕu Projector, m¸y vi
tÝnh, mét số chơng trình viết sẵn.
2. Chuẩn bị của häc sinh.
- S¸ch gi¸o khoa.
III. Hoạt động dạy học
1. ổn định tổ chức lớp
- Sè häc sinh trong lớp
- Số học sinh vắng
2. Kiểm tra bài cị
Hãy nêu các định nghĩa về biểu thức lơgíc
Hãy tính giá trị của biểu thức sau:
Not(3>7) and (4 mod 2=1) or (true and (3 div 2=1)
3. Tiến trình lên lớp
<b>hng dẫn của giáo viên</b> <b>Hoạt động của học sinh</b>
Khi giải quyết một bài toán, ta phải đa dữ
liệu vào để máy tính xử lí, việc đa dữ liệu
bằng lệnh gán sẽ làm cho chơng trình chỉ
có tác dụng với một dữ liệu cố định. Để
chơng trình giải quyết đợc nhiều bài toán
hơn, ta phải sử dụng thủ tục nhập dữ liệu.
<i><b>1. Nhập dữ liệu vào từ bàn phím </b></i>
- Yêu cầu học sinh nghiên cứu sách giáo
khoa và cho biết cấu trúc chung của thđ tơc
nhËp d÷ liƯu trong ngôn ngữ lập tr×nh
Pascal:
Trong đó:
* Read, readln: Là tên chuẩn
* Tên biến: là một hoặc nhiều biến đợc
Chó ý lắng nghe dẫn dắt của giáo viên.
- Nghiên cứu sách giáo khoa và suy nghĩ
để trả lời.
viÕt c¸c nhau bëi dÊu phÈy (,).
- Nêu ví dụ: Khi viết chơng trình giải
ph-ơng trình ax+b=0, ta phải nhập vào các đại
lợng nào? Viết lệnh nhập?
H·y ph©n biƯt sù kh¸c nhau cđa thđ tơc
Read vµ Readln?
Chiếu một chơng trình Pascal đơn giản có
lệnh nhập giá trị có hai biến.
- thùc hiƯn ch¬ng trình và thực hiƯn
nhËp d÷ liƯu.
- Hái : Khi nhập giá trị cho nhiều biến,
ta phải thực hiện nh thế nào?
- Yêu cầu học sinh thực hiện nhập dữ liệu
cho chơng trình.
<i><b> 2. Đ</b><b> a dữ liệu ra màn hình</b></i>
Sau khi xử lí xong, kết quả tìm đợc đang
đợc lu trong bộ nhớ. Để thấy đợc kết quả
trên màn hình ta sử dụng thủ tục xuất dữ
liệu.
- Yêu cầu học sinh nghiên cứu sách giáo
khoa và cho biÕt cÊu tróc chung cđa thđ tơc
xt d÷ liƯu trong ng«n ngữ lập trình
Pascal.
- Nêu ví dụ: Khi viết chơng trình giải
ph-ơng trình ax+b=0, ta phải đa ra màn hình
giá trị cđa nghiƯm -b/a, ta ph¶i viÕt lƯnh
nh thÕ nµo?
- Chiếu một chơng trình Pascal đơn giản
Program vb;
Var x, y, z:integer;
Begin
Writeln(“nhap vao hai so:”);
Readln(x, y);
z:=x+y;
write(x:6, y:6, z:6);
readln;
end.
- Thực hiện chơng trình và thực hiện
nhập dữ liệu để học sinh thấy kết quả trên
nền màn hình.
- Hỏi : Chức năng của lệnh Writeln();
- Hái: ý nghÜa cña : 6 trong lÖnh
- Phải nhập giá trị cho hai biến: a, b.
- ViÕt lÖnh: Readln(a,b);
- Readln sau mỗi lần nhp thỡ con tr t
ng xung dũng
- Quan sát chơng trình ví dụ của giáo viên.
- Những giá trị này phải đợc gõ cách nhau
ít nhất một dấu cách hoặc kí tự xung
dũng.
- Lên bảng thực hiện nhập theo yêu cầu
của giáo viên.
Chú ý lắng nghe dẫn dắt của giáo viên.
- Nghiên cứu sách giáo khoa và trả lời.
Write(<tªn_biÕn_1>,...,<tªn_biÕn_k>);
Writeln(<tªn_biÕn_1>,...,<tªn_biÕn_k>);
- ViÕt lÖnh : Writeln(-b/a);
2. Quan sát chơng trình ví dụ của giáo
viên.
- Viết ra màn hình dòng chữ và đa con trỏ
xuống dòng.
Write(...)
- Hỏi: Khi các tham số trong lệnh
Write() thuộc kiểu Char hoặc real thì quy
định vị trí nh thế nào?
- Cho vÝ dơ cơ thĨ víi 2 biÕn c kiểu Char
<i><b>* Soạn thảo, dịch và thực hiện ch</b><b> ơng</b></i>
<i><b>trình</b></i>
1. t vn đề: Để sử dụng đợc Turbo
Pascal, trên máy phải có các file chơng
trình cần thiết. Tham khảo sách giáo khoa
và cho biết tên các file chơng trình đó?
2. Trình diễn cách khởi động Turbo Pascal
thông qua máy chiếu Projector.
- Giới thiệu màn hình soạn thảo chơng
trình: Bảng chọn, con trỏ, vùng soạn thảo...
- Soạn một chơng trình làm ví dụ, lu
ch-ơng trình, dịch lỗi.
- Dựng mỏy chiếu vật thể để minh họa
thap tác lu file chơng trình và biên dịch.
- Soạn một chơng trình, hỏi các lỗi cú
pháp trong chơng trình, gọi học sinh dịch
lỗi và sửa.
Program vd1
Write(‘Nhap mot so nguyen duong);
readln(x);
y:=sqrt(x);
write(y);
End.
- Hỏi : Nhóm phím dùng để thực hiện
chơng trình?
- Dành 6 vị trí trên màn hình để viết số x,
6 vị trí tiếp để viết số y và 6 vị trí tiếp để
viết số z.
- Khi các tham số có kiểu kí tự, việc quy
định vị trí giống kiểu nguyên.
- Khi các tham số có kiểu thực thì phải
quy định hai loại vị trí : Vị trí cho tồn bộ
số thực và vị trí cho phần thập phân.
- VÝ dô : Write(c:8);
Write(r:8:3);
1. Tham khảo sách giáo khoa và trả lời .
Turbo.exe
Turbo.tpl
Graph.tpu
Egavga.bgi và các file *.chr
2. Học sinh quan sát và ghi nhớ.
1. Quan sát và ghi nhớ.
- Lu: F2
- Dịch lỗi: ALT_F9
Quan sỏt v phát hiện lỗi để sửa lỗi cho
ch-ơng trình.
Program vd1;
var x,y:integer;
Begin
Write(‘Nhap mot so nguyen duong);
readln(x);
y:=sqrt(x);
write(y);
End.
CTRL_F9
<b> IV. Đánh giá cuối bài.</b>
1. Nhng ni dung ó học.
- NhËp d÷ liƯu : Read/Readln(<tªn_biÕn_1>,...,<tªn_biÕn_k>);
- Xt d÷ liƯu : write/writeln(<tham_sè_1>,...,<tham_sè_k>);
2. Câu hỏi và bài tập về nhà
- bằng thực hành trên máy:
+ H·y so sánh sự giống nhau và khác nhau giữa Read(); và Readln();
+ T×m hiĨu chức năng của lệnh Readln; Writeln;
- Đọc trớc nội dung bài: Soạn thảo, dịch, thực hiện và hiệu chỉnh chơng trình, sách
giáo khoa, trang 32.
Ngµy 20/ 09/2009
TIÕT 8: ppct
<b>Bài tập</b>
I. Mục đích yêu cầu
1. KiÕn thøc
Học sinh nắm đợc các kiến thức cơ bản đã học nh:
- CÊu trøc một chơng trình
- Cách khai báo hằng, biến,
- Các hàm chuẩn, biểu thức, lệnh gán
Vn dng cỏc kin thc đã học để giải quyết bài toán trong tin học
- Viết các câu lệnh trong Pascal nh:
* Read, Readln, Write, Writeln..
* Câu lệnh gán,
- Rèn luyện kỉ năng viết thuật toán và tạo chơng trình
- Rèn luyện t duy suy ln l«gÝc
3. Thái độ
- Có thái độ nghiêm túc, tự học hỏi
- Tích cực tham gia giải quyết bài tốn
II. Chuẩn bị
- Gi¸o ¸n chi tiÕt
- Một số bài tập từ dễ đến khó để học sinh làm
- Viết một số chơng trình sãn để chiếu lên bảng
III. Hoạt động dạy học
1. ổn định tổ chức
- Sè häc sinh trong líp
- Sè häc sinh v¾ng häc
2. KiĨm tra bài cũ
Lồng vào nội dung bài dạy
3. Tiến trình lªn líp
<b>hớng dẫn của giáo viên</b> <b>Hoạt động của học sinh</b>
<b>Bài1:</b>
Viết biểu thức toán häpc sau díi d¹ng
Pascal:
3
1
1
)
1
(
<i>x</i>
<i>a</i>
<i>z</i>
<i>y</i>
<i>x</i>
<i>z</i>
Yêu cầu học sinh suy nghĩ trong 5 phút và
sau đó lên bảng thực hiện việc huyển đổi?
Gọi một học sinh đứng lên nhận xét
Häc sinh viÕt nh¸p trong 5 phút
Trả lời:
<b>Câu2:</b>
Hóy vit biu thc cho kết quả True khi toạ
độ (x,y) là điểm nằm trong vùng gạch chéo
ở trong hình 2.a và 2.b SGK trang 36.
- Điểm thuộc vào vùng gạch chéo thì có tạo
độ phải nh thế nào?
H·y viÕt biĨu thøc to¸n tng ứng với hình
2.a?
Tơng tự yêu cầu học sinh viết biểu thức
t-ơng ứng với hình 2.b.
<b>Câu3:</b>
Viết chơng trình nhập vào số nguyên dơng
a. HÃy tính và đa ra màn hình diện tích
phần gạch chéo (trong SGK trang 35).
Để tính diƯn tÝch phÇn gạch chéo trong
Tính diên tích hình tròn ta tính nh thế nào?
Để viết chơng trình trên có những biến nào
khai báo nh thế nào?
HÃy viết chơng trình dùng NNLT Pascal?
Yêu cầu một häc sinh kh¸c nhËn xÐt vµ
chØnh sưa nÕu có lỗi.
Giao viờn s dng mỏy chiu chy
ch-ng trình trên cho học sinh để kiểm chứng
và khắc sâu kt qu.
<b>Câu4:</b>
Lập trình tính vận tốc v của vật rơi tự do
HS: Dở SGK quan sát hình và nghiên cứu
Trả lới:
X và y phải thuộc vào vùng gạch chéo
Biểu thøc quan hƯ trong Pascal lµ:
(y<=1) and y>=x and y>=-x
HS nghiên cứu bài ra và xác định bài tốn
TL: Diªn tích phần gạch chéo bằng 1/2
Schéo=
2
1
STròn
TL: SchÐo=
2
1
STrßn= 2
2
1
2
1
<i>r</i>
Trong đó: 3,14; r nhập từ bàn phím
TL: - Dïng 2 biÕn r vµ S
- Khai b¸o:
Var r: Word;
Writeln(‘Hay nhap gia tri a=’,r);
Readln(r);
S:=1/4*3.14*SQRT(r);
Writeln(‘Dien tich’,S:4:1);
Readln
<i>gh</i>
<i>v</i> 2 Trong đó g=9,8; h nhập t bn
phím.
Trình có những biến nào phần khai báo nh
thế nào?
HÃy viết chơng trình trên?
Yờu cu một học sinh khác đứng dậy nhận
xét và chỉnh sửa.
H·y viết lại chơng trình dùng hằng số
g = 9.8.
Giáo viên nhận xét.
HS nghiên cứu và tìm yếu tố của bài toán
TL: - Dùng 2 biến v và h
- Khai b¸o:
Var v, h:Real;
Program cau4;
Var v,h: Real;
Begin
Writeln(‘Hay nhap chiÒu cao h= ‘);
Readln(h);
V:=SQRT(2*9.8*h);
Writeln(‘van toc la: v= , v:4:1);
Readln
End.
Học sinh lên bảng viết
IV. Cũng cố và dặn dò
- Nắm lại cách khai báo và các hàm chuẩn
- V nh nm li thut toỏn ta đã học ở lớp 10 năm trớc
Kiểm tra 15 phút
__________________________________________________________________
Së GD- ĐT Hà Tĩnh Cộng hào xà hội chủ nghĩa Việt Nam
Trờng PTTH Đồng Lộc Độc lập tự do hạnh phúc
<b>Đề KIểM TRA 15 PHúT LầN 1</b>
<b>Họ và tên:...Lớp</b>
<b>I. Phn trc nghim (5 im)</b>
Cõu1: Chn khng nh ỳng
A. Ngôn ngữ lập trình Pascal là ngôn ngữ bậc cao
B. Pascal là ngôn ngữ lập trình mà máy tính trực tiếp hiểu không cần chơng trình
dịch
C. Ngôn ngữ lập trình Pascal có chơng trình dịch sử dụng kỹ thuật thông dịch
D. Ngy nay, Ngơn ngữ lập trình Pascal đợc dùng để lập trình tất cả các chơng trình
Câu2: Ngơn ngữ lập trình có mấy loại?
A. 2 B. 3 C. 4 D. 5
C©u3: Trong Pascal biểu diễn hằng nào dới đây là SAI?
A. 3,14E-13 B. 3.14E13 C. ‘TRUE’ D. True
C©u4: Trong Pascal những tên nào sau đây KHÔNG hợp lệ?
A. Bai_lam B. Bai lam C. bai-lam D. bailam
Câu5: Khai báo nào sau đây không hợp lệ?
A. Proram Vi_du1; B. Const a:=3.14;
C. Uses CRT; D. Var a,b,c:Byte;
1
2
2
3
2
<i>y</i>
<i>x</i>
<i>x</i>
<i>x</i>
C©u1: H·y biĨu diƠn biểu thức toán học sau đây sang dạng biểu thức trong Pascal?
Câu2: Viết Chơng trình nhập vào 2 số nguyên dơng a,b. Tính và in ra màn hình Tổng bình
phơng 2 s ú.
<i><b>(Không sử dụng tài liệu)</b></i>
<b>Đáp án:</b>
I. Trắc nghiệm
Mỗi câu đúng cho 1 điểm
1.A 2.B 3.A 4.B và C 5.B
II. Tự luận
Câu 1: SQRT(QSR(x)+3*x-2)/ABS(SQRT(x+2y-1)) 1,5 điểm
Câu 2:
Nội dung Điểm
Program cau2;
Var a,b: Word;
Begin
Writeln(hay nhap 2 so a,b’);
Readln(a,b);
Writeln(‘Tong binh phuong la:’,SQR(a)+SQR(b));
Readln
End.
0,25
1
1
1
Ngµy 24 /09/2009
<b>TIÕT 9: ppct</b>
Bµi thùc hµnh sè 1
I. Mơc tiªu
1. KiÕn thøc
- Biết đợc một chơng trình Pascal hồn chỉnh.
- Làm quen với các dịch vụ chủ yếu của Turbo Pascal trong việc soạn thảo, lu chơng
trình, dịch chơng trình và thực hiện chơng trình.
- Học sinh biết đợc một chơng trình hồn chỉnh.
- Biết soạn một chơng trình.
- Biết lu, biết dịch, thực hiện chơng trình.
- Biết tìm lỗi và sửa lỗi
2. kĩ năng
- Son c chng trình, lu lên đĩa, dịch lỗi cú pháp, thực hiện và tìm lỗi thuật tốn và
hiệu chỉnh
- Bớc đầu biết phân tích và hồn thành một chơng trình đơn giản trên Turbo pascal.
- Tự giác, tích cực và chủ động trong thực hành.
II. Đồ dùng dy hc
1. Chuẩn bị của giáo viên.
- Phịng máy vi tính đã đợc cài đầy đủ Turbo Pascal, máy chiếu projector để hớng dẫn.
2. Chuẩn bị của học sinh
1. ổn định tổ chức lớp
- Tæng sè häc sinh trong líp
- Sè häc sinh v¾ng
- Trang phơc
2. KiĨm tra thiÕt bÞ
- Kiểm tra thiết bị máy tính
- Khởi động máy tính
3. Các bớc tiến hành:
<b>hớng dẫn của giáo viên</b> <b>Hoạt động của học sinh</b>
- Cho chơng trình sau:
Program giai_pt;
Uses CRT;
var a,b,c,d,x1,x2:read;
Begin
clrscr;
write(‘nhap a b c’);
Readln(a,b,c);
d:=b*b - 4*a*c;
x1:=(-b - sqrt(d))/(2*a);
x2:=(-b + sqrt(d))/(2*a);
writeln(x1=,x1:6:2,x2=,x2:6:2,);
Readln;
End.
Giáo viên hớng dẫn học sinh gõ
1. Chiếu chơng trình lên bảng. Yêu cầu
học sinh thực hiện các nhiệm vụ:
- Soạn chơng trình vào máy.
- Lu chơng trình.
- dịch lỗi cú pháp.
- Thực hiện chơng trình.
- NhËp d÷ liƯu 1 -3 2. Thông báo
kết quả.
- Trở về màn hình soạn thảo.
- Thực hiện chơng trình.
- Nhập dữ liệu 1 0 2. Thông báo kết quả.
- Hỏi: Vì sao có lỗi xuất hiện?
-Sửa lại chơng trình không dùng biến d.
Học sinh gõ chơng trình giải phơng trình
bậc II. Trên vào máy tính
Học sinh gõ chơng trình
1. Quan sát bảng, độc lập soạn chơng
trình vào máy.
F2
Alt_F9
Ctrl_F9
x1=1.00 x2=2.00
Enter
Ctrl_F9
Thông báo lỗi
Do căn bậc hai cảu một số âm
Readln(a, b, c);
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,);
IV. Đánh giá cuối bài.
<b> 1. Nhng ni dung đã học</b>
- Các bớc để hồn thành một chơng trình:
+ Phân tích bài tốn để xác định dữ liệu và, dữ liệu ra.
+ Xác đinh thuật toán.
+ Biên dịch chơng trình.
+ Thực hiện và hiệu chỉnh chơng trình.
2. Câu hỏi và bài tập về nhà
- Viết chơng trình nhập vào độ dài ba cạnh của một tam giác và tính chu vi, diện tích của
tam giác đó.
- Cho chơng trình sau:
Program bt1;
Var r,s1,s2,s:real;
Begin
write(‘nhap r’);
readln(r);
s1:=4*r*r;
s2:= r*r*pi;
Hỏi : chơng trình thực hiện công việc gì, kết quả in ra màn hình là bao nhiêu?
- Làm bài tập 7, 8, 9, 10, trang 36.
+ Soạn chơng trình.
+ Dịch lỗi và thực hiện.
+ Nhập dữ liệu và kiểm tra kết quả.
- Đọc trớc nội dung bài: Cấu trúc rẽ nh¸nh, s¸ch gi¸o khoa, trang 38.
- Xem phụ lục B, sách giáo khoa, trang 122: Môi trêng Turbo Pascal.
<b> Ngµy 28/ 09/ 2009</b>
<b>TIếT10: ppct</b>
Bài thực hành số 1(<sub>tt</sub>)
I. Mục tiêu
1. KiÕn thøc
- Học sinh soạn đợc chơng trình và lu chơng trình vào đĩa. Biên dịch và thực hiện đợc
chơng trình. Nhập đợc dữ liệu và kiểm định kết quả của chơng trình.
- Lµm quen víi các dịch vụ chủ yếu của Turbo Pascal trong việc soạn thảo, lu chơng
trình, dịch chơng trình và thực hiện chơng trình.
- Biết soạn một chơng trình.
- Biết lu, biết dịch, thực hiện chơng trình.
- Biết tìm lỗi và sửa lỗi
2. kĩ năng
- Soạn đợc chơng trình, lu lên đĩa, dịch lỗi cú pháp, thực hiện và tìm lỗi thuật tốn và
hiệu chỉnh
- Bớc đầu biết phân tích và hồn thành một chơng trình đơn giản trên Turbo pascal.
<b> 3. Thái độ</b>
- Tự giác, tích cực và chủ động trong thực hành.
II. Đồ dùng dạy học
1. ChuÈn bÞ của giáo viên.
- Phũng mỏy vi tính đã đợc cài đầy đủ Turbo Pascal, máy chiếu projector để hớng dẫn.
2. Chuẩn bị của học sinh
- Sách giáo khoa, sách bài tập và bài tập đã viết ở nhà.
<b>III. Hoạt động dạy học</b>
- Tæng sè häc sinh trong líp
- Sè häc sinh v¾ng
- Trang phơc
2. KiĨm tra thiÕt bÞ
- Kiểm tra thiết bị máy tính
- Khởi động máy tính
3. Các bớc tiến hành:
<b>hớng dẫn của giáo viên</b> <b>Hoạt động của học sinh</b>
<b>Néi dung thùc hµnh</b>
Program bt1;
Var r,s1,s2,s:real;
Begin
write(‘nhap r’);
readln(r);
s1:=4*r*r;
s2:= r*r*pi;
s:=s1 – s2;
write(s:6:2);
readln;
End.
1. Định hớng để học sinh phân tích bi
toỏn.
- Dữ liệu vào:
- D÷ liƯu ra:
- C¸ch tÝnh:
2. Yêu cầu học sinh soạn chơng trình và
- Quan s¸t híng dÉn tõng häc sinh trong
lóc thùc hành.
3. Yêu cầu học sinh nhập dữ liệu và
thông báo kết quả.
a=3
a=-3
Học sinh gõ chơng trình trên vào máy
Và theo sự hớng dẫn của giáo viên
1. Phân tóch theo yêu cầu của giáo viên.
- Dữ liệu vào a
- D÷ liƯu ra s
TÝnh diện tích hình tròn có bk a (s1)
Tính diện tích hình vuông cạnh <i><sub>a</sub></i> <sub>2</sub>
s:=sl-s2;
2. Thực hiện các yêu cầu của giáo viên.
- Soạn thảo chơng trình.
- Bm phớm F2, gõ tên file để lu.
- Bấm phím ALT_F9 để dịch lỗi cú
pháp.
- Bấm phím CTRL_F9 để thực hiện
ch-ơng trình.
- thông báo kết quả cho giáo viên.
3. Nhập dữ liệu theo yêu cầu.
- Với a=3, ta đợc:s=9(Pi-2)=10.26
- Với a=-3, kết quả không đúng, vì độ
dài cạnh phải là một số dơng.
IV. Đánh giá cuối bài.
<b> 1. Những nội dung đã học</b>
- Các bớc để hoàn thành một chơng trình:
+ Phân tích bài tốn để xác định dữ liệu và, dữ liệu ra.
+ Xác đinh thuật tốn.
+ So¹n chơng tình vào máy.
+ Lu giữ chơng trình.
+ Thực hiện và hiệu chỉnh chơng trình.
2. Câu hỏi và bài tập về nhà
- Lµm bµi tËp 7, 8, 9, 10, trang 36.
+ Soạn chơng trình.
+ Dịch lỗi và thùc hiƯn.
+ NhËp d÷ liệu và kiểm tra kết quả.
- Đọc trớc nội dung bài: Cấu trúc rẽ nhánh, sách gi¸o khoa, trang 38.
- Xem phơ lục B, sách giáo khoa, trang 122: Môi trờng Turbo Pascal.
<b><sub>Ngµy 02 / 10 /2009</sub></b>
<b>TIếT 11: ppct</b>
Chơng 3: Tổ chức rẽ nhánh và lặp
<b>Bài 9: Cấu trúc rẽ nhánh</b>
<b>I. Mục tiêu</b>
1. KiÕn thøc.
- Học sinh biết đợc ý ngiã của cấu trúc rẽ nhánh.
- Học sinh biết đợc cấu trúc chung của cấu trúc rẽ nhánh.
- Biết cách sử dụng đúng hai dạng cấu trúc rẽ nhánh trong lập trình: dạng thiếu v dng
.
2. Kĩ năng.
- Bớc đầu sử dụng đợc cấu trúc rẽ nhánh If ... then ... else ... trong ngôn ngữ lập trình
Pascal để viết chơng trình giải quyết c mt s bi toỏn n gin.
<b>II. Đồ dùng dạy học.</b>
1. Chuẩn bị của giáo viên.
- M¸y vi tÝnh, m¸y chiÕu Overhead, m¸y chiÕu Projector, bìa trong, bút dạ, chơng trình
mẫu giải phơng tr×nh bËc hai ax2<sub> + bx + c = 0.</sub>
2. Chn bÞ cđa häc sinh.
- S¸hc gi¸o khoa.
<b>III. Hoạt động dạy - học .</b>
1. ổn định tổ chức
- Sè HS trong líp
- Số Hs vắng
2. Kiểm tra bài cũ
(Lồng vào bài học)
3. Néi dung bµi míi
<b>hớng dẫn của giáo viên</b> <b>Hoạt động ca hc sinh</b>
<i><b>1. Rẽ nhánh </b></i>
*Nêu ví dơ thùc tiƠn minh häa cho tỉ
chøc rÏ nh¸nh:
Chiều mai nếu trời không ma An sẽ đi
xem đá bóng, nếu trời ma thì An sẽ xem
ti vi nh.
- Yêu cầu học sinh tìm thêm một số ví
dụ tơng tự.
- Yêu cầu học sinh đa ra cấu trúc
chung của các diễn đạt đó.
- Yêu cầu học sinh lấy một ví dơ cã
- Nếu đội tuyển bóng đá Việt Nam thắng
đội Indonesia thì sẽ đợc đá tiếp tranh huy
chơng vàng với Thái Lan, nếu khơng thắng
Indonesia thì Việt Nam sẽ tranh huy chơng
đồng với Mianmar.
- Nếu ... thì ... nếu không ... thì ...
- Nếu làm xong bài tập sớm An sẽ sang
nhà Ngọc chơi.
cấu trúc chung dạng khuyết và đa ra cấu
trúc chung đó.
* Nếu các bớc để kết luận nghiệm của
phơng trình bậc hai ax2<sub> +bx+c = 0.</sub>
- Chia nhóm lớp thành 3 nhóm và yếu
cầu vẽ sơ đồ thực hiện của các bớc trên
bìa trong.
- Chọn hai bài để chiếu lên bảng, gọi
học sinh thuộc nhóm khác nhận xét đánh
giá kết quả và bổ sung.
* Tiểu kết cho hoạt động này bằng cách
bổ sung và chính xác bài tập ca hc
sinh.
<i><b>2. Câu lệnh IF-THEN</b></i>
<i><b>a. Dạng thiếu</b></i>
<i>Nêu cú pháp câu lệnh IF-THEN dạng</i>
<i>thiếu?</i>
<i>Những biĨu thøc nµo có thể làm điều</i>
<i>kiên?</i>
<i>HÃy nêu sự thực hiện của máy?</i>
<i><b>b. Dng y </b></i>
<i>Nờu cú pháp câu lệnh IF-THEN dạng</i>
<i>đầy đủ?</i>
<i>Nh÷ng biĨu thøc nµo cã thể làm điều</i>
<i>kiên?</i>
<i>HÃy nêu sù thùc hiƯn cđa m¸y?</i>
Nếu trờng hợp câu lệnh có nhiều lệnh thì
ta phải ghép các câu lệnh đó lại
<i><b>3. Câu lệnh gép</b></i>
<i>Em hÃy nêu cấu trúc của câu lệnh ghÐp?</i>
- Theo dâi vµ thc hiƯn yªu cầu của giáo
viên và trả lời:
+ TÝnh delta.
+ NÕu delta<0 thì kết luận phơng trình vô
nghiệm.
+ Nếu delta>=0 thì kết luận phơng trình
có nghiệm:
x = (-b+sqrt(delta))/(2a)
x = (-b - sqrt(delta))/(2a)
- Thực hiện vẽ sơ đồ (giống nh phần nội
dung)
- Nhận xét, đánh giá và bổ sung những
thiếu sót của nhóm khác.
- Quan sát hình vẽ của các nhóm khác và
của giáo viên để ghi nhớ
TL:
D¹ng thiÕu:
CÊu trúc: IF<điều kiện> then <lệnh>;
Điều kiện: là một biểu thức quan hệ hoặc
biểu thức logic.
Lệnh: là một lệnh nào đó của Pascal.
Sự thực hiện của máy:
+ Tính giá trị của <điều kiện>
+ Nếu <điều kiện> có giá trị
đúng thì thực hiện <lệnh>
Dạng đủ:
Cấu trúc:
If <®iỊukiƯn> then <lƯnh 1> else <lƯnh 2>;
- Điều kiện: là một biểu thức quan hệ hoặc
biÓu thøc logic.
- Lệnh 1, lệnh 2: Là một lệnh nào đó của
Pascal.
- Sù thùc hiƯn cđa m¸y:
+ Tính giá trị của <®iỊu kiƯn>
+ Nếu <điều kiện> có giá trị đúng thì
thực hiện <lệnh 1>, ngợc lại thì thực hiện
<lệnh 2>
CÊu tróc c©u lƯnh ghÐp:
VÝ dô:
Begin
X1:= (-b-SQRT(denta))/2*a;
<i> X1:= (-b+SQRT(denta))/2*a;</i>
End;
<i><b>4. Mét sè vÝ dơ </b></i>
ViÕt ch¬ng trình giải phơng trình bậcII có
dạng: Ax2<sub>+Bx+c=0</sub>
<i>Tìm Input và Output?</i>
Tìm nghiệm của phơng trình bậc hai.
<i> - Hãy nêu các bớc chính để trả lời</i>
<i>nghiệm của phơng trình bậc hai?</i>
<i> - Trong bài toán này ta cần bao nhiêu </i>
<i>lệnh rẽ nhánh. Dạng nào?</i>
- Tổ chức lớp thành 3 nhóm, yêu cầu
học sinh viết chơng trình hoàn thiện lên
bìa trong.
- Thu phiếu trả lời, chiếu lên bảng, gọi
học sinh nhóm khác nhận xét đánh giá.
- Chuẩn hóa lại chơng trình cho cả lớp
bằng chơng trình mẫu giáo viên.
b»ng END;
Cã d¹ng nh sau:
Begin
< các câu lệnh>;
End;
Input: A,B,C: Nguyên
Output: X thoả mÃn phơng trình
+ Tính delta.
+ Nếu delta<0 thì kết luận phơng trình
vô nghiệm.
+ Nếu delta>=0 thì kết luận phơng tr×nh
cã nghiƯm:
x = (-b+sqrt(delta))/(2a)
x = (-b - sqrt(delta))/(2a)
- Có thể sử dụng hai lệnh rẽ nhánh dạng
khuyết, cũng có thể sử dụng một lệnh dạng
đủ.
- Thảo luận và viết chơng trình lên bìa
trong.
- Thông báo kết quả viết đợc.
- Nhận xét, đánh giá và bổ sung những
thiếu sót của các nhóm khác.
- Ghi chép nội dung chơng trình đúng l
giỏo viờn ó kt lun.
IV. Đánh giá cuối bài.
1. Cũng cố: Những nội dung đã học
- Sự thực hiện của máy khi gặp cấu trúc rẽ nhánh IF.
- Sơ đồ thực hiện của cấu trúc rẽ nhánh IF.
2. Dặn dò: Câu hỏi và bài tập về nhà.
- Trả lời câu hỏi 1, 2, 4, S¸ch gi¸o khoa, trang 50.
- Viết chơng trình nhập vào hai số bất kì và in ra màn hình giá trị lớn nhất của hai số.
- Viết chơng trình giải phơng trình ax4<sub> + bx</sub>2<sub> + c = o.</sub>
- Xem trớc nội dung bài: Cấu trúc lặp, sách giáo khoa, trang 42.
- Xem néi dung phô lơc B, s¸ch gi¸o khoa trang 131: LƯnh rÏ nh¸nh và lặp.
- Xem nội dung phụ lục C, sách giáo khoa trang 139: Lệnh rẽ nhánh và lặp .
<b>Ngày 06/ 10 /2009</b>
<b>TIếT 12: ppct</b>
Chơng 3: Tổ chức rẽ nhánh và lặp
<b>Bài 10: Cấu trúc lặp (T1)</b>
<b>I. Mơc tiªu</b>
<b> 1. KiÕn thøc</b>
- Biết đợc ý nghĩa của cấu trúc lp.
<b> 2. kĩ năng</b>
- Bớc đầu sử dụng đợc lệnh lặp For để lập trình giải quyết đợc một số bài toán đơn giản.
<b>II. Đồ dùng dạy học.</b>
<b> 1. Chuẩn bị của giáo viên.</b>
- Máy vi tính, máy chiếu Overhead, bìa trong, bút dạ, máy chiếu Projector, sách giáo
khoa, sách giáo viên.
<b> 2. Chn bÞ cđa häc sinh.</b>
- S¸ch gi¸o khoa.
<b>III. hoạt động dạy - học .</b>
1. ổn định tổ chức
- Sè HS trong líp
- Số Hs vắng
2. Kiểm tra bài cũ
Hóy nờu cỳ phỏp và cách thức hoạt động của câu lệnh rẽ nhánh dạng khuyết thiếu và
dạng đầy đủ?
Sử dụng câu lệnh rẽ nhánh để viết chơng trình giải phơng có dạng Ax+B=0
3. Nội dung bài mới
<b>hớng dẫn của giáo viên</b> <b>Hoạt ng ca hc sinh</b>
<i><b>1. Lặp</b></i>
Bài toán 1: Viết chơng trình tính tổng
100
1
...
2
1
1
1
1
<i>a</i>
<i>a</i>
<i>a</i>
<i>a</i>
<i>S</i>
<i>Với a nguyên và >2</i>
* Nu bi toỏn đặt vấn đề
- Hãy xác định cơng thức tốn học để
tính tổng?
- Gợi ý phơng pháp: Ta xem S nh là một
cái thùng, các số hạng nh là những cái ca
có dung tích khác nhau, khi đó việc tính
tổng trên tơng tự việc đổ các ca nớc vào
trong thùng S.
- Có bao nhiêu lần đổ nớc vào thùng?
- Mỗi lần đổ một lợng là bao nhiêu?
Lần thứ i đổ bao nhiêu?
- Ph¶i viÕt bao nhiªu lƯnh?
Đây là lặp 100 lần=> Lặp với số lần xác
định trớc.
Bài tốn 2: Một ngời có số tiền là S, ông
ta gửi tiền tiết kiệm ngân hàng với lãi suất
1,5%/tháng. Hỏi sau bao nhiêu tháng gửi
tiết kiệm thì ông ta đợc số tiền là K
* Nêu bài toán đặt vấn đề.
- Em hiÓu nh thế nào về cách tính tiền
gửi tiết kiệm trong bài to¸n 2.
- Từ đó, hãy lập cơng thức tính tiền thu
đ-ợc sau tháng thứ nhất.
- Ta phải thực hiện tính bao nhiêu lần nh
vậy?
Chú ý quan sát bài toán đặt vấn đề.
- Rất khó xác định đợc cơng thức.
- Theo dâi gỵi ý.
- Phải thực hiện 100 lần đổ nớc.
- Mỗi lần đổ
<i>i</i>
<i>a</i>
1
Phải viết 100 lệnh.
* Chú ý quan sát và trả lời các câu hỏi.
- Với số tiền S, sau mỗi tháng sẽ có tiền lÃi lµ
0,015*S.
- Số tiền này đợc cộng vào tổng số tiền ban
đầu để tính lãi cho tháng tiếp theo.
S: = S + 0,015*S;
- Công việc nào lặp lại?
<b>=> Lp vi s ln cha xỏc nh</b>
<i><b>2.Lăpk với số lần biết tr</b><b> ớc và câu lệnh</b></i>
<i><b>For-Do</b></i>
<i><b>a. Câu lệnh FOR - DO</b></i>
* Yêu cầu học sinh nghiên cứu sách giáo
khoa và cho biết cấu tróc chung cđa For?
- Gi¶i thÝch:
< Biến đếm>: Là biến kiểu nguyên, kí tự.
- Hỏi : ý nghĩa của <Giá trị đầu> <Giá
trị cuối>, Kiểu dữ liệu của chúng.
- Hỏi: Trong bài toán tính tổng <Giá trị
đầu> <Giá trị cuối> là bao nhiêu?
- Dẫn dắt : Những lệnh nào cần lặp lại
ta đặt sau Do.
- Hỏi : Khi nhiều lệnh khác nhau cần
lặp lại ta viÕt nh thÕ nµo?
- Hỏi : Trong bài toán gửi tiết kiệm,
lệnh nào cần lặp lại?
- Hỏi : Trong bài toán tính tổng, lệnh
nào cần lặp lại?
- Hỏi : Em có nhận xét gì về giá trị của
<Giá trị đầu> <Giá trÞ cuèi> ?
- Dẫn dắt: Khi đó lệnh For đợc gọi là
For tiến. Ngơn ngỡ lập trình Pascal cịn có
một dạng For khác gi l For lựi.
* Yêu cầu: HÃy trình bày cấu tróc chung
cđa For lïi.
- Hái : So sánh <Giá trị đầu> <Giá trị
cuối> ?
- Hái : Trong hai bài toán trên, dạng
lệnh For nào là phù hợp?
<i><b>b. Ví dơ vỊ c©u lƯnh For - do</b></i>
VÝ dơ 1: Viết chơng trình tính tổng
S = 1/a+ 1/a+1 + 1/a+2 + ....+ 1/a+100
- Yêu cầu học sinh tiếp tục hoàn thành
chơng trình ở nhà.
2. Nờu ni dung bi tốn2, mục tiêu là
viết đợc chơng trìn hồn thiện.
- Định hớng những vấn đề chính.
- Chia lớp thành 3 nhóm. Yêu cầu học
sinh viết chơng trình lên giấy bìa trong.
- Thu phiếu học tập, chiếu lên bảng, gọi
học sinh nhóm khác nhận xét và đánh giá.
- S: = S + 0,015*S;Cho đến khi S>=K
- Tập trung theo dõi giáo viên trình bày.
* Đọc sách giáo khoa và trở lời
For <Biến đếm>:=<giá trị đầu> To <Giá trị
cuối> Do <lệnh cần lặp>;
- Dùng để làm giới hạn cho biến đếm.
- Cùng kiểu với <Biến đếm>
<Gi¸ trị đầu> là 1; <Giá trị cuối> là 100.
- Ph¶i sư sơng cÊu tróc lƯnh ghÐp .
S : = S + 0,015*S;
S:=S+
<i>i</i>
<i>a</i>
1
;
<Giá trị đầu> Nhỏ hơn hoặc bằng
<Giá trị cuèi>
* Nghiên cứu sách giáo khoa, suy nghĩ, so
sánh với cấu trúc của For tiến để trả lời.
For <biến đếm>:=<giá tr cui>
Downto <giá trị đầu> Do <lệnh cần lặp>;
<Giá trị đầu> <Giá trị cuối>
- Sử dụng dạng For tiến là phù hợp .
* Chú ý lắng nghe và trả lời các yêu cầu của
giáo viên.
- Giá trị đầu là 1, Giá trị cuối là 100.
S:=S+
<i>i</i>
<i>a</i>
1
;
* Chó ý lắng nghe nội dung và yêu cầu.
HS:
- Chính xác hóa bài làm của học sinh
bằng chơng trình mẫu.
Yêu cầu học sinh về nhà viết chơng trình
trong ví dụ 2
Readln(a);
S:=0;
For i:=1 to 100 do S:=S+1/(i+a);
Writeln(‘Tong la: S= ‘,S:6:2);
End.
<b> IV. Đánh giá cuối bài.</b>
- Cấu trúc chung của lệnh lặp For. Sơ đồ thực hiện của lệnh của lậnh lặp For.
<b> 2. Câu hỏi và bài tập về nhà.</b>
- Giải bài tập 5.a, 6, sách giáo khoa, trang 51.
- Xem trớc phần nội dung của cấu trúc lặp có số lần cha xác định While ...
- Xem nội dung phụ lục B, sách giáo khoa trang 131 : Lệnh rẽ nhánh và lặp.
- Xem nội dung phụ lục C, sách giáo khoa trang 139 : Lệnh rẽ nhánh và lặp.
<b> Ngµy 10 / 10 /2009</b>
<b>TIếT 13: ppct</b>
Chơng 3: Tổ chức rẽ nhánh và lặp
<b>Bài 10: Cấu trúc lặp (T2)</b>
I. Mục tiêu .
1. KiÕn thøc.
- Biết đợc ý nghĩa của cấu trúc lặp có số lần lặp cha xác định.
- Biết đợc cấu trúc chung của lệnh lặp While trong ngôn ngữ Pascal.
- Biết đợc sự thực hiện của máy khi gặp lệnh lặp While.
2. Kí năng.
- Phõn bit c s giống và khác nhau giữa cấu trúc lặp For và While.
- Sử dụng đúng lệnh lặp While trong lập trình.
- Bớc đầu biết lựa chọn đúng dạng lệnh lặp để lập trình giải quyết đợc một số bài tốn
đơn giản.
<b>II . Đồ dùng dạy học</b>
1. Chuẩn bị của giáo viên.
- Máy vi tính, máy chiếu Overhead, Projector, sách giáo khoa, sách giáo viên.
2. Chn bÞ cđa häc sinh
- S¸ch gi¸o khoa.
<b>III. Hoạt động dạy - học</b>
1. ổn định tổ chức
- Sè HS trong líp
- Sè Hs v¾ng
2. KiĨm tra bµi cị
Hãy nêu cú pháp và cách thức hoạt động của câu lệnh For do dạng tiến và lùi?
3. Nội dung bài mới
<b>hớng dẫn của giáo viên</b> <b>Hoạt động của học sinh</b>
<b>3. LỈp víi sè lÇn ch a biÕt tr íc vµ câu</b>
<b>lệnh While-Do</b>
<b> a. Xét bài toán</b>
* Bi toỏn 1: Viết chơng trình tính tổng:
S = 1/a + 1/a+1 + 1/a+2 + ... + 1/a+N
+ ... cho đến khi 1/a+N <0,0001.
- Hỏi : Sự khác nhau của bài toán nµy
* Chú ý lắng nghe, quan sát và suy nghĩ
để trả lời.
với bài toán đã viết ở tiết trớc?
- Hỏi : Lặp lại bao nhiêu lần?
- Hỏi : Lặp đến khi nào?
* Bìa tốn 2: Một ngời có số tiền là S
đồng, ông ta gửi tiét kiệm ngân hàng với số
lãi suất 1,5% tháng. Hỏi sau bao nhiêu
tháng ngời đó có số tiền lớn hơn S1 đồng?
- Hỏi : Sự khác nhau trong bài toán này
với bài toán đã giải trong tiết trớc?
- Hỏi: Số lần lặp của lệnh?
- Hỏi : Lặp đến khi nào?
* Tiểu kết vấn đề: Qua hai ví dụ ta thấy có
một dạng bài tốn có sự lặp lại của một số
lệnh nhng khơng biết trớc số lần lặp. Cần
<i><b>b. C©u lƯnh While-Do</b></i>
* Yêu cầu học sinh nghiên cứu sách giáo
khoa và cho biết cấu trúc chung của lệnh
lặp While?
- Gi¶i thÝch:
+ <Điều kiện>: Là biểu thcứ quan hệ
hoặc biểu thức logic, là điều kiện để lặp lại.
- Hỏi : Trong bài tốn 1: Điều kiện để
lặp lại là gì?
- Hỏi : Trong bài toán 2: Điều kiện để
lặp lại là gì?
+ <Lệnh cần lặp>: Là các lệnh cần phải
lặp lại.
- Hái : Trong hai bài toán trên lệnh cần
lặp là gì?
- Hỏi: Một sự khác nhau trong lệnh cần
lặp của For và While là gì?
- Dựa vào cấu trúc chung, hÃy cho biết
* Yêu cầu học sinh vẽ sơ đồ cấu trúc lên
bảng.
- Gọi học sinh đánh giá nhận xét.
-Bài này: Cho giới hạn S.
- Cha xác định ngay đợc.
- Đến khi điều kiện
1/a+N < 0,0001 đợc thỏa mãn.
* Chó ý lắng nghe, quan sát và suy nghĩ
trả lời.
- Bài trớc : Biết số tháng, hỏi số tiền.
- Bài này: Biết số tiền, hỏi số tháng.
- Cha biết trớc, đó chính là số tháng cần
tìm.
- Đến khi số tiền thu đợc > S1 đồng.
* Theo dõi và ghi nhớ kết luận của giáo
viên.
* Tham kh¶o sách giáo khoa và trả lời.
- Cấu trúc chung
While <điều kiên> Do <lệnh cần lặp>;
1/a+M >0,0001
S < S1
S:= S + 0,015*S để tính số tiền.
t:= t + 1; để tính số tháng.
S := S + 1/(a + i) để tính tổng.
i := i + 1; để tăng tỉ số.
- While phải có lệnh tăng biến chỉ số.
- Quan sát, suy nghĩ và trả lêi:
+ tÝnh biĨu thøc ®iỊu kiƯn trớc.
+ Thực hiện lệnh cần lặp sau.
* Lên bảng vẽ sơ đồ cấu trúc của lệnh
While.
- Tổng kết vấn đề bằng cách treo sơ đồ
mẫu và giải thích.
<i><b>c. Ví dụ </b></i>
1. Nêu nội dung bài toán 1. Mục tiêu là
viết chơng trình hoàn thiện.
- Định hớng các vấn đề chính.
+ Xác định điều kiện để tiếp tục lặp.
+ Xác định các lệnh cần lặp.
- Chia ra làm 3 nhóm. u cầu học sinh
viết chơng trình hồn thiện lên bìa trong.
- Gọi học sinh nhóm khác nhận xét và
đánh giá.
- Chính xác hóa chơng trình cho cả lớp.
2. Nêu nội dung của bài toán 2. Mục tiêu
là phân tích để xác định <điều kiện> và
<lệnh cần lặp>.
- LÊy mét vÝ dơ cơ thĨ khi t×m íc sè
chung cđa hai sè 15 vµ 25.
m n
15 25
15 10
5 10
5 5
Trả lời: 5 là ớc số chung lớn nhất.
- Yêu cầu học sinh viết chơng trình hoàn
thiện bài toán ở nhà.
- Yêu cầu học sinh chỉ ra hai câu hỏi cần
đặt ra khi gặp bài toán dạng này.
- Hs nghiên cứu và ghi nhớ
1. Chú ý lắng nghe và suy nghĩ trả lời
các câu hỏi định hớng của giáo viên.
- Điều kiện: S < S1
S:= S + 0,015*S để tính số tiền.
t:= t + 1; để tính số tháng.
- Tập trung làm việc theo nhóm để viết
đợc chơng trình hồn thiện.
- Đánh giá đúng - sai và bổ sung.
- Ghi nhí nh÷ng phần giáo viên sửu
chữa.
2. Tập trung theo dõi để thấy đợc những
công việc cần thực hiện.
- §iỊu kiƯn : m<> n
- Lạnh cần lặp: m:=m-n; hoặc n:=n-m;
- Thuật toán:
B1: NÕu m=n th× UC=m, dõng.
B2: NÕu m>n thì m:=m-n ngợc l¹i
n:=n-m; Quay l¹i B1.
- SuynghÜ và trả lời:
+ iu kin no để lặp lại?
+ Những lệnh nào cần lặp lại?
<b> IV. Đánh giá cuối bài.</b>
1. Những nội dung đã học
- ý nghĩa của cấu trúc lặp có số lần cha xác định.
- Cấu trúc chung của lệnh lặp While trong ngôn ngữ Pascal.
- Sơ đồ thực hiện của lệnh lặp While.
- Sự thực hiện của máy khi gặp lệnh lặp While.
2. Câu hỏi và bài tập về nhà.
- Giải bài tập 4, 5b, 7, 8, s¸ch gi¸o khoa trang 51.
- Viết chơng trình tính tổng:
S = 1/a + 1/a+1 + 1/a+2 + ... + 1/a+N + ... cho đến khi 1/a+N <0,0001.
- Xem nội dung bài thực hành số 2, sách giáo khoa trang 49.
<b> Ngµy 14 / 10 /2009</b>
<b>TIÕT 14: ppct</b>
<b>I. Mơc tiªu.</b>
1. KiÕn thøc.
- Củng cố lại cho học sinh những kiến thức liên quan đén tổ chức lặp : Cấu trúc lặp, sơ
đồ thực hiện, sự thực hiện của máy khi gặp lệnh lặp.
2. Kĩ năng.
- Rốn luyn k năng vận dụng và linh hoạt trong công việc lựa chọn cấu trúc lặp phù hợp
để giải quyết bài toán đặt ra.
3. Thái độ.
- Tự giác tích cực, chủ động trong giải quyết các bài tập.
<b> II. Đồ dùng dạy học.</b>
1. Chuẩn bị của giáo viên.
- Mỏy chiếu Projector, máy vi tính để giới thiệu ví dụ minh họa, một số chơng trình
mẫu.
2. Chuẩn bị của học sinh
- Sách gi¸o khoa.
<b> III. Hoạt động dạy - học.</b>
1. ổn định tổ chức
- Sè HS trong líp
- Sè Hs v¾ng
2. Kiểm tra bài cũ
Lồng vào bài dạy
3. Nội dung bài míi
<b>hớng dẫn của giáo viên</b> <b>Hoạt động của học sinh</b>
<i><b>Bµi toán 1</b></i>
Lập trình tính tổng
50
1 1
<i>n</i> <i>n</i>
<i>n</i>
<i>y</i>
- Yêu cầu hs xác định bài toỏn?
- Bài toán này cần dùng những biến nào?
- Cách tính y nh thế nào?
- Công việc tính nh vậy lặp lại bao nhiêu
lần?
- Đối với bài toán này ta dùng câu lệnh For
hay câu lệnh While?
Yêu cầu học sinh lấy giấy nháp viết chơng
trình hoàn chỉnh.
Hs quan sát bài toán và nghiên cứu cách
giải
- Input: n
- Output: Tổng y
- Ta cần dùng 2 biến đó là: i và y
i: lu biến điếm, y: lu tổng tính đợc
- Tớnh y bng cỏch y:= y+
1
<i>i</i>
<i>i</i>
- Lặp lại 50 lần
- Ta nên dùng câu lệnh For Do.
HS: Chơng trình
Program tinh_tong;
Var i: integer;
Y: real;
Begin
Y:=0;
For i:=1 to 50 Do
Y:= y+
1
<i>i</i>
<i>i</i>
Yêu cầu học sinh khác lên nhận xét và
chỉnh lại nÕu cã sai sãt
<i>- Nếu bài toán này sử dụng cõu lnh While</i>
<i> tớnh cú c khụng?</i>
<i>-HÃy viết câu lệnh?</i>
Yêu cầu hs khác nhận xét
<i><b>Bài toán 2.</b></i>
Viết chơng trình tính giá trị của tổng X(N)
= 13<sub> + 3</sub>3<sub> + 5</sub>3<sub> + ...+ (2N + 1)</sub>3<sub>, với N lần</sub>
lợt 0, 1, 2, 3, ,... , chừng nào X(N) còn
nhỏ hơn 2 x 109<sub>. Đa ra các giá trị X(N) ra</sub>
màn hình.
* Tìm hiểu bài tập 1 và giải quyết.
- Hãy cho biết N nhận giá trị trong đoạn
nào? Xác định đợc cha?
- Hái: Dïng cÊu tróc ®iỊu khiĨn nào là
thích hợp?
- Đối với bài toán này thì điều kiện dừng là
gì?
Yêu cầu học sinh viÕt ch¬ng trình hoàn
chỉnh?
Yêu cầu học sinh khác nhận xét vµ cã kiÕn
chÝnh sưa.
Theo em bài tốn trên dùng câu lệnh For
DO có đợc khơng, nếu đợc thì viết thế nào?
<i><b>Bài tốn 3</b></i>
Viết chơng trình nhập vào một số kiểm tra
số đó có phải là số ngun tố khơng, hãy in
Writeln(‘tong la: y= ‘,y:6:2);
Readln
End.
- Ta có thể sử dụng câu lệnh While để
viết
While i>50 Do
Begin
Y:= y+
1
<i>i</i>
<i>i</i>
;
I:= i+1;
End;
* Quan sát và suy nghĩ để giải quyết bài
toán.
- Cha xác định đợc cận cuối.
- Dùng cấu trúc lặp có số lần cha xác
định.
- §iỊu kiƯn dõng X(N) > = 2 x 109
HS:
Program tinh_tong;
Var x,n:word;
Begin
X:=1;
I:=1;
While x < 2E9 Do
begin
x:=x+i*i*i;
i:=i+2;
end;
Writlen(‘Tong la:’, S:6);
End.
Dùng câu lệnh For khụng c vỡ:
ra màn hình?
- Nờu ý tởng để giải bài toán này?
- Đối với bài tốn này thì ta dùng câu lệnh
lặp nào để viết?
Giáo viên gợi ý để học sinh về nhà viết
ch-ơng trỡnh hon chnh
Hs nghiên cứu bài ra
Hs trả lời
i vi bài tốn này thì nên sử dụng câu
lệnh lặp While để viết chơng trình
IV. Đánh giá cuối bài.
1. Nắm lại nội dung đã học.
- Có hai cấu trúc lặp:
+ Lặp For: Số lần lặp đã xác định.
+ Lặp While: Số lần lặp cha xác định.
2. Câu hi v bi tp v nh.
Viết chơng trình hoàn chỉnh kiểm tra số nhập vào có phải là nguyên tố hay không
<b> Ngày 18 / 10 /2009</b>
<b>TIếT 15: ppct</b>
<b>I. Mơc tiªu.</b>
1. KiÕn thøc.
- Củng cố lại cho học sinh những kiến thức liên quan đến tổ chức rẽ nhánh và lặp : Cấu
trúc lặp, sơ đồ thực hiện, sự thực hiện ca mỏy khi gp lnh lp.
2. Kĩ năng.
- Rèn luyện kĩ năng vận dụng và linh hoạt trong công việc lựa hcọn cấu trúc rẽ nhánh và
cấu trúc lặp phù hợp để giải quyết bài toán đặt ra.
3. Thái độ.
- Tự giác tích cực, chủ động trong giải quyết các bài tập.
<b>II. Đồ dùng dạy học.</b>
1. ChuÈn bị của giáo viên.
- Mỏy chiu Projector, máy vi tính để giới thiệu ví dụ minh họa, một số chơng trình mẫu.
2 . Chuẩn bị của học sinh
- S¸ch gi¸o khoa.
<b>III. Hoạt động dạy - học.</b>
1. ổn định tổ chức
- Số HS trong lớp
- Số Hs vắng
2. Kiểm tra bài cũ
Lồng vào bài dạy
3. Nội dung bài mới
<i><b>I. Nhc li kin thc ó hc</b></i>
1. Yêu cầu học sinh nhắc lại cấu trúc rẽ
nhánh.
Yêu cầu hs viết chơng trình tìm số lớn hơn
trong 2 số a vµ b?
1. Độc lập suy nghĩ để trả lời
If <bt®k> then <lƯnh 1> Else <lƯnh 2>;
If <bt®k> then <lệnh >;
- Hỏi: Chơng trình thực hiện công việc gì?
- Yêu cầu học sinh viết lại chơng trình
bằng c¸ch sư dơng lệnh rẽ nhánh dạng
thiếu.
2. Yêu cầu học sinh nhắc lại cấu trúc của
- Chiếu lên bảng hai chơng trình đã chuẩn
bị sẵn, trong đó một chơng trình sử dụng
lệnh lặp For và một chơng trình sử dụng
lặp while.
- Yêu cầu: So sánh sự giống và khác
nhau ca hai dng lnh ú.
<i><b>II. Bài tập</b></i>
<b> Bài toán 1</b>
<b>LËp tr×nh tÝnh tỉng sau:</b>
<b> </b>
51
50
...
3
2
2
1
<i>y</i>
- Hái: Cã thÓ khai triÓn biÓu thøc Y thành
tổng của các số hạng nh thế nào?
- Nhìn vào công thức khai triển, cho biết N
lấy giá trị tỏng đoạn nào?
- Hỏi : Ta sử dụng cấu trúc điều khiển lặp
nào là phù hợp?
- Chia lớp làm ba nhóm, yêu cầu viết
ch-ơng trình lên b×a trong.
- Thu phiếu trả lời, chiếu kết quả lên bảng.
- Gọi học sinh nhóm khác nhận xét đánh
giá và bổ sung.
2. Tìm hiểu nội dung ví dụ 2 và định hớng
học sinh giải quyết ở nhà.
- ChiÕu néi dung vÝ dụ 2 lên bảng
- Hóy cho biết N nhận giá trị trong đoạn
nào? Xác định đợc cha?
- Hái : Dïng cÊu trúc điều khiển nào là
thích hợp?
- Yêu cầu học sinh về nhà lập trình trên
máy, tiết sau nộp lạo cho giáo viên.
<i><b>Bài toán 2</b></i>
<i>Viết chơng trình kiểm tra số nguyên tố N</i>
<i>N nhập từ bàn phím</i>
Yêu cầu học sinh tìm hiểu và viết chơng
trình với những gợi ý ở tiết trớc
Hs viết chơng trình
- In ra màn hình giá trị lớn hơn.
Var a, b : Integer;
Begin
Readln(a, b); max:=b;
If a>b then max:=a;
Write(max); readln;
end.
2. Suy nghĩ và trả lời.
For <biến đếm>:=<giá trị đầu>;
To <giá trị cuối> Do <lệnh>;
While <®iỊu kiƯn> Do <lệnh cần lặp>;
- Quan sỏt, suy nghĩ và trả lời .
- Giống: đều là lệnh lặp.
- Khác: For lặp với số lần đã xác định
1. Quan sát và suy nghĩ để giải quyết bài
toán.
Y = 1/2 + 2/3 + 3/4 + ... + 50/51
1..50
- Sử dụng cấu trúc lặp có số lần đã xác
định.
- Thảo luận theo nhóm để viết chơng trỡnh
lờn bỡa trong.
- báo cáo kết quả của nhãm.
- Nhận xét, đánh giá và bổ sung các thiếu
sót của nhóm khác
2. Quan sát và theo dõi những định hớng
của giáo viên.
- Cha xác định đợc cận cuối.
- Dùng cấu trúc lặp có số ln cha xỏc
- Yêu cầu hs khác nhận xét
- Bài toán trên ai có thể viết lại bằng câu
lệnh While Do?
Cho cỏc em tho lun v cử đại diện trả lời
Hs
- Cho chơng trình đợc viết bằng lệnh For.
Var x, i:word; nt:boolean;
Begin
Readln(x);
nt :=true;
For i :=2 to x - 1 do
if x mod i = 0 then nt:=false;
If nt = true then write(x,’la so nguyen
to’) else write(x, ‘khong phai snt’);
readln;
End.
Nghiªn cøu và trả lời
Đại diện lên bảng trình bày
<b>IV. Cũng cố và dặn dò</b>
Cũng cố kiến thức
Nm li kin thc đã học, câu lệnh IF, FOR, WHILE…
Cách thực hiện của cõu lnh ú
Dặn dò
Về nhà làm các bài tập trong Sách giao khoa
<b> Ngày 20 / 10 /2009</b>
<b>TIếT 16: ppct</b>
Bài thực hành số 2
<b>I. Mục tiêu.</b>
1. Kiến thøc.
- Nắm chắc cấu trúc và sơ đồ thực hiện của cấu trúc rẽ nhánh.
2. Kĩ năng
- RÌn lun kÜ năng sử dụng cấu trúc rẽ nhánh trong việc lập trình giải một số bài toán cụ
thể.
- Làm quen với các công cụ phục vụ và hiệu chỉnh chơng trình.
3. Thái độ
- Tự giác, tích cực và hcủ động trong thực hành.
<b>II. Đồ dùng dạy học</b>
1. ChuÈn bÞ của giáo viên.
- Phũng mỏy vi tính, máy chiếu Projector để hớng dẫn.
2. Chuẩn bị của học sinh.
- Sách giáo khoa, sách bài tập và bài tập đã viết ở nhà.
<b>III. Hoạt đông dạy - học .</b>
1. ổn định tổ chức
- Sè HS trong líp
- Sè Hs v¾ng
2. KiĨm tra bµi cị
3. Néi dung bµi míi
<b>hớng dẫn của giáo viên</b> <b>Hoạt động của học sinh</b>
<i><b>*Néi dung:</b></i>
- Ba số nguyên dơng a, b, c đợc gọi là bộ
số Pitago nếu tổng bình phơng của hai số
bằng bình phơng của số cịn lại.
u cầu: Viết chơng tình nhập từ bàn
phím ba số nguyên dơng a, b, c và kiểm tra
xem chúng có là bộ số Pitago hay khơng?
1. Gơi ý để học sinh nêu khái niệm về bộ
- Yêu cầu: lấy một ví dụ cụ thể .
- Hỏi : Để kiểm tra bộ ba số a, b, c bất kì
có phải là bộ Pitago, ta pahỉ kiểm tra các
đẳng thức nào?
2. ChiÕu chơng trình mẫu lên bảng.
thực hiện mẫu các thao tác: lu, thực hiện
từng lệnh chơng trình, xem kết quả trung
gian, thực hiện chơng tình và nhập dữ liệu.
- Yêu cầu học sinh gõ chơng trình mẫu
vào máy.
- Yêu cầu học sinh lu chơng trình lên đĩa
với tên Pytago.pas.
- Yêu cầu học sinh thực hiện từng lệnh
của chơng trình.
- Yêu cầu học sinh xem các kết quả a2,
b2, c2.
- Yêu cầu học sinh tự tìm thêm một số
bộ a b c khác và so sánh.
Khi ng mỏy
Khi ng chơng trình Pascal
Hs nghiên cứu đề ra
1. Theo dõi dẫn dắt cuả chọ sinh để nêu
khái niệm về bộ số Pitago: Tổng bình
ph-ơng của hai số bằng bình phph-ơng của số cịn
lại.
VÝ dơ vỊ bé sè Pitago: 5 4 3
a2<sub> = b</sub>2<sub> + c</sub>2<sub>.</sub>
b2<sub> = a</sub>2<sub> + c</sub>2<sub>.</sub>
c2<sub> = a</sub>2<sub> + b</sub>2<sub>.</sub>
2. Soạn chơng trình vào máy theo yêu cầu
của giáo viên.
- Bấm F2, gõ tên file và enter.
- BÊm F7, nhËp c¸c giá trị a=3, b=4,
c=5.
- Chn menu Debug để mở cửa sổ hiệu
chỉnh.
- Quan sát quá trình rẽ nhánh của từng bộ
IV. Cũng cố và dặn dò
<b> Ngµy 23 / 10 /2009</b>
<b>TIÕT 17: ppct</b>
Bµi thực hành số 2 (<sub>tt</sub>)
<b>I. Mục tiêu.</b>
1. Kiến thøc.
- Học sinh biết đọc hiểu đề, phân tích u cầu của đề. Từ đó chọn đợc cấu trúc dữ liệu và
lệnh phù hợp để lập trình.
- Nắm chắc cấu trúc và sơ đồ thực hiện của cấu trúc lặp: For - Do, While - Do.
2. Kĩ năng
- Rèn luyện kĩ năng sử dụng cấu trúc lặp trong việc lập trình giải một số bài toán cụ thể.
- Làm quen với các công cụ phục vụ và hiệu chỉnh và thực hiện chơng trình.
- Rốn luyn k năng lập trình hồn thiện một bài tốn.
3. Thái độ
- Tự giác, tích cực và hcủ động trong thực hành.
<b>II. Đồ dùng dạy học</b>
1. Chuẩn bị của giáo viên.
- Phịng máy vi tính, máy chiếu Projector để hớng dẫn.
- Sách giáo khoa, sách bài tập và bài tập đã viết ở nhà.
<b>III. Hoạt đông dạy - học.</b>
1. ổn định tổ chức
- Sè HS trong líp
- Sè Hs vắng
2. Kiểm tra bài cũ
Kiểm tra thiết bị máy tính và biên chế máy tính cho hs theo từng nhóm trong líp häc
3. Néi dung bµi míi
<b>hớng dẫn của giáo viên</b> <b>Hoạt động của học sinh</b>
<i><b>1. Néi dung thùc hµnh</b></i>
* Viết chơng trình nhập vào một số nguyên
dơng N. HÃy tÝnh cđa biĨu thøc:
Y=12<sub>+2</sub>2++n2
Phân tích bài toán
Bài toán yêu cầu những gì?
ýtởng giải bài toán trên?
Yờu cu hc sinh v s thut toỏn
HÃy viết chơng trình sử dụng NNLT pascal.
Khai báo biến cho hỵp lý.
Sử dụng câu lệnh For – Do để vit chng
trỡnh iu khin vic tớnh tng S
Yêu cầu hs kiểm tra lỗi
Hc sinh nghiờn cu ra
HS tỡm Input và Output
Cho i
Program tinh_tong;
Var n,i: integer;
S: real;
Begin
Writeln(‘Hay nhap gia tri N’);
Readln(N);
S:=0;
For i:=1 to N do
S:=s+SQRT(i);
Writeln(‘Tong la s= ‘,S);
readln
Bằng cách bấm phím F9 kim tra
Hs chạy chơng trình
Yờu cu nhp vo N = 10 để kiểm tra kết
quả.
Hái mét sè hs kết quả có giống nhau
không.
Nếu có sự khau nhau thì yêu cầu hs chỉnh
sửa lại thuật toán
* Viết chơng trình kiểm tra một số nhập
vào từ bàn phím có phải là số nguyên tố
hay không?
Yêu cầu hs viết thuật toán
Viết chơng trình
Hs bm phớm F9 sau đó chỉnh sửa nếu có
thơng báo lỗi cú pháp
Và cứ tiếp tục nh vậy cho đến khi chơng
trình thơng báo là “chơng trình đã thành
cơng”
Bấm tổ hợp phím Ctrl + F9 để biên dịch
và chạy chng trỡnh
Hs thực hiện
Hs nghiên cứu và viết chơng trình
IV. Nhận xét và cũng cố
Về nhà nghiên cứu và chạy chơng trình vừa viết kiểm tra số nguyên tố trên
Làm các bài tập trong sách giáo khoa và sách bài tập
Chun b kin thc tit sau kiểm tra 1 tiết
<b> Ngµy 25 / 10 /2008</b>
<b>TIÕT 18: ppct</b>
KiÓm tra 1 TIÕT
1. Mục tiêu cần đánh giá.
- Kiểm tra kết quả tiếp thu của học sinh từ đầu năm học đến nay.
- Đánh giá kĩ năng phân tích một bài tốn và t duy lập trình trên giấy.
- Có thái độ tự giác, tích cực trong làm bài kiểm tra.
<b> 2. Mục đích yêu cầu của đề.</b>
- Kiến thức: Học sinh nắm đợc các kiến thức về kiểu dữ liệu cơ bản, kiểu dữ liệu có cấu
trúc. Các hàm chuẩn thông dụng. Cấu trúc vào/ra dữ liệu, cấu trúc rẽ nhánh và lặp.
- Kĩ năng: Có kĩ năng phân tích bài toán, viết chơng trình.
- Giáo viên chuẩn bị đề kiểm tra.
- Học sinh chuẩn bị đầy đủ kiến thức đã đợc học, ôn tập.
<b> 4. Nội dung đề bài và đáp án.</b>
<b>Nội dung đề:</b>
Câu 1: So sánh sự giống và khác nhau cđa cÊu tróc For vµ While.
Cho chơng trình có sử dụng cấu trúc For nh sau:
var i:byte
Begin
For i:=1 to 100 write(i:4);
Readln
End.
Câu 2: HÃy cho biết chơng trình sau in ra màn hình nh thế nào?
<b>Var i: integer;</b>
<b> a,b: word;</b>
<b>Begin</b>
<b>a:=10; b:=6;</b>
<b>If a>b Then For i:=b To a Do write(i+1)</b>
<b> Else For i:= a To b Do write(i-1);</b>
Câu 3: Viết chơng trình thực hiện các công việc sau:
a, Nhập vào số nguyên dơng N. HÃy in N nếu chia hết 3 or 2
b, Nhập vào một số Kiểm tra xem số ú cú phi l nguờn t hay khụng?
______________________________________________________
<b> Đáp án và biểu điểm.</b>
Câu 1: ( 3 ®iĨm)
- Giống: For và While đều cùng là cấu trúc lặp.
- Khác : For là cấu trúc lặp có số lần đã biết trớc, ngợc lại while là cấu trúc lặp có số
lần cha xác định.
Var i:byte;
Begin
i:=1;
While i<=100 do
begin
write(i:4);
i:=i+1;
End;
Readln
C©u 2: ( 2 điểm)
Khi chy chng trỡnh trờn thỡ c kt qu
7891011
Câu 3:
Né dung §iĨm
Program cau3a;
Var n: Integer;
Begin
Readln(N);
If (N mod 2 =0) and (N mod 3 = 0) then writeln(N);
End.
0,5
0,5
1,0
Program cau3b;
Var n, i: Integer;
Begin
Readln(N);
I:= 2;
While (i<= int(SQRT(N))) and (N mod i = 0) Do
I:=i+1;
If i > int(SQRT(N)) Then Writeln( N, ‘La so nguyen to’)
Else Writeln( N, ‘Khong phai la so nguyen to’);
End.
<b> Ngày 30 / 10 /2008</b>
<b>TIếT 19: ppct</b>
kiểu mảng và biến cã chØ sè (tiÕt 1)
I. Mơc tiªu.
1. KiÕn thøc
- Biết đợc một kiểu dữ liệu mới là kiểu mảng một chiều. Biết đợc một laọi biến có chỉ số.
- Biết cáu trúc tạo kiểu mảng một chiều và cáhc khai báo biến kiểu mảng một chiều.
2. Kĩ năng
- Tạo đợc kiểu mảng một chiều và sử dụng biến mảng một chiều trong ngơnngữ lập trình
Pascal để giải quyết một số bi toỏn c th.
II. Đồ dùng dạy học
1. Chuản bị của giáo viên.
- Mỏy chiu Projector, máy vi tính để giới thiệu ví dụ và minh họa.
S¸ch gi¸o khoa.
III. Hoạt động dạy - học.
1. ổn định tổ chức
- Sè HS trong lớp
- Số Hs vắng
2. Kiểm tra bài cũ
Vit chng trỡnh nhập vào 5 số nguyên dơng a,b,c,d,e. Tính và in ra mà hình tổng của 5 số
đó.
3. Néi dung bµi míi
<b>hớng dẫn của giáo viên</b> <b>Hoạt động của học sinh</b>
* t vn :
Đối với bài toán trên nếu nhập vào 20 số
thì ta phải khai báo tới 20 biến => Chơng
trình rất dài
NNLT Pascal cung cp kiu d liu có cấu
trúc, đó là kiểu mảng.
<b>1. KiĨu m¶ng mét chiỊu</b>
* Chiếu đề bài và chơng trình ví dụ lên
bảng.
- Hỏi: Khi N lớn thì chơng trình trên có
những hạn chế nh thế nào?
- Dn dắt: Để khắc phục những hạn chế
trên, ngời ta thờng ghép chung 7 biến trên
thành một dãy và đặt cho nó chung một tên
và đánh cho mọt phần tử một ch s.
* Yêu cầu học sinh tham khảo sách giáo
khoa và hỏi: Em hiểu nh thế nào về m¶ng
mét chiỊu?
- Hỏi: Để mơ tả mảng một chiều, ta cần
xác định những yếu tố no?
* Quan sát trên màn hình, suy nghĩ và trả
lời.
- Phải khai báo quá nhiều biến. Chơng
trình phải viết rất dài.
* Nghiờn cu sỏch giỏo khoa để trả lời.
- Mảng một chiều là dãy hữu hạn các
phần tử có cùng kiểu dữ liệu. Các phần tử
trong mảng có cùng chung một tên và
phân biệt nhau bởi ch s.
* Yêu cầu học sinh nghiên cứu sách giáo
khoa và hco biết cách tạo kiểu dữ liệu
mảng một chiều trong ngôn ngữ lập trình
Pascal.
- Tỡm mt ví dụ để minh họa.
- Gäi häc sinh kh¸c, Hái: ý nghÜa cđa
lƯnh b¹n võa viÕt?
- Chiếu lên bảng một số khia báo kiểu
mang một chiều
Type
Arrayr=array[1..200] of real;
Arrayr=array[byte] of real;
Arrayb=array[-100..0] of boolean;
- Hỏi: Những khai báo no ỳng?
* Yêu cầu học sinh cho biết cách khai bóa
biến và một ví dụ khai báo một biến mảng
ứng với kiểu dữ liệu vừa tạo.
- Gäi häc sinh kh¸c, hái: ý nghÜa cđa
lƯnh b¹n võa viÕt?
- Dung lợng bộ nhớ của biến a đã chiếm
- Chú ý cho học sinh về cách đặt tên
kiểu dữ liệu và tên biến, tránh nhầm lẫn.
* Giới thiệu cách tham chiếu đến từng
phần tử của mảng một chiều. Yêu cầu học
sinh lấy một ví dụ.
* Giới thiệu đề bài.
- Chiếu đề bài lên bảng.
- Yêu cầu học sinh xác định dữ liệu vào,
dữ liệu ra.
- Hỏi: Nếu không sử dụng biến mảng
một chiều, ta có thể giải quyết đợc bài tốn
khơng? Khó khăn gì khơng?
* Định hớng: Sử dụng kiểu mảng một
chiều để giải quyt bi toỏn.
- Yêu cầu học sinh khai báo kiểu mảng.
- Yêu cầu học sinh khia báo biến mảng.
- Yêu cầu học sinh tìm các nhiệm vụ
chính cần giải quyết.
* Chia lớp thành 3 nhóm. Yêu cầu viết
ch-nh đợc kiểu của các phần tử và cách
đánh số các phần tử của nó.
* Tham khảo sách giáo khoa và trả lời.
- TYPE tªn_km= Array[kieeru cs] Of
kiểu_thành_phần;
- Ví dơ: Type mmc=array[1..100] of
integer;
- T¹o mät kiểu dữ liệu mới có tên mmc,
gồm 100 phần tử, cã kiĨu nguyªn.
- Quan sát bảng và hcọn khai báo đúng.
Arrayr=array[1..200] of real;
Arrayb=array[-100..0] of boolean;
* Tham khảo sách giáo khoa và trả lời
VAR tªn_biÕn:tªn_km;
- VÝ dơ : Var a:mmc;
- Khai b¸o mét biÕn m¶ng mét chiỊu.
- a đã chiếm 200 byte trong bộ nhớ.
* Theo dõi hớng dẫn của giáo viên và
độc lập suy nghĩ để trả lời.
a[1] là phần tử ở vị trí 1 của mảng a.
a[i] là phần tử ở vị trí i của mảng a.
* Quan sát đề bài, theo dõi những yêu cầu
cần giải quyết của dề bài.
- Vào: 7 số là giá trị nhiệt độ của 7
ngày trong tuần.
- Ra: Số ntb là nhiệt độ trung bình
trong tuần và số nch là số ngày có nhiệt
độ cao hơn nhiệt độ trung bình.
- Đợc.
- Chng tình dài dịng, khó sửa đổi....
* Theo dõi sự hớng dẫn của giáo viên
Type tuan=array[1..7] of real;
Var ndtuan : tuan;
- Nhập giá trị cho mảng a.
- TÝnh trung bình cộng giá trị của
mảng.
- Đếm số phần tử có giá trị lớn hn
ơng trình lên giấy b×a trong.
- Thu phiếu trả lời, chiếu lên bảng. Gọi
học sinh nhóm khác nhận xét đánh giá.
* Chuẩn hóa chơng trình cho học sinh.
tr×nh.
- Báo cáo kết quả viết đợc.
- Nhận xét, đánh giá và bổ sung những
thiếu sót của nhóm khác.
* Quan s¸t và ghi nhớ.
IV. Đánh giá cuối bài
1. Những nội dung đã học.
- Cách tạo kiểu mảng một chiều và cách khia báo biến.
TYPE tên_kiểu_mảng= Array[kiểu_chỉ_số] Of kiểu_thành_phần;
VAR tên_biến:tên_kiểu_mảng;
- Tham chiếu đến từng phần tử: Tên_biến[chỉ số]
2. Câu hỏi và bài tập về nhà.
- Viết chơng trình nhập vào một mảng gồm n số nguyên( 1<=n<=100), mỗi số có giá trị
- trả lời các câu hỏi 1_4, làm bài tập 5, 6, 7, s¸ch gi¸o khoa, trang 79.
<b> </b> <b> Ngày 02 / 11 /2008</b>
<b>TIếT 20: ppct</b>
kiểu mảng và biÕn cã chØ sè (tiÕt 2)
<b>I. Mơc tiªu.</b>
<b> 1. KiÕn thøc</b>
- Biết cách sử dụng mạng một chiều để lu trử các giá trị của một dãy số.
- Biết cách tham chiếu tới các phần tử mảng một chiều một cách linh hot.
- Biết cáu trúc tạo kiểu mảng một chiều và cách khai báo biến kiểu mảng một chiều.
<b> 2. Kĩ năng</b>
- Tạo đợc kiểu mảng một chiều và sử dụng biến mảng một chiều trong ngơn ngữ lập trình
Pascal để giải quyết một số bài tốn cụ thể.
<b>II. §å dïng dạy học</b>
<b> 1. Chuản bị của giáo viên.</b>
- Mỏy chiếu Projector, máy vi tính để giới thiệu ví dụ và minh họa.
<b> 2. Chuẩn bị của học sinh.</b>
S¸ch gi¸o khoa.
<b>III. Hoạt động dạy - học.</b>
<b> 1. ổn định tổ chức</b>
- Sè HS trong líp
- Số Hs vắng
<b>2. Kiểm tra bài cũ</b>
Lồng vào trong bài d¹y
3. Néi dung bµi míi
<b>hớng dẫn của giáo viên</b> <b>Hoạt động của học sinh</b>
<i><b>b, Một số ví dụ</b></i>
<b>Bài1:Viết chơng trình nhập vào một số</b>
nguyên dơng N vµ d·y sè có N phần
tửa1,a2,,an
Tìm phần tử lớn nhất của dÃy
<i>HÃy tìm input và Output?</i>
Hóy trỡnh ý tởng để giải bài toán này?
Hs nghiên cứu đề ra và trả lời câu hỏi của
giáo viên
- Input: N vµ dÃy số a1, a2,an
- Output: Giá trị lớn nhất
HÃy trình bày thuật toán cho bài toán
này?
Chia hs thành các nhóm và cho thảo luận
tìm kết quả
Em hóy cho bit vit chng trình này
thì phải dùng mấy biến đó là những biến
nào, khai bỏo nh th no?
HÃy viết chơng trình trên?
<b>Bài2: Viết chơng trình nhập vào một dÃy</b>
số có N phần tử nguyên dơng từ A1, A2,
AN. HÃy sắp xết dÃy số trên thành dÃy
không giảm.
Em hÃy cho biết dÃy số nh thế nào là dÃy
không giảm?
Hóy nờu ý tng gii bi toỏn ny?
HÃy trình bày tht to¸n cđa bài toán
này?
HÃy viết chơng trình sử dụng ngôn ngữ
Pascal?
Ta s dng mấy biến đó là những biến
nào?
vi tõ [1; n] thì so sánh a[i] với max
Nếu > thì thay max = a[i]
Hs: trả lời
B1: Nhập N và dÃy a1, a2, a3an
B2: i<- 2; max<-a1
B3: Nếu i>n thì thông báo max và kết thúc
B4: Nếu a[i] > max thì max<- a[i]
B5: i<-i+1; quay l¹i bíc 3
Hs chia nhãm và thục hiện theo sự hớng
dẫn của giáo viên
Hs c i din tr li
Hs trả lời
Ta dùng một mạng rmột chiều có n phần tử,
một biến Max và một biến i làm chỉ số.
- khai báo nh sau:
Const n=100;
Var A : array[1..n] of Integer;
I, max: Integer;
Chia thành từng nhóm và viết chơng tr×nh
Hs nghiên cứu đề ra à trả lời câu hỏi của
giáo viên
Hs: Dãy mà phần tử đúng sau không nhỏ
hơn phần tử đúng trớc.
Hs: ta tiến hành so sánh từng phần tử kề
nhau nếu phần tử đúng sau mà nhỏ hơn
phần tử đúng trớc thì hốn đổi vị trí cho
nhau cho đến khi khơng cịn sự hốn đổi
nữa thì kết thúc.
Hs chia thµnh tõng nhãm vµ nghiên cứu
viết thuật toán.
HS:
Program cau2;
Const N=100;
Var tg,i: integer;
Sử dùng vòng lặp While Do hay For Do
để viết chơng trình?
Hốn đổi ta viết câu lệnh nh thế nào?
Yêu cầu học sinh nhận xét và chnh sa
nu cú li.
<i><b>Bài3: Viết chơng trình nhập vào một số</b></i>
nguyên dơng N. HÃy in ra N biểu diễn
d-ới dạng nhị phân.
Hóy nờu ý tởng để giải quyết bài toán
này?
để viết chơng trình thì ta phải sử dụng
những biến nào, hãy khai báo những biến
đó?
Yªu cầu học sinh về nhà viết chơng trình
Readln(N);
For i:=1 to N do Read(a[i]);
Tg:=0;
For i:=1 to N-1 do
For j:=i+1 to N do
If a[i] > a[j] then
Begin
Tg:=a[i];
A[i]:=a[j];
A[j]:=tg;
End;
End.
Hs tìm hiểu đề và nghiên cứu tìm hớng giải
Hs thảo luận nhóm và cữ đại diện trả lời
TL: Lấy số đó chia cho 2 lấy phần d lu vào
mảng cho đến khi thơng bằng 0 thì kết thúc
và in ngợc kết quả đó ra.
Hs: ta sư dung c¸c biÕn sau:
I,n cã kiĨu nguyªn
A: biến mảng để lu kết quả
Cách khai báo:
Var i, n: Integer;
A: Array[1..10] of byte;
IV. Đánh giá cuối bài
1. Nhng ni dung ó hc.
- Cách tạo kiểu mảng một chiều và cách khia báo biến.
TYPE tên_kiểu_mảng= Array[kiểu_chỉ_số] Of kiểu_thành_phần;
VAR tên_biến:tên_kiểu_mảng;
- Tham chiếu đến từng phần tử: Tên_biến[chỉ số]
2. Câu hỏi và bài tập về nhà.
- §äc tríc néi dung vỊ kiĨu mảng hai chiều, sách giáo khoa trang 59.
<b> Ngày 05 / 11 /2008</b>
<b>TIếT 21: ppct</b>
kiểu mảng và biÕn cã chØ sè (tiÕt 3)
<b>I. mơc tiªu.</b>
<b> 1. KiÕn thøc.</b>
- Biết đợc một kiểu dữ liệu mới là kiểu mảng hia chiều.
- Biết đợc cách tạo kiểu mảng hai chiều, cách khai báo biến, tham chiếu đến từng phần
tử của mảng.
- Tạo đợc kiểu mảng hai chiều và khai báo biến mảng hai chiều trongngơn ngữ lập trình
Pascal. Sử dụng đúng biến mảng để giải quyết một số bài toán c th .
<b>II. Đồ dùng dạy học</b>
<b> 1. Chuẩn bị của giáo viên.</b>
- Máy vi tÝnh, m¸y chiÕu Projector, s¸ch gi¸o khoa, m¸y chiÕu Overhead, phiÕu häc tËp.
<b> 2. Chn bÞ cđa häc sinh.</b>
- S¸ch gi¸o khoa.
<b>III. Hoạt động dạy - học.</b>
<b> 1. ổn định tổ chức</b>
- Sè HS trong lớp
- Số Hs vắng
<b>2. Kiểm tra bài cũ</b>
Khai báo mảng một chiều, Nêu cách tham chiếu tới các phần tử của mảng một chiều.
Viết chơng trình nhập vào số nguyên dơng n và dÃy số có n phần tử. HÃy in ra màn
hình những số nguyên tố trong dÃy nµy.
3. Néi dung bµi míi
<b>hớng dẫn của giáo viên</b> <b>Hoạt động của học sinh</b>
<i><b>2. M¶ng hai chiỊu</b></i>
a. Xét Bài tốn: Viết chơng trịnh để in ra
màn hình bảng cửu chơng có dạng nh sau:
1 2 3 4 5 6 7 8 9
2 4 6 8 10 12 14 16 18
3 6 9 12 15 18 21 24 27
4 8 12 16 20 24 28 32 36
5 10 15 20 25 30 35 40 45
6 12 18 24 30 36 42 48 54
7 14 21 28 35 42 49 56 63
8 16 24 32 40 48 56 64 72
9 18 27 36 45 54 63 72 81
- Hỏi: Sử dụng kiến thức về mảng một
chiều, hãy đa ra cách sử dụng kiểu mảng
đó để lu tr bng cu chng.
- Với cách lu trữ nh vậy ta phải khai báo
bao nhiêu biến mảng?
- Có những khó khăn gì?
- Để khắc phục các khó khăn này, ta xem
mét b¶ng mét chiỊu là một phần tử, ta
ghép 9 mảng một chiều thành một mảng
hai chiều.
- Yêu cầu học sinh nhận xét về m¶ng hai
chiỊu.
<i><b>Hãy nêu định nghĩa mảng 2 chiều?</b></i>
<i><b>b, Khai báo mảng 2 chiều</b></i>
Hs mở SGK đọc nội dung bi toỏn
1. Chú ý theo dõi yêu cầu và dẫn dắt của
giáo viên.
- Sử dụng 9 mảng một chiêu, một mảng lu
một hàng của bảng.
- Khai báo 9 mảng một chiỊu.
- Khai b¸o nhiÒu biÕn, viÕt chơng trình
nhập xuất dữ liệu dài.
- Nếu xem mỗi hàng của mảng hai chiều là
một phần tử thì ta cã thÓ nãi mảng hai
chiều là mảng một chiều mà mỗi phần tử là
mảng một chiều.
HS:- Mảng hai chiều là một bảng các phần
tử có cùng kiểu dữ liệu.
Các yếu tố xác định mảng hai chiều.
- Hỏi: Để mô tả kiểu mảng hai chiều, ta
cần xác định những yếu tố chính nào?
* Yêu cầu học sinh nghiên cứu sách giáo
khoa và cho biết cách tạo kiểu dữ liệu
mảng hai chiều.
- Yêu cầu học sinh tìm ví dụ minh họa.
- Gäi mét häc sinh kh¸c, hái: ý nghĩa của
lệnh mà bạn vừa viết?
* Yêu cÇu häc sinh cho biÕt c¸ch khai
b¸o biÕn và một ví dụ khia bóa một biến
mảng hai chiều ứng với kiểu dữ liệu vừa
tạo .
<i><b>c, Cách tham chiếu tíi phÇn tư</b></i>
* Giới thiệu cách tham chiếu đến từng
phần tử của mảng một hciều. Yêu cầu
học sinh lấy một ví dụ.
* Giới thiệu đề bài.
- Chiếu đề bài lên bảng.
- Yêu cầu học sinh xác định cách thức tổ
chức dữ liệu.
- Yêu cầu học sinh chỉ ra các nhiệm vụ
chính của bào toán cần giải quyết.
* Chia lớp thành 3 nhóm. Yêu cầu viết
chơng trình lên giấy bìa trong.
- Thu phiếu trả lời, chiếu lên bảng. Gọi
học sinh nhóm khác nhận xét đánh giá.
* Chuẩn hóa chơng trình cho học sinh
bằng cách chiếu chơng trình mẫu để học
* Chiếu chơng trình ví dụ 2, sách giáo
khoa, trang 62 để học sinh quan sát.
- Thực hiện chơng trình hc sinh thy
c kt qu ca nú.
- Giáo viên cần giải thích một số chỗ có
thể học sinh cha hiểu và yêu cầu học sinh
về nhà tìm hiểu thêm.
quy tắc cho phép xác định tên kiểu mảng
hai chiều, số lợng phần tử của mỗi chiều,
kiểu dữ liệu của từng phần tử, cách khai
báo một biến mảng và cách tham gia chiếu
đến từng phần tử của mản
* Các yếu tố để xây dựng mảng hai chiều:
- Tên kiểu mảng.
- Sè phÇn tư trên một dòng, số phần tử trên
một cột.
- Kiểu dữ liệu chung của mọi phần tử.
* Tham khảo sách giáo khoa và trả lời.
- TYPE tên_kmhc=Array[csd,csc] Of
kiểu_thành_phần;
- Ví dô: Type mhc=array[1..10,1..5] of
integer;
- Lệnh trên dùng để tạo một kiểu mảng hai
chiều có tên là mhc gồm 10 dịng và 5 cột,
các phần tử có kiểu dữ liệu là integer.
* Tham khảo sách giáo khoa và trả lời.
- VAR tên_biến:tên_kmhc;
- Ví dụ: Vả a:mhc;
* Quan sát cấu trúc chung và suy nghĩ tìm
ví dụ.
a[1,2] là phần tử ở dòng số 1, cột số 2 của
mảng a.
a[i,j] là phần tử ở dòng số i, cột sè j cđa
m¶ng a.
* Quan sát đề bài, theo dõi những yêu cầu
cần giải quyết của đề bài.
- Dùng một mảng hai chiều.
- Điền giá trị cho[i,j]=i*j
- Xuất giá trị a[i,j] theo từng dßng.
* Thảo luận theo nhóm để viết chơng trình.
- Báo cáo kết quả khi hoàn thành.
- Nhận xét, đánh giá và bổ sung những
thiếu sót của các nhóm khác.
* Ghi nhớ nội dung đã c chnh sa.
* Quan sát chơng trình và chú ý giải thích
của giáo viên.
- Đặt ra một số câu hỏi thắc mắc.
<b>IV. Đánh giá cuối bài</b>
1. Nhng nội dung đã học.
TYPE tên_kiểu_mảng=Array[kiểu_chỉ_số_dòng, kiểu_chỉ_số_cột] Of
kiểu_thành_phần;
- Khai báo kiểu mảng một chiều: VAR tên_biến:tên_kiểu_mảng;
- Tham chiếu đến từng phần tử: Tên_biến[chỉ_số_dòng, chỉ_số_cột]
2. Câu hỏi và bài tập về nhà
- Làm các bài tập số 8, 9, s¸ch gi¸o khoa trang 79, 80.
- Xem trớc nội dung của bài thực hành 3, sách giáo khoa, trang 63.
<b> Ngày 10 / 11 /2008</b>
kiểu mảng và biến có chỉ số (tiÕt 4)
<b>I. mơc tiªu.</b>
<b> 1. KiÕn thøc.</b>
Biết đợc cách tạo kiểu mảng hai chiều, cách khai báo biến, tham chiếu đến từng phần tử
ca mng.
<b> 2. Kĩ năng.</b>
- Rốn luyện kỉ năng sử dụng mảng 2 chiều để lu trử dữ liệu
- Tạo đợc kiểu mảng hai chiều và khai báo biến mảng hai chiều trong ngơn ngữ lập trình
Pascal. Sử dụng đúng biến mảng để giải quyết một số bài tốn cụ thể.
<b>II. §å dùng dạy học</b>
<b> 1. Chuẩn bị của giáo viên.</b>
- M¸y vi tÝnh, m¸y chiÕu Projector, s¸ch gi¸o khoa, m¸y chiÕu Overhead, phiÕu häc tËp.
<b> 2. Chn bÞ cđa häc sinh.</b>
- S¸ch gi¸o khoa.
<b>III. Hoạt động dạy - học.</b>
<b> 1. ổn định tổ chức</b>
- Sè HS trong líp
- Sè Hs v¾ng
<b>2. Kiểm tra bài cũ</b>
Khai báo mảng hai chiều, Nêu cách tham chiếu tới các phần tử của mảng hai chiều.
Viết chơng trình nhập vào số nguyên dơng n,m và ma trËn cã kÝch thíc nxm phÇn tư.
H·y in ra màn hình những số nguyên tố trong trong ma trận nµy.
<b>3. Néi dung bµi míi</b>
<b>hớng dẫn của giáo viên</b> <b>Hoạt ng ca hc sinh</b>
<i><b>B, Một số ví dụ</b></i>
<i>Viết chơng trình nhập vào một số nguyên</i>
<i>K và một mảng hai chiều có N dòng và M</i>
<i>cột. HÃy in ra những số nhá h¬n K.</i>
Hãy nêu ý tởng để giải bài tốn trờn?
HÃy khai báo mảng hai chiều trên?
Ta ó xỏc nh đợc bao nhiều dòng bao
nhiêu cột hay cha?
Hs nghiên cứu
Hs thảo luận và trả lời câu hỏi
TL: B1: Nhập K và nhập mảng hai chiều
B2: Kiểm tra tất cả các phần tử của
mảng trên nếu phần tủe nào nhỏ hơn thì in
ra.
HÃy viết chơng trình?
Các nhóm hÃy trình bày lời giải của
mình?
Yêu cầu học sinh khác nhận xét và chỉnh
sửa nếu có sai sót.
Câu2: Viết chơng trình nhập vào một ma
<i><b>trận vuông có kích thứơc n </b></i>
Đối với bài toán này ta khai báo những
biến nào?
Cách khai báo nh thế nào?
Nhng phn t nm trờn ng chộo chớnh
cú ch s dũng v ct nh th no?
Đoạn chơng trình biểu diễm nh thế nào?
Nhng phn t nm trên đờng chéo phụ
C¸ch khai b¸o nh sau:
Const N=100;
M=100;
Var a: Array[1..N,1..M] of integer;
Häc sinh chia thành từng nhóm và viết
ch-ơng trình
C i diện trình bày:
Hs:
Program cau1;
Const N=100;
M=100;
Var i,j:byte;
a: Array[1..N,1..M] of integer;
Begin
Read(K);
For i:=1 to N do
For j:=1 to M do
Begin
read(a[i,j];
If a[i,j] < k then write(a[i,j]);
End;
Readln
End.
HS nghiên cứu đề
Ta khai báo các biến sau:
- Biến mảng A hai chiều
- i biến đếm chỉ số
HS: Khai báo nh sau:
Const n=100;
Var a: array[1..n,1..n] of integer;
I: byte;
Hs: Có chỉ số dòng và chỉ số cột bằng nhau
Hs:
For i:=1 to N Do
Write(A[i,j]);
Cho học sinh thảo luận để vit chng
trỡnh
Yêu cầu các nhóm lên trình bày bài thảo
luận của mình
Yêu cầu nhãm kh¸c cho ý kiÕn vµ bỉ
sung
Hs chia thành từng nhóm để thảo luận
Cữ đại diện của nhóm lên trình bày:
Chơng trình:
Const n=100;
Var i,j: byte;
A:array[1..n,1..n] of integer;
Begin
For i:=1 to N do
For j:=1 to N do
Readln(a[i,j];
For i:=1 to N do
Write(a[i,i];
J:=n;
For i:=1 to N do
Begin
Write(a[i,j];
J:=j-1;
End;
Readln
End.
<b>IV. Còng cè và dặn dò</b>
- V nh nm chc cỏch tham chiu tới các phần tử của mảng 1 và 2 chiều
Biết áp dụng để giải các bài toán cú s dng mng
- Làm các bài tập trong sách giáo khoa và bài tập
<b> Ngày 16 / 11 /2008</b>
<b>TIếT 23: ppct</b>
Bài tập
<b>I. mục tiêu.</b>
<b> 1. KiÕn thøc.</b>
- Biết đợc cách tạo kiểu mảng một, hai chiều, cách khai báo biến, tham chiếu đến
từng phần tử ca mng.
<b> 2. Kĩ năng.</b>
- To c kiu mng hai chiều và khai báo biến mảng hai chiều trong ngôn ngữ lập trình
Pascal. Sử dụng đúng biến mảng để giải quyết một số bài toán cụ thể.
- ứng dụng mảng 1 và 2 chiều để giải quyết các bài toỏn trong tin hc
<b>II. Đồ dùng dạy học</b>
<b> 1. Chuẩn bị của giáo viên.</b>
- Máy vi tÝnh, m¸y chiÕu Projector, s¸ch gi¸o khoa, m¸y chiÕu Overhead, phiÕu häc tËp.
<b> 2. Chn bÞ cđa häc sinh.</b>
- S¸ch gi¸o khoa.
<b>III. Hoạt động dạy - học.</b>
<b> 1. ổn định tổ chức</b>
- Sè HS trong líp
<b>2. KiĨm tra bµi cị</b>
Lång vµo bµi häc
<b>3. Néi dung bµi míi</b>
<b>Hoạt động của thầy</b> <b>Hoạt ng ca trũ</b>
<b>1. Phn lý thuyt</b>
* Mảng một chiều
- Định nghÜa m¶ng
Yêu cầu hs nhắc lại định nhĩa mng 1
chiu?
- Cách khai báo mảng?
- Cách tham chiếu tới phần tử mảng?
* Mảng hai chiều:
- Định nghĩa mảng hai chiều?
- Khai báo mảng 2 chiều?
- C¸ch tham chiÕu tới các phần tử của
mảng 2 chiều?
<b>2. Bài tập</b>
<b>Bài1:</b>
Viết chơng trình nhập vào mét d·y sè
gåm 100 số hÃy. in ra màn hình những số
nguyên tố trong dÃy trên.
Số có tính chất nh thế nào là số nguyên
tố?
HÃy nêu cách kiểm tra số nguyên tố?
Tỡm ý tng gii bi toỏn trờn?
Đối với bài toán này thì dùng những biến
nào?
DÃy hữu hạn các phần tử cùng kiểu
Có 2 cách khao báo
Trực tiếp và gián tiếp
Cú pháp
Var <tên biến mảng>:array[chỉ số] of <kiểu
Theo cú pháp sau:
Tên mảng[chỉ số]
Hs trả lời
Var <tên biến m¶ng>: Array[chØ sè] of
<phần tử của mảng>;
Cú pháp:
Tên biến mảng[chỉ số của phÇn tư]
Số có 2 ớc khác nhau đó là một và chính
nó.
Ta lấy số đó chia liên tiếp cho 2,3,4..đến
SQRT(số đó) nếu chia hết thì kết luận là
khơng phải là nguyên tố nếu tất cả đều
khơng hết thì kết luận là ngun t.
Duyệt tất cả các phần tử kiểm tra có phải
nguyên tố hay không, nếu nguyên tố thì in
ra còn không thì thôi.
HÃy viết chơng trình trên?
Cách khai báo?
Sử dụng câu lệnh nào cho thích hợp?
Dựng bin ph j kim tra
Yêu cầu các nhóm khác cho ý kiến và bổ
sung.
<b>Bài2:</b>
Viết chơng trình nhËp vµo mét mảng 2
chiều có n dòng m cột. Tìm và in ra tổng
những số nguyên dơng.
Hóy nờu ý tng gii bi toỏn ny?
Đối với bài toán này thì ta sử dụng những
biến nào và khai báo nh thế nào?
Yêu cầu hs chia thành từng nhóm và thảo
luận trong vßng 10 phót.
Biến mảng A để lu dãy số
Biến j để lu số chia
Hs chia thành từng nhóm và thảo lun sau
10 phỳt c i din lờn tr li
Chơng trình:
Var i,j:integer;
A:array[1..100] of integer;
J:=2;
For i:=1 to 100 do readln(a[i];
For i:=1 to 100 do
If (a[i]=2) or (a[i]=3) then write(a[i])
Else
Begin
J:=2;
While (j<=Int(SQRT(a[i]) and(a[i] mod
j<>0 Do j:=j+1;
If j<=Int(SQRT(a[i])) then write(a[i]);
End;
readln
End.
Hs tìm hiểu bài toán
Cho chỉ số i và j chạy và kiểm tra số nào
nguyên dơng thì cộng vào tổng S. sau khi
kiểm tra hết thì in tổng s ra màn hình
Hs: TL:
Ta dựng các biến sau:
A: m¶ng 2 chiỊu
S: lu tỉng
Hs chia nhóm thảo luận và cử đại diện tr
li.
Chơng trình:
Var i,j: byte;
S: integer;
A:array[1..n,1..n] of integer;
Begin
S:=0;
Ta dùng những câu lệnh lặp nào cho thích
hợp?
Gọi nhóm khác nhận xét và bæ sung?
Readln(a[i,j];
For i:=1 to N do
For j:=1 to m do
If a[i,j] >0 then S:=S+ a[i,j] ;
Writeln(‘Tong cua nhung so nguyen duong
la: s=, S:4);
Readln
End.
<b>IV. Cũng cố và dặn dò</b>
Nắm cách tham chiếu tới các phần tử và cách sử dụng mảng 1 và 2 chiều một cách
thành thạo.
V nh chuẩn bị bài thực hành để chuẩn bị thực hành
<b> Ngµy 20 / 11 /2008</b>
<b>TIÕT 24: ppct</b>
Bµi thực hành số 3
<b>I. mục tiêu.</b>
1. Kiến thức.
- Củng cố lại các kiến thức cơ bản về kiểu dữ liệu mảng.
2. Kĩ năng
- Nâng cao kĩ năng sử dụng một số lệnh kỉeu dữ liệu mảng một chiều trong lËp tr×nh, cơ
thĨ:
+ Khai báo kiểu dữ liệu mảng một chiều.
+ NhËp/xt d÷ liƯu cho m¶ng.
+ Duyệt qua tất cả các phần tử của mảng để xử lí từng phần tử.
- Biết giải một số bài toán cơ bản thờng gặp:
+ Tính tổng các phần tử thỏa mãn điều kiện nào đó.
+ Đếm số các phần tử thỏa mãn điều kiện nào đó.
+ Tìm phần tử lớn nhất, nhỏ nhất.
3. Thái độ
- Góp phần rèn luyện tác phong, t duy lập trình: Tự giác, tích cực, chủ độngvà sáng tạo
trong tỡm kim kin thc.
<b>II. Đồ dùng dạy học.</b>
<b> 1. Chuẩn bị của giáo viên.</b>
- Phịng máy tính, máy chiếu Projector để minh họa.
2. Chuẩn bị của học sinh.
- S¸ch gi¸o khoa.
<b>III. Hoạt đơng dạy - học.</b>
1. ổn định tổ chức
- Sè HS trong líp
- Sè Hs v¾ng
2. KiĨm tra bµi cị
KiĨm tra thiết bị máy tính và biên chế máy tính cho hs theo tõng nhãm trong líp häc
3. Néi dung thùc hành:
a Tìm hiểu, gõ chơng trình vào máy và chạy thử:
Uses Crt;
Const nmax:=100;
Var A:myarray;
s, n, i, k:integer;
Begin
Clrscr;
Randomize;
Write(‘nhap n=’);
readln(n);
For i:=1 to n do a[i]:=random(300) – random(300);
For i:=1 to n do Write(A[i]:5);
Writeln;
Write(;nhap k=’);
readln(k);
s:=0;
For i:=1 to n do
if a[i] mod k=0 then s:=s+a[i];
Write(‘tong can tinh la’,s);
readln;
End.
b. Thêm các lệnh mới vào chơng trình nhằm sửa đổi chơng trình trong câu a dể chơng
trình thực hiện đếm số dơng và số lợng số âm của mảng.
Posi, neg:integer;
Posi:=0;neg:=0;
If a[i] >0 then Posi:=posi+1
Else if a[i] <0 then neg:=neg+1;
Write(pãi:4,neg:4);
c. C¸c bíc tiÕn hµnh:
<b>hớng dẫn của giáo viên</b> <b>Hoạt động của học sinh</b>
1. tìm hiẻu chơng tình ở câu a, sách giáo
khoa, trang 63 và chạy thử chơng trình.
- Chiếu chơng trình lên bảng .
- Hái: Khai b¸o Uses CRT; cã ý
nghÜa g×?
- Hái: Myarray là tên kiểu dữ liệu hay
tên biến?
- Hỏi: Vai trò của nmax và n có gì
khác nhau?
- Hi: Những dòng lệnh nào dùng để
tạo biến màng a?
- Thực hiện chơng trình để học sinh
thấy kết quả.
- Hái: LƯnh
g¸n a[i]:=random(300) - random(300) cã
ý nghÜa g×?
- Hái: LƯnh Fori:=1 to n do
Write(A[i]:5);cã ý nghÜa g×?
- Hái : LƯnh For – Do ci cïng thùc
1. Quan s¸t, chó ý và trả lời.
- Khai báo th viện chơng trình con Crt để
sử dụng đợc thủ tục Clrscr;
- Tªn kiĨu dữ liệu.
- nmax là số phần tử tối đa có thể chứa
của biến mảng a.n là số phần tử thực tế của
a.
- Lệnh khai báo kiểu và khai b¸o biÕn.
- Quan s¸t chơng trình thực hiện và kết
quả trên màn hình.
- Lệnh sinh ngẫu nhiên giá trị cho mảng
a từ - 299 đến 299.
- In ra màn hình giá trị của từng phần tử
trong mảng a.
hiện nhiƯm vơ g×?
- hỏi: Lệnh s:=a+a[i]; đợc thựchiện bao
nhiêu lần?
- Thực hiện lại chơng trình lần cuối để
học sinh thấy kết quả.
2. Sửa chơng trình câu a để đợc chơng
trình giải quyết bài tốn ở câu b.
- Chiếu lên màn hình các lệnh cần
thêm vào chơng tình ở câu a.
- Hái: ý nghÜa cđa biÕn Posi vµ neg?
- Hỏi: Chức năng của lệnh:
If a[i] >0 then posi:=posi+1
else if a[i] <0 then neg:=neg+1;
- Yêu cầu học sinh thêm vào vị trí cần
thiết để chơng trình đếm c s.
- Yêu cầu học gõ nội dung và lu lại với
tên caub.pas. thực hiện chơng trình và
báo cáo kết quả.
- Có số lần đúng bằng số phần tử a[i]
chia hết k.
- Quan sát giáo viên thực hiện chơng
trình và kết quả trên màn hình.
2. Quan sát và chú ý theo dõi các câu hỏi
của giáo viên:
- Quan sát các lệnh và suy nghĩ vị trí cần
sửa trong chơng trình câu a.
- Dùng để lu số lợng đếm đợc.
- ChØ ra vị trí cần thêm vào trong chơng
trình.
- Lu chơng trình. Thực hiện chơng trình
và thông báo kết quả.
<b> IV. ỏnh giỏ cui bi</b>
1. Những nội dung đã học.
Một số thuật tốn cơ bản:
+ Tìm tổng các phần tử thỏa mãn điều kiện nào đó.
+ Đếm số các phần tử thỏa mãn điều kiện nào đó.
+ Tìm phần tử lớn nhất, nhỏ nhất.
2. C©u hỏi và bìa tập về nhà.
- Viết chơng trình nhập một mảng một chiều A[1..20] và nhập một số x. Đếm số lợng số
trong A có giá trị bằng x.
- Xem nội dung của bài thực hành số 4, sách giáo khoa, trang 65.
<b> Ngµy 22 / 11 /2008</b>
<b>TIếT 25: ppct</b>
Bài thực hành số 3(tt)
<b>I. mục tiêu.</b>
1. KiÕn thøc.
- Cñng cè lại các kiến thức cơ bản về kiểu dữ liệu mảng 1 chiều.
2. Kĩ năng
- Nâng cao kĩ năng sử dụng một số lệnh kiểu dữ liệu mảng một chiều trong lập trình, cụ
thể:
- Biết giải một số bài toán cơ bản thờng gặp:
3. Thái độ
- Góp phần rèn luyện tác phong, t duy lập trình: Tự giác, tích cực, chủ độngvà sáng tạo
trong tỡm kim kin thc.
<b>II. Đồ dùng dạy học.</b>
<b> 1. Chuẩn bị của giáo viên.</b>
- Phịng máy tính, máy chiếu Projector để minh họa.
2. Chuẩn bị của học sinh.
- S¸ch gi¸o khoa.
- Sè HS trong lớp
- Số Hs vắng
2. Kiểm tra bài cũ
Kiểm tra thiết bị máy tính và biên chÕ m¸y tÝnh cho hs theo tõng nhãm trong líp häc
3. Néi dung thùc hµnh.
- Viết chơng trình tìm phần tử có giá trị lớn nhất của mảng và in ra màn hình chỉ số và
giá trị của phần tử tìm đợc. Nếu có nhiều phần tử có cùng giá trị lớn nhất thì chỉ đa ra phần
tử có chỉ số nhỏ nhất.
a. Ch¬ng trình gõ vào máy và chạy thử
program tim_max;
const Nmax=100;
A:array[1..Nmax] of integer;
N,i,j:integer;
Begin
Writeln(‘nhap so luong phan tu cua day’);
Readln(N);
For i:=1 to N Do
Begin
Write(‘phan tu thu ‘,i,’=’);
Readln(a[i]);
End;
J:=1;
For i:=1 to N Do if A[i]>a[j] then j:=i;
Write(‘chi so la:’,j,’gia tri la:’,a[j]:4);
Readln
End.
b. Các bớc tiến hành:
<b>hng dn ca giỏo viờn</b> <b>Hot ng của học sinh</b>
1. láy một ví dụ thực tiễn: Ngời mù tìm
viên sỏi có kích thớc lớn nhất trong một
dãy các viên sỏi để gợi ý cho học sinh
thuật tốn tìm giá trị lớn nhất.
- Yêu cầu: Nêu thuật toán tìm phần tử
có giá trị lớn nhất.
2. Tìm hiểu chơng trình tìm chỉ số và giá
trị lớn nhất.
- Chiếu chơng tình ví dụ, s¸ch gi¸o
khoa, trang 64.
- Hái: Vai trß cđa biÕn j trong chơng
trình?
- Hỏi: Nếu muốn tìm phần tử nhỏ nhất,
cần sửa ở chỗ nào?
- Hỏi: Nếu muốn tìm phÇn tư lín nhÊt
- Hỏi: Cần giữ lại đoạn chơng trình tìm
giá trị lớn nhất không?
1. Theo dõi vị trí của giáo viên.
- So sánh lần lợt từ trái sang phải, giữ lại
chỉ số của phần tử lớn nhất.
2. Quan sát chơng trình, suy nghĩ và trả
lời.
- Giữ lại chỉ số của phần tử có giá trị lớn
nhất.
- PhÐp so s¸nh a[i] <a[j]
- Chuyển thứ tự duyệt từ n-1 vè 1.
3. Theo dõi yêu cầu, suy nghĩ các câu
hỏi định hớng để viết chơng trình.
- Hỏi: Cần thêm lệnh nào nữa?
- Hỏi: Vị trí thêm các lệnh đó?
- Yªu cầu: Viết chơng trình hoàn thiện.
- Yêu cầu học sinh nhập dữ liệu vào của
giáo viên và báo kết quả.
- Đánh giá kết quả của học sinh.
- Lệnh để in ra các chỉ số có giá tị bằng
giá trị lớn nhất tìm đợc.
- Sau khi tìm đợc giá trị lớn nhất.
- Soạn chơng trìnhvào máy. Thực hiện
chơng trình và thơng báo kết quả.
- Nhập dữ liệu vào và thông báo cho
giáo viên dữ liệu ra.
<b>IV. ỏnh giỏ cui bi</b>
1. Những nội dung đã học.
Một số thuật toán cơ bản:
+ Tìm tổng các phần tử thỏa mãn điều kiện nào đó.
+ Đếm số các phần tử thỏa mãn điều kiện nào đó.
+ Tìm phần tử lớn nhất, nhỏ nhất.
2. Câu hỏi và bìa tập về nhà.
- Xem nội dung của bài thực hành số 4, sách giáo khoa.
<b> Ngày 25 / 11 /2008</b>
<b>TIếT 26: ppct</b>
Bài thực hành số 4
<b>I. mục tiêu</b>
1. KiÕn thøc.
- Củng cố lại các kiến thức cơ bản khi lập trình với kiểu dữ liệu mảng.
- Làm quen với thuật toỏn sp xp n gin.
2. Kĩ năng.
- Rèn luyện kĩ năng sử dụng kiểu dữ liệu có cấu trúc, kĩ năng diễn đạt thuất tốn bằng
chơng trình sử dụng dữ liệu kiểu mảng.
- Rèn luyện kĩ năng nhận xét, phân tích và đề xuất cách giải bài tốn sao cho chơng trình
chạy nhanh hơn.
3. Thái độ.
- Tự giác, chủ động trong khi thực hành.
II. Đồ dùng dạy học
1. ChuÈn bị của giáo viên
- Phũng mỏy vi tính, máy chiếu Projedtor để hớng dẫn.
2. Chuẩn bị của học sinh.
- Sách giáo khoa, chơng trình đã đợc viết sẵn.
<b>III. Hoạt đơng dạy - học.</b>
1. ổn định tổ chức
- Sè HS trong lớp
- Số Hs vắng
2. Kiểm tra bài cũ
Kiểm tra thiết bị máy tính và biên chÕ m¸y tÝnh cho hs theo tõng nhãm trong líp häc
3. Néi dung thùc hµnh.
a. Néi dung:
Bµi toán 1: Viết chơng trình sắp xếp các phần tử của mảng theo thứ tự không giảm.
- Chơng trình minhhọa:
Uses CRT;
Const nmax=250;
type arrint=array[1..nmax] of integer;
Var n, i, j, y:integer;
Begin
clrscr;
Randomize;
Write(‘nhap n=’);
Readln(n);
For i:=1 to n do a[i]:=random(300) - random (300);
For i:=1 to n do write(a[i]:5);
Writeln;
For i:=n dowto 2 do
For i:=1 to i – 1 do
If a[i] >a[i+1] then
Begin
t:=a[i];
a[i]:=a[i+1];
a[i+1]:=t;
End;
Writeln(‘day so sau khi sap xep’);
For i:=1 to n do write(a[i]:7);
Writeln;
readln;
End.
- Yêu cầu: Soan chơng trình vào máy, chạy thử với các giá trÞ khac nhau cđa n. Rót ra
b. Các bớc tiến hµnh:
<b>hớng dẫn của giáo viên</b> <b>Hoạt động của học sinh</b>
1. Gợi ý cho học sinh thuật toán sắp xếp
tăng dần.
- Lấy một ví dụ thực tiễn: Ngời mù sắp
xếp một dÃy các viên bi theo kích thớc
không giảm.
- Yêu cầu: Vạch ra các bớc để sắp xếp
các phần tử của một mảng không giảm.
2. Tìm hiểu chơng trình ví dụ, sách giáo
khoa, trang 65.
- Chiếu chơng trình ví dụ lên bảng.
- Hỏi: Vai trò của biến i, j trong chơng
trình? Mỗi vòng lặp For trong đoạn chơng
trình sắp xếp có ý nghÜa g×?
- Hái: Ba lƯnh tg:=a[i]; a[i]:=a[i+1];
a[i+1]:=tg; cã ý nghÜa g×?
- Thực hiện chơng trình, nhập dữ liệu để
học sinh thấy kết quả chơng trình.
- Hỏi: Chơng trình làm cơng vịêc gì?
3. Sửa chơng trình để giẩi quyết bài tốn
ở câu b.
- Đặt yêu cầu mới: Khai báo thêm biÕn
1. CHú ý theo dõi những dẫn dắt của giáo
viên để trả lời câu hỏi.
- Lần lợt lấy từng phần tử từ trái qua
phải.
- C mỗi phần tử ta đem so sánh lần lợt
với các phần tử đứng bên phải của nó.
- Nếu nhỏ hơn thì đổi chỗ.
2. Quan sát chơng trình, suy nghĩ câu hỏi
và tr¶ lêi.
- BiÕn i, j dïng làm chỉ số.
- Mỗi vòng lặp For ứng với mỗi phép
duyệt lần lợt.
- Dùng để đổi giá trị của hai phần tử a[i]
với a[i+1].
- Quan s¸t giáo viên thực hiện chơng
trình.
- Chơng trình sắp xếp dÃy số theo thứ tự
không gi¶m.
3. Quan sát yêu cầu mới, chú ý định hớng
giải quyết của giáo viên.
nguyên Dem và bổ sung vào chơng trình
đoạn lệnh cần thiết để biến Dem tính số
lần thực hiện tráo đổi trong thuật tốn. In
kết quả tìm đợc ra màn hình.
- Hỏi: Đoạn chơng trình nào dùng để
thực hiện tráo đổi giá trị?
- Yêu cầu học sinh viết lệnh để đếm số
lần tráo đổi.
- Hỏi: Lệnh này đợc viết ở vị nào trong
chơng trỡnh?
- Yêu cầu học sinh soạn chơng trình?
- Yêu cầu học sinh nhập dữ liệu vào của
giáo viên và thông báo kết quả.
- Đánh giá kÕt qu¶ cđa häc sinh.
tg:=a[i];a[i]:=a[i+1];a[i+1]:=tg;
- Ngay sau đoạn tráo đổi.
- Soạn chơng trình vào máy, thực hiện
chơng trình và thông báo kết quả.
- Nhập dữ liệu theo yêu cầu của giáo
viên, thực hiện chơng trình và thông báo
kết quả sau khi thực hiÖn.
<b>IV. Đánh giá cuối bài</b>
1. Những nội dung đã học.
- Thuật toán sắp xếp n gin.
- Một bài toán có thể có nhiều cách viết thành một chơng trình. Cần chän c¸ch cã sè
phÐp tÝnh Ýt nhÊt.
2. Câu hỏi và bài tập về nhà.
- Xem lại tất cả các kiến thức đã học, bao gồm: Lệnh cơ bản, lệnh điều khiển, kiểu dữ
liệu cơ bản, kiểu dữ liệu có cấu trúc.
<b> Ngµy 03 / 12 /2008</b>
<b>TIÕT 27: ppct</b>
Bµi thùc hµnh sè 4
<b>I. mơc tiªu</b>
1. KiÕn thøc.
- Cđng cố lại các kiến thức cơ bản khi lập trình với kiểu dữ liệu mảng 2 chiều.
- Cách tham chiếu tới các phân tử mảng 2 chiỊu
- Lµm quen víi tht toán mới.
2. Kĩ năng.
- Rèn luyện kĩ năng sử dụng kiểu dữ liệu có cấu trúc, kĩ năng diễn đạt thuất toán bằng
chơng trình sử dụng dữ liệu kiểu mảng.
- Rèn luyện kĩ năng nhận xét, phân tích và đề xuất cách giải bài tốn sao cho chơng trình
chạy nhanh hơn.
3. Thái độ.
- Tự giác, chủ động trong khi thực hành.
II. Đồ dựng dy hc
1. Chuẩn bị của giáo viªn
- Phịng máy vi tính, máy chiếu Projedtor để hớng dẫn.
2. Chuẩn bị của học sinh.
- Sách giáo khoa, chơng trình đã đợc viết sẵn.
<b>III. Hoạt đơng dạy - học.</b>
1. ổn định tổ chức
- Sè HS trong líp
- Sè Hs vắng
2. Kiểm tra bài cũ
Kiểm tra thiết bị máy tính và biên chế máy tính cho hs theo tõng nhãm trong líp häc
3. Néi dung thùc hµnh.
Cho mảng A gồm n phần tử. Viết chơng trình tạo mảng B[1..n], trong đó B[i] là tổng giá
trị của i phần tử đầu tiên của mảng A.
Ch¬ng tr×nh minh häa:
Const nmax=100;
Type myarray=array[1..nmax] of integer;
Var n, i, j:integer;
a,b:arrint;
Begin
Randomize;
Write(‘nhap n=’);
Readln(n);
For i:=1 to n do a[i]:=random(300) – random(300);
For i:=1 to n do write(a[i]:5);
Writeln;
For i:=1 to n do
Begin
B[i]:=0;
For j:=1 to i do B[i]:=B[i]+A[j];
End;
For i:=1 to n do write(B[i]5);
Readln;
End.
<b>hớng dẫn của giáo viên</b> <b>Hoạt động của học sinh</b>
1. Xác định bài toán.
- Chiếu đề bài lên bảng.
- Yêu cầu: Xác định dữ liệu vào, dữ liệu
ra?
- Gợi ý để học sinh đề xuất thuật toán
thơ.
2. giới thiệu chơng trình cha cải tiến.
- Chiếu chơng trình diễn đạt thuật tốn.
- Thực hiện chơng trình để học sinh biết
thời gian thực hiện chơng trình và kết quả
của chơng trình.
- Hái: Trong chơng trình phải thực hiên
- Hỏi: Có cách nào để cải tiến?
- Lệnh này đợc thay lệnh nào trong
ch-ơng trình? Viết ở vị trớ no?
3. Yêu cầu: Viết chơng trình hoàn thiƯn.
4. TiĨu kÕt: Cïng mét bài toán, có nhiều
cách giải quyết khác nhau. Ngời lập trình
cần chọn cách sao cho máy thực hiện
nhanh nhÊt.
1. Quan sát đề bài và trả lời câu hỏi.
- Vào: Mảng A gồm n phần tử.
- Ra: Mảng B gồm n phần tử.
- Tại vị trí i ta tính tổng giá trị các
phần tử từ 1 đến i.
2. Quan sát chơng trình trên bảng.
- Quan sát giáo viên thực hiện, nhận
xét về thời gian thực hiện chơng trình.
- Phải thực hiện n(n+1)/2 phép cộng.
- Để tính bớc thứ i, ta sử dụng kết quả
đã tính ở bớc thứ i – 1 .
B[i]:=B[i-1]+A[i];
- Thay đoạn lÖnh
For j:=1 to i do B[i]:=B[i]+A[j];
3. Soạn chơng trình vào máy, thực hiện
chơng trình và thông báo kết quả.
- Nhận xét về thời gian thực hiện của
chơng trình này so với chơng trình trớc
khi cải tiến.
IV. ỏnh giá cuối bài
1. Những nội dung đã học.
- Thuật toán sắp xếp đơn giản.
- Một bài toán có thể có nhiều cách viết thành một chơng trình. Cần chọn cách cã sè
phÐp tÝnh Ýt nhÊt.
2. C©u hái vµ bµi tËp vỊ nhµ.
- Xem lại tất cả các kiến thức đã học, bao gồm: Lệnh cơ bản, lệnh điều khiển, kiểu dữ
liệu cơ bản, kiểu dữ liệu có cấu trúc.
<b> Ngµy 06 / 12 /2008</b>
<b>TIÕT 28: ppct</b>
KiĨu dữ liệu xâu (tiết1)
I. Mục tiêu.
<b> 1. KiÕn thøc.</b>
- Biết đợc một kiểu dữ liệu mới, biết đợc khái niệm kiểu xâu.
- Phân biệt đợc sự giống và khác giữa kiểu mảng kí tự với xâu kí tự.
- Biết đợc cách khai báo biến, nhập xuất dữ liệu, tham chiếu đến từng kí tự của xâu.
- Biết các phép toán liờn qua n xõu.
2. Kĩ năng.
- Khai báo đợc biến kiểu xâu trong ngôn ngữ lập trình Pascal. Sử dụng biến xâu và các
phép toán trên xâu để giải quyết một bài toán n gin.
<b>II. Đồ dùng dạy học.</b>
1. Chuẩn bị của giáo viên.
- Mỏy vi tớnh, máy chiếu Projector để giới thiệu ví dụ.
2. Chuẩn bị của học sinh
- S¸ch gi¸o khoa.
<b>III. Hoạt đơng dạy - học.</b>
1. ổn định tổ chức
- Sè HS trong líp
- Sè Hs v¾ng
2. KiĨm tra bài cũ
Lồng vào bài dạy
3. Các bớc tiến hµnh:
<b>hớng dẫn của giáo viên</b> <b>Hoạt động của học sinh</b>
1. Tìm hiểu ý nghĩa của xâu kí tự.
- Chiếu đề bài của bài toán đặt vấn đề:
Viết chơng trình nhập họ tên của 30 học
sinh trong lớp.
- Hỏi: ta sẽ chọn kiểu dữ liệu nh thế
nào? Khai báo biến nh thế nào?
- Yêu cầu học sinh: Viết đoạn lệnh để
nhập và xuất dữ liệu cho từng phần tử.
- Hỏi: Có những khó khăn gì gặp phải?
- Dẫn dắt: Cần có một kiểu dữ liệu mới
cho phép ta nhập/ xuất dữ liệu cho xâu
bằng một lệnh.
2. Tìm hiểu về kiểu xâu.
- Chiếu lên bảng cách khia báo biến
xâu trong ngôn ngữ lập trình Pascal.
- Hái: ý nghÜa cña tõ String, [n]
- Hỏi: Khi khai báo không có[n] thì số
lợng kí tự tối đa là bao nhiêu?
- Yêu cầu học sinh cho ví dụ mét x©u
kÝ tù
- Hái: X©u cã bao nhiªu kÝ tù?
- Diễn giải: Mỗi kí tự đợc gọi là một
phần tử của xâu. Số lợng kí tự trong xâu
đợc gọi là độ dài của xâu.
1. Quan s¸t, suy nh\ghÜ và trả lời.
- Kiu mảng một chiều gồm 30 kí tự.
- Khai báo một biến mảng A để lu họ tên
của một học sinh.
Readln(A[1]0; Readln (A[2])
Readln(A[3]0; Readln (A[4]);
...
- Chơng trình đợc viết dài dịng. Khi
nhập dữ liệu, phải thực hiện gõ nhiều phím.
2. Quan s¸t cÊu tróc khai b¸o và tham
khảo sách giáo khoa.
- String là tên kiểu xâu.
- [n] là giá trị quy định số lợng kí tự tối
đa mà biến xâu có thể chứa.
- Số kí tự tối đa là 255.
- Hỏi: Xâu chỉ gồm một kí tự trống
đ-ợc viÕt nh thÕ nµo? Sè lỵng kÝ tù bao
nhiªu?
- Hỏi: Xâu rỗng đợc viết nh thế nào?
Số lợng kí tự bao nhiêu?
3. NhËp/xt d÷ liƯu cho biến xâu trong
ngôn ngữ Pascal.
- Giới thiƯu cÊu tróc chung cđa thđ tơc
nhËp/xt d÷ liƯu.
- Yêu cầu học sinh tìm ví dụ cơ thĨ.
- Hái: Khi viÕt lƯnh nhËp/xt d÷ liƯu
cho biÕn xâu, có gì khác so với biến
mảng các kÝ tù.
- Dẫn dắt: Ta có thể sử dụng lệnh gán
để nhập giỏ tr cho bin xõu. Cu trỳc
chung:
Tên_biến_xâu:=hằng_xâu;
- Yêu cầu học sinh t×m mét vÝ dơ cơ
thĨ.
4. Tham chiếu đến từng kí tự của xâu.
- Giới thiệu cấu trúc chung.
- Hỏi: Có gì giống và khác nhau so với
cách tham chiếu đến từng phần tử của
mảng.
- Yêu cầu học sinh tìm một ví dụ.
5. KiÓm tra kiÕn thøc.
- ChiÕu néi dung bµi tËp kiĨm tra kiÕn
thøc:
Var st:string[1]; c:char;
Begin
c:=st[1]; {1}
c:=st; {2}
End.
- Hỏi: Trong hai lệnh {1} và {2},
Lệnh nào đúng?
- Thực hiện chơng trình để học sinh tự
6. gợi nhớ các phép toán đã học.
- Hỏi: Hãy nhắc lại các phép toán đã
học trên kiểu d liu chun.
7. Tìm hiểu chức năng của một số phép
toán trong kiểu xâu qua một số ví dụ.
- Chiếu chơng trình ví dô:
Var st:string;
Begin
st:=’Ha’+ ‘Noi’;
Write()st ;
readln;
End.
- X©u cã 6 kí tự, dấu cách là một kí tự.
- Kí hiệu của xâu gồm một kí tự trống là
‘ ’. Xâu nà có độ dài là 1.
- Kí hiệu của xâu rỗng là ‘ ’. Xâu này
có độ dài là 0.
3. Quan sát bảng để trả lời.
- VÝ dô: Readln(ho ten);
- VÝ dô: Write(‘ho ten’,hoten);
- Viết một lệnh nhập nguyên cho cả xâu.
Viết lệnh gọn hơn, CHơng trình gọn.
- VÝ dô:St:=’HA NOI’;
4. Quan sát và suy nghĩa để trả lời.
- Gièng cÊu tróc chung khi tham chiÕu
tªn biÕn[chØ sè]
- VÝ dô: st[2]
5. Quan sát chơng trình trên bảng và độc
lập suy nghĩ.
- Lệnh {1} đúng.
- LÖnh {2} sai. không thể gán một xâu
cho một kí tự .
6. Chú ý theo dõi, suy nghĩ và trả lời.
- PhÐp to¸n sè häc.
- PhÐp to¸n so s¸nh.
- PhÐp toán logic.
7. Quan sát ví dụ, suy nghĩ và trả lời.
- Quan sát chơng trình.
- Hái: KÕt qu¶ của chơng trình in ra
màn hình?
- Thực hiện chơng trình để học sinh
thấy kết qu.
- Yêu cầu học sinh tìm mét sè vÝ dơ
kh¸c.
- Hái: Chức năng của phép cộng?
- Giới thiệu thêm một số ví dụ khác và
yêu cầu häc sinh cho biÕt kÕt qu¶.
st:= ‘Ha’ + ‘Noi’;
st:= ‘Ha ’+ ‘Noi’;
st:= ‘ ’ + ‘Noi’;
st:= ‘Ha Noi’ + ‘ViÖt’ + ‘Nam’;
- Chiếu chơng trình ví dụ về phép so
Var bo:boolean;
Begin
bo:= ‘AB’ < ‘AC’;
Write(bo);
readln;
End.
- Hỏi: Kết quả của chơng trình in ra
màn hình?
- Thc hin chng trình để học sinh
thấy kết quả.
- Hỏi: Cịn có phép so sánh nào nữa?
- Chiếu các ví dụ về các phép so sánh
và yếu cầu học sinh cho kết quả của các
phép so sánh đó.
‘AB’ < ‘ABC’
‘AC’ < ‘ABC’
- Lu ý cho học sinh: Một xâu có độ dài
nhỏ hơn có thể lớn hơn (>) xâu có độ dài
lớn.
- KÕt qu¶ cho ta: st= ‘HA NOI’
- Quan sát kết quả chơng trình.
- VÝ dô: st:= ‘HA NOI’ + ‘Co ho
GUOM’. KÕt qu¶:
st= ‘HA NOI co ho GUOM’
- Là phép toán nối xâu thứ hai vào cuối
xâu thø nhÊt.
st:= ‘Ha Noi’;
st:= ‘Ha Noi’;
st:= ‘ Ha Noi’;
st:= ‘Ha Noi ViÖt Nam’;
- Quan sát chơng trình để dự tính kết
quả.
- Kết quả là: TRUE
- Quan sát kết quả chơng trình để kiểm
chứng suy luận.
- Cã c¸c phÐp <, <=,>=, <>, =
- KÕt qu¶ True.
- KÕt qu¶: False.
IV. Đánh giá cuối bài
1. Những nội dung đã học.
- Khai báo biến: VAR tên_biến: STRING[độ dài lớn nhất của xâu];
- Nhập xuất giá trị cho biến xâu: read/readln(); write/writeln();
- Tham chiếu đến từng kí tự trong xâu: tên_biến[chỉ số].
- Phép ghép xâu: Kí hiệu là: +, Đợc sử dụng để ghép nhiều xâu thành một xâu.
- Các phép so sánh: =, <>, >, <, <=, >=: thực hiện việc so sỏnh hai xõu.
2. Câu hỏi và bài tập vỊ nhµ.
- Xem phần kiến thức lí thuyết cịn lại trong bìa, bao gồm các hàm và thủ tục liên quan
đến xâu, sách giáo khoa, trang 70 – 71.
<b> Ngày 09 / 12 /2008</b>
<b>TIếT 29: ppct</b>
Kiểu dữ liệu xâu (tiết 2)
I. Mục tiêu.
- Biết đợc lợi ích của các hàm và thủ tục liên uqna đến xâu trong ngôn ngữ lập trình
Pascal.
- Nắm đợc cấu trúc chung và chức năng của một số hàm và thủ túc liên quan đến xâu của
2. Kĩ năng.
- Nhận biết và bớc đầu sử dụng đợc một số hàm và thủ tục để giải quyết một số bài tập
đơn giản liên quan.
II. §å dïng dạy học.
1. Chuẩn bị của giáo viên.
- Máy vi tính, máy chiếu Projector để giới thiệu ví dụ, sách giáo viên.
2. Chuẩn bị của học sinh.
- S¸ch gi¸o khoa.
III. Hoạt động day – học .
1. ổn định tổ chức
- Sè HS trong líp
- Sè Hs v¾ng
2. KiĨm tra bài cũ
Lồng vào bài dạy
3. Các bớc tiến hµnh:
<b>hớng dẫn của giáo viên</b> <b>Hoạt động của học sinh</b>
1. giíi thiƯu cÊu tróc chung cđa hµm
length(st) lên bảng.
- Hỏi: ý nghĩa của Length và của st?
- Chiếu chơng tr×nh vÝ dơ:
Var st:tring;
Begin
st:= ‘ha Noi’;
Write(length(st));
readln;
End.
- Hỏi: Kết quả của chơng tình in ra
màn hình?
- Thc hiện chơng trình để học sinh
thấy kết quả.
- Hỏi: Chức năng của hàm length() là
g×?
- Chiếu đề bài tập ứng dụng: Viết
ch-ơng trình nhập một xâu, in ra màn hình
số kí tự ‘a’ có trong xâu.
2. Giíi thiƯu cÊu tróc chung cđa hµm
Upcase(ch).
- Chiếu chơng trình ví dụ:
Begin
ch:= ‘h’;
Write(upcase(ch));
readln;
End.
- Hái: KÕt quả của chơng trình in ra
màn hình?
1. Quan s¸t cÊu tróc chung.
- Length: Là tên hàm, có nghĩa là độ dài,
st: là một biểu thức xâu kí tự.
- Quan sát chơng trình để dự tính kết
qu.
- Kết quả là : 6
- Quan s¸t kết quả của chơng trình.
- Hàm cho số lợng kí tự của xâu st.
2. Quan sát cấu trúc chung của hàm
Upcase.
- Quan sát chơng trình để dự tính kết
quả.
- Thực hiện chơng trình để học sinh
thấy kết quả.
- Hỏi: Chức năng của hàm upcase()?
- Chiếu bài tập ứng dụng: Viết chơng
trình nhập một xâu, in ra màn hình xâu
đó dạng in hoa.
3. giíi thiƯu cÊu tróc chung cđa hµm
Pos(s1, s2).
- Chiếu chơng trình ví dụ:
Var vt:byte;
Begin
vt:=Pos(‘cd’, ‘abcdefcd’);
Write(vt);
readln;
- Hỏi: Kết quả của chơng trình in ra
màn hình?
- Thực hiện chơng trình để học sinh
thấy kết quả.
- Hái: Chøc năng của hàm Pos?
- Thay tham số của hàm Pos trong
ch-ơng trình bằng Pos(k, abc). Hỏi kết
quả của hàm bằng bao nhiêu?
- ChiÕu bµi tËp øng dơng: Viết chơng
trình nhập vào một xâu st. Xét xem trong
xâu có dấu cách hay không?
- Hỏi: Có cách giải nào khác?
4. Giíi thiƯu cÊu tróc chung cđa hàm
copy(st, vt, n).
- Chiếu chơng tr×nh vÝ dơ:
Var st:string;
Begin
st:=copy(‘bai tap’, 3, 4);
Write(st);
readln;
End.
- Hỏi: kết quả chơng trình in ra màn
hình?
- thc hin chơng trình để học sinh
thấy kết quả.
- Hỏi: Chức năng của hàm copy?
- Thay các tham số của hàm copy trong
chơng trình ví dụ trên nh sau và hỏi kết
quả in ra màn hình:
- Thc hin chơng trình để học sinh
- Quan sát kết quả của chơng trình.
- Cho giá trị là chữ in hoa cña ch.
Var st:string;
Begin
readln(st);
For i:=1 to length(st) do
write(upcase(st[i]));
End.
3. Quan sát cấu trúc chung của hàm Pos
và các ví dụ để biết chức năng.
- Quan sát chơng trình để dự tính kết quả.
- Kết quả là: 3
- Quan sát kết quả của hcơng trình.
- Hàm cho giá trị là một số nguyên là vị
trú của xâu st2 trong xâu st2.
- Bằng không 0.
Var st:tring;
Begin
readln(st);
if pos(‘ ’, st) <>0 then write(‘co’) else
End.
- Có thể sử dụng For để tìm dấu cách
trong xâu.
4. Quan sát cấu trúc chung của hàm
coppy và ví dụ để biết chức năng.
- Quan sát chơng trình để dự tính kết
quả.
- Kết quả là: i ta
- Quan sát kết quả của chơng trình.
- Hàm cho giá trị là một xâu kí tự đợc
lấy trong xâu st, gồm n kí tự bắt đầu tại vị
trí vt.
- Quan sát kết quả của chơng trình để
kiểm nghiệm suy luận.
thÊy kÕt qu¶.
5. Giíi thiƯu cÊu tróc chung cđa thđ tơc
delete(st, vt, n);
- Hỏi: Kết quả của chơng trình in ra
màn h×nh?
- Thực hiện chơng trình để học sinh
thấy kết quả.
- Hái: Chức năng của thủ tục delete();
- Thay lệnh gán st:= Ha Noi; và thủ
tục xóa bởi các lệnh sau và hỏi kết quả in
ra màn hình.
st:= abc; Delete(st,1,5);
st:=’ abc’; Delete(st,5,2);
st:=’ abc’; Delete(st,1,0);
- Chiếu bài tập ví dụ: Viết chơng trình
nhập một xâu và xóa đi các dấu cách ở
đầu xâu.
6. Giới thiệu cấu trúc chung của thủ tôc
Insert(st1, st2, vt);
- Hái: KÕt quả của chơng trình in ra
màn hình?
- Thực hiện chơng trình để học sinh
thấy kết quả.
- Hỏi chức năng của thủ tục insert();
1. Xác định bài toán.
- Chiếu nội dung để bài lên bảng.
- Xác định dữ liệu vào, dữ liệu ra.
- Hỏi: Các nhiệm vụ chính khi giải
quyết bài tốn này?
- Hỏi: trong bài này, ta cần sử dụng
những hàm và thủ tục nào?
2. Chia lớp làm 3 nhóm. Yêu cầu viết
chơng trình lên bìa trong.
- Thu phiếu trả lời. Chiếu kết quả lên
bảng. Gọi học sinh nhóm khác nhận xét,
đánh giá và bổ sung.
3. Chiếu chơng trình mẫu giáo viên đã
viết để chính xác hóa cho hc sinh.
delete và các ví dụ.
- Quan s¸t kết quả của hcơng trình.
- Thđ tơc thùc hiƯn viƯc xãa ®i trong
biến xâu st gồm n kí tự, bắt đầu từ vÞ trÝ vt.
st:= ‘’; xâu rỗng.
st:= abc;
st:= abc;
Var st:string;
Begin
readln(st);
While st[1]= ‘ ’ do delete(st, 1, 1);
Writeln(st);
readln;
End.
- KÕt qu¶ st2=’ Ha Noi’
- Quan sát kết quả của chơng trình.
1. Quan sát suy nghĩ để trả lời.
- Vào: Một xâu kí tự bất kì.
- Ra: Một xâu chỉ có 1 kí trắng giữa hai
từ.
- Xóa mọi dấu cách thừa đầu xâu và cuối
xâu.
- Xóa các dấu cách thừa Giữa hai từ.
2. Thảo luận theo nhóm để viết chơng
trình.
- Thông báo kết quả.
- Nhận xét và bổ sung những thiếu sót
của nhóm khác.
3. Quan sát và ghi nhớ.
IV. Đánh giá cuối bài
1. Nhng hm v th tục liên quan đến xâu.
- Thủ tục Delete(st, vt,n);
- Thđ tơc Insert(st1, st2, vt);
- Hµm Copy(st, vt,n)
- Hµm Length(st)
- Hµm Pos(st1, st2)
- Hµm UpCase(ch)
- Giải bài tập số 10 trang 80.
- Viết chơng trình nhập một xâu. In ra màn hình sỗ từ có trong xâu.
- Xem phần nội dung của bài thực hành số 5, sách giáo khoa, trang 73.
- Chuẩn bị một số bài tập để thực hành.
<b> Ngµy 12 / 12 /2008</b>
<b>TIếT 30: ppct</b>
<b>I. Mục tiêu.</b>
1. Kiến thøc.
- Củng cố lại cho học sinh những kiến thức liên quan đến tổ chức rẽ nhánh và lặp : Cấu
trúc lặp, sơ đồ thực hiện, sự thực hiện của máy khi gặp lệnh lp.
2. Kĩ năng.
- Rốn luyện kĩ năng vận dụng và linh hoạt trong công việc lựa hcọn cấu trúc rẽ nhánh và
cấu trúc lặp phù hợp để giải quyết bài toán đặt ra.
3. Thái độ.
- Tự giác tích cực, chủ động trong giải quyết các bài tập.
<b>II. dựng dy hc.</b>
2. Chuẩn bị của giáo viên.
- Máy chiếu Projector, máy vi tính để giới thiệu ví dụ minh họa, một số chơng trình mẫu.
2 . Chuẩn bị của học sinh
- S¸ch gi¸o khoa.
<b>III. Hoạt động dạy - học.</b>
1. ổn định tổ chức
- Sè HS trong líp
- Sè Hs vắng
2. Kiểm tra bài cũ
Lồng vào bài dạy
3. Nội dung bµi míi
<b>hớng dẫn của giáo viên</b> <b>Hoạt động của hc sinh</b>
Câu1: Viết chơng trình nhập vào một xâu
hÃy in ra màn hình xâu ngợc lại.
Đối với bài toán này ta sử dụng những biến
nào?
Ta khai báo nh thế nµo?
ý tởng để giải bài tốn này?
u cầu hs viết chơng trình?
Giáo viên u cầu các nhóm cữ đại diện
lờn trỡnh by bi gii ca mỡnh
HS: Nghiên cứu câu hỏi và trả lời
Ta sử dụng biến St: Biến kiểu x©u
I: kiểu số nguyên để làm
Khai b¸o nh sau:
Var st: String;
I: byte;
Ta tham chiếu tời từng vị trí một từ cuối
xâu đến dầu xâu và in ra màn hình
Hs chia thnh tng nhúm v vit chng
trỡnh.
Đại diện các nhóm lên trình bày:
Program cau1;
Var st: String;
I:byte;
Hàm lấy độ dài thực sự của xâu st là hàm
gì?
Gọi hs đại diện nhóm khác lên nhn xột.
Cõu2:
Viết chơng trình thực hiện các công việ
sau:
a. Nhập vào một xâu họ tên (mỗi từ cách
nhau một kí tự trắng)
b. Đếm và in ra màn hình số từ có trong
c. In ra màn hình tên của ngời đó?
u cầu Hs nghiên cứu đề và viết chơng
trình
Giáo viên yêu cầu viết c hịgn trình câu a
u cầu HS nêu ý tởng để viết chơng trình
cho câu b
- ý tëng gi¶i?
Ch
ơng trình
Var s: String[50];
I, dem: integer;
Begin
Dem:=0;
Writeln('hay nhap xau ho ten');
Readln(s);
For i:=1 to length(s) Do
If s[i] = '' then dem:=dem+1;
Writeln('so ki tu tu la:', s);
End.
Yêu cầu Hs tìm ý tởng để giải câu c?
Bài toán bắt ta phải in ra phàn nào?
Hãy nêu ý tởng để giải quýêt bài toán ú?
Yêu cầu HS về nhà viết chơng trình hoàn
Writeln( Hay nhap xau vao’);
Readln(ST);
Writeln(‘xau in nguoc lai’);
For i:= length(st) To 1 Do write(ST[i]);
Readln
End.
Hs nghiên cứu đề
Chia thành từng nhóm mỗi nhóm có 2 bàn
ngồi đối diện với nhau cùng thảo luõn v
c i din ca nhúm ghi chộp
Đại diện một HS lên bảng việt chơng trình
Ta thy s tù bằng số kí tự trắng +1
Trớc tiên ta đếm số kí tự trắng
Kiểm tra từ đầu đến cuối các phần tử của
xâu nếu phần tử nào = kí tự trắng thì đếm
đợc cơng thêm một đơn vị
Hs nhận xét và cho ý kiến về chơng trình
trên.
Phn cuối cùng trong xâu họ tên
Từ kí tự trắng cuối cựng n ht
Hs:
chỉnh
IV. Cũng cố và dặn dò
- Về nhà soạn bài tập trong sách giáo khoa tin 11
- Chuẩn bị trớc bài thực hành
<b> Ngµy 14 / 12 /2008</b>
<b>TIÕT 31: ppct</b>
Bµi thùc hµnh sè 5
I. Mơc tiªu.
<b> 1. KiÕn thøc.</b>
- Khắc sâu thêm phần kiến thức về lí thuyết kiểu xâu kí tự, đặc biệt là các hàm và thủ tục
liên quan.
- Nắm đợc một số thuật toán cơ bản: Tạo xâu mới, đếmm số lần xuất hiện một kí tự ...
- Khai b¸o biÕn kiĨu x©u.
- Nhập, xuất gá trị cho biến xâu.
- Duyệt qua tất cả các kí tự của xâu.
- Sử dụng đợc các hàm và thủ tục chuẩn.
3. thái độ
- Tích cực, chủ động trong thực hành.
II. Đồ dung dy hc
1. Chuẩn bị của giáo viên.
- Máy chiếu Projestor để hớng dẫn. Tổ chức trong phịng máy để học sinh có đợc kĩ năng
cơ bản khi làm việc với kiểu xâu.
2. ChuÈn bÞ cña häc sinh.
- Sách giáo khoa, bài tập ở nhà.
III. Hoạt động dạy – học
1. ổn định tổ chức
- Sè HS trong lớp
- Số Hs vắng
2. Kiểm tra bài cũ
Lồng vào bài dạy
3. Các bớc tiến hành:
<b>hng dn ca giỏo viờn</b> <b>Hot động của học sinh</b>
1. Tìm hiểu đề bài.
- giới thiệu nội dung đề bài lên bảng.
- Diễn giải: Một xâu đợc gọi là
Palidrom nếu ta đọc các kí tự từ phải sang
trái sẽ giống khi đọc từ trái sang phải.
- Yêu cầu học sinh cho hai ví dụ về xâu
palidrom và một ví dụ khơng phải là
palidrom .
2. t×m hiĨu chơng trình gợi ý.
- Chiếu chơng trình lên bảng.
- Hỏi: Chơng trình sau đây có chức
năng làm gì? Kết quả in ra màn hình nh
thếnào?
- Thực hiện chơng trình để học sinh
1. Quan sát, đọc kĩ đề.
Phải: 12321 abccba
2. Quan sát chơng trình, suy nghĩ phân
tích để hiểu chơng trình.
- Kiểm tra một xâu có phải Palidrom hay
không?
- In ra: ‘xau la Palidrom’
kiĨm nghiƯm suy ln cđa m×nh.
3. Cải tiến chơng trình.
- Nờu u cầu mới: Viết lại chơng trình
mà khơng sử dụng biến trung gian p.
- Yêu cầu: Nhận xét về các cặp ở vị trí
đối xứng nhau trong một xâu palidrom?
- Hỏi: kí tự thứ i đối xứng với kí tự vị trí
nào?
- Hỏi: Cần phải so ssánh bao nhiêu cặp
kí tự trong xâu để biết đợc xâu đó ;à
palidrom?
- Hỏi: Dùng cấu trúc lặp nào để so
sánh?
- Yêu cầu học sinh viết chơng trình
hoàn chỉnh.
- Yêu cầu học sinh nhập dữ liệu cho sẵn
của giáo viên và thông báo kết qu¶.
- Xác nhận những bài làm cú kt qu
ỳng.
trình, nhập dữ liệu và kết quả của chơng
trình.
3. Chú ý theo dõi yêu cầu của giáo viên,
trả lời một số câu hỏi dÉn d¾t.
- Các kí tự ở vị trí này giống nhau.
- Kí tự thứ i đối xứng với kí t thứ
length() – i +1
- So s¸nh tèi ®alength() div 2.
- Cã thĨ dïng For hc While.
- Thực hiện soạn thảo chơng trình vào
máy theo yêu cầu cải tiến của giáo viên.
- Nhập dữ liệu vào và thông báo kết quả.
<b>IV. ỏnh giá cuối bài</b>
1. Những nội dung đã học.
- Một số thuật toán đơn giản liên quan đến xâu kí tự: Kiểm tra một xâu đối xứng, tìm tần
xuất hiện của kí tự có trong xõu.
<i><b> 2. Câu hỏi và bài tập về nhµ.</b></i>
- Chuẩn bị nọi dung cho tiết lí thuyết tiết theo. đọc trứơc nội dung bài kiểu bản ghi, sách
giáo khoa, trang 74.
<b> Ngµy 13 / 12 /2008</b>
<b>TIÕT 32: ppct</b>
Bµi thùc hµnh sè 5
I. Mơc tiªu.
<b> 1. KiÕn thøc.</b>
- Khắc sâu thêm phần kiến thức về lí thuyết kiểu xâu kí tự, đặc biệt là các hàm và thủ tục
liên quan.
- Nắm đợc một số thuật toán cơ bản: Tạo xâu mới, đếmm số lần xuất hiện một kí tự ...
2. Kĩ năng
- Khai b¸o biÕn kiĨu x©u.
- Nhập, xuất gá trị cho biến xâu.
- Duyệt qua tất cả các kí tự của xâu.
- Sử dụng đợc các hàm và thủ tục chuẩn.
3. thái độ
- Tích cực, chủ động trong thực hành.
II. Đồ dung dy hc
2. Chuẩn bị của giáo viên.
- Máy chiếu Projestor để hớng dẫn. Tổ chức trong phịng máy để học sinh có đợc kĩ năng
cơ bản khi làm việc với kiểu xâu.
2. ChuÈn bÞ cđa häc sinh.
- Sè HS trong líp
- Số Hs vắng
2. Kiểm tra bài cũ
Lồng vào bài dạy
3. Các bớc tiến hành:
<b>hng dn ca giỏo viờn</b> <b>Hoạt động của học sinh</b>
1. Tìm hiểu đề bài.
- giới thiệu nội dung đề bài lên bảng.
- Diễn giải: Một xâu đợc gọi là
Palidrom nếu ta đọc các kí tự từ phải sang
trái sẽ giống khi đọc từ trái sang phải.
- Yêu cầu học sinh cho hai ví dụ về xâu
palidrom và một ví dụ khơng phải là
palidrom .
2. t×m hiểu chơng trình gợi ý.
- Chiếu chơng trình lên bảng.
- Hỏi: Chơng trình sau đây có chức
năng làm gì? Kết quả in ra màn hình nh
thếnào?
- Thực hiện chơng trình để học sinh
kiểm nghiệm suy luận của mình.
3. Cải tiến chơng trình.
- Nêu u cầu mới: Viết lại chơng trình
mà khơng sử dụng biến trung gian p.
- Yêu cầu: Nhận xét về các cặp ở vị trí
đối xứng nhau trong một xâu palidrom?
- Hỏi: kí tự thứ i đối xứng với kí tự vị trí
nào?
- Hỏi: Cần phải so ssánh bao nhiêu cặp
kí tự trong xâu để biết đợc xâu đó ;à
palidrom?
- Hỏi: Dùng cấu trúc lặp nào để so
sánh?
- Yêu cầu học sinh viết chơng trình
hoàn chỉnh.
- Yêu cầu học sinh nhập dữ liệu cho sẵn
của giáo viên và thông báo kết qu¶.
- Xác nhận những bài làm có kết quả
1. Quan sát, đọc kĩ đề.
Ph¶i: 12321 abccba
Không phải: abcdea
2. Quan sát chơng trình, suy nghĩ phân
tích để hiểu chơng trình.
- KiĨm tra mét x©u cã phải Palidrom hay
không?
- In ra: xau la Palidrom’
‘Xau khong la palidrom
- Quan sát giáo viên thực hiện chơng
trình, nhập dữ liệu và kết quả của chơng
trình.
3. Chú ý theo dõi yêu cầu của giáo viên,
trả lời một số câu hỏi dẫn d¾t.
- Các kí tự ở vị trí này giống nhau.
- Kí tự thứ i đối xứng với kí t thứ
length() – i +1
- So s¸nh tèi ®alength() div 2.
- Cã thĨ dïng For hc While.
- Thùc hiện soạn thảo chơng trình vào
máy theo yêu cầu cải tiến của giáo viên.
- Nhập dữ liệu vào và thông báo kết quả.
<b>IV. ỏnh giỏ cuối bài</b>
1. Những nội dung đã học.
- Một số thuật toán đơn giản liên quan đến xâu kí tự: Kiểm tra một xâu đối xứng, tìm tần
xuất hiện của kí tự có trong xõu.
<i><b> 2. Câu hỏi và bài tập về nhà.</b></i>
- Chuẩn bị nọi dung cho tiết lí thuyết tiết theo. đọc trứơc nội dung bài kiểu bản ghi, sách
giáo khoa, trang 74.
Ngµy 16 / 12 /2009
<b>TIếT 31: ppct</b>
Kiểu bản ghi
I. Mục tiêu.
1. Kiến thøc.
- Biết đợc khái niệm về kiểu bản ghi.
- Phân biệt đợc sự giống và khác nhau giửa kiểu bản ghi với kiểu mảng một chiều.
2. Kĩ năng.
- Khai báo đợc kiểu bản ghi, khai báo đợc biến kiểu bản ghi trong ngơn ngữ lập trình
pascal.
- Nhập xuất đợc dữ liệu cho biến bàn ghi.
- tham chiếu đến từng trờng của kiểu bản ghi.
- Sử dụng kiểu bản ghi để giải quyết một số bài tập đơn giản.
II. Đồ dùng dỵa học
1. Chuẩn bị của giáo viên.
- Máy vi tính, máy chiếu Projector để giới thiệu ví dụ.
2. Chuẩn bị của học sinh
- Sách giáo khoa.
III. Hoạt động dạy - học .
1. ổn định tổ chức
- Sè HS trong líp
- Số Hs vắng
2. Kiểm tra bài cũ
Lồng vào bài dạy
3. Các bớc tiến hành:
<b>hng dn ca giỏo viờn</b> <b>Hoạt động của học sinh</b>
1. T×m hiĨu vỊ kiĨu b¶n ghi.
- ChiÕu b¶ng kÕt quả thi tốt nghiệp ,
sách giáo khoa trang 74.
- Hỏi: Trên bảng có những thơng tin gì?
- Hỏi: Bảng chứa thơng tin của bao
nhiêu đối tợng?
- Yêu cầu: Học sinh tìm thêm một ví dụ
t¬ng tù.
- Diễn giải: Mỗi thơng tin của đối đơch
gọi là một thuộc tính hay một trờng. Mỗ
đối tợng đợc mô tả bằng nhiều thông tin
trên một hàng đợc gọi là một bản ghi.
- Diễn giải: Để mô tả các đối tợng nh
vậy, ngơn ngữ lập trình cho phép ta xác
định kiểu bản ghi. Mỗi đối tợng đợc mô tả
bằng một bản ghi.
2. Yêu cầu học sinh nghiên nứu sách giáo
khoa và cho biết cách khai báo kiểu bản
ghi, khai báo biến kiểu bản ghi trong ngôn
ngữ lập trình Pascal.
- u cầu: Tìm một ví dụ để minh họa.
1. Quan s¸t vÝ dơ của giáo viên và trả lời
các câu hỏi.
- Họ tên, này sinh, giới tính, điểm của
các môn thi.
- bng chứa thông tin của 3 đối tợng.
- Để mô tả một ngới tong danh bạ điện
thoại cần có các thơng tin: Họ tên, địa chỉ,
số điện thoại.
2. Tham khảo sách giáo khoa để nắm
đ-ợc cấu trúc chung của khai báo kiểu bản
ghi, khai báo biến bản ghi.
- VÝ dô:
Typekieu_nguoi=record
hoten:string;
- Để giải quyết bài toán trong mục 1 ta
phải khai báo một mảng các bản ghi. Hãy
tạo kiểu mảng ú.
- Yêu cầu học sinh phân biệt sự giống và
khác nhau giữa kiểu bản ghi và kiểu mảng
một chiều.
1. gii thiệu cấu trúc chung để tham chiếu
đến từng trờng của biến bản ghi.
Tªn_biÕn_bg. Tªn_trêng.
- u cầu: Tìm ví dụ về tham chiếu đến
từng trờng của biến bản ghi đã đợc khai
báo ở trên.
2. giíi thiƯu 2 c¸ch g¸n giá trị cho biến
bản ghi.
+ Gán nguyên cả biến bản ghi(1)
+ Gán lần lợt từng trờng (2)
- Yêu cầu: Lấy ví dụ minh họa cho từng
trờng hỵp.
- Hỏi: trờng hợp (1) thực hiện đợc trong
trờng hợp nào?
3. NhËp/xuÊt gi¸ trị cho biến bản ghi.
- Diễn giải: Ta phải viết lệnh nhập hoặc
xuất giá trị cho từng trờng.
- Yêu cầu học sinh: Viết lệnh nhập giá
trị cho ba trờng hợp của biến bản ghi nguoi
đã đợc khai bỏo.
- yêu cầu học sinh: Viết lệnh in giá trị
trờng hoten của biến b¶n ghi nguoi
1. Chiếu nội dung đề bài lên bảng.
- Hỏi: Sử dụng kiểu dữ liệu nh thế nào
để giải quyết bài toán?
- Yêu cầu học sinh: Mô tả thông tin về
một học sinh bằng kiểu bản ghi. Tạo mảng
các bản ghi đó.
sdt:longint;
End;
Var nguoi:kieu_nguoi;
- Độc lập suy nghĩ để tạo kiểu bản ghi
và mảng các bản ghi.
type kieu_hs=record
Hoten, ngaysinh:string;
toan, van:byte;
sdt:read;
Kieu_mbg=array[1..50] of kieu_hs;
- Giống nhau: Đợc ghép bởi nhiều phần
tử.
- Khác nhau: Mảng một chiều là ghép
nhiều phần tử có cùng kiểu dữ liệu. trong
khi bản ghi là ghép nhiều phần tử có kiểu
dữ liệu có thể khác nhau.
1. Quan sát cấu trúc chung của tham chiếu
đến từng trờng của biến bản ghi.
- vÝ dô:
nguoi.hoten
nguoi.diachi
nguoi.sdt;
2. Quan sát hai cách gán giá trị cho biến
bản ghi để tìm ví dụ cụ thể.
A :=B;
A.ht:=B.ht; A.dtb :=B.dtb; ...
- hai biến A, B phải đợc khai báo cùng
3. Chú ý theo dõi dẫn dắt của giáo viên để
tìm đợc ví dụ.
- Readln(nguoi.hoten);
- Readln(nguoi.diachi);
- Readln(nguoi.sdt);
- Writeln(nguoi.hoten);
1. Quan sát đề, chú ý phân tích để trả lời
câu hỏi.
- Một mảng các bản ghi.
Type Kieu_hs=record
Hoten:string;
toan,van,tong:byte;
xeploai:char;
- Nêu các bớc để giải quyết bài toán
này.
2. Chia lớp thành ba nhóm. Yêu cầu viết
chơng trình lên bìa trong.
- thu phiếu học tập. Chiếu kết quả lên
bảng. Gọi học sinh nhóm khác nhận xét và
đánh giá.
3. Chiếu chơng trình mẫu để chính xác
hóa lại cho học sinh.
Kieu_mhs=array[1..45] of kieu_hs;
+ Bớc 1: tạo kiểu dữ liệu, khai báo biÕn.
+ Bíc 2: NhËp d÷ liƯu co mảng các bản
ghi.
+ Tớnh tổng điểm toán và điểm văn.
+ dựa vào tổng điểm để xếp loại.
2. thảo luận theo nhóm để hồn thành
ch-ơng trình.
- Thông báo kết quả.
- Nhận xét, đánh giá và bổ sung những
sai sót ca nhúm khỏc.
3. Quan sát và ghi nhớ.
IV. Đánh giá cuối bài
1. Nhng ni dung ó học.
- Cách tạo kiểu bản ghi, khai báo biến kiểu bản ghi.
- Tham chiếu đến từng trờng của biến bản ghi.
- Nhập/xuất giá trị cho biến bản ghi.
2. Câu hỏi và bài tập về nhà.
- Bài tập: Viết chơng trình giải quyết bài toán quản lí sau:
Nhp h và tên, điểm tốn(Toan), điểm lí(Ly) của 30 học sinh trong lớp. In ra màn hình
họ tên, điểm trung bình (DTB) của 30 học sinh đó với DTB = (TOAN+LY)/2.
- Xem néi dung phơ lơc B, s¸ch gi¸o khoa, trang 134: C©u lƯnh With.
<b> Ngày 13/ 12 /2009</b>
<b>TIếT 32+33: ppct</b>
ôn tập học kì 1
<sub>I. mục tiêu.</sub>
1. Kiến thøc.
- Học sinh nắm đợc toàn bộ kiến thức đã học từ đầu năm học đến nay.
2. Kĩ năng
- Rèn luyện kĩ năng nhận xét, phân tích một bài toán.
II. Đồ dùng dạy học
1. Chuẩn bị của giáo viên
- Máy chiếu qua đầu, bìa trong, sách giáo khoa.
2. Chn bÞ cđa häc sinh.
- Sách giáo khoa, một số chơng trình bài tập.
III. Hoạt động dạy – học .
1. Hoạt động 1: Nhắc lại kiến thức cũ đã học.
a. Mục tiêu:
- Học sinh nhớ lại đợc các kiến thức lí thuyết đã học.
b. Nội dung:
- Kh¸i niƯm về lập trình và ngôn ngữ lập trình.
- Có hai loại chơng trình dịch: Biên dịch và thông dịch.
- Các thành phần của ngôn ngữ lập trình: Bảng chữ cái, cú pháp và ngữ nghĩa.
- Các khái niệm: Tên, hằng và biến, chú thích.
- Cấu trúc của chơng trình Pascal: Phần khai báo và phần thân.
- Các kiểu dữ liệu chuÈn: Sè nguyªn, sè thùc, kÝ tù, logic.
- PhÐp to¸n, biĨu thøc, lƯnh g¸n.
- Tỉ chøc vµo/ra.
- CÊu trúc rẽ nhánh.
- Cấu trúc lặp.
- Kiểu mảng.
c. Các bớc tiÕn hµnh:
<b>hớng dẫn của giáo viên</b> <b>Hoạt động của học sinh</b>
Đặt câu hỏi gợi ý để học sinh tự nhắc lại
kiến thức đã học.
- Em hiĨu nh thÕ nµo vỊ lËp trình và
ngôn ngữ lập trình?
- Các loại chơng trình dịch?
- Các thành phần cơ bản của ngôn ngữ
lập trình?
- Các khái niệm trong ngôn ngữ lập
trình?
- Cấu trúc chung của chơng tr×nh TP?
- Nêu tên các kiểu dữ liệu chuẩn?
- Nêu các nhóm phép tốn đã học?
- Các loại biểu thức?
- Chức năng và sự thực hiện của lệnh
gán?
- Nêu tên và chức năng của một số hàm
số học?
Chỳ ý, theo dõi trả lời các câu hỏi.
- Lập trình là quá trình diễn đạt thuật
tốn bằng một ngơn ngữ lập trình.
- Biên dịch và thông dịch.
- Bảng chữ cái, cú pháp và ngữ nghĩa.
- Khái niệm tên, hằng và biến, chú thích.
- Gồm hai phần: Phần khai báo và phần
thân.
- Số nguyên, số thùc, kÝ tù, logic.
- PhÐp to¸n sè häc, phÐp to¸n quan hƯ,
phÐp to¸n logic.
- BiÓu thøc sè häc, biÓu thøc quan hƯ vµ
biĨu thøc logic.
- Dùng để tính tốn một biểu thức và
gán giá trị cho một biến.
- Tỉ chøc vµo/ra.
- Tỉ chøc rÏ nh¸nh.
- Tỉ chức lặp.
- Kiểu mảng.
1. Xỏc nh bi toỏn.
- Chiếu nội dung đề bài lên bảng.
- Chia lớp thành 2 nhóm.
Nhóm 1: Nêu câu hỏi phân tích.
Nhóm 2: Trả lời câu hỏi phân tích của
nhóm 1.
- Giáo viên gãp ý bỉ sung cho c¶ hai
nhãm.
2. rèn luyện kĩ năng lập trình.
- Chia líp thµnh hai nhãm.
- Yêu cầu: Viết chơng trình hoàn thiện
lên bìa trong.
- Thu phiếu học tập, chiếu kết quả lên
bảng. Gọi học sinh của nhóm khác nhận
xét đánh giá và bổ sung.
3. Chuẩn hóa kiến thức bằng chơng trình
mẫu của giáo viên. Thực hiện chơng trình,
nhập dữ liệu để học sinh thấy kết quả của
chơng trình.
1. Giới thiệu đề bài.
- Chiếu nội dung đề bài lên bảng. Nêu
mục đích của bài tốn.
- Chia líp thµnh 2 nhãm:
+ Nhãm 1: Đặt các câu hỏi phân tích.
+ Nhóm 2: Trả lời các câu hỏi phân tích.
- Theo dõi những câu hỏi phân tích Của
nhóm 1 và trả lời câu hỏi ph©n tÝch cđa
nhãm 2.
- Bỉ sung vµ sưa sai cho cả nhóm 1 và
nhóm 2.
- LÖnh Read()/readln();
- LÖnh write()/writeln();
- If <BT§K> then <lÖnh 1> else
<lÖnh 2>;
For tiÕn.
For lïi.
While <> do.
Array ...
1. Quan sát, theo dõi đề bài và định hớng
của giáo viên để xác định bài toán.
- Nhãm 1:
+ Dữ liệu vào.
+ D÷ liƯu ra.
+ Các nhiệm vụ chính phải thực
- Nhãm 2:
+ Số N và N số nguyên.
+ Số lợng số chẵn C và số lẻ L.
+ 1 – NhËp d÷ liƯu.
2 Đếm số lợng số chẵn, số lẻ.
3 – §a kÕt quả ra màn hình.
2. Làm việc theo nhóm.
- Thảo luận theo nhóm để viết chng
trỡnh.
- Báo cáo kết quả.
- Nhận xét, đánh giá và bổ sung những
thiếu sót của nhóm khác.
3. Theo dâi vµ ghi nhí.
1. Quan sát đề và xác định những công
việc cần thực hiện.
Nhãm 1:
- hái: D÷ liƯu vào, dữ liệu ra của bài
toán?
- Nêu các nhiệm vụ chính cần thực hiện
khi giải quyết bài toán.
- Hỏi: Cấu trúc dữ liệu phải sử dụng nh
thế nào?
- Ta phải sử dụng hàm nào?
Nhóm 2:
- Vào: Một xâu S.
- Ra: d·y c¸c sè øng với sự xuất hiện
của mỗi loại kí tự trong x©u.
2. Yêu cầu học sinh độc lập viết chơng
trình hồn chỉnh theo thuật toán đã phát
hiện ở trên.
- Yêu cầu học sinh lập trình xong sớm
tìm mét sè bé test.
- Yêu cầu học sinh nhập dữ liệu vào theo
test của giáo viên đã chọn và thông báo kết
quả sau khi thực hiện chơng trình.
- Xác nhận kết quả đúng của học sinh và
sửa sai cho các em có kết quả sai.
- CÊu trúc dữ liệu: Dem[A..Z]
- Dùng hàm Upcase().
2. Độc lập soạn chơng trình vào máy.
- T×m test
- Nhập dữ liệu của giáo viên và thực
hiện chơng trình để xem kết quả.
- Thông báo kết quả cho giáo viên.
IV. Đánh giá cuối bài
1. Nhng ni dung đã học.
- Giáo viên yêu cầu học sinh nhắc lại một số nội dung chính đã đợc ôn tập trong tiết học.
2. Câu hỏi và bìa tập về nhà.
<b> Ngµy 20/ 12 /2009</b>
<b>TIÕT 34: ppct</b>
Kiểm tra học kì i
1. Mục tiêu cần đánh giá.
- Kiểm tra kết quả tiếp thu của học sinh từ đầu năm học đến nay.
- Đánh giá kĩ năng phân tích một bài tốn và t duy lập trình trên giấy.
<b> 2. Mục đích yêu cầu của đề.</b>
- Kiến thức: Học sinh nắm đợc các kiến thức về kiểu dữ liệu cơ bản, kiểu dữ liệu có cấu
trúc. Các hàm chuẩn thơng dụng. Cấu trúc vào/ra dữ liệu, cấu trúc rẽ nhánh và lp.
- Kĩ năng: Có kĩ năng phân tích bài toán, viết chơng trình.
<b> 3. Chuẩn bÞ.</b>
- Giáo viên chuẩn bị đề kiểm tra.
- Học sinh chuẩn bị đầy đủ kiến thức đã đợc học, ôn tập.
<b> 4. Nội dung đề bài và đáp án.</b>
<b>§Ị ra:</b>
<b>Câu1: Viết chơng trình nhập vào một số nguyên dơng N và một dãy số nguyên A1,A2,..An.</b>
Hãy in ra Tổng của những s nguyờn dng trong dóy ú.
Câu2: Viết chơng trình thực hiện các công việc sau:
a. Nhập vào một xâu họ và tên
b. Xoỏ ht cỏc kớ t trng th hai liên tiếp nhau cho đến khi chỉ cịn một khơng cịn tồn
tại hai kí tự trắng kề nhau.
c. Đếm các từ có trong xâu đó (Mỗi từ cách nhau bỡi mt ki t trng)
ỏp ỏn
Nội dung Điểm
Câu1: 4 điểm
Const Max=100;
Var A: Array[1..max] of integer;
N, I, s: integer;
Begin
Readln(N); s:=0;
For i:=1 to N do
If a[i] >0 then S:=S+a[i];
Writeln(Tong la:, S:4:2);
End.
0,5
0,5
0,5
1
1
0,5
Câu2a. 2điểm
Var st: String[50];
Begin
Readln(ST);
Readln
End.
1
1
Câu2b. 2 điểm
Var st: String[50];
Begin
Readln(ST);
While Pos( “, St)>0 Do delete(St, Pos(“ “, St),1);
Readln
End.
Var st:String[50];
I, dem :byte;
Begin
Dem:=0;
Readln(ST);
For i:=1 to length(ST) Do if st[i] =’’ then dem:=dem+1;
Writeln(‘so tu la:’,dem+1);
End.
0,5
<b> Ngµy 03 / 01 /2009</b>
KiĨu d÷ liƯu tƯp. Thao tác với tệp
I. Mục tiêu
<b> 1. Kiến thức:</b>
- Biết đợc đặc điểm của kiểu dữ liệu tệp.
- Biết khái niệm về tệp có cấu trúc và tệp văn bản.
2. Kĩ năng:
- Khai báo đúng biến kiểu tệp.
- Thực hiện đợc thao tác xử lí tệp: Gán tên tệp, mở/đóng tệp, đọc/ghi tệp.
- Sử dụng đợc các thủ tục liên quan để đọc/ghi dữ liệu của tệp.
3. Thái độ:
- Thấy đợc sự cần thiết và tiện lợi của kiểu dữ liệu tệp.
- Có ý thức lu trữ dữ liệu một cách khoa học.
- Giáo dục thêm về ý thức tôn trọng bản quyền, không sửa chữa, sao chép các phần
mềm cha mua bản quyền.
II. Đổ dùng dạy học.
1. Chuẩn bị của giáo viên.
- Máy vi tính, máy chiếu Projector để giới thiệu ví dụ.
2. Chuẩn bị của học sinh
- S¸ch gi¸o khoa.
III. Hoạt động dạy – học .
1. ổn định tổ chức
- Sè HS trong líp
- Sè Hs v¾ng
2. KiĨm tra bài cũ
Lồng vào bài dạy
3. Các bớc tiến hành:
<b>hng dn của giáo viên</b> <b>Hoạt động của học sinh</b>
- Hỏi: Em hãy cho biết dữ liệu trong các
kiểu dữ liệu từ trớc đến nay ta sử dụng đợc
lu trữ ở loại bộ nhớ nào khi thực hiện
ch-ơng trình?
- Hỏi: Vì sao em biết đợc điều đó?
- Diễn giải: Để lu trữ đợc dữ liệu, ta phải
lu nó ở bộ nhớ ngồi thơng qua kiểu dữ
liệu tệp. Mọi ngơn ngữ lập trình đều có các
thao tác: Khai báo biến tệp, mở tệp,
đọc/ghi dữ liệu, đóng tệp.
- Yêu cầu học sinh nghiên cứu sách giáo
khoa và hco biết đặc điểm cuat tên tệp? Có
mấy loại kiểu tệp?
- Yêu cầu học sinh trình bày khái niệm
tệp có cấu trúc và tệp văn bản.
- Bộ nhớ RAM.
- Mất dữ liệu khi mất điện.
- Không mất thông tin khi tắt máy.
- Dung lợng dữ liệu đợc lu trữ lớn.
- Có hai loại kiểu tệp: Tệp có cấu trúc
và tệp văn bản.
+ Tệp có cấu trúc là loại tệp mà các
thành phần của nó đợc tổ chức theo một
cấu trúc nhất định .
+ Tệp văn bản: Là tệp mà dữ liệu đợc
ghi dới dạng các kí tự theo mã ASCII.
1. giới thiệu cấu trúc chung của khai báo
Var <Tªn_biÕn_tƯp>: Text;
- u cầu học sinh tìm ví dụ cụ thể .
2. Giới thiệu các thao tác gán tên tệp, tạo
Close(>Tªn_biÕn_tƯp>);
- Yêu cầu: Lấy ví dụ minh hoạ mở tệp
để ghi thông tin và mở tệp để đọc thông
tin.
3. Chiếu sơ đồ làm việc với tệp lên bảng,
hình 16, trang 86, sách giáo khoa. Yêu cầu
học sinh giải thích ý nghĩa của sơ đồ.
4. Giới thiệu cấu trúc chung của thủ tục
đọc/ghi dữ liệu tệp văn bản.
- Yêu cầu học sinh lấy ví dô minh häa.
- Var f,g:text;
2. Quan sát và suy nghĩ để trả lời câu
hỏi.
Assign(f5,’B1.INP’);
Rewrite(f5);
Close(f5);
Assign(f5,’B1.OUT’);
Close(f5);
3. Quan sát sơ đồ và suy nghĩ để trả lời.
- Ghi tệp: Gán tên tệp, tạo tệp mới, ghi
thơng tin, đóng tệp.
- Đọc tệp: Gán tên tệp, mở tệp, đọc
thơng tin, đóng tệp.
4. Quan s¸t cÊu tróc chung.
- Readln(f,x1,x2); Đọc dữ liệu từ biến
tệp f, đặt giá trị vào hai biến x1 và x2.
- Writeln(g, ‘tong la’, x1+x2); Ghi vào
biến tệp g hai tham số; dòng chữ ‘tong la’
và giá trị tổng x1+x2.
IV. Đánh giá cuối bài
1. Những nội dung đã học.
- Việc trao đổi dữ liệu với bộ nhớ ngoài đợc thực hiện thơng qua kiểu dữ liệu tệp. Có hai
loại tệp: Tệp có cấu trúc và tệp văn bản.
- Để có thể làm việc với tệp, cần phải khai báo biến tệp: Var <Tên_biến_tệp>: text;
- Mỗi ngôn ngữ lập trình đều có các hàm và thủ tục chuẩn để làm việc với tệp nh: Gán
tên tệp, tạo tệp mới để ghi, mở tệp để đọc, đóng tệp.
- trong ngôn ngữ lập trình Pascal có các thủ tục tơng ứng là:
Rewrite(>Tªn_biÕn_tƯp>);
Reset (>Tªn_biÕn_tƯp>);
Close(>Tªn_biÕn_tƯp>);
- Đọc/ghi tệp văn bản:
2. Câu hỏi vµ bµi tËp vỊ nhµ.
<b> Ngµy 08 / 01 /2009</b>
<b>TIÕT 38: ppct</b>
VÝ dơ lµm viƯc víi tƯp
I.Mơc tiªu.
1. kiÕn thøc:
- Củng cố lại kiến thức đã học về tệp trong chơng 5 thơng qua ví dụ.
2. Kĩ năng.
- Sử dụng đợc các hàm và thủ tục liên quan để giải quyết các bài tập.
II. Đồ dùng dạy học.
1. Chuẩn bị của giáo viên.
- Máy chiếu Projector để giới thiệu ví dụ, phịng máy vi tính.
2. Chuẩn bị của học sinh.
- S¸ch gi¸o khoa.
III. Hoạt động dạy – học .
1. Hoạt động 1: Ơn tập kiến thức lí thuyết.
a. Mục tiêu:
- Học sinh nhớ đợc các kiến thức lí thuýet về kiểu tệp.
b. Nội dung:
- Gán tên tệp, mở tệp, tạo tệp mới, đóng tệp.
- Đọc/ghi tệp văn bản.
- Các hàm và thủ tục liên quan.
c. Các bớc tiến hành :
<b>hng dn của giáo viên</b> <b>Hoạt động của học sinh</b>
1. Gợi ý để học sinh nhớ lại các kiến thức
đã học về kiểu tệp.
-Hái: C¸ch khai b¸o biÕn kiĨu tƯp?
- Hái: Cã các thủ tục cơ bản nào khi
làm việc với tƯp?
- Hái: Hµm và thủ tục nào liên quan
khi xử lí tệp?
2. Giới thiệu bảng tổng hpj các hàm và
thủ tục lên bảng, xem nh đây là tổng kÕt
kiÕn thøc liªn quan.
1. Theo dâi dÉn dắt của giáo viên và trả
lời.
- Var <Tªn_biÕn_tƯp>: Text;
- Assign(<Tªn_biÕn_tƯp>,<tªn_tƯp>);
- Rewrite(>Tªn_biÕn_tƯp>);
- Reset (>Tªn_biÕn_tƯp>);
- Close(>Tªn_biÕn_tƯp>);
- Read/readln(<tªn_biÕn_tƯp>,
<Danh_sách_tên_biến>);
- Write/writeln(<tên_biến_tệp>,
<Danh_sách_tên_biến>);
- Eof(>Tên_biến_tệp>)
-
Seek(>Tên_biến_tệp>,<biến_nguyên>);
2. Quan sát bảng tổng hợp và ghi nhớ.
1. Tìm hiểu vÝ dô 1.
- Giới thiệu nội dung đề bài.
- Chiếu chơng trình ví dụ lên bảng và
gợi ý để học sinh tìm hiểu chơng trình.
- Hỏi: Hàm Eof(f) có chức năng gì?
- Có thể sử dụng cấu trúc For thay th
while c khụng?
- Chơng trình này thực hiện công việc
gì?
1. Theo dõi và quan sát đề bài và chơng
trình gợi ý.
- Hàm cho giá trị True nếu con trỏ tệp
định vị trớ kt thỳc tp.
- Không. Vì không biết số lợng phần tử
của tệp.
- Thực hiện chơng trình để học sinh
thấy đợc kết quả.
2. Tìm hiểu chơng trình của ví dụ 2.
- Giới thiệu đề bài.
- Chiếu tranh mơ phỏng kết nối các điện
trở, hình 17, trang 88, sách giáo khoa.
- Hỏi: Công thức tính điện trở của sơ đồ
II, III, IV.
- Chiếu chơng trình ví dụ lên bảng.
- Hỏi: Mảng a dùng để lu trữ giá trị
nào?
- Cho một File dữ liệu vào gồm 2 dòng.
Yêu cầu häc sinh tÝnh kÕt qu¶.
- Thực hiện chơng trình đọc file dữ liệu
vào trên để học sinh đối chiếu kết quả.
2. Quan sát nội dung đề bài, quan sát
tranh mô phỏng kết nối các điện trở và các
yêu cầu.
- Dùng để lu trữ điện trở tơng đơng của
3 điện trở theo 5 cách ghép nối nh trong
sơ đồ.
- Tính kết quả của 5 điện trở tơng đơng.
- Quan sát kết quả của chơng trình và
so sánh với kết quả tính đơng.
- Nhận xét về tính chính xác và thời
IV. Đánh giá cuối bài
1. Những nội dung đã học.
- Các thao tác xử lí tệp:
+ Gán tên tệp.
+ Mở tệp.
+ tạo tệp mới.
+ §äc/ghi th«ng tin cđa tƯp.
+ Đóng tệp.
- Hàm và thủ tục liên quan
+ Hàm EOF(Tên_biến_tệp)
2. Câu hỏi và bài tập về nhà
- Đọc trớc nội dung bái. Chơng trình con và phân loại. Cách viÕt vµ sư dơng thđ tơc.
<b> Ngµy 15 / 01 /2009</b>
<b>TIếT 39: ppct</b>
<b>Bài tập</b>
<b>I.Mục tiêu.</b>
1. kiến thức:
- Củng cố lại kiến thức đã học về tệp trong chơng 5 thông qua các bài tập.
2. Kĩ năng.
- Sử dụng đợc các hàm và thủ tục liên quan để giải quyết các bài tập.
1. Chuẩn bị của giáo viên.
- Máy chiếu Projector để giới thiệu ví dụ, phịng máy vi tính.
2. Chuẩn bị của học sinh.
- S¸ch gi¸o khoa.
<b>III. Hoạt động dạy - học .</b>
<b>1. ổn nh t chc</b>
- Số Hs có mặt
- Số Hs vắng
<b>2. KiĨm tra bµi cị</b>
Hoạt động của giáo viên Hoạt động của hs
Câu1: Viết chơng trình đọc dữ liệu từ tệp
có tên là: Baitap.int, tìm giá trị nhỏ nhất
trong ghi trong tệp đó in ra màn hình
Trong tệp bi tp ghi nh sau:
- Dòng đầu tiên ghi số N
- Dòng thứ 2 ghi n số nguyên dơng,
mi s cách nhau một kí tự trắng
Hãy cho biết đối với bi toỏn ny thỡ ta
lm nh th no?
Để viết chơng trình cho bài toán này thì
ta sử dụng những biến nào?
HÃy khai báo các biến trên?
Yêu cầu Hs thảo luận viết chơng trình?
Câu2:
Cho tệp có tên là Input có n +1 dòng
Dòng đầu tiên ghi số n và m
N dòng tiếp theo mỗi dòng ghi m số của
một mảng 2 chiều
HÃy viết chơng trình thực hiện các công
việc sau:
a. Tỡm những số có chữ số hàng đơn vị
là5
b. Tìm số nguyên tố có trong tệp đó
c. Hãy sắp xếp ma trận ghi trong tệp đó
sao cho tăng dần theo dịng và theo cột
Kết quả tìm đợc ghi vào trong tệp có tên
là Output ghi nh sau
Dịng 1 ghi kết qủa tìm đợc của câu a
Hs nghiên cứu đề ra
Chia lớp thành các nhóm, mỗi nhóm gồm 2
bàn để thảo luận
Hs: Ta đọc dữ liệu ra và lu vào một mảng
một chiều cú N phn t
Tìm giá trị lớn nhất trên dÃy này
HS: Ta dùng các biến sau:
- F: Biến tệp
- A: BiÕn kiĨu m¶ng mét chiỊu
- I: BiÕn chØ sè
- Min: Lu giá trị nhỏ nhất
Hs: khai báo nh sau:
Const Nmax=100;
Var f:text;
A: Array[1..Nmax] of word;
I,min:word;
Hs thảo luận và cữ đại diện lên viết chơng
trình
C¸c nhãm khác phận xét và cho ý kiến
Hs nghiờn cu ra
Giáo viên gợi ý:
Hóy c d liu từ tệp có tên là input lu
vào ma trận có n dũng v m ct
a. Duyệt tất cả các phần tử tìm những
phần tử có giá trị mod 5=0 thì ghi
vào têp
b. Duyệt tất cả các phần tử tìm những
phần tử có giá trị là số nguyên tố
ghi vào tệp
c. Sắp xếp ma trận trên theo từng
dòng một sau đó sắp sếp ma trận
trên theo tuèng cột một cho tất cả
các cột và dịng rồi ghi vào tệp
tr¶ lời ý kiến của nhóm mình
Hs nghiên cứu
Hs viết chơng trình hoàn chỉnh
- Về nhà làm bài tập trong sách giáo khoa
- Chun b trc bài chơng trình con để tiết sau ta nghiên cứu
Ngµy soạn: 20/01/2009
<b>Tiết 40:ppct</b>
<b>Chơng trình con và phân loại</b>
I. Mơc tiªu.
<b> 1. KiÕn thøc:</b>
- Biết đợc khái niệm chơng trình con.
- Biết đợc ý nghĩa của chơng trình con, sự cần thiết phải viết một chơng trình thành các
chơng trình con.
- Biết đợc cấu trúc của chơng trình con.
- Phân biệt đợc hai loại chơng trình con là hàm và thủ tục.
<b> 2. Kĩ năng.</b>
- Nhận biết đợc các thành phần trong đầu của thủ tục.
- Nhận biết đợc hai loại tham số hình thức trong đầu của thủ tục.
- BiÕt c¸ch khai báo hai loại chơng trình con cùng với tham số h×nh thøc cđa chóng.
- Biết cách viết lời gọi chơng trình con trong thân chơng trình chính.
3. Thỏi :
- RÌn lun c¸c phÈm chÊt cđa ngêi lập trình nh tinh thần hợp tác, làm việc theo nhóm,
tuân thủ yêu cầu vì một công việc chung.
<b> II. Đồ dùng dạy học.</b>
1. Chuẩn bị của giáo viên.
- Máy vi tính, máy chiếu Projector để giới thiệu ví dụ, máy chiếu Overhead, bìa trong,
bút dạ.
2. Chn bÞ cđa häc sinh.
- S¸ch gi¸o khoa.
<b>III. Hoạt động dạy - học .</b>
<b>1. ổn định tổ chức lớp</b>
- Sè hs trong lớp
- Số hs vắng
<b>2. Kiểm tra bài cũ</b>
- Hãy trình bày các thủ tục để thao tác với tệp?
3. Nội dung bài mới
<b>hớng dẫn của giáo viên</b> <b>Hoạt động của học sinh</b>
1. T×m hiĨu ý nghĩa và khái niệm của
ch-ơng trình con.
- Chiếu hai chơng trình giáo viên đã
chuẩn bị sẵn. Một chơng trình có sử dụng
chơng trình con, một chơng trình khơng
sử dng chng trỡnh con.
Chẳng hạn: Chơng tr×nh tÝnh tỉng 4 lịy
thõa: TLT=an<sub>+b</sub>m<sub>+c</sub>p<sub>+d</sub>q<sub> .</sub>
- Gọi học sinh nhận xét về tính ngắn
gọn, rõ ràng, tính dễ đọc dễ hiểu của hai
chơng trình đó.
- Hỏi: Khi nào nên viết chơng trình
con?
- Yêu cầu học sinh đọc sách giáo khoa,
cho biết khái niệm chơng trình con.
- Chia líp thành 3 nhóm. Phát bìa trong
cho mỗi nhóm. Yêu cầu học sinh điền các
lợi ích của việc sử dụng chơng tr×nh con.
- Thu phiếu học tập. Chiếu kết quả lên
bảng.
- Bổ sung và giải thích thêm một số lợi
ích mà học sinh điền cha đầy đủ. (vì các
em cịn m h v chng trinhg con)
2. phân loại chơng trình con.
- Hỏi: Có mấy loại chơng trình con?
Gọi tên của chúng?
- Hỏi: Đã từng làm quen với hàm và
thủ tục cha? Lấy một số ví dụ về hàm và
thủ tục đã đợc học.
- ý nghÜa cđa hµm vµ thủ tục chuẩn?
- yêu cầu học sinh tham khảo sách giáo
1. Quan sát đề bài và hai chơng trình ví
dụ.
- Nhận xét: Chơng trình có sử dụng
ch-ơng trình con đợc viết ngắn gon, dễ hiểu
hơn chơng trình viết khơng sử dụng chơng
tình con.
- Đối với các bài toán lớn, cần nhiều
ngời cùng viết. Chơng trình dài, cần chia
làm nhiều đoạn. Có nhiều đoạn lệnh lặp
- Nghiên cứu sáhc g iáo khoa, thảo luận
để điền phiếu học tập.
+ Tránh đợc việc phải viết lặp đi lặp lại
cùng một dãy lệnh nào đó trong chơng
trình.
+ Hỗ trợ việc thực hiện viết các chơng
trình lớn.
+ Phục vụ quá trình trừu tợng hóa .
+ Mở rộng khả năng ngôn ngữ.
+ Thuận tiện cho việc phát triển nâng
cấp chơng trình.
- Báo cáo kết quả.
- Theo dõi bổ sung và giải thích của
giáo viên.
2. Tham khảo sách giáo khoa và trả lời.
- Hai loại chơng trình con: hàm và thủ
tục.
- ĐÃ sử dụng hàm và thđ tơc chn.
- VÝ dơ: Hµm abs(), length(st). Thđ tơc
Delete(st,p,n);
- Hàm là thực hiện một số thao tác nịa
đó và trả lời về một giá trị kiểu đơn giản
thông qua tên hàm .
khoa để phân biệt khái niệm hàm và thủ
tục.
3. CÊu tróc cđa ch¬ng tr×nh con.
- Giíi thiƯu cấu trúc chung của chơng
trình con.
<Phần đầu>
[<Phần khai báo>]
<Phần thân>
- Yêu cầu học sinh so sánh với cấu trúc
chơng trình chính.
- Yêu cầu học sinh giải thích phần khai
báo và phần thân chơng trình con.
- Diễn giải: Phần đầu của chơng trình
con gồm có tên chơng trình con, các tham
số của chơng trình con. Các tham số này
đợc gọi là tham số hình thức.
4. Thực hiện chơng trình con.
- Hỏi: §Ĩ sư dơng hµm vµ thđ tơc chn
em thêng viÕt ở đâu và viết nh thế nào?
- Diễn giải: Để gọi một chơng trình
con, ta cần phải có lệnh gọi nó tơng tự
lệnh gọi hàm hay thủ tục chuẩn, bao gồm
tên chơng trình con với các tham số(nếu
có) là cá hằng và biến chứa dữ liệu vào/ra
tơng ứng với các tham số hình thức đặt
trong cặp ngoặc. Các hằng và biến này
đ-ợc gọi là tham số thực sự.
3. Quan sát cấu trúc của chơng trình
con.
- Gièng cÊu tróc chơng trình chính.
- Phần khai báo thờng có thể là khai báo
biến, h»ng.
- Phần thân là một dãy các lệnh thực
hiện nhiệm vụ nhất định của chơng trình
con.
4. Suy nghÜ vµ tr¶ lêi
- Viết trong chơng trình chính. Viết thủ
tục kèm các tham số và kết thúc là dấu
chấm phẩy(;). Viết hàm trong lẹnh nào đó
hoặc trong thủ tục. Hàm không đợc viết
nh lệnh.
<b>IV. Đánh giá cuối bài</b>
1. Những nội dung đã học.
- Chơng trình con đóng vai trị quan trọng trong lập trình, đặc biệt là trong lập trình cấu
trúc.
- Các lợi ích cơ bản của chơng trình con: Dùng chơng trình con sẽ thuận lợi cho việc tổ
chức, viết, kiểm tra và sử dụng lại chơng trình.
- Có hai loại chơng tình con.
- Cấu trúc chơng trình con và vị trí của nó trong chơng trình chính: Chơng trình con đợc
- Chơng trình con có thể có tham số hình thức khi khai báo và đợc thay bằng tham số
thực sự khi gọi chơng trình con.
- Chơng trình con đợc gọi bằng tên của nó.
2. Câu hỏi và bài tập về nhà.
- Đọc trớc nội dung vài: Ví dụ về cách viết và sử dụng chơng trình con, s¸ch gi¸o khoa,
trang 96.
<b>VÝ dơ vỊ cách viết và sử dụng chơng trình con</b>
I. Mơc tiªu.
<b> 1. KiÕn thøc.</b>
- Biết đợc cấu trúc chung và vị trí của thủ tục trong chơng trình.
- Phân biệt đợc tham số giá trị và tham số biến.
- Nắm đợc khái niệm về biến toàn cục và biến cụa bộ.
2. Kĩ năng:
- Nhận biết đợc các thành phần trong đầu của thủ tục.
- Nhận biết đợc hai loại tham số hình thức trong đầu của thủ tục.
- Biết cách khai bóa hai loại chơng trình con cùng với tham số hình thức cảu chúng.
3. Thái độ:
- rÌn lun c¸c phÈm hcất của ngời lập trình nh tinh thần hợp tác, làm việc theo nhóm,
<b>II. Đồ dùng dạy học.</b>
<b> 1. Chuẩn bị của giáo viên.</b>
- máy vi tính, máy chiếu Projector để giới thiệu ví dụ.
<b> 2. Chuẩn bị của học sinh.</b>
- S¸ch gi¸o khoa.
III. Hoạt động dạy - học .
<b>1.ổn Định tổ chức lớp</b>
- Sè hs trong lớp
- Số hs vắng
<b>2. Kiểm tra bài cũ</b>
Lồng vào tiết dạy
3. Nội dung bài mới
<b>hng dn ca giỏo viờn</b> <b>Hoạt động của học sinh</b>
1. Giíi thiƯu vÝ dụ mở đầu.
- Chiếu chơng trình ví dụ lên bảng(ví dụ
VD thutuc1, trang 96). Giíi thiƯu cho
häc sinh cÊu tróc thđ tơc vÞ trÝ khai b¸o cđa
thđ tơc, lêi gäi thđ tơc.
2. T×m hiĨu cÊu tróc thđ tơc.
- Hái: VÞ trÝ cđa thđ tơc n»m ë phần nào
trong chơng trình chính?
- Hái: CÊu tróc cđa thđ tơc gåm mÊy
phÇn?
- Hỏi: Phân biệt sự giống và khác nhau
giữa chơng trình con và chơng trình chính?
- Giíi thiƯu cÊu tróc chung cđa thủ tục
Procedure tên_thủ_tục(danh sách các
tham số);
C¸c khai b¸o cđa thđ tơc;
Begin
C¸c lƯnh cđa thđ tơc;
End;
- Lêi gäi thđ tơc ta viÕt ë phần nào trong
chơng trình?
3. Tìm hiểu tham số hình thức và tham số
thực sự.
- ChiÕu vÝ dơ 2, VD_thutuc2, s¸ch gi¸o
1. Quan s¸t, theo dâi vÝ dơ.
2. Quan sát ví dụ, suy nghĩ và trả lời .
- Nằm ở phần khai báo, sau phần khai
biến.
- Ba phần: Tên thủ tục, khai báo của
thủ tục và phần thân của .
- Giống: CÊu tróc chung.
- Khác: Trong phần tên: Từ khóa đặt
tên Procedure, có các tham số.
- Quan sát và ghi nhớ cấu trúc chung.
Trong phần thân kết thúc End;
- Trong phần thân của chơng trình
chính.
khoa trang 98.
- Yêu cầu học sinh nhận xét về thủ tơc
ve_hcn cđa vÝ dơ nµy víi vÝ dơ tríc.
- Diễn giải: Khai báo này cho phép thủ
tục ve_hcn thực hiện vẽ dợc nhiều hình chữ
nhật có kích thớc khác nhau.
- Hỏi: Quan sát chơng trình cho biết,
trong chơng trình chính ta vẽ đợc tất cả bao
- Tham số chdai, chrong đợc gọi là tham
số hình thức.
- Trong lời gọi thủ tục các tham số hình
thức đợc thay bằng các tham số thực sự.
- So sánh các tham số của lời gọi
ve_hcn(5,10); và ve_hcn(a,b);
4. T×m hiĨu tham sè giá trị và tham số
biến.
- Diễn giải: Tham số có hai chức năng:
đa dữ liệu vào cho chơng trình con hoặc đa
dữ liệu chơng trình con tìm đợc ra.
- Hỏi: Các tham số trong ví dụ 2 thuộc
loại nào?
- Chiếu chơng trình VD_thambien 1,
s¸ch gi¸o khoa trang 99.
- Hỏi: các tham số x, y thuộc loại nào?
- Diễn giải: trong lời gọi thủ tục, các
tham số hình thức đợc thay bằng các tham
số thực sự tơng ứng là tên các biến chứa
dữ liệu ra đợc gọi là các tham số biến.
- Hỏi: x, y là tham số giá trị hay tham số
biến?
- Hỏi: Có nhận xét gì khi khai báo tham
số hình thức là tham giá trị và tham biến?
- Chiếu vd_thambien2 và giải thíc để
học sinh thấy đợc sự khác biệt giữa tham
số giá trị và tham số biến.
- Thủ tục ve_hcn ở ví dụ này có các
tham sè chdai, chrong
- Vẽ đợc 6 hình chữ nhật.
- Tham sè thùc sù trong thđ tơc
ve_hcn(5,10); là các hằng s còn trong
thru tục ve_hcn(a,b); là các biến.
4. Theo dõi và trả lời.
- Đa dữ liệu vào cho chơng trình con
xử lí.
- Đa dữ liệu sau khi chơng trình con
xử lí ra ngoài.
- Lµ tham sè biÕn.
- Khi khai báo tham số biến ta đặt từ
khóa var trớc các tham số đó.
<b>IV. Đánh giá cuối bài</b>
1. Những nội dung đã học.
- Có hai loại chơng trình con.
- Cấu trúc chơng trình con và vị trí của nó trong chơng trình chính: Chơng trình chính:
Chơng trình con đợc viết ở phần khai báo. Chơng trình con có phần đầu, phần khai bỏo v
phn thõn.
<b> 2. Dặn dò</b>
Ngày soạn: 10/02/2009
<b>Tiết 42: ppct</b>
<b>Ví dụ về cách viết và sử dụng chơng trình con</b>
I. Mơc tiªu.
<b> 1. KiÕn thøc.</b>
- Học sinh biết đợc cấu trúc chung của hàm. Biết đợc vị trí khai báo hàm trong chơng
trình chính.
- Học sinh nắm đợc khái niệm về biến toàn cục và biến cục bộ.
- Khai báo đúng biến toàn cục và biến cục bộ.
2. Kĩ năng:
- Nhn biết đợc các thành phần trong đầu của thủ tục.
- Nhận biết đợc hai loại tham số hình thức trong đầu của thủ tục.
- Biết cách khai bóa hai loại chơng trình con cùng với tham số hình thức cảu chúng.
3. Thái độ:
- RÌn lun c¸c phÈm hcÊt cđa ngêi lập trình nh tinh thần hợp tác, làm việc theo nhóm,
tuân thủ yêu cầu vì một công việc chung.
<b>II. Đồ dùng dạy học.</b>
<b> 1. Chuẩn bị của giáo viên.</b>
Giáo án, sách giáo khoa và một số bài tËp
<b> 2. Chn bÞ cđa häc sinh.</b>
- S¸ch gi¸o khoa.
III. Hoạt động dạy - học .
<b>1.ổn Định tổ chức lớp</b>
- Sè hs trong lớp
- Số hs vắng
<b>2. Kiểm tra bài cũ</b>
HÃy nêu cấu tróc cđa thđ tơc?
3. Néi dung bµi míi
<b>hớng dẫn của giáo viên</b> <b>Hoạt động của học sinh</b>
2. C¸ch viÕt vµ sư dơng hµm
+ Nhắc lại kiến thức cũ về hàm chuẩn.
+ Giíi thiƯu cÊu trúc chung và vị trí của
hàm trong chơng trình chính.
- Cấu trúc và vị trí của hàm trong chơng
trình.
Program tên_chơng_trình_chính;
Các khai báo của chơng trình chính;
Function tên_ham(danh sách các tham
số): Kiểu_dữ_liệu_của_hàm;
Các khai báo cđa hµm;
begin
Các lệnh của hàm;
Tên_hàm:=biểu_thức;
+ Suy nghĩ và trả lời.
- Hµm ABC(), SQRT(),
ROUD()...
- Viết tên hàm cần gọi và các tham số.
- Lời gọi hàm đợc viết trong biểu thức
nh một toán hạng, thậm chí là tham số
+ Quan s¸t cÊu tróc chung.
- Gièng: Có cấu trúc tơng tự, có các
tham số ...
- Khác: Tên hàm phải quy định kiu d
liu; Trong thõn hm phi cú lnh
Tên_hàm:=biểu_thức;
End;
BEGIN
Các kệnh của hcơng trình chính;
Lêi gäi thùc hiƯn hµm vµ thđ tơc;
END.
- Hỏi: So sánh sự giống và khác nhau của
hàm và thủ tục.
+ Tìm hiểu hàm thông qua ví dụ
- Chiếu chơng trình vÝ dơ
rutgon_phanso, s¸ch gi¸o khoa trang 101.
- Hái: trong chơng trình có mấy hàm.
- Hàm UCLN(x, y) dùng để làm gì?
- Hỏi: Lời gọi hàm ở đâu?
- Hỏi: Có gì khác với thủ tục trong lêi
gäi hµm.
- Chiếu chơng trình ví dụ 2, Minbaso,
sách giáo khoa, trang 102.
- Hái: trong ch¬ng trình có bao nhiêu
hàm? Chức năng của hàm?
- Có bao nhiêu lời gọi hàm trong chơng
trình chính?
+ Tìm hiểu về biÕn cơc bé vµ biÕn toµn
bé.
- Chiếu chơng trình ví dụ 2:
rutgon_phanso lên bảng.
- Hỏi: Có những biến nào đợc sử dụng
trong chơng trình? Các biến đó đợc khao
báo ở chỗ nào trong chơng trình?
- DiƠn giải: Biến tuso, mauso, A có ảnh
hởng trong toàn bộ chơng trình. Biến Sodu
chỉ ảnh hởng trong thân chơng trình con.
- Yêu cầu học sinh: Phân biệt sự giống
nhau và khác nhau của biến toàn bộ và
+ Quan sát ví dụ và trả lời.
- Mt hm UCLN, dùng để tìm ớc số
chung lớn nhất của hai số X, Y.
-LÖnh A:=UCLN(tuso,mauso);
-Lời gọi hàm phải đợc đặt trong một
lệnh hoặc trong một lời gọi chơng trỡnh
con khỏc.
- Quan sát chơng tr×nh vÝ dơ
- Có một hàm đợc khai báo.
- Hàm đợc sử dụng hai lần.
- Kết quả của hàm lại là đầu vào cho
chính hàm đó trong lần gọi thứ hai.
+ Quan sát lại các ví dụ.
- Quan sát chơng trình của giáo viên.
- Có các biến: tuso, mauso, A, sondu.
- Các biến: tuso, mauso, A đợc khai
báo trong chơng trình chính.
- Các biến: sodu đợc khai báo trong
chơng trình con.
- Biến cục bộ: Có ảnh hởng trong
ch-ơng trình con, đợc khai báo trong phần
khai báo của chơng trình con.
- Biết tồn bộ: Có phạm vi ảnh hởng
trong tồn bộ chơng trình, đợc khai báo
trong phần khai báo của chơng trình
chính.
IV. Đánh giá cuối bài
1. Những nội dung đã học.
- Có hai loại chơng trình con.
- Chơng trình con có thể có tham số hình thức khi khai báo và đợc thay bằng tham số
thực sự khi gọi chơng trình con.
- Phân biệt tham số hình thức và tham số thực sự. Cách sử dụng tham biến và tham trị.
- Chơng trình con đợc gọi bằng tờn ca nú.
Ngày soạn: 21/02/2009
<b>Tiết 43,44: ppct</b>
Bài thực hành số 6
I. Mục tiêu.
<b> 1. Kiến thức.</b>
- Củng cố lại các kiến thức về xâu kí tự, chơng trình con.
2. Kĩ năng:
- Rèn luyện kĩ năng xử lí xâu bằng việc tạo hiệu ứng chữ chạy trên màn hình.
- Nâng cao kĩ năng viết và sử dụng chơng trình con.
II. Đồ dùng dạy học.
1. Chuẩn bịi của giáo viên.
- Máy vi tính, tổ chức tịa phịng máy để học sinh có đợc các kĩ năng cơ bản trong việc
tổ chức và sử dụng chơng trình con trong lập trình.
2. Chn bÞ cđa häc sinh.
- S¸ch gi¸o khoa.
III. Hoật động dậy - học .
1.ổn Định tổ chức lớp
- Sè hs trong líp
- Sè hs v¾ng
<b>2. KiĨm tra thiết b</b>
<b>3. Nội dung bài mới </b>
Tìm hiểu việc xây dùng hai thđ tơc catdan(s1, s2) vµ cangiua(s)
a. Mơc tiªu:
- Học sinh nắm đợc chức năng của hai thủ tục catdan() và cangiua(). Biết đợc ý nghĩa
của mỗi tham số trong từng chơng trình con đó.
b. Néi dung:
Thđ tơc cantdan
Type str79=string[79]
Procedure cantdan(s1:str79; var s2:str79);
Begin
s2:=copy(s1,2,length(s1) – 1)+s1[1];
End;
Thđ tơc cangiua
Proceure cangiua(var s:str79);
var i, n:integer;
Begin
n:=length(s);
n:=(80 – n) div 2;
For i:=1 to n do s:= ‘ ’ + s;
End;
c. C¸c bíc tiÕn hµnh:
<b>hớng dẫn của giáo viên</b> <b>Hoạt động của học sinh</b>
1. T×m hiĨu hai thđ tơc catdan(s1,s2) vµ
cangiua(s).
- ChiÕu néi dung thđ tục catdan(s1,s2);
1. Quan sát thủ tục catdan() và trả lời câu
hỏi của giáo viên.
- Hỏi: Đầu vào và đầu ra của thủ tục
nay?
- Hỏi: Chức năng của thủ tục là gì?
- Yêu cầu học sinh cho ví dụ minh
họa.
- ChiÕu néi dung thđ tơc: cangiua(s);
- Hỏi: Đầu vào của thủ tục?
- Hái: Thđ tơc thùc hiện công việc gì?
- Giáo viên chú ý: Có thể nhắc học sinh
nếu không khai báo s là tham biến thì thủ
tục này không có hiệu lực gì vì lệnh đa s
ra màn hình không nằm trong thủ tục này.
2. Tìm hiểu chơng trình của câu b, sách
gi¸o khoa, trang 103, 104.
- ChiÕu chơng trình lên bảng.
- Hỏi: Chức năng của chơng trình.
- Giíi thiƯu cho häc sinh c¸c thđ tơc
chn: gỗty(x,y); delay(n); và
keypressed;
- Thực hiện chơng trình để giúp học
sinh thấy kết quả của chơng trinh.
1. Tìm hiểu yêu cầu đề bài.
- Chiếu nội dung yêu cầu lên bảng.
- Yêu cầu học sinh tìm ra vấn đề mới
trong bài tập này.
- Yêu cầu học sinh lập trình trên máy.
- Yêu cầu học sinh thực hiện chơng
trình và nhập dữ liệu test.
- Đánh giá kết quả lập trình của học
sinh.
- Vào: âu kí tự s1.
- Ra: BiÕn x©u kÝ tù s2.
- Thực hiện việc tạo xâu s2 từ xâu s1
- S1= ‘abcd’ th× S2= ‘bcda’
- Quan sát, suy nghĩ và trả lời.
- Đầu vào là một xâu kí tự S không quá
79 kí tự.
- Th tục thực hiện thêm vào trớc xâu s
một số kí tự trằng để khi đa s ra màn hình
kí tự trong S ban đầu đợc căn giữa của
dịng gồm 80 kí tự.
2. Quan sát chơng trình trên bảng và
theo dõi dẫn dắt của giáo viên.
- Yờu cu ngi sử dụng nhập một xau kí
tự. Đa xâu đó ra màn hình có dạng dịng
chữ chạy giữa màn hành văn bản 25*80.
- Quan sát trên màn hình để đối chiếu
với kết quả mà học sinh tự suy luận tính
đ-ợc.
1. Quan sát yêu cầu trên bảng.
- Về cơ bản, giống nh nhiệm vụ mà câu
b đã làm. Chỉ khác là chơng trình câu b
ln cho xâu kí tự chạy ở dịng bất kì. Vì
- §éc lËp viÕt chơng trình vào máy và
báo cáo kết quả thử nghiƯm
- NhËp d÷ liƯu theo test của giáo viên và
báo cáo kết quả.
<b>IV. Đánh giá cuối bài</b>
Câu hỏi và bài tập về nhµ
- Viết thủ tục chaychu(s,dong) nhận tham số là xâu S gồm không quá 79 kí tự và một
biến nguyên Dong. In ra màn hình dịng chữ xác định bởi S chạy ở dịng Dong. Viết chơng
trình và thực hiện có sử dng th tc ny.
Ngày soạn: 10/03/2009
<b>Tiết 45,46: ppct</b>
Bài thực hành số 7
I. Mục tiêu.
<b> 1. KiÕn thøc:</b>
- Củng cố lại các kiến thức về chơng trình con: Thủ tục, hàm, tham số biến và tham số
giá trị, biến toàn bộ và biến cục bộ.
2. Kĩ năng:
- S dng đợc chơng trình con để giải quyết trọn vẹn một bài tốn trên máy tính.
1. Chuẩn bị của giáo viên.
- máy vi tính, tổ chức tại phịng máy để học sinh có đợc các kĩ năng cơ bản trong việc
tổ chức và sử dụng các chơng trình con trong lập trình.
2. Chn bÞ cđa häc sinh.
- S¸ch gi¸o khoa.
III. Hoạt động dạy – học
<b>1.ổn Định tổ chức lớp</b>
- Số hs trong lớp
- Sè hs v¾ng
<b>2. KiĨm tra thiết bị</b>
3. Néi dung bµi míi
<b>hớng dẫn của giáo viên</b> <b>Hoạt động của học sinh</b>
1. T×m hiểu việc xây dựng hàm và thủ
tục.
- Chiếu khai báo kiểu dữ liệu diem và
tamgiac. Chiếu các hàm và thủ tục lên
bảng.
- Hỏi: Chức năng của mỗi chơng trình
con?
- Có các tham số nào? Tham số nào ở
dạng tham số biến và tham nào ở dạng
tham số giá trị.
2. Tìm hiểu chơng trình câu b, sách giáo
khoa trang 106.
- Chiếu chơng trình câub.
- Hỏi: Chơng trình thực hiện chơng trình
gì?
- Thực hiện chơng trình để giúp học
sinh thấy kt qu.
1. Quan sát các chơng trình con, các
lệnh và các khai báo tham số.
- Chức năng của mỗi chơng trình con:
daicanh(); tính độ dài ba cạnh a, b, c
của tam giác r.
chuvi():real; cho giá trị là chu vi của
tam giác r.
dientich():real; cho giá trị là diện tích
của tam gi¸c r.
tinhchat(); khẳng định tính chất của
tam giác: dều, cân hoặc vuông.
hienthi(); hiển thi tọa độ ba đỉnh của
một tam giác trên màn hình.
Kh_c¸ch():real; cho giá trị là khoảng
cách giữa hai điểm.
- Tham số biến r, a, b, c.
- Tham số giá trị p, q.
2. Quan sát chơng trình, dự tính chức
năng của chơng trình.
- Nhập vào tọa độ ba đỉnh của tam giác
và khảo sát tính chất của tam giác: cân,
vng, đều. In ra chu vi và diện tích của
tam giác.
- Quan sát kết quả trên màn hình để
đối chiếu với kết quả tự tính đợc.
- Thay tham biến thành tham trị để học
sinh thấy đợc sự sai khác.
1. Phân tích yêu cầu của đề bài.
+ Nhóm 1: Nêu câu hỏi phân tích để
giải quyết bài tốn.
+ Nhóm 2: Trả lời câu hỏi phân tích của
nhóm 1 để tìm ra cách giải quyết bài toán.
- Giáo viên góp ý bổ sung cho câu hỏi
phân tích và trả lời phân tích.
2. LËp tr×nh.
- Yêu cầu học sinh lập trình trên máy.
Giáo viên tiếp cận từng học sinh để sửa lỗi
cần thiết.
- Yêu cầu học sinh nhập dữ liệu vào của
giáo viên và báo cáo kết quả của chơng
trình.
- Đánh giá kết quả của học sinh
đợc hiệu ứng thay đổi của tham trị và
tham bin.
1. Quan sát yêu cầu.
- Nhóm 1: Đặt câu hỏi.
+ Dữ liệu ra.
+ Cần sửa những chỗ nào trong chơng
trình câu b.
+ Thut toỏn đếm số lợng các loại
hình tam giác.
- Nhóm 2: trả lời câu hỏi phân tích.
+ Cho trong tệp, phải viết lệnh đọc dữ
liệu trong tệp.
+ Ba số nguyên dơng là số lợng của ba
loại hình tam giác. Ba số đợc ghi trên ba
dòng của một tệp.
+ Cần thay đoạn chơng trình nhập dữ
liệu bằng một chơng trình con để đọc dữ
liệu từ tệp TAMGIAC.INP. Thay đoạn
ch-ơng trình in kết quả ra màn hình bằng
một chơng trình con để in ba số nguyên
dơng là số lợng ba loại hình ra tệp
TAMGIAC.OUT
+ ThuËt toán:
Nếu deu thì d:=d+1
Ngợc lại nếu can thì c:=c+1;
Ngợc lại thì v:=v+1;
2. c lp viết chơng trình, thực hiện
chơng trình đối với test t to.
- Thông báo kết quả cho giáo viên
- Nhập dữ liệu của giáo viên và báo
cáo kết quả.
<b>IV. Đánh giá cuối bài</b>
1. Nhng ni dung ó học.
- Cách xây dựng hàm và thủ tục, cách khai báo tham số dạng tham biến và tham trị.
- Tìm hiểu một số chơng trình con liên quan đến tam giác.
2. Câu hỏi và bài tập về nhà
- Cho file dữ liệu nh ở bài tập trong hoạt động 2.
- Đọc bài đọc thêm: Ai là lập trình viên đầu tiên? Sách giáo khoa, trang 109.