欢迎来到天天文库
浏览记录
ID:51588457
大小:52.50 KB
页数:14页
时间:2020-03-24
《编程基础_刘汝佳.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、编程基础(NOI培训)刘汝佳一些常见的语言(和我的个人观点)PascalCC++JavaC#PythonRuby次常用的最怕的回忆…最常用的最直白的最喜欢的最早学的一些常见的语言(和我的个人观点)想知道答案吗?一些常见的语言(和我的个人观点)PascalCC++JavaC#PythonRuby次常用的最怕的回忆…最常用的最直白的最喜欢的最早学的关于Pascal多数学生学会的第一门语言方便教学,方便自学陷阱比C/C++少,但比Java多竞赛之外,应用范围很受限竞赛之中,仍是主流语言,但高水平选手使用Pascal的比例逐渐减
2、少由于应用范围太窄,Pascal不能在ACM/ICPC、TopCoder和一些商业比赛中使用关于C/C++应用范围更广,以后可以直接做事很多陷阱!非法内存访问、递归栈溢出时不会显式提醒非常灵活,很多程序难以阅读。例:IOCCC宏:可以定义自己的语言,例如“PINYINC++”操作符:丰富的操作符也是个麻烦:a=a+++++a;STL:模板、迭代器看上去比较恐怖没有致命缺点,是惟一一门即可在OI中,又可在ACM/ICPC中使用的编程语言关于Java目前不能在NOI中使用,但个人十分喜欢。希望在不久的将来成为NOI/IOI的
3、官方语言之一语法语义更清晰合理:没有宏、没有多继承、没有指针,没有delete,完善的异常处理机制,更合理的对象继承树(例如,数组也是对象)函数库更加强大:更方便的字符串函数、正规表达式函数、高精度整数和实数、基本二维几何运算、常用数论函数,以及很多竞赛里用不上但在其他领域非常有用的函数可以在ACM/ICPC和TopCoder中使用如何学习一门语言浏览文档。成熟语言的文档都已成熟独立编写自己的程序,阅读他人的程序多思考小程序:熟练度和准确性优先大程序:合理的设计、编码、调试与测试程序阅读:风格和技巧不同的语言,能找到的别
4、人的程序也不同文档阅读举例:FreePascal自带必读user.pdf用户手册(167pages)ref.pdf语言参考(136pages)需要时查阅prog.pdf程序员手册(160pages)rtl.pdf运行时刻库参考(1586pages)其他文档chart.pdf局部/全局编译开关fcl.pdf组件库指南fpdoc.pdf代码文档工具吴文虎教授:“四句话”编程输入(cin),输出(cout),分支(if),循环(for)稍微上层一点:数据结构再上层一点:编程范式模块化编程:函数、递归、作用域规则面向对象编程:封
5、装、继承、多态尽管工程上使用的工具(如OOP)对竞赛而言往往过于笨重,但工程上的原则和方法仍然适用“交写字板上的程序”???写字板和IDE的区别?语法高亮、代码补全、方便的编译和运行跟踪调试:单步、断点、Watch、修改内存编码编译测试调试不被重视花费太多时间设计几乎总是被忽略反复迭代我的方法和建议我写算法程序不用IDE语法高亮:很多编辑器都有此功能代码补全:完全不用。学会查资料编译和运行:用插件、执行外部脚本跟踪调试:完全不用。学会断言和打印调试信息给NOI选手的建议使用IDE,并记住一些常用快捷键,但不依赖其跟踪调试
6、功能学一点简单的linux命令(NOI目前使用Ubuntu作为操作系统),若能会一点bash脚本的编写则更好具体的迭代方法“一次只写一点点”,确保它正确后再继续写问题:写多少之后需要停下来?模块化如何确保它写对了?测试写程序的顺序:自顶向下vs自底向上模块化关键:兼顾低耦合与高内聚测试的关键:单元测试、自动测试提问时间
此文档下载收益归作者所有