Khác nhau: giá trị biến thay đổi được,giá trị hằng không thay đổi được 3.Không.Vì giá trị hằng không thay đổi được giữ nguyên suốt quá trình thực hiện chương trìnhsử dụng lệnh gán lại pi[r]
Trang 1NS : 01/09/2010
ND : 20/09/2010
Tieát 11.12
BÀI THỰC HÀNH 2:
VIẾT CHƯƠNG TRÌNH ĐỂ TÍNH TOÁN
I.MỤC TIÊU:
1.Kiến thức:
-Thực hành với các bài tập số học trong chương trình Pascal
-Biết được kiểu dữ liệu khác nhau thì được xử lí khác nhau
-Hiểu phép toán div, mod
-Hiểu thêm về càc lệnh in dl ra màn hình và tạm ngừng chương trình
2.Kỹ năng:
-Luyện tập soạn thảo chỉnh sửa ct,biên dịch,chạy và xem kq noạt động của ct trong môi trường Turbo Pascal
3.Thái độ:
-Thái độ nghiêm túc ,chính xác khi soạn thảo ct
II.PHƯƠNG PHÁP CHỦ ĐẠO:
1.Phương pháp dạy học:
-Phương pháp hoạt động nhóm
-Phương pháp vấn đáp
-Phương pháp trực quan
2.Lưu ý sư phạm:
Chỉ cần tập trung các phép toán đơn giản +, -, *, /
Để biẻu diễn bình phương của một số ta chỉ cần dùng phép nhân số đó với chính nó.VD:32=3*3
Kí hiệu * , / tương ứng với phép nhân ,chia trong Pascal
Cần đưa ra VD đơn giản để đạt mục tiêu của bài là chuyển từ bt toán học sang bt trong Pascal, tránh đưa ra VD phức tạp mất thời gian
Khuyến khách học sinh sử dụng việc kết xuất thông tin ra màn hình đối với số thực dưới dạng :n:m để dễ đọc
III.CHUẨN BỊ :
- Kiểm tra phần mềm Trubo Pascal trên máy tính , đèn chiếu
- HS học lý thuyết ở bài trước,xem trước các chương trình có sẳn ở bài thực hành
IV.TIẾN TRÌNH DẠY HỌC
1.Ổn định lớp: 2phút
-Kiểm tra sĩ số lớp
-Ổn định trật tự
2.Kiểm tra bài cũ: 7-9 phút
-Viết kí hiệu các phép toán số học trong Pascal ? + ,- ,* ,/ ,div,mod
-Viết bt toán học sau sang bt trong Pascal:
a)15 x 4-30 + 12 15 * 4 -30 + 12
b)1/x –a/5 (b+2) 1/x –a/5 *(b+2)
3.Đặt vấn đề: 1phút
Trang 2Trong bài thực hành hôm nay, một lần nữa sẽ giúp chúng ta củng cố thêm phần soạn thảo, chỉnh sửa chương trình, biên dịch, chạy và xem kết quả chương trình Đặc biệt là vận dụng kiến thức để chuyển các biểu thức số học thành biểu thức trong Pascal
4.Các hoạt động: 70 phút
HĐ 1: Bài tập 1
Gv cho HS sửa bài viết các
biểu thức toán học sau dưới
dạng biểu thức trong Pascal
a) 15 4 30 12 ; b) 10 5 18 ;
b) 10 5 18 ;
c) (10 2)2 ;
(3 1)
d) (10 2)2 24
(3 1)
GV lưu ý HS :Chỉ được dùng
cặp dấu ngoặc đơn để nhóm
các phép toán
Cho HS làm câu b bài 1
Cho HS khởi động Turbo
Pascal
Lưu ý: các bt Pascal được đặt
trong lệnh writeln để in ra kq:
Hiển thị ra màn hình những
xâu kí tự nẳm trong cặp dấu
nháy đơn và hiển thị kq của bt
được đặt ngay sau dấu phẩy
=>Rút ra kết luận
-Đặt trong dấu ‘ ‘ thì hiển thị y
nguyên
-Không đặt trong dấu ‘ ‘ thì
Pascal sẽ tính toán và hiển thị
kq
=>Dữ liệu khác nhau thì xử lí
khác nhau
-Lưu ý: HS thêm phần khai báo
vào đầu ct
-Hướng dẫn HS lưu chương
trình
HĐ 2:Tìm hiểu div,mod với
số nguyên,sử dụng câu lệnh
tạm ngừng ct.
HS sửa bài
HS làm câu b bài 1
HS khởi động Turbo Pascal, sọan thảo ct như yêu cầu SGK
Hs chỉnh sửa ,chạy ct
và kiểm tra kq
HS rút ra sự khác nhau giữa 2 cụm bt có trong lệnh writeln
Writeln(‘….’,….)
HS lưu ct với tên CT2.pas
HS mở tệp soạn thảo như SGK
Bài 1:
A.Viết Các biểu thức số học dưới dạng biểu thức trong Pascal:
a)15*4-30+12
b) 10+5)/(3+1)-18/(5+1)) c) (10+2)*(10+2)/(3+1))
d ) 10+2)*(10+2)-24)/(3+1));
B
Program CT2;
Uses crt;
Begin Clrscr;
Writeln(‘15*4-30+12=’,
15*4-30+12);
Writeln(‘(10+5)/(3+1)-18/(5+1)=’, (10+5)/(3+1)-18/(5+1));
Writeln(‘(10+2)*(10+2)
/(3+1)=’, (10+2)*(10+2)/(3+1));
Writeln(‘((10+2)*(10+2
)-24)/(3+1)=’, ((10+2)*(10+2)-24)/(3+1));
Readln;
End.
BÀI 2:
a)
Trang 3a)yêu cầu hs mở tệp mới,soạn
thảo,dịch ,chạy ct
b)
Ycầu HS rút ra nhận xét sự
khác nhau giữa phép
chia,div,mod ?
c)
Ycầu hs thêm lệnh delay(5000)
vào sau mỗi lệnh writeln
Ý nghĩa lệnh delay(5000) ?
5000/1000giây=5giây
d)
ycầu hs thêm lệnh readln vào ct
trước từ khoá end
ycầu hs nxét kq ?
-Nhấn phím enter để tiếp tục
HĐ 3:Tìm hiểu thêm về cách
in dữ liệu ra màn hình.
Hướng dẫn hs mở tệp chương
trình CT2.pas đã lưu ở trên
Yêu cầu hs soạn thảo dịch,chạy
ct,rút ra nxét
-Hướng dẫn sơ bộ cách ghi số
thực ra màn hình(dựa vào phần
xuất kq ở bài này)
Writeln( : -: -); biểu diễn
giá trị thực:độ rộng để in:số
chữ số thập phân.
Hs dịch ktra lỗi ,chạy
ct và xem kq
HS học nhóm và tra lời:
16/3:phép chia cho kq
là thương 16div3:phép chia 16 cho 3 lấy phần nguyên
là 5
16 mod 3: phép chia 16 cho 3 lấy dư là 1
-HS dịch chạy quan sát
kq và cho nhận xét:
Ct tạm dừng sau khi in từng kq ra màn hình
HS thêm lệnh readln vào trước từ khoá end
HS dịch chạy ct cho kq
và nxét Readln :dừng ct để xem kq và nhấn phím enter để tiếp tục
HS mở ct CT2.pas như
đã hướng dẫn Sửa 3 lệnh writeln cuối
ở CT2.pas thành 3 lệnh như SGK
Dịch,chạy ct
HS học nhóm và rút ra nhận xét chung
Program CT;
Uses crt;
Begin Clrscr;
Writeln(‘16/3 =’,16/3); Writeln(’16 div 3 =’,16
div 3);
Writeln(’16 mod 3
=’,16 mod 3);
Writeln(’16 mod 3
=’,16-(16 div 3)*3);
Writeln(’16 mod 3
=’,(16-(16 mod 3 ))/3);
End.
b) /:phép chia cho kq là
thương div:chia lấy phần nguyên mod:chia lấy phần dư,
c)
Lệnh delay(5000); chương trình tạm dừng 5 giây sau khi in từng kq
ra màn hình
d)
Lệnh readln: dừng chương trình để xem kết quả,nhấn phím enter để tiếp tục
BÀI 3:
Cách in dữ liệu ra màn hình:
writeln((10+5)/(3+1)- 8/(5+1):4:2);
Trang 4V.TỔNG KẾT CUỐI BÀI:
1.Củng cố:
-Khỏc nhau giữa / ,div,mod?
-clrscr?
-delay(),read, readln ?
- Cỏc lệnh làm tạm ngừng chương trỡnh:
+ delay(x) tạm ngừng trong vũng x phần nghỡn giõy
+ read hoặc readln tạm ngừng chương trình cho đến khi người dùng nhấn phím
Enter.
- Câu lệnh Pascal writeln(<giá trị thực>:n:m) được dùng để điều khiển cách in các
số thực trên màn hình; trong đó giá trị thực là số hay biểu thức số thực và n, m là các số
tự nhiên n quy định độ rộng in số, còn m là số chữ số thập phân
2.Dặn dũ:
-Học bài, xem trước bài mới: BÀI 4 SỬ DỤNG BIẾN TRONG CHƯƠNG TRèNH
-Thực hành lại phần hướng dẫn của GV trờn lớp
VI.RÚT KINH NGHIỆM:
HĐ 4: Đỏnh giỏ
Qua 3 bài trờn yờu cầu hs rỳt ra
nhận xột chung ?
-Khỏc nhau giữa / ,div,mod?
-clrscr?
-delay(),read, readln ?
Yờu cầu hs xem phần tổng kết
sau bài
Học bài,xem trước bài 4
HS ghi bài
NHẬN XẫT:
-Trong Pascal dữ liệu khỏc nhau thỡ sẽ được
xử lớ khỏc nhau.
-Kớ hiệu cỏc phộp toỏn
số học trong Pascal là + ,-,* ,/ ,div,mod.
-Lệnh clrscr ; xoỏ màn
hỡnh
-Delay(),readln: tạm ngừng chương trỡnh
Trang 5NS : 06/09/2010
ND : 27/09/2010
Tuaàn 7
Tieát 13.14
BÀI 4 SỬ DỤNG BIẾN TRONG CHƯƠNG TRÌNH
I.MỤC TIÊU:
1.Kiến thức:
-Biết khái niệm biến, hằng.
-Hiểu cách khai báo, sử dụng biến hằng.
-Biết vai trò của biến trong lập trình.
-Hiểu lệnh gán.
2.Kỹ năng:
-Biết áp dụng câu lệnh gán và các lệnh tính toán được thực hiện trên biến, hằng vào bài tập đơn giản
3.Thái độ:
-Cẩn thận chính xác, yêu thích môn học
II.PHƯƠNG PHÁP CHỦ ĐẠO:
1.Phương pháp dạy học:
-Phương pháp thảo luận nhóm.
-Phương pháp vấn đáp.
-Phương pháp trực quan.
-Phương pháp vấn đáp.
2.Lưu ý sư phạm:
Đây là bài tương đối khó đối với HS GV cần lưu ý nhấn mạnh một số điểm sau:
-Biến là đại lượng để lưu trữ dữ liệu, trong chương trình có thể thay đổi giá trị của biến Muốn sử dụng biến thì phải khai báo, khi khai báo biến phải khai báo kiểu dữ liệu Biến chỉ có thể lưu trữ được dữ liệu có kiểu thuộc kiểu của biến Người lập trình tự đặt tên cho biến theo quy tắc của ngôn ngữ lập trình đang sử dụng Có thể gán giá trị cho biến và tính toán với biến
-Hằng có khai báo là đại lượng để lưu trữ dữ liệu cố định Không được phép thay đổi giá trị của hằng trong chương trình
-Nên lấy ví dụ đơn giản để học sinh luyện tập việc đặt tên khai báo và sử dụng bằng, biến
-Giải thích kỹ câu lệnh gán HS thường hay hiểu lệnh gán là dấu = trong toán học -Sau mỗi phần nên cho học sinh nhắc lại các khái niệm, các quy tắc để củng cố kiến thức
III.CHUẨN BỊ :
- GV: Chuẩn bị sẳn một số chương trình có sử dụng biến để có thể minh hoạ cho hs dễ hiểu.
- HS: học bài, xem trước bài mới.
IV.TIẾN TRÌNH DẠY HỌC
1.Ổn định lớp: 2phút
-Kiểm tra sĩ số lớp
-Ổn định trật tự
2.Kiểm tra bài cũ: 7-9 phút
-Viết chương trình tính diện tích hình tròn có bán kính r = 2(S=3.14*r2 ) ?
Begin
Write(‘dien tich hinh tron co ban kinh r = 2 la:’ 3.14*2*2);
Readln;
Trang 6Kết quả in ra màn hình câu gì ?
3.Đặt vấn đề: 1phút
Chúng ta làm quen với một số chương trình Pascal đơn giản Các chương trình đó chỉ giải quyết các công việc đơn giản là xuất và nhập dữ liệu Vậy để giải quyết các bài toán phức tạp thì phải cần một công cụ đặc biệt trong chương trình đó là biến Vậy biến
là gì? Sử dụng biến như thế nào? Chúng ta cùng tìm hiểu bài
4.Các hoạt động: 70 phút
HĐ 1: Với vd trên, muốn tìm diện
tích hình tròn khác thì phải vào ct
sửa lại mất thời gian, không khoa
học (bán kính có thể thay đổi ,vd
r=1,3,5,6,7,…….)
S=3.14*2*2
r
Và r này thay đổi tuỳ ý và được nhập
từ bàn phím
VD1:ctrình sau:
Var
r:integer;
begin
wtite(‘nhap ban kinh hinh tron r=:’);
readln(r);
write(‘dien tich hinh tron la:’
3.14*r*r);
readln;
end.
GV chạy chương trình này, HS quan
sát và xem kết quả
=>r là biến
-Khái niệm biến là thế nào? biến
dùng để làm gì? Cách khai báo?
Biến có vai trò gì trong lập trình?
VD: r=55 là giá trị lưu trữ của
biến
GV có thể nêu vd khác:
Writeln(15+5); tổng 15+5,ta có thể
nói tổng 2 số x,y và x,y được nhập
từ bàn phím
writeln(x,y);
X,y là biến nhớ lưu giá trị được
nhập vào.
VD 2:
(100+50)/3 và (100+50)/5
Nxét có 2 tử số giống nhau
X 100+50
Y x/3
Z x/5
HĐ 2:KHAI BÁO BIẾN
HS biết diện tích hình tròn S=3.14*r 2
Hay S=3.14*r*r
HS quan sát xem kết quả
HS biết biến dùng để lưu trữ dữ liệu
Giá trị của biến có thể thay đổi được.
HS theo dõi như vd trên x,y là biến nhớ
x,y,z là biến nhớ:
X lưu kquả của tổng 100+50
Y lưu kquả x/3
Z lưu kquả x/5.
1.BIẾN LÀ CÔNG CỤ TRONG LẬP TRÌNH:
Biến nhớ(biến) dùng để lưu trữ dữ liệu Dữ liệu được
biến lưu trữ gọi là giá trị của biến.
Giá trị của biến có thể thay đổi trong khi thực hiện
chương trình.
2 KHAI BÁO BIẾN
Trang 7Gv biến là công cụ hổ trợ lập trình
Var r: integer;
Là lệnh khai báo biến nhớ
-Tất cả biến dùng trong chương trình
cần phải được khai báo ngay trong
phần khai báo của ct.
GV đưa vd: đoạn chương trình khai
báo biến
Var m,n : integer;
S,dientich: real;
Thong_bao: string;
Trong đó:
-m,n,s,dientich,thong_bao:khai báo
tên biến.
-integer,real,string:khai báo kiểu dữ
liệu của biến.
-m,n là biến có kiểu gì ?
-s,dientich là biến có kiểu gì ?
-thong_bao là biến có kiểu gì ?
GV giới thiệu cách đặt tên biến.
-Khai báo biến gồm những phần
nào?
-Lưu ý: kiểu của biến phải phù hợp
với kiểu dữ liệu cần dùng
HĐ 3:SỬ DỤNG BIẾN TRONG
CHƯƠNG TRÌNH
Sau khi khai báo ta sử dụng biến
trong ct như thế nào ?
Trở lại vd ở trên:
X 100+50
Y x/3
Z x/5
-Biến x nhân giá trị 100+50
-Biến y được gán giá trị của biến
x/3
-Biến z được gán giá trị của biến x/5
Trong ngôn ngữ Pascal ta dùng dấu
:= để biểu thị phép gán.
=>x 100+50 ta có thể viết
X:= 100+50
-Ở vd khác x:=12, nghĩa là gán giá
trị 12 cho biến nhớ x.
GV lưu ý:như vd trên ta có thể thấy
với giá trị của biến ta có thể thực
hiện được các phép tính toán với đk:
kiểu dữ liệu của biến phải trùng
với kiểu dữ liệu của giá trị được
gán.
-Khi được gán giá trị mới ,giá trị cũ
của biến bị xoá đi khỏi ô nhớ.
=>rút ra kết luận gi ?
HS thấy var r;integer; ở vd trên
HS quan sát vd
m,n:biến có kiểu số nguyên s,dientich: kiểu số thực thong_bao: kiểu xâu kí tự
phần tên biến và phần kiểu
dữ liệu
HS xem lại vd trên.
HS lắng nghe
X:=100+50 X:=12,gán giá trị 12 cho biến nhớ x.
HS lắng nghe
Giá trị biến có thể thay đổi.
HS quan sát
Hs biết được sự khác nhau
Vd:
Var m,n : integer;
S,dientich: real;
Thong_bao: string;
Trong đó:
-Var: từ kháo dùng để khai báo
-m,n: là các biến có kiểu số nguyên
-s,dientich: là các biến có kiểu số thực
-thong_bao: biến có kiểu xâu
*Khai báo biến gồm
-Khai báo tên biến.
-Khai báo kiểu dữ liệu của biến
TRÌNH:
Sử dụng biến trong chương trình như thế nào:
-Gán giá trị cho biến.
-Tính toán với giá trị của biến.
Câu lệnh gán cho biến có dạng:
Tên biến biểu thức cần gán giá trị cho biến.
Lưu ý: Trong Pascal ta dùng
phép gán là dấu :=
Dấu = biểu diễn phép so sánh
VD:
X:=2;
X:=Y;
Trang 8V.TỔNG KẾT CUỐI BÀI:
1.Củng cố:
Dòng 5:khai báo biến b không phù hợp(vì a/c:real mà ở trên đã khai báo kiểu integer).
b)div,mod chỉ thực hiện trên số nguyên a,b,c,d:integer
2.Dặn dò:
-Học bài, xem trước bài mới: Bài thực hành 3 : Khai báo và sử dụng biến
VI.RÚT KINH NGHIỆM:
GV cho hs quan sát bảng ở vd 4:
Cho hs phân biệt x=2; và x:=2;
HĐ 4: Trở lại vd:
S=3.14*r*r ,số 3.14 được sử dụng
nhiều lần trong ct,thay vì phải viết
3.14 nhiều lần người lập trình dùng
hằng thay thế vào đó,bằng cách dùng
khai báo hằng vào việc khai báo ct.
VD:
Const pi=3.14;
Bankinh=2;
Hằng cũng là công cụ lưu trữ dl
nhưng hằng là đại lượng có thay đổi
được không ?
GV giới thiệu
-Const: từ khoá khai báo hằng
-pi, bankinh được gán giá trị là
3.14 và 2 trong suốt thời gian thực
hiện ct.
-Nếu muốn thay đổi giá trị của hằng
ta chỉ cần chỉnh sửa 1 lần tại nơi
khai báo mà không phải tìm và sửa
trong cả ct.
Cần lưu ý: nếu đã khai báo hằng như
ở trên thì những câu lệnh
pi:=3.14;
bankinh:=bankinh+2;
Là không hợp lệ
Lưu ý :const pi=3.14
Const pi:=3.14 SAI
giữa x=2; và x:=2;
Hs lắng nghe
Hs quan sát vd Hằng là đại lượng không thay đổi giữ nguyên trong suốt quá trình thực hiện ct.
HS ghi bài
HS học nhóm để làm các bài tập vào vở
X:=X+1;
4.HẰNG:
-Hằng dùng để lưu trữ dữ
liệu,giá trị của hằng không thay đổi được giữ nguyên
trong suốt quá trình thực hiện chương trình.
-Hằng phải được khai báo
trước khi sử dụng VD:
Const pi=3.14;
Bankinh=2;
Trong đó
-const:là từ khoá để khai
báo hằng.
-pi, bankinh: tên hằng
được gán giá trị tương ứng là 3.14 và 2.
GV hướng dẩn hs làm việc nhóm.
1.A:real ,X:string
a) Đ c) Đ
b)S d)S
2 Khác nhau: giá trị biến thay đổi được,giá trị hằng không thay đổi được
3.Không.Vì giá trị hằng không thay đổi được giữ nguyên suốt quá trình thực hiện chương trình(sử dụng lệnh
gán lại pi nghĩa là thay đổi pi)
4.a) Đ
b)S vì tên biến không hợp lệ.
c)S vì hằng phải được cho giá trị khai báo
d)S vì không được gán giá trị khi khai báo.
5.dòng 1:dư dấu =
Dòng 2:dư dấu :
Dòng 4:thiếu dấu ;
6.a)s=a*h/2 s là số thực
A,b:integer
S:real