Sáng kiến kinh nghiệm Một số biện pháp tăng cường năng lực lập trình Pascal cho học sinh trường THCS Lương Thế Vinh

Sáng kiến kinh nghiệm Một số biện pháp tăng cường năng lực lập trình Pascal cho học sinh trường THCS Lương Thế Vinh

I.1 Lý do chọn đề tài.

Như đã biết, trong giai đoạn hiện nay máy tính điện tử đã nhanh

chóng thâm nhập vào mọi lĩnh vực sản xuất, kinh tế và đời

sống xã hội. Tin học đã được ứng dụng rộng rãi trong mọi lĩnh vực từ các

ngành khoa học chính xác, khoa học cơ bản đến điều khiển tự động,

thông tin liên lạc, . Ðặc biệt tin học được sử dụng nhiều trong công tác

quản lý như quản lý sản xuất, quản lý con người, quản lý tài nguyên, .

Tin học được xem là một trong những ngành mũi nhọn, chiếm vị trí hàng

đầu trong chính sách kinh tế và khoa học kỹ thuật của các nước đã và

đang phát triển. Chính vì vậy việc giáo dục tin học ở trường phổ thông có

vai trò quan trọng vì việc giáo dục đó là nhằm chuẩn bị cho thế hệ trẻ

Việt Nam về mặt tri thức, kỷ năng, về mặt năng lực, trí tuệ và các phẩm

chất cần thiết giúp học sinh thích ứng với thời đại vi tính hóa. Giúp cho

học sinh sau khi tốt nghiệp nắm được một số yếu tố cơ bản của tin học.

Trong đó có một số em có khả năng sử dụng máy tính để xử lý thông tin,

dùng máy tính như một công cụ phục vụ cho việc học tập và hoạt động.

Xét về mặt năng lực, trí tuệ: Giúp phát triển nhiều phương thức, tư duy

liên hệ mật thiết với việc sử dụng kỹ thuật xử lý thông tin như: tư duy

thuật toán, tư duy điều khiển, tư duy ngôn ngữ,. Ðồng thời hình thành và

phát triển năng lực hoạt động trí tuệ nói chung như phân tích, tổng hợp,

khái quát hóa, trừu tượng hóa,. Để xử lí thông tin tốt và để nâng cao

năng lực học tập cho học sinh thì việc học ngôn ngữ lập trình pascal là

một nhiệm vụ hết sức quan trọng.

pdf 34 trang Người đăng phuongnguyen22 Ngày đăng 05/03/2022 Lượt xem 959Lượt tải 4 Download
Bạn đang xem 20 trang mẫu của tài liệu "Sáng kiến kinh nghiệm Một số biện pháp tăng cường năng lực lập trình Pascal cho học sinh trường THCS Lương Thế Vinh", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
 nào? -> Học sinh cần phải biết ngôn ngữ lập trình 
Pascal-> tiếp đến giáo viên cần chỉ rõ cho học sinh hiểu phần mềm để soạn 
thảo chương trình, đồng thời cho phép dịch và thực hiện chương trình được 
gọi là môi trường lập trình, vi dụ rõ cho học sinh, để soạn thảo chương trình 
bằng ngôn ngữ lập trình Pascal, ta có thể sử dụng môi trường Turbo Pascal 
hoặc Free Pascal 
- Có thuật toán rồi để tiếp tục chuyển thành một chương trình Pascal giáo viên 
cần cho học sinh biết được sơ bộ về ngôn ngữ lập trình Pascal; Biết được cấu 
trúc của một chương trình Pascal; Các thành phần cơ sở của ngôn ngữ lập 
trình Pascal; Cho học sinh hiểu được một số kiểu dữ liệu chuẩn, cách khai 
báo biến, biểu thức quan và các câu lệnh cơ bản khi lập trình. 
- Một số nội dung cần cho học sinh nắm được: Một số kiểu dữ liệu cơ bản của 
ngôn ngữ lập trình pascal (Chú ý khi mới học giáo viên chỉ yêu cầu học sinh 
khai báo dữ liệu các kiểu integer, real, char, string và không bắt buộc học 
sinh phần mở rộng). 
Giáo viên có thể mở rộng thêm: 
kiểu nguyên: 
Kiểu Bộ nhớ lưu 
trữ 1 giá trị 
Phạm vi giá trị 
Byte 1 byte Từ 0 đến 255 
Integer 2 byte Từ -215 đến 215-1 
Word 2 byte Từ 0 đến 216-1 
Longint 4 byte Từ -231 đến 231-1 
kiểu thực: 
 ”Đề tài: “Một số biện pháp tăng cường năng lực lập trình Pascal cho học sinh trường THCS Lương Thế Vinh” 
Người viết: Đinh Thị Thiên Nga Trường THCS Lương Thế Vinh Trang 9 
Kiểu Bộ nhớ lưu 
trữ 1 giá trị 
Phạm vi giá trị 
Real 6 byte 0 hoặc có giá trị tuyệt đối nằm trong phạm 
vi từ 
2.9 x10-39 đến 1038 
Extended 10 byte 0 hoặc có giá trị tuyệt đối nằm trong phạm 
vi từ 
10-4932 đến 104932 
kiểu kí tự: 
Kiểu Bộ nhớ lưu 
trữ 1 giá trị 
Phạm vi giá trị 
Char 1 byte 256 kí tự trong bộ mã ASCII 
kiểu logic: 
Kiểu Bộ nhớ lưu 
trữ 1 giá trị 
Phạm vi giá trị 
Boolean 1 byte True hoặc False 
 Ngoài ra, bên Free Pascal còn có thêm: INT64 phạm vi từ -263 đến 263-1; Qword 
phạm vi từ -264 đến 264-1; phần này dành cho dữ liệu với phậm vi rất lớn. 
– Các phép toán quan hệ (còn gọi là phép toán so sánh) 
TÊN VIẾT TRONG PASCAL 
Nhỏ hơn < 
Nhỏ hơn hoặc bằng < = 
 ”Đề tài: “Một số biện pháp tăng cường năng lực lập trình Pascal cho học sinh trường THCS Lương Thế Vinh” 
Người viết: Đinh Thị Thiên Nga Trường THCS Lương Thế Vinh Trang 10 
Lớn hơn > 
Lớn hơn hoặc bằng > = 
Bằng = 
Khác 
Các phép toán quan hệ cho giá trị kiểu logic: True hoặc False; được dung để so sánh 
và đưa ra quyết định hướng đi tiếp theo trong lập trình. 
– Các phép toán logic: 
TÊN VIẾT TRONG PASCAL 
Phủ định Not 
Hoặc Or 
Và And 
Các phép toán logic thường dung để kết hợp nhiều biểu thức quan hệ với nhau. 
 Biểu thức số học: 
– Là một dãy các phép toán +, -, *, /, Div, Mod từ các hằng, biến kiểu số và các 
hàm. 
– Dùng cặp dấu ( ) để quy định trình tự tính toán. 
Thứ tự thực hiện phép toán: 
– Trong ngoặc trước, ngoài ngoặc sau. 
– Nhân chia trước cộng trừ sau. 
– Giá trị của biểu thức có kiểu là kiểu của biến hoặc hằng có miền giá trị lớn nhất 
trong biểu thức. 
Một số câu lệnh cần nắm khi lập trình Pascal: 
Lệnh xuất dữ liệu 
 Write(‘dữ liệu’); In dữ liệu ra màn hình và con trỏ nằm liền kề. 
 ”Đề tài: “Một số biện pháp tăng cường năng lực lập trình Pascal cho học sinh trường THCS Lương Thế Vinh” 
Người viết: Đinh Thị Thiên Nga Trường THCS Lương Thế Vinh Trang 11 
 Writeln(‘dữ liệu’); 
 Writeln(‘phép toán’); 
 Writeln(phép toán); 
 Writeln(biến); 
 Writeln(biến:m:n); 
 Writeln; 
