码迷,mamicode.com
首页 > 其他好文 > 详细

致初学者OIer与《A+B》,《 超级玛丽游戏》

时间:2019-12-14 19:02:22      阅读:79      评论:0      收藏:0      [点我收藏+]

标签:工程   中学   写代码   学生   大数   根据   没有   综合   使用   

致初学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》,《 超级玛丽游戏》

标签:工程   中学   写代码   学生   大数   根据   没有   综合   使用   

原文地址:https://www.cnblogs.com/107003CN171yunbingche/p/12040477.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!