Giáo án giảng dạy môn Tin học 11 - Bài tập và thực hành 06

Giáo án giảng dạy môn Tin học 11 - Bài tập và thực hành 06

I.Mục đích yêu cầu

 -Về kiến thức:

-Nhằm giúp cho học sinh củng cố lại kiến thức của bài xâu.

-Tìm hiểu các thao tác xử lí xâu, cách tạo hiệu ứng chạy chữ trên màn hình.

 -Về kỹ năng:

-Nâng cao kỹ năng viết và sử dụng chương trình con.

 -Về thái độ:

-Rèn luyện cho học sinh phẩm chất của người lập trình như tinh thần hợp tác, làm việc theo nhóm, tuân thủ các yêu cầu của một công việc chung.

-Tiếp tục xây dựng lòng ham muốn trong lập trình để giải quyết các bài toán bằng máy tính.

-Tự giác, chủ động, tích cực trong giải quyết các bài tập và xây dựng phẩm chất cần thiết của người lập trình.

 

doc 10 trang Người đăng quocviet Lượt xem 2092Lượt tải 1 Download
Bạn đang xem tài liệu "Giáo án giảng dạy môn Tin học 11 - Bài tập và thực hành 06", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
BÀI TẬP VÀ THỰC HÀNH 06
I.Mục đích yêu cầu
	-Về kiến thức:
-Nhằm giúp cho học sinh củng cố lại kiến thức của bài xâu.
-Tìm hiểu các thao tác xử lí xâu, cách tạo hiệu ứng chạy chữ trên màn hình.
	-Về kỹ năng:
-Nâng cao kỹ năng viết và sử dụng chương trình con.
	-Về thái độ:
-Rèn luyện cho học sinh phẩm chất của người lập trình như tinh thần hợp tác, làm việc theo nhóm, tuân thủ các yêu cầu của một công việc chung.
-Tiếp tục xây dựng lòng ham muốn trong lập trình để giải quyết các bài toán bằng máy tính.
-Tự giác, chủ động, tích cực trong giải quyết các bài tập và xây dựng phẩm chất cần thiết của người lập trình.
II.Chuẩn bị của GV và HS:
+ Giáo viên:
-Giáo án, SGK.
-Phòng máy có cài sẵn chương trình Pascal để dạy.
-Máy chiếu (Projector) để chiếu một số chương trình đã cài đặt.
+ Học sinh:
	-Xem bài trước khi thực hành.
	-SGK, các dụng cụ học tập.
III. Phương pháp:
	-Diễn giảng.
-Phát vấn.
-Giải quyết vấn đề.
-Trực quan 
IV. Tiến trình lên lớp:
1. Ổn định lớp: Kiểm tra sỉ số, ghi sổ đầu bài
2. Kiểm tra bài cũ: 
-HS1: VCT nhập vào hai số nguyên. Hoán vị hai số? Yêu cầu sử dụng thủ tục để hoán vị hai số. 
-HS2: VCT tìm số nhỏ nhất của 4 số nguyên được nhập từ bàn phím? Sử dụng hàm VCT.
Hướng dẫn(trả lời):
HS1:
Program VIDU2;
Uses crt;
Var a,b:integer;
Procedure HD(var x,y:integer);
 Var TG: Integer;
 Begin
 TG:=a;a:=b;b:=TG;
 End;
Begin
 	Clrscr;
 	Write(‘A=’);Readln(A);
	Write(‘B=’);Readln(B);
 	HD(a,b);
 	Writeln(a:6,b:6);
End.
HS2: 
Program Minbaso;
Uses crt;
Var a,b,c,d:real;
Function Min(a,b:Real):Real;
 	Begin 
If a<b then min:=a 
 	Else min:=b;
End;
Begin
Clrscr;
Write(‘ Nhap A,B,C,D=‘);
readln(a,b,c,d);
Writeln(‘Min la’,Min(Min(Min(a,b),c),d));
Readln;
End.
	3. Bài mới:
	Hoạt động 1: Tìm hiểu hai thủ thục cắt dán Catdan(s1,s2) và thủ tục căn giữa Cangiua(s):