Phân biệt lệnh write và writeln (lệnh viết ra màn hình). 
 Write(mục1,mục2,, mục n); 
 Viết ra các mục, không xuống dòng sau khi viết xong mục cuối cùng 
là mục n. 
Writeln(mục1,mục2,, mục n); 
 Viết ra các mục, sau đó đưa con trỏ xuống đầu dòng tiếp theo 
Giáo viên cần nhấn mạnh xuất dữ liệu và xuất giá trị của biểu thức, hay giá trị 
của biến,  
VÍ DỤ 1: 
VÍ DỤ 2: 
KẾT 
QUẢ
Lệnh nhập dữ liệu 
 Read(biến); 
 ”Đề tài: “Một số biện pháp tăng cường năng lực lập trình Pascal cho học sinh trường THCS Lương Thế Vinh” 
Người viết: Đinh Thị Thiên Nga Trường THCS Lương Thế Vinh Trang 12 
 Read(danh sách biến); 
 Readln(biến); 
 Readln(danh sách biến); 
 Readln; 
Phân biệt lệnh read và readln (Đọc dữ liệu nhập vào từ bàn phím). 
 Read(mục1,mục2,, mục n); 
 Readln(mục1,mục2,, mục n); 
Lệnh read và readln tương tự như lệnh write và lệnh writeln. 
Chú ý: Sử dụng biến trong chương trình: 
Biến là đại lượng dùng để lưu trữ dữ liệu, dữ liệu này có thể thay đổi trong khi 
thực hiện chương trình. 
- Dữ liệu do biến lưu trữ được gọi là giá trị của biến. 
Khai báo biến trong PASCAL 
Var : ; 
Trong Pascal, còn cung cấp một lệnh để gán giá trị cho biến khi nhập từ bàn 
phím. 
Cú pháp : Readln( Tên biến ); 
 Chương trình sẽ dừng lại chờ người sử dụng nhập vào giá trị từ bàn phím. 
Ví dụ minh họa làm quen với cách khai báo và sử dụng biến trong chương trình 
 Viết chương trình nhập vào một số nguyên. In ra màn hình số nguyên vừa 
nhập, in ra màn hình giá trị của số nguyên vừa nhập. 
 Var 
a:integer; 
 Begin 
 Write(‘Nhap mot so nguyen =’);Readln(a); 
 Writeln(‘Gia tri cua so nguyen vua nhap = ’,a); 
 Readln;end. 
Minh họa kết quả chạy 
 ”Đề tài: “Một số biện pháp tăng cường năng lực lập trình Pascal cho học sinh trường THCS Lương Thế Vinh” 
Người viết: Đinh Thị Thiên Nga Trường THCS Lương Thế Vinh Trang 13 
Tùy theo đối tượng học sinh mà giáo viên phân tích thêm phạm vi kiểu dữ liệu 
cho học sinh, nếu đối tượng học sinh yếu thì giáo viên mặc định kiểu số nguyên 
là khai báo kiểu Integer giống như sách giáo khoa thôi, không nên làm rối cho 
học sinh;Còn đối tượng học sinh khá, giỏi giáo viên giải thích thêm 
Ví dụ các bộ test chạy ở trên nếu vượt quá phạm vi thì kết quả không chính xác; 
Cần khai báo longint, INT64, Qword để khắc phục; và xử lí số nguyên rất lớn 
thì ta sẽ xét ở cấp bậc ôn thi các cấp thì giáo viên sẽ nói thêm cho học sinh ở 
các tiết học sau. 
Các hàm số học sử dụng cho kiểu số nguyên và số thực: 
 SQR(x): Trả về 2x 
 SQRT(x): Trả về căn bậc hai của x (x0) x 
 ABS(x): Trả về |x| 
 SIN(x): Trả về sin(x) theo radian 
 COS(x): Trả về cos(x) theo radian 
 ARCTAN(x): Trả về arctang(x) theo radian 
 TRUNC(x): Trả về số nguyên gần với x nhất nhưng bé hơn x. 
 INT(x): Trả về phần nguyên của x 
 FRAC(x): Trả về phần thập phân của x 
 ROUND(x): Làm tròn số nguyên x 
