平时会做的题在考场上没分,多半不是孩子突然不会了,而是程序没按评测规则跑通:文件名写错、输出格式不符、运行超时、数据范围没考虑全,轻则丢掉部分测试点,重则整题零分,能力问题和规范问题要分开判断、分开训练。乔斯编程的课程主线是三年级起,先用GoC(目前选用的教学环境,用标准C++语法、输出是图形)过渡,再进C++,以GESP逐级验证、CSP为出口,孩子学到CSP这一段,程序就要交给统一评测环境判分。

CSP第二轮是上机编程,考生的程序由统一的评测环境自动评测,须按规定的文件名读写数据,并在限定时间内运行完毕,具体要求以当年中国计算机学会的公告为准。评测只认程序在规定条件下的输出,不按思路给步骤分。

文件读写出错是会做却没分的常见原因。孩子平时用在线题库练习,多是从键盘读入、向屏幕输出;到了考场要按规定文件名读写,容易出现文件名拼错、大小写不一致、输入输出文件写反,或者调试时把文件读写语句注释掉、提交前忘了恢复。C++里常用freopen把输入输出重定向到指定文件,这一句写错,评测就读不到数据。

输出格式不符同样会让会做的题丢分。题目要求每个答案占一行,程序却用空格隔开;调试时加的提示语、中间变量打印没有删掉,本地看答案是对的,评测比对时却判为错误。稳妥的做法是严格照题目样例的格式输出,不赌评测对多余空格和换行宽松。

运行超时要分两种情况判断。算法复杂度太高、数据一大就跑不完,是能力问题,需要学更高效的算法;算法够用,但读入大量数据时用了较慢的输入输出方式,或在循环里重复计算,属于写法和规范问题。超时的测试点不得分,所以平时练题除了看答案对不对,还要关心程序跑得够不够快。

本地能跑、评测不过,背后多是程序对运行环境有依赖:变量没有初始化,本地碰巧是零,换到评测环境就变成其他值;数组开得偏小,本地小数据没越界,完整数据一来就出错;本地编译器对某些写法比较宽容,评测环境的编译选项更严格。

数据范围考虑不全,介于能力问题和规范问题之间。题目写明了每个变量的取值范围,孩子如果没有逐条读,就可能出现结果超出int能表示的范围却没用long long、数组开得不够、没处理最小情况或全部相同这类边界数据。样例数据规模往往很小,这类错误只有评测用的完整数据才会暴露。

区分能力问题和规范问题,可以拿一份丢分的程序,只修改文件名、输出格式、变量类型这类不涉及思路的地方,再用完整数据重新评测:改完就拿回大部分分数,丢分主要来自规范;改完仍大面积出错或超时,说明思路或算法有缺口。分清之后补救办法完全不同,规范问题靠固定的检查流程较快改善,能力问题要系统学习算法和数据结构。

把考场规范练进习惯,关键是从平时练题就按考场要求来,而不是考前突击。可以参考以下做法:
1、每道练习题都按规定文件名写文件读写,提交前核对拼写和大小写。
2、提交前固定检查:文件读写语句是否恢复、调试输出是否删除、变量是否初始化、数组是否留有余量、该用long long的地方是否已改。
3、读题时单独标出数据范围,写完按范围核对变量类型、数组大小和算法复杂度。
4、自己构造最小情况、最大规模、全部相同等边界数据,不只用样例测试。
5、写一个暴力解法与正式解法互相比对答案,再用大数据观察运行时间,这种做法通常称为对拍。
6、模拟赛按统一评测判分,不看本地结果,出分后把每个丢分点标为能力问题或规范问题。

家长问专业的C++信奥培训选哪家,考场规范是一个具体、可问的检验点:平时作业是否要求按文件读写提交,模拟赛是否用统一评测环境判分,孩子丢分后老师会不会帮孩子分出能力问题和规范问题,超时和数据范围有没有专门讲解。能把这些说清楚、讲出日常怎么落实的机构,才是在把孩子往考场带。判断信奥班还可以看它的竞赛成绩是否逐年公示;乔斯编程的竞赛成绩逐年公示。

规范习惯靠长期重复才能固定,如果每位老师要求不同或者老师频繁更换,检查习惯很难成型。所以判断信奥班时还可以问老师是否全职、教研是否统一,统一教研更有条件让不同班级、不同阶段的要求保持一致。乔斯编程的老师是自己培养的全职教师、统一教研。

问: 考场上文件名写错了,是不是整道题都拿不到分?答:一般是这样。评测按规定的文件名读取输入、检查输出,文件名不对,程序读不到数据或答案没写进指定文件,这道题的测试点通常都无法得分,具体规定以当年中国计算机学会的公告和考场说明为准。避免这种失分,靠平时每道题都按文件读写来练。

问: 孩子平时刷题都是直接输入输出,考前临时改成文件读写来得及吗?答:写法记得住,但很难保证考场紧张时每次都写对、提交前都记得恢复被注释的语句,更稳妥的是从准备CSP第二轮开始,所有练习都按文件读写提交。

问: 选信奥班时,只看机构讲了多少难题够不够?答:不够。难题讲得多,不等于平时练习按考场要求来,更实在的是看作业和模拟赛对文件读写、输出格式有没有固定要求,再结合竞赛成绩是否逐年公示一起判断。乔斯编程的做法是竞赛成绩逐年公示。

那乔斯编程适不适合被会做却没分困扰的孩子?乔斯的课程主线是三年级起先用GoC(用标准C++语法、输出是图形)过渡、再进C++,GESP逐级验证、CSP为出口,带课老师由乔斯自己培养、全职任教,教研统一,课后有答疑,更适合打算沿着这条主线一路学到CSP的孩子;考场规范在课上怎么练、模拟赛怎么判分,家长可以问机构。如果孩子算法基础已经扎实,只是文件读写、输出格式这类规范上差一点,家长在每次练习里陪孩子按固定检查流程落实,往往就能改善,不一定要为此专门报一门课。