程序设计
文章平均质量分 70
davelv
这个作者很懒,什么都没留下…
展开
-
程序设计,就是这样——如何学习程序设计
有许多网友都曾迷惑地问我:“怎么样才能学好程序设计?”,这不是一两句话能说清楚的,于是我就写了这篇文章,给广大爱好者一个能解惑的方法,无论你是什么样的“鸟”相信都能在这篇文章里找到你想要的 什么是程序设计 话就从一个著名的公式说起:程序设计=数据结构+算法 每当我写下这个公式的时原创 2005-03-29 10:49:00 · 5829 阅读 · 8 评论 -
循环不变式的思想及其应用
<br /> 循环不变式的思想及其应用<br /><br /> 循环不变式(loop invariants)不只是一种计算机科学的思想,准确地说是一种数学思想。在数学上阐述了通过循环(迭代、递归)去计算一个累计的目标值的正确性,属于基础数学的范畴,而且在计算机上也应用广泛。初次见到这个词是在《算法导论》,在第二章描述了这个思想和正确性,后来又在《编程珠玑》上再次重逢,不得不说是一种缘分。决定把自己的一些认识记录下来,用于阐述和传播这种优秀的基础方法。<br /> 循环不变式主体是不变式,也就是一种原创 2010-10-20 03:04:00 · 9114 阅读 · 6 评论 -
《狂人C》读評(一) 理解程序设计篇
<br />KBTiller兄在书籍扉页写指正,不敢指正,共同讨论。其实第一篇在年前已看完,由于过节心态浮躁一直没能总结记录。仔细想想自己真是拖拉的要命,再不写点东西对不起KBTiller兄的热情心意。本文大部分内容属于跟作者观点不一致的描述,我不是初学者,所以与其是读书笔记,不如说挑刺,尽管这样,书中还是有不少让我受益良多的地方。为了整理方便,主体内容分四个不同的部分,有的问题分界比较模糊,主观因素比重很大。至于为什么会这么长,那是因为我吹毛求疵了 :)。<br /><br />一、精彩绝伦:我认为的很出原创 2011-02-17 17:35:00 · 6196 阅读 · 49 评论 -
关于并行计算发展的一些思考
本文是在CU论坛上回答网友的问题《C语言标准有没有规定前一个语句必须在后一个语句之前完成?》而引发的关于并行处理的一些见解和思考,以下正文 难得OwnWaterloo老兄想起了在下,以及最近我也看到了一些并行方面的帖,就浮上水面说说自己的见解吧。 C语言是典型的Von原创 2011-10-17 21:15:06 · 2088 阅读 · 2 评论 -
编译的学习和实践日志七[有穷自动机]
"早起才能早睡" from 觉主语录> 有一个月没有更新日志了,dave要宣布一个非常不好的消息:系里以没有老师能够指导编译方向为由,拒绝了我的毕业设计选题。dave当时就想说:诺大一个万余人的University,居然还好意思说没有老师能够指导,这也显得学生我太NB了吧,真不好意思在这里继续读下去了。无奈选择了XX管理系统,所以这日志也应该是我今年最后一篇了吧。这次内容是有穷自动机原创 2009-12-05 07:28:00 · 1079 阅读 · 3 评论 -
[C] 编译的学习和实践日志五[考试归来话正则]
当下定决心去做一件事情的时候,就没有什么可以阻挡我!譬如去睡觉--! from 《觉主语录》令我忐忑不安的高数学位证考试过去了,结果还是满意的。虽然花了3周的时间去准备复习数学,但是我却发现,真正去学习的时候只有最后那两天,以往的时间全是浪费掉了。遂明白,为什么同一种环境下的人,有的成了天才,有的沦为平庸。终于可以比较放心的继续编译了。《编译原理》看到了第三章,词法分析,目前需要值原创 2009-10-30 19:25:00 · 738 阅读 · 3 评论 -
编译的学习和实践日志二[我的目标是]
不是没有蛀牙 >_根据以往的经验,我暂定了一个目标。编译器C语言编译器x86平台的C语言编译器c89或以上标准的C语言编译器兼容GCC汇编(或AT&T汇编?)和c89或以上标准的C语言编译器对于我来说C是非常熟悉的,x86是现成的,c89是规范的,至于GCC的汇编则是为了偷懒的。其实直接编译成as和ld可直接汇编和链接的AT&T汇编也是可以的(会多花一些时间),GCC已原创 2009-10-07 17:04:00 · 666 阅读 · 0 评论 -
编译的学习和实践日志一[Final Mission Start]
终于要开始毕业设计了,毫无疑问,要做的东西就是编译器。 编译器在广大开发人员心中的地位和分量几乎是最高的,当然我也不例外。自从高中时候第一次用pascal写出helloworld程序的时候,我就想,这是一个多么神奇的程序,居然可以让电脑把自己的想法变成可以实现的东西。如今四五年转眼而过,我也学了不少计算机科学的基础知识,编译器也不再那么神秘,所以就趁这次毕业设计来完成自己的心愿。 完成原创 2009-10-07 17:02:00 · 646 阅读 · 0 评论 -
编译的学习和实践日志六[链接和库]
钟鼓馔玉不足贵,但愿长睡不复醒! from 《觉主语录》最近这两天总是起的很晚,大概都到12点了吧。也许是熬夜太多,可是在学校这种环境下,也只有晚上才能让我静下心来学习吧。今天是稍硬的话题,库和链接方面的内容。库分为动态库和静态库,在linux下的后缀名分别为.so/.a 在win下应该是.dll/.lib。动态和静态的主要区别在于库的内容装入可执行文件的方式:静态库是在程序链接的时候直接原创 2009-11-04 04:19:00 · 651 阅读 · 0 评论 -
WebBenchPro(一个快速易用的Web性能测试器)版本0.1发布
背景:最近在做一些web相关工作,就发现了webbench这个性能测试工具,非常简单易用。但是在用的过程中也是不尽如人意,于是萌生了改进的念头。webbench是基于GPL授权协议的,我自然可以取得源码修改,然后作为webbench_pro这个项目发布。简介:WebBenchPro 是由webbench改进而来的一款简单易用的web性能测试工具WebBenchPro 是原创 2011-11-06 06:27:43 · 2087 阅读 · 3 评论 -
从qsort的局限性闲话gcc对“闭包”运算的支持以及DEP/NX的影响
一、问题的产生:前几周/月?在CU论坛闲逛时看到OWO同学出了一道C语言题,由于年代久远细节记不得了,以下是自己对关键问题在记忆中改造后的描述://有一个enum表示科目,以0开头,以TYPE_END结尾,其余默认enum subject_type{CHINESE=0, MATH, ENGLISH, TYPE_END};#define N 100//有一结构体表示学生信息str原创 2011-12-17 03:58:05 · 2290 阅读 · 10 评论 -
C语言中左值概念的一些汇总
<br />1、左值是一个表达式,可以读取或者修改它所引用的对象。对象是一块内存区域,可以读取或者修改它的值。<br />2、左值也可以是只读。<br />3、能放到等号左边(对其赋值)的一定是左值,但并不是所有的左值都可以放到等号左边(对其赋值)。<br />4、左值可以是不完整类型但不能是void类型<br />5、除了字符串字面常量外,其他任何结果为数组类型的表达式均不可以作为左值。<br />原创 2010-10-09 22:49:00 · 1665 阅读 · 10 评论 -
gsoap使用点滴
今天不记录无聊的生活,记录技术问题,技术也是生活的一部分。gsoap探索中的点滴。 内存管理部分: 1、gsoap所有out出去的数据必须自己分配空间,写入数据;而in进来的数据由gsoap自动完成,我们所需的只是把in函数的返回的数据指针保存到相应位置。 2、gsoap每次在接受数据的时候都会回收一些临时分配的动态内存,如果SOAP头,如属性表等等,所以不能指望某些原创 2010-04-12 23:26:00 · 2384 阅读 · 7 评论 -
C++ 重写了一个学生管理程序(作业题)
前几天看到CFAN论坛某位同学的作业帖子,决定帮一下,发帖子也是原先的版主,不理人家多不好。拿到题目一看,是C++的,那位同学给了个源码,是论坛上另外一个同学写的,结构比较混乱,功能也没完善。他原本的意思是让我修改下,结果我看那个结构,只能重构了。。这个很惭愧的说,不会C++,但是又答应帮人家了,于是拿出勇气来,床头放本Cpp primer,google准备着,vim开开。今天一整天的时间原创 2010-01-11 01:53:00 · 2518 阅读 · 10 评论 -
ASP和JAP的种种区别
从微软推出了ASP(ActiveServerPage)后,它以其强大的功能,简单易学的特点而受到广大WEB开发人员的喜欢。但是它却有微软产品的通病,只能在Windows平台下使用,虽然它可以通过增加控件而在LINUX下使用,但是其功能最强大的DCOM控件却不能使用。而SUN公司在JAVA的基础下开发出的JSP(Java ServerPages)实现了动态页面与静态页面的分离,脱离了硬件平台的束缚,原创 2005-04-11 15:43:00 · 2475 阅读 · 2 评论 -
C语言教程--第一章: C语言概论(连载中)
C语言的发展过程 C语言是在70年代初问世的。一九七八年由美国电话电报公司(AT&T)贝尔实验室正式发表了C语言。同时由B.W.Kernighan和D.M.Ritchit合著了著名的“THE C PROGRAMMING LANGUAGE”一书。通常简称为《K&R》,也有人称之为《K&R》标准。但是,在《K&R》中并没有定义一个完整的标准C语言,后来由美国国家标准学会在此基础上制定了一个C原创 2005-05-27 19:50:00 · 1798 阅读 · 2 评论 -
C语言教程--第二章: 数据类型、运算符、表达式(连载中)
C语言的数据类型 在第一课中,我们已经看到程序中使用的各种变量都应预先加以说明,即先说明,后使用。对变量的说明可以包括三个方面:·数据类型·存储类型·作用域 在本课中,我们只介绍数据类型说明。其它说明在以后各章中陆续介绍。所谓数据类型是按被说明量的性质,表示形式,占据存储空间的多少,构造特点来划分的。在C语言中,数据类型可分为:基本数据类型,构造数据类型,指针类型,空类原创 2005-06-18 08:49:00 · 1652 阅读 · 1 评论 -
程序设计,就是这样——如何学习程序设计(完整版)
有许多网友都曾迷惑地问我:“怎么样才能学好程序设计?”,这不是一两句话能说清楚的,于是我就写了这篇文章,给广大爱好者一个能解惑的方法,无论你是什么样的“鸟”相信都能在这篇文章里找到你想要的 什么是程序设计 话就从一个著名的公式说起:程序设计=数据结构+算法 每当我写下这个公式的时候,心中总有一种新的感悟,可是就这个程序界尽人皆原创 2006-02-16 05:41:00 · 2000 阅读 · 3 评论 -
金山两道程序题(排列和组合)
编程 1 给定一个字符串,输出给定字符串所有的组合的函数,例如:字符串 abc 所有组合 abc acb bac b ca cab cba六种组合 编程 2 给定一个数组大小m和一个数组array m = 10; array = {1,2,3,4,5,6,7,8,9,10} 求从array中任意取得n(n 方法原型 :int getotalNum (int[] arr原创 2009-11-21 16:19:00 · 920 阅读 · 3 评论 -
有趣的C语言问题 测试你对C语言的熟悉程度
在翻matrix67同学的blog的时候发现一些很有意思的C语言题目,特转过来让大家讨论下 1、下面这个程序输出什么?enum {false,true};int main(){ int i=1; do { printf("%d/n",i); i++; if(i转载 2010-01-26 00:40:00 · 1300 阅读 · 2 评论 -
金山程序题2的优化
前几天把金山公司给的程序题解了下,代码也贴出来了,原文在这里:http://student.csdn.net/space.php?uid=53444&do=blog&id=16634 编程 2 给定一个数组大小m和一个数组array m = 10; array = {1,2,3,4,5,6,7,8,9,10} 求从array中任意取得n(n 方法原型 :int getotalNu原创 2009-12-06 12:15:00 · 937 阅读 · 2 评论 -
HDU1042解题报告
一、题目规定 Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Problem Description Given an integer N(0 ≤ N ≤ 10000), your task is to calculate N! Input One原创 2010-02-12 05:36:00 · 1272 阅读 · 2 评论 -
金山程序题2优化续 之[生成函数篇]
上篇帖子链接:金山程序题2的优化照例先给出题目: 给定一个数组大小m和一个数组array 求从array中任意取得n(n 例如: m = 10; array = {1,2,3,4,5,6,7,8,9,10} 共10种取法 1 2 3 4, 1 2 7, 1 3 6, 1 4 5, 1 9, 2 3 5, 2 8, 3 7, 4 6, 10 方法原型 :int原创 2009-12-15 01:02:00 · 1166 阅读 · 1 评论 -
POJ “顶嵌杯” 题目 代码 [菜鸟级别]
Problem A: 位操作Description假设你工作在一个32位的机器上,你需要将某一个外设寄存器的第X位设置成0(最低位为第0位,最高位为第31位),将第Y位开始的连续三位设置成110(从高位到低位的顺序),而其他位保持不变。对给定的寄存器值R,及X,Y,编程计算更改后的寄存器值R。Input仅一行,包括R,X,Y,以逗号","分隔,R为16进制表示的32位整数,X,原创 2010-01-05 16:09:00 · 1599 阅读 · 1 评论 -
利用huffman编码实现压缩文件
哈夫曼是一种常用的压缩方法。是1952年为文本文件建立的,其基本原理是频繁使用的数据用较短的代码代替,很少使用的数据用较长的代码代替,每个数据的代码各不相同。这些代码都是二进制码,且码的长度是可变的。如: 有一个原始数据序列,ABACCDAA则编码为A(0),B(10),C(110),(D111),压缩后为010011011011100。 产生霍夫曼编码需要对原始数据扫描两遍,第一遍扫描要精原创 2008-12-23 13:52:00 · 9093 阅读 · 13 评论