说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

为兴趣而生 七大编程挑战项目,你敢来吗?

HTML文档下载 WORD文档下载 PDF文档下载
很多编程爱好者想要不断挑战自己,他们有着相同的特征,不满足现状,挑战高难度,更多的则是因兴趣而生。文中分享的这七个编程题目,你不妨来试试,发挥自己的灵活性与创造性,也许还能帮助你自学一套编程技巧。


俗话说,熟能生巧。然而,有些事情我们做的越多,就会产生越多的“风险”。比如我们使用相同的工具来解决同一类的问题,尽管可以很好的完成它,但却让你失去了灵活性思维。

很多编程爱好者想要不断挑战自己,他们有着相同的特征,不满足现状,挑战高难度,更多的则是因兴趣而生。文中分享的这七个编程题目,你不妨来试试,发挥自己的灵活性与创造性,也许还能帮助你自学一套编程技巧。

PS:起初,我打算提供解决方案案例,但后来想想这也许会“剥夺”你的乐趣,这些挑战对有的人来说可能是小Case,有的则可能需要花费很长时间,当然这取决于你的技术背景如何了。Ok,开始吧!

1) Sums

提示:针对这道题目,你需要采用一种技术,即使你已经拥有几十年的编程经验。从数据文件开始,列出每个年级、每个学校、每个城市、每个州中红发学生的数量。你的任务是按数据进行排列,每个州(第一),城市(第二),学校(第三),最后按年级(K to 6)

IDENTIFICATION DIVISION.PROGRAM-ID. SUMS.ENVIRONMENT DIVISION.INPUT-OUTPUT SECTION.FILE-CONTROL.SELECT StudentFile ASSIGN TO 'input.txt'    ORGANIZATION IS LINE SEQUENTIAL.DATA DIVISION.FILE SECTION.FD StudentFile.01 StudentCount.   02  State       PIC X(12).   02  City        PIC X(18).   02  School      PIC X(20).   02  Grade      PIC X.   02  RedHaired   PIC 9999.WORKING-STORAGE SECTION.[…]PROCEDURE DIVISION.Begin.    OPEN INPUT StudentFile.    READ StudentFile      AT END MOVE HIGH-VALUES TO StudentCount    END-READ.    […]STOP RUN.

下面是个输入文件案例:

NY        NYC             PS 122            K1000NY        NYC             PS 122            12000NY        NYC             PS 122            43000NY        NYC             St-Judes          40043NY        NYC             St-Judes          50057NY        Albany          Green Acres       K0003NY        Albany          Green Acres       20005NY        Albany          Green Acres       30010NY        Albany          Blue Hills        30123NY        Albany          Blue Hills        40302NY        Albany          Blue Hills        50067NY        Rochester       Happy Trails      50076<b>Gives:</b>      PS 122                 6000      St-Judes                100      NYC                  6100      Green Acres              18      Blue Hills              492      Albany                510      Happy Trails             76      Rochester              76      NY             6686

在这个例子中我采用了COBOL,使用固定的长度字段,数值填充为0。你可能会认为tab- or comma-separated input,当然这个值不一定非要为0。这个题目旨在增加正确值并在正确的时间显示,而不是为了证明你可以输入解析局部变量。请注意,这里的数据都是虚构的。

2) Fibonacci Sequence(斐波那契序列)

0, 1, 1, 2, 3, 5, 8, 13, 21…

写个函数返回到第nth的序列。这题应该是很容易。

3) Drawing with a Turtle

TurtleArt是创建该程序的其中一个, 其适合绘制各种图片。你可以将 “pen”移动至一个新的位置,改变画笔的颜色,前进或者后退,随意改变方向。此外,你还可以添加绘画路径,改变整个方形或者圆形色彩。这个挑战就是利用TurtleArt来画花。

下载TurtleArt:

  • Microsoft Windows
  • Mac OS X
  • GNU/Linux (需要点击 Java. Adjust进行设置)

你可以参照这幅图片来进行绘制,当然你也可以自由创建。如果你认为这个很简单,你还以尝试绘制Michelle Deschênes:


 4) 16-Puzzle