Câu lệnh gán 
Cú pháp: Tên biến := biểu thức cần gán giá trị cho biến; 
Các câu lệnh có cấu trúc 
 If .. then else 
- Câu lệnh điều kiện dạng thiếu: 
Cú pháp: IF THEN ; 
Hoạt động: Nếu điều kiện được thoả mãn thì chương trình thực hiện câu lệnh sau 
THEN. Ngược lại câu lệnh sau THEN bị bỏ qua. 
- Câu lệnh điều kiện dạng đủ. 
Cú pháp: IF THEN 
 ”Đề tài: “Một số biện pháp tăng cường năng lực lập trình Pascal cho học sinh trường THCS Lương Thế Vinh” 
Người viết: Đinh Thị Thiên Nga Trường THCS Lương Thế Vinh Trang 14 
 ELSE ; 
Hoạt động: Nếu điều kiện được thoả mãn thì được thực hiện. 
Ngược lại thì được thực hiện. 
Sơ đồ cấu trúc rẽ nhánh dạng thiếu minh họa cho câu điều kiện dạng thiếu và 
câu lệnh điều kiện dạng đủ. 
Ví dụ: Viết chương trình nhập vào một số tự nhiên, kiểm tra số vừa nhập là số chẵn 
hay là số lẻ. 
Chương trình: 
 Var 
 a: integer; 
 Begin 
 Write(‘Nhap vao mot so tu nhien: ‘);Readln(a); 
 If (a mod 2 = 0) then writeln(a, ‘la so chan’) 
 Else write(a, ‘la so le’); 
 Readln; 
 End. 
 For  to ...do (Phần này yêu cầu học sinh phải nắm vững cú pháp và 
hoạt động của câu lệnh lặp). 
Trong đó: 
 ”Đề tài: “Một số biện pháp tăng cường năng lực lập trình Pascal cho học sinh trường THCS Lương Thế Vinh” 
Người viết: Đinh Thị Thiên Nga Trường THCS Lương Thế Vinh Trang 15 
 là một tên biến. 
 , , phải cùng kiểu dữ liệu và 
đó phải là kiểu rời rạc (Kiểu số nguyên: integer, longint; kiểu kí tự: 
char, ). Giá trị đầu phải nhỏ hơn hoặc bằng giá trị cuối. 
 Câu lệnh có thể là câu lệnh đơn, câu lệnh ghép, câu lệnh điều kiện 
if then  hoặc câu lệnh lặp,  
hoạt động của câu lệnh: (for  to  do  dạng tiến) 
 Đầu tiên được gán cho , câu lệnh sau Do sẽ 
được thực hiện, sau mỗi vòng lặp biến đếm tự động tăng thêm 1 đơn vị. Đến 
khi = ) thì câu lệnh sau Do được thực hiện lần 
cuối cùng và câu lệnh For to do  chấm dứt. 
Ví dụ: minh họa vòng lặp for  to do 
Chú ý 
Biến ở 
đây 
chính 
là biến 
đếm 
 ”Đề tài: “Một số biện pháp tăng cường năng lực lập trình Pascal cho học sinh trường THCS Lương Thế Vinh” 
Người viết: Đinh Thị Thiên Nga Trường THCS Lương Thế Vinh Trang 16 
Tuỳ theo đối tượng học sinh trên lớp mà giáo viên giới thiệu thêm câu lệnh lặp với 
số lần biết trước dạng lùi. 
For := Downto do <Câu lệnh 
 While do . (repeat until) 
Câu lệnh lặp với số lần chưa biết trước (while ... do...). 
 Cú pháp: While do ; 
Bước 1. Máy tính xác định giá trị của điều kiện. 
Bước 2. Tuỳ thuộc vào giá trị của điều kiện: 
 - Nếu điều kiện có giá trị đúng, máy tính sẽ thực hiện câu lệnh 
sau đó quay lại bước 1. 
 - Nếu điều kiện có giá trị sai, câu lệnh sẽ bị bỏ qua và việc thực 
