1. Trang chủ
  2. » Trung học cơ sở - phổ thông

tiết 25 52 tin học 11 nguyễn thần phong thư viện giáo dục tỉnh quảng trị

51 11 0

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

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

THÔNG TIN TÀI LIỆU

Nội dung

- Để thực hiện chương trình con ta cần 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à các tham số (nếu có) là các hằng và biến chứa các dữ liệu v[r]

(1)

Ngày soạn 12 tháng 11 năm 2008 BÀI TẬP VÀ THỰC HÀNH 3(t2)

A.MỤC ĐÍCH: 1.Kiến thức:

- Củng cố lại số kiến thức kiểu liệu mảng chiều - Củng cố lại số câu lệnh như: Nhập xuất, rẽ nhánh lặp 2.Kỹ năng:

- Nâng cao kỷ sử dụng số lệnh kiểu liệu mảng chiều lập trình, cụ thể: +Khai báo mảng chiều

+Nhập/ xuất liệu cho mảng

+Duyệt qua tất phần tử mảng để xử lý phần tử -Biết giải số toán bản:

+Tính tổng phần tử thoả mãn điều kiện

+ Bài tốn đếm thoả mãn điều kiện cho trước 3.Thái độ:

- Tiếp tục xây dựng lịng u thích giải tốn lập trình máy vi tính - Nghiêm túc thực hành, giữ gìn máy tính

B.PHƯƠNG PHÁP: Thực hành + Vấn đáp tái C.CHUẨN BỊ:

1 Giáo viên: Giáo án, SGK, SBT, máy chiếu Học sinh: Chuẩn bị nhà

D TIẾN TRÌNH LÊN LỚP:

I.ỔN ĐỊNH LỚP(1’):

Lớp 11C 11B1 11B2 11B3 11B4 Vắng

II.KIỂM TRA BÀI CŨ(15’): Kiểm tra 15 phút (Gv đưa lên máy chiếu) ĐỀ

Câu 1(5đ).Hãy viết cú pháp khai báo mảng chiều?

Câu 2(5đ).Viết đoạn chương trình nhập in mảng chiều vừa nhập? ĐÁP ÁN

Câu1: *Khai gián trực tiếp Viết 2,5đ

Var <Ds biến mảng>:array[n1 n2] of <Kiểu phần tử> ;

*Khai báo gián tiếp: Viết 2,5đ

Type <Tên kiểu mảng>=array[n1 n2] Of <Kiểu phần tử>;

Var <Ds biến mảng> : <tên kiểu mảng>;

Câu2:*Đoạn chương trình nhập mảng chiều Viết 2,5đ Write(‘Nhap so phan tu N=’); Readln(N);

For i=1 To N Do Begin

Write(‘Nhap a[‘,i,’]=’); Readln(a[i]); End;

*Đoạn chương trình in mảng chiều vừa nhập: Viết 2,5đ For i:=1 To N Write(‘Gia tri a[‘,i,’]=’, a[i]);

III.BÀI MỚI:

a.Đặt vấn đề(1’): Bài tập Thực hành3(T2) b.Triển khai mới:

Tiết

(2)

HOẠT ĐỘNG CỦA THẦY VÀ TRÒ NỘI DUNG KIẾN THỨC Hoạt động 1(13’)

(Tìm hiểu cách sử dụng lệnh kiểu liệu mảng chiều qua chương trình có sẳn) Gv:Đưa tốn lên máy chiếu, yêu cầu Hs thực theo câu hỏi sau:

Hãy tìm hiểu, gõ chương trình vào máy chạy chương trình đây:

Var A:array[1 100] of Integer; S,N,i,K:Byte;

Begin

Randomize;

Write('Nhap gia tri N='); Readln(N); Write('Nhap so nguyen K='); Readln(K); For i:=1 to n

A[i]:=random(300)-random(300); For i:=1 to N Write(A[i]:5); Writeln;

S:=0;

For i:=1 To N

If a[i] mod k =0 then S:=S+a[i]; Writeln('Tong can tinh la S=',S); Readln;

End

Hs:Thực hành gõ chương trình vào máy cho chạy chương trình cách nhấn tổ hợp phím Ctrl+F9

Gv:Quan sat học sinh thực hành

Hàm chuẩn Random(n), Randomize làm chức năng chương trình?

Hs:

-Random(n):Cho giá trị số nguyên ngẫu nhiêu từ đến n-1

-Radomize:Khởi tạo chế sinh số ngẫu nhiên Gv:

1.Đoạn chương trình tạo mảng có giá trị tuyệt đối khơng vượt q 300?

2.Giải sử chương trình bỏ hàm chuẩn Radomize có hay khơng?Vì sao?

Hs:Minh hoạ máy giải thích Gv:

Đưa chương trình máy chiếu giải thích đoạn chương trình để Hs hiểu vấn đề

Hoạt động 2(13’)

(Viết chương trình tốn tạo mảng) Gv:Đưa tốn lên hình máy chiếu

Bài tốn 1:

Tạo mảng A gồm n (n 100) số ngun, số có trị tuyệt khơng vượt q 300 Tính tổng phần tử mảng bội số số nguyên dương K cho trước

Var A:array[1 100] of Integer; S,N,i,K:Byte;

Begin

Randomize;

Write('Nhap gia tri N='); Readln(N); Write('Nhap so nguyen K='); Readln(K); For i:=1 to n

A[i]:=random(300)-random(300); For i:=1 to N Write(A[i]:5); Writeln;

S:=0;

For i:=1 To N

If a[i] mod k =0 then S:=S+a[i]; Writeln('Tong can tinh la S=',S); Readln;

End

*Lưu ý:

-Random(n):Cho giá trị số nguyên ngẫu nhiêu từ đến n-1

-Radomize:Khởi tạo chế sinh số ngẫu nhiên

Bài toán 2:(SBT.4.10/33): Cho hai dãy số nguyên A={a1, a2, , aN} B={b1, b2, ,bN} Dãy

C={c1, c2, , c2n} xác định sau:

(3)

Hs:Đọc đề toán

Gv:Yêu cầu Hs thực số việc sau:

Hãy cho biết cách tổ chức liệu bài toán cần khai báo biến nào?

Hs:Dựa vào Input Output để trả lời khai báo biến sau:

Var

A,B:Array[1 20] Of Byte; C: Array[1 40] Of Byte; i,N,k:Byte;

Gv:

Hãy nêu đoạn chương trình nhập mảng A, B?

Hs:

Vận dụng đoạn chương trình nhập giá trị cho mảng chiều để viết chương trình nhập mảng A, B?

Gv: Quan sát đưa đoạn chương trình xác máy chiếu

Viết đoạn chương trình tạo mảng C theo cơng thứ sau:

ak , Với i=2k -1, k=1,2, ,N

ci =

bk Với i=2k , k=1,2, ,N

Hs:Trả lời

For i:=1 To N Do c[2*i-1]:=a[i]; For i:=1 To N Do c[2*i]:=b[i]; Gv:

Hãy viết đoạn chương trình in mảng C? Hs:Trả lời

