鱼C论坛

 找回密码
 立即注册
查看: 4529|回复: 10

delhpi7中V3计算器中有些代码不是很清楚什么意思 求解

[复制链接]
发表于 2012-2-22 23:18:41 | 显示全部楼层 |阅读模式
15鱼币
视频中也没有解释!有点不太明白  !
111.jpg
V3计算器
声明.jpg
声明变量
.jpg 这个是+号中的代码
求解Oper:= '+';的含义    我知道是字符型函数赋值为+   但是不知道有什么用!

=号得代码

=号得代码
这个是=号中的代码
求解  不明白Case Oper of  什么意思  
不明白每行代码前面的'   ':+  -  *  /是什么意思





希望大家给与解答  3Q  在此15分奉上

最佳答案

查看完整内容

1.Oper:= '+'; //是指把“+”赋值给Oper这个字符型变量 比如我按下按钮“+”,Oper的值就是+;按下按钮“-”,Oper的值就是- 2.Case…of…是一种条件语句 —————————————————————————————————————————————————————————— case 语句与 if 语句功能相似,但 case 语句执行的是对一个结果的多种分支进行判断, 由 case 语句中的表达式的值来决定具体执行 ...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-2-22 23:18:42 | 显示全部楼层
本帖最后由 comeheres 于 2012-2-22 23:52 编辑

1.Oper:= '+';   //是指把“+”赋值给Oper这个字符型变量
比如我按下按钮“+”,Oper的值就是+;按下按钮“-”,Oper的值就是-

2.Case…of…是一种条件语句
——————————————————————————————————————————————————————————
        case  语句与 if 语句功能相似,但 case 语句执行的是对一个结果的多种分支进行判断, 由 case  语句中的表达式的值来决定具体执行哪个操作。当 if 语句非常复杂的时候,可以考 虑用 case  语句来代替它。
case  语句的语法格式为:

case SwitchExpression of
case1:Expression1;
case2:Expression2;

caseN:Expressionn;
else
Statement;
end;
        执行 case 语句时,首先计算出 SwitchExpression 表达式的值,然后判断 SwitchExpression 表达式的值与下面的 case1~caseN 的哪一个相同,如果有相同的,则执行该 case 值后对应 的语句;如果都不相同,则执行 else 之后的语句。其中,else 和它之后的语句可以省略, 省略后的格式为:

case SwitchExpression of
case1:Expression1;
case2:Expression2;
...
caseN:Expressionn;
end;
注意:
(1) SwitchExpression 应该是一个有序类型的表达式(如整型、字符型、布尔型、子界类

型等),不能是实型或字符串类型。
(2) caseN 的值也应该是一个有序类型的值。而且每个值必须是常量,且必须是唯一的。
——————————————————————————————————————————————————————————
也可以看看 结构化程序设计02_-_零基础入门学习Delphi_009 这节视频,如果看完还不懂再请教吧。

{:7_182:}留给LZ一点思考的余地





想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-2-23 09:15:07 | 显示全部楼层
你好Flyfish,第一次来这里!不知什么时候在网上看到小甲鱼的汇编教程!看后觉得讲课方式新颖,独特,详细!呵呵,以后也来这里和大家学习了!还请各位师兄师姐多多指教!以前也学过一些Delphi和其他编程语言!这个问题,我想如果你学过C或C++的话,就不是那么难理解了!在C中是这样写的
  1. #include <stdio.h>
  2. int main()
  3. {
  4.     float x,y,result;
  5.     char op;
  6.         printf("本程序仅演示加减乘除四则运算:(输入格式:18*99=)\n");
  7. while (3 == scanf("%f%c%f=", &x, &op, &y) )//判断如果输入格式为44+78=,就进入循环,开始计算
  8.     {
  9.         switch(op) //op为分支条件或表达式
  10.         {
  11.         case '+':result = x + y;//如果分支为‘+’,即用户输入的第二个字符为加号,进行加法运算
  12.             break;
  13.         case '-':result = x - y;//如果分支为‘-’,即用户输入的第二个字符为减号,进行减法运算
  14.             break;
  15.         case '*':result = x * y;//如果分支为‘*’,即用户输入的第二个字符为乘号,进行乘法运算
  16.             break;
  17.         case '/':result = x / y;//如果分支为‘/’,即用户输入的第二个字符为除号,进行除法运算
  18.             break;
  19.         default:;
  20.         }

  21.         printf("%f\n", result);//输入结果!
  22.                 return 0 ;
  23.     }

  24. }
复制代码
下面是Delphi的非完整代码
var
oper:char;          //上面这里行类似于C中的 char oper;定义字符变量,应该能看懂

begin               //注意这个Begin了,相当于C中的第一个大括号
case Oper of        //相当于C中的Switch(op) ,这里以字符变量Oper作为条件,C中不放在大括号内 ,与C略有差异
'+':result:=temp+StrToFloat(Edit1.Text);  //前面的'+'只是一个变量Oper的选项值而已,所以用单引号括起,StrToFloat();是Delphi字符型转浮点型函数
                      //第一个冒号,可以理解为标号,后面的冒号等于号则是Delphi中的赋值语法,给变量
                      //赋值,后面这个不加单引号的加号起加法运算作用
'-':result:=temp-StrToFloat(Edit1.Text);
//前面的'-'只是一个变量Oper的选项值而已,所以用单引号括起
                      //第一个冒号,可以理解为标号,后面的冒号等于号则是Delphi中的赋值语法,给变量
                      //赋值,后面这个不加单引号的减号起减法运算作用
'*':result:=temp*StrToFloat(Edit1.Text);
//前面的'*'只是一个变量Oper的选项值而已,所以用单引号括起
                      //第一个冒号,可以理解为标号,后面的冒号等于号则是Delphi中的赋值语法,给变量
                      //赋值,后面这个不加单引号的乘号起乘法运算作用
'/':result:=temp/StrToFloat(Edit1.Text);
//前面的'/'只是一个变量Oper的选项值而已,所以用单引号括起
                      //第一个冒号,可以理解为标号,后面的冒号等于号则是Delphi中的赋值语法,给变量
                      //赋值,后面这个不加单引号的除号起除法运算作用

end;               //看这里代码块的结束,相当于C的后半个大括号!
对比C代码看下吧,希望能够帮到你!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-2-24 01:14:37 | 显示全部楼层
这个 oper:='+'  就是很明确了说明了,+ 在这代表一个字符来出现,为了方便后面case语句的调用,否则case语句直接调用+时,就会出现混乱,就会出现+是代表正负了还是代表加减了,电脑就疯了,呵呵。正好有前面的oper:='+'  赋值,才能更好的进行正常调用。。。。呵呵 是不是表达的不够清楚了??我语文水平就这高了,哈哈 估计你能看懂了。
  后面的case语句你要看不懂,就去看视频009吧,很简单的。留给你自学下吧、
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-3-19 23:06:24 From FishC Mobile | 显示全部楼层
大家都描述得好清楚啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-3-21 13:39:38 | 显示全部楼层
大家都写得很细致了。等给分
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-6-17 13:23:29 | 显示全部楼层
其实按我自己的理解是[Oper:='+';]是指我赋给Oper一个Char型标识符号,只是为了后面程序执行当你点“=”时,程序去找到这个标识符号,已便于寻找我要执行的是哪一个语句。并不是说把“+”这个算法赋给Oper,真正地算法是在后面  ['+':result:=temp+StrToFloat(Edit1.Text);] 这一句中的第二个“+”才是真正地运算符号,说白了就是,我可以改写成这样Oper:='@';  第二句改写成'@':result:=temp+StrToFloat(Edit1.Text);结果是一样的。:lol 我现在在这个V3基础上加上Not/Or/And/Xor,希望能成功。如果成功了楼主需要可以M我,我给你源代码。:loveliness:说的不好希望大家纠正。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-5-14 16:32:21 | 显示全部楼层
不错不错,学习到了      
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-1-29 22:18:51 | 显示全部楼层
给个源码学习一下吧大神吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-8-9 14:43:08 | 显示全部楼层
不错,学习了!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-9-28 14:35:22 | 显示全部楼层
    procedure FormCreate(Sender: TObject);

procedure TForm1.FormCreate(Sender: TObject);
begin
  SetWindowLong(Edit1.Handle, GWL_STYLE, GetWindowLong(Edit1.Handle, GWL_STYLE) or ES_RIGHT);
  Edit1.Invalidate;
end;

什么意思呢

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-3-29 18:39

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表