| Hao's profile电子小虫 PlusBlogListsGuestbook | Help |
|
|
花了一整天搭建开发环境昨天用Ubuntu修改分区,不小心弄得Windows启动不了。想了一下,干脆重装,咱有正版咱怕啥。我决定在上面试一试各种开发工具,开阔一下我的眼界。 Free Pascal就不说了,整天学习Pascal,怎能忘了它。 花了1个小时下载完了MinGW完整版,用的GCC 3.4.5,装上后始终编译不了程序,提示找不到什么’__divx’。最后发现是一个叫libmingwex.a的静态库有问题,换了个cygwin的。还装了Code::Blocks IDE配合。 然后又花了许久装上了Cygwin,这基本上是一个完整的Linux的移植,太大了,没全装,装了推荐的组件和开发工具(GCC 3、4)。网上说MinGW就是从Cygwin分出来的。 在MinGW的基础上,又搭建了MSYS开发环境,这个东西和Cygwin感觉差不多,只是小了许多。 最后装的是Microsoft Visual C++ 2008 Express Edition,微软免费的开发工具。只有这个东西要求重启,太烦人了! 使用我的PasCalc对几个编译器进行了测试,发现只有MinGW能编译过去。Cygwin、VC++都提示找不到stdbool.h、complex.h、stdint.h这几个C99标准增加的头文件,真让我失望(Cygwin也用GCC!)。我改了一下PasCalc,去了两个头文件,但complex.h去不了,这可是虚数计算的核心!还是MinGW最强大,对C99支持好。 还准备试一下LCC、Tiny-C、Intel C++(好像只有Linux版免费)。 汇编语言的A+B(采用C函数)前阵子学汇编语言,难死了。这是汇编版的A+B,AT&T格式,Windows函数名(Linux请把所有的_去掉),保存为*.s,可以用gcc编译:
.dataa:.int 0//加数1b:.int 0//加数2rd:.asciz "%d"//scanf参数pr:.asciz "%d\n"//printf参数
.text.globl _main_main:noppushl $apushl $rdcall _scanfaddl $8,%esp//读入a
pushl $bpushl $rdcall _scanfaddl $8,%esp//读入b
movl $0,%eaxadd a,%eaxadd b,%eax//a+b—>%eax
pushl %eaxpushl $prcall _printfaddl $8,%esp//输出
pushl $0call _exit//退出我的音乐程序核心(完整介绍) 公开一下我的音乐程序核心(请用 Turbo Pascal 编译,若200号错误请打补丁 http://www.brain.uni-freiburg.de/~klaus/pascal/runerr200/t7tplfix.zip 解压到tp/bin运行t7tplfix.exe,再按p键)。
无需开音响,可能会出现速度过快,那是程序不太稳定~~~
uses crt;
procedure music(i:integer; n,wait:integer); { i:表示音调的范围(音符下面加点的是0,无点的是1,上面加点的是2)
n:音符(1哆 2来 3咪...) wait:声音持续时间(0.1秒*wait)} var st,hz:real; {st:哆的频率 hz:音调频率} begin case i of 0:st:=130.5; 1:st:=261; 2:st:=522; end; case n of
0:hz:=-st; 1:hz:=0; 2:hz:=st*1/12*2; 3:hz:=st*1/12*4; 4:hz:=st*1/12*6; 5:hz:=st*1/12*7; 6:hz:=st*1/12*9; 7:hz:=st*1/12*11; 8:hz:=st*1/12*12; end; sound(round(st+hz));
delay(100*wait); nosound; delay(50); end; begin
music(2,1,4); {高1,一拍} music(2,1,2); {高1,半拍} music(1,3,2); {3,半拍} music(1,5,8); {5,一拍} music(2,1,4); {高1,一拍}
music(2,1,2); {高1,半拍} music(1,3,2); {3,半拍} music(1,5,8); {5,两拍} .....
end.
vbs小程序,算阶乘的保存为.vbs文件即可:
dim n,ans,i
n=inputbox("n(0<=n<=170)=") ans=1
for i=1 to n ans=ans*i next msgbox(ans)
|
|
|