For i:=1 to 2*N Writeln(‘c[‘,i,’[=’,c[i]);

ci =

bk Với i=2k , k=1,2, ,N

Hãy lập trình:

a.Nhập từ bàn phím số nguyên N (2<=N<=20), dãy số nguyên A, B

b.Tạo đưa hình mảng C

Var

A,B:Array[1 20] Of Byte; C: Array[1 40] Of Byte; i,N,k:Byte;

Begin

Write(‘Nhap N=’); Readln(N); For i:=1 To N Do

Begin

Write(‘Nha gia tri a[‘,i,’]=’); Readln(a[i]);

End;

For i:=1 To N Do Begin

Write(‘Nha gia tri b[‘,i,’]=’); Readln(b[i]);

End;

For i:=1 To N Do c[2*i-1]:=a[i]; For i:=1 To N Do c[2*i]:=b[i]; For i:=1 to 2*N

Writeln(‘c[‘,i,’[=’,c[i]); Readln;

End

IV.CỦNG CỐ(1’): Nhận xét buổi thực hành=> Đưa số lổi thường gặp thực hành V.DẶN DỊ(1’): Đưa lên hình máy chiếu sau:

-Tiết sau học tiết: Bài tập thực hành 4(T2)

(4)

Ngày soạn 20 tháng 11 năm 2008

BÀI TẬP

A.MỤC ĐÍCH: 1.Kiến thức:

- Củng cố kiến thức lập trình với kiểu liệu mảng - Làm quen với thuật toán xếp bọt

- Hs nắm số tổ hợp phím chạy chương trình Pascal 2.Kỹ năng:

(5)

-Rèn luyện kỷ sử dụng kiểu liệu có cấu trúc, kỷ diễn đạt thuật tốn chương trình sử dụng kiểu liệu mảng

-Rèn luyện kỷ nhận xét, phân tích đề xuất cách giải tốn cho chương trình chạy nhanh

3.Thái độ:

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

B.PHƯƠNG PHÁP: Thực hành + Vấn đáp tái C.CHUẨN BỊ:

3 Giáo viên: Giáo án, SGK, SBT, máy chiếu Học sinh: Chuẩn bị nhà

D TIẾN TRÌNH LÊN LỚP:

I.ỔN ĐỊNH LỚP(1’):

Lớp 11A1 11B1 11B2 11B3 11B4 Vắng

II.KIỂM TRA BÀI CŨ(5’): Gv đưa câu hỏi lên máy chiếu Hãy nêu cách khai báo mảng hai chiều?

2.Hãy viết đoạn chương trình nhập in mảng hai chiều? a.Đặt vấn đề(1’): Bài tập Thực hành 4(T1) b.Triển khai mới:

HOẠT ĐỘNG CỦA THẦY VÀ TRÒ NỘI DUNG KIẾN THỨC

Hoạt động 1(20’)

(Tìm hiểu cách sử dụng lệnh kiểu liệu mảng chiều qua chương trình có sẳn) Gv:

Đưa toán lên máy chiếu, yêu cầu Hs thực theo câu hỏi sau:

Gv:

Hãy chạy chương trình với liệu như sau:

N=8

a1=7 a2=1 a3=4 a4=3

a5=8 a6=9 a7=10 a8=2 Cho nhận xét kết chương trình? Hs:Nhấn tổ hợp phím Ctrl + F9 để chạy chương trình nhập giá trị vào cho biến =>Nhận xét chương trình

Gv:

Khai báo mảng A khai báo gián tiếp hay trực tiếp?

Đoạn chương trình cho phép hốn đổi giá trị mảng?

Hs:

- Mảng a khai báo gián tiếp - Đoạn chương trình hốn đổi: For j:=n downto

Bài toán 1:

a.Hãy tìm hiểu chạy thử chương trình thực thuật toán xếp dãy số nguyên thuật toán tráo đổi với giá trị khác n

Type dayso=array[1 250] of Integer; Var

i,j,n,Tg:Integer; A:dayso;

BEGIN

Write('Nhap vao so phan tu cua day so: '); Readln(n);

For i:=1 to n Begin

Write('Nhap gia tri a[ ',i,']= '); Readln(A[i]);

End;

(6)

For i:=1 to j-1 If A[i]>A[i+1] then Begin

Tg:=A[i]; A[i]:=A[i+1]; A[i+1]:=Tg; End;

Gv:Yêu cầu Hs thực hành với liệu khác Hs:Thực hành với liệu để kiểm tra tính đắn thuật tốn

Hoạt động 2(15’) (Bài toán đếm)

Gv: Đưa yêu cầu máy chiếu toán sau:

Khai báo thêm biến nguyên Dem bổ sung vào chương trình câu lệnh cần thiết để biến Dem tính số lần thực tráo đổi trong thuật tốn Đưa kết tìm màn hình.?

Hs:Trả lời câu hỏi Dem:=0;

For j:=n downto For i:=1 to j-1 If A[i]>A[i+1] then Begin

Tg:=A[i]; A[i]:=A[i+1]; A[i+1]:=Tg; Dem:=Dem+1; End;

Gv:Quan sát Hs thực hành máy cách sửa chương trình đếm số lần tráo đổi

Hs:Thực hành máy tính với liệu quan sát kết toán

Tg:=A[i]; A[i]:=A[i+1]; A[i+1]:=Tg; End;

Writeln('Day so duoc sap xep '); For i:=1 to n Write(A[i]:5); Readln;

END.

b.Khai báo thêm biến nguyên Dem bổ sung vào chương trình câu lệnh cần thiết để biến Dem tính số lần thực tráo đổi thuật tốn Đưa kết tìm hình.? Type dayso=array[1 250] of Integer;

Var

Dem, i, j, n, Tg:Integer; A:dayso;

BEGIN

Write('Nhap vao so phan tu cua day so: '); Readln(n);

For i:=1 to n Begin

Write('Nhap gia tri a[ ',i,']= '); Readln(A[i]);

End; Dem:=0;

For j:=n downto For i:=1 to j -1 If A[i]>A[i+1] then Begin

Tg:=A[i]; A[i]:=A[i+1]; A[i+1]:=Tg; Dem:=Dem+1; End;

Writeln('Day so duoc sap xep '); For i:=1 to n Write(A[i]:5); Writeln(‘So lan trao doi la’, Dem); Readln;

END.

IV.CỦNG CỐ(2’):

-Nhận xét buổi thực hành=> Đưa số lổi thường gặp thực hành - Cần nắm thuật toán xếp bọt

(7)

-Tiết sau học tiết: Bài tập thực hành 4(T2)

-Bài tập nhà: Làm số tập sau: Bài 1->9/79(SGK) 2.Viết chương trình tính bảng cửu chương

Ngày soạn 27 tháng 11 năm 2008

KIỂU DỮ LIỆU XÂU

(tiết 1)

A.MỤC ĐÍCH: 1.Kiến thức:

- Biết kiểu liệu mới(Kiểu liệu xâu) như: khai báo biến kiểu xâu, tham chiếu đến biến xâu,

(8)

- Phân biệt giống va khác kiểu mảng kí tự với xâu ký tự - Biết phép toán liên quan đến xâu

2.Kỹ năng:

Khai báo biến xâu NNLT Pascal Sử dụng biến xâu phép toán xâu để giải toán đơn giản

3.Thái độ:

Tiếp tục rèn luyện phẩm chất cần thiết nguời lập trình như: ý thức chọn xây dựng kiểu liệu, ý thức rèn luyện kỹ năng,

B.PHƯƠNG PHÁP: Nêu giải vấn đề + Thuyết trình C.CHUẨN BỊ:

5 Giáo viên: Giáo án, SGK, SBT, máy chiếu Học sinh: Chuẩn bị nhà

D TIẾN TRÌNH LÊN LỚP:

I.ỔN ĐỊNH LỚP(1’):

Lớp 11A1 11B1 11B2 11B3 11B4 Vắng

II.KIỂM TRA BÀI CŨ(3’): Đưa toán lên máy chiếu sau

Hãy viết chương trình nhập vào N số nguyên dương, dãy ký tự A={a1,a2, ,aN } nhập

vào từ bàn phím thơng báo dãy vừa nhập hình Y/c:Hãy khai báo mảng ký tự ?

a.Đặt vấn đề(1’): Trong thực tế có tốn khơng thuộc kiểu liệu số mà cịn dạng phi số kiểu liệu xâu Bài học hôm tìm hiểu xem kiểu liệu xâu có khai báo biến nào, cách truy xuất, có giống với kiểu liệu mảng hay không?

b.Triển khai mới:

HOẠT ĐỘNG CỦA THẦY VÀ TRÒ NỘI DUNG KIẾN THỨC

Hoạt động 1(20’)

(Tìm hiểu khai báo biến)

Gv: Đưa tốn lên hình máy chiếu

Viết chương trình nhập họ tên 30 học sinh lớp?

Y/c:

Bài tốn ta chọn kiểu liệu thế nào? Khai báo biến nào?

Hs:Khai báo kiểu mảng ký tự

Gv:Minh hoạ chương trình tốn trên máy chiếu để hs quan sát khó khăn For i:=1 to n Read(a[i]);

Chương trình chạy có gặp khó khăn gì?

Hs:Viết dài dịng, nhập phải thực gõ nhiều phím

Gv:Dẫn dắt Cần có kiểu liệu cho phép nhập xuất lệnh

Gv:

Em hiểu xâu ký tự? Trong NNLT có quy định nào?

1.Khai báo biến kiểu xâu:

a.Khái niệm:

(9)

Hs:Dựa vào SGK để trả lời câu hỏi

Gv:Đưa khái niệm lên máy chiếu tìm hiểu ví dụ

Gv:Kiểu liệu xâu có khai báo nào? Hs:

Var <Tên biến>:String[n]; Gv:

Khi khai báo khơng có [độ dài lớn xâu] số lượng ký tự tối đa bao nhiêu?

Hs:Ký tự tối đa 255

Gv:Xâu gồm ký tự trống viết nào? Số lượng ký tự bao nhiêu?

Hs:Dựa vào SGK để trả lời câu hỏi

Gv:Xâu rỗng viết nào? Độ dài xâu rỗng bao nhiêu?

Hs:Dựa hiểu biết để trả lời Gv: Đưa tập sau lên máy chiếu Var st:string; c:char;

Begin

C:=ST[1]; {1} C:=st; {2} End.

Trong hai câu lệnh {1}, {2} câu lệnh đúng? Hs:Dựa vào kiến thức học để trả lời câu hỏi

Hoạt động 2(16’)

(Tìm hiểu số phép tốn xử lý xâu) Gv:

Hãy nhắc lại phép toán học kiểu liệu chuẩn?

Hs:

-Phép toán số học - Phép toán so sánh - Phép tốn Logic

Gv:Đưa ví dụ máy chiếu chạy chương trình để Hs quan sát

Var St:String; Begin

St:=’HA’ +’NOI’; Write(ST);

Readln; End

Hãy cho biết kết in hình? Cho

A

T I N H O C

1

Trong đó: Tên xâu: A

Mỗi ký tự gọi phần tử xâu Độ dài xâu (số ký tụ xâu):

Khi tham chiếu đến ký tự thứ I xâu, ta viết A[i]

b.Khai báo biến:

Var <Tên biến>:String[độ dài lớn xâu]; Var Hten:String[30];

*Lưu ý:

-Khi khai báo xâu bỏ qua phần khai báo [độ dài lớn xâu], độ dài lớn xâu gầm định 255 ký tự

Var Chuthich:String;

-Xâu gồm có kí tự trống ký hiệu ‘’, có độ dài

-Xâu rỗng khong có ký tự ký hiệu ‘’, có độ dài

2.Các thao tác xử lý xâu:

(10)

biết chức phép +?

Hs:Quan sát Gv minh hoạ đoạn chương trình trả lời câu hỏi

Gv:Đưa ví dụ máy chiếu chạy chương trình để Hs quan sát

Var kq:Boolean; Begin

Kq:=’AB’ <’AC’; Writeln(kq); Readln;

End

Hãy cho biết kết in hình ?Cách so sánh hai xâu thể nào?

Hs:Quan sát chương trình trả lời kết in hình

Gv:Chạy thử chương trình=> Kết luận máy chiếu

-Phép ghép xâu: Kí hiệu ‘+’, dùng để ghép nhiều xâu thàh xâu

Ví dụ: ‘HA’ + ‘NOI’ => ‘HA NOI’

-Phép toán so sánh: =,>, >=,<, <=, < > +Nếu xâu A= B chúng giống hệt +Nếu A>B

*Ký tự khác chúng xâu A có mã ASCII lớn xâu B

Ví dụ: ‘HA NOI’ > ‘HA NAM’ *Xâu B đoạn đầu xâu A Ví dụ: ‘HA NOI’ > ‘HA’ IV.CỦNG CỐ(3’):

-Nắm cú pháp khai báo biến kiểu xâu, cách truy xuất phần tử xâu

- Hãy viết chương trình nhập họ tên hai học sinh so sánh xâu lớn đư hình cịn đưa hai xâu?

Var Hoten1, Hoten2:String[25]; Begin

Write(‘Nhap Ho va Ten 1=’); Readln(Hoten1); Write(‘Nhap Ho va Ten 2=’); Readln(Hoten2); If Hoten 1> Hoten2 Then Writeln(Hoten1)

Else Writeln(Hoten2); If Hoten1= Hoten2 Then

Begin

Writeln(Hoten1); Writeln(Hoten2); End;

Readln; End

V.DẶN DỊ(1’): Đưa lên hình máy chiếu sau: -Tiết sau học tiết: Kiểu xâu(T2)

-Bài tập nhà: Làm số tập sau: Bài 10/80(SGK) - Xem đọc trả lời câu hỏi sau:

1.Xử lý xâu gồm có thủ tục nào?

(11)

Ngày soạn 04 tháng 03 năm 2008

KIỂU DỮ LIỆU XÂU

(tiết 2)

A.MỤC ĐÍCH: 1.Kiến thức:

- Biết lợi ích hàm thủ tục liên quan đến xâu ngơn ngữ lập trình Pascal

(12)

- Biết chức hàm thủ tục chuẩn, nắm cấu trúc chung, hiểu tham số hàm thủ tục

2.Kỹ năng:

Nhận biết bước đầu sử dụng số hàm thủ tục để giải số tập đơn giản liên quan

3.Thái độ:

Tiếp tục rèn luyện phẩm chất cần thiết nguời lập trình như: ý thức chọn hàm thủ tục thích hợp, xây dựng thuật tốn

B.PHƯƠNG PHÁP: Nêu giải vấn đề + Thuyết trình C.CHUẨN BỊ:

7 Giáo viên: Giáo án, SGK, máy chiếu Học sinh: Chuẩn bị nhà

D TIẾN TRÌNH LÊN LỚP:

I.ỔN ĐỊNH LỚP(1’):

Lớp 11A1 11B1 11B2 11B3 11B4 Vắng

II.KIỂM TRA BÀI CŨ(3’): Đưa toán lên máy chiếu sau -Hãy nêu khai báo kiểu liệu xâu? Lấy ví dụ minh hoạ?

-Hãy viết đoạn chương trình nhập vào từ bàn phím hai chuổi so sánh chuổi lớn in hình?

a.Đặt vấn đề(1’): Ở tiết trước học kiểu liệu xâu, ngày hơm tìm hiểu xem kiểu liệu xâu có hàm thủ tục liên quan đến xâu

b.Triển khai mới:

HOẠT ĐỘNG CỦA THẦY VÀ TRÒ NỘI DUNG KIẾN THỨC

Hoạt động 1(20’)

(Tìm hiểu chức số hàm và

thủ tục)

Gv:

Hãy cho biết Pascal có thủ tục cho phép xoá vài ký tự?

Hs:Thủ tục Delete

Gv:-Giới thiệu cấu trúc chung thủ tục Delete

-Đưa ví dụ sau lên hình máy chiếu: Var St:String;

Begin

St:=’HANOI’; Delete(St,3,2); Write(ST); End

Hãy cho biết kết in hình? Hs: Dựa vào thủ tục xố để trả lời câu hỏi Gv:Hãy cho biết kết thủ tục xoá thủ tục chuẩn sau:

Delete(‘ABCD’,1,5);

2.Các thao tác xử lý xâu: a.Phép toán xâu:

b.Phép toán so sánh:

c.Một số hàm thủ tục chuẩn:

+Thủ tục Delete(St, vt,n) thực xoá n ký tự biến xâu st vị trí

Ví dụ:

(13)

Delete(‘ABCD’,5,2); Delete(‘ABCD’,1,0); Hs:Trả lời kết Gv:

Hãy nêu chức hàm Insert(s1,s2,vt)? Hs:Dựa vào SGK để trả lời câu hỏi

Gv:

-Giới thiệu cấu trúc chung thủ tục Insert(s1,s2,vt)

- Đưa ví dụ sau lên máy chiếu: Var s1,s2:String; Begin

S2:=’HANOI’; S1:=’ ‘;

Insert(s1,s2,3); Write(S2); End;

Hãy cho biết kết in hinh? Hs: Trả lời ‘HA NOI’

Gv:Đưa câu hỏi sau lên máy chiếu Insert(‘ABC’,’EF’,5)-> ? Insert(‘ABC’,’EF’,0) ->? Hs:Trả lời

Insert(‘ABC’,’EF’,5)-> ‘EFABC’ Insert(‘ABC’,’EF’,0) ->’ABCEF’

Gv:Hãy cho biết hàm sau cho kết hình?

COPY(‘BAI THUC HANH’,5,9); Hs:Trả lời ‘THUC HANH’

Gv:-Giới thiệu cấu trúc chung chức hàm Copy

-Đưa lên máy chiếu tập sau: Copy(‘abc’,1,5)->?

Copy(‘abc’,5,2)->? Copy(‘abc’,1,0)->? Hs: Copy(‘abc’,1,5)->’abc’ Copy(‘abc’,5,2)->xâu rỗng Copy(‘abc’,1,0)->xâu rỗng

Gv:- Giới thiệu cấu trúc chức hàm Length(s), Pos(s1,s2), Upcase(ch)

-Hãy cho biết kết in hình: Length(‘THUC HANH’)=?

Pos(‘cd’,’abcdef’)=? Pos(‘k’,’abcdef’) =? Upcase(d)=?

Hs:Dựa vào cú pháp hàm để trả lời câu hỏi

+Thủ tục Insert(s1,s2,vt) chèn xâu s1 vào xâu s2 bắt đầu vị trí vt

Ví dụ:

Insert(‘ABC’,’EF’,5)-> ‘EFABC’ Insert(‘ABC’,’EF’,0) ->’ABCEF’

+Hàm Copy(S,vt,N) tạo xâu gồm N ký tự liên tiếp vị trí vt xâu S

Ví dụ: Copy(‘abc’,1,5)->’abc’ Copy(‘abc’,5,2)->xâu rỗng Copy(‘abc’,1,0)->xâu rỗng

+Hàm Length(S) cho giá trị độ dài xâu Ví dụ: Length(‘THUC HANH’)=9

+Hàm Pos(S1,S2) cho vị trí xuất xâu S1 xâu S2

Ví dụ:

(14)

Gv:Minh hoạ máy chiếu để Hs thấy kết hàm

Hạot động 2(17’) (Giới thiệu số ví dụ) Gv:

-Giáo viên soạn sẳn ví dụ để tiện cho Hs theo dõi việc chạy thử chương trình khơng làm thời gian ngồi viết chương trình

-Với ví dụ, Gv sâu vào câu lệnh trực tiếp đáp ứng yêu cầu ví dụ, em tiếp thu nhanh

Ví dụ 1 : Nhập xâu, viết hình xâu dài

Ví dụ 2 : Nhập xâu, kiểm tra xem ký tự xâu S1 có trùng với ký tự cuối xâu S2 hay không ?

Ví dụ 3 : Nhập xâu, viết hình xâu theo thứ tự ngược lại ký tự xâu

+Hàm Upcase(ch) cho chữ in hoa ứng với chữ ch

Ví dụ: Upcase(‘d’)=’D’ 3.Một số ví dụ:

VD :

Var s1,s2 : String ; Begin

Write('Nhap xau thu : ') ; Readln(s1) ;

Write('Nhap xau thu : ') ; Readln(s2) ;

If length(s1) > Length(s2) then Write(s1)

else

Write(s2); Readln ; End VD :

Var s1,s2 : String ; x : Byte ;

Begin

Write('Nhap xau thu : '); Readln(s1) ;

Write('Nhap xau thu : '); Readln(s2) ;

x := length(s2) ; If s1[1] = s2[x] then Write('Trung nha') else

Write('Khac nhau'); Readln ;

End VD :

Var i,k : Byte ; a : String ; Begin

Write('Nhap xau : ') ; Readln(a) ;

(15)

Ví dụ 4 : Nhập xâu, viết hình xâu bỏ tất ký tự dấu cách

Ví dụ 5 : Nhập xâu, viết hình xâu gồm ký tự số xâu

For i := k downto Write(a[i]) ;

Readln ; End VD :

Var i,k : Byte ; a,b : String ; Begin

Write('Nhap xau : ') ; Readln(a) ;

k := length(a) ; b :='' ;

For i := to k if a[i] <> '' then b := b+a[i] ; Write(b) ; Readln ; End VD :

Var s1,s2 : String ; i : Byte ;

Begin

Write('Nhap xau s1 : ') ; Readln(s1) ;

s2 := '' ;

For i := to length(s1)

If ('0'<s1[i]) and (s1[i]<='9') then s2 := s2 + s1[i] ;

Write(s2); Readln ; End IV.CỦNG CỐ(2’):

- Cần nắm cấu trúc chung số hàm thủ tục xử lý xâu

-Thông qua tập để nắm cách khai báo biên số câu lệnh V.DẶN DỊ(1’): Đưa lên hình máy chiếu sau:

-Tiết sau học tiết: Tiết 31: Bài tập Thực hành 4(t1)

Ngày soạn 05 tháng 12 năm 2008

BÀI TẬP VÀ THỰC HÀNH 4

(Tiết 1)

A.MỤC ĐÍCH: 1.Kiến thức:

- Khắc sâu thêm phần kiến thức lý thuyết kiểu xâu kí tự, đặc biệt hàm thủ tục liên quan -Nắm số thuật toán bản: tạo xâu mới, đếm số lần xuất ký tự,

(16)

2.Kỹ năng:

-Khai báo biến kiểu xâu -Nập, xuất giá trị cho biến xâu -Duyệt qua tất ký tự xâu -Sử dụng hàm thủ tục chuẩn 3.Thái độ:

Tích cực vàc chủ động thực hành B.PHƯƠNG PHÁP: Thực hành + Vấn đáp tái

C.CHUẨN BỊ:

9 Giáo viên: Giáo án, SGK, máy chiếu 10 Học sinh: Chuẩn bị nhà D TIẾN TRÌNH LÊN LỚP:

I.ỔN ĐỊNH LỚP(1’):

Lớp 11A1 11B1 11B2 11B3 11B4 Vắng

II.KIỂM TRA BÀI CŨ(3’): Đưa toán lên máy chiếu sau Hãy cho biết số hàm thủ tục chuẩn sau đây:

S=’THUC HANH TIN HOC’ S1=’BAI TAP’);

Length(s)->? Insert(S1,S,0)->? COPY(S, 30,9)->?

a.Đặt vấn đề(1’): Hôm học “bài tập thực hành5(t1)” để kiểm tra số thuật toán, số thủ tục hàm xử lý xâu

b.Triển khai mới:

HOẠT ĐỘNG CỦA THẦY VÀ TRÒ NỘI DUNG KIẾN THỨC

Hoạt động 1(20’)

(Tìm hiểu cách khai báo biến, sử dụng

hàm thủ tục chương trình)

Gv:Đưa tuèng chương trình lên máy chiếu để Hs quan sát tìm hiểu

-Giáo viên yêu cầu Hs gõ số chương trình sau vào NNLT Pascal, chạy chương trình để kiểm tra tính đắn thuật tốn -Với ví dụ, Gv sâu vào giải thích câu lệnh trực tiếp đáp ứng yêu cầu ví dụ, em tiếp thu nhanh

Hs: Soạn thảo ví dụ vào máy tìm hiểu cách sử dụng biến, hàm thủ tục

Ví dụ 1 : Nhập xâu, kiểm tra xem ký tự đầu tiên của xâu S1 có trùng với ký tự cuối xâu S2 hay khơng ?

I.Tìm hiểu khai báo biến, hàm thủ tục thông qua số chương trình có sẳn:

VD :

Var s1,s2 : String ; x : Byte ;

Begin

Write('Nhap xau thu : '); Readln(s1) ;

(17)

Ví dụ 2 : Nhập xâu, viết hình xâu đó theo thứ tự ngược lại ký tự xâu

Ví dụ 3 : Nhập xâu, viết hình xâu đó nhưng bỏ tất ký tự dấu cách

Ví dụ 4 : Nhập xâu, viết hình xâu gồm các ký tự số xâu đó

Readln(s2) ; x := length(s2) ; If s1[1] = s2[x] then Write('Trung nha') else

Write('Khac nhau'); Readln ;

End VD :

Var i,k : Byte ; a : String ; Begin

Write('Nhap xau : ') ; Readln(a) ;

k := length(a) ;

For i := k downto Write(a[i]) ;

Readln ; End VD :

Var i,k : Byte ; a,b : String ; Begin

Write('Nhap xau : ') ; Readln(a) ;

k := length(a) ; b :='' ;

For i := to k if a[i] <> '' then b := b+a[i] ; Write(b) ; Readln ; End VD :

Var s1,s2 : String ; i : Byte ;

Begin

Write('Nhap xau s1 : ') ; Readln(s1) ;

s2 := '' ;

For i := to length(s1)

If ('0'<s1[i]) and (s1[i]<='9') then s2 := s2 + s1[i] ;

(18)

Gv:Yêu cầu hs kiểm tra với số liệu nhập vào từ bàn phím giải thích câu lệnh ví dụ

Hoạt động 2(17’)

(Rèn luyện kỷ lập trình) Gv:Đưa câu hỏi lên máy chiếu

Hãy cho biết hàm đổi ký tự thường thành chữ in hoa?

Hs:Hàm Upcase(ch) Gv:

Hãy viết đoạn chương trình đổi chữ thường thành chữ in hoa?

Hs:Thực hành máy trả lời câu hỏi For i:=1 To Length(S) Do

Write(Upcase(S[i]);

Gv:Đưa câu hỏi lên máy chiếu

Hãy nêu ý tưởng thuật tốn đếm xâu S có ký tự số?

Hs:Thực hành máy->Trả lời câu hỏi Dem:=0;

For i:=1 To length(S) Do

If (S[i]>=’0’) and (S[i] <=’9’) Then Dem:=Dem+1;

Gv:Quan sát thực hành hs đưa câu hỏi

Ngoài cách viết thuật tốn trê ta cịn có cách viết khác nửa?

Hs:

- Tách dãy từ xâu S thành xâu có số (Ví dụ 4)

- Sử dụng hàm Length(S1)

Gv:Yêu cầu Hs thử sử dụng cách để kiểm chứng

II.Vận dụng câu lệnh, hàm thủ tục để viết chương trình:

Bài1:Hãy viết chương trình nhập vào xâu S bất kỳ đưa hình xâu in hoa.

Var S : String ; i : Byte ; Begin

Write('Nhap xau S : ') ; Readln(S) ;

For i:=1 To Length(S) Do Write(Upcase(S[i]); Readln;

End

Bài2:Hãy viết chương trình nhập vào xâu bất kỳ (có ký tự ký tự số) đưa màn hình có ký tự số?

Ví dụ:

S=’08bC156546CD’ =>Dem=8 Var S:String;

i, Dem:Byte; Begin

Write(‘Nhap xau S=’);Readln(S); Dem:=0;

For i:=1 To length(S) Do

If (S[i]>=’0’) and (S[i] <=’9’) Then Dem:=Dem+1;

Write(‘Tong so ky tu la so’,Dem); Readln;

End

IV.CỦNG CỐ(2’):

- Nhận xét buổi thực hành=>đưa số lổi thường gặp thực hành - Cần nắm cách khai báo biến xâu, hàm thủ tục xử lý xâu, V.DẶN DÒ(1’): Đưa lên hình máy chiếu sau:

(19)

-Bài tập nhà: 10,11/79(SGK) - Xem đọc trả lời câu hỏi sau:

1.Hãy viết chương trình nhập vào từ bàn phím xâu S đếm xâu S có dấu cách? 2.Hãy viết chương trình nhập từ bàn phím xâu S tách xâu từ xâu S vị trí lấy ký tự?

Ngày soạn 11 tháng 12 năm 2008

BÀI TẬP VÀ THỰC HÀNH 4

(Tiết 2)

A.MỤC ĐÍCH: 1.Kiến thức:

- Hs tự xây dựng số thật toán xâu soạn thảo NNLT Pascal

- Khắc sâu thêm phần kiến thức lý thuyết kiểu xâu kí tự, đặc biệt hàm thủ tục liên quan 2.Kỹ năng:

(20)

-Khai báo biến kiểu xâu

- Nhập, xuất giá trị cho biến xâu - Duyệt qua tất ký tự xâu - Sử dụng hàm thủ tục chuẩn 3.Thái độ:

Tích cực vàc chủ động thực hành B.PHƯƠNG PHÁP: Thực hành + Vấn đáp tái

C.CHUẨN BỊ:

11 Giáo viên: Giáo án, SGK, máy chiếu 12 Học sinh: Chuẩn bị nhà

D TIẾN TRÌNH LÊN LỚP:

I.ỔN ĐỊNH LỚP(1’):

Lớp 11A1 11B1 11B2 11B3 11B4 Vắng

II.KIỂM TRA BÀI CŨ(3’): Gọi Hs lên bảng viết

Hãy nêu cú pháp ý nghĩa hàm thủ tục xử lý xâu? Mỗi thủ tục hàm lấy ví dụ?

a.Đặt vấn đề(1’): Hơm học “Bài tập Thực hành5(t2)” để kiểm tra số thuật toán, số thủ tục hàm xử lý xâu

b.Triển khai mới:

HOẠT ĐỘNG CỦA THẦY VÀ TRÒ NỘI DUNG KIẾN THỨC

Hoạt động 1(15’)

(Tìm hiểu cách khai báo biến, sử dụng

hàm thủ tục chương trình)

Gv:Đưa nội dung tập lên máy chiếu

Hãy gõ chương tình chạy thử với test sau:

A=’abccba’ A=’fgđhfs’

Hs:Quan sát hình máy chiếu SGK để gõ chương trình vào NNLT Pascal

Gv: Quan sát Hs gõ chương trình đưa câu hỏi thảo luận sau:

Với hai test kết xuất nào?

Hs: Thực hành trả lời kết qua.í

Gv: Hãy sửa lại chương trình mà khơng sử dụng biến P?

Hs:Thảo luận theo nhóm (2Hs/máy) -Dùng biến kt

-Soạn thảo chương trình

I.Soạn thảo chương trình tìm hiểu cách khai báo biến số câu lệnh:

Nhập vào từ bàn phím xâu Kiểm tra xâu đó có phải xâu đối xứng hay khơng Xâu đối xứng có tính chất: đọc từ phải sang trái cũng thu kết giống đọc từ trái sang phải (Còn gọi xâu palindrome)

a.Hãy chạy thử chương trình sau: Var

i,x:Byte; a,p:String; Begin

Write(‘Nhap xau a=’); Readln(a); P:=’’;

For i:=length(a) Downto Do p:=p+a[i]; If a=p Then Write(‘Xau palindrome) Else Write(‘Xau khong phai la palindrome); Readln;

End

b.Hãy viết lại chương trình trên, đó khơng dùng biến xâu p?

Var

(21)

-Chạy thử chương trnhf với Test

Gv:

-Quan sát đưa chương trình hồn chỉnh lên máy chiếu để Hs so sánh

-Ngồi cịn có cách thứ 2:

While i<=(x div2) And (a[i]=a[x-i+1] Do i:=i+1

If i>(x div 2) Then Write(‘Xau palindrome) Else Write(‘Xau khong phai la palindrome);

Hoạt động 2(22’)

(Rèn luyện kỷ lập trình) Gv:Đưa câu hỏi lên máy chiếu

S=’AbaCDacd’

Hãy cho biết số lần xuất chữ tiếng Anh S ( không phân biệt chữ hoa hay chữ thường)?

Hs:Đếm trả lời

Gv: Hãy nêu Input Output toán? Hs:

Input:Nhập xâu S

Output: Đếm số lần xuất hiền chữ tiếng anh

Gv:

Trong bảng chữ tiếng anh có bao nhiêu chữ cái?

Hs:Gồm có 26 chữ Gv:Hướng dẫn Dem[A]:=0; Dem[B:=0;

Dem[Z=0;

Hãy viết câu lệnh khởi tạo biến như thế nào?

Hs:Sử dụng câu lệnh For

Gv: Hãy viết đoạn chương trình đếm số lần xuất chữ tiếng Anh?

Hs: Suy nghĩ trả lời If S[i] in ['A' 'Z'] Then Begin

S[i]:=upcase(S[i]); Dem[S[i]]:=Dem[s[i]]+1;

Begin

Write(‘Nhap xau a=’); Readln(a); Kt:=True;

X:=length(a); For i:=1 To x div Do

If a[i]<> a[x-i+1] Then kt:=False; If Kt Then Write(‘Xau palindrome) Else Write(‘Xau khong phai la palindrome); Readln;

End

II.Vận dụng kiểu liệu xâu để lập trình: Bài 2: Viết chương trình nhập từ bàn phím xâu S thông báo số lần xuất chữ cái tiếng Anh S ( không phân biệt chữ hoa hay chữ thường).

Input:Nhập xâu S

(22)

End;

Gv:Yêu cầu hoạt động theo nhóm (2Hs/1máy tính) theo mẫu sau:

Var

Dem:array['A' 'Z'] Of Byte; S: ;

i: ; ch: ; Begin

Write('Nhap xau S='); Readln(S); For ch:='A' To 'Z' Do Dem[ch]:= ; For i:=1 to Length(S) Do

If S[i] in ['A' 'Z'] Then Begin

End;

For ch:='A' to 'Z' Do If Dem[S[i]]<> Then Writeln( ); Readln;

End

Hãy viết chương trình đầy đủ chạy thử chương trình để để tra xem kết đúng? Hs:Thảo luận theo nhóm để điền chạy chương trình báo cáo kết

Gv:Quan sát đưa tồn chương trình lên máy chiếu chạy thử để Hs quan sát

Var

Dem:array['A' 'Z'] Of Byte; S:string;

i:Byte; ch:char; Begin

Write('Nhap xau S='); Readln(S); For ch:='A' To 'Z' Do Dem[ch]:=0; For i:=1 to Length(S) Do

If S[i] in ['A' 'Z'] Then Begin

S[i]:=upcase(S[i]); Dem[S[i]]:=Dem[s[i]]+1; End;

For ch:='A' to 'Z' Do If Dem[S[i]]<> Then

Writeln('so lan xuat hien ',ch,' la',Dem[ch]); Readln;

End

IV.CỦNG CỐ(2’):

- Nhận xét buổi thực hành=>đưa số lổi thường gặp thực hành - Cần nắm cách khai báo biến xâu, hàm thủ tục xử lý xâu,

- Cần nắm thuật toán đếm số lần xuất chữ tiếng anh, kểu tra xâu đối xứng V.DẶN DỊ(1’): Đưa lên hình máy chiếu sau:

-Tiết sau học tiết: Tiết 33: Bài tập -Bài tập nhà:

1.Nhập từ bàn phím xâu Thay tất cụm kí tự 'anh' cụm kí tự 'em'

Ngày soạn 18 tháng 12 năm 2008

KIỂU BẢN GHI

A.MỤC ĐÍCH: 1.Kiến thức:

- Biết khái niệm kiểu bảng ghi

- Biết cách khai báo ghi, truy xuất trường ghi

- Phân biệt giống khác kiểu ghi với mảng chiều 2.Kỹ năng:

- Khai báo kiểu ghi, khai báo biến kiểu ghi NNLT Pascal

(23)

- Nhập xuất liệu cho biến ghi

- Tham chiếu đến trường kiểu ghi - Sử dụng kiểu ghi để giải số toán

3.Thái độ:Tiếp tục rèn luyện phẩm chất cần thiết nguời lập trình như: ý thức chọn xây dựng kiểu liệu, ý thức rèn luyện kỹ năng,

B.PHƯƠNG PHÁP: Nêu giải vấn đề + Thuyết trình C.CHUẨN BỊ:

13 Giáo viên: Giáo án, SGK, máy chiếu 14 Học sinh: Chuẩn bị nhà

D TIẾN TRÌNH LÊN LỚP:

I.ỔN ĐỊNH LỚP(1’):

Lớp 11A1 11B1 11B2 11B3 11B4 Vắng

II.KIỂM TRA BÀI CŨ: Không

a.Đặt vấn đề(2’): Đưa lên máy chiếu toán cần giải sau:

Viết chương trình dùng để quản lí thí sinh kỳ thi tuyển sinh Chương trình cần quản lí :

+ SBD thí sinh, + Họ tên thí sinh, + Giới tính,

+ Điểm mơn …

GV : Đưa số câu hỏi sau :

- Làm để quản lý tồn thơng tin học sinh ?

- Mỗi thơng tin có kiểu liệu ?

HS : Có thể quản lý kiện mảng chiều

=>Ngơn ngữ lập trình bậc cao có cách tốt để quản lý liệu -> Bản ghi b.Triển khai mới:

HOẠT ĐỘNG CỦA THẦY VÀ TRÒ NỘI DUNG KIẾN THỨC

Hoạt động 1(10’)

(Giới thiệu số khái niệm)

Gv:Đưa bảng điểm SGK lên máy chiếu, rõ :

-Mỗi hàng gọi bảng ghi -Mỗi cột trường

Hs:Lắng nghe quan sát bảng máy chiếu để Hs biết rõ

Gv:

Bảng liệu thường xác định giá trị nào?

Hs:Dựa vào bảng SGK để trả lời câu hỏi Gv:

Đưa lên máy chiếu thuộc tính bảng ghi

Hoạt động 2(15’) (Khai báo biến bảng ghi)

Gv: -Mỗi NN có cách khai báo bảng ghi

I.Một số khái niệm:

- Kiểu ghi dùng để mô tả cho đối

tượng có số thuộc tính mà thuộc tính có kiểu liệu khác

- Bản ghi thường gọi Record, Record lưu trữ liệu đối tượng cần quản lí

- Mỗi thuộc tính đối tượng tương ứng với

một trường ghi Các trường khác có liệu khác

- Các ngôn ngữ lập trình thường cho cách để xác định :

+ Tên kiểu ghi + Tên trường

+ Kiểu liệu trường + Cách khai báo biến +Cách tham chiếu đến trường

<Tên biến ghi> <Tên trường>

(24)

khác

-Ngôn ngữ Pascal không cho bạn khai báo biến ghi trực tiếp mà phải khai báo biến ghi thông qua khai báo kiểu ghi

-Trước hết phải khai báo kiểu ghi sau biến ghi khai báo thông qua kiểu ghi

GV : Làm để khai báo nhiều biến ghi có kiểu ?

HS : GV gợi ý để học sinh đưa sử dụng kiểu mảng phần tử mảng có kiểu ghi

Gv:Ví dụ khai báo ghi

+Khai báo kiểu ghi để xử lý bảng kết thi học sinh

Mỗi ghi bao gồm : Họ tên học sinh (Hoten), ngày tháng năm sinh(Ngaysinh), Giới tính (NamNu), điểm thi mơn học sinh (Toan, Ly, Hoa, Van, Su, Dia,Tin)

Hãy xác định kiểu liệu cho trường (Mỗi nội dung trường ghi)?

Hs:Vận dụng để viết cách khai báo

GV : Khi có nhu cầu thay đổi thơng tin trường, làm để truy cập thông tin vào trường ghi ?

Hs:Mỗi ngơn ngữ có cách truy cập khác

nhưng thường viết :

<Tên biến ghi>.<tên trường>

GV: Đưa số ví dụ

Hoạt động 2(8’) (Giới thiệu cách gán giá trị)

Gv: Dựa vào cách khai báo biến ghi trên hãy cho biết cách gán A:=B B:=A đúng hay sai?

Hs:A, B kiểu nên gán cho Gv:Giới thiệu đưa lên máy chiếu nội dung gán

Type <Tên kiểu ghi>=Record <Tên trường 1> : <Kiểu trường 1>; ……… ……… <Tên trường n> : <Kiểu trường n>;

End ;

Var <Tên biến> : <Tên kiểu ghi>;

Var

<Tên mảng> : Array[1 n] Of <Tên kiểu ghi> ;

2.Ví dụ:

Type Hocsinh = Record Hoten : String[30] ; Ngaysinh : String[10] ; NamNu :Boolean ;

Toan,Ly, Hoa, Van, Su, Dia : Real ; End ;

Var A, B : Hocsinh ;

Lop : Array[1 100] Of Hocsinh ;

Ví dụ : A.Hoten B.Ngaysinh Lop[i].Toan Lop[i].Ly

……… với i số mảng Lop

Để truy cập vào trường ghi, ta viết: <Tên biến ghi> <Tên trường>

III.Gián giá trị:

Có cách để gán giá trị cho ghi

-Dùng lệnh gán trực tiếp : Nếu A, B hai ghi kiểu ta gán giá trị A cho B câu lệnh gán:

Vd : B := A ; A := B ;

(25)

Readln(a.Ngaysinh);

Chương trình xử lý bảng kết thi

IV.CỦNG CỐ(8'): Đưa lên máy chiếu ví dụ sau:

Ví dụ : Chương trình sau viết ngôn ngữ Pascal dùng kiểu ghi để xử lý bảng kết thi bao gồm môn Toán, Văn học sinh , Sau nhập xong danh sách đưa bảng kết học tập xếp loại (xem kỹ đầu SGK)

(* Kieu ban ghi xu ly bang ket qua thi mon : Toan, Van *) Type Hocsinh = Record

Ten : String[30] ; Ngaysinh : String[10] ; Diachi : String[50] ; toan, van : real ; Xeploai : Char ; End ;

Var

Lop : array[1 100] of Hocsinh ; i, n : Byte ;

Tg : Real ; Begin

Write(' Cho biet so hoc sinh : ') ; Readln(n) ;

For i := to n Begin

Writeln(' Vao thong tin cho hoc sinh thu ',i,' : ') ; Write (' Ho ten : ') ;

readln(Lop[i].ten) ; Write(' Ngay sinh : ') ; readln(Lop[i].Ngaysinh) ; Write(' Dia chi : ') ; readln(Lop[i].Diachi) ; Write(' Diem Toan : ') ; readln(Lop[i].toan) ; Write(' Diem Van ') ; readln(Lop[i].van) ;

Tg := Lop[i].toan + Lop[i].van ; if Tg >= 18 then Lop[i].Xeploai := 'A' Else if Tg >= 14 then Lop[i].Xeploai := 'B' Else if Tg >= 10 then Lop[i].Xeploai := 'C' Else Lop[i].Xeploai := 'D'

End ; Readln ;

For i := to n

Writeln(i : 4, Lop[i].ten : 30 , ' - Loai : ', Lop[i].Xeploai); Readln ;

End

V.DẶN DỊ(1’): Đưa lên hình máy chiếu sau: -Tiết sau học tiết: Tiết 35:Bài tập

(26)

-Bài tập nhà: bài11/80(SGK)

Thông tin Hs gồm trường:

+Họ Đệm:mỗi xâu 25 ký tự

+Tên:mỗi xâu 10 ký tự

+Tuổi:gồm số nguyên hai chữ số

+Lớp:Một xâu hai chữ số chữ viết hoa

Hãy lập chương trình nhập từ bàn phím danh sách lớp 15 học sinh vào mảng

bảng ghi Sau hiển thị danh sách lên hình, người dòng?

Ngày soạn 19 tháng 12 năm 2008

BÀI TẬP VÀ THỰC HÀNH 5( T1)

A.MỤC ĐÍCH:

1.Kiến thức:

- Ơn lại kiến thức ghi: cú pháp khai biến, cách tham chiếu, số câu lệnh liên quan đến thao tác xử lý ghi

- Nắm số thuật tốn: Nhập thơng báo kết trường, xếp liệu 2.Kỹ năng:

- Khai báo kiểu ghi NNLT Pascal

(27)

- Nhập xuất liệu cho biến ghi

- Tham chiếu đến trường kiểu ghi - Sử dụng kiểu ghi để giải số toán

3.Thái độ:Tiếp tục rèn luyện phẩm chất cần thiết nguời lập trình như: ý thức chọn xây dựng kiểu liệu, ý thức rèn luyện kỹ năng,

B.PHƯƠNG PHÁP: Vấn đáp tái + Thảo luận nhóm C.CHUẨN BỊ:

15 Giáo viên: Giáo án, SGK, máy chiếu, giấy A0 bút

16 Học sinh: Chuẩn bị nhà D TIẾN TRÌNH LÊN LỚP:

I.ỔN ĐỊNH LỚP(1’):

Lớp 11A1 11B1 11B2 11B3 11B4 Vắng

II.KIỂM TRA BÀI CŨ(5'):

1.Hãy nêu cú pháp khai báo biến ghi? 2.Hãy khai báo biến ghi ví dụ sau:

BẢNG ĐIỂM TRUNG BÌNH NĂM HOC 2007-2008

TT Họ tên năm sinh Toán Hoá Văn TB Xếp loại

n

III.BÀI MỚI: a.Đặt vấn đề(1’):

Kiểu liệu ghi dùng để mô tả đối tượng có số thuộc tính mà thuộc tính có kiểu liệu khác nhau, nghiên cứu lý thuyết kiểu ghi tiết trước Hôm vận dụng kiểu ghi để làm số tập

b.Triển khai mới:

HOẠT ĐỘNG CỦA THẦY VÀ TRÒ NỘI DUNG KIẾN THỨC

Hoạt động 1(10’)

(Giới thiệu cách truy xuất đến trường

)

Gv:

-Yêu cầu Hs đọc câu hỏi tập 11/80

-Yêu cầu Hs xem lại ví dụ trả lời câu hỏi sau:

Hãy xem ví dụ SGK bổ sung thêm đoạn chương trình đưa danh sách học sinh có xếp loại A?

Hs:Đọc đề kết hợp với ví dụ SGK để sửa lại chương trình

Gv:

-Phân tích câu lệnh Hs đưa ra=>Kết luận chương trình cụ thể

-Đưa tồn chương trình lên máy chiếu chạy vài test để kiểm chứng thuật toán

Bài tập 11/80(SGK):

Lưu ý vận dụng tập tiết 34

Hãy bổ sung thêm vào chương trình Xeploai (ở 13) lệnh cần thiết để chương trình đưa danh sách học sinh xếp loại A

Writeln(' TT ',' Ho va Ten ', ' Xloai '); For i:=1 to n

If lop[i].xeploai='A' Then Begin

Write(i:4);

Write(Lop[i].ten:30); Write(Lop[i].Xeploai); Writeln;

(28)

Hoạt động 2(24’) (Rèn luyện tư lập trình)

Gv:Đưa câu hỏi tập lên máy chiếu Y/c học sinh đọc.

Hãy nêu cách tổ chức liệu cho tập 2? Hs:Lên bảng viết cách khai báo biến ghi Gv:Tổ chức hoạt động nhóm sau:

+Nhóm 1: Viết đoạn chương trình nhập Họ tên, DTBHK1 DTBHK2 học sinh +Nhóm 2:Viết đoạn chương trình tính TBCN xếp loại

+Nhóm3:Viết đoạn chương trình xếp theo thứ tự tăng dần cột điểm TBCN

+Nhóm 4:Xuất kết theo

bảng sau:

TT Họ tên DHK1 DHK2 DCN XL

2 n

Hs: Thảo luận theo nhóm phân cơng Gv:

-Y/c nhóm trình bày giấy A0

-Sau thảo luận nhóm xong nhóm lên bảng trình bày, nhóm khác bổ sung -Sau nhóm bổ sung thi Gv nhận xét phân tích đoạn chương trình=>Đưa chương tình cụ thể sau lên máy chiếu chạy thử vài Test để kiểm chứng thuật toán

Bài tập 2/145(SBT Pascal5.5):

Viết chương trình nhập họ tên, điểm DHK1 DHK2 Hs lớp

a.Tính TBCN xếp loại

b Xếp hạng theo thứ tự tăng dần cột điểm TBCN học sinh

c.Thông báo theo bảng sau

theo thứ tự xếp cột điểm

TBCN

TT Họ tên DHK1 DHK2 DCN XL

2 n

*Chương trình: Type Bdiem=Record Hoten:String;

DHK1,DHK2,TBCN:Real; Xeploai:String[5];

End;

Var Hs:Array[1 60] Of Bdiem; I,j,n:Byte;

Tg:Bdiem; Begin

Write('Nhap so luong Hs n='); Readln(n); For i:=1 To n Do

With Hs[i] Do Begin

Write('Nhap Ho ten',i); Readln(Hoten); Write('NhapTBHK1',i); readln(DHK1); Write('NhapTBKT2',i); Readln(DHK2); End;

(29)

For i:=1 To n Do

Hs[i].TBCN:=(Hs[i].DHK1+Hs[i].DHK2*2)/3; For i:=1 To n Do

With Hs[i] Do Begin

If TBCN>=8.0 Then Xeploai:='Gioi';

if (TBCN>=6.5)and(TBCN<8.0) Then Xeploai:='Kha'; If (TBCN>=5) and (TBCN<6.5) Then Xeploai:='TB'; If (TBCN>=3.5) and (TBCN<5) Then Xeploai:='Yeu'; If TBCn<3.5 Then Xeploai:='kem';

End;

For i:=1 to n-1 Do For j:=i+1 to n Do

If Hs[i].TBCN> Hs[j].TBCN Then Begin

tg:=Hs[i]; Hs[i]:=Hs[j]; Hs[j]:=tg; End;

{Thong bao ket qua nhu sau}

Writeln(' ');

Writeln('| TT |','| Ho ten |','| TBCN |','| xeploai |'); Writeln(' ');

For i:=1 to n With Hs[i] Do

Writeln(i:5,hoten:20,TBCN:10:2,Xeploai:10); Readln;

End

IV.CỦNG CỐ(3'): Đưa lên máy chiếu ví dụ sau: -Cần nắm:

+Cách khai báo biến ghi

+Cách truy xuất vào giá trị trường

+Cách nhập xuất trường ghi +Một số câu lệnh

-Hai thuật toán: Sắp xếp, tính tốn

V.DẶN DỊ(1’): Đưa lên hình máy chiếu sau: -Tiết sau học tiết: Tiết 36: Kiểm tra tiết

- Câu hỏi ôn tập:

1 Câu lệnh rẽ nhánh lặp?

2.Khai báo kiểu mảng chiều, hai chiều, kiểu xâu? Các đoạn chương trình

nhập xuất

3.Khai báo kiểu ghi? Các đoạn chương trình nhập xuất ghi?

4.Xem lại tập từ 1->11/80(SGK)

(30)

Tiết: 33 Ngày soạn: 05/01/2009

Bài tập thực hành 5(T2)

I.Mục tiêu học

1 Kiến thức

- Củng cố lại học sinh kiến thức liệu kiểu ghi - Khái niệm kiểu ghi, cách khai báo kiểu ghi

- Áp dụng liệu kiểu ghi để làm tập

2 Kĩ năng: rèn luyện kĩ làm tập, tư thuật toán, ứng dụng kiểu liệu ghi vào viết chương trình

(31)

II Phương pháp, phương tiện dạy học

 Phương pháp: thuyết trình, câu hỏi gợi mở, hướng dẫn làm tập  Phương tiện dạy học: bảng đen

III Chuẩn bị giáo viên học sinh

 Giáo viên: giáo án, sổ điểm, phấn  Học sinh: sgk,

IV Nội Dung học Ổn định lớp học

Lớp 11B5 11B6 11B7 11B8

Vắng Phép

2 Nội dung học a) Nội dụng kiến thức

 Khái niệm kiểu liệu ghi

Trình bày khái niệm kiểu ghi? Các trường liệu kiểu ghi gì?

 Cách xác định kiểu liệu kiểu ghi

Trình bày quy tắc để xác định kiểu liệu kiểu ghi?

 Khai báo biến kiểu liệu kiểu ghi

Khi khai báo kiểu liệu kiểu ghi cần định nghĩa trước ? sau khai báo biến kiểu ghi?

Khi khai báo biến có nhiều ghi sử dụng cách khai báo nào?

 Tham chiếu đến trường kiểu liệu ghi

Cách tham chiếu đến trường kiểu ghi nào?

 Gán giá trị cho biến kiểu ghi

Có cách để gán giá trị cho biến có kiểu liệu kiểu ghi? b) Bài tập

Bài tập 1: Để quản lí việc thi tuyển đầu vào lớp 10 trường trung học phổ thông Danh sách n học sinh gồm thông tin sau : họ tên, địa chỉ, ngày sinh, điểm môn1, điểm môn2, điểm môn Hãy sử dụng kiểu liệu kiểu ghi để khai báo danh sách học sinh

Giáo viên hướng dẫn: xác định thuộc tính để khai báo trường? Kiểu liệu trường?

Biến kiểu ghi gồm nhiều học sinh khai báo kiểu liệu gì? Khai báo kiểu ghi sau:

Type danhsach=record

Hoten, nsinh, diachi, ketqua:string; Diem1, diem2, diem3:real;

End;

Var n,i: word;

Hocsinh: array [1 500] of danhsach;

Bài tập 2: với cách khai báo tập em nhập vào thông tin cho học sinh sau: họ tên , ngày sinh, địa chỉ, điểm môn1, điểm môn điểm môn Sau đưa danh sách học sinh đậu biết tổng điểm môn lớn 10 đậu Hướng dẫn: sử dụng vịng for để duyệt từ học sinh đến học sinh cuối gọi đến thủ tục readln(hocsinh[1].tên trường) để nhập liệu cho học sinh

Đoạn chương trình:

(32)

For i:=1 to n Begin

Write(‘nhap thong tin hoc sinh thu ’,i); Readln(hocsinh[i].hoten);

Readln(hocsinh[i].nsinh); Readln(hocsinh[i].diachi); Readln(hocsinh[i].diem1); Readln(hocsinh[i].diem2); Readln(hocsinh[i].diem3); End;

Duyệt học sinh học sinh cuối Dùng if – then để kiểm tra tổng môn >= 10 in danh sách học sinh đậu

V Củng cố dặn dò

Củng cố: cách khai báo kiểu liệu ghi?

Truy xuất đến trường kiểu liệu kiểu ghi? Xác định kiểu liệu kiểu ghi nào?

Dặn dò: em nhà làm tập sách tập ơn kiểu liệu có cấu trúc học để tiết sau ôn tập

Tiết 34 Ngày soạn 10/01/2009

Bài tập

I Mục tiêu học Kiến thức

- Ôn lại kiến thức chương IV

- Kiểu mảng: khai báo, truy xuất đến phần tử biến mảng

- Kiểu xâu: khai báo, thao tác xử lý xâu Hàm thủ tục sử dụng xâu - Kiểu ghi: khai báo, truy xuất đến trường kiểu ghi

2 kĩ năng: vận dụng kiểu liệu có cấu trúc vào làm tập Rèn luyện kĩ tư thuật toán lập trình

(33)

 Phương pháp: thuyết trình, câu hỏi gợi mở, hướng dẫn làm tập  Phượng tiện dạy học: bảng đen

III Chuẩn bị giáo viên học sinh

 Giáo viên: giáo án, phấn, sổ điểm  Học sinh: sgk, bút

IV Tiến trình lên lớp Ổn định lớp học

Lớp 11B5 11B6 11B7 11B8

Vắng Kiểm tra cũ

Câu hỏi: em nêu kiểu liệu có cấu trúc học Pascal? Trả lời: Kiểu mảng, kiểu xâu, kiểu ghi

3 Nội dung học a) Ma trận kiến thức

Đề mục Biết Hiểu Áp dụng

Kiểu

mảng 1.Mảng chiều- khái niệm: dãy hữu hạn phần tử kiểu

- Các quy tắc xác định kiểu mảng chiều - Khai báo mảng chiều

- tham chiếu đến phần tử thứ i mảng chiều

2 Mảng chiều - khái niệm

- cách xác định kiểu liệu kiểu mảng chiều

- cách khai báo

- Truy xuất đến phần tử i,j mảng chiều

Nắm kiểu liệu mảng chiều

biết cách khai báo kiểu liệu mảng chiều Nhập, in truy xuất phần tử mảng chiều

Khái niệm mảng chiều, cách khai báo mảng chiều

sử dụng kiểu mảng chiều

Khai báo kiểu mảng chiều mảng chiều để giải số tập

Cài đặt số thuật toán liên quan đến kiểu liệu kiểu mảng

Kiểu

Xâu Khái niệm xâu dãykí tự bảng mã ASCII Mỗi kí tự phần tử xâu - Cách xác định kiểu liệu kiểu xâu - Khai báo biến kiểu xâu

- Các thao tác xử lý xâu

- Các hàm thủ tục xâu

Nắm kiểu liệu kiểu xâu

Cách khai báo biến kiểu xâu

Phép gán xâu so sánh xâu

Hiểu ý nghĩa hàm sử dụng kiểu xâu

Áp dung kiểu liệu kiểu xâu để giải toán cụ thể kiểu xâu

(34)

Kiểu

bản ghi Khái niệm ghidùng để mơ tả đối tượng có nhiều thuộc tính Nhưng thuộc tính có kiểu liệu khác

- thuộc tính gọi trường

- Cách xác định kiểu liệu ghi

- Tham chiếu đến trường ghi - Khai báo biến kiểu ghi

- Phép gán giá trị kiểu ghi

Khái niệm kiểu ghi Khai báo kiểu liệu kiểu ghi

Cách truy xuất đến trường biến kiểu ghi

Phân biệt hai cách gán giá trị kiểu liệu kiểu ghi

Khai báo kiểu liệu kiểu ghi cho toán cụ thể

Sử dụng kiểu liệu kiểu ghi để giải tập liên quan đến

b) Bài tập

Bài tập 1: Cho dãy A gồm có n phần tử Hãy tính tổng phần tử chia hết cho có dãy A

Hướng dẫn: Khai báo biến A kiểu mảng gồm có n phần tử Sử dụng biến tg:=0; sau dùng câu lệnh sau

For i:=1 to n If a[i] mod 3=0 then Tg:=tg + a[i];

Bài tập 2: nhập xâu st từ bàn phím Hãy thực cơng việc sau: - Xố hết kí tự trắng xâu

- Kiểm tra xem xâu có phải xâu đối xứng hay không

Hướng dẫn: sử dụng hàm length(st) thủ tục delete(st, n, m) để làm câu a

Tạo xâu cách đảo ngược xâu cũ Sau kiểm tra xâu xâu cũ xâu xâu đối xứng khơng ngược lại

V Củng cố dặn dò

- Các em nhà xem lại kiến thức học chương vừa qua làm hết tập có sách giáo khoa sách tập để tiết sau kiểm tra tiết

Tiết 35

Ngày soạn: 15/03/2009

Kiểm tra tiết

I.Mục tiêu học Kiến thức

- Kiểm tra lại kiến thức học chương III Kĩ năng: rèn luyện kĩ làm kiểm tra

Thái độ: nghiêm túc, tuân thủ quy chế kiểm tra II Chuẩn bị giáo viên học sinh

 Giáo viên: đề kiểm tra  Học sinh: bút, sgk, ghi

(35)

2 Đề kiểm tra Phần 1: trắc nghiệm

Câu 1: Chỉ số mảng kiểu ?

a)Kiểu số thực, kiểu logic b) Kiểu miền con, kiểu kí tự

c) Kiểu miền con, kiểu kí tự d) Kiểu số nguyên, ki ểu số thực e) a c Câu 2: S1= ‘chao bạn’; S2 = ‘Xin ’ Kết thủ tục Insert (S2,S1,1) là:

a ‘hao ban’ b ‘ Xin chao ban’ c ‘ chao ban xin’ d kết khác Câu 3: Giới hạn số chiều mảng ?

a 255 chiều b 256 chiều c Vô hạn d chiều Câu : Chức thủ tục Delete(st,vt,n) ?

a.Xoá xâu b Xoá n phần tử xâu c Chèn xâu d Tạo xâu Câu 5: Chương trình sau cho kết ?

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

a)Xâu có độ dài lớn b) Độ dài lớn hai xâu c)Kí tự cuối xâu dài d) Kết khác

