矿石收音机论坛

 找回密码
 加入会员

QQ登录

只需一步,快速开始

搜索
楼主: 林强

你对编程感兴趣吗?

[复制链接]
     
 楼主| 发表于 2022-12-14 20:48:21 | 显示全部楼层
闻太师 发表于 2022-12-14 20:44
那是你算法的问题,比如可以做个判断,如果某一轮没有交换过,就说明排序完成结束循环。

你说的没错,这就是很多人讲的程序优化的问题了,你写的程序能不能干活,和干的好不好是两回事了
回复 支持 反对

使用道具 举报

发表于 2022-12-14 22:18:53 | 显示全部楼层
林强 发表于 2022-12-14 17:49
这TI-BASIC和上个世纪的BASIC已经不太一样了,对于菜鸟的我来说,至少没有了行号,也无法用POKE CALL去写汇 ...

BASIC也是我最早学的语言。上初中时就有教过,但是学得是懂非懂。
后来我爸给买了一台小霸王学习机,在上面才把BASIC学得比较熟悉,后来上大学还去考了个BASIC的初级程序员。
再后来,学习了C语言后,就再也没用过BASIC,现在基本忘记了。

评分

1

查看全部评分

回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2022-12-14 22:54:58 | 显示全部楼层
youngchun 发表于 2022-12-14 22:18
BASIC也是我最早学的语言。上初中时就有教过,但是学得是懂非懂。
后来我爸给买了一台小霸王学习机,在 ...

别小看小霸王学习机,在上面可以跑汇编程序哦,只是不能存东西,这是因为厂家为了防止盗版,改了键盘定义,造成无法使用LOAD和SAVE指令,本来是可以用录音机存储程序的
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2022-12-14 23:06:17 | 显示全部楼层
现在问题来了,怎么判断数字没有交换,排序完成了呢?
回复 支持 反对

使用道具 举报

     
发表于 2022-12-14 23:09:51 | 显示全部楼层
本帖最后由 ssffzz1 于 2022-12-14 23:13 编辑
林强 发表于 2022-12-14 23:06
现在问题来了,怎么判断数字没有交换,排序完成了呢?


1)进入内层循环前清零一个标记 f=0
2)在内层循环里如果发生交换swap里面将标记置位f=1,
3)退出内层循环的时候,判断f==0,退出排序。

说起来麻烦,不过这事你怎么着也的把程序贴上来吧。

评分

1

查看全部评分

回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2022-12-14 23:17:04 | 显示全部楼层
ssffzz1 发表于 2022-12-14 23:09
1)进入内层循环前清零一个标记 f=0
2)在内层循环里如果发生交换swap里面将标记置位f=1,
3)退出内 ...

大概知道怎么搞了,这BASIC语法上有点问题,计算器没什么资料,只能摸着石头过河
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2022-12-15 15:52:01 | 显示全部楼层
接着昨天的,为了让程序识别到排序完成,可以设立一个标志位,并置1。在外循环前检查这个标志是否为1,如果为1则循环,为0则退出循环。当进入外循环时把标志置0,然后在内循环有数字位置交换时把标志置1。这个用C很容易写,但是用BASIC稍微绕一下,可以用三种方法实现
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2022-12-15 16:00:47 | 显示全部楼层
1,外循环用FOR语句时,在循环后判断标志是否为0,如为0用exit语句直接跳出循环
2,外循环用FOR语句,在循环后判断标志是否为0,如为0用GOTO语句跳出循环
2,外循环用while语句,在循环前判断标志是否大于0,如为0,则直接结束循环
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2022-12-15 16:04:51 | 显示全部楼层
这里面学到了for和while的不同,当知道一个循环的次数时用for,对于循环次数未知时用while,本例中排序的循环完成次数是未知的,所以用while更合适,语句更少。
回复 支持 反对

使用道具 举报

     
发表于 2022-12-15 16:08:43 | 显示全部楼层
Talk is cheap.Show me the code.


名人名言,不是我说的。专业的事用专业的语言。

评分

1

查看全部评分

回复 支持 反对

使用道具 举报

     
发表于 2022-12-15 16:13:43 | 显示全部楼层
编着玩是爱好,当职业是码农

评分

1

查看全部评分

回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2022-12-15 16:30:14 | 显示全部楼层
还是要学python,刚安装好,以后贴代码就方便多了,当然计算器也要会玩

py.png
回复 支持 反对

使用道具 举报

     
发表于 2022-12-15 18:44:32 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2022-12-15 19:33:12 | 显示全部楼层
bis 发表于 2022-12-15 18:44
计算器编程也能玩儿起来?中学生吧。

玩啥不是玩,这个计算器功能还是很强大的,新款的有python,
回复 支持 反对

使用道具 举报

     
发表于 2022-12-15 19:41:29 | 显示全部楼层
好,递归,除了耗费内存栈外,几乎没什么缺点

>>> def f(j):
...     if j==0:
...             return(1)
...     return(j*f(j-1))

这样更紧凑,一个意思。
回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 加入会员

本版积分规则

小黑屋|手机版|矿石收音机 ( 蒙ICP备05000029号-1 )

蒙公网安备 15040402000005号

GMT+8, 2025-4-30 19:56

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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