1. Trang chủ
  2. » Trung học cơ sở - phổ thông

SKKN sử dụng Pascal để viết phần mềm trắc nghiệm nhằm khơi gợi đam mê học lập trình cho học sinh 11

20 207 3

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 20
Dung lượng 245 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Sáng kiến kinh nghiệm Tin học 11 “Sử dụng ngôn ngữ lập trình Pascal để viết phần mềm trắc nghiệm nhằm khơi gợi đam mê học lập trình cho học sinh lớp 11”. Hi vọng đề tài này sẽ góp phần tạo hứng thú cho HS lớp 11 và là một tài liệu tham khảo để cho các em HS yêu thích lập trình nghiên cứu.

Trang 1

A ĐẶT VẤN ĐỀ

Trong xã hội ngày nay, hẳn con người không còn cảm thấy lạ lẫm khi nhắc đến những chú robot có khả năng làm việc nhà, những hệ thống máy bán hàng tự động, hay những trò chơi game được lập trình giúp con người giải trí,… tất cả những ứng dụng trên đều được tạo ra sau một quá trình học tập nghiên cứu không ngừng nghỉ của các chuyên gia sáng chế, các nhà lập trình tài ba Trong một tương lai không xa các ứng dụng sẽ còn được phát triển nhiều về số lượng và chất lượng giúp cải thiện cuộc

sống của loài người Việc đưa bộ môn lập trình vào giảng dạy trong nhà trường

THPT là một nhu cầu tất yếu và thực sự cần thiết, đón đầu những yêu cầu của thực tiễn trong kỉ nguyên thông tin, trong xã hội tự động hóa Học lập trình góp phần phát triển tuy duy sáng tạo, rèn luyện tính cẩn thận tính chính xác cho người học; đồng thời việc học lập trình ngay từ THPT góp phần phát hiện tài năng, định hướng nghề nghiệp cho HS trước khi lựa chọn ngành nghề, bổ sung nguồn nhân lực tin học cho một xã hội công nghệ thông tin

Trong rất nhiều loại ngôn ngữ lập trình thì Pascal là loại ngôn ngữ được đánh giá

là ngôn ngữ nền tảng của các ngôn ngữ khác Pascal là ngôn ngữ lập trình do Niklaus Wirth – giáo sư điện toán trường Đại học kĩ thuật Zurich (Thụy Sĩ) sáng chế và được phát triển vào năm 1970 Đây là ngôn ngữ lập trình có cấu trúc đơn giản, rõ ràng, cấu trúc chặt chẽ Do đó Pascal được nhiều nước trên thế giới trong đó có Việt Nam lựa chọn đưa vào chương trình giảng dạy Tin học ở trường THPT và Đại học như một môn học đại cương

Khi học bất cứ một môn học nào cũng cần có và nên có đam mê Đối với một

học khô khan, đòi hỏi tư duy và tính chính xác đến từng dấu chấm, dấu phẩy như môn lập trình thì sẽ thật khó nhớ, khó tiếp thu nếu không có niềm đam mê

“Học đi đôi với hành.” Với bất cứ môn học nào, người học cũng luôn mong muốn được thực hành, thực nghiệm sau những kiến thức mà mình lĩnh hội được Đối với Tin học lập trình, người học mong muốn được tận mắt nhìn và thao tác với những ứng dụng mà chương trình học có thể tạo ra, hay mong muốn được tự mình sáng tạo

viết nên những phần mềm ứng dụng vào thực tiễn.

Từ những lí do trên tôi đã mày mò nghiên cứu viết thành công phần mềm trắc nghiệm được viết hoàn toàn bằng NNLT Pascal Tôi cũng đã cố gắng chỉ sử dụng những kiến thức cơ bản được giới thiệu ở sgk để HS thấy gần gũi, dễ hiểu, qua đây các em có thể nhận thấy rằng chỉ cần cố gắng bản thân các em cũng có thể tự tạo ra được những phần mềm tương tự như vậy, các em có thể chứng tỏ khả năng của mình,

Trang 2

từ đó các em sẽ thêm yêu thích môn học này, ham học hỏi, sáng tạo và chiếm lĩnh tri thức

Bằng một số kinh nghiệm đúc rút được trong quá trình nghiên cứu phần mềm tôi

xin trình bày thông qua sáng kiến kinh nghiệm: “Sử dụng ngôn ngữ lập trình Pascal

để viết phần mềm trắc nghiệm nhằm khơi gợi đam mê học lập trình cho học sinh lớp 11” Hi vọng đề tài này sẽ góp phần tạo hứng thú cho HS lớp 11 và là một tài liệu

