我想参加noip,有没有从零开始的教材。pascal 怎么学才能够格参赛?
如果从长远地,为了成为一个优秀的程序员来讲,学习玩pascal之后,要开始学习哪些语言呢?我将来想从事移动终端软件制作(我自己想的名字。。。不知道有没有这一说)类似安卓等...
如果从长远地,为了成为一个优秀的程序员来讲,学习玩pascal 之后,要开始学习哪些语言呢?我将来想从事 移动终端软件制作(我自己想的名字。。。不知道有没有这一说)
类似安卓等操作系统的编写,或者在这些平台上进行的编程。当然,电脑上的编程也是要学的,尤其是制作网站这一块。
刻苦地学习之后,不知道能不能达到一个人就制作出一个网站雏形的能力? 展开
类似安卓等操作系统的编写,或者在这些平台上进行的编程。当然,电脑上的编程也是要学的,尤其是制作网站这一块。
刻苦地学习之后,不知道能不能达到一个人就制作出一个网站雏形的能力? 展开
5个回答
展开全部
(全手打,1434字,很累啊,希望对你有用)
一般先学pascal,再学c/c++和JAVA
我就是参加NOIP的,拿过一等奖,你可以听听我的意见
其实学好NOIP,不需要什么书,只要一个老师+一个题库(如tyvj)就没问题了
要学好NOIP,个人觉得分三块(把我下面讲的东西全学透,要1-2年)
①语法:学好语法是基础!学好了语法,才知道语言如何使用,这个不用我说吧
②数据结构(数据结构是脱离语言的,也就是说这些数据结构每个语言都好实现):这是一个很抽象的东西,有 线性表、栈、队列、堆、数、图、串、集合 等等。
分为4种:线性结构(一对一,如 栈、队列)、树形结构(一对多,如 树)、离型结构(没有连接)、网状结构(多对多,如 图)
像栈就是一种FILO表,只运行在一头进行输入输出操作,应用在 表达式求值、撤销恢复操作上面
队列是FIFO表,允许在一头进行插入操作,另一头错删除操作
树 就复杂了 树和二叉树是两种概念,具体的自己去看书吧
二叉树有许多特殊形态,如满二叉树 完全二叉树 哈夫曼树 最优二叉树(哈夫曼树不等于最有二叉树!这点有许多人弄错。因为哈夫曼树不一定是二叉的)
二叉树的三种遍历方式一定要会:前序遍历(也称先根遍历)根左右, 中序遍历(也称中根遍历)左根右, 后序遍历(也称后根遍历)左右根
图就更复杂了,分 连通与不连通 带权与不带权 有向与无向,所以就有了 (不)连通有(无)向(不)带权图这种说法 还有什么强连通图,弱连通图的,自己看书吧!
③算法(算法是脱离语言的,也就是说这些算法每个语言都好写):
1.低级算法(立意上的,就像初等数学和高等数学):穷搜、深度优先搜索(DFS)、广度优先搜索(BFS,也称宽度优先搜索),是三种不同的遍历方式
2.高级算法:贪心,分支,动态规划(DP)。其他两个不介绍了,就介绍一下动态规划吧!
动态规划:记忆化搜索,利用以前搜索留下的数据,加快解决多阶段决策最优化问题的速度。要能动态规划,问题必须满足两个条件(我背了好长时间才背出来)
①:最优化原理(也称最优性原理):无论过去的状态或决策如何,对于当前的决策所形成的状态而言,余下的诸决策必须构成最优策略。
②:无后效性:一旦一个状态的决策确定,则此后过程的演变不再受此前各状态及决策的影响,当前状态时此前历史的完整总结,此前历史只能通过当前状态去影响过程未来的演变。
学DP一般从背包开始,背包一共有8个:01背包、完全背包、多重背包、混合三种背包、二维费用背包、分组背包、有依赖的背包、泛化物品背包。
然后再学树形动态规划
还有排序算法:冒泡排序,选择排序,插入排序,快速排序,堆排序,希尔排序,基数排序,序数排序,桶排序,鸽巢排序,二叉树排序(应用二叉排序树),鸡尾酒排序(就是双向冒泡,在一次初赛的完善程序里出现过)
还有数论算法(不展开介绍了)
图论算法:
最短路(顾名思义,就是一个点到另一个点的最短路程):迪杰斯特拉(Dijkstra)、弗洛伊德(Floyd)、SPFA(国人设计的,很不错)等等 还会要解决SPFA的负权回路问题 这几个算法都是解决单源最短路径问题的,就是一个点到所有点的最短路)
最小生成树(应用在无向连通图中,就是拿掉一些边,在保证图连通的情况下,使得剩下的边权值之和最小):普利姆(Prim)、克鲁斯卡尔(Kruskal)
关键路径(在生产生活中应用很广,注意关键路径之前一定要拓扑一次!)、拓扑排序(可用于是否有环路的检测)、网络流等等
如果以上你都会了,那么恭喜你,你参加普及组和提高组的NOIP已经没有问题了!
可以继续学 双向深搜、双向广搜、周界搜索、迭代加深搜索、迭代加宽搜索、A*广度优先启发搜索、A*迭代加深搜索 等高级的算法,去参加省赛甚至国家比赛。
一般先学pascal,再学c/c++和JAVA
我就是参加NOIP的,拿过一等奖,你可以听听我的意见
其实学好NOIP,不需要什么书,只要一个老师+一个题库(如tyvj)就没问题了
要学好NOIP,个人觉得分三块(把我下面讲的东西全学透,要1-2年)
①语法:学好语法是基础!学好了语法,才知道语言如何使用,这个不用我说吧
②数据结构(数据结构是脱离语言的,也就是说这些数据结构每个语言都好实现):这是一个很抽象的东西,有 线性表、栈、队列、堆、数、图、串、集合 等等。
分为4种:线性结构(一对一,如 栈、队列)、树形结构(一对多,如 树)、离型结构(没有连接)、网状结构(多对多,如 图)
像栈就是一种FILO表,只运行在一头进行输入输出操作,应用在 表达式求值、撤销恢复操作上面
队列是FIFO表,允许在一头进行插入操作,另一头错删除操作
树 就复杂了 树和二叉树是两种概念,具体的自己去看书吧
二叉树有许多特殊形态,如满二叉树 完全二叉树 哈夫曼树 最优二叉树(哈夫曼树不等于最有二叉树!这点有许多人弄错。因为哈夫曼树不一定是二叉的)
二叉树的三种遍历方式一定要会:前序遍历(也称先根遍历)根左右, 中序遍历(也称中根遍历)左根右, 后序遍历(也称后根遍历)左右根
图就更复杂了,分 连通与不连通 带权与不带权 有向与无向,所以就有了 (不)连通有(无)向(不)带权图这种说法 还有什么强连通图,弱连通图的,自己看书吧!
③算法(算法是脱离语言的,也就是说这些算法每个语言都好写):
1.低级算法(立意上的,就像初等数学和高等数学):穷搜、深度优先搜索(DFS)、广度优先搜索(BFS,也称宽度优先搜索),是三种不同的遍历方式
2.高级算法:贪心,分支,动态规划(DP)。其他两个不介绍了,就介绍一下动态规划吧!
动态规划:记忆化搜索,利用以前搜索留下的数据,加快解决多阶段决策最优化问题的速度。要能动态规划,问题必须满足两个条件(我背了好长时间才背出来)
①:最优化原理(也称最优性原理):无论过去的状态或决策如何,对于当前的决策所形成的状态而言,余下的诸决策必须构成最优策略。
②:无后效性:一旦一个状态的决策确定,则此后过程的演变不再受此前各状态及决策的影响,当前状态时此前历史的完整总结,此前历史只能通过当前状态去影响过程未来的演变。
学DP一般从背包开始,背包一共有8个:01背包、完全背包、多重背包、混合三种背包、二维费用背包、分组背包、有依赖的背包、泛化物品背包。
然后再学树形动态规划
还有排序算法:冒泡排序,选择排序,插入排序,快速排序,堆排序,希尔排序,基数排序,序数排序,桶排序,鸽巢排序,二叉树排序(应用二叉排序树),鸡尾酒排序(就是双向冒泡,在一次初赛的完善程序里出现过)
还有数论算法(不展开介绍了)
图论算法:
最短路(顾名思义,就是一个点到另一个点的最短路程):迪杰斯特拉(Dijkstra)、弗洛伊德(Floyd)、SPFA(国人设计的,很不错)等等 还会要解决SPFA的负权回路问题 这几个算法都是解决单源最短路径问题的,就是一个点到所有点的最短路)
最小生成树(应用在无向连通图中,就是拿掉一些边,在保证图连通的情况下,使得剩下的边权值之和最小):普利姆(Prim)、克鲁斯卡尔(Kruskal)
关键路径(在生产生活中应用很广,注意关键路径之前一定要拓扑一次!)、拓扑排序(可用于是否有环路的检测)、网络流等等
如果以上你都会了,那么恭喜你,你参加普及组和提高组的NOIP已经没有问题了!
可以继续学 双向深搜、双向广搜、周界搜索、迭代加深搜索、迭代加宽搜索、A*广度优先启发搜索、A*迭代加深搜索 等高级的算法,去参加省赛甚至国家比赛。
展开全部
建议学以下两本
Pascal语言:中学版——青少年信息学奥林匹克竞赛培训教材 张文双,吴树娟 主编/2008年09月/北京理工大学出版社
数据结构与算法设计——Pascal语言(第2版) 张文双,王学红,郭连凤 主编/2010年12月/北京理工大学出版社
你起码要精通语言和算法,做各种类型题
Pascal语言:中学版——青少年信息学奥林匹克竞赛培训教材 张文双,吴树娟 主编/2008年09月/北京理工大学出版社
数据结构与算法设计——Pascal语言(第2版) 张文双,王学红,郭连凤 主编/2010年12月/北京理工大学出版社
你起码要精通语言和算法,做各种类型题
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
死着学下去.
一开始还可以.
越到后来越纠结.
最好之前学过其他的语言.
当然还是要努力的.
Pascal语言:中学版
这一本不错的.
好好加油
一开始还可以.
越到后来越纠结.
最好之前学过其他的语言.
当然还是要努力的.
Pascal语言:中学版
这一本不错的.
好好加油
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
蓝书,配套的还有绿树
完了以后就学红书
貌似还有紫书。。。黑书?,,,这个境界就高了,先不用考虑吧
叫神马全国青少年信息学奥林匹克联赛。。。pascal
报名就可以参赛,会打字就行
不过要先过初赛
完了以后就学红书
貌似还有紫书。。。黑书?,,,这个境界就高了,先不用考虑吧
叫神马全国青少年信息学奥林匹克联赛。。。pascal
报名就可以参赛,会打字就行
不过要先过初赛
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
全国青少年信息学奥林匹克联赛培训教程 中学版 从中学的那本开始看
(就是1l说的第一本)
然后看 奥赛经典 语言篇、基础篇、提高篇。
第一本书的话,看完就可以参加比赛了。不过不知道你是小学还是初中还是高中。总之学完pascal语言就可以参加比赛了,不过参加noip的初赛还需要一些计算机知识。(奥赛经典这本书有~)
参赛资格,没有学过都可以参加,只要报名就可以
竞赛官网:www.noi.cn
-----------------------
学习完pascal的话当然是c/C++和JAVA语言了。网页制作当然可以了,基本上就是java语言。java和c很像的,跟pascal有一些区别。这些你可以等到大学在学习!
祝成功~
(就是1l说的第一本)
然后看 奥赛经典 语言篇、基础篇、提高篇。
第一本书的话,看完就可以参加比赛了。不过不知道你是小学还是初中还是高中。总之学完pascal语言就可以参加比赛了,不过参加noip的初赛还需要一些计算机知识。(奥赛经典这本书有~)
参赛资格,没有学过都可以参加,只要报名就可以
竞赛官网:www.noi.cn
-----------------------
学习完pascal的话当然是c/C++和JAVA语言了。网页制作当然可以了,基本上就是java语言。java和c很像的,跟pascal有一些区别。这些你可以等到大学在学习!
祝成功~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询