Câu 6: Trong ngơn ngữ lập trình Pascal, để tìm vi trí xuất xâu ‘hoa’ xâu S ta viết cách cách sau đây?

A S1:=’hoa’; i:=Pos(S1,’hoa’); B i:=Pos(‘hoa’,S); C i:=Pos(S,’hoa’); D i:=Pos(‘hoa’,’hoa’);

Câu 7: Trong ngơn ngữ lập trình Pascal, với xâu kí tự có phép tốn là? A Phép cơng, trừ, nhân, chia B Chỉ có phép cộng

C.Phép cộng phép trừ D Phép ghép xâu phép so sánh Câu 8: Trong ngơn ngữ lập trình Pascal, xâu kí tự gì?

A Mảng kí tự; B Dãy kí tự bảng mã ASCII; C Tập hợp chữ bảng chữ tiếng Anh;

D Tập hợp chữ chữ số bảng chữ tiếng Anh

Câu 9: Trong ngơn ngữ lập trình Pascal, với khai báo mảng A: Array[1 100, 100]of integer; việc truy xuất đến phần tử sau:

A A[i],[j] B A[i][j] C.A[i;j] D A[i,j]

Câu 10: Trong ngôn ngữ lập trình Pasca,l đoạn chương trình sau đưa hình kết gì? For i:=10 to Write(i,’ ‘);

A 10 B Đưa 10 dấu cách

C 10 D Khơng đưa kết

Phần 2: Tự luận

Để quản lý việc bán hàng cửa hàng với thông tin mặt hàng: tên mặt hàng, giá trị mặt hàng, ngày sản xuất, ngày hết hạn sử dụng Hãy viết chương trình quản lý việc bán hàng với thơng tin n mặt hàng có cửa hàng với yêu cầu sau:

- Hãy khai báo kiểu liệu để quản lý n mặt hàng

(36)

Tiết: 36 Ngày soạn: 19/02/2009

Bài 14: Kiểu liệu tệp

Bài 15: Thao tác với tệp

A MỤC TIÊU

1 Kiến thức:

 Biết đặc điểm kiểu liệu tệp

 Biết khái niệm tệp có cấu trúc tệp văn

2 Kỹ năng: Khai báo biến kiểu tệp

 Thự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 thủ tục lien quan để đọc/ghi liệu tệp

(37)

- Có ý thức lưu trữ liệu cách khoa học B PHƯƠNG PHÁP

 Thuyết trình giảng giải, kết hợp hình ảnh trực quan  Sử dụng câu hỏi gợi mở, nêu vấn đề cho học sinh trả lời

C CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH Giáo viên: Giáo án, máy chiếu Projector để hướng dẫn Học sinh: SGK,

D TIẾN TRÌNH LÊN LỚP I Ổn định tổ chức (1p)

Lớp 11B5 11B6 11B7 11B8

Vắng II Kiểm tra cũ III Bài

1 Đặt vấn đề (1p)

- Các em học kiểu liệu có cấu trúc kiểu mảng, kiểu xâu kiểu ghi Hôm thầy giới thiệu em kiểu liệu có cấu trúc Đó kiểu tệp

2 Triển khai

Hoạt động giáo viên học sinh Nội dung kiến thức

Hoạt động 1: (chung lớp) (10p)

GV: Em cho biết liệu kiểu liệu từ trước đến ta sử dụng lưu trữ loại nhớ thực chương trình?

HS: Bộ nhớ RAM

GV: Vì em biết điều đó? HS: Mất liệu ki điện

GV: Diễn giải: Để lưu giữ liệu, ta phải lưu nhớ ngồi thong qua kiểu liệu tệp Mọi ngôn ngữ lập trình có thao tác:khai báo biến tệp, mở tệp, đọc/ghi liệu, đóng tệp

- Yêu cầu học sinh nghiên cứu SGK cho biết đặc điểm kiểu tệp? Có loại tệp?

HS; Nghiên cứu trả lời

GV: Yêu cầu học sinh trình bày khái niệm tệp có cấu trúc tệp văn

HS: Nghiên cứu SGK trả lời

§14 Kiểu liệu tệp

1 Vai tró kiểu liệu tệp

- Dữ liệu lưu trữ nhớ ngồi khơng bị tắt nguồn điện

- Lượng liệu lưu trữ tệp lớn Phân loại tệp thao tác với tệp a Phân loại tệp

* Theo cách tổ chức liệu:

- Có hai loại kiểu tệp: tệp có cấu trúc tệp văn

+ Tệp có cấu trúc: loại tệp mà thành phần tổ chức theo cấu trúc định

+ Tệp văn bản: tệp mà liệu ghi dạng kí tự theo mã ASCII

* Theo cách thức truy cập:

(38)

GV: Đối với kiểu liệu tệp có thao tác nào?

HS: Trả lời

và tệp truy cập trực tiếp

+ Tệp truy cập tuần tự: cho phép truy cập liệu tệp cách đầu tệp qua tất liệu trước

+ tệp truy cập trực tiếp: cho phép tham chiếu đến liệu cần truy cập cách xác định trực tiếp vị trí liệu b Thao tác với tệp

- Ghi liệu vào tệp đọc liệu từ tệp thực với phần tử tệp Hoạt động 2: (theo nhóm) (7p)

GV: Yêu cầu học sinh nghiên cứu SGK cho biết cú pháp khai báo kiểu tệp Nêu ví dụ cụ thể

HS: Nghiên cứu trả lời

§15 Thao tác với tệp Khai báo

a Cú pháp

Var <tên biến tệp>:text; b Ví dụ

Var tep1, tep2: text; Hoạt động 3: (theo nhóm) (20p)

GV: Giới thiệu thao tác gắn tên tệp, mở tệp, đọc/ghi tệp văn bản, đóng tệp Đối với thao tác yêu cầu học sinh lấy ví dụ cụ thể

HS: Assign(tep2, ‘C:\INP.DAT’);

HS: Assign(tep3,’C:\KQ.DAT’); Rewrite(tep3);

HS: Assign(tep1, ‘KQ.DAT’); Reset(tep1);

HS: Readln(<biến tệp>, <danh sách biến>);

HS: Writeln(<biến tệp>,<danh sách kết quả>);

2 Thao tác với tệp a Gắn tên tệp

* Cú pháp: Assign(<biến tệp>, <tên tệp>); Trong tên tệp biến xâu xâu * Ví dụ:

Assign(tep1, ‘DULIEU.DAT’); Assign(tep2, ‘C:\INP.DAT’); b Mở tệp

* Mở tệp để ghi: Rewrite(<biến tệp>); * Ví dụ: Assign(tep3,’C:\KQ.DAT’);

Rewrite(tep3);

- Chú ý: Nếu thư mục gốc ổ đĩa C có tệp KQ.DAT nội dung cũ sẻ bị xóa, khơng tệp tạo với nội dung rỗng

* Mở tệp để đọc: Reset(<biến tệp>); * Ví dụ: tentep:= ‘KQ.DAT’;

Assign(tep1, tentep); Reset(tep1);

Hoặc: Assign(tep1, ‘KQ.DAT’); Reset(tep1);

c Đọc/ghi tệp văn * Đọc:

Read(<biến tệp>, <danh sách biến>); Hoặc:

Readln(<biến tệp>, <danh sách biến>); * Ghi:

Write(<biến tệp>,<danh sách kết quả>); Hoặc:

(39)

HS: Close(tep3);

GV: Sử dụng máy chiếu chiếu chương trình ví dụ tổng hợp lên bảng để học sinh quan sát Yêu cầu học sinh đọc hiểu chương trình

* Một số hàm chuẩn thường dùng đọc/ghi tệp văn bản:

- eof: trả giá trị true trỏ tệp tới cuối tệp

- eoln: trả giá trị true trỏ tệp tới cuối dịng

d Đóng tệp

* Cú pháp: Close(<biến tệp>); * Ví dụ: Close(tep1);

IV Củng cố (5p)

- Nêu vai trò phân loại tệp?

- Đọc hiểu phân biệt hàm, thủ tục, ý nghĩa chương trình mẫu GV đưa V Dặn dị (1p)

- Các em nhà ôn lại nội dung Xem trước nội dung 16

Tiết: 37 Ngày soạn: 12/02/2008

Bài 16: Ví dụ làm việc với tệp

A MỤC TIÊU

1 Kiến thức: Củng cố lại kiến thức học tệp chương thơng qua ví dụ Kỹ năng: Sử dụng hàm thủ tục liên quan để giải tập Thái độ: - Thấy cần thiết tiện lợi kiểu liệu tệp

- Có ý thức lưu trữ liệu cách khoa học B PHƯƠNG PHÁP

- Thuyết trình giảng giải, kết hợp hình ảnh trực quan - Sử dụng câu hỏi gợi mở, nêu vấn đề cho học sinh trả lời C CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH

(40)

D TIẾN TRÌNH LÊN LỚP I Ổn định tổ chức (1p)

II Kiểm tra cũ (5p)

* Câu hỏi: Sắp xếp bảng theo thứ tự bước mở tệp để ghi để đọc?

Assign(<biến tệp>, <tên tệp>); Rewrite(<biến tệp>); Reset(<biến tệp>); + Read(<biến tệp>, <danh sách biến>); Write(<biến tệp>, <danh sách kết quả>); Close(<biến tệp>);

* Đáp án:

- Mở để ghi: + Assign(<biến tệp>, <tên tệp>); Rewrite(<biến tệp>); Write(<biến tệp>, <danh sách kết quả>); Close(<biến tệp>);

- Mở để đọc: + Assign(<biến tệp>, <tên tệp>); Reset(<biến tệp>); Read(<biến tệp>, <danh sách biến>); Close(<biến tệp>);

III Bài Đặt vấn đề (1p)

- Bài học trước em làm quen với kiểu liệu kiểu liệu tệp, để em nắm phần kiến thức lí thuyết học, học hơm vào tìm hiểu số ví dụ cụ thể

2 Triển khai

Hoạt động giáo viên học sinh Nội dung kiến thức

Hoạt động 1: (chung lớp) (10p) GV: Giới thiệu nội dung đề

- Chiếu chương trình ví dụ lên bảng gợi ý học sinh tìm hiểu chương trình

- Hàm eof(f) có chức gì?

HS: Trả giá trị true trỏ tệp định vị vị trí kết thúc tệp

GV: Có thể sử dụng cấu trúc FOR thay cho WHILE khơng?

HS: Khơng, khơng biết số lượng phần tử tệp

GV: Chương trình thực cơng việc gì? Vì sao?

HS: Tính đưa hình khoảng cách từ trại thầy hiệu trưởng đến trại giáo viên

GV: Giới thiệu cho HS cách tạo file TRAI.TXT Thực chương trình để học sinh thấy kết

§16 Ví dụ làm việc với tệp Ví dụ (SGK, trang 87)

Progam Khoang_cach;

Var d: real; f :text; x, y: integer; Begin

Assign(f, ‘TRAI.TXT’); Reset(f);

While not eof(f) Begin

Read(f,x,y);

D:= sqrt(x*x+y*y);

Write(‘Khoang cach: ‘,d:10:2); End;

Close(f); End

Hoạt động 2: (theo nhóm) (7p)

GV: Chiếu tranh mô kết nối điện trở, hình 17, trang 88 SGK Hãy cho biết cơng thức tính điện trở sơ đồ II, III, IV?

HS: Nghiên cứu trả lời

GV: Chiếu chương trình ví dụ lên bảng Hỏi mảng A dùng để lưu trữ giá trị nào? HS: Lưu trữ giá trị điện trỡ tương đương

2 Ví dụ (SGK, trang 87) Program Dien_tro;

Var a: array[1 5] of real;

R1, R2, R3: real; f1,f2 :text; i: integer; Begin

Assign(f1, ‘RESIST.DAT’); Reset(f1);

Assign(f2, ‘RESIST.EQU’); Rewrite(f2);

Lớp 11B5 11B6 11B7 11B8

(41)

theo cách ghép nối sơ đồ GV: Cho file liệu vào gồm hàng Yêu cầu học sinh tính kết

HS: Tính kết điện trở tương đương

GV: Thực chương trình đọc file liệu vào để học sinh đối chiếu kết

HS: Quan sát kết chương trình so sánh với kết tính Nhận xét tính xác thời gian thực chương trình

While not eof(f1) Begin

Readln(f1,R1,R2,R3); a[1]:=R1*R2*R3/

(R1*R2+R1*R3+R2*R3); a[2]:=R1*R2/(R1+R2)+R3; a[3]:=R1*R3/(R1+R3)+R2; a[4]:=R2*R3/(R2+R3)+R1; a[5]:=R1+R2+R3;

For i:=1 to write(f2, a[i]:9:3,’ ‘); Writeln(f2);

End;

Close(f1); Close(f2); End

Hoạt động 3: (Chung lớp) (p)

GV: Cung cấp cho HS số kiến thức mở rộng

- Giới thiệu cho HS thủ tục mở file để ghi thêm liệu vào file?

HS: Quan sát ghi

GV: Giới thiệu hàm kiểm tra tồn file

- Ý nghĩa: hàm trả giá trị TRUE tập tin cần mở có đĩa, ngược lại cho giá trị False

- Lồng hàm vào ví dụ cho HS kiểm chứng

* Thủ tục: APPEND(biến tệp);

* Ý nghĩa: Thủ tục dùng để mở tập tin có tên gán cho biến tệp thủ tục Assign trước Khi tệp mở cửa sổ tệp định vị vị trí kết thúc tệp Từ ghi thêm liệu vào cuối tệp

FUNCTION FileExists (tên_file: String):Boolean; Var F: FILE;

Begin {$I-}

Assign (f, tên_file); Reset (f); Close (f); {$I+}

FileExists:= (IOResult=0); End;

IV Củng cố (5p)

- Nêu thao tác với tệp văn bản? V Dặn dò (1p)

- Bài tập:

1 Viết chương trình đọc hiển thị hình nội dung tập tin dạng văn bản, với tên tập tin nhập từ bàn phím (có kiểm tra tồn tập tin)

Tiết 38 Ngày soạn: 20/02/2009

Bài tập

A MỤC TIÊU

1 Kiến thức: Củng cố lại cho học sinh kiến thức chương Kỹ năng:

 Nâng cao kĩ sử dụng số lệnh kiểu liệu tệp  + Gắn tên tệp; + Mở tệp; + Đóng tệp;

 Biết giải số toán cụ thể thường gặp

3 Thái độ: Góp phần rèn luyện tác phong, tư lập trình: Tự giác, tích cực, chủ động sáng tạo tìm kiếm kiến thức

B PHƯƠNG PHÁP

 Thuyết trình giảng giải, kết hợp với hình ảnh trực quan  Sử dụng câu hỏi gợi mở, nêu vấn đề cho học sinh trả lời

(42)

1 Giáo viên: Giáo án, số tập đáp án

2 Học sinh: SGK, sách tập tập làm nhà D TIẾN TRÌNH LÊN LỚP

I Ổn định tổ chức (1p)

Lớp 11B5 11B6 11B7 11B8

Vắng

II Kiểm tra cũ III Bài Đặt vấn đề

2 Triển khai

Hoạt động giáo viên học sinh Nội dung kiến thức

Hoạt động 1: Làm tập (Bài tập nhà) Viết chương trình đọc hiển thị hình nội dung tập tin dạng văn bản, với tên tập tin nhập từ bàn phím (có kiểm tra tồn tập tin)

GV: Gọi học sinh lên bảng viết chương trình (Khơng cần kiểm tra tồn tập tin) GV: Có thể đưa số câu hỏi gợi ý sau: - Biến tên tập tin có kiểu gì?

- Trước gắn tên tệp cho biến tệp ta cần phải làm gì?

- Để đọc liệu từ tệp ta cần dùng câu lệnh để mở tệp?

- Để đọc hết liệu tệp ta làm nào? - Khi xuất liệu hình?

HS: Nghiên cứu, vận dụng kiến thức học để trả lời

GV: Yêu cầu học sinh viết chương trình hồn thiện

HS: Viết chương trình

GV: Đánh giá, hoàn thiện cho điểm

Program Doc_tep;

Var tep: string; ch: char; f: text; Begin

Write('Nhap ten File can doc: '); readln(tep); Assign(f,tep); reset(f);

While not eof(f) begin

read(f,ch); write(ch); end;

close(f); readln;

End

Hoạt động 2: Giáo viên hướng dẫn cho học sinh cách lồng hàm kiểm tra tồn tập tin vào chương trình hồn thiện nội dung tập

Program Doc_tep;

Var tep: string; ch: char; f: text;

FUNCTION FileExists(FileTest: string): Boolean;

Var f: File; Begin

{$I-}

Assign(f,FileTest); reset(f); Close(f); {$I+}

FileExists := (IOResult=0); end;

Begin

(43)

begin

Assign(f,tep); reset(f); While not eof(f)

begin

read(f,ch); write(ch);

end; close(f); end

else writeln('File ',tep,' khong ton tai tren dia'); readln;

End Hoạt động 3: Kiểm tra 15’

Viết chương trình đọc tập tin dạng văn có đĩa Hiển thị hình nội dung tập tin dạng in hoa, (tên tập tin nhập từ bàn phím)

Var tep: string; ch: char; f: text; Begin

Write('Nhap ten File can doc: '); readln(tep); Assign(f,tep); reset(f);

While not eof(f) begin

read(f,ch); write(upcase(ch)); end;

close(f); readln;

End IV Củng cố

V Dặn dò (1p)

- Nghiên cứu trước nội dung 17: ‘Chương trình phân loại’ VI Rút kinh nghiệm:

Tiết: 39, 40 Ngày soạn: 25/02/2009

Bài 16: CHƯƠNG TRÌNH CON VÀ PHÂN LOẠI A MỤC TIÊU

1 Kiến thức:

 Biết khái niệm chương trình

 Biết ý nghĩa chương trình con, cần thiết phải viết chương trình thành

chương trình

 Biết cấu trúc chương trình

 Phân biệt hai loại chương trình hàm thủ tục

2 Kỹ năng:

Nhận biết thành phần đầu thủ tục

Nhận biết hai loại tham số hình thức đầu hai thủ tục

(44)

Cách viết lời gọi chương trình thân chương trình Thái độ:

 Tiếp tục rèn luyện phẩm chất người lập trình tinh thần hợp tác, sẵn sàng làm

việc theo nhóm, tuân thủ theo u cầu việc chung

 Có ý thức lưu trữ liệu cách khoa học

B PHƯƠNG PHÁP

 Thuyết trình giảng giải, kết hợp hình ảnh trực quan

 Sử dụng câu hỏi gợi mở, nêu vấn đề cho học sinh trả lời, tổ chức hoạt động theo

nhóm

C CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH Giáo viên: Giáo án, máy chiếu Projector để hướng dẫn Học sinh: SGK,

D TIẾN TRÌNH LÊN LỚP I Ổn định tổ chức (1p)

Lớp 11B5 11B6 11B7 11B8

Vắng II Kiểm tra cũ III Bài

1 Đặt vấn đề (1p)

- Khi viết chương trình giải tốn phức tạp, chương trình thường dài, người đọc khó nhận biết chương trình thực cơng việc Vấn đề đặt phải cấu trúc chương trình để dể đọc, dể hiểu Mặt khác, việc giải tốn lớn thường địi hỏi phân thành tốn Vì lập trình cần phải chia chương trình thành chương trình

2 Triển khai

Hoạt động giáo viên học sinh Nội dung kiến thức

Hoạt động 1: Tiết 39( Hoạt động nhóm) GV: Yêu cầu học sinh xác định ý tưởng giải tốn tính tổng luỹ thừa: TLT = an

+ bm + cp + dq, giao nhiệm vụ về

nhà

HS: Lần lượt tính tổng luỹ thừa cho biến a, b, c, d sau tính tổng

GV: Chiếu chương trình lên bảng, gọi học sinh nhận xét tính ngắn gọn, rõ ràng, tính dễ đọc, dễ hiểu chương trình HS: Chương trình dài, phải viết lại nhiều lần đoạn chương trình thực cơng việc tương tự

GV: Chiếu đoạn chương trình có sử dụng hàm việc giải toán yêu cầu học sinh so sánh với chương trình ban đầu

HS: Quan sát nhận xét

GV: Vậy nên viết chương trình con?

HS: Đối với toán lớn, cần nhiều

(45)

người 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 lại, nên viết chương trình GV: Vậy chương trình gì?

HS: Nghiên cứu SGK trả lời

GV: Chia lớp thành ba nhóm Phát bìa cho nhóm u cầu HS điền lợi ích việc sử dụng chương trình HS: Nghiên cứu SGK, thảo luận nhóm để điền phiếu học tập

GV: Thu phiếu học tập dán kết lên bảng Cho HS so sánh với kết giáo viên

a Khái niệm

- Chương trình dãy lệnh mô tả số thao tác định thực (được gọi) từ nhiều vị trí chương trình

b Lợi ích việc sử dụng chương trình

- Tránh việc phải viết lặp lặp lại dãy lệnh;

- Hỗ trợ việc thực chương trình lớn; - Phục vụ cho trình trừu tượng hố; - Mở rộng khả ngơn ngữ;

- Thuận tiện cho phát triển, nâng cấp chương trình; Hoạt động 2: Tiết 40( hoạt động nhóm)

GV: Có loại chương trình con? Gọi tên chúng?

HS: Hai loại: hàm thủ tục

GV: Các em làm quen với hàm thủ tục chưa? Lấy số ví dụ hàm thủ tục học

HS: Rồi Hàm thủ tục chuẩn, ví dụ hàm Length(st); Copy(st, vt,n); Thủ tục delete(st, vt, n);

GV: Ý nghĩa hàm thủ tục HS: Nghiên cứu SGK trả lời

GV: Yêu cầu học sinh nhắc lại cấu trúc chương trình

HS: [<Phần khai báo>] <Phần thân>

GV: Giới thiệu cấu trúc chương trình Yêu cầu học sinh so sánh hai cấu trúc giải thích ý nghĩa phần

GV: Để sử dụng hàm thủ tục chuẩn em thường viết đâu viết nào? HS: Trong chương trình Viết thủ tục kèm theo tham số kết thúc dấu chấm phẩy Viết hàm lệnh thủ tục Hàm không viết lệnh

2 Phân loại cấu trúc chương trình a Phân loại (2 loại)

* Hàm (function): thực số thao tác trả giá trị kiểu đơn giản thông qua tên hàm * Thủ tục (Procedure): thực thao tác định khơng trả giá trị qua tên

b Cấu trúc * Cấu trúc chung

<Phần đầu> [<Phần khai báo>]

<Phần thân>

* Tham số hình thức: biến khai báo cho liệu vào/ra chương trình

* Biến cục bộ: khai báo để dùng riêng chương trình

* Biến toàn cục: biến chương trình c Thực chương trình

(46)

GV: Diễn giảng IV Củng cố (5p)

Câu 1: Giả sử có hai biến xâu x y (y có giá trị) câu lệnh sau không hợp lệ? A x:=Copy(y,5,3); C x:=Delete(y,5,3);

B x:=y; D Delete

Câu 2: Nói cấu trúc chương trình con, khẳng định sau không đúng? A Phần đầu phần thân thiết phải có, phần khai báo có khơng B Phần khai báo có khơng có tuỳ thuộc vào chương trình cụ thể C Phần đầu có khơng

D Phần đầu thiết phải có để khai báo tên chương trình V Dặn dị (1p)

Đọc trước nội dung bài: Ví dụ cách viết sử dụng chương trình con, SGK trang 96

Tiết: 41 Ngày soạn: 28/02/2009

Bài 18: VÍ DỤ VỀ CÁCH VIẾT VÀ SỬ DỤNG CHƯƠNG TRÌNH CON (T1) A MỤC TIÊU

1 Kiến thức: - Giúp học sinh nắm được:

- Cấu trúc chung thủ tục chương trình - Phân biệt tham số tham trị

- Các khái niệm biến toàn cục biến cục

2 Kỹ năng: - Nhận biết thành phần đầu thủ tục - Nhận biết hai loại tham số hình thức đầu hai thủ tục

- Biết cách khai báo hai loại chương trình với tham số hình thức chúng - Cách viết lời gọi chương trình thân chương trình

(47)

3 Thái độ: - Tiếp tục rèn luyện phẩm chất người lập trình tinh thần hợp tác, sẵn sàng làm việc theo nhóm, tuân thủ theo yêu cầu việc chung

- Có ý thức lưu trữ liệu cách khoa học B PHƯƠNG PHÁP

- Thuyết trình giảng giải, kết hợp hình ảnh trực quan

- Sử dụng câu hỏi gợi mở, nêu vấn đề cho học sinh trả lời, tổ chức hoạt động theo nhóm C CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH

1 Giáo viên: Giáo án, máy chiếu Projector để hướng dẫn Học sinh: SGK,

D TIẾN TRÌNH LÊN LỚP I Ổn định tổ chức (1p)

Lớp 11B5 11B6 11B7 11B8

Vắng II Kiểm tra cũ (5p)

Câu hỏi: Hãy nêu khái niệm, phân loại chức loại chương trình

Đáp án: - Chương trình dãy lệnh mô tả số thao tác định thực (được gọi) từ nhiều vị trí chương trình

* Hàm (function): thực số thao tác trả giá trị kiểu đơn giản thông qua tên hàm

* Thủ tục (Procedure): thực thao tác định không trả giá trị qua tên III Bài

1 Đặt vấn đề (1p)

- Bài học trước em tìm hiểu chương trình con, cấu trúc phân loại Vậy chương trình viết nào, sử dụng chúng sao, có giống khác với chương trình khơng? Bài học hơm tìm hiểu nội dung

2 Triển khai

Hoạt động giáo viên học sinh Nội dung kiến thức Hoạt động 1: (theo nhóm) (12p)

GV: Giới thiệu tốn ví dụ mở đầu Giới thệu cho học sinh cấu trúc thủ tục, vị trí khai báo thủ tục, lời gọi thủ tục HS: Quan sát, theo dõi ví dụ

GV: Vị trí thủ tục nằm phần chương trình chính?

HS: Ở phần khai báo, sau phần khai báo biến

GV: Cấu trúc thủ tục gồm có phần?

HS: Ba phần: tên, khai báo, phần than GV: Phân biệt giống khác chương trình chương trình HS: Giống: cấu trúc chung

Khác: phần tên, từ khố đặt tên Prcedure có tham số

GV: Yêu cầu học sinh xác định cấu trúc chung thủ tục

- Lời gọi thủ tục ta viết phần

§18 Ví dụ cách viết sử dụng chương trình Cách viết sử dụng thủ tục

a Cấu trúc thủ tục

Procedure <tên thủ tục>[<danh sách tham số>]; [<Phần khai báo>]

Begin

[<Dãy lệnh>] End;

* Trong đó:

- Phần đầu gồm tên dành riêng tên thủ tục, danh sách tham số (có thể có khơng);

- Phần khai báo: dùng để xác định hằng, kiểu, biến xác định chương trình khác sử dụng thủ tục

(48)

chương trình?

HS: Trong phần thân chương trình Hoạt động 2: (Theo nhóm) (10p) GV: Chiếu ví dụ 2, yêu cầu học sinh nhận xét thủ tục ve_HCN ví dụ với ví dụ trước

* Tổ chức hoạt động nhóm; - Phân nhóm từ 4-6 em

- Cơng việc: Xác định chất thủ tục ve_HCN;

- Câu hỏi: câu lệnh thực vẽ cạnh trên, hai cạnh bên câu lệnh thực vẽ cạnh

- Kết thúc hoạt động: thu kết nhóm, u cầu nhóm trình bày kết nhóm

- Cho nhóm nhận xét kết làm

- GV: nhận xét kết đưa kết luận (có thể cho điểm nhóm làm tốt)

GV: Trong chương trình ta vẽ tất thủ tục

GV: Giới thiệu tham số giá trị bvà tham số biến

b Ví dụ thủ tục * Ví dụ 1;

Program VD_thutuc2; Uses crt;

Var a, b, i: integer;

Procedure Ve_HCN(chdai, chrong: integer); Var i,j: integer;

Begin

{Ve canh tren cua hinh chu nhat} For i:=1 to chdai write(‘*’); Writeln;

For j:=1 to chrong-2 write(‘ ’); Begin

Write(‘*’);

For i:=1 to chdai-2 write(‘ ’); Writeln(‘*’);

End;

For i:=1 to chdai write(‘*’); Writeln;

End;

BEGIN {Bat dau chuong trinh chinh} Clrscr;

Ve_HCN(25,10); Writeln; Writeln; Ve_HCN(5,10); Readln;

Clrscr; a:=4; b:=2; For i:=1 to

Begin

Ve_HCN(a,b); Readln; clrscr; a:=a*2; b:=b*2; end;

Readln; END

* Tham số giá trị: có hai chức - Đưa liệu vào cho chương trình con; - Đưa liệu chương trình tìm

* Tham số biến: lệnh gọi thủ tục, tham số hình thức thay tham số thực tương ứng tên biến chứa liệu gọi tham số biến

Hoạt động 3: (Chung lớp) (10p)

(49)

thủ tục thực cơng việc gì;

HS: Hoán đổi giá trị hai biến liệu vào cho

GV: Chạy chương trình thực đổi phần khai báo thành: Procedure Hoan_doi (x: integer; var y: integer);

để HS quan sát nhận xét khác tham biến tham trị

Var a, b: integer;

Procedure Hoan_doi (var x, y: integer); Var TG: integer;

Begin

TG:=x; x:=y; y:=TG; End;

BEGIN Clrscr;

A:= 5; b:=10; Writeln(a:6, b:6); Hoan_doi(a,b); Writeln(a:6,b:6); END

IV Củng cố (5p)

- Khi cần khai báo tham số phần khai báo chương trình theo kiểu tham biến, theo kiểu tham trị

- Phân biệt giống khác tham biến tham trị V Dặn dò (1p)

- Xem tiếp nội dung lại

- Viết thủ tục tìm thơng báo số lớn ba số a, b, c

Tiết: 42 Ngày soạn: 28/02/2009

Bài 18: VÍ DỤ VỀ CÁCH VIẾT VÀ SỬ DỤNG CHƯƠNG TRÌNH CON (T2) A MỤC TIÊU

1 Kiến thức: - Giúp học sinh nắm được:

- Cấu trúc chung thủ tục chương trình - Phân biệt tham số tham trị

- Các khái niệm biến toàn cục biến cục

2 Kỹ năng: - Nhận biết thành phần đầu thủ tục - Nhận biết hai loại tham số hình thức đầu hai thủ tục

- Biết cách khai báo hai loại chương trình với tham số hình thức chúng - Cách viết lời gọi chương trình thân chương trình

(50)

- Phân biệt sử dụng biến toàn cục biến cục

3 Thái độ: - Tiếp tục rèn luyện phẩm chất người lập trình tinh thần hợp tác, sẵn sàng làm việc theo nhóm, tn thủ theo u cầu việc chung

- Có ý thức lưu trữ liệu cách khoa học B PHƯƠNG PHÁP

- Thuyết trình giảng giải, kết hợp hình ảnh trực quan

- Sử dụng câu hỏi gợi mở, nêu vấn đề cho học sinh trả lời, tổ chức hoạt động theo nhóm C CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH

1 Giáo viên: Giáo án, máy chiếu Projector để hướng dẫn Học sinh: SGK,

D TIẾN TRÌNH LÊN LỚP I Ổn định tổ chức (1p)

Lớp 11B5 11B6 11B7 11B8

Tiết II Kiểm tra cũ III Bài

1 Đặt vấn đề (1p)

- Bài học trước em tìm hiểu chương trình con, cấu trúc phân loại Vậy chương trình viết nào, sử dụng chúng sao, có giống khác với chương trình khơng? Bài học hơm tìm hiểu nội dung

2 Triển khai

Hoạt động giáo viên học sinh Nội dung kiến thức

Hoạt động 1: (theo nhóm) (12p) GV: Cho biết tên cách sử dụng số hàm học?

HS: Hàm abs(), sqrt(),

- Viết tên hàm cần gọi tham số - Lời gọi hàm viết biểu thức toán hạng, chí tham số hàm khác

GV: Chuẩn xác

- Điểm khác biệt thủ tục hàm gì?

HS: Trong than hàm cần có lệnh gán giá trị cho tên hàm

GV: so sánh giống khác hàm thủ tục?

HS: giống: có cấu trúc tương tự, có tham số,

- Khác: Tên hàm phải quy định kiểu liệu; Trong than hàm phải có lệnh: tên_hàm:= biểu_thức; Bắt đầu hàm từ khố Function

§18 Ví dụ cách viết sử dụng chương trình Cách viết sử dụng hàm

a Cấu trúc thủ tục

Function <tên thủ tục>[<danh sách tham số>]: <kiểu liệu>;

[<Phần khai báo>] Begin

[<Dãy lệnh>]

<tên hàm>:= <biểu thức>; End;

Hoạt động 2: (Theo nhóm) (15p) GV: Chiếu ví dụ rút gọn phân số

- Trong chương trình có sử dụng bao

b Ví dụ hàm * Ví dụ 1;

(51)

nhiêu hàm HS: hàm

GV: hàm UCLN(x,y) dùng để làm gì? - Lời gọi hàm nằm đâu? Có khác với thủ tục lời gọi hàm?

HS: Lệnh a:=UCLN(tuso, mauso) ;

- Lời gọi hàm phải đặt lệnh lời gọi chương trình khác

GV: Có biến sử dụng chương trình? Các biến khai báo chổ chương trình chính?

HS: tuso, mauso, a : khai báo chương trình

- sodu: khai báo chương trình

GV: Yêu cầu học sinh phân biệt giống khác biến toàn cục biến cục

GV: chạy chương trình để học sinh kiểm nghiệm tự rút kết luận

Uses crt;

Var a, tuso, mauso: integer;

Function UCLN(x,y: integer):integer; Var sodu: integer;

Begin

While y<>0 Begin

Sodu:= x mod y; X:= y;

Y:= sodu; End;

UCLN:=x; End;

BEGIN {Bat dau chuong trinh chinh} Clrscr;

Write(‘Nhap tu so va mau so: ‘); readln(tuso,mauso); A:=UCLN(tuso, mauso);

If a>1 then Begin

Tuso:= tuso div a; Mauso:= mauso div a; end;

Writeln(tuso:5, ‘/’ ,mauso:5); Readln;

END Hoạt động 3: (Chung lớp) (10p)

GV: Chiếu ví dụ Minbaso lên bảng minh hoạ cho học sinh cách gọi hàm HS: Chú ý quan sát theo dõi

* Ví dụ 2:

Program Minbaso; Uses crt;

Var a, b, c: real;

Function Min(a,b: real):real; Begin

If a<b then min:=a Else min:=b;

End;

BEGIN {Bat dau chuong trinh chinh} Clrscr;

Write(‘Nhap vao ba so: ‘); readln(a,b,c);

Writeln(‘So nho nhat ba so la: ‘,min(a,b,c); Readln

END IV Củng cố (5p)

- Phân biệt giống khác hàm thủ tục

- Phân biệt giống khác biến tồn cục biến cục V Dặn dị (1p)

Ngày đăng: 06/03/2021, 03:35

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w