hiện lệnh lặp kết thúc. 
Sơ đồ minh họa câu lệnh lặp với số lần không xác định 
 ”Đề tài: “Một số biện pháp tăng cường năng lực lập trình Pascal cho học sinh trường THCS Lương Thế Vinh” 
Người viết: Đinh Thị Thiên Nga Trường THCS Lương Thế Vinh Trang 17 
Câu lệnh lặp với số lần chưa biết trước (repeat ... until...) 
Cú pháp: 
 Repeat 
 Câu lệnh 1; 
 Câu lệnh 2; 
 . 
 Câu lệnh n; 
 Until (điều kiện); 
Hoạt động: 
Các câu lệnh giữa repeat và until sẽ được lặp lại nhiều lần khi nào 
điều kiện sai, nếu điều kiện đúng thì ngưng (ngược với vòng lặp while). Đối 
với lệnh này điều kiện sẽ được kiểm tra sau khi thực hiện các lệnh giữa 
repeat và until nên ít nhất các lệnh sẽ được thực hiện trước 1 lần rồi mới 
kiểm tra điều kiện đúng hay sai (nếu sai thì thực hiện tiếp vòng lặp, đúng thì 
ngưng). 
SƠ ĐỒ MINH HỌA CÂU LỆNH LẶP REPEAT  UNTIL. 
 ”Đề tài: “Một số biện pháp tăng cường năng lực lập trình Pascal cho học sinh trường THCS Lương Thế Vinh” 
Người viết: Đinh Thị Thiên Nga Trường THCS Lương Thế Vinh Trang 18 
Bài toán minh họa: Viết chương trình nhập vào độ dài ba cạnh của một tam giác 
(có ràng buộc điều kiện về dữ liệu nhập vào). Tính chu vi của hình tam giác tương 
ứng. 
 var a,b,c:integer; 
begin 
 repeat 
 repeat 
 write('Nhap a,b,c :'); 
 read(a,b,c); 
 until (a>0) and (b>0) and (c>0); 
 until (a+b>c) and (a+c>b) and (b+c>a); 
 writeln; 
 writeln('Chu vi tam giac la:', a+b+c); 
 readln; 
end. 
So sánh hai câu lệnh while do và repeat  until. 
 ”Đề tài: “Một số biện pháp tăng cường năng lực lập trình Pascal cho học sinh trường THCS Lương Thế Vinh” 
Người viết: Đinh Thị Thiên Nga Trường THCS Lương Thế Vinh Trang 19 
Ví dụ minh họa hai vòng lặp while do và repeatuntil áp 
dụng viết chương trình tính tổng s=1+2+3++n. (n là một số nguyên được 
nhập từ bàn phím). 
 Làm việc với dãy số .(var A:array[chỉ số đầu .. chỉ số cuối] of kiểu dữ 
liệu;). 
- Nhập dữ liệu cho một mảng a gồm n phần tử 
 ”Đề tài: “Một số biện pháp tăng cường năng lực lập trình Pascal cho học sinh trường THCS Lương Thế Vinh” 
Người viết: Đinh Thị Thiên Nga Trường THCS Lương Thế Vinh Trang 20 
For i:=1 to n do 
 Begin 
 Write(‘a[‘,I,’]=’); 
 Readln(a[i]); 
 End; 
- Truy cập đến một phần tử của mảng a: a[chỉ số phần tử]; 
Bài tập minh họa cho phần dãy số: Viết chương trình nhập vào một mảng n số 
nguyên ( 6<n<50) 
a) In ra màn hình các số có trong mảng 
b) In ra màn hình tổng các số âm có trong mảng. 
c) In ra màn hình số lớn nhất của mảng. 
Chương trình. 
 Var 
 A:array[1..55] of integer; 
 K,n,s,max:integer; 
 Begin 
 repeat 
 Write(“nhap so phan tu cua mang’); 
 Readln(n); 
 Until (n6); 
 For k:=1 to n do 
 Begin 
 Write(‘a[‘,k,’]=); 
 Readln(a[k]); 
 End; 
 Writeln(‘----------- cau a ----------‘); 
 Writeln(‘Cac so co trong day: ‘); 
 For k:=1 to n do write(a[k], ‘ ‘); 
 Writeln(‘ -----------cau b ------------‘); 
 S:=0; 
 For k:=1 to n do 
 If (a[k] mod 2 0) then s:=s+a[k]; 
 ”Đề tài: “Một số biện pháp tăng cường năng lực lập trình Pascal cho học sinh trường THCS Lương Thế Vinh” 
