rat hay va soan cong phu
Trang 1Năm 2012-2013 Giáo án Tin Học 11
- Bổ sung thêm cho HS kiểu dữ liệu mới ngoài các kiểu dữ liệu đơn giản đã học
- Cung cấp cho HS công cụ để giải quyết các bài toán đặt ra trong thực tế một cách tối ưu nhất
- HS nắm được cách khai báo mảng 1 chiều và cách truy xuất đến các phần tử của mảng
- Bước đầu có thể vận dụng để giải các bài toán đơn giản
B PHƯƠNG PHÁP:
- Đặt vấn đề kết hợp với diễn giải
- Dùng phương pháp giải quyết vấn đề
C NỘI DUNG BÀI GIẢNG:
1 Ổn định lớp :
2 Kiểm tra bài cũ :
3 Bài mới :
Đặt vấn đề: Từ trước đến nay ta đã học các kiểu dữ liệu đơn giản như: kiểu số nguyên, kiểu
số thực, kiểu kí tự Từ các kiểu dữ liệu cơ bản này ta có thể xây dựng các kiểu dữ liệu phức tạp hơn đó là kiểu dữ kiệu có cấu trúc Hôm nya chúng ta đi vào sang chương mới đó
là kiểu dữ liệu có cấu trúc mà cụ thể là kiểu mảng.
Trong ví dụ của Sgk ta thấy
để tính nhiệt độ một tuần
người ta phải sử dụng 7 biến
để lưu trữ nhiệt độ của 7
nhiêu ngày thì ta phải dùng
bấy nhiêu câu lệnh if để
kiểm tra ngày đó có nhiệt độ
lớn hơn nhiệt độ trung bình
hay không
Trong bài toán này nếu
chúng ta tổ chức dữ liệu
dưới dạng mảng 1 chiều thì
việc giải quyết bài toán này
có phần đơn giản hơn
Ví dụ 2: Viết chương trình nhập vào
một dãy số nguyên bao gồm n phần tử và
in ra màn hình tổng các số có trong dãy
số đó.
2 Khai báo mảng 1 chiều:
a) Khai báo gián tiếp:
TYPE Tênkiểumảng=ARRAY[kiểu chữ số]
OF Kiểu phần tử;
Var tênbiến : tên kiểu mảng;
Trang 2Năm 2012-2013 Giáo án Tin Học 11
H: Trong ví dụ trên có bao
nhiêu phần tử từ bao nhiêu
cách khai báo gián tiếp?
TL: Tên kiểu được lặp lại 2
lần
Giả sử ta bỏ tên kiểu đi và ta
có thể khai báo trực tiếp vào
tên biến như sau:
Trong khai báo trực tiếp
Kiểu chỉ số và kiểu phần tử
tương tự như khai báo gián
tiếp
H: Từ cách khai báo gián
tiếp ở ví dụ trên em nào có
thể viết lại bằìng cách khai
báo trực tiếp (Cho HS lên
được đánh chỉ số bởi các giá
trị liên tục trong một miền
con nên việc thực hiện các
thao tác trên dãy thường gắn
liền với câu lệnh FOR DO
Cho Hs lên bảng viết nếu
còn thời gian
Trong đó:
- Kiểu chỉ số: là kiểu dữ liệu miền con mà
thông thường là biểu thứ nguyên xác định chỉ số đầu và chỉ số cuối Có dạng:
chỉ số đầu chỉ số cuối
- Kiểu phần tử là kiểu phần tử của mảng.
Ví dụ: Khai báo cho ví dụ 2 ở trênTYPE day=ARRAY[1 n] OF Integer;
Var A: day;
b) Khai báo trực tiếp:
VAR tênbiến : ARRAY[kiểu chữ số] OF Kiểu phần tử;
Ví dụ:
Var A: ARRAY[1 n] OF Integer;
3 Tham chiếu đến các phần tử của
mảng 1 chiều: TP không cho phép truy
xuất dữ liệu trực tiếp trên biến mảng mà chỉ có thể truy xuất đến các phần tử của mảng thông qua tên biến mảng và chỉ số của nó
a) Nhập giá trị cho mảng 1 chiều: Giả sử
mảng A đã được khai báo như ở trên hãy nhập giá trị cho mọi phần
tử của mảng.
FOR i:=1 TO n DO Begin
Write(‘Nhap vao cac phan tu thu’, i); Readln(A[i]);
Write(‘Nhap vao cac phan tu thu’, i); Readln(A[i]);
End;
S:=0;
FOR i:=1 TO n DO S:= S + A[i];
Writeln(‘Tong la’, S);
Readln;
End
Trang 3Năm 2012-2013 Giáo án Tin Học 11
D CỦNG CỐ:
Qua bài học, cần nắm vững cách sử dụng đối với kiểu dữ liệu này Chú ý đến cách khai báo mảng hoặc là gián tiếp hoặc là trực tiếp khi viết chương trình Nắm được cách nhập mảng, xuất giá trị của mảng ra màn hình Với mọi bài toán dùng mảng, khi cần tạo mảng hay thực hiện thao tác nào trên mảng, ta đều phải dựa vào chỉ số của nó
E Bài tập về nhà: Bài số 1 đến 8 trang 83 Sgk
- Bổ sung thêm cho HS kiểu dữ liệu mới ngoài các kiểu dữ liệu đơn giản đã học
- Cung cấp cho HS công cụ để giải quyết các bài toán đặt ra trong thực tế một cách tối ưu nhất
- HS nắm được cách khai báo mảng hai chiều và cách truy xuất đến các phần tử của mảng
- Bước đầu có thể vận dụng để giải các bài toán
E PHƯƠNG PHÁP:
- Đặt vấn đề kết hợûp với diễn giải
- Dùng phương pháp giải quyết vấn đề
F NỘI DUNG BÀI GIẢNG:
1 Ổn định lớp :
2 Kiểm tra bài cũ :
1 Trình bày cách khai báo mảng 1 chiều gián tiếp và vận dụng để viết chương trình đếm các số dương có trong dãy số có 10 phần tử nguyên
2 Trình bày cách khai báo mảng 1 chiều trực tiếp và vận dụng để viết chương trình tính tổng các số có trong dãy số có 10 phần tử nguyên
lấy một phần tử nào đó trong
bảng số thì ta phải dựa vào chỉ
II Kiểu mảng hai chiều:
1 Khai báo : a) Khai báo gián tiếp:
TYPE Tênkiểumảng=ARRAY[kiểu chỉ số dòng, kiểu chỉ số cột] OF Kiểu phần tử;
Var tênbiến : tên kiểu mảng;
Trong đó:
- Kiểu chỉ số dòng, kiểu chỉ số cột:: là kiểu dữ
liệu miền con mà thông thường là biểu thứ nguyên xác định chỉ số đầu dòng và chỉ số cuối dòng; chỉ số đầu cột và chỉ số cuối cột
- Kiểu phần tử là kiểu phần tử của mảng.
Ví dụ: Khai báo cho mảng A có n dòng, m cột, các phân tử có kiểu nguyên
Trang 4Năm 2012-2013 Giáo án Tin Học 11
Tương tự như khai báo mảng 1
chiều, mảng 2 chiều cũng được
khai báo tương tự như vậy
- Chỉ số của mảng được biểu
diễn theo chỉ số dòng và chỉ số
cột Các chỉ số của mảng phải là
các số nguyên
TP không cho phép truy xuất dữ
liệu trực tiếp trên biến mảng mà
vào chỉ số của từng phần tử, vậy
ta cần có hai biến để lưu chỉ số
dòng, chỉ số cột của mảng
+ Quá trình nhập ta đi từng
dòng, tại mỗi dòng ta sẽ lần lượt
nhập tại các cột Vậy quá trình
nhập được lặp lại theo từ dòng
Var A: mang2;
b) Khai báo trực tiếp:
VAR tênbiến : ARRAY[kiểu chữ số dòng,kiểu chỉ số cột] OF Kiểu phần tử;
Ví dụ:
Var A: ARRAY[1 n,1 m] OF Integer;
2 Tham chiếu đến các phần tử của mảng:
Tên biến mảng[chỉ số dòng, chỉ số cột]
c) Nhập giá trị cho mảng 2 chiều: Giả sử
mảng A đã được khai báo như ở trên hãy nhập giá trị cho mọi phần tử của mảng.
FOR i:=1 TO n DO FOR j:=1 TO m DO Begin
Write(‘Nhap vao cac phan tu thu’, i);
Readln(A[i,j]);
End;
FOR i:=1 TO 5 DO FOR j:=1 TO 3 DO Begin
IF a[i,j] >0 THEN Write( A[i,j], ‘ ‘);
End;
ReadlnEnd
D CỦNG CỐ:
Qua bài học, cần nắm vững cách sử dụng đối với kiểu dữ liệu này Chú ý học thuộc cách nhập mảng, với mọi bài toán dùng mảng, khi cần tạo mảng hay thực hiện thao tác nào trên mảng, ta đều phải dựa vào chỉ số của nó
E.HƯỚNG DẪN HỌC Ở NHÀ:
Trang 5Năm 2012-2013 Giáo án Tin Học 11
1 Cho mảng A có 4 dòng 5 cột, các phần tử có kiểu nguyên Hãy viết chương trình:
1 Giúp học sinh ôn tập kiến thức cũ đã học
2 Giúp học sinh hiểu rõ lý thuyết, nắm được mối liên hệ giữa các phần đã học
3 Hệ thống lại các nội dung đã học và vận dụng vào từng bài cụ thể
4 Học sinh nắm vững cú pháp, cách hoạt động của từng câu lệnh, vận dụng trong từng trường hợp cụ thể để giải bài tập
5 Học sinh vận dụng được lý thuyết vào việc giải bài tập
B Phương pháp:
- Dự kiến sử dụng phương pháp diễn giảng và đàm thoại
( thông qua hệ thống câu hỏi để đàm thoại trực tiếp với học sinh nhằm mục đích kiểm tra bài cũ và củng cố lại kiến thức đã học.)
- Gọi học sinh lên bảng làm bài tập
Hoạt động GV Hoạt động HS Nội dung
H: Khai báo mảng mấy
Var tênbiến : tên kiểu mảng;
a) Khai báo trực tiếp:
VAR tênbiến : ARRAY[kiểu chữ số] OF Kiểu phần tử;
II Bài tập:
Bài 1: Cho mảng A bao gồm n số nguyên (n
nhập từ bàn phím) rồi thực hiện các công việc sau:
a) Nhập giá trị cho từng phần tử của mảng b) In ra màn hình tổng các số dương và số lượng các số dương có trong mảng
c) In ra màn hình các số chia hết cho 5
Trang 6Năm 2012-2013 Giáo án Tin Học 11
Hoạt động GV Hoạt động HS Nội dung
nhất, giả sử dùng biến Min thì
biến min có kiểu gì?
Tl: Số thực
H: Để đếm số lượng các số
âm và số lượng các số dương
thì các biến có kiểu gi?
II Tl: Số nguyên
H: Muốn tìm số nhỏ nhất
trong 1 dãy số ta làm thế nào?
Tl: Đầu tiền gán giá trị đầu
làm giá trị nhỏ nhất sau đó so
sánh với các phaâ ftử còn lại,
nếu thấy có phần tử có giá trị
nhỏ hơn phần tử min thì gán
lại giá trị nhỉ nhất Làm như
vậy cho đến phần tử cuối
Write(‘Nhap vao cac phan tu thu’, i);
Readln(A[i]);
End;
S:=0; S1:=0; d:= 0;
FOR i:=1 TO n DOBegin
IF A[i]>0 then Begin S:= S + A[i];
Writeln(‘Tong so chia het cho 5, S1);
Writeln(‘So luong so duong, d);
Readln;
End
Bài 2: Cho mảng A bao gồm 20 số thực rồi
thực hiện các công việc sau:
a) Nhập giá trị cho từng phần tử của mảng b) In ra màn hình số lượng số dương và số lượng các số âm có trong mảng
Write(‘Nhap vao cac phan tu thu’, i);
Readln(A[i]);
End;
d1:= 0; d2:=0; Min:=A[i];
FOR i:=1 TO n DOBegin
IF A[i]<0 then d1:=d1+1 Else d2:=d2+1;
IF A[i] <Min then Min:=A[i];
End;
Writeln(‘So luong so duong’, d2);
Writeln(‘So luong so am, d1);
Writeln(‘So nho nhat la, min);
Trang 7Năm 2012-2013 Giáo án Tin Học 11
Hoạt động GV Hoạt động HS Nội dung
- Biết giải quyết trên máy tính một số bài toán về tính toán và tìm kiếm
- Tất cả học sinh phải nắm vững lý thuyết, phải chuẩn bị bài tốt
- Tất cả học sinh phải tận dụng tối đa thời gian thực hành
B Phương pháp: Thực hành đồng loạt tại phòng máy,cuối giờ có đánh giá kết quả
C Tiến trình thực hành:
1 Tổ chức:
lớp chia làm 20 nhóm: thực hành tại phòng máy
- khi đi thực hành phải đem theo bài đã chuẩn bị sẵn trên giấy kẻ ngang có ghi họ tên, lớp và nộp cho giáo viên khi vào phòng máy
- 2 3 học sinh /1máy
2 Tiến trình thực hiện:
A) Một số lỗi thường gặp :
“ ; “ expected : thiếu dấu ;
“ : “ expected : thiếu dấu :
“, “ expected : thiếu dấu,
“ ( “expected : thiếu dấu (
“ ) “ expected : thiếu dấu )
“ =” expected : thiếu dấu =
“ := “ expected : toán tử gán không xuất hiện ở nơi cần
error in statement: ký hiệu này không thể bắt đầu một câu lệnh
3 Nội dung thực hành:
Bài 1: Sgk trang 77
Các câu hỏi dự kiến:
1 Mở file mới, đặt tên file là BAI3.PAS
Bài 1a- Trong bài thực hành từ dòng 7 đến dòng 10 dùng để tạo số ngẫu nhiên
Câu hỏi 1: Nhập chương trình của bài 1a và ghi kết quả thu được khi chạy chương trình, Sau đó
thay dòng 7 đến dòng 10 bằng đoạn nhập giá trị cho từng phần tử của mảng như sau:
FOR i:=1 TO n DO
Write(‘Nhap vao cac phan tu thu’, i);
Trang 8Năm 2012-2013 Giáo án Tin Học 11
Câu hỏi 2: Chạy lại chương trình xem cách thực hiện có thay đổi hay không và kết quả như thế
nào?
- Viết tất cả kết quả thu được ở hai câu trên lên giấy và nộp lại cho giáo viên
Bài 1b: Nhập câu b) vào chương trình và ghi kết quả thu được vào giấy.
* Sau khi thực hiện xong thì ấn F2 để lưu lại kết quả
Bài 2:Cho mảng A gồm 10 phần tử có kiểu số nguyên Hãy viết chương trình:
Day vua nhap la: 4 2 5 3 9 67 45 52 12 14
So luong phan tu duong: 6
So luong phan tu am: 4
* Mở file mới, đặt tên file là BAI2.PAS
* Sau khi thực hiện xong thì ấn F2 để lưu lại kết quả
D CỦNG CỐ:
- Nắm được cách nhập giá trị cho mảng và tạo giá trị ngẫu nhiên của hàm Random
E DẶN DÒ: Tiết sau ôn tập để thi học kỳ.
- Biết giải quyết trên máy tính một số bài toán về tính toán và tìm kiếm
- Tất cả học sinh phải nắm vững lý thuyết, phải chuẩn bị bài tốt
- Tất cả học sinh phải tận dụng tối đa thời gian thực hành
B Phương pháp: Thực hành đồng loạt tại phòng máy, cuối giờ có đánh giá kết quả
C Tiến trình thực hành:
1 Tổ chức:
lớp chia làm 20 nhóm: thực hành tại phòng máy
- khi đi thực hành phải đem theo bài đã chuẩn bị sẵn trên giấy kẻ ngang có ghi họ tên, lớp và nộp cho giáo viên khi vào phòng máy
- 2 3 học sinh /1máy
2 Tiến trình thực hiện:
Trang 9Năm 2012-2013 Giâo ân Tin Học 11
* Một số lỗi thường gặp :
“ ; “ expected : thiếu dấu ;
“ : “ expected : thiếu dấu :
“, “ expected : thiếu dấu,
“ ( “expected : thiếu dấu (
“ ) “ expected : thiếu dấu )
“ =” expected : thiếu dấu =
“ := “ expected : toân tử gân không xuất hiện ở nơi cần
error in statement: ký hiệu năy không thể bắt đầu một cđu lệnh
- lặp lại cho đến khi mọi cặp phần tử liền kề trong dãy không còn bị nghịch thế nữa.
Víí dụ: Em nào có thể viết cách sắp xếp dãy trên theo chièu tăng dần?
Trang 10Năm 2012-2013 Giáo án Tin Học 11
KIỂU DỮ LIỆU XÂU
H MỤC ĐÍCH, YÊU CẦU:
- Giới thiệu kiểu dữ liệu có cấu trúc, kiểu xâu Những ứng dụng của kiểu xâu trong việc giải các bài toán
I PHƯƠNG PHÁP:
- Dùng phương pháp giải quyết vấn đề
- Truyền thụ các kiến thức về câu lệnh đến HS
J NỘI DUNG BÀI GIẢNG:
1 Ổn định lớp :
2 Kiểm tra bài cũ : không.
3 Bài mới : Hôm trước ta đã học kiểu dữ liệu có cấu trúc mảng, kiểu dữ liệu mảng có thể dùng
giái các bài toán quán lý điểm của HS Chẳng hạn, ta có thể lưu một danh sách lớp vào một mảng, trong đó, mỗi thành viên có một chỉ số Như vậy, nêu cần nhập họ tên của HS thì ta thấy họ tên
gồm nhiều ký tự, vậy ta dùng kiểu dữ liệu nào ?
- Kiểu dữ liệu nào liên quan đến ký tự mà ta đã học ?
- Liệu ta có dùng kiểu dữ liệu Char được không ?
Kiểu dữ liệu Char chỉ có thể dùng khi thao tác trên từng ký tự, nếu muốn dùng nhiều ký tự ta dùng kiểu dữ liệu xâu
- Cách khai báo
- Độ dài của xâu được
quy định gồm tối đa
1 Khai báo kiểu dữ liệu xâu :
VAR <Tên biến> : STRING[Độ dài lớn nhất của xâu];
- Độ dài của xâu được quy định gồm tối đa 255
ký tự
Ví dụ
Var Name : string[26];
Var Chugiai : String;
- Biểu diễn 1 ký tự trong xâu
TÊN XÂU[chỉ số của ký tự]
2 Các thao tác xử lí xâu:
a) Phép ghép xâu và phép toán quan hệ:
-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
Ví dụ: Phép ghép xâu :
Trang 11Năm 2012-2013 Giáo án Tin Học 11
noi, -, viet nam” thành
“ha noi – viet nam”
GV: Gọi hs trả lời:
Theo các em thì trong
hai xâu “My Computer”
và ”My Computer is
halt”, xâu nào nhỏ hơn
- GV: Hai xâu được coi
là bằng nhau nếu như
'Ha'+ ' noi' +' - '+'Viet nam' cho xâu kết
quả : 'Ha noi - Viet nam'
Ví dụ: Delete(‘mon tin hoc’, 1, 4) = ‘tin hoc’
- Thủ tục Insert(S1, S2, vt) chèn xâu S1 vào S2, bắt đầu ở vị trí vt.
Ví dụ: 1)Insert(‘A’, ‘Hinh 2.1’, 6) = ‘Hinh 2A.1’
2) Cho s1=’ văn hoa’; s2=’dao duc’ Kết quả của thủ tục insert(s1, s2, 8) là xâu ‘dao duc van hoa’
- Hàm Copy(S, vt, N) tạo xâu gồm N kí tự liên tiếp bắt đầu từ vị trí vt của xâu S
Ví dụ: Cho s='Bai hoc thu 9' Hàm Copy(S, 9, 5)
cho kết quả là 'thu 9'
- Hàm Length(S) cho giá trị là độ dài xâu S
Trang 12Năm 2012-2013 Giáo án Tin Học 11
E HDVN : - Chuẩn bị các ví dụ trong sgk cho tiết học tiếp theo
- Học tốt lý thuyết của bài cũ.
F RÚT KINH NGHIỆM:
Trang 13
-Năm 2012-2013 Giáo án Tin Học 11
Tiết 28
Ngày soạn:
KIỂU DỮ LIỆU XÂU (tt)
K MỤC ĐÍCH, YÊU CẦU:
- Củng cố kiến thức lý thuyết về kiểu dữ liệu xâu đã học ở tiết trước
- Rèn luyện kỹ năng giải bài tập cho HS
L PHƯƠNG PHÁP:
- Dùng phương pháp HS chủ động.
- GV nhận xét, gợi mở những vấn đề khó.
- Có khuyến khích điểm cộng điểm thưởng cho HS làm bài tập tốt
M NỘI DUNG BÀI GIẢNG:
1 Ổn định lớp :
2 Kiểm tra bài cũ :
- Nêu cách khai báo và truy xuất đến một phần tử của xâu?
- Nêu cú pháp và công dụng của các hàm xử lý xâu?
3 Bài mới : Tiết học này sẽ sử dụng một số hàm và thủ tục đã học về kiểu dữ liệu xâu vào từng bài
toán cụ thể
- GV: hướng dẫn theo đề bào
yêu cầu:
+ Khai báo hai biến xâu có độ
dài tùy ý
+ Nhập 2 họ tên của hai người
và lưu vào 2 biến xâu này
+ Dùng lệnh If để kiểm tra độ
dài hai xâu Độ dài hai xâu
được xác định bởi hàm length
-GV: Chương trình như sau
- GV: Tương tự như ví dụ 1,
các em hãy cho biết:
+ Khai báo bao nhiêu biến,
vào hai xâu họ tên của hai người
và đưa ra màn hình xâu dài hơn, nếu bằng nhau thì đưa ra xâu nhập sau
Var a,b:String;
Begin Write('Nhap xau ho ten thu nhat : '); Readln(a);
Write('Nhap xau ho ten thu hai : '); Readln(b);
If length(a)>length(b) then write(a) else write(b);
Readln End.
Ví dụ 2 : Nhập vào hai xâu từ bàn
phím và kiểm tra kí tự đầu tiên của xâu thứ nhất trùng với kí tự cuối cùng của xâu thứ hai không
Var x,y : byte;
a,b : string;
begin write('Nhap xau thu nhat : '); readln(a);
Trang 14Năm 2012-2013 Giáo án Tin Học 11
đầu tiên của một xâu như thế
nào?
HS: Câu lệnh If Kí tự đầu
tiên của xâu được viết là a[1]
và kí tự cuối cùng là
a[length(a)]
- GV: Chương trình như sau
- GV: Đối với bài toán này, ta
lưu ý các điểm sau:
+ khai báo 2 biến xâu, biến
xâu thứ 1 để nhập xâu ban đầu
từ bàn phím, biến xâu thứ 2 để
lưu xâu sau khi loại bỏ các
dấu cách của xâu ban đầu
+ Như vậy biến xâu thứ 2 ban
đầu chưa có kí tự phải được
+ Duyệt từng kí tự của xâu
ban đầu, nếu kí tự nào khác
dấu cách thì cộng vào biến
xâu thứ 2 Thao tác duyệt
Write hoặc Writeln
GV: Chương trình được viết
như sau
GV: Gợi ý thêm một cách
khác: Vì đề bài không yêu cầu
giữ đúng nguyên xâu đã nhập
nên ta có thể chỉ cần khai báo
Ví dụ 3: Viết chương trình nhập
một xâu vào từ bàn phím và đưa ra màn hình xâu thu được từ nó bởi việc loại bỏ các dấu cách
Cách 1:
Var i,k : byte;
a, b : string;
begin write('Nhap xau :');
Cách 2:
Var i,k : byte; a : string;
begin write('Nhap xau :'); readln(a);
Trang 15Năm 2012-2013 Giáo án Tin Học 11
+ Đối với bài này, ta có duyệt
từng kí tự của xâu s1 không?
HS: Có bằng lệnh For do như
các bài trước
+ Việc kiểm tra kí tự có phải
là số không nhờ vào lệnh nào
và biểu thức điều kiện ra sao?
HS: Lệnh if và biểu thức là
(S1[i]>='0') and (S1[i]<= '9')
-GV: Chương trình như sau
- GV: Ở ví dụ 3 và ví dụ 4
chúng ta thấy có sự giống
nhau nào không?
HS: Có Đó là cả hai bài toán
đều nhập vào một xâu và đều
có các thao tác lại bỏ các kí tự
thỏa một điều kiện cụ thể nào
đó ra khỏi xâu
Tuy nhiên đối với ví dụ 4 thì
ta phải khai báo 2 biến xâu,
không đuợc khai báo một biến
như ở cách 2 của ví dụ 3 vì đó
là yêu cầu của đề bài
-GV: Như vây để loại bỏ một
số kí tự thỏa điều kiện nào đó
trong một xâu, ta chỉ thay đổi
biểu thức điều kiện trong câu
Writeln('Ket qua : ', S2) End
D CỦNG CỐ :
Qua bài học, củng cố lại cách khai báo, cách biểu diễn xâu, các thủ tục và hàm được sử dụng trong kiểu dữ liệu xâu vận dụng vào từng bài toán cụ thể đồng thời nhắc lại cách viết một chương trình
E HDVN : - Chuẩn bị bài thực hành số 5 trong sgk cho tiết học tiếp theo
- giải các bài tập 11, 12/ sgk trang 85
F RÚT KINH NGHIỆM:
Trang 16Năm 2012-2013 Giáo án Tin Học 11
-Tiết 29, 30, 31
BÀI TẬP VÀ THỰC HÀNH 5 & BÀI TẬP
BÀI TẬP KIỂU DỮ LIỆU XÂU
N MỤC ĐÍCH, YÊU CẦU:
Hướng dẫn cách giải bài tập về xâu, giúp HS hiểu rõ hơn về kiểu dữ liệu xâu và ứng dụng thực
tế của nó
O PHƯƠNG PHÁP:
- Dùng phương pháp giải quyết vấn đề
- Truyền thụ các kiến thức về câu lệnh đến HS
P NỘI DUNG BÀI GIẢNG:
1 Ổn định lớp :
2 Kiểm tra bài cũ :
- Nêu cách khai báo 1 xâu, các hàm và thủ tục xử lý xâu?
-Viết chương trình nhập vào một xâu và cho biếy độ dài của xâu đó?
3 Bài mới :
GV: Hướng dẫn : Theo đề bài
yêu cầu :
- In ra màn hình câu hỏi
- Nhập câu trả lời vào
- So sánh xem câu trả lời có
phải là Tokyo không, nếu đúng
HS: Write hay writeln
GV: Nhập câu trả lời vào thì ta
dùng thủ tục hay lệnh nào ?
HS: Read hay Readln
GV: Để kiểm tra xem câu trả
lời có phải là Tokyo không thì
ta dùng câu lệnh gì ?
HS: IF
HS: lên bảng viết chương
trình
Chú ý : Nêu ta giải bài toán
như trên thì có gì thiếu không?
Giả sử người ta nhập vào câu
trả lời là TOKYO thì máy sẽ
báo như thế nào ? Các em về
nhà xem và tìm hiểu cách khắc
phục
GV: Phân tích yêu cầu bài
toán:
Bài 1: Đưa ra màn hình câu hỏi “Thu do
Nhat Ban la gi?”, nhập câu trả lời, nếu đúng thì đưa ra màn hình câu “Dung roi! Hoan ho!”, nếu sai thì đưa ra màn hình câu “Sai roi! Thu do Nhat Ban la Tokyo”Program Dovui;
Var s: String[10];
BeginWrite(‘ Thu do Nhat Ban la gi?”);
Chú ý : Nêu ta giải bài toán như trên thì
có gì thiếu không? Giả sử người ta nhập vào câu trả lời là TOKYO thì máy sẽ báo như thế nào ? Các em về nhà xem và tìm hiểu cách khắc phục
Bài 2: a) Nhập vào từ bàn phím một xâu
Kiểm tra xem nó có phải là một palindrome hay không? (Xâu được gọi là palindrome nếu như đọc nó từ phải sang trái cũng như đọc nó từ trái sang phải).sau :
Var i,x : byte;
a,p : string;
Trang 17Năm 2012-2013 Giáo án Tin Học 11
-Khai báo 2 biến xâu: biến xâu
a để nhập vào một xâu, biến
xâu p là xâu đảo ngược của a
+ duyệt từng kí tự của a theo
chiều từ cuối xâu về đầu xâu
và cộng mỗi kí tự đó vào xâu p
- kiểm tra p có bằng a không
bằng lệnh if, nếu có thì thông
báo 'Xau la palindrome',
ngược lại thì thông báo 'Xau
khong la palindrome'
-GV : Goi HS lên bảng giải
bài này
GV : giải thích :
+ khai báo 1 biến xâu a và
nhập xâu như các bài trước
+ Trong xâu a có thể có nhiều
từ ‘anh’ nên việc thay thế có
thể lặp lai nhiều lần nên ta
‘anh’ trong xâu a bởi hàm pos
* Xóa bỏ từ ‘anh’ trong xâu a
p:='';
for i:=x downto 1 do p:=a[i]+p;
if a=p then write('Xau la palindrome') else write('Xau khong la palindrome'); readln
end.
Bài tập nhà: b) Hãy viết lại chương trình trong đó không cần có biến xâu p
Bài 3 Nhập vào từ bàn phím một xâu
Thay thế tất cả các từ 'anh' trong nó bằng
từ 'em'
Var vt: byte;
a : string;
begin write('Nhap vao xau : ');
D CỦNG CỐ :
- Qua bài học này các em đã biết cách dùng kiểu dữ liệu xâu, các em xem lại các bài tập đã giải,
có phần nào cần tìm hiểu thêm hay có cách làm khác thì tìm hiểu và nêu ý kiến vào tiết sau
Trang 18Năm 2012-2013 Giáo án Tin Học 11
- Có thể ứng dụng kiểu dữ liệu này để làm các chương trình cho riêng mình, chẳng hạn chương trình đố vui
E HDVN : - Xem lại bài
-Chuẩn bị bài kiểu bản ghi cho tiết sắp đến
- làm bài tập 2 trang 82; 11, 12 trang 85
F RÚT KINH NGHIỆM:
Trang 19Năm 2012-2013 Giáo án Tin Học 11
Tiết 32, 33
Ngày soạn :
KIỂU BẢN GHI & BÀI TẬP BẢN GHI
A MỤC ĐÍCH - YÊU CẦU
- Học sinh nắm cú pháp cách khai báokiểu bản ghi
- Biết các đối tượng nào phải khai báo kiểu DL bản ghi
- Áp dụng viết chương trình cho các bài toán
B PHƯƠNG PHÁP
- Dùng bảng phụ để minh hoạ kiểu bản ghi
- Diễn giải, gợi mở để giáo viên & học sinh cùng giải quyết vấn đề
C CÁC BƯỚC LÊN LỚP
1 Ổn định lớp
2 Kiểm tra bài cũ
Em hãy nêu cách khai báo DL xâu và giải thích ý nghĩa các từ trong khai báo đó?
Nêu các hàm và thủ tục xử lý xâu?
Viết CT nhập vào một xâu S từ bàn phím, loại bỏ các dấu cách trong s và đưa ra màn hình?
3 Bài mới:
Trong Pascal, để mô tả các đối
tượng có cùng tập thuộc tính ta
có kiểu dữ liệu bản ghi
GV: Một ví dụ gần gũi với các
em là mô tả đối tượng học sinh
hoặc hoá đơn tập sách trong thư
1 Khái niệm về kiểu bản ghi
- Dùng để mô tả các đối tượng có cùng một số thuộc tính có kiểu dữ liệu khác nhau
- VD: Học sinh : Hđen: Xâu Nsinh: Xâu Gtinh: Lôgic Đia-chi: Xâu Hoadon: Ma-HD: số Ten-kh:Xâu Ten-sp:Xâu So-luong: Số nguyên Don-gia: Số thực Thanh-Tien: Số thực
Trang 20Năm 2012-2013 Giáo án Tin Học 11
GV: Để khai báo bản ghi, trong
TP quy định như sau:
GV: Nếu muốn khai báo 1, 2
biến bản ghi thì ta khai báo
<Tên biến>: < Tên kiểu bản
ghi> Tuy nhiên trong trường
hợp muốn khai báo nhiều biến,
chẳng hạn khi khai báo một lớp
có 50 học sinh thì ta dùng biến
mảng
GV: Gọi học sinh viết khai báo
cho đối tượng học sinh trong ví
dụ
HS: Trả lời, tên các trường,
kiểu dữ kiệu các trường
GV: Nếu các em muốn gán giá
trị cho từng trường thì ta viết
giá trị cho trường đó
VD:Gán cho Hs thứ 2 trong lớp
ngày sinh là’01/02/1990’
GV: Đối với ví dụ áp dụng này,
các em phải khai báo 1 mảng
gồm 50 học sinh, như vậy để
nhập dữ liệu cho mảng ta phải
2 Khai báo kiểu bản ghi.
TYPE
< Tên kiểu bản ghi> = RECORD
< Tên trường 1>: < Kiểu DL 1>;
< Tên trường k> : < Kiểu DL k>; End;
VAR
< Tên biến>: < Tên kiểu bản ghi>;
< Tên biến mảng>: ARRAY[1… Max] OF < Tên kiểu bản ghi>;
- VD: Khai báo mảng Lop có 50 phần tử, mỗi
phần tử là một bản ghi hocsinh có các thuộc tính ở VD trên
TYPE hocsinh = RECORD
* Chú ý : Nếu X là một trường của bản ghi A
thì được viết là: A.X
3 Gán giá trị
- Dùng lệnh gán : Nếu A& B là hai bíên bản ghi cùng kiểu thì : A:=B(B:A);
- Gán giá trị cho từng trường;
VD: A.Hoten:=’Ng Van A’;
Lop{2} Nsinh=’01/02/1990’;
- Ví dụ áp dụng: Viết chương trình nhập vào 1 danh sách học sinh trong 1 lớp gồm 50
em, có các thuộc tính : hoten, dtoan, dtin( từ bàn phím), DTB(=(Dtoan+Dtin)/2), ketqua (=’Dat’ nếu DTB>=5, =’rot’ neu DTB < 5).Program ket qua_hs;
Trang 21Năm 2012-2013 Giáo án Tin Học 11
dùng 1 câu lệnh FOR-DO
HS: Lắng nghe và suy nghĩ về
giải thuật viết chương trình
GV: Gọi HS đọc khai báo kiểu
HS: Lắng nghe & hiểu bài
TYPE hocsinh = RECORDHoten: String [20];
i: Byte,BEGINFor i:=1 to 50 DoBegin
Write(‘Nhap ho ten hs thu’,i);
Readln( Lop[i] Hoten);
Write( ‘Lop Dtoan, Dtin hs thu’,i);
Readln( Lop[i] Dtoan, Lop[i].Dtin); Lop[i] DTB: = ( Lop[i].Dtoan + Lop[i]Dtin)/2;
IF Lop[i].DTB>=5 THEN Lop[i].Ketqua:=’Dat’
ELSE Lop[i].Ketqua:=’Rot’;
End;
ReadlnEND
D CỦNG CỐ :
- Các đối tượng nào là khai báo kiểu bản ghi
- Cách khai báo kiểu bản ghi & gán giá trị cho nó
E HƯỚNG DẪN VỀ NHÀ:
1 Xem ví dụ SGK/74
2 Viết công thức nhập vào 100 hoá đơn gồm các thuộc tính: Ma-HĐ,Ten-SP, So-lương,
Don-gia( Từ bàn phím), thanh – tien(=so - luong x Don – gia) Đưa ra màn hìh các tên SP có số lượng
>20
F RÚT KINH NGHIỆM
Trang 22Năm 2012-2013 Giáo án Tin Học 11
- Học sinh nắm được khái niệm tẹp và phân loại gồm tệp định kiểu & tệp văn bản
- Biết cách khai báo tệp định kiểu & tệp văn bản
- Nắm rõ các thao tác xử lý dữ tệp theo trình tự gán tên tệp, mở tệp, đọc/ghi dữ liệu ( tệp định kiểu) đóng tệp
B PHƯƠNG PHÁP
- Diễn giảng, phân tích, gợi mở vấn đề
- Học sinh trao đổi, giải quyết vấn đề
C CÁC BƯỚC LÊN LỚP
1 Ổn định lớp
2 Kiểm tra bài cũ.
Nêu cách khai báo kiểu bản ghi ? Cho ví dụ các đối tượng cần khai báo
Cho biết các trường hợp gán giá trị cho bản ghi
Viết khai báo cho 1 lớp gồm 50 học sinh? Để nhập giá trị cho học sinh trong lớp, ta dùng câu lệnh gì?
3 Bài mới: Tất cả những kiểu dữ liệu các em đã học, khi được lưu trữ thì nó ở trong bộ nhớ
RAM, sẽ bị mất đi khi tắt máy Để những dữ liệu trên tồn tại lâu dài & có thể lưu lượng lớn, ta nên lưu nó thành một tệp, hay còn gọi là file mà các em hay thao tác trên máy Như vậy tệp chính là 1 kiểu dữ liệu lưu trữ những kiểu dữ liệu khác, nó ở trong bộ nhớ ngoài
Trang 23Năm 2012-2013 Giáo án Tin Học 11
1 Khái niệm kiểu tệp
- Để lưu trữ dữ liệu lâu dài & lớn, trong
TP có kiểu tệp
- Tệp lưu các phần tử cùng một kiểu là tệp định kiểu Thao tác với tệp định kiểu thực hiện trên từng phần tử của tệp bởi con trỏ tệp
- Tệp lưu các ký tự trên một hoặc nhiều dòng là tệp văn bản
2 Khai báo biến tệp
Trang 24Năm 2012-2013 Giáo án Tin Học 11
HS: nghe giảng, quan
dung của nó sẽ bị xoá
để chuẩn bị ghi thông
• - SEEK: ( < Tên biến tệp >), < Biến nguyên>) ;đưa con trỏ về vị trí ptử có STT xác định bởi giá trị của biến nguyên ( STT bắt đầu từ 0)
Trang 25Năm 2012-2013 Giáo án Tin Học 11
dùng với REWRITE
Lúc đó ghi giá trị từ
biến có < Tên biến>
vào tệp gắn với< Tên
biến tệp>
GV: Sau khi làm việc
xong với tệp phải đóng
- Nhắc lại lý thuyết các lệnh tệp định kiểu
- Phân biệt tệp định kiểu & tệp VB ( gọi học sinh)
E HDVN
- Học bài cũ
- Bài 1,2,3,4,5,SGK/99
F RÚT KINH NGHIỆM
Trang 26Năm 2012-2013 Giáo án Tin Học 11
Tiết 35 Ngày soạn:
§16.VÍ DỤ LÀM VIỆC VỚI TỆP
I Mục đích yêu cầu.
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ụ
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 Phương tiện dạy học
Giáo viên: Máy chiếu Projector để giới thiệu ví dụ, phòng máy vi tính.
Học sinh: Sách giáo khoa.
III Nội dung tiết dạy:
1 Kiểm tra bài cũ:
Câu hỏi: Em hãy nêu các thao tác thực hiện khai báo biến tệp văn
bản, Gán tên tiệp, mở tệp, đóng tệp và thao tác đọc/ ghi tệp văn bản.?
Trả lời: khai báo biến tệp văn bản:
Var <tên_biến_tệp>: Text
Hoạt động của học sinh Hoạt động của giáo viên Nội dung
1 Theo dõi, quan sát đề
bài và chương trình gợi ý.
• Tự tìm hiểu đề
bài trong SGK
• Hàm cho giá trị
true nếu con trỏ tệp định
vị ở vị trí kết thúc tệp
KCAB= x A*x B +y A*y B
• 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 while được không?
Giúp học sinh nhận biết được việc được công thức tính khoảng cách vào chương
Bài tập ví dụ 1 và ví dụ 2 trang 87 sách giáo khoa
Trang 27Năm 2012-2013 Giáo án Tin Học 11
• Tính và đưa ra
màn hình khoảng cách từ
trại của thầy hiệu trưởng
đến trại của mỗi giáo
viên
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 để lưu trữ
nội dung tương đương của
3 điện trở theo năm cách
ghép nối như trong sơ đồ
• Tính kết quả
của năm điện trở
tương đương
Kết quả: Công thức tính
điện trở sơ đồ 2:
R= (R1*R2)/(R1+R2)+R3
Công thức tính điện trở sơ
đồ 3:
R= (R1*R3)/(R1+R3)+R2
Công thức tính điện trở
trong sơ đồ 4:R=
R1+R2+R3
• Được sử dụng
để lưu giá trị của điện trở
tương đương trong các sơ
đồ 1, 2, 3, 4, 5
• Quan sát kết
quả của chương trình và
so sánh với kết quả tính
tương đương
• Nhận xét về tính
trình qua đoạn lệnh sau:
…d:=sqrt(x*x+y*y);
…Giới thiệu thêm về hàm sqrt(giá_trị) trong pascal là hàm trả về giá trị căn bậc 2 của giá trị được trong dấu ()
• Chương trình này thực hiện công việc gì?
• Thực hiện chương trình
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 8 SGK
• Hỏi công thức tính điện trở của sơ đồ 2,3,4
• Chiếu chương trình
ví dụ lên bảng
• Giúp học sinh nhận biết được việc cài đặt các công thức ở sơ đồ 1, 2, 3, 4 vào chương trình như sau:
Trang 28Năm 2012-2013 Giáo án Tin Học 11
chính xác và thời gian
thực hiện của chương
trình
• 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ả
3 Củng cố và khái quát bài học.
• 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)
4 Dặn dò: Đọc trứơc nội dung bài Chương trình con và phân loại Các viết
và sử dụng thủ tục
Bài tập
Cách khai báo thao tác với tệp văn bản trong Pascal
1 Em hãy cho biết chức năng của hàm Hàm EOF(<biến_tên_tệp>) ?
a Hàm cho giá trị true nếu con trỏ tệp định vị ở vị trí kết thúc tệp
b Trả lại giá trị cho biết con trỏ tệp đã ở vị trí cuối dòng chưa
c Trả về giá trị 0 nếu thực hiện thành công, trái lại nó trả về giá trị khác 0
d Sẽ trả lại giá trị 0 nếu thực hiện rewrite thành công, trái lại cho giá trị khác không
2 Để thực hiện gán tên tệp cho một biến tệp văn bản ta chọn hàm:
a Assign(<tên_biến_tệp>,<tên_tệp>);
b Var <tên_biến_tệp>: Text
c Rewrite(<tên_biến_tệp>);
d EOF(<biến_tên_tệp>)
3 Để thực hiện khai báo biến tệp văn bản ta sử dụng hàm:
a Var <tên_biến_tệp>: Text
Trang 29Năm 2012-2013 Giáo án Tin Học 11
- Học sinh củng cố kiến thức đã học ở tiết trước
- Rèn luyện kỹ năng thao tác với tệp định kiểu thông qua ví dụ
2 Kiểm tra bài cũ:
Nêu các thủ tục đọc/ ghi tệp vănbản
Neu cách khai bảo tẹp định kiểu? cho ví dụ?
Nêu các thủ tuchj gán tên tệp, mở tệp, đoc.ghi tênđịnh kiểu, đóng tệp?
3 Bài mới:
Tiết học trước các em đã học xong phần tệp & xử lý tệp Hôm nay ta sẽ làm các bài tập về tệp định kiểu để củng cố thêm các bài tập 4,5 SGK/99 & 1 số bài khác
GV: Gọi học sinh nêu
Bài 1: Lệnh Write thao tác với tệp định kiểu khác
lệnh thông tin ra màn hinh như thế nào?
- Không cần dấu cách giữa các biến trong danh sách biến
- Trước danh sách biến phải có biến tệp và dấu phẩy
- Lệnh Write trong tệp định kiểu: Các biến trong ds biến phải cùng kiểu lệnh
- Lệnh Write đưa thông tin ra màn hình, các biến trong ds biến có kiểu có thể khác nhau
Bài 2: Làm việc với tệp dùng để nhập thông tin,
có các lệnh:
Assign(F,fn) Reset(F)
Trang 30Năm 2012-2013 Giáo án Tin Học 11
GV: Gọi học sinh lên
bảng trả lời
HS: trả lời
GV: GV gọi học sinh
lên bảng trả lời
GV: Yêu cầu học sinh
cho biết ý nghĩa từng
từ khoá USES, Const,
- Tệp văn bản gồm các ký tự tổ chức & quản lý theo dòng Truy nhập tuần tự, có thể truy nhập trực tiếp
Readln (x.hoten);Write (‘nhap tuoi’);Readln (x.tuoi);
Write (‘nhap qh’); Readln (x.qh);
Write (f,x);
Writeln (‘ nhap nua khong?(C/K)’);
While TRUE doBegin
Readln(ch);
Ch:= Upcase (ch);
If ch in {‘C’,’K’} then break;
End;
If ch=’K’ then stop:=true;
End;
Close (F);
* Phần thêm: Yêu cầu viết ra màn hình nội dung
đã có trong tệp Writeln;
Trang 31Năm 2012-2013 Giáo án Tin Học 11
Read (f,x)Writeln (x.hoten,’ ’,x.tuoi,’ ’,x.qh);
End;
Close(f);
Readln End
Bài 5: Tương tự như bài 4, chỉ khác là : Tên tệp
là’MYBOOK.DAT’, bản ghi tên là ‘sach’( thay
vì là ‘nguoi’ như ở bài 4)
Bài tập thêm
1 Mở tệp ‘QUAN HE.DAT’ở bài 4 & hiển thị những thông tin đã có trong tệp bnày lên màn hình ?
2.Tạo tệp định kiểu ‘MT.DAT ‘ lưu các số nguyen không vượt quá Max = 56536
3 Đọc tệp ‘T.Dat’ Tìm các nguyên chẵn và lưu vào tệp văn bản ‘NT1.TXT’
D CỦNG CỐ: Các phần lý thuyết và bài tập đã cho về tệp Dữ liệu
E HDVN : Bài tập thêm
F RÚT KINH NGHIỆM
Trang 32Năm 2012-2013 Giáo án Tin Học 11
Tiết 37
Ngày soạn:
CHƯƠNG 6: CHƯƠNG TRÌNH CON
Bài 17: CHƯƠNG TRÌNH CON & PHÂN LOẠI Bài 18: CÁCH VIẾT & SỬ DỤNG CHƯƠNG TRÌNH CON
A MỤC ĐÍCH & YÊU CẦU
- Giới thiệu khái niệm CTC, lợi ích, sự cần thiết sử dụng CTC & sự phân loại chúng: hàm
2 Kiểm tra bài cũ
1, Em hãy nêu cách khai báo 2 kiểu tệp
2, Viết các thủ tục ứng với các thao tác xử lý tệp: gán tên tệp, mở tệp, đọc/ghi DL, đóng tệp
3 Bài mới
Khi viết công thức giải các bài toán lớn, phức tạp, ct thường rất dài, gồmg hàng trăm ngàn lệnh đọc vào rất khó nhận biết ct thực hiện công việc gi Vì vậy người ta phân 1 ct thnàh nhiều khối lệnh, mỗi khối giải quyết một bài toán con cụ thể nào đó Các khối lệnh này được xây dựng dưới dạng gọi là chương trình con
CHƯƠNG TRÌNH CON & PHÂN LOẠI
GV: trong 1 ct chính được
phân thành nhiỀu khối lệnh
Mỗi khối được gọi là CTC
GV: Vậy nếu ta coi CTC là 1
bài toán lớn chức năng của ct
con là gì?
HS: Giải quyết bài toán con để
1 Khái niệm: CTC là một khối các lệnh nhằm
giải quyết mmột bài toán con để góp phần giải quyết một bài toán lớn hơn
2 Ưu điểm khi sử dụng CTC
- Khi viết những chương trình dài, phức tạp,
Trang 33Năm 2012-2013 Giáo án Tin Học 11
giải bài toán lớn
GV: Từ khái niệm trên ta thấy
CTC có những ưu điểm sau:
GV: vì mỗi CTC giải quyết bài
toán con khác nhau nên ta có
thể giao cho mỗi người viết 1
CTC rồi ghép lại nhanh hơn
- Có thể giao cho nhiều người dùng viết
- Tránh lặp đi lặp lại một nhóm lọênh nào đó
- Thể hiện tư tưởng “ chia để trị “ nhằm đạt hiệu quả cao trong giải quyết vấn đề( vấn đề phức tạp thành các vấn đề đơn giản)
GV: Các em hãy cho biết để vẽ
được 1 hcn như vậy thì ta sử
1 hcn sẽ được vẽ bởi câu lệnh
trên Vậy 3 hcn sẽ được vẽ bơỉ
9 câu lệnh trong đó có 3 lần
lặp lại
Trong trường hợp ta vẽ N hcn
thì phải viết gấp N lần 3 câu
lệnh trên Như vậy chương
trình trở nên dài & khó hiểu
Writeln (‘* *’);
Writeln (‘**********’);
END;
BEGINVe-hcn;
Trang 34Năm 2012-2013 Giáo án Tin Học 11
HS: Viết CTC tương ứng cho 1
1 CTC giải quyết 1 bài toán
con nên nó có cấu trúc giống 1
CT chính, chỉ khác ở tên từ
khoá & end
GV: Minh hoạ trên ví dụ cho
học sinh thấy và từ đó gọi học
sinh đọc cách viết cấu trúc thủ
tục
HS : Suy nghĩ & trả lời
GV: Lưu ý hs là vẽ HCN
không cần khai báo cũng như
tham số nên trong ví dụ không
GV: Chỉ trên ví dụ cho hs thấy
HS: Quan sát & hiểu bài
END;
b Chú ý:
- Danh sách tham số : Có thể có hoặc không
- Phần khai báo: Xác định các hằng, kiểu, biến, khai báo thủ tục& hàm khác được sử dụng trong thủ tục
- Thủ tục được khai báo trong phần khai báo của CT, Sau khai báo biến
- Lời gọi thủ tục: < Tên thư mục>
D, CỦNG CỐ
- Nhắc lại khá niệm & ưu điểm, phân loại CTC
- Cách viết cấu trúc thủ tục & vị trí khai báo
Trang 35Năm 2012-2013 Giáo án Tin Học 11
E, HDVN
- So sánh giống và khác của CT & thủ tục Mối quan hệ giữa chúng
- Nếu muốn vẽ 3 HCN với 3 kích thước khác nhau thì ta làm như thế nào?
GV: Ta không thể dùng thủ tục Ve-hcn như trước nữa mà phải sửa đổi thủ tục sao cho khi thực
hiện thì có tthể quy định kích thuớc dai, rộng của hcn Các em tham khảo thêm phần 2
F RÚT KINH NGHIỆM