使用循环sql语句截取字符串设计程序,删除字符串0010110100100111并输出

C++程序设计实验报告_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
C++程序设计实验报告
上传于||文档简介
&&C​+​+​实​验
阅读已结束,如果下载本文需要使用
想免费下载本文?
下载文档到电脑,查找使用更方便
还剩22页未读,继续阅读
你可能喜欢VB编程中,使用循环语句生成的程序,计算结果会中断,或是产生的数据量小于应有的实际数据量_百度知道
VB编程中,使用循环语句生成的程序,计算结果会中断,或是产生的数据量小于应有的实际数据量
设:1至45的数字里,取任意7个数相加的结果等于110的排列数据,测试通过了,不过很慢,很费系统资源,但是求和的数值小,比如30。7个数值的所有排列都可以显示出来。但是到110的话,显示只有39订筏斥禾俪鼓筹态船卡00条数据组合,远远小于实际应有的数据量。不知怎么搞了,求各位高手指点。另外,我的数据值是在文本框中显示的,加了& vbcrlf的换行命令,文本框也加上了垂直滚动条,不知道文本框有没有列数的限制?
我的语句如下,请高手帮忙修改一下,循环数据缺失的问题Private Sub Command1_Click()For a = 1 To 39For b = a + 1 To 40For c = b + 1 To 41For d = c + 1 To 42For订筏斥禾俪鼓筹态船卡 e = d + 1 To 43For f = e + 1 To 44For g = f + 1 To 45If a + b + c + d + e + f + g = Val(Text1.Text) Then Text2.Text = Text2.Text & vbCrLf & a & & & & b & & & & c & & & & d & & & & e & & & & f & & & & gDoEventNext: Next: Next: Next: Next: Next: NextEnd SubPrivate Sub Command2_Click()Text1.Text = &&Text2.Text = &&End Sub
提问者采纳
文本框字数的限制一般程序都达不到,所以不用考虑。另外如果你在计算过程中每出现结果就立即输出到文本框会导致文本框过于频繁地刷新,这个是相当浪费系统资源的,建议你在循环中当出现结果时就先将要输出到文本框的数据赋值到一个字符串中,使用Timer每间隔1秒钟就将字符串中的文本赋值到文本框中并将字符串清空,另外要记得在循环中加上DoEvents(返回程序的控制权,以便刷新文本框,或者直接加上Textn.Refresh也可以)这个可以大大提高你的程序的运算效率,你的程序耗费大量资源应该就是在这个问题上。 抱歉,应该是DoEvents我决得是不是数据总量太大了导致你无法算清结果,或者可能是你的程序运行到产生3900个左右的结果时由于后台占用了太多资源导致用户操作界面失去控制权。我运行了你的代码,首先我肯定你的程序思路是没有问题了,循环应该不会缺失,我运行你的程序在110的情况下共得出了165685种结果。但是我是事先对你的代码稍加修改后才运行的,因为你的程序存在着大量的无用运算和无用循环,这些是完全可以排除的。我是这样想的:如果在a,b,c,d,e,f,g这7个数中前几个数达到一定数值后它们的和已经大于等于110,那么后面的循环中将这七个数加起来就一定不会等于110,那么这些循环就是无用的。因而应该在程序循环的每一层套嵌中加入检测的语句,看看前几个数的和是否大于110(7个数的和大订筏斥禾俪鼓筹态船卡于110才能判断后续循环无效),如果大于,就用Exit For 语句跳出本轮循环,这样可以让你的程序运算量减少到原来的37%左右(110的情况下)另外不建议使用Next:Next:Next...这样的并列语句,这样会使代码的可读性下降。我修改后的代码如下:Dim a, b, c, d, e, f, g, x, y As LongPrivate Sub Command1_Click()y = 0Timer1.Enabled = TrueFor a = 1 To 39
If a &= Val(Text1.Text) Then Exit For
For b = a + 1 To 40
If a + b &= Val(Text1.Text) Then Exit For
For c = b + 1 To 41
If a + b + c &= Val(Text1.Text) Then Exit For
For d = c + 1 To 42
If a + b + c + d &= Val(Text1.Text) Then Exit For
For e = d + 1 To 43
If a + b + c + d + e &= Val(Text1.Text) Then Exit For
For f = e + 1 To 44
If a + b + c + d + e + f &= Val(Text1.Text) Then Exit For
For g = f + 1 To 45
'If a + b + c + d + e + f + g = Val(Text1.Text) Then Text2.Text = Text2.Text & a & & & & b & & & & c & & & & d & & & & e & & & & f & & & & g & vbCrLf
x = a + b + c + d + e + f + g
If x = Val(Text1.Text) Then
'Text2.Text = Text2.Text + Str(y) + vbNewLine
ElseIf x & Val(Text1.Text) Then
NextNextTimer1.Enabled = FalseMsgBox (&Good& & Str(y))End SubPrivate Sub Timer1_Timer()
Label1.Caption = yEnd Sub 这些代码只是提供了计数的功能,方便用于调试。代码的输出部分请根据个人喜好的方式稍加修改即可,建议参考我的回答的开头部分的输出方法。 'If a + b + c + d + e + f + g = Val(Text1.Text) Then Text2.Text = Text2.Text & vbCrLf & a & & & & b & & & & c & & & & d & & & & e & & & & f & & & & g这一句也要修改,每个数据段的换行符应该加在数据段的末尾而不是开头,不然第一个数据段上方也会有一个空行。--------------------我是分割线--------------------我又尝试了一下代码,发现大约输出到3900左右的时候文本框的内容的字符数量达到了65535,因为Text.text属性是String类型的,所以最大容纳的字符数量不能超过65535。你可以把输出的文本框换成RichTextBox,需要在工程、部件中选择Microsoft Rich TextBox Control 6.0,然后工具箱中就会出现RichTextBox控件了。这是最新的代码:Dim a, b, c, d, e, f, g, x, y As LongDim st As StringDim Flag As BooleanPrivate Sub Command1_Click()y = 0Timer1.Enabled = TrueFlag = TrueRichTextBox1.Text = &&x = Val(Text1.Text)For a = 1 To 39
If a &= x Then Exit For
For b = a + 1 To 40
If a + b &= x Then Exit For
For c = b + 1 To 41
If a + b + c &= x Then Exit For
For d = c + 1 To 42
If a + b + c + d &= x Then Exit For
For e = d + 1 To 43
If a + b + c + d + e &= x Then Exit For
For f = e + 1 To 44
If a + b + c + d + e + f &= x Then Exit For
For g = f + 1 To 45
'If a + b + c + d + e + f + g = Val(Text1.Text) Then RichTextBox1.Text = RichTextBox1.Text & vbCrLf & a & & & & b & & & & c & & & & d & & & & e & & & & f & & & & g
If a + b + c + d + e + f + g = x Then
'RichTextBox1.Text = RichTextBox1.Text + Str(y) + vbNewLine
st = st & &(& & y & &)& & a & & & & b & & & & c & & & & d & & & & e & & & & f & & & & g & vbCrLf
ElseIf x & Val(Text1.Text) Then
If Flag = False Then GoTo 1
NextNext1:Timer1.Enabled = FalseRichTextBox1.Text = RichTextBox1.Text + stLabel1 = Val(y)MsgBox (&Good& & Str(y))End SubPrivate Sub Command2_Click()
Flag = FalseEnd SubPrivate Sub Command3_Click()
MsgBox (Len(RichTextBox1.Text))End SubPrivate Sub Timer1_Timer()
Label1.Caption = Val(y)
RichTextBox1.Text = RichTextBox1.Text & st
'RichTextBox1.RefreshEnd Sub
这一次的代码成功地将165685条结果输出到了RichTextBox中,并且每条结果前还加上了标号,最终RichTextBox中的字符数量达到了4429482。请参考这一次的代码中对输出部分的处理。
关于DoEvents的位置,可以把它适当地向更靠外的循环层中放置,也就是说让DoEvents伴随一个更大的循环体执行,这样可以减少DoEvents的执行次数,对运算时间的影响也是蛮大的。但是如果这个循环体过大,则会造成用户界面间歇性响应。
在循环体中,尤其是计算量比较大的时候,尽量减少循环体内的命令数量,例如:将循环过程不变的量赋值x=val(text1.text),这样就减少了将文本转换成数值的过程。
还有在大量运算中最好加上停止标记,每循环一定的次数就来检测停止标记,如果标记为真就跳出所有的循环,这样能方便地停止循环,保存一定的数据。当然这不是必须的。
提问者评价
感谢认真精确的解答
其他类似问题
为您推荐:
循环语句的相关知识
其他1条回答
拜托……把你的算法写出来我们才好帮你改啊
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁二次元同好交流新大陆
扫码下载App
汇聚2000万达人的兴趣社区下载即送20张免费照片冲印
扫码下载App
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
漫着人生的步伐,享受着人生的喜、怒、哀、乐,人生充满朝气!
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
阅读(2830)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
loftPermalink:'',
id:'fks_',
blogTitle:'[收集]Turbo C程序设计的基本步骤及如何编译、调试和运行源程序',
blogAbstract:'本节主要介绍Turbo C程序设计的基本步骤及如何编译、调试和运行源程序。 并给出Turbo C的常用编辑命令。最后介绍Turbo C编译、连接和运行时的常见错 误。 \r\n一、Turbo C程序设计基本步骤 \r\n程序设计方法包括三个基本步骤: 第一步: 分析问题。 第二步: 画出程序的基本轮廓。 第三步: 实现该程序。 3a. 编写程序 3b. 测试和调试程序 3c. 提供数据打印结果 下面, 我们来说明每一步的具体细节。 \r\n第一步: 分析问题 在这一步, 你必须: a. 作为解决问题的一种方法, 确定要产生的数据(输出)。作为这一子步的一部分, 你应定义表示输出的变量。 b. 确定需产生输出的数据(称为输入), 作为这一子步的一部分, 你应定义表示输入的变量。 ',
blogTag:'',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:0,
publishTime:9,
permalink:'blog/static/',
commentCount:2,
mainCommentCount:2,
recommendCount:0,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'漫着人生的步伐,享受着人生的喜、怒、哀、乐,人生充满朝气!',
hmcon:'0',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}205800【C 语言程序设计】复习材料_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
205800【C 语言程序设计】复习材料
上传于||暂无简介
阅读已结束,如果下载本文需要使用
想免费下载本文?
下载文档到电脑,查找使用更方便
还剩14页未读,继续阅读
你可能喜欢}

我要回帖

更多关于 用循环语句输出图形 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信