- 浏览: 72999 次
- 性别:
- 来自: 杭州
最新评论
文章列表
游程编码
(Run Length Encoding
) 是一种简单的编码方法,通常用于控制论中对二值图像编码。ACM有一道题目就是关于该编码。见tzu 1149
或poj 1782
。虽然是简单题,我却花了好大功夫才搞定,功力还是不足阿。
程序代码如下:
#include <stdio.h>
#define MAX 1024
int printStr(char *str, int len);
int main(void)
{
char target[MAX];
int diffCount,sameCount;
char *pFirst ...
关联数组(associative array
)是一种常用的抽象数据类型。它有很多别名,例如associative container
, map
, mapping
, dictionary
, finite map
, table,index
等。它的特点是由一个关键字和其他各种属性组成的集合。典型的操作包括插入,删 ...
生命游戏(game of life)
- 博客分类:
- C语言
生命游戏
(game of life
)是一款非常著名的游戏。它包括一个二维
矩形世界,这个世界中的每个方格居住着一个活着的或死了的细胞。一个细胞在下一个时刻生死取决于相邻八个方格中活着的或死了的细胞的数量。如果相邻方格活着的细胞数量过多,这个细胞会因为资源匮乏而在下一个时刻死去;相反,如果周围活细胞过少,这个细胞会因太孤单而死去。规定当相邻方格的细胞有两个为生时这个细胞的状态不变,有三个为生时该细胞为生,其他情况下该细胞为死。rosettacode
(another similar site
)上有各种程序设计语言编写的源代码
(其中的c语言源代码在windows控制台无法显示效 ...
nethack是一款开源游戏,不支持声音和华丽的图像,却被称为最好玩的游戏之一。
相关链接:
nethack主页
nethack下载地址
nethack wiki
nethack贴吧
beginner's guide to nethack sources
其他一些有趣的链接:
games in c with source code
useful libraries for c
open source game for windows
the interactive fiction archive ...
无意中在网上找到的turbo c 2.0相关文档,有reference guide 和user guide.下载地址见(镜像一
,镜像二
,镜像三
,镜像四
)。这些网站还有很多其他各类软件相关文档,感兴趣的可以自己看看。另外,还找到了一个borland c++ dos reference(见附件相关内容,其中一章内容是关于bgi库,borland c++ programmer's guide中也有一章是关于bgi,下载地址:镜像一
,镜像二
,镜像三
,镜像四
)
想编程绘制一些简单的图形,有不少的图形库可以选择:
(1)BGI图形库:即turbo c所带的图形库。misaki
在vc(vc6,vc2008,vc2010等)下重写了该库,名为EGE
。另一个类似的vc(vc6,vc2008,vc2010)下的库名为easyX
。mingw下(也可用于vc2005和vc2008
下)移植版本名为WinBGIm
(下载地址
,头文件302行int right=0需改为int top=0,否则编译会出错)。还有一个unix/linux/bsd下的库,名为turboC
,它使用xlib和curses库来代替tc下的graphics.h和coni ...
sicp
(structure and interpretion of computer programs
,编号为6.001
)是麻省理工学院的一门经典计算机入门课程,虽然近年被另外一门课程所取代(6.00
或6.01
),但最近好像有复活
的迹象。Perter Norvig
写了关于sicp的书评《It's the ...
codeblocks
是一款开放源代码的跨平台的c/c++集成开发环境,它是用wxwidgets
开发的,并且支持插件,功能很强大。可以用来在windows开发各种程序。下面记录一下我安装该软件的过程:
首先到http://www.codeblocks.org/downloads
下载该软件,选择含mingw的文件(codeblocks-10.05mingw-setup.exe),然后安装即可。完成之后,需要修改环境变量,可以用rapid ee
很方便的增加环境变量,将C:\Program Files\CodeBlocks\MinGW\bin添加到PA ...
学习了一门语言以及数据结构之后,通常需要做一些项目来巩固所学的知识,我感觉最好是用写一些简单的小工具或者小游戏,能够提高自己的编程能力,也能进一步提高自己学习的兴趣。最好的是将自己想做的事情用程序的实现,比如写个小计算器等等。如果缺乏这方面的思路,可以参看下面的一些想法:
(1)一些编程方面的小挑战或教程:Programming tasks and challenges
Beginning Algorithm Contests
(2)一些小项目: c++ projects
(3)简单小游戏:例如四子棋
(connect four
...
根据haskell的官方定义,haskell是polymorphically(多态) statically typed静态类型), lazy(懒计算), purely functional language(纯函数程序设计语言).而函数程序设计语言都是以lambda calculus为理论基础的。事实上,现在越来越多的编程语言( ...
问题描述:给定一个序列a[1],a[2]...a[n],求解其连续子序列中元素和的最大值
例如: 6 -1 5 4 -7 这个序列最大连续子序列和为14
具体问题见: HDOJ 1003 TZU 1202
这个问题在《数据结构与算法分析--c语言描述》(weiss著)中文版第13页(英文版第18页)中也有描述。在第21页给出了一个算法程序:
int MaxSubsequenceSum(const int A[], int N)
{
int ThisSum,MaxSum,j;
ThisSum = MaxSum = 0;
for(j = 0; j < N; j++)
...
如果想提高编程能力,最重要的就是多练多学,现在网络上提供了大量的习题库,可以很方便的练习编程。
ACM/ICPC题库(支持c,c++,java,pascal):
台州学院acm
:有不少习题使用中文描述,分类清晰,适合初学者。题目分类
可以作为参考。sdut acm
也有类似题目
lucky猫的ACM园地
:acm试题的中文翻译,其题目编号与uva的编号一致。其网站下方的几个友情链接也很棒
UVA
:ACM的大本营,ACM题目难度分级列表
可以作为参考。.
sagit的acm答案
: 部分习题的acm答案,其 ...
coroutine
(通常被译为“协作程序”或"共行程序“)是程序设计中一个非常重要的概念,通常可用于多任务协作处理、迭代器和管道中。它最早出现于”Design of a Separable
. Transition
-Diagram Compiler
“这篇论文中,taocp
(the art of computer programming)第一卷1.4.2节也对这个概念进行简单的讲解。Building Coroutines
用图示来说明coroutine的概念。c语言中实现coroutine有以下几种方法:
(1)Coroutines in C
(2)使用 ...
http://c2.com/cgi/wiki?CategoryBook
计算机方面的书籍推荐
http://bookshelved.org/cgi-bin/wiki.pl?back=BookOnTheBookshelf
各种书籍推荐
http://accu.org/index.php?module=bookreviews&func=search
accu书评
http://www.softpanorama.org/Bookshelf/classic.shtml
softpanarama书评
在windows下计算一段程序的执行时间,有以下方法:
(1):使用clock()函数(需包含头文件time.h)
我的c程序代码如下:
/* computer execution time using clock() */
/* the prototype : clock_t clock(void); */
/* document url: msdn.microsoft.com/en-us/library/4e2ess30(VS.71).aspx */
#include <stdio.h>
#include <time.h>
#define LOO ...