Người viết: Đinh Thị Thiên Nga Trường THCS Lương Thế Vinh Trang 21 
 Writeln(‘Tong cac so am = ‘,s); 
 Writeln(‘ --------- cau c ----------------‘); 
 Max:=a[1]; 
 For k:=2 to n do 
 If (max <a[k]) then max:=a[k]; 
 Writeln(‘So lon nhat cua day =’,max); 
 Readln; 
 End. 
Chú ý: Nếu đề bài yêu cầu nhập vào một dãy n số nguyên dương thì trong ta 
thêm repeat  until như sau: 
 For k:=1 to n do 
 repeat 
 Write(‘a[‘,k,’]=); 
 Readln(a[k]); 
Until (a[k]>0); 
Phân dạng bài tập của học sinh theo chủ đề, giúp học sinh dễ dàng tiếp thu 
kiến thức và đào sâu kĩ năng giải quyết vấn đề. 
DẠNG : Vận dụng các phép toán +, -, *, /, Div, Mod để giải các bài toán cơ 
bản. 
Bài toán 1:Viết chương trình tính 
Bài toán 2: Nhập vào 1 số tự nhiên có 4 chữ số. In ra màn hình tổng các chữ số có 
trong dãy 
Chú ý: Các bài toán này học sinh tự làm, giáo viên đánh giá và hướng dẫn thêm 
(nếu học sinh có lỗi sai). 
 Bài Toán 3: Đổi 11890 giây ra ?giờ ?phút ?giây? 
Chương trình: 
 Begin 
 Writeln(‘11890giay = ’,11890 div 3600,’ gio’,(11890 mod 3600) div 
60, ‘phut’, (11890 mod 3600) mod 60, ‘giay’); end. 
Chú ý: Giáo viên yêu cầu học sinh gán số 11890 cho biến a nào đó để việc lập trình 
đơn giản hơn. 
6
2
3
5 12
21
19 5



 ”Đề tài: “Một số biện pháp tăng cường năng lực lập trình Pascal cho học sinh trường THCS Lương Thế Vinh” 
Người viết: Đinh Thị Thiên Nga Trường THCS Lương Thế Vinh Trang 22 
Dạng bài tập liên quan đến sử dụng biến cơ bản (Giúp học sinh làm quen với 
cách khai báo và sử dụng biến trong chương trình). 
Bài toán . Viết chương trình tính diện tích hình vuông với độ dài cạnh được nhập 
từ bàn phím. 
Chương trình 
 Var 
 a,s:real; 
 Begin 
 repeat 
 Write(‘Nhap do dai canh hinh vuong = ‘); 
 Readln(a); 
 Until (a>0); 
 S:=a*a; 
 Writeln(‘Dien tích hinh vuong= ‘,s:10:2); 
 Readln;End. 
Dạng bài tập sử dụng câu lệnh if  then 
Giáo viên yêu cầu học sinh làm một số dạng toán khác về câu lệnh điều kiện 
If  then  else như nhập vào một số tự nhiên, kiểm tra xem số vừa nhập có phải 
là bội của 91 hay không? (a mod 91 =0; a la bội của 91), a có phải là ước của 91 hay 
không? (91 mod a =0; a là ước của 91); Nhập vào hai số tự nhiên, kiểm tra xem số 
này có phải là bội của số kia hay không?  
 Hay bài toán Nhập vào độ dài 3 cạnh một giác, kiểm tra xem ba có phải là 
