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.
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 (x0) 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: