Đăng ký Đăng nhập
Trang chủ Giáo án - Bài giảng Sáng kiến kinh nghiệm Skkn tin học tổ chức học và chấm bài qua internet ...

Tài liệu Skkn tin học tổ chức học và chấm bài qua internet

.DOC
29
3216
116

Mô tả:

SỞ GIÁO DỤC & ĐÀO TẠO NAM ĐỊNH TRƯỜNG THPT CHUYÊN LÊ HỒNG PHONG SÁNG KIẾN DỰ THI CẤP TỈNH BÁO CÁO SÁNG KIẾN TỔ CHỨC HỌC VÀ CHẤM BÀI QUA INTERNET Tác giả: Phạm Hồng Thanh Trình độ chuyên môn: Cử nhân Chức vụ: Tổ phó tổ Toán Tin Nơi công tác: Trường THPT chuyên Lê Hồng Phong Nam Định, ngày 19 tháng 05 năm 2016 2 1. TÊN SÁNG KIẾN: TỔ CHỨC HỌC VÀ CHẤM BÀI QUA INTERNET 2. LĨNH VỰC ÁP DỤNG SÁNG KIẾN: Tổ chức tự học và kiểm tra đánh giá cho học sinh. 3. THỜI GIAN ÁP DỤNG SÁNG KIẾN: Từ ngày 25 tháng 7 năm 2015 đến ngày 09 tháng 2 năm 2016 4. TÁC GIẢ: Họ và tên: Phạm Hồng Thanh Năm sinh: 1975 Nơi thường trú: 8/237 Hàn Thuyên, phường Vị Xuyên, TP Nam Định Trình độ chuyên môn: Cử nhân Chức vụ công tác: Tổ phó tổ Toán Tin Nơi làm việc: Trường THPT chuyên Lê Hồng Phong Điện thoại: 0915590781 Tỷ lệ đóng góp tạo ra sáng kiến: 100% 5. ĐỒNG TÁC GIẢ: Không 6. ĐƠN VỊ ÁP DỤNG SÁNG KIẾN: Tên đơn vị: Trường THPT chuyên Lê Hồng Phong. Địa chỉ: 76 Vị Xuyên, phường Vị Xuyên, TP Nam Định Điện thoại: 0 350 3640297 3 BÁO CÁO SÁNG KIẾN I. ĐIỀU KIỆN HOÀN CẢNH TẠO RA SÁNG KIẾN: Trải qua những năm dạy Tin học cho học sinh đội tuyển Tin học thi học sinh giỏi và chấm thi học sinh giỏi. Đặc thù của môn học là làm bài trên máy, chấm bài trên máy theo các test. Khi chấm bài cho nhiều học sinh, mỗi học sinh có một số bài nộp, mỗi bài chấm bằng nhiều test. Trước đây tôi đã viết chương trình chấm bài cho học sinh còn có một số hạn chế, nay tôi bổ sung và mở rộng phạm vi ứng dụng hơn. Điều thứ hai là: hiện nay công nghệ điện toán đám mây đã được áp dụng rộng rãi, việc tận dụng khả năng của công nghệ là cần thiết; tôi đã sử dụng tốt và chia sẻ cho các đồng nghiệp trong bộ môn và nhà trường cùng áp dụng. II. MÔ TẢ GIẢI PHÁP: 1. Mô tả giải pháp trước khi tạo sáng kiến: Trước đây tôi đã nghiên cứu và viết ra một chương trình chấm. Chương trình đó khi chấm vẫn cần nhập tên học sinh, thay đổi nhiều thông tin theo bài cần chấm và chưa phù hợp với cách lựa chọn ngôn ngữ lập trình của học sinh hiện nay. Khi chấm bài cho học sinh vẫn cần giáo viên có mặt trực tiếp hoặc phải hướng dẫn cho học sinh cách sử dụng chương trình và giải thích lỗi khó khăn. Tôi cũng đã tham khảo chương trình chấm THEMIS của các thầy giáo viết và dùng chấm thi học sinh giỏi Quốc gia, nhưng thường dùng cho kì thi là phù hợp. Nhưng để giúp phát hiện những lỗi của học sinh khi học thì phải viết thêm vào chương trình chấm, mà viết thêm phải chỉnh sửa theo yêu cầu của chương trình, không biết và thống kê lỗi của từng test để rút kinh nghiệm được. Trong quá trình giảng dạy các đối tượng học sinh, giáo viên thường phải in bài hay gửi bài qua thư cho học sinh,học sinh lại làm ngược lại khi muốn báo cáo kết quả. Việc trao đổi giữa giáo viên và học sinh vẫn bị động, bất tiện về việc cập nhật thông tin, không theo dõi được tình hình học sinh làm bài, học sinh làm bài bị phụ thuộc vào giáo viên chấm, nhận xét bài và thông báo cho học sinh. 2. Mô tả giải pháp sau khi có sáng kiến: * Tạo nơi học và làm việc online: Học sinh tham gia vào lớp học có thể nhận đề bài và yêu cầu từ phía giáo viên bất kì khi nào, bất kì ở đâu miễn là có kết nối internet. Học sinh có thể trao 4 đổi, đóng góp ý kiến của mình, nộp bài làm của mình và các chuyên đề được giao. Cách làm việc này áp dụng được cho cả các môn học khác. Công việc này có phân quyền cho từng học sinh, nơi nhận bài, nơi nộp bài làm để tránh học sinh khác nộp hộ hay nhầm lẫn. Tạo nơi làm việc trên internet có thể dùng các dịch vụ miễn phí được chia sẻ của Google (drive.google.com), Microsoft (onedrive.live.com), Dropbox (Dropbox.com), Box (Box.com), Youtube (Youtube.com), Mediafire, … Các dịch vụ này đều có chung các đặc điểm: 1. Dịch vụ lưu trữ trực tuyến dựa trên nền tảng điện toán đám mây. 2. Cung cấp các gói miễn phí và trả phí. 3. Cho phép tăng dung lượng lưu trữ miễn phí 4. Cho phép chia sẻ và cộng tác file 5. Hỗ trợ chế độ chia sẻ file công cộng và riêng tư 6. Cho phép lưu trữ nhiều loại file gồm cả các file ảnh và video 7. Cho phép mở các file trực tuyến 8. Hỗ trợ siêu liên kết trực tiếp (direct/hot link) 9. Cho phép đồng bộ hoá và sao lưu file 10.Mã hoá file trên dịch vụ 11.Lưu file trực tiếp vào tài khoản người dùng 12.Có phần mềm hỗ trợ đa nền tảng Ở đây tôi đã lựa chọn dịch vụ Box, Onedrive thấy có hiệu quả, phù hợp, đơn giản; qua đó tôi giới thiệu cho mọi người cùng sử dụng. Hai dịch vụ này (có thể dịch vụ khác cũng có nhưng không phải tất cả) chia sẻ, phân công việc cho người tham gia đơn giản, giao diện thân thiện. Onedrive có giao diện tiếng Việt. Phần hướng dẫn sử dụng ở trong phụ lục A. * Bổ sung vào bộ chương trình chấm trước đây: - Để đáp ứng với nhu cầu học tập, học sinh được học tập ở bất kì địa điểm nào, vào thời điểm nào miễn là có kết nối internet. Học sinh nhận yêu cầu làm việc, nộp kết quả làm bài vào đúng nơi được phép của giáo viên (ở phần tạo nơi học và làm việc online). Với một chiếc máy tính kết nối internet luôn bật (hay bật theo thời gian theo nhu cầu), hệ thống máy tính sẽ đồng bộ dữ liệu với nơi lưu trữ trên mạng (các dịch vụ đám mây). Có chương trình chấm bài tự động luôn chạy sẵn trong máy tính; tìm bài học sinh mới nộp; gọi đến chương trình chấm bài tương ứng và thực hiện chấm; ghi nhận kết quả của học sinh và trả kết 5 quả cho học sinh đã nộp bài; hệ thống lại đồng bộ lên internet và học sinh nhận được luôn kết quả của mình. - Trong chương trình chấm bài cho học sinh trước đây, tôi đã tổ chức lại chương trình chấm cũ để dễ bổ sung, sửa chữa hơn trước, đơn giản gộp trong tệp cấu hình chấm _sys.txt. Giáo viên xem kết quả chấm của bài trong tệp _ten_bai.txt tương ứng với bài làm yêu cầu và học sinh cũng nhận được phản hồi về tình hình bài làm của mình. Trong tệp cấu hình cho phép lựa chọn: + Chọn ngôn ngữ lập trình là Pascal hay C++ + Thay đổi bài chấm chuẩn (thường những bài yêu cầu cho biết kết quả, không cần phương án giải quyết) + Lựa chọn nơi nộp bài học sinh linh động và nơi lưu bài học sinh sau khi đã chấm. + Lựa chọn những test cần chấm riêng lẻ hay bỏ test tạm thời có lỗi. + Lựa chọn những test cần phân biệt bằng thời gian thực hiện và sử dụng bộ nhớ phù hợp (đặt thời gian thực hiện theo phần nghìn giây, giới hạn sử dụng bộ nhớ đến từng Kb để ngắt những chương trình của học sinh viết bị lặp vô hạn hay chưa tối ưu về thời gian, bộ nhớ). - Trong chương trình nguồn chấm bài có thể thay đổi cách thức thông báo lỗi linh động hay thay đổi cách thức chấm bài (người sử dụng cần biết cách thức sửa chương trình nguồn – mô tả thông qua ngôn ngữ lập trình Pascal). Hoặc không cần sửa chữa gì nếu yêu cầu của bài đơn giản. Phần bổ sung vào hệ thống chương trình cũ tôi nêu cụ thể trong phụ lục B. III. HIỆU QUẢ DO SÁNG KIẾN ĐEM LẠI: 1. Hiệu quả kinh tế: (Không đánh giá được) 2. Hiệu quả về mặt xã hội: Giảm bớt thời gian chấm bài của giáo viên khi muốn kiểm tra trình độ lập trình của học sinh, đánh giá đúng, công bằng và có thể còn ghi lại những lỗi trong các test mà học sinh mắc phải. Trong các năm áp dụng đều được cập nhật, bổ sung chức năng. + Có phần ghi biên bản chấm thi: kết quả điểm theo test, số test lỗi. + Ghi số lỗi theo từng test: để biết được tình hình bài làm. + Chạy các test ngắt quãng bất kì, do lỗi nào đó. + Thông báo ngay kết quả bài làm của học sinh nếu học, làm bài và nộp qua mạng LAN, WAN. Tạo hứng thú học tập cho học sinh. 6 Điều quan trọng nhất khi chấm bài là cần tạo ra bộ test “Tốt” sao cho có thể kiểm tra và đánh giá đúng được cách làm, trình độ của học sinh. Nếu ai cần tham khảo thì có thể liên hệ và trao đổi với tôi để hoàn thiện hơn. Đây là những điều tôi rút ra được từ thực tế giảng dạy cho học sinh lớp chuyên Tin học, bồi dưỡng thi học sinh giỏi Quốc gia môn Tin học, qua các kì thi của tỉnh. Cách chấm bài này áp dụng được cho nhiều đối tượng học sử dụng ngôn ngữ lập trình Pascal, C++; sử dụng trong các kỳ thi, kiểm tra, đánh giá học sinh. Kinh nghiệm này cần đem ra cho các đồng nghiệp sử dụng trong các đợt bồi dưỡng học sinh giỏi: cấp trung học phổ thông, trung học cơ sở, thi học sinh giỏi chọn đội tuyển tỉnh tham dự kì thi học sinh giỏi Quốc gia. IV. CAM KẾT KHÔNG SAO CHÉP HOẶC VI PHẠM BẢN QUYỀN Tôi xin cam đoan những điều tôi nêu trong bản báo cáo sáng kiến kinh nghiệm là do tôi đã độc lập nghĩ ra và áp dụng. Tôi không sao chép và vi phạm bản quyền của bất kỳ cá nhân hay tổ chức nào. Nếu cá nhân hay tổ chức nào phát hiện tôi có hành vi sai trái tôi xin chịu trách nhiệm hoàn toàn trước cơ quan pháp luật. CƠ QUAN ĐƠN VỊ ÁP DỤNG SÁNG KIẾN TÁC GIẢ SÁNG KIẾN Phạm Hồng Thanh 7 SỞ GIÁO DỤC VÀ ĐÀO TẠO NAM ĐỊNH (Xác nhâ nâ , đánh giá, xếp loại) 8 CÁC PHỤ LỤC - Phụ lục A: Cách tạo, sử dụng nơi học và làm việc online - Phụ lục B: Nâng cấp chương trình chấm bài Phụ lục A: Cách tạo, sử dụng nơi học và làm việc online Tôi sử dụng dịch vụ lưu trữ BOX miễn phí với người dùng cá nhân, tại địa chỉ https://www.box.com. Môi trường làm việc sử dụng ngôn ngữ tiếng Anh. (Một số dịch vụ khác có cho lựa chọn tiếng Việt) 1. Đăng kí tài khoản - Chọn Sign Up -> Personal Plans -> Free Sign Up (được 10Gb miễn phí) - Nhập thông tin: tên truy cập thông qua tên hòm thư; mật khẩu tự chọn; chọn Submit. Kiểm tra hòm thư để tiến hành kích hoạt tài khoản. 2. Đăng nhập: - Nhập địa chỉ thư và mật khẩu đúng đăng kí. 9 3. Tạo tổ chức dữ liệu: Giao diện làm việc minh họa. Có các nút lựa chọn cho các công việc - Tạo thư mục: Chọn nút New – Folder, nhập tên - Tải dữ liệu lên để lưu trữ: chọn nút Upload, tiến hành lựa chọn dữ liệu tại máy cá nhân. (Trợ giúp thao tác kéo – thả trực tiếp) - Tải dữ liệu về máy: chọn chuột phải vào đối tượng cần, chọn download ... Về thư muc Nút chọn Thư muc Tệp 3. Tạo đồng bộ dữ liệu trên máy tính: - Tải bộ cài đặt đồng bộ: Chọn danh sách ở nút thông tin cá nhân (góc trên bên phải), chọn get box sync, chọn loại tệp chương trình cài đặt phù hợp. (kích thước bộ cài đặt khoảng 30 Mb) - Chạy chương trình cài đặt đã tải về. Lựa chọn thông số phù hợp cho chương trình cài đặt. - Tiến hành đăng nhập vào chương trình, thay đổi thông tin về nơi để dữ liệu đồng bộ trên máy cá nhân (có tên thư mục là: Box sync trên ổ đĩa hệ thống) Từ bây giờ cứ có sự thay đổi dữ liệu trong thư mục Box sync, sẽ được cập nhật trên mạng và ngược lại. - Lựa chọn thư mục đồng bộ/ tắt đồng bộ: Chọn chuột phải, properties, sync to computer/unsync. Và còn nhiều chức năng khác, người sử dụng tự khám phá tiếp để sử dụng. 10 4. Mời cộng tác làm việc/ chia sẻ dữ liệu: - Mời cộng tác: chỉ những ai được mời, và cũng là thành viên của BOX (qua thư chia sẻ) mới sử dụng được Chọn chuột phải vào đối tượng, sharing, Invite Collaborator Nhập danh sách người cộng tác Cho phép người cộng tác sửa /chỉ xem - Hủy cộng tác: chọn tên phía bên phải cửa sổ, chọn hủy đi. - Chia sẻ: những ai có địa chỉ liên kết đều có thể: Chọn chuột phải vào đối tượng, sharing, share link. Tại đây ta có thể lựa chọn sao chép link, chuyển chia sẻ cho mọi người, hay hủy bỏ chia sẻ. Tôi đã sử dụng tổ chức trên BOX để giao công việc, chuyển tài liệu cho học sinh và học sinh gửi bài làm của mình online . Tổ chức: tạo theo đối tượng học sinh: lớp 10, 11, 12, đội tuyển. Trong mỗi đối tượng đều có mục tài liệu, nộp bài. Các tài liệu của từng đối tượng được tôi đưa vào phù hợp. Các mục tài liệu, dùng chia sẻ để lấy link (chỉ được xem thông tin hay tải về, tránh sai sót xóa nhầm, làm mất dữ liệu) và chuyển cho học sinh (rút gọn đường dẫn tôi dùng thêm trang tinyurl.com để thuận tiện). Mục nộp bài phải mời cộng tác và cho phép quyền sửa chữa để học sinh nộp bài đươc). 11 Tạo đồng bộ: tạo đồng bộ hết các mục để tiện chuyển giao tài liệu, lưu trữ tại máy và trên mạng tránh các sự cố có thể gây mất dữ liệu. Tạo đồng bộ dữ liệu, bật máy luôn online để chấm bài cho học sinh. Học sinh nộp bài và nhận kết quả chấm bài tại nơi mình đã nộp. 12 Phụ lục B: Nâng cấp chương trình chấm bài 1. Tạo chương trình chấm bài tự động * Giáo viên chủ động chạy chương trình này khi chấm bài cho học sinh, hoặc đưa vào chế độ chạy tự động khi bật máy tính. * Khi kết thúc chương trình, ta có thể biết được các bài đã chấm trong tệp cham_them.txt và những bài học sinh nộp chưa đúng do nộp sai tên bài trong tệp loichamtudong.txt. * Muốn xem kết quả chấm của từng bài cụ thể thì vào nơi chứa bài chấm, có các bộ test đặt sẵn, mở và xem trong tệp trùng tên bài đã chấm (bai_cham.txt). * Tên chương trình chấm của từng bài luôn để ngầm định _tudong.exe Nếu test của bài chỉ yêu cầu đưa ra 1 con số thì ta chỉ việc chép luôn tệp _tudong.exe, nếu muốn chấm theo các tình huống của tệp output thì cần chỉnh sửa tệp _tudong.pas. Program DIEU_KHIEN_CHAM_TU_DONG; Uses crt,dos; Const dc_ ='z:\'; { Nơi để bài chấm của học sinh; nếu nộp bài qua mạng cần định hướng phần làm việc của học sinh về đây, tạo đĩa ảo z:} Var dsbai_,dshs_:array[-2..300] of string[30]; dacham :array[1..300]of byte; sohs_,sobai_,baii_,hsi_,i,j:integer; f1,f:text; hs, bai, hscu, baicu, ngon_ngu, champas:string; cham1,cham2:boolean; {----------------------------------------------------} Procedure lay_dshs; {lấy danh sách học sinh tham gia vào bài học } var dirinfo:searchRec; i:integer; Begin sohs_:=-2; 13 fillchar(dacham,sizeof(dacham),0); Findfirst(DC_+'*',$10,dirinfo); while DosError=0 do Begin Inc(sohs_); dshs_[sohs_]:=dirinfo.name; Findnext(dirinfo); End; Writeln('danh sach co ',sohs_, ' hoc sinh'); End; {-----------------------------------} Procedure lay_dsbai(tenhs:string); {Lấy các bài học sinh đã nộp } var dirinfo:searchRec; i:integer; Begin sobai_:=0; Findfirst(DC_+tenhs+'\*.'+ngon_ngu,$3F,dirinfo); while DosError=0 do Begin Inc(sobai_); dsbai_[sobai_]:=dirinfo.name; Findnext(dirinfo); End; If sobai_>0 then Writeln('hoc sinh '+tenhs+' co ',sobai_, ' bai da nop'); End; {-------------------------------} Procedure chep_tep(nguon,dich:string); var fn,fd:text; st:string; Begin assign(fn,nguon); reset(fn); assign(fd,dich); rewrite(fd); while not seekeof(fn) do 14 {copy/xoa: tranh ten tep dai>8 } begin readln(fn,st); writeln(fd,st); end; close(fn); close(fd); end; {------------------------------------------} Procedure xoa_tep(tep:string); var f:text; begin assign(f,tep); erase(f); end; {--------------------------------------------} BEGIN hscu:=''; baicu:=''; LAY_DSHS; assign(f1,'chamthem.txt'); {$I-} reset(f1); {$I+} If ioresult<>0 then rewrite(f1) else append(f1); writeln(f1,' CHAM THEM '); close(f1); ngon_ngu:='pas'; repeat For i:=1 to sohs_ do Begin hs:=dshs_[i]; lay_dsbai(hs); If sobai_>0 then For j:=1 to sobai_ do Begin bai:=copy(dsbai_[j],1,length(dsbai_[j])-4); {lay ten tep} cham1:=true; cham2:=true; assign(f,bai+'\_tudong.exe'); 15 {$I-} reset(f); {$I+} If ioresult<>0 then cham1:=false; If cham1=false then begin assign(f,'_lam_xong\'+bai+'\_tudong.exe'); {$I-} reset(f); {$I+} If ioresult<>0 then cham2:=false; end; {Khi cho học sinh làm bài, nhưng giáo viên chưa có test hay học sinh nộp sai bài theo tên yêu cầu thì cần xử lí } If (cham1=false) and (cham2=false) then begin assign(f,'loichamtudong.txt'); {$I-} reset(f); {$I+} If ioresult<>0 then rewrite(f) else append(f); Writeln(f,hs:10,' nop bai: ',bai:10,' khong dung'); close(f); chep_tep(DC_+hs+'\'+bai+'.'+ngon_ngu,DC_+hs+'\'+bai+'.'+copy(ngon_ngu,1,2 )); xoa_tep(DC_+hs+'\'+bai+'.'+ngon_ngu); assign(f,dc_+hs+'\nopsai.txt'); {$I-} reset(f); {$I+} If ioresult<>0 then rewrite(f) else append(f); writeln(f,' nop sai bai: '+bai); close(f); end Else Begin close(f); If cham1 then chdir(bai) 16 else chdir('_lam_xong\'+bai); If ngon_ngu='pas' then champas:='auto ' else champas:='autoc '; SwapVectors; Exec('_tudong.exe',champas+hs); SwapVectors; If cham1 then chdir('..') else begin chdir('..'); chdir('..'); end; {$I-} reset(f1); {$I+} append(f1); writeln(f1,hs:10,bai:15); close(f1); {ghi nhận thêm bài đã chấm } end; End; End; If ngon_ngu='cpp' then ngon_ngu:='pas' else ngon_ngu:='cpp'; { có thể đưa thêm bài làm bằng ngôn ngữ lập trình khác, nhưng cần điều chỉnh phần dịch chương trình ở phần chương trình chấm bài cho phù hợp } until keypressed; END. 2. Bổ sung, chỉnh sửa chương trình chấm cũ - Phần khai báo chung cho chương trình. - Phần chấm một test. - Phần dịch bài của học sinh. - Phần điều khiển cho chạy các test, chấm điểm và ghi biên bản. - Phần điểu khiển chấm bài tự động hay bán tự động. 2.1 Phần khai báo chung: * Tệp cấu hình bài chấm: _sys.txt 17 Cải tiến lần này dùng chấm bài bằng ngôn ngữ lập trình Pascal, hay C++: cần có tệp FPC.EXE hoặc G++.EXE và cần cấu hình đúng cho bộ dịch để nhận được các thư viện có sẵn (đối với bộ dịch C++ cần sửa phần biến môi trường PATH thêm nơi chứa tệp G++, tôi thường đặt thêm “d:\cpp\bin\G+ +.exe” bai =ten { sửa thành tên bài cần chấm } ngon_ngu =pas { hoặc cpp nếu là ngôn ngữ C++ } dc_ =z:\ { nơi để bài học sinh cần chấm } dcluu_ =..\hsluu\ { chấm xong bài học sinh, sẽ lưu vào đây } _cactest =1234567890 { các test, chỉ dùng 1 kí tự cho 1 test} _testngatTG =1234567890. { các test cần ngắt thời gian chạy} tep_dich =\fpc\2.6.0\bin\i386-win32\fpc.exe {nơi để tệp dịch Pascal } tep_dich_CPP =d:\cpp\bin\G++.exe {nơi để tệp dịch C++ } thoigian_bonho = -T 1000 -M 500000000 { thời gian ngắt ngầm định 1s, bộ nhớ 500Mb} cham_rieng =0 { 0 /1 – chấm tự động/riêng theo tên học sinh } _tongdiem =10 { điểm của bài, sẽ chia đều cho mỗi test } kieu_test =1 { 1-Kieu test: TEN_BAI ?.inp/ 0 - TEN_BAI.in? chuong_trinh_ngat='..\ngat_tg.exe'; { nơi để chương trình ngắt } * Phần đầu của chương trình _tudong.pas PROGRAM _tudong; Uses crt,dos; Const chuong_trinh_ngat='..\ngat_tg.exe'; Var dc_,bai,dcluu_,_cactest,_testngatTG :string; tep_dich,tep_dich_C,thoigian_bonho :string; cham_rieng,_tongdiem,kieu_test :integer; _diemtest,diem,muc :real; _loi_bai,hs_,f1,f2,tep,ss,ngon_ngu :string; 18 tep_,bb_,bbloi_ bai_co_dich,bai_dich_loi co_ngat_thoi_gian _test :text; :boolean; :byte; :char; 2.2 Phần chấm một test của bài + Bổ sung tình huống chương trình học sinh không ghi gì vào tệp kết quả. PROCEDURE CHAM_BAI_CUA_GV(_test:char;var _loi_bai: string; var _diemtest:real); Var x,y,i,j,sl :integer; mm_,mm,n,n_ :longint; ss :string; _dung,ok :boolean; BEGIN _loi_bai:=''; _diemtest:=0; _dung:=true; { } {Đọc dữ liệu vào file input, nếu cần } If kieu_test=0 then assign(tep_,bai+'.in'+_test) else assign(tep_,bai+_test+'.inp'); reset(tep_); readln(tep_,n_); close(tep_); { Đọc kết quả ra chuẩn – mẫu } If kieu_test=0 then assign(tep_,bai+'.ou'+_test) else assign(tep_,bai+_test+'.out'); reset(tep_); readln(tep_,mm_); close(tep_); {Đọc kết quả của học sinh – file output của học sinh} assign(tep_,bai+'.out'); {$I-}reset(tep_); {$I+} If ioresult=0 then BEGIn _dung:=true; { Xử lí khi không có output } if seekeoln(tep_) or seekeof(tep_) then Begin _loi_bai:=_loi_bai+' tep 0'; _dung:=false; End else BEGin readln(tep_,mm); 19 If (mm>mm_) then Begin _loi_bai:=_loi_bai+' KQ >'; _dung:=false; End else If (mm0 then bai_co_dich:=false else begin close(tep_); chep_tep(tep,bai+'.'+ngon_ngu) end; If bai_co_dich then begin {xoa bai cu neu co} assign(tep_,bai+'.exe'); {$I-} Reset(tep_);{$I+} If ioresult=0 then begin close(tep_); 20
- Xem thêm -

Tài liệu liên quan

Tài liệu vừa đăng