本人学习DELPHI已经半年多,买的书也有10多本了,怎么看都看不进去!
我初中没毕业,没英语和数学基础,变量、常量、语法、函数、类一切东西都不懂!
看着书里写的这些东西让自己好迷糊,连续坚持学了半年了,依然什么都不会!
哪位高手认为自己牛X的,麻烦指导下,我该先学什么?
怎么才能懂那些什么变量、函数等东西?给个详细指导好么?
别说建议看什么DELPHI入门到精通,都是骗人的,根本看不懂,入什么门?
我初中没毕业,没英语和数学基础,变量、常量、语法、函数、类一切东西都不懂!
看着书里写的这些东西让自己好迷糊,连续坚持学了半年了,依然什么都不会!
哪位高手认为自己牛X的,麻烦指导下,我该先学什么?
怎么才能懂那些什么变量、函数等东西?给个详细指导好么?
别说建议看什么DELPHI入门到精通,都是骗人的,根本看不懂,入什么门?
英语一定要学,就算不学,至少你要能看得懂语法中的英文名词。数学虽然不是必须的,但是最好能有高中水平,不然要想设计出高效率的程序是很难的。给LZ一点提示:
变量,常量和表达式是最底层的知识。
然后是3种基本流程结构即“顺序”、“选择”及“循环”。
再往后是利用常量、变量以及流程结构搭建起来的函数。
等这些都搞清楚了,再去研究类以及方法。
而语法,其实就是一种思路的描述方式,就跟我们用自然语言描述一样,只不过它是读给计算机听的。尽量用通俗化的语言来给LZ解释一下这些个名词吧===============================================
变量:你可以把它看做是一个带标签的盒子,变量名就是盒子上的标签,而这个真正有用的是变量值即这个盒子里面放的东西(比方说一块蛋糕,或者是1百块钱)。变量的内容在程序运行过程中是允许修改的。
为什么要使用变量呢?是为了说明上的需要以及便利性。想像一下这么一个情形:盘子里面放了2块饼干,我们开始一块一块的吃,吃光了就大叫“我还要饼干!”
怎么描述这个场景呢?
首先,盘子里面有2块饼干,
吃掉一块饼干,
盘子里面有1块饼干,
吃掉一块饼干,
盘子里面没有饼干了
叫“我还要饼干!”在这里,盘子里面的饼干数是随着过程的进行而变化的,因此可以把它视作是一个变量,而"盘子里面的饼干数"是它的变量名,真正有用的则是它的实际内容,如2,1,0等。
用类似计算机语言的形式写出来就是:
定义变量盘子里面的饼干数,该变量可以存放一个整数。
设置变量盘子里面的饼干数为2,
吃掉一块饼干,
设置变量盘子里面的饼干数为1,
吃掉一块饼干,
设置变量盘子里面的饼干数为0,
叫“我还要饼干!”使用Delphi的语法来描述则是var
盘子里面的饼干数:Integer;
begin
盘子里面的饼干数:=2 ;
吃掉一块饼干;
盘子里面的饼干数:=1 ;
吃掉一块饼干;
盘子里面的饼干数:=0 ;
叫“我还要饼干!”
end ;当然喽,Delphi的语法规定变量名得用英文描述,不过LZ可以把上面的内容当做是一种类计算机化的描述。=====================================================
常量:和变量类似,你可以把它看做是一个带标签的盒子,常量名就是盒子上的标签,而这个真正有用的是常量值即这个盒子里面放的东西(比方说一块蛋糕,或者是1百块钱)。但是和变量不同,常量的内容是不允许修改的。
为什么要使用常量呢?是为了使用方便。和变量不同,你可以不使用常量,只要你可以忍受由此带来的烦琐。想像一下这么一个情形:我买了一只非常精美的,用奶油、巧克力和草莓做成的象米老鼠一样的蛋糕。
现在我要把这么一个东西送给老爸,然后老爸说“它好漂亮,拿去给妈妈看看”,于是我又把这么个东西拿给老妈去看。
很简单的场景吧,设想一下如果用以下的语言来进行描述会怎么样。
我买了一只非常精美的,用奶油、巧克力和草莓做成的象米老鼠一样的蛋糕。
我把用奶油、巧克力和草莓做成的象米老鼠一样的蛋糕送给老爸,
然后老爸说“用奶油、巧克力和草莓做成的象米老鼠一样的蛋糕好漂亮,拿去给妈妈看看”。
于是我又把用奶油、巧克力和草莓做成的象米老鼠一样的蛋糕拿给老妈去看。
怎么样,很累赘吧?
再换一种写法看看:
我买了一只非常精美的,用奶油、巧克力和草莓做成的象米老鼠一样的蛋糕。
我把这个蛋糕送给老爸,
然后老爸说“这个蛋糕好漂亮,拿去给妈妈看看”。
于是我又把这个蛋糕拿给老妈去看。
怎么样,简单得多了吧?
如果在这个场景中,不存在这个蛋糕可以指向的其它东西,我们就可以把这个蛋糕的内容固定为前面所提到的用奶油、巧克力和草莓做成的象米老鼠一样的蛋糕。
因此,我们可以把这个蛋糕视作是常量名,而把用奶油、巧克力和草莓做成的象米老鼠一样的蛋糕视作是常量值用类似计算机语言的形式写出来就是:
定义常量这个蛋糕,该常量的值为用奶油、巧克力和草莓做成的象米老鼠一样的蛋糕。使用Delphi的语法来描述则是const
这个蛋糕=用奶油、巧克力和草莓做成的象米老鼠一样的蛋糕;当然喽,Delphi的语法规定常量名得用英文描述,而常量的内容用奶油、巧克力和草莓做成的象米老鼠一样的蛋糕也不是一个合法的Delphi表达式。不过LZ可以把上面的内容当做是一种类计算机化的描述。===============================================
表达式:用来描述常量或变量的值的式子。表达式有很多种,最常见的有
常数:如1,2,3等等
算式:如(1+2)*3
带函数调用的算式:如Abs(1-2)*3,展开来就是先算1-2的值得到-1,然后是算函数Abs(-1) (在Delphi中,这个函数是用来求绝对值的)得到1,最后算1*3得到3。计算机也是这么算的。
注意一点,表达式中可以使用常量和变量,
如上面的Abs(1-2)*3中,如果我们用变量a代表1,用常量B代表2,则这个式子可以写成
Abs(a-B)*3。当然,没有任何上下文的说明计算机是不会知道你要算的是Abs(1-2)*3的,因此完整的写法是
定义整数变量a(即该变量的值只能为整数),
定义常量B取值为3
Abs(a-B)*3写成类Delphi的代码为const
B=2;
...这里是其它一些无关的代码
var
a: Integer;
begin
a:=1;
showMessage(IntToStr(Abs(a-B)*3)); //这里为了体现效果,先计算表达式Abs(a-B)*3得到3,再利用函数IntToStr()将数字3转换为字符串"3",最后调用ShowMessage()方法显示在弹出窗口中。
a:= -4; //将变量a的值设置为-4,然后...
showMessage(IntToStr(Abs(a-B)*3)); //式子还是这个式子,但是出来的结果不同了,因为变量a已经不是1了,而是-4。
end ;
流程结构-- 顺序结构
顺序结构是一种动作序列,该序列按照语言的先后次序进行动作。
比如说我晚上睡觉前,要先刷牙,再洗脸,再铺被窝,最后上床睡觉,这就是一个顺序结构。
正如和我们说话习惯一样,程序中大部分的代码也是以顺序结构存在的。正因为该结构是最常见的,因此计算机语言一般不会对这种结构设置特别的标志,如上面的流程写成类Delphi语言一般就是刷牙;
洗脸;
铺被窝;
上床睡觉;而不会写成告诉计算机,以下开始的片段为顺序结构
刷牙;
洗脸;
铺被窝;
上床睡觉;
告诉计算机,顺序结构的代码片段结束
===============================================
流程结构-- 选择结构
选择结构是一种依照条件来决定执行哪些代码片段的动作规范。
比如说 如果明天天晴,我就出去爬山;如果明天下雨,我就呆在家里;如果是其它情况我就去楼下公园散步(爬山太远了,我怕变天)。
这种动作规范就是一个选择结构,这其中的"明天天晴","明天下雨","其它情况"就是3种不同的条件。
在计算机语言中,选择结构一般以关键词对if else 进行提示(不同的计算机语言略有差别,如Delphi就要求If后面要跟上Then)
如上面的条件,我们写成类Delphi语言就是if 明天天晴 then
出去爬山
else if 明天下雨 then
呆在家里
else
去楼下公园散步;注意:选择结构里面的条件判断语句中的表达式也可以使用常量或变量
比如上面的代码就可以改写成如下的类Delphi语言var
天气情况:天气; //定义一个变量,变量名为"天气情况",该变量允许存放的变量值为天气类型。
begin
天气情况:=天气预报(); //调用函数天气预报,用来收听明天的天气预报,然后把听到的天气存入变量"天气情况"
if 天气情况=天晴 then
出去爬山
else if 天气情况=下雨 then
呆在家里
else
去楼下公园散步;
===============================================
流程结构-- 循环结构
循环结构是一种依据一定条件反复执行相同代码片段的动作规范。
比如说 盘子里面有100块饼干,我一块一块的吃掉这些饼干,然后等到吃完了就大叫“我要饼干!”
怎么描述呢?
首先,盘子里面有100块饼干,
吃掉一块饼干,
盘子里面有99块饼干,
吃掉一块饼干,
盘子里面有98块饼干,
吃掉一块饼干,
盘子里面有97块饼干,
...
吃掉一块饼干,
盘子里面有1块饼干,
吃掉一块饼干,
盘子里面没有饼干了
大叫“我要饼干!”太复杂了吧!更加合理的描述是:
首先,盘子里面有100块饼干,
只要盘子里面还有饼干,我就不停的做后面两句话
吃掉一块饼干
盘子里面的饼干数量减少1
这个不停的做其实就是一种循环描述。
计算机语言中一般以for, while, until等关键词来描述循环结构,如上面的例子写成类Delphi就是var
饼干数量: Integer; //定义变量饼干数量
begin
饼干数量:= 100; //一开始有一百块饼干
While 饼干数量>0 do
begin //这里的begin和后面的end构成了一个语句块,表示这个块中的语句要么都执行,要么都不执行,因此其结果要么是吃掉一块饼干并且饼干数量减1,要么什么都不做。
吃掉一块饼干;
饼干数量:= 饼干数量-1; //开始变量“饼干数量”的值是100,代入这个式子得到100-1=99,再把这个99塞回给变量“饼干数量”。采用这种机制达到饼干数量减1的目的。
end ;
大叫“我要饼干!” ;
end ;
===============================================
函数
函数是指用于进行某种计算或动作的功能体。
比如说我晚上睡觉前,要先刷牙,再洗脸,再铺被窝,最后上床睡觉,这一整套过程我们可以把它打包到一个叫"去睡觉"的函数中用来执行这一过程。
写成类似Delphi的语言就是procedure 去睡觉(); //Delphi中将没有返回值的函数称为"过程",用关键词procedure开始定义。
begin
刷牙;
洗脸;
铺被窝;
上床睡觉;
end ;调用的时候就直接写
去睡觉(); //由于没有参数列表,因此这里的()可以省略为什么要使用函数?最直接的一个原因是使用方便。
比如上面的例子,如果我说,昨天我睡觉了,今天我也要睡觉,明天我还要睡觉,那么要怎么描述呢?
写成
昨天我刷牙、洗脸、铺被窝、上床睡觉
今天我刷牙、洗脸、铺被窝、上床睡觉
明天我刷牙、洗脸、铺被窝、上床睡觉
是不是很烦琐?
如果我们定义一个函数
去睡觉(),其内容就是刷牙、洗脸、铺被窝、上床睡觉这一整套动作,那么我们只需要描述
昨天我去睡觉()
今天我去睡觉()
明天我去睡觉()
这样会简单很多。还有一种函数是带返回值的,它不仅可以执行某些动作,还可以返回这些动作的执行结果。这里以Delphi中最简单的Abs()函数为例进行说明。
前面已经说过了,Abs()函数的作用是为了求绝对值。那么,为了求什么东西的绝对值呢?不管是张三也好,李四也罢,反正肯定是“某一样东西”。
函数需要知道的“某一样东西”或“某几样东西”就称为参数。
很不幸,在设计函数的时候,函数自己并不知道那些参数应该是什么值,因此它只能假设说我已经把这些参数存入某些名字的变量中了,然后我用这些变量来进行计算。
自然的,在设计函数的时候我们需要特别指出这些变量,因此给它一个专门的名词叫“形式参数列表”,简称“形参”。
另一方面,在实际使用这些函数的时候,程序自然已经知道了我们要传给该函数哪些内容,但是我们需要一些特别的手段来把这些内容告诉给函数。这个手段就是在调用函数的时候采用“实际参数列表”,简称“实参”。
下面看这个Abs()函数的例子。
首先用Delphi语言定义这个函数function Abs(value: Double): Double; //使用关键词function开始定义一个带返回值的函数。该函数的形参列表为实数(Double)类型的变量value,该函数返回值也是一个实数类型(Double)的数字。
var
calc: Double; //函数内部定义的变量calc,用来存放计算的中间结果
begin
if (value<0) then
calc:= -1*value
else
calc:= value;
//经过上面的计算,calc里面已经是需要的结果了, 现在要想办法把它传给外面的程序。
Result:= calc; //Delphi约定,对于函数,使用名字为Result的变量来返回结果。
end ;然后是调用它的代码var
a: Double;
b: Double;
begin
a:= -2;
b:= Abs(a); //这里传给函数Abs的实参为变量a的值,即-2。然后函数Abs通过Abs函数中的变量Result返回了数字2给外部,最后这个数字被赋值给外部变量b。因此运行后b的内容是2。
end ;
参考下这个
都要用心去看.把书里的基础代码都打一遍
先要跟Delphi哥哥混个脸熟.然后慢慢它才会喜欢上你的! ^.^
记得最开始打basic 的时候初二吧 也就 书店买了本basic的书看了下
就自己写程序了。。lz关键是小学数学没学好。。
要学会 如何自学。。
确实如此。初中没毕业,基础差太多了,天才也练不出来(peter norton、john carmack这样的天才至少也高中毕业了呀)。
noi 一样 有初中部分的
关键是教育和 自我学习。。
如果能看懂,就继续。看不懂就不要学了。
不过,有些事情不要太勉强;学学photoshop, flash这些可能相对对基础知识要求底些;
有一个人,摆过地摊、做过大厨、做过一线工人,后来嫌工资少,就报了XX机构学电脑!
3个月后竟然应聘上了JAVA工程师
能这么耐心,这么有方法的讲解,真的太热心了,好人啊!
建议你先去看Pascal的书,不要和我说看不懂变量,函数之类的东西,我初一学的Pascal,那时候学历不比你高吧?
编程的入门没什么技巧,关键是练习,你干嘛要知道变量是什么意思?跟着书本练习就是了,练习多了自然就知道干嘛用的了,你要我现在说变量的名词解释,我也不知道啊。。
建议你找基本Pascal基础的书,把书上的所有练习和课后习题全部敲一遍,敲完后,找本Delphi入门书,我记得清华大学出版社有本Delphi的大学教程的,把那个从头到尾的代码和练习也敲一遍。
希望有你这样的朋友——知识共享,互帮互助!
http://datasnap.5d6d.com/thread-45-1-1.html语法方面这本书不错,好像csdn 也有下载地址,但是我忘了在什么地方了!要做应用程序,还是要多练习,如果你一开始,就想自己实现的程序与哪些大型商业程序的一样完美,哪是很难的。
半年多的时间不长,我相信你不是半年多全天在学习!
我用了delphi 六七年了,觉得自己只是入门而已!
最好的学习方法,还是多练习,找个目标,写下简单的软件。基础有了更好,但是不是必要的,我也不懂英语,但是还是走过来了,最少,现在是全职的软件开发人员了。
看了十多本书,如果是只看不做,估计再看二十本也没有多大的提高,每一个东西,都需要在特定的环境下使用,才能显示他的好处。
比如 clientdataset 控件,我最少有三年的时间不愿意使用他,因为就是ADO两层应用,我找不到去使用及学习他的理由,最少有十个人给我说这是最基础的,必须的,可是我听不进去。
现在,我把这话重复一些比我差哪么一点点儿的初学者,他们好像也听不进去,在他们的世界里面,这是没必要的,但是你是否有看过别人,输入了多条记录,再保存的呢?为什么自己的必须要输入一条保存一条呢?觉得delphi 的学习,也是分阶段性的,如果你数据基础及英语基础也没有,还是走大众线路吧,先学会拖控件,做一些简单的应用,一定做出一个功能全一些的软件来,然后,你发现不满足了,你再去思考,我该做什么。有时从一个级别到另一个级别的跨越,需要很长时间,但是有时并不是这样,比如对开发三层应用程序,当你搞明白了后,会发现,一切,原来是哪么简单,但是在没有熟悉之前,哪估计是比上珠峰还难,因为在思维里,无路可走。还有,学习方向,估计也很重要,看你的方法是什么?
(失踪的月亮) 等 级: *****什么原因初中没毕业?滚回学校学习去
-------------------------------------------
这种人还能是五星级,品质太差了,人家初中没毕业,照样工作。好像很多名人都没毕业。
失踪的月亮有什么资格叫楼主“滚回学校学习去”,简直就是一个猪头,从头像就可以看出来!!! 哈哈