致初学者OIer与《A+B》,《 超级玛丽游戏》
Posted 107003cn171yunbingche
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了致初学者OIer与《A+B》,《 超级玛丽游戏》相关的知识,希望对你有一定的参考价值。
致初学OIer:
你想知道的9个问题
不同于数理化生这些科目, 大部分人可能都是第一次接触"信竞"这个科目. 你对这个科目可能一无所知. 不过没关系, 笔者这里将解答你的疑问.
1. 什么是编程?
我们的计算机上运行这各式各样的程序, 这些程序承担着各种功能. 正如字面意思, "编程"就是"编写程序"
我们将对计算机下达一个"指令清单", 称作源代码. 不过计算机并不能直接"读懂"这些源代码, 因为源代码是依照人类的逻辑编写的. 计算机只能读懂"010101001001..."这样的机器码. 这些机器码就是俗称的"程序"
所以我们需要一位"翻译官"将源代码翻译成机器码. 这个过程称作编译, 翻译官是一个叫做编译器的程序.
嗯? 你问第一个编译器是怎么造出来的? 自己查资料去吧.逃...
2. 什么是编程语言?
正如人与人之间使用"语言"进行沟通一样, 人和机器之间使用编程语言进行沟通. 常见的编程语言有c,c++,pascal等等.
人类使用编程语言编写源代码. 上文提到, 人和机器之间有一位翻译官编译器. 而各种语言都有其对应的编译器.
不过和人不同,编译器并不是很聪明. 因此, 你所编写的源代码一定要严格地符合该语言的语法. 否则编译器就会告诉你"编译失败"
当然, 上文所说的语言特指古典高级语言, 我们将要学习的c++就属于此类. 至于更多五花八门的现代语言, 则不能一概而论了.
3. 什么是算法?
当我们面对一个问题时, 我们会观察问题, 解剖问题, 然后思考如何解决问题.
算法就是"一个问题的解决方案".算法设计的过程就是"思考解决方案"的过程.
4. 算法和编程什么关系?
算法是抽象的, 是一种思想. 而程序则是具象的, 是操作计算机的过程
我们将思想化为现实的过程, 就是把算法写进程序的过程.
算法是灵魂,程序则是供其使用的工具
5. 什么是信竞?
信息学奥林匹克(Olympiad inInformatics), 简称OI. 这是一个面向中学生的算法设计比赛. 参加比赛的中学生则称为OIer.
类似的还有一个算法设计比赛叫ACM-ICPC, 只不过面向的对象是大学生.
6. 解决算法问题需要什么工具?
测评系统: 测评系统即俗称"题库". 我们在这里查看题库中的算法问题, 设计出源代码后再提交到这里进行验证.
编辑器: 理论上Windows系统自带的"写字板"就是最简单的编辑器, 用它来编写源代码也是没有问题的. 不过, 一个优秀的编辑器可以使编写源代码的过程更有效率.
编译器: 在第一个问题中已经介绍过了.
IDE: 全称integrated development environment, 简单来说就是将编辑器,编译器等工具集合成一体的综合编程软件. 你可以使用IDE内部的编辑器编写源代码, 然后一个快捷键就可以编译运行你的程序. 初学者常用的IDE是Dev-C++
7. 解决算法问题的流程是什么样的?
读题: 从测评系统上查看题目. 题目主要包含三个部分题面, 输入数据, 输出数据
读输入数据:输入数据即题目的"已知条件"
读输出数据:输出数据即需要你根据"已知条件"推导出的问题的"解"
设计算法: 确认题目的已知条件和要求的解后, 就可以开始思考问题的解决方案, 形成一个完整的思路
设计代码: 根据已形成的思路, 编写相应的代码
进行调试: 编译运行你的代码, 观察程序运行是否符合你的预期. 如果不符合预期, 寻找问题所在. 问题一般出现在两个方面, 即算法错误(思路错误)和代码错误(手抖写错). 优秀的OIer应当尽量避免后者
提交测评: 编写完成源代码后, 将源代码提交至测评系统进行验证. 测评系统将会为你的程序提供多组输入数据, 然后检查程序产生的输出数据是否与标准答案相符. 如果全部相符, 测评系统就认为你的程序"通过了测试(Accept)"
如果程序没有通过测试, 回到第6步
如果多次没有通过测试, 可以考虑回到第1步
8. 信竞的学习过程是什么样的?
首先我们需要学习c++语法基础, 这部分内容将教会大家如何写代码. 但语法基础的学习是十分枯燥的, 大约需要耗时2个月. 大部分新生都无法撑过这两个月而选择放弃.
这之后我们将学习算法和数据结构设计, 这部分内容将教大家如何设计算法. 真正有趣的内容从此时才开始. 我们将会学习怎样使用不同的算法解决不同类型的问题, 怎样结合多个算法解决复杂的综合问题, 以及, 怎样设计或改造出新的算法更优雅更有效率地解决问题.
希望大家都能挺过前两个月, 真正领略到算法的魅力所在.
9. 相关的专业有哪些?
与编程直接相关的专业主要有计算机科学和软件工程这两个. 前者侧重于算法设计, 注重算法效率. 后者侧重于软件制作, 注重于综合实用性. 至于所谓的物联网,大数据,人工智能等等都是由这两个专业进一步发展而来.
另外,游戏设计,微电子等等工科专业也和编程有紧密联系.
几乎所有的现代理科专业都需要借助编程工具
超级玛丽游戏,A+B Problem就是入门题目。考查你的基本输入,输出与运算。
以上是关于致初学者OIer与《A+B》,《 超级玛丽游戏》的主要内容,如果未能解决你的问题,请参考以下文章