tham khảo để cho các em HS yêu thích lập trình nghiên cứu

Trang 3

B NỘI DUNG NGHIÊN CỨU

I Cơ sở lí luận của vấn đề

Ngày nay với sự ra đời của nhiều loại NNLT thì việc tạo ra các phần mềm ứng dụng ngày càng dễ dàng hơn, nhiều tính năng hơn, đặc biệt là giao diện đẹp mắt hơn

Thực tế cho thấy, Pascal là loại NNLT chỉ thường được sử dụng để dạy học lập trình căn bản, đại cương, bởi loại ngôn ngữ này được đánh giá là có tính sư phạm cao, gần gũi, trong sáng Còn nếu dùng ngôn ngữ này để lập trình ứng dụng thì có vẻ không khả thi, và thực tế rất ít được sử dụng … Tuy nhiên cái gì cũng phải có điểm khởi đầu của nó Và việc học Pascal là một lựa chọn thông minh khi muốn bắt tay vào học lập trình Cú pháp của câu lệnh Pascal thường rõ ràng, gần gũi với ngôn ngữ tự nhiên Khi tìm hiều về NNLT, Pascal sẽ là công

cụ giúp người học triển khai thuật toán một cách tường minh và gần gũi nhất

II Thực trạng

Có một thực tế là HS rất thích thú khi được trải nghiệm cùng chiếc máy tính, hào hứng khi biết sẽ được học về NNLT – ngôn ngữ để viết nên các chương trình chạy được trên máy tính và ứng dụng vào đời sống Nhưng khi bắt tay vào học nội dung chương trình tin học 11 thì đa phần các em lại thấy rất nản Điều này cũng dễ hiểu bởi môn học lập trình cho đến nay vẫn được xem là môn học khó đòi hỏi phải nhớ một số từ khóa bằng tiếng anh, phải tư duy thuật toán, nhớ chính xác cú pháp lệnh đến từng dấu chấm, dấu phẩy… Việc không hiểu bản chất lệnh, không nắm kiến thức bài học lâu dần sẽ làm HS hổng những kiến thức căn bản, và rồi HS sẽ thấy nản, dẫn đến thấy sợ môn học lập trình này là điều khó tránh khỏi

Vậy nên vấn đề đặt ra là làm thế nào để tạo hứng thú cho HS trong khi học lập trình Theo tôi thay vì bắt HS nhớ những đoạn lệnh khô khan, vô hồn thì ta nên gắn kết các đoạn lệnh lại vào những chương trình cụ thể có tính ứng dụng trong thực tế Khi HS được tận mắt chứng kiến, tận tay thao tác với những ứng dụng đó HS sẽ mong muốn được tìm hiểu cái cốt lõi tạo nên ứng dụng – đó chính là code của phần mềm Từ đó HS sẽ hiểu hơn bản chất, vai trò của việc

Trang 4

lập trình trong quá trình tạo phần mềm, dễ nhớ, dễ tiếp thu hơn những kiến thức lập trình mà mình lĩnh hội được

III Giải pháp và tổ chức thực hiện

Để khơi gợi đam mê cho HS, và để chứng tỏ khả năng có thể làm được

NNLT của Pascal, tôi đã viết một phần mềm trắc nghiệm Vì mục đích chính

của tôi là để tạo đam mê, kích thích sáng tạo cho HS nên tôi chỉ sử dụng kiến thức căn bản trong SGK Tin 11 Do đó phần mềm này có thể chưa đáp ứng được những yêu cầu về mĩ thuật, tuy nhiên nó hoàn toàn đáp ứng được các yêu cầu

mà một phần mềm trắc nghiệm cần có (như trộn đề, nhận xét đúng sai, chấm điểm…)

Sau đây tôi xin giới thiệu một vài nét chính về phần mềm:

1 Giao diện phần mềm trắc nghiệm

H1: In ra lời giới thiệu và thông báo cho phép GV nhập số câu hỏi

H2: Sau khi GV nhập số câu hỏi, phần mềm thông báo nhập tên HS

Trang 5

H3: Sau khi nhập tên, câu hỏi 1 được in ra, cho phép HS lựa chọn dáp án

H4: Sau khi HS lựa chọn phương án phần mềm đưa ra nhận xét

Trang 6

H5: Thông báo và cho phép nhập lại nếu HS lựa chọn sai yêu cầu

H6: Tổng kết, cho điểm và lưu lại kết quả vào tệp

2 Tính năng

- Phần mềm cho phép GV chọn số câu hỏi kiểm tra để phù hợp với thời gian và đối tượng cần kiểm tra

- Khả năng trộn đề linh hoạt: sau khi chọn số câu hỏi Chương trình sẽ tự động chọn ra các câu hỏi một cách ngẫu nhiên trong ngân hàng câu hỏi được lưu trong tệp

“hoi.txt”;

Trang 7

- Phần mềm sẽ in ra thông báo và cho phép nhập lại nếu thí sinh lựa chọn phương

án sai quy định (đáp án câu hỏi trắc nghiệm là A, B, C hoặc D)

- Sau khi trả lời hết các câu hỏi , chương trình sẽ tổng hợp các câu hỏi đúng và đưa ra số điểm tương ứng với thang điểm tối da 10

- Phần mềm cho phép lưu lại thông tin : điểm số, số câu trả lời đúng/ tổng số câu,

và tên HS vào tệp <tên HS> Txt

- GV có thể thay đổi nội dung ngân hàng đề bằng cách thay đổi nội dung của tệp

“hoi.txt” hoặc thay đổi đường dẫn đến tệp mới chứa câu hỏi (xem hướng dẫn sử dụng)

- Phần mềm được đóng gói (bao gồm file setup, file chứa câu hỏi, và file chứa đáp án) với dung lượng khá nhẹ GV có thể copy sử dụng được trên nhiều loại máy tính mà không cần cài đặt phần mềm Pascal

3 Hướng dẫn sử dụng phần mềm

3.1 Để kiểm tra trắc nghiệm, GV kích vào tệp chạy Tracnghiem.exe; giao diện phần mềm xuất hiện

+ GV nhập số câu hỏi và tên thí sính

+ Nội dung các câu hỏi sẽ lần lượt xuất hiện , thí sinh lựa chọn một trong 4 phương án A, B, C, D (không phân biệt chữ hoa chữ thường)

+ Sau mỗi phương án mà thí sinh chọn, phần mềm sẽ đưa ra nhận xét đúng/ sai + Sau khi trả lời hết số câu hỏi, phần mềm sẽ thông báo kết quả (bao gồm tổng hợp số câu đúng và tự động chấm điểm), kết quả được lưu vào tệp <tên HS> Txt VD: Tên HS được nhập là: “le thi ha” thì kết quả kiểm tra được lưu vào tệp “le thi ha.txt”

3.2 Để xem lại kết quả thi, GV mở tệp <tên HS>.txt xem nội dung

3.3 Để thay đổi nội dung câu hỏi GV mở tệp <hoi>.txt và chỉnh sửa; để thay đổi đáp án GV mở tệp <dap>.txt để chỉnh sửa

3.4 Để thay đổi bộ câu hỏi khác (tệp cũ không bị mất đi mà giữ lại để sử dụng cho lần khác) GV thực hiện

Trang 8

+ Mở code của phần mềm bằng cách nháy đúp vào file Tracnghiem.pas

+ Thay đổi dòng lệnh Assign(f, ‘hoi.txt’); thành tên mới

VD: Assign (Assign, ‘cau hoitienganh.inp’); với ‘cauhoitienganh.inp’ là tên tệp chứa ngân hàng câu hỏi cần sử dụng

Đồng thời thay đổi dòng lệnh Assign(f1, ‘dap.txt’) thanh dòng lệnh

Assign (f1, ‘dapantienganh.inp’); với ‘dapantienganh.inp’ là tên tệp chứa đáp án tương ứng

*Để sử dụng tính năng thay đổi câu hỏi 3.3 và 3.4 cần chú ý:

- Phải cài đặt (hoặc copy) phần mềm Pascal trong máy tính (có thể sử dụng Turbo Pascal 7.0 hoặc free Pascal)

- Phải có file chứa code chương trinh, đuôi pas: tức file tracnghiem.pas ở trên

- Nhấn lệnh Ctrl +F9 để chạy lại chương trình sau khi thay đổi tệp

- Để chương trình nhận biết điểm bắt đầu và kết thúc của 1 câu hỏi trắc nghiệm, trước mỗi câu hỏi lưu trong tệp “hoi.txt” cần gõ kí tự # (xem nội dung file hoi.txt)

4 Các thành phần chính

4.1 Code phần mềm (nội dung file tracnghiem.pas)

Program Tu_viet_PM_trac_nghiem;

uses crt;

var a:array[1 100]of byte; dd,d,K,i,n,j,x:byte;

s,c,ten, da:string; G,f,f1:text; diem:real; ch:char;

{ -}

Procedure gioithieu;

begin