ba cạnh của một tam giác hay không? Nếu phải thì kiểm tra xem tam giác đó có 
phải là tam giác vuông, tam giác cân, tam giác đều hay không? (Đề bài chưa yêu 
cầu kiểm tra dữ liệu nhập vào, xem như độ dài nhập vào luôn đúng). 
Gv cho học sinh tích đề, rồi tìm ra thuật toán của chương trình 
- Dựa vào bất đẳng thức trong tam giác: “trong một tam giác tổng hai 
cạnh bất kì luôn lớn hơn độ dài cạnh còn lại” để kiểm tra ba cạnh vừa 
nhập có phải là 3 cạnh của một tam giác hay không? (a> b+c) and 
(b>a+c) and (c>b+a). 
- Kiểm tra tam giác đều bằng cách xem 3 cạnh có bằng nhau hết hay 
không? (a=b=c; “(a=b) and (b=c) and (a=c)”). Nếu không bằng nhau 
thì xuống kiểm tra tam giác cân? 
 ”Đề tài: “Một số biện pháp tăng cường năng lực lập trình Pascal cho học sinh trường THCS Lương Thế Vinh” 
Người viết: Đinh Thị Thiên Nga Trường THCS Lương Thế Vinh Trang 23 
- Kiểm tra xem tam giác cân bằng cách xem có hai cạnh nà bằng nhau 
hay không? (a=b) or (a=c) or (b=c). Nếu không phải là tam giác cân 
thì xuống kiểm tra tam giác vuông? 
- Kiểm tra tam giác vuông (dựa vào định lí: Pitago): (a*a=b*b+c*c) or 
(b*b=a*a+c*c) or (c*c=a*a+b*b). 
dạng bài này sử dụng nhiều lệnh if  then lồng nhau. 
Dạng bài tập sử dụng câu lệnh lặp for to.. do.. 
Bài toán : Viết chương trình tính tổng s = 52 + 62 + ... + 192 (n được nhập từ bàn 
phím). 
Nhận xét. Trong biểu thức tính tổng trên, số hạng thứ i của tổng có thể được 
tính theo công thức S(i) = i*i (i=5,6,...,19). 
Chương trình được viết như sau: 
Var 
S,i:integer; 
Begin 
S:=0; 
For i:=5 to 19 do s:=s +i*i; 
Writeln(‘Tong =’,s); 
Readln;End. 
Một số bài tập khác, tuỳ theo đối tượng học sinh của mình mà giáo viên yêu cầu học 
sinh làm cho phù hợp. 
1. S=1+2-3+4-5+-n (n là số lẻ ; n>=3). 
2. S = n! = 1*2*...*n {n giai thừa} 
3. S= 1 + x + x2/2! + x3/3! + ... + xn/n! 
Chú ý: Giáo viên cho học sinh về nhà làm những bài tập trên, có chỗ nào chưa hiểu 
thì giáo viên hướng dẫn sau. 
Dạng bài tập sử dụng câu lệnh while do 
Bài toán 1: Viết chương trình tính tổng ( yêu cầu không sử dụng câu lệnh lặp for  
to do..). 
S = 12 + 13 +  + 59 
Cách 1. Dùng lệnh while  do  
Var 
 S,i: integer; 
begin 
 ”Đề tài: “Một số biện pháp tăng cường năng lực lập trình Pascal cho học sinh trường THCS Lương Thế Vinh” 
Người viết: Đinh Thị Thiên Nga Trường THCS Lương Thế Vinh Trang 24 
 s:=0; 
 i:=12; 
 while (i<=59) do 
 begin 
 s:=s+i; 
 i:=i+1; 
 end; 
 writeln(‘Tong =’, s); 
 readln;end. 
Cách 2. Dùng lệnh repeat  until 
Var 
 S,i:integer; 
begin 
 s:=0; i:=12; 
 repeat 
 s:=s+i; 
 i:=i+1; 
 until (i>59); 
 write(‘Tong =’,s); 
 readln;end. 
Bài toán 2: Viết tìm n bé nhất sao cho 
 tổng s>4 
Nhận xét: 
 - Trong biểu thức trên, số hạng thứ i của tổng có thể tính được theo 
công thức S(i) = 1/ i với (i=1,2,...,n). 
- Điều kiện để dừng vòng lặp là tổng S phải lớn hơn 4 
Var i : Integer; S:Real; 
Begin 
 S:=0; i:=0; 
 While (S < =4) do 
 Begin 
1 1 1
1 ...
2 3
S
n
   
 ”Đề tài: “Một số biện pháp tăng cường năng lực lập trình Pascal cho học sinh trường THCS Lương Thế Vinh” 
Người viết: Đinh Thị Thiên Nga Trường THCS Lương Thế Vinh Trang 25 
 i := i + 1; 
 S := S + 1/i ; 
 End; 
 Writeln( ' n be nhat =’,i); 
 Readln;End. 
Dạng bài tập về mảng 
- Nhập xuất mảng, tính toán với các phần tử của mảng, sắp xếp mảng, 
đếm các phần tử của mảng, tìm kiếm phần tử trong mảng, số chính 
phương và số nguyên tố trong mảng, , ghép mảng. 
Bài toán : Viết chương trình nhập vào một dãy số nguyên gồm n phần tử. 
a) Sắp xếp mảng theo thứ tự tăng dần 
b) In ra màn hình các số chính phương có trong mảng. 
c) In ra màn hình các số nguyên tố có trong mảng. 
(Giáo viên chú ý cho học sinh, Bài này nếu dùng chương trình con thì việc giải 
quyết bài toán sẽ gọn hơn; tuy nhiên cho đến thời điểm hiện tại thì ta sẽ giải quyết 
bài toán bằng những kiến thức cơ sở đã học; Ở những tiết ôn luyện về sau ta sẽ sử 
dụng chương trình con để làm). 
Chương trình được viết như sau: 
 Var a:array[1..100] of INT64; 
 n,i,j,kt:integer; 
 begin 
 write(‘nhap so phan tu cua mang n =’);readln(n); 
 for i:=1 to n do 
 begin 
 write(‘a[‘i,’]=’); 
 readln(a[i]); 
 end; 
 writeln(‘------------cau a ------------------‘); 
 for i:=1 to (n-1) do 
 for j:=i+1 to n do 
 If (a[i]>a[j]) then 
 Begin 
 Tam:=a[i]; 
 ”Đề tài: “Một số biện pháp tăng cường năng lực lập trình Pascal cho học sinh trường THCS Lương Thế Vinh” 
Người viết: Đinh Thị Thiên Nga Trường THCS Lương Thế Vinh Trang 26 
 A[i]:=a[j]; 
 A[j]:=tam; 
 End; 
 Writeln(‘Day so duoc sap xep theo thu tu tang dan: ‘); 
 For i:=1 to n do write(a[i],’ ‘); 
 Writeln; 
 Writeln(‘ --------- cau b -----------------‘); 
 Writeln(‘Cac so nguyen to co trong day: ‘); 
 For i:=1 to n do 
 Begin 
 Kt:=0; 
 For j:=2 to trunc(sqrt(a[i]) ) do 
 If (a[i] mod j = 0) then kt:=1; 
 If (kt =0) then write(a[i],’ ‘); 
 End; 
 Writeln; 
 Writeln(‘-----------------cau c -------------------‘); 
 Writeln(‘Cac so chinh phuong co trong day: ‘); 
 For i:=1 to n do 
 For j:=1 to (trunc(sqrt(a[i]) +1) do 
 If (j*j = a[i]) then write(a[i], ‘ ‘); 
 Readln; 
 End. 
Tuỳ theo đối tượng học sinh giáo viên cho thêm một số bài toán tựơng tự và một số 
dạng toán về mảng nữa. Ví dụ như: Cho một mảng số nguyên n phần tử (n<30). 
Tìm dãy con m phần tử(m<n) sao cho dãy con này có tổng lớn nhất. 
Giáo viên hướng dẫn sơ ý tưởng thuật toán: 
- K:=1; {Vị trí phần tử đầu tiên củ

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

  • pdfsang_kien_kinh_nghiem_mot_so_bien_phap_tang_cuong_nang_luc_l.pdf