品牌北京达内金桥科技有限公司 | 有效期至长期有效 | 最后更新2021-06-02 20:15 |
北京NOI课程培训
一些常见的语言包括Pascal、C、C++、Java、C#、Python、Ruby。
关于Pascal:
多数学生学会的第一门语言;
方便教学,方便自学;
陷阱比C/C++少,但比Java多;
竞赛之外,应用范围很受限;
竞赛之中,仍是主流语言,但高水平选手使用Pascal的比例逐渐减少;
由于应用范围太窄,Pascal不能在ACM/ICPC、TopCoder和一些商业比赛中使用。
关于C/C++
应用范围更广,以后可以直接做事;
很多陷阱!非法内存访问、递归栈溢出时不会显式提醒;
非常灵活,很多程序难以阅读。例:IOCCC;
宏:可以定义自己的语言,例如“PINYIN C++“;
操作符:丰富的操作符也是个麻烦: a=a+++ ++a;
STL:模板、迭代器看上去比较恐怖;
没有致命缺点,是惟一一门即可在OI中,又可在ACM/ICPC中使用的编程语言。
关于Java:
目前不能在NOI中使用,希望在不久的将来成为NOI/IOI的官方语言之一
语法语义更清晰合理:没有宏、没有多继承、没有指针,没有delete,完善的异常处理机制,更合理的对象继承树(例如,数组也是对象)
函数库更加强大:更方便的字符串函数、正规表达式函数、高精度整数和实数、基本二维几何运算、常用数论函数,以及很多竞赛里用不上但在其他领域非常有用的函数;
可以在ACM/ICPC和TopCoder中使用
如何学习一门语言:
浏览文档。成熟语言的文档都已成熟;
独立编写自己的程序,阅读他人的程序,多思考;
小程序:熟练度和准确性优先;
大程序:合理的设计、编码、调试与测试;
口程序阅读:风格和技巧;
不同的语言,能找到的别人的程序也不同。