for i:=1 to 80 do Write('*');

write('*');

for i:=2 to 10 do write(' ');

Write(' Tao phan mem trac nghiem bang ngon ngu Pascal Tai sao khong?');

gotoxy(80,2); write('*');

writeln;

for i:=1 to 80 do write('*');

end;

{ -}

BEGIN

clrscr;

Trang 9

gioithieu;

Write( 'GIAO VIEN NHAP SO CAU HOI CAN KIEM TRA:'); READLN(X);

WRITE('HOC SINH NHAP TEN:');READLN(TEN);

assign(f1,ten+'.txt');rewrite(f1);

for i:=1 to 20 do write(' ');

writeln('MOI BAN TRA LOI ',X,' CAU HOI SAU:');

{ -lay ngau nhien cac cau hoi:}

randomize;

for i:=1 to x do

a[i]:= random(19)+1;

for j:=1 to i-1 do

if a[i]= a[j] then a[i]:=random(19)+1;

assign(f,'hoi.txt');

ASSIGN(G,'DAP.TXT');

for i:=1 to x do

begin

{in cau thu i}

str(a[i], c);

writeln;

write('cau', i,':');

reset(f);

while not eof(f) do

begin

readln(f, s);

if s='#'+c then

begin

readln(f, s);

while s[1]<>'#' do begin writeln(s); readln(f, s); end;

break;

end;

end;

Trang 10

{ -xu li cau i -}

write ( 'Moi chon dap an:');readln(ch);

repeat

if (upcase(ch)<>'A') and (upcase(ch)<>'B') and (upcase(ch)<> 'C') and (upcase(ch)<>'D') then

begin

write( ' -ban chi duoc chon A, B, C, D');

write (' -moi chon lai');

readln(ch);

end;

until (upcase(ch)= 'A') or (upcase(ch)='B') or (upcase(ch)= 'C') or (upcase(ch)='D');

{ -so sanh cau tra loi voi dap an -}

reset(g);

for k:=1 to a[i] do readLN(g, da);

dd:=length(da);

if( UPCASE(ch)= UPCASE(da[dd])) then begin write(' -> chuc mung ban da tra loi dung');d:=d+1; end

ELSE WRITE(' -> rat tiec ban da tra loi sai');

WRITELN;

end; close(f); close(g);

Writeln('*********************************************************'); writeln('ban tra loi dung', d,' cau trong tong so', x ,'cau hoi ');

diem:= (10/x *d);

writeln('ban duoc', round(diem):6, ' diem');

{ghi KQ veo tep}

writeln(f1,'ban' ,Ten, ':');

writeln(f1,' Ban da tra loi dung', d,' cau trong tong so', x ,'cau hoi ');

writeln(f1,'ban duoc', round( diem):6, ' diem');

close(f1);

Trang 11

write('Thong tin diem cua ban da duoc luu lai ban hay mo tep ', ten,'.txt', 'de xem nhe');

readln;

END.

Để thuận tiện cho việc theo dõi, nội dung code phần mềm đã được tôi phân chia thành nhiều modun nhỏ, mỗi modun thường làm một nhiệm vụ, được tôi chú giải kèm theo

4.2 File ngân hàng câu hỏi: hoi.txt

Sau đây tôi đưa ra ví dụ về một ngân hàng đề được dùng để kiểm tra sau chương

V, VI sgk tin 11

Lưu ý: Để đánh dấu điểm bắt đầu và kết thúc một câu hỏi tôi dùng kí từ # trước mỗi câu hỏi

#1

Khai bao Ham trong Pascal bat dau bang tu khoa?

a Program

b Function

c Var

d Procedure

#2

Trong Pascal de khai bao bien tep f1 va f2 ta viet?

a Var f1, f2: tep;

b Var F1, f2: text;

c Var f1; f2: text;

d var f1+f2: text;

#3

Chuong trinh con co may loai?

a 1

b 2

c 3

d 4

#4

Chuong trinh con Thu tuc bat dau bang tu khoa

a Program

b Function

c Var

Trang 12

d Procedure

#5

De khai bao bien tep trong van ban ta su dung cu phap?

a Var <ten tep>: text;

b Var <ten bien tep>:text;

c Var <ten tep>: string;

d Var <ten bien tep>:<ten tep>;

#6

Chuong trinh con duoc ket thuc bang?

a End

b End.

c End;

d End!

#7

Cau truc chuong trinh con gom ?

a Phan dau

b Phan khai bao

c Phan than

d ca a, b va c

#8

Bien duoc khai nao trong chuong trinh con duoc goi la:

a Bien toan cuc

b Bien cuc bo

c Tham so hinh thuc

d Tham so thuc su

#9

Cau lenh cho phep mo tep F1 de doc co dang?

a Rewrite(F1)

b Reset(F1);

c Readln(F1);

d Readln(F1, <danh sach bien>);

#10

Bien duoc khai bao trong chuong trinh chinh duoc goi la?

a Bien toan cuc

b Bien cuc bo

Trang 13

c Tham so hinh thuc

d Tham so thuc su

#11

De gan bien tep F1 cho tep DL.txt ta su dung cu phap?

a F1:= 'DL.txt';

b 'DL.txt := F1;

c Assign(f1, 'DL.TXT');

d Assign('DL.TXT', f1);

#12

Thu tuc Close(f) co y nghia?

a Dong tep f1

b Mo tep f1 de doc du lieu

c Mo tep f1 de ghi du lieu

d Khai bao bien tep

#13

Vi tri con tro tep sau thu tuc Reset?

a Nam o dau tep

b Nam o cuoi tep

c Nam o giua tep

d Nam ngau nhien o bat ki vi tri nao

#14

Ham eof(F)cho gia tri true thi con tro tep nam o vi tri nao

a Dau dong

b Dau tep

c Cuoi dong

d Cuoi tep

#15

Trong Pascal, de dong tep ta dung thu tuc?

a Close(<ten bien tep>);

b Close(< ten tep>);

c Stop (<ten bien tep>);

d Exit(<ten bien tep>);

#16

Var G :text; co y nghia gi?

a Dong tep G

Trang 14

b Khai bao tep G

c Gan bien tep

d Mo tep

#17

Thu tuc Assign(<ten bien tep>, <ten tep>); co y nghia?

a Dong tep

b Khai bao tep

c Gan bien tep

d Mo tep

#18

Ham EOLN(G) cho gia tri true thi con tro tep nam o vi tri nao

a Dau dong

b Dau tep

c Cuoi dong

d Cuoi tep

#19

Trong Pascal, mo tep de ghi ta dung thu tuc?

a Rewrite(<ten bien tep>);

b Write(< ten tep>);

c Reset (<ten bien tep>);

d Readln(<ten bien tep>);

#20

Trong Pascal, de doc du lieu trong tep ta dung thu tuc?

a Rewrite(<ten bien tep>, <danh sach bien>);

b Write(< ten bien tep>,<danh sach bien));

c Reset (<ten bien tep>,<danh sach bien>);

d Read(<ten bien tep>,<danh sach bien>);

d Quang Linh

4.3 Đáp án lưu vào File : dap.txt

1b

2b

3b

4b

5a

6c

Trang 15

7a 8a 9b 10b 11a 12b 13b 14a 15a 16b 17a 18a 20a

*Để thuận tiện cho việc sử dụng, sau khi viết xong phần mềm tôi đã xuất thành tệp chạy exe

B1 Chọn Compile -> Detination Disk

B2 Compile ->Build

Tệp xuất ra có tên tracnghiem.exe

Do đó người sử dụng chỉ cần kích đúp vào tệp chạy này để giao tiếp với phần mềm mà không cần quan tâm đến mã nguồn

IV Vận dụng vào thực tiễn dạy học

Với mục đích khơi gợi đam mê học lập trình cho HS bằng việc sử dụng chính NNLT Pascal để viết một ứng dụng thực tiễn nên phần mềm Trắc nghiệm trên và mã nguồn của nó được tôi lồng ghép trong khá nhiều bài học của chương trình tin học 11

Cụ thể:

*Trong tiết 3 -Bài tập (trước khi chuyển sang chương II: Chương trình đơn giản) tôi dành một phần thời lượng nhỏ cuối tiết để củng cố kiến thức của bài 1 và 2 bằng chính phần mềm trắc nghiệm mà tôi đã viết HS được thao tác ứng dụng cụ thể với phần mềm này Sau đó tôi giới thiệu sơ bộ về mã nguồn của chương trình và loại ngôn ngữ xây dựng nên phần mềm chính là ngôn ngữ Pascal Đồng thời yêu cầu HS tự đọc tham khảo Bài đọc thêm số 2: Ngôn ngữ Pascal

Tác dụng: HS tận mắt được nhìn thấy một ứng dụng của ngôn ngữ Pascal và khả năng có thể làm được của Pascal, HS sẽ dễ dàng cảm thấy hứng thú hơn khi bắt tay vào học các bài học ở chương kế tiếp

Ngày đăng: 15/10/2019, 16:03

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w