Hđ của GV
Hđ của HS
Nd ghi bảng
1. Tìm hiểu hai thủ thục cắt dán Catdan(s1,s2) và thủ tục căn giữa Cangiua(s):
Giúp cho HS hiểu được hai thủ tục sẽ được dùng trong chương trình.
Gọi HS đọc câu a thủ tục catdan() trong sách giáo khoa trang 103.
Thủ tục trên nhận vào là gì và kết quả là gì?
Chiếu thủ thục cho HS xem
Type ST=string[79];
Procedure catdan(s1:ST; var s2:ST);
Begin 
S2:=copy(s1,2,length(s1)-1)+s1[1];
End; 
Vào xâu S1 là một xâu không quá 79 kí tự.
Ra xâu S2 thu được từ xâu S1 bằng việc chuyển kí tự đầu tiên của nó xuống vị trí cuối của xâu.
VD: s1=’abcd’ thì s2=’bcda’;
Quan sát
Type ST=string[79];
Procedure catdan(s1:ST; var s2:ST);
Begin 
S2:=copy(s1,2,length(s1)-1)+s1[1];
End; 
Gọi HS đọc câu a thủ tục cangiua() trong sách giáo khoa.
Thủ tục căn giữa đầu vào là gì? Đầu ra là gì?
Trên màn hình người ta chia ra 25x80 (25 dòng, 80 cột)
Chiếu thủ tục cho HS xem
Vào là xâu s gồm không quá 79 kí tự
Ra xâu kí tự s ban đầu được căn giữa dòng(80 kí tự) với 1 kí tự trống ‘ ’.
Quan sát
Procedure cangiua(var s:ST);
Var i,n: integer;
Begin 
n:=length(s);
n:=(80-n) div 2; {80 chia 2}
for i:=1 to n do s:=’ ‘+s;
End; 
 Hoạt động 2: Theo dõi cách viết và sử dụng các thủ tục trên:
2.Sử dụng 2 thủ tục trên ta viết chương trình nhâp vào một xâu từ bàn phím và đưa ra màn hình có dạng dòng chữ chạy giữa màn hình văn bản 25x80.
Chiếu chương trình lên cho học sinh xem.
Yêu cầu HS giải thích từng câu lệnh trong chương trình.
Giải thích cho học sinh các thủ tục:
Gotoxy(x,y): chuyển con trỏ màn hình đến vị trí cột x, dòng y trên màn hình .
delay(n) dừng trạng thái của màn hình trong n miligiây.
Keypressed: chờ nhận một phím bất kì từ bàn phím.
Chạy chương trình trên với dòng chữ: 
‘...Mung nghin nam Thang Long – Ha Noi !’
Quan sát chương trình.
Program Caub;
Uses crt;
Type ST=string[79];
Var s1,s2:ST;
Stop:boolean;
Type ST=string[79];
Procedure catdan(s1:ST; var s2:ST);
Begin 
S2:=copy(s1,2,length(s1)-1)+s1[1];
End; 
Procedure cangiua(var s:ST);
Var I,n: Integer;
Begin 
n:=length(s);
n:=(80-n) div 2;
for i:=1 to n do s:=’ ‘+s;
End; 
Begin 
Clrscr;
Write(‘ nhap s1’);
Readln(s1);
Cangiua(s1);
Clrscr;
Stop:=false;
While not(stop) do
 Begin
 Gotoxy(1,12);write(s1);
 Delay(500);
 Catdan(s1,s2);
 S1:=s2;
 Stop:=keypressed;
 End;
Readln;
End.
4. Củng cố:
Hđ của Gv
Hđ của Hs
Có 2 thủ thục đó là cắt dán và căn giữa
Lắng nghe
-Cắt dán: cắt kí tự đầu của xâu S1 và dán vào xâu S2 tại vị trí cuối cùng.
-Căn giữa: đưa con trỏ về tại vị trí giữa màn hình. 20 dòng 80 cột (25x80).
Cách viết và sử dụng chương trình:
-Nhập chương trình
-Hai thủ tục Gotoxy(x,y); delay(n);
-Chạy chương trình
Gotoxy(x,y): chuyển con trỏ màn hình đến vị trí cột x, dòng y trên màn hình .
delay(n) dừng trạng thái của màn hình trong n miligiây.
5. Dặn dò:
Về nhà học bài và làm các bài tập sau:
Viết thủ tục tìm UCLN của hai số nguyên dương a,b.
Viết thủ tục nhập của bảng số nguyên có 4 dòng 5 cột.
Viết thủ tục In ra màn hình bảng số nguyên bài 2.
Xem tiếp câu C Viết chương trình có sử dụng thủ tục chạy chữ.
Tiết sau thực hành trên máy.
===========================================================
Tuần: 27,28	||	||	Ngày dạy: / / 
Tiết: 45,46	||	||	Ngày soạn: 10/12/2007.
 BÀI TẬP VÀ THỰC HÀNH 07
I.Môc ®Ých yªu cÇu:
A.VÒ kiÕn thøc:
Tiếp tục củng cố cho học sinh lại kiến thức đã học về chương trình con như: khái niệm chương trình con và phân loại chương trình con là Hàm và thủ tục .
Cấu trúc của chương trình con, tham số hình thức, tham số thực sự và cách gọi chương trình con, Biến toàn cục, biến cục bộ
Yêu cầu học sinh nhắc lại tham số thực sự, biến cục bộ, biến toàn cục, tham số giá trị, tham số biến.
Cho học sinh làm một số bài tập đơn giản, trắc nghiệm khách quan .
B.VÒ kü n¨ng:
Rèn luyện cho học sinh kĩ năng lập trình, vận dụng câu lệnh có cấu trúc để giải quyết bài toán. 
Học sinh cần áp dụng các hàm và thủ tục đã học để giải một số bài toán đơn giản.
C.VÒ th¸i ®é:
Tiếp tục rèn luyện cho học sinh phẩm chất của người lập trình như tinh thần hợp tác, làm việc theo nhóm, tuân thủ các yêu cầu của một công việc chung.
Tiếp tục xây dựng lòng ham muốn trong lập trình để giải quyết các bài toán bằng máy tính.
Học sinh tự giác, chủ động, tích cực trong giải quyết các bài tập và xây dựng phẩm chất cần thiết của người lập trình.
Học sinh tự rèn luyện các kĩ năng cơ bản trong việc tổ chức và sử dụng chương trình con trong lập trình một cách có hiệu quả.
II.ChuÈn bÞ cña thÇy vµ trß:
1.ChuÈn bÞ cña thÇy:
Gi¸o ¸n, SGK.
Mét sè ®å dïng d¹y häc cã liªn quan ®Õn bµi d¹y.
Sö dông b¶ng, (nÕu cã m¸y chiÕu th× tèt).
2.ChuÈn bÞ cña trß:
Xem bµi tr­íc khi ®Õn líp.
Mét sè dông cô häc tËp.
3.Ph­¬ng ph¸p
Diễn giảng
Thuyết trình và phát vấn.
Gi¶i quyÕt vÊn ®Ò.
Trực quan 
III.Ho¹t ®éng:
1. Ổn định lớp: Kiểm tra sỉ số, ghi sổ đầu bài (1’)
2. Kiểm tra bài cũ: 
HS1: Viết thủ tục ở câu 1 trong bài thực hành 06? 
HS2: Viết thủ tục ở câu 2 trong bài thực hành 06? 
Hướng dẫn(trã lời):
HS1:
Procedure cau1(a,b:integer;var I:integer);
Var du: Integer;
Begin 
While b0 do 
 Begin 
Du:=a mod b;
A:=b; b:=du;
 End; I:=b;
End;
HS2: 
Type AA=array[1..4,1..5] of Integer;
Procedure cau2(Var a:AA);
Var I,j : byte;
Begin 
For I:=1 to 4 do
For j:=1 to 5 do
 Begin 
 Write(‘ Nhap’);readln(A[I,j]);
 End;
End;
 	Đặt vấn đề: 
Củng cố lại kiến thức đã học ở phần hàm và thủ tục học sinh nắm được chức năng của hai thủ tục catdan() và canhgiua(). Biết được ý nghĩa của các tham số trong từng chương trình con. 
Ho¹t ®éng cña thÇy
Ho¹t ®éng cña trß
Néi dung cña bµi
Giúp cho HS hiểu được các hàm và thủ tục sẽ được dùng trong chương trình.
Gọi HS đọc câu a và viết các hàm và thủ tục trong sách giáo khoa trang 105.
Ta xây dựng các hàm và thủ tục sau:
HS: Theo dõi sự hướng dẫn của GV về nhà viết các hàm và thủ tục trong SGK.
HS: Tìm hiểu các hàm và thủ tục thực hiện tính độ dài các cạnh, chu vi, diện tích, kiểm tra các tính chất đều, cân, vuông của tam giác được trình bày dưới đây.
Câu a: 
Type diem=record
 X,y:real;
 End;
 Tamgiac=record
 A,B,C:diem;
 End;
Thủ tục nhận dữ liệu vào là biến mô tả tam giác R và dữ liệu ra là độ dài của 3 cạnh a,b,c
Procedure daicanh(var r: Tamgiac; var a,b,c: real);
Procedure daicanh ( Var r:Tamgiac; var a,b,c: real);
Begin 
A:=kh_canh(R.B,R.C);
B:=kh_canh(R.A,R.C);
C:=kh_canh(R.B,R.A);
End;
Procedure daicanh ( Var r:Tamgiac; var a,b,c: real);
Begin 
A:=kh_canh(R.B,R.C);
B:=kh_canh(R.A,R.C);
C:=kh_canh(R.B,R.A);
End;
Hàm tính chu vi của tam giác R.
Function Chuvi ( Var R: tamgiac) : Real;
Function Chuvi( Var R: tamgiac):Real;
Var a,b,c: real;
Begin 
Daicanh(R,a,b,c);
Chuvi:=a+b+c;
End;
Function Chuvi( Var R: tamgiac):Real;
Var a,b,c: real;
Begin 
Daicanh(R,a,b,c);
Chuvi:=a+b+c;
End;
Hàm tính diện tích của tam giác R.
Function dientich ( Var R: tamgiac) : Real;
Function dientich ( Var R : tamgiac) : Real;
Var a,b,c,p: real;
Begin
Daicanh(R,a,b,c);
P:=(a+b+c)/2;
Dientich:=sqrt(p*(p-a)*(p-b)*(p*c));
End;
Function dientich ( Var R : tamgiac) : Real;
Var a,b,c,p: real;
Begin
Daicanh(R,a,b,c);
P:=(a+b+c)/2;
Dientich:=sqrt(p*(p-a)*(p-b)*(p*c));
End;
Thủ tục nhận đầu vào là biến mô tả tam giác R và đầu ra tính chất của tam giác (deu hay can hay vuong);
Procedure tinhchat( var R: tamgiac ;var deu,can,vuong:boolean);
Procedure tinhchat( var R: tamgiac; var deu,can,vuong:boolean);
Var a,b,c:real;
Begin 
Deu:=false;can:=false;
Vuong:=false;
Daicanh(R,a,b,c);
If (abs(a-b)<eps) and (abs(a-c) <eps) then deu:=true
Else
If (abs(a-b)<eps) or (abs(a-c) <eps) or (abs(b-c)<eps) then can:=true;
If (abs(a*a+b*b-c*c)<eps) or (abs(a*a+c*c-b*b)<eps) or (abs(b*b+c*c-a*a)<eps) then vuong:=true;
End;
End;
Procedure tinhchat( var R: tamgiac; var deu,can,vuong:boolean);
Var a,b,c:real;
Begin 
Deu:=false;can:=false;
Vuong:=false;
Daicanh(R,a,b,c);
If (abs(a-b)<eps) and (abs(a-c) <eps) then deu:=true
Else
If (abs(a-b)<eps) or (abs(a-c) <eps) or (abs(b-c)<eps) then can:=true;
If (abs(a*a+b*b-c*c)<eps) or (abs(a*a+c*c-b*b)<eps) or (abs(b*b+c*c-a*a)<eps) then vuong:=true;
End;
End;
Thủ tục hiện thị toạ độ 3 đỉnh tam giác lên màn hình
Procedure hienthi ( var : R:tamgiac);
Procedure hienthi(var: R:tamgiac);
Begin 
Writeln(‘toa do 3 dinh’);
Writeln(‘A’,R.A.X,R.A.Y);
Writeln(‘B’,R.B.X,R.B.Y);
Writeln(‘C’,R.C.X,R.C.Y);
End;
Procedure hienthi(var: R:tamgiac);
Begin 
Writeln(‘toa do 3 dinh’);
Writeln(‘A’,R.A.X,R.A.Y);
Writeln(‘B’,R.B.X,R.B.Y);
Writeln(‘C’,R.C.X,R.C.Y);
End;
Hàm tích khoảng cách giữa 2 điểm p,q
Function Kh_cach(p,q:diem):real;
Function Kh_cach(p,q:diem):real;
Begin
Kh_cach:=sqrt((p.x+q.x)*((p.y+q.y)*((p.c+q.c));
End;
Function Kh_cach(p,q:diem):real;
Begin
Kh_cach:=sqrt((p.x+q.x)*((p.y+q.y)*((p.c+q.c));
End;
Câu b
GV: Tìm hiểu chương trình nhập vào độ dài 3 cạnh tam giác và sử dụng các hàm và thủ tục được xây dựng trên để khảo sát tính chất của tam giác.
GV: Gọi HS giải thích nhiệm vụ từng chương trình con và cho biết chức năng.
HS: Theo dõi sự hướng dẫn của GV 
Uses crt;
Const eps=1.0E-6;
Type diem=record
 X,y:real;
 End;
 Tamgiac=record
 A,B,C:diem;
 End;
Var T: tamgiac;
Cau,deu,vuong:boolean;
Function Kh_cach(p,q:diem):real;
Begin
Kh_cach:=sqrt((p.x+q.x)*((p.y+q.y)*((p.c+q.c));
End;
Procedure daicanh ( Var r:Tamgiac; var a,b,c: real);
Begin 
A:=kh_canh(R.B,R.C);
B:=kh_canh(R.A,R.C);
C:=kh_canh(R.B,R.A);
End;
Function Chuvi( Var R: tamgiac):Real;
Var a,b,c: real;
Begin 
Daicanh(R,a,b,c);
Chuvi:=a+b+c;
End;
Function dientich ( Var R : tamgiac) : Real;
Var a,b,c,p: real;
Begin
Daicanh(R,a,b,c);
P:=(a+b+c)/2;
Dientich:=sqrt(p*(p-a)*(p-b)*(p*c));
End;
Procedure hienthi(var: R:tamgiac);
Begin 
Writeln(‘toa do 3 dinh’);
Writeln(‘A’,R.A.X,R.A.Y);
Writeln(‘B’,R.B.X,R.B.Y);
Writeln(‘C’,R.C.X,R.C.Y);
End;
Procedure tinhchat( var R: tamgiac; var deu,can,vuong:boolean);
Var a,b,c:real;
Begin 
Deu:=false;can:=false;
Vuong:=false;
Daicanh(R,a,b,c);
If (abs(a-b)<eps) and (abs(a-c) <eps) then deu:=true
Else
If (abs(a-b)<eps) or (abs(a-c) <eps) or (abs(b-c)<eps) then can:=true;
If (abs(a*a+b*b-c*c)<eps) or (abs(a*a+c*c-b*b)<eps) or (abs(b*b+c*c-a*a)<eps) then vuong:=true;
End;
End;
BEGIN
Writeln(‘ nhap tam giac’);
Writeln(‘A’);readln(T.A.X,T.A.Y);
Writeln(‘B’);readln(T.B.X,T.B.Y);
Writeln(‘C’);readln(T.C.X,T.C.Y);
Writeln(‘============’);
Hienthi(t);
Writeln(‘DienTich’,dientich(T);
Writeln(‘Chu vi’,chuvi(T);
Tinhchat(T,deu,cau,vuong);
Writeln(‘ Tam giac co tinh ’);
If deu then writeln(‘deu’)
Else
If can then writeln(‘Can’);
If vuong then writeln(‘vuong’);
Readln;
End.
Mở rộng cho học sinh về nhà chuẩn hoá chương trình với nội dung như sau: Cho tệp dữ liệu TAMGIAC.DAT có cấu trúc như sau:
-Dòng đầu tiên chứa số N
-N dòng tiếp theo mỗi dòng chứa các số thực Xa,Ya,Xb,Yb,Xc,Yc là độ dài 3 đỉnh tam giác A(Xa,Ya),B(Xb,Yb), C(Xc,Yc) của tam giác ABC.
Hãy nhập dữ liệu từ tệp đã cho và trong số N tam giác đó, đưa ra tệp TAMGIAC.OUT gồm 3 dòng.
-Dòng đầu tiên là số lượng tam giác đều
-Dòng thứ hai là số lượng tam giác cân.
-Dòng thứ ba là số lượng tam giác Vuông.
HS: Theo dõi sự hướng dẫn của GV suy nghĩ về nhà làm bài tập.
4. CỦNG CỐ 
Củng cố kiến thức đã học đối với chương trình con (hàm và thủ tục).
Rèn luyện kĩ năng lập trình của học sinh.
Củng cố lại vai trò chức năng của hàm và thủ tục. Cách gọi chương trình con.
Nâng cao kĩ năng viết và sử dụng chương trình con khi giải bài tập.
5. DẶN DÒ:
Về nhà học bài và làm các bài tập sau:
Cho tệp dữ liệu TAMGIAC.DAT có cấu trúc như sau:
-Dòng đầu tiên chứa số N
-N dòng tiếp theo mỗi dòng chứa các số thực Xa,Ya,Xb,Yb,Xc,Yc là độ dài 3 đỉnh tam giác A(Xa,Ya),B(Xb,Yb), C(Xc,Yc) của tam giác ABC.
Hãy nhập dữ liệu từ tệp đã cho và trong số N tam giác đó, đưa ra tệp TAMGIAC.OUT gồm 3 dòng.
-Dòng đầu tiên là số lượng tam giác đều
-Dòng thứ hai là số lượng tam giác cân.
-Dòng thứ ba là số lượng tam giác Vuông.
Viết hàm tính giá trị của đa thức f(x)=x10+x9+.x2+x+1 . Với x là số thực.
Cho dãy 100 số thực. Hãy viết hàm tìm số lớn nhất (số nhỏ nhất) của dãy.
Xem trước bài THƯ VIỆN CHƯƠNG TRÌNH CON CHUẨN.
============================

Tài liệu đính kèm:

  • docTiet 26.doc