有时我们也称其为15-puzzle拼图,这个通常是由塑料制作而成的小玩具,采用4×4网格被分成15块,每一块都有图片。游戏的目标是重新组合图片以形成一个完成的图像。

Batgirl

参考 Wikipedia上9-puzzle的相关示例。

我们可以通过Scratch来编写16-puzzle 游戏。它与TurtleArt相类似,但不要你安装软件。你可以在线使用Scratch。

先不要急着挑战高难度,由简入繁,你可以先从2×2 puzzle 开始,成功创建后再进行3×3,一步一步逐级增加,直到最终获得完成16-puzzle。

5) Pascal Triangle(帕斯卡三角)

对于这个挑战,通常会采用SQL来计算每一行的帕斯卡三角。


这个题目可能在我们童年时期见过,从1开始,1在顶部,第一个和最后一个都是1;接着每一行中间数字是由相邻两个数字之和,呈现金字塔形状。

我们先定义一个表,这里使用MySQL语法,也可以采用任意SQL数据库引擎:

create table pascal (  row int not null,  entry int not null,  val int not null,  primary key (row, entry));

先初始化前两行,从技术上来讲,你只真正需要第一个,从第三行开始变得很容易,实际上你已经从上一行开始计算值。

insert into pascal values (1, 1, 1);insert into pascal values (2, 1, 1);insert into pascal values (2, 2, 1);

你可以使用存储过程( stored procedure)来填写 nth行,或者你也可以使用宿主语言(host language)比如PHP或Java来调用数据库。记住,不要使用任何(flow control )流量控制(比如ifs, loops等),不要调用递归函数,你可以采用insert statements。

mysql> select * from pascal where row = 10;

当然,只要你愿意,你也可以采用NoSQL数据库。

6) Sierpiński Triangle (谢尔宾斯基三角形 )

这个得名来源于波兰数学家 Wacław Franciszek Sierpiński(波兰语,谢尔宾斯基),有三个著名的分形是以他的名字命名(Sierpinski三角形,Sierpinski地毯,Sierpinski曲线),创建于1915年。

绘制这个,你需要从一个等边三角形(equilateral triangle )开始,然后给其填充颜色,然后挖空三角形中间部分,这样中间的三角形是其他三个三角形的边。从9个三角形增加至27个,以此类推。

你也可以在HTML5 canvas中绘制,首先你要决定canvas的形状及大小以及三角形坐标。

如果每个边有长度x,长度h,那么就可通过从顶点画线,这样使它底部的边缘交叉成直角,可以采用应用勾股定理找到h至x的比例。

如果你不想采用数学原理,那么你还可以使用canvas设定宽220 ,高195,三角形顶点 (10, 185),(210, 185),(110, 10)。当你完成一个基本的三角形工作,添加一个小动画。使其呈现出不同的效果,你可以看到它是如何一步一步实现的。

完成三角形后,你还可以尝试 Sierpiński carpet(Sierpinski地毯)。


道理是同样的,从一个正方形开始,把它分成9个正方形。挖空中间,和其他8个正方形构成carpet。

7) Project Euler

Project Euler由Colin Hughes (也被人称为euler) 在 2001年10月创建,一开始时作为mathschallenge网站的一个子栏目。它是一个具有挑战性的不仅仅需要具备数学能力的“数学/计算机编程”问题集合。

Project Euler致力于鼓励、挑战并且发展解题技巧,并且为那些对迷人的数学世界有兴趣的人提供乐趣。 Project Euler提供的问题集有不同的难度以及多种解题经验,可以进行连续的启发式的学习。也就是说,通过解决一个问题,提供给解题者一个新的概念,使解题者可以接触之前无法涉及的问题。因此,有毅力的参与者将会逐一完成每一个题目。

最后:

试试你能挑战几个吧?希望这些挑战能够激发你的好奇心,通过它们扩大视野,帮助你创造性的思考问题,因为软件开发本身就是个创造性的过程。

英文出自:Smartbear

不得不看,苹果Pay技术大起底! 详解Apple Pay:一大波iOS原生应用正在逼近! 高性能微信公众平台开发 【先锋】事务、高性能,王涛谈打造超越MongoDB的NoSQL 浅谈互联网数据中心海量运营之道 一篇文章读懂开源web引擎Crosswalk Facebook创建新开源组织TODO,Google、Twitter等继续捧场 微软明日将启动第二轮裁员 涉及所有的事业部 IBM推出Watson Analytics 将人机对话带进企业决策 参与2014中国移动开发者大调查 MDCC门票等你拿 手游开发经验谈:付费体系决定游戏收成好与坏? 惠普推出全新ProLiant Gen9服务器 腾讯安全出杀手锏 搭建全国最大Wi-Fi开放平台帮助网友免费蹭网 云与数据安全实践尽在ISC 2014(免费门票) 开源的对决,MapR将Apache Drill引入企业应用 令程序员费解的10个语言特性 走进雅虎北京全球研发中心:五年光阴缔造雅虎全球创新引擎 超强集成游戏编辑器!开源跨平台引擎Wave 求别再侵犯儿童隐私!FTC狠罚Yelp和TinyCo 华为应用市场助力开发者 软硬结合造就强大生态系统 【CTO俱乐部看板研修班北京站现场速递】看板方法:渐进变革的过程 《近匠》不背单词,用“沉浸”征服英语学习 ETpl——强复用、灵活、高性能的JavaScript模板引擎 MDCC 2014大会日程概览发布 最新嘉宾议题揭秘 终于来了,微信企业号正式开启公测! 【问底】王帅:深入PHP内核(一)——弱类型变量原理探究 谷歌Kubernetes专访:未来BigTable开发只是课后习题 首届“最具价值CTO”评选来啦!我们在找你! 【CTO俱乐部走进顺丰总部】活动图文直播进行中 中国第一个云主机评测发布:天翼云性价比第一、青云质量第一 Ruby 2.1.3发布,降低内存消耗、修复众多Bug! 請高手幫我--> 可以根據表單某欄位的值來開啟不同的表單嗎? 我的数据库是用ADO+SQL联接的,请问要如何在客户机上正常使用呢? Paper Plane 关于Aspose.excel:怎样实现Aspose.excel的风格; Apache如何调试和应用ASP、JSP(FOR Windows) java3d的问题 西安的中程什么时候开始报名,今年有没有推迟? word 的评分系统 有什么关于VC++的MFC库函数的好书吗? 压缩后的影音文件有的在播放的时候为什么不能拖动? 有关static使用的小问题 紧急求助 介绍一本讲c++常用算法的书 怎样解决屏幕的闪烁问题?十分着急。 我声明不再追小仙妹了,你们要就去追吧!! 我不反对了 请教高手:一个简单问题 execl文档如何裁减多余的表格,以便达到压缩文档的容量。 请问下面的电影中,哪些比较好看???谢谢!!! Aweay(BCB绝对实力派) 请进!领分!! c++转java需要做些什么 关于copyfile()的问题,请大家帮忙 Aweay(BCB绝对实力派) 请进!领分!!(2) sql问题,大虾救我 高分求有特殊显示效果的控件 apache与tomcat整合(交流)QQ:71279650 各位大哥,请帮帮忙 有谁知道韩文的翻译软件,谢谢?(在线等待)(1000分够不够?) 請問在sql server2000存儲過程的屬性窗口怎樣設置一個TAB鍵的大小(空格數),注意:不是在查詢分析器中。 如何在JSP里面自定义方法并调用而不用JavaBean? 在GB2312下DROPDOWNLIST中无法选择中文,而英文可以,为什么? 如何 整合 sqlanywhere 到我的程序中阿 摄像头问题,急!! 首次上来,想要一个查询。 关于色彩具类的问题! 请大家多多指教!!!!!!!!!!!!!!!!!!!!!!!!!!! 如何根据IP获得机器名,可以是根据dos命令实现 读出的文本是乱码,求救 读取Access数据库报错,急 急!电脑为何无过重启 oracle8i 中的apache port的问题? 请教,怎么用vb“破坏”一个数据库,在“恢复” 回来 毕设求助 请谈谈做大数量遍历时,采用ArrayList和LinkedList在性能方面的差别. 大家好! 在frontpage 中插入某.swf 文件时, 提示说“不能加载该文件”,请问怎样解决 QT&Kdevelop雕虫小技集(原创) 唐伯虎 大哥们, 为什么老是发出更新临时表的警告窗口? 双机互连上广域网SOS,高分致谢! 请问有哪些方法可以统计线程之间创建顺序的序列号? 请问:用web服务可以做到把一个信息用短信的形式发送到指定的手机里吗? 一个养禽专业户想用一段长24米的篱笆一面墙围成一个长方形养鸡场,如何围这鸡场 读了完壁归赵和绳池之会你知道蔺相如是个什么人 谁知到骆驼能不能半年不喝水? 斗去一笔是什么字 蔺相如绳池会的主要内容是什么 再沙漠之中,骆驼可以几天不用喝水?他是怎么再那里生存的? 热得aab行视的词? 绳池之会从哪里可以看出蔺相如聪明 初中诗歌赏析题下列诗句品析有误的一项是(3分) A.“海日生残夜,江春入旧年”,这两句诗极具艺术表现力.诗人赋予“日”与“春”以物的新旧交替,“生”与“入”以人的意志情思,蕴含着 诗句青山什么,毕竟什么. 捕食者能够选择被捕食者 这句话这对了 不是应该是自然选择么 英语翻译A:I’m so sick of calling the symphony(交响乐)office?The number for ticket order is always busy.B:Why don’t you order through the mail the way I do?有什么固定短语吗? 英语翻译我是问”王桀字仲宣”这篇文言文的翻译拉! 政治学问题1.一般来说,国际政治学包括?( )2.西方第一部最完整、最系统地论述国际关系理论的著作是( )3.西方国际关系理论中形成最早的的一个学派是( ) 英语翻译我的寒假计划是这样的先做作业然后去外婆家过年过好玩电脑每天5小时早上运动下午玩电脑晚上不玩电脑晚上看电视. 焗字用极品五笔怎么打 异特龙VS棘龙谁厉害?异特龙长:12~13米,最大重4吨,高5.5米.棘龙长:12~18米,最大重20吨,高7米. 英语翻译A:Ted,would you be interested in serving on the membership committee this year?B:Uhm,can I get back to you on that?What will the man probably do?(A) Reschedule the meeting.(B) Cancel his membership.(C) Take some time to decide.(D) Talk to 远古时代最凶猛的霸王龙最高有多高呢? 异特龙是最厉害的吗?大家都说霸王龙最厉害,可也有人说异特龙厉害.到底谁厉害呢? 骆驼在沙漠里怎么找到水? 霸王龙和暴龙谁比较凶猛?^O^ 5.负荆请罪中蔺相如和廉颇是个怎样的人,你从文中的哪句话可以看出 你一个人被困在沙漠中,只有骆驼和你相伴,而水只够喝两天,你该怎么办? 让苍蝇变得像蜜蜂一样可爱是什么意思 英语翻译我叫张澳,弓长张的张,澳门的澳,到今年的12月我就14岁了.我性格开朗,爱好广泛,喜欢结交朋友,打篮球是我的最爱,有时也会钻进书堆去钻研钻研 已知:a^4+b^4+c^4+d^4= 4abcd,且a,d,c,d都是负数,试证明a=b=c=d.RT 苹果和桔子共200千克,苹果的重量是桔子的3分之1,橘子和苹果各几千克,方程解 急求几首哲理诗(有要求)分别写出诗的来源,朝代,作者,并分别作赏析.(赏析千万不要太长,原创得也可以,因为很难抄的.嘿嘿)任务比较重啊. a^4+b^4+c^4+d^4=4abcd 求证a=b=c=d 墙字反笔怎么写 仿写句子:当四周很安静的时候,( )在弹琴. x的平方减1的分解因式. 那位手机高手给我详细解释下ROM和RAM? 理综生物,第四题的b项,为何错了!?图 天才来自勤奋 谁说的 智能机的RAM和ROM是什么意思,用最通俗的语言解释那些答百度一下的给我滚,那些粘贴什么百科的也给我回避.RAM容量大和ROM容量大对手机的运行速度的分别有什么影响?买手机要注意看ROM还是RAM 15号就考试,捕食关系、觅食关系的区别?吃与被吃属于生物之间的关系吗?求吃与被吃与捕食关系的区别?比如说:狼和羊是吃与被吃还是捕食?羊和草呢?网上有的说,动物吃植物是吃与被吃,动物 把63560000改写成用亿作单位的数,精确到十分位. 世界上一共有多少种交通工具? 人吃动物 算是不是关系吗?打错字了是 人吃动物 算捕食关系吗 995070000把它改写成用"亿"作单位的数是( ),在精确到十分位是( ). water 的现在分词为什么不双写n 分解因式 (1-a^2)(1-b^2)-4ab分解因式 (1-a²)(1-b²)-4ab 什么而出形式的词语比如说破土而出、鱼贯而出、破门而出.还有什么? 第15题,求方法 分解因式(a^2-1)(b^2-1)+4ab 描写母亲的20个好词还有十个好句 发现一只昆虫,不知道叫什么? 第15题,说明是怎么求的的. 骆驼最早生活在什么地方a.非洲 b.北美洲 厕所发现一头虫子不知是什么头部蜘蛛一般很多细触角,无翅膀,一根指头长,有一个有点像泥鳅的尾巴,但比泥鳅细很多有粘性.很长,请教这是什么虫, 求网络高人把这段现代文翻成文言文当有一天,我的生命走到了尽头,回顾往事,一阵凄凉之意涌上心头 英语翻译哪位英语高手帮我翻译下面的话When come to shoes,Gucci shoes,the Nike shoes may spring in your mind at once.Well,the Nike is one of the famous brands in the world.With the innovation of the Nike Company,the styles of the wonde AAB式的形容颜色的词语 如何调配出七种颜色利用三原色 液体颜料 红黄蓝 怎样搭配出赤橙黄绿青蓝紫 这七种颜色 是怎样的比例混合出来的 汉译英:骆驼生活在沙漠附近有许多草的地方. 图是某个养禽专业户用一段长13米的篱笆围成的一个长方形养鸡场,求养鸡场的占地面积. 政治学的题目:1你认为当代中国政治发展中存在的最大障碍是什么?如何消除这一障碍?2对当代中国选举制的认识3简述马克斯·韦伯关于三种权威的划分. 骆驼为什么可以长期不喝水? 加拿大政府受困“骗领门” 参议员公务孕妇遇车祸入院治疗 腹中3个多月胎儿闲林水库月底基本完成坝体填筑 明年主杭州新能源汽车4年来仅上路2563辆浙江702个重点污染源实现刷卡排污 中小企业融资对接(图)浙江省委常委参加指导专题民主生活会富阳造纸业再度产业升级 百余造纸企业萧山万丰商住楼10多户人家遭遇用水难杭州1号线地铁三个高架站点碎了46块省卫生厅、省公安厅联合发文加强医疗场温州多地出现真假拼接的百元钞 可看到中方敦促日方停止刻意渲染外部威胁 说外媒称俄罗斯在G20峰会监控各国元首美国安局长监控欧洲盟国 称媒体误读斯永康68岁大爷得乳腺癌 百例患者中就杭州男子自家仓库中出现一条1米半大蛇瑞安5岁男孩被陌生男子挥刀砍伤 尚未各国如何处理打医生?潘基文欢迎以色列接受国别人权审查“世纪审判”撞上美窃听门【推广】科瑞与DALMA逆势签署2亿知食|北京烤鸭不得不说的事儿投资人脉的三条原则人民币7天6次逼近跌停,房价要暴跌?怒赞!把A股保卫战做成纪录片了(强烈欧元暴跌时机,如何用红酒进行赚钱股市大跌、IPO暂停,中概股为何仍然揭秘:P2P与银行的两大根本不同A股市场诞生4只奇葩的股票 不涨停就【项目征集】怒吼吧,鲜肉们!快来杭州下周反弹需要放缓步伐盘点50款全球最贵的葡萄酒给独裁者当替身是怎样一种体验?男人如何戴围巾,领略时尚没有一点点防备,Uber在微信上凭空那些艳名远扬的爱巢 | 趣点像乔布斯一样,拥有征服TED讲台的演没去过迪拜千万别说中国考驾照难恒生电子将关闭HOMS账户开立,真是更多勾搭技巧再次分享三星PK苹果,移动支付哪家强? |
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