Bài soạn Tin 11 (Tu tuan 21 den 26) - Pdf 80

Ngày soạn:.../01/2011
Ngày giảng:.../....../2011 Lớp: 11B1 Sĩ số:..
Tiết 19: bài tập và thực hành 2 (1/2)
I - Mục tiêu:
1. Kiến thức: - Củng cố thêm về cấu trúc rẽ nhánh;
- Tiếp tục làm quen với các công cụ phục vụ hiệu chỉnh chơng trình.
2. Kỹ năng: tạo cấu trúc lặp, giải bài toán tìm tổng của dãy số;
3. Thái độ: có hành vi thái độ đúng đắn về những vấn đề đạo đức liên quan đến việc sử dụng MT
II. Chuẩn bị của thầy và trò:
1. Giáo viên: SGK, SGV, Giáo án, phiếu HT, Ví dụ su tầm cho chơng trình TP về tổ chức lặp.
2. Học sinh: SGK, vở ghi.
II - Tiến trình bài dạy:
1. Kiểm tra bài cũ: Không
2. Nội dung bài giảng:
Hoạt động của Giáo viên và Học sinh Nội dung kiến thức
GV hớng dẫn và giải đáp các thắc mắc của hs
về một số BT ở nhà.
- Giáo viên chia nhóm HS - Thảo luận tại từng
nhóm (4 nhóm)
GV yêu cầu HS nhóm 1 trả lời câu hỏi 1-
SGK/50
Hãy cho biết sự giống và khác nhau của hai
dạng câu lệnh IF - THEN
-GV yêu cầu các nhóm 2,3,4 lắng nghe và nhận
xét câu trả lời của nhóm 1.
- Giáo viên nhận xét, đánh giá, chốt lại (có thể
cho điểm).
* Chữa bài tập
Câu hỏi 1:
+ Giống nhau: Cùng là lệnh tổ chức rẽ nhánh,
khi gặp một điều kiện nào đó hì chọn lựa thực

câu lệnh WHILE - DO đợc không?
- GV yêu cầu các nhóm 1,2,4 lắng nghe và
nhận xét câu trả lời của nhóm 3.
- Giáo viên nhận xét, đánh giá, chốt lại (có thể
cho điểm).
Câu hỏi 3: (SGK-51)
Có thể thay thế đoạn chơng trình chứa câu lệnh
FOR - DO bằng đoạn chơng trình chứa câu
lệnh WHILE - DO nh sau:
i:= <giá trị đầu>;
While < i <=giá trị cuối> do
Begin
<câu lệnh>;
<tăng i một đơn vị>;
end;
GV yêu cầu HS đọc đề bài 4 trong SGK/51
Bài tập 4: SGK/51
a) if sqr(x)+sqr(y)<=1 then z:=sqr(x)+sqr(y)
else
if y>=x then z:=x+y
else z:=0.5;
1
nếu x
2
+y
2

1
nếu x
2

b)



+
+
=
yx
yx
z
||||
GV yêu cầu HS nhóm 1 và các nhóm 2,3,4 làm
BT. Gọi đại diện nhóm 1 lên trình bày. Các
nhóm khác quan sát, nhận xét.
GV: khẳng định lại.
Bài tập 4: SGK/51
b) if (sqr(x-a)+sqr(y-b) < sqr(z) then
z:= abs(x)+abs(y)
Else z:=x+y;
GV yêu cầu HS đọc đề bài 5 trong SGK/51
Lập trình tính: a)

=
+
=
50
1
1
n
n

!1
1
1
+++++
n
cho đến
khi
6
102
!
1

ì<
n
Đa giá trị e(n) ra màn hình.
Bài tập 5: SGK/51
b) uses CRT;
Var N: longint; e,sh: Real;
Begin
Clrscr;
sh:=1/2; n:=2; e:=2+sh;
While sh>=2*1E-6 do
Begin
inc(n); sh:= sh*(1/n);
e:=e+sh; End;
Writeln(' Gia tri cua e(n) la: ',e :10:6);
Readln;
End.
3. Củng cố: - Học sinh nắm vững kiến thức đã học trong bài lý thuyết, áp dụng vào bài luyện tập.
- Giáo viên tóm tắt nội dung về tổ chức rẽ nhánh và tổ chức lặp.

Ba mơi sáu con
Một trăm chân chẵn.
Hỏi có bao nhiêu con mỗi loại?
GV: Gợi ý HS tìm Input, Output của bài toán,
chọn biến, kiểu DL, tìm công thức liên hệ giữa
các biến và hớng dẫn viết chơng trình.
Bài tập 6: SGK/51:
uses CRT;
Var ga, cho: Integer;
BEGIN
Clrscr;
For cho:=1 to 24 do
Begin
ga:=36 - cho;
If ga+2 * cho =50 then
writeln('Ga co:',ga,'con',' Cho co: ',cho,' con');
End;
Readln;
END.
GV yêu cầu HS đọc đề bài 7 trong SGK/51
NHập từ bàn phím tuổi của cha và con (hiện
tại tuổi của cha lớn hơn 2 lần tuổi của con và
tuổi cha hơn tuổi con ít nhất là 25). Đa ra màn
hình câu trả lời cho câu hỏi "Bao nhiêu năm
nẵa thì tuổi cha gấp đôi tuổi con ?"
Bài tập 7: SGK/51
Uses CRT;
Var tuoicha,tuoicon,nam: word;
BEGIN
Clrscr;

Clrscr;
write(' Nhap vao so tien gui : ');
readln(tiengui);
luu:=tiengui;
write('So tien co khi rut ve : ');
readln(tienrutve);
thang:=0;
while tiengui<tienrutve do
begin
tiengui:= tiengui + luu * laisuat;
thang:=thang+1;
end;
write('Gui ', luu:10:4,' dong', 'sau ', thang, '
thang ');
writeln(' se nhan duoc so tien ', tienrutve:10:4,'
dong');
readln
END.
3. Củng cố:
- Học sinh nắm vững kiến thức đã học trong bài lý thuyết, áp dụng vào bài luyện tập.
- Giáo viên tóm tắt nội dung về tổ chức rẽ nhánh và tổ chức lặp.
4. Hớng dẫn học ở nhà:
BTVN: - Học sinh làm lại các câu hỏi và bài tập trong bài.
- Chuẩn bị học và đọc trớc bài kiểu dữ liệu có cấu trúc ở Đ11 - Kiểu mảng.
.................., Ngày ...... tháng ......năm 2011......
4
Ngày soạn:.../......./2011
Ngày giảng:.../....../2011 Lớp: 11B1 Sĩ số:..
Ngày giảng:.../....../2011 Lớp: 11B2 Sĩ số:..
Ngày giảng:.../....../2011 Lớp: 11B7 Sĩ số:..

Var t1,t2,t3,t4,t5,t6,t7,tb:real;
dem:integer;
BEGIN CLRSCR;
write('Nhap vao nhiet do cua 7 ngay:');
Readln(t1,t2,t3,t4,t5,t6,t7);
tb:=(t1+t2+t3+t4+t5+t6+t7)/7;
dem:=0;
if t1>tb then dem:=dem+1;
if t2>tb then dem:=dem+1;
if t3>tb then dem:=dem+1;
if t4>tb then dem:=dem+1;
if t5>tb then dem:=dem+1;
if t6>tb then dem:=dem+1;
if t7>tb then dem:=dem+1;
writeln('nhiet do TB cua tuan: ',tb);
writeln('so ngay nhiet do cao hon nhiet do TB:
',dem);
Readln; END.
1. Kiểu mảng một chiều:
- Khái niệm: là dãy hữu hạn các phần tử cùng
kiểu đặt sau tên mảng.
- Mảng đợc đặt tên và mỗi phần tử của nó có 1
chỉ số.
* Để xây dựng và sử dụng kiểu DL mảng 1
chiều, ngời lập trình cần phải xác định những
yếu tố sau:
- Tên kiểu mảng 1 chiều.
- Số lợng phần tử.
- Kiểu DL của phần tử.
- Cách khai báo biến mảng.

GV đa ra 2 khai báo mảng 1 chiều và yêu cầu
hs lấy ví dụ.
tục có dạng n1..n2 với n1 và n2 là các hằng
hoặc biểu thức nguyên xác định chỉ số đầu và
chỉ số cuối (n1<=n2);
- kiểu phần tử: là kiểu của các phần tử mảng.
Tham chiếu tới phần tử của mảng 1 chiều đợc
xác định bởi tên mảng cùng với chỉ số, đợc viết
trong cặp ngoặc [ ].
Ví dụ:
hocsinh[20]; tham chiếu tới học sinh thứ 20.
Hoạt động 2:
Gv Hớng dẫn và giảng giải hs làm:
BT ví dụ: kiểu mảng một chiều - bài tập tính
nhiệt độ N ngày.
SGK - 54
Giáo viên đa ra một số cách khai báo kiểu
mảng một chiều hợp lệ và không hợp lệ cho Hs
quan sát và lựa chọn cách khai báo đúng:
TYPE
a1= array[-100..200] of real;
mang1: array[10..50] of integer;
arrayInt = array[-100..0] of Integer;
arrayBoolean= array[-n+1..n+1] of boolean;
* Một số ví dụ:
Ví dụ về mảng 1 chiều:
Chơng trình tính nhiệt độ tuần ở mục 1- kiểu
mảng một chiều có thể cài đặt nh sau:
Program Tinh_nhiet_do_N_ngay;
const Max=366;

6
Ngày soạn:.../......./2011
Ngày giảng:.../....../2011 Lớp: 11B1 Sĩ số:..
Ngày giảng:.../....../2011 Lớp: 11B2 Sĩ số:..
Ngày giảng:.../....../2011 Lớp: 11B7 Sĩ số:..
Tiết 22
Đ11 - kiểu mảng (2/4)
I - Mục tiêu:
1. Kiến thức: Một số ví dụ về kiểu mảng một chiều (mục 1b của Đ11), cách sử dụng mảng 1 chiều
trong chơng trình thể hiện các thuật toán cơ bản về tìm kiếm và sắp xếp;
- Duyệt tuần tự để tìm phần tử lớn nhất của dãy số nguyên;
- Sắp xếp dãy số nguyên bằng tráo đổi;
- Tìm một số hạng trong một dãy số nguyên tăng bằng thuật toán tìm kiếm nhị phân.
- Củng cố và làm HS hiểu sâu sắc hơn những thuật toán tìm kiếm, sắp xếp cơ bản mà HS đã
đợc học ở lớp 10.
- Minh họa, củng cố và nâng cao những hiểu biết của HS trong tiết 1 về mảng 1 chiều
- Hình thành kĩ năng cơ bản về sử dụng kiểu mảng trong cài đặt chơng trình.
2. Kỹ năng: xây dựng cấu trúc, cách khai báo, cách tham chiếu một phần tử và ích lợi của kiểu dữ
liệu mảng).
3. Thái độ: có hành vi thái độ đúng đắn về kiểu dữ liệu có cấu trúc mảng
II. Chuẩn bị của thầy và trò:
1. Giáo viên: SGK, SGV, SBT, Giáo án, ví dụ minh họa su tầm, MTĐT (nếu có).
2. Học sinh: SGK, SBT, vở ghi.
III - Tiến trình bài giảng:
1. Kiểm tra bài cũ: Hãy nêu cách khai báo biến mảng một chiều? Nêu ví dụ minh họa?
2. Nội dung bài giảng:
Hoạt động của Giáo viên và Học sinh Nội dung kiến thức
Hoạt động 1:
- Nh đã yêu cầu của BTVN tiết trớc; GV yêu
cầu HS phát biểu và nêu ra ý tởng các bài toán:

B1: Nhập N và dãy a
1
, ... a
N
;
B2: Max a
1
; i 2;
B3: Nếu i>N thì đa ra giá trị Max rồi kết thúc;
B4.
B4.1: Nếu a
i
> Max thì Max a
i
;
B4.2: i i + 1 rồi quay lại B3;
Chơng trình thực hiện việc duyệt tuần tự các
phần tử để tìm ra số lớn nhất của dãy số
nguyên: SGK/56-57.
Program TIMMAX;
uses CRT;
Const Nmax=250;
type daynguyen = array[1 ..Nmax] of integer;
var N, i, max, csmax: integer;
7
Hoạt động của Giáo viên và Học sinh Nội dung kiến thức
- Câu lệnh For - do thứ nhất trong chơng trình
thể hiện 1 nhiệm vụ trong B1 của thuật toán,
dùng để nhập các phần tử của mảng. Số phần tử
thực sự của mảng do ngời chạy chơng trình

For i := 2 to N do
If a[i] > Max then
Begin
Max := a[i];
csmax := i;
end;
writeln('Gia tri cua phan tu max: ',Max);
writeln('Chi so cua phan tu max: ', csmax);
readln
END.
Hoạt động 2:
- Giáo viên ôn lại thuật toán và kết hợp với ví
dụ mô phỏng để tạo điều kiện HS hiểu chơng
trình.
- Khái niệm lợt: sau lợt (lần) duyệt thứ nhất giá
trị lớn nhất xếp đúng vị trí là ở cuối dãy. Tơng
tự, sau lợt 2, giá trị lớn thứ 2 đợc xếp ở vị trí sát
cuối ... sau mỗi lợt có ít nhất 1 số hạng đã xếp
đúng vị trí. HS cần hiểu cụ thể, trong thuật toán
phải thực hiện bao nhiêu lợt, mỗi lợt thực hiện
trên đoạn nào (từ đâu đến đâu) của dãy số? Giá
trị của j chính là chỉ số phần tử cuối trong đoạn
đợc duyệt của lợt. Tạo điều kiện cho HS hiểu
mục đích của câu lệnh for j:=N downto 2 do
với biến đếm j chạy từ N về 2.
- Mỗi lợt bao gồm việc thực hiện một số thao
tác: so sánh một phần tử với phần tử đứng ngay
sau nó để xử lí, bắt đầu từ phần tử đầu tiên
trong dãy đến phần tử thứ j. Thao tác so sánh
để quyết định xử lí (tráo đổi 2 phần tử) đợc lặp

B2: M N;
B3: Nếu M <2 thì đa ra dãy A đã đợc sắp xếp
rồi kết thúc;
B4: M M-1, i 0;
B5: i i + 1;
B6: Nếu i > M thì quay lại B3;
B7: Nếu a
i
> a
i
+ 1 thì tráo đổi a
i
và a
i +1
cho
nhau;
B8: Quay lại B5;
Chơng trình
Program Sapxep;
uses CRT;
Const Nmax=250;
type daynguyen = array[1 ..Nmax] of integer;
var N, i, j, t: integer;
a: daynguyen;
BEGIN
clrscr;
8
Hoạt động của Giáo viên và Học sinh Nội dung kiến thức
end;
- giá trị biến đếm i chính là chỉ số phần tử đợc

kiểu DL chuẩn mà phải nhập hay xuất cho từng phần tử của mảng.
- Do mảng là dãy các phần tử đợc đánh số bởi các số nguyên liên tiếp nên việc thực hiện các thao tác nào đó
(nhập, xuất hay xử lí) trên dãy các phần tử của mảng thờng gắn với câu lệnh for - do.
- Các thao tác nhập, xuất hay xử lý mỗi phần tử của mảng phải tuân theo quy định kiểu phần tử của mảng.
- Khai báo kiểu mảng cần xác định kích thớc của mảng. Tuy nhiên, trên thực tế có nhiều trờng hợp số phần
tử chứa DL thực sự có ý nghĩa đối với bài toán đang giải quyết nhỏ hơn số lợng phần tử của mảng.
4. Hớng dẫn học ở nhà:
BTVN: - Làm các bài tập 5 - 6 trong SGK /79;
Hớng dẫn làm Bài tập ở nhà:
Bài 5: Lấy d=A[2] - A[1] Khi đó: dãy A là cấp số cộng nếu nó thỏa mãn điều kiện
A[i] = A[1] + (i-1)d. (hoặc điều kiện A[i] - A[i-1] = d với 1 < i N)
Dùng một vòng lặp theo biến đếm i để kiểm tra xem mỗi A[i] có thỏa mãn điều kiện nói trên hay
không? chỉ cần phát hiện đợc một phần tử của A không thỏa mãn là kết luận đợc dãy A không phải là cấp số
cộng.
.................., Ngày ...... tháng ......năm 2011......
9
Ngày soạn:.../......./2011
Ngày giảng:.../....../2011 Lớp: 11B1 Sĩ số:..
Ngày giảng:.../....../2011 Lớp: 11B2 Sĩ số:..
Ngày giảng:.../....../2011 Lớp: 11B7 Sĩ số:..
Tiết 23
Đ11 - kiểu mảng (3/4)
I - Mục tiêu:
1. Kiến thức: Một số ví dụ về kiểu mảng một chiều (mục 1b của Đ11), cách sử dụng mảng 1 chiều
trong chơng trình thể hiện các thuật toán cơ bản về tìm kiếm và sắp xếp;
- Củng cố và làm HS hiểu sâu sắc hơn những thuật toán tìm kiếm, sắp xếp cơ bản mà HS đã đợc
học ở lớp 10.
- Minh họa, củng cố và nâng cao những hiểu biết của HS trong tiết 1 về mảng 1 chiều (cấu trúc,
cách khai báo, cách tham chiếu một phần tử và ích lợi của kiểu Dl này).
2. Kỹ năng: - Duyệt tuần tự để tìm phần tử lớn nhất của dãy số nguyên;

tử cần tìm).
- Phạm vi tìm kiếm trên dãy là một đoạn đợc
xác định bởi các biến nguyên Dau và Cuoi, t-
ơng ứng cho biết bắt đầu từ phần tử có chỉ số
Dau của dãy cho đến phần tử có chỉ số Cuoi
của dãy. Gv dẫn dắt để HS hiểu đc công thức
xđ lại cho biến Dau hay Cuoi trong mỗi trờng
hợp thu hẹp phạm vi tìm kiếm.
b). Một số ví dụ:
Ví dụ 3:
Tìm kiếm nhị phân
Input: Dãy A là dãy tăng gồm N (N 250) số
nguyên dơng a
1
, a
2
,... a
N
và số nguyên k.
Output: Chỉ số i mà a
i
= k hoặc thông báo
"không tìm thấy" nếu không có số hạng
nào của dãy A có giá trị bằng k.
Thuật toán:
B1: Nhập N và dãy a
1
, a
2
... a

type
10
Hoạt động của Giáo viên và Học sinh Nội dung kiến thức
* Từ thuật toán chuyển sang ch. trình thì:
- Chơng trình sẽ gồm một cấu trúc lặp (cha xác
định trớc đợc số lần lặp).
- Tim_thay là biến logic. Khi cha tìm kiếm, tất
nhiên phải khởi tạo biến này là false, khi tìm
thấy sẽ thành true để dễ dàng xđ đk lặp.
- Đk của lặp là gì? Thể hiện sự kiện cha tìm
thấy hoặc không gian tìm kiếm cha rỗng bằng
biểu thức logic nào?
- Khi kết thúc lặp, giá trị của biến logic
tim_thay cho biết có tìm thấy hay không? bởi
vậy sau cấu trúc lặp dùng câu lệnh rẽ nhánh
theo giá trị của tim_thay để thông báo kq.
- Trờng hợp tìm thấy, nên đa ra kq chi tiết và
thông báo chỉ số của phần tử có giá trị là k. Khi
tìm thấy, sự kiện này đc ghi nhận ngay (ngay
sau khi so sánh phần tử giua đc chọn với k), đk
lặp đc kiểm tra và quá trình lặp đc dừng lại.
Lúc đó biến Giua cho biết chỉ số của phần tử
cần tìm.
dnguyen=array[1..max] of integer;
var
N,i,k: integer;
dau, cuoi, giua: integer;
A: dnguyen;
tim_thay:boolean;
BEGIN

END.
Hoạt động 2
GV: Yêu cầu HS làm bài tập :
+ Cho 1 mảng gồm 8 số nguyên dơng.
Hãy sắp xếp mảng đó thành dãy số tăng dần.
- Giáo viên hớng dẫn HS làm BT. Sử dụng thuật
toán tráo đổi.
Chơng trình
program sapxep;
uses crt;
var j,i,tam:integer;
a:array[1..8] of integer;
begin;
clrscr;
for i:=1 to 8 do
begin
write('vao mang
a[',i,']=');readln (a[i]);
end;
for i:=1 to 7 do
for j:=7 downto i do
if a[j]>a[j+1] then
begin
tam:=a[j];
11
Hoạt động của Giáo viên và Học sinh Nội dung kiến thức
a[j]:=a[j+1];
a[j+1]:=tam;
end;
write('mang a sau khi sap xep

readln;
END.
Ghi chú:
Chơng trình trên chỉ chạy đợc với N=24 vì số Phi-bô- na-xi thứ 25 là 75025, vợt quá phạm vi của
kiểu word.
.................., Ngày ...... tháng ......năm 2011......
12


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status