免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
论坛 程序设计 Perl 除法题
最近访问板块 发新帖
楼主: leigh111
打印 上一主题 下一主题

除法题 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2009-09-25 16:13 |只看该作者
方法都给你了,代码,只是简单 copy 上去,告诉你问题而已,因为你的代码本身,确实存在不少问题,难道,不会自己调试一下吗?不能什么都指望,别人把代码都给你写好吧?
比如,打印 $seqs 后,你有重新初始化吗?你有将一些多余的空格删除吗,等等。。。

论坛徽章:
0
12 [报告]
发表于 2009-09-25 16:19 |只看该作者
dugu072  你好;
    我现在确实很需要,你能把完整的代码写出来吗? 谢谢

论坛徽章:
0
13 [报告]
发表于 2009-09-25 17:02 |只看该作者
还是做不好

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
14 [报告]
发表于 2009-09-25 21:15 |只看该作者
猜一猜:
  1. #!/bin/perl
  2. use warnings;
  3. use strict;

  4. open (IN,'d:\perl\genes\') || die "$!";
  5. open (OUT,'>d:\perl\genes_fasta\.fasta') || die "$!";
  6. my($title,$seqs);

  7. while (<IN>) {
  8.   if (/^NTSEQ/) {
  9.       print OUT $title,length($seqs),"\n" if $seqs;
  10.     $title = $_;
  11.   } else {
  12.     $seqs .= $_;
  13.   }
  14. }

复制代码

论坛徽章:
0
15 [报告]
发表于 2009-09-27 14:06 |只看该作者
大侠;
  能不能给我一个完整的代码呀?我都搞了两天了。还是做不出来。只要字符个数能被3整除就可以了。谢谢。

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
16 [报告]
发表于 2009-09-27 17:37 |只看该作者

回复 #15 leigh111 的帖子

你什么样的结果?
满足条件的段(文本),还是段的字字符数?

论坛徽章:
0
17 [报告]
发表于 2009-09-28 09:20 |只看该作者
是满足条件的段符合条件就可以了。我最终输出的都是段落.(输出的段落都是字符个数能被3整除的。)。
我试了您给我的代码,输出的是字符个数而不是段落。 谢谢您一直的帮助。

论坛徽章:
0
18 [报告]
发表于 2009-09-28 09:29 |只看该作者

回复 #1 leigh111 的帖子

#!/usr/bin/perl-w

use strict;
open (IN,'putest.d') or die "$!";
my ($title,$seqs);
while (<IN>) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (/^NTSEQ/) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$title = $_;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$seqs =~ s/ //g;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (length($seqs)%3==0) {   #肯定是这一步错了,好像它什么也不做。

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print "$seqs";
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print length($seqs)."\n";;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$seqs ='';
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print "$title";
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$seqs .= $_;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;}




结果是:
0
NTSEQ       267
277
NTSEQ       2253
2329
NTSEQ       836
atgttttcccacgagaagagttcaatgttaactacaattttaatagttgttgcaacttca
gttggagttggatgtttttatattccagcagcatttaagaattgtggtgcaatggcagga
ttgataatttcattaatagttggtacattttcagtattatcaatgaagactttggcaaat
gcaagtgtgaaatcaggtgcagaatcatatggatcattattatttatggcatatagtgaa
gagataacaacaagtttaagaattcaaaaatcagaaaatccatttttttctataccaaga
ttatttgattttctggtatttttagattgtttattttgtataccattatttttaattgtt
ttatcagacttaataccagcgctaatttcatattttgggtttgtgaatgactatttattc
atgtttagttcaaaaactgcaataatatcattattttcactattattctttccaatatgt
attccttcaggatgttttaattgggttggacttacatttttatcagtcatttccattttc
ctatgttttgcatcagtaattagccaatcaatttcatcaggttttggtattaataatatt
attaaagagatttcaaatatatctttcaacagtaactcaatttcaagttacttttcatta
ttgaatatttgtatttttgcattctttgcacaattcaatataattcaagcagcatctaat
cttaataatccaagtaaaagtagattacgtatattaacagctgtaactggtattataata
gtatttacatattcaataatgtcattgatatcattttcatttcttggagatagaac
864
NTSEQ       486
atgattgaatatttagagcataatatttcaggaaaagactttttacagcccgagtttcaa
caagtccttgtggaatctgggaactttccaatgctcccatatttttcagactcaaacaat
gaagtcgagttaacaggatcattcacaatattaaggtacctcgcagataagtgtaagttg
atgggtaaaagtcctgaggaaagaaataagatagaaaattggctggaatatcttcaatct
ttactacattcagtatgggatttcgaaaatatgtcagataattatacaggaattcaacag
gcaaagaaaaagagccagtttctattagaaactcttcatccaatgcttaaatgtatagat
gaaaagattgaacaaggagtctgggctctagaatcctattcagtagtggacattgtccta
tattcagcaataagcgtgataattagatcttggggaagtgatctattgaaaccttatatt
aggtaa
504
NTSEQ       1584
atgataagtagtcttgaaaatgggcctactgaggaggatcttgaattattattaggtggg
tataataaggaagaggaaatattatttgttgatttgagggaagaatcagatgaattagat
aaagttgattaccaggaaaattccaattttttgaatccagttagctatataaaaaggatt
ggagatgaacaaaatcaagatgcacctgataaattgaaaaagcgtagagttaagtcaaag
aaaacaagaccaaggaggaaaaaaagtaaattgaaagatgattctgataaactttcaata
gactctgatgaatttgttgtaccagacgatgaggtgattccacctgactgggagtataac
tttgaaaagccaatagtttgtcaaaatgttacattttataataaagttgacaatatttta
actgagaagcttgaaaatgatgttgatcattttaaaattaatgaagaggagcttgaatgt
aatgatagtagtttggacgaagattttttaaatagttgcgaaattaatgaagacggattt
aaaggtagaaaacgtaaaaatggaatgattgggattgatattgataaagaatatattgat
gataaagacaatactgcattaattgttgaaagccatttactgaaagatgacatagatgat
gaagaccaggtaatttttgtagataggaatttgaactcttttattaagcaggttgataaa
aataagacaatagatgaagttaggacatatgattctgaaccaattattgttgaaagcgat
gaattcattataaatacagagattttcaattatgggatttttaatatatactttaaaatg
atggatattattgaagattttgaaaattataacaagtttcaatgtttttcagaaggttca
tttaaacttgaagaaaaagatatttccactcttttgatagtattcaaatcaattgatatt
gaattcagcagtttcagcaataatagtaacattaatagtagctgtagcagtggcaatatt
agtaataataatattggaagttttgacttgattcaaagttaccttgacttattttacaat
aatatcttaaattcattaaaagagactcaaaattttaatttaacatttttaaaggaatta
cactttgaaatgattggttttattgagtcaaagtttgatgagattgttcaattgaaccca
tctgaatggaattacaaggtattgtttttgtttttaagaatacttggactaactttattt
gttgagcacttgctaatacatacaataaagattgaaaaaacttcagagccaaagatatca
aatttgaatgaagaattttcagttttttttgtcaatgaaaatattttgaacaaaaataat
gtatccaagattcttagacaaatcttgaaaaaaatgttggatcatttattaaatttgacg
ttaaaagaaaacttgaatggtaatatgagtagtattcattgtattttgattttgacttta
ttcattaattttaaagtaagtggggacttgattttcactcatatttcagaaaagtatatt
aaagatttaaatataacttttgat
1638
NTSEQ       777
803
NTSEQ       358
370
NTSEQ       339
atggattttaatctaaacttgaatatttacttccgtaattttttacataattttgttact
gaaagtcaagtaaacctaaatgatgcatacaaaccaacaaataatgaatacattttgatt
attgacatctttccctatgaactgtgcatcaatgaattatttatcaataaaaaattgaga
atcgtgaattgcaagcactccattaactctcctaaaagaatcgcgattaacgaatttaac
tcaataattaacttatcaaaacatcttctaaagaatacaacttatattattgtaaaaact
ttattaaataaaagtctaaatcctctaatatatttttag
351
NTSEQ       276
286
NTSEQ       537
atgaataagacaatttttaaacttttatttttttttgcaatttatataatgattggcatt
tcaaacgcctctgatgtgacatctagtggtagcttgaagacatcaaacaaccttgaaaaa
gttaaactcgtaaatttggatttgtgtaactcgaaagaagcaactatcaatgttcaagac
ataagtagctctgattccataatatatttcattactgttaagcttggaacggaaattatt
gtgaatataaagggcaatccaacgacagggtatagccaagagatgattattaaaccggat
gattcaattgtaaaagttatcgatgttgagccaagttacgttccagatccacacccagaa
ggcatggttggatatggtggcaggtatatcttcaagttcttggcagttggatccggttca
acagtttcgactattgaatatgcaagatactttgaaaggccaccaaaatgtatttttaag
acagaaattcaattcaaagttatcgatctgccctgcgaagaaataataaaggaatag
555
NTSEQ       3189

[ 本帖最后由 toniz 于 2009-9-28 09:31 编辑 ]

论坛徽章:
0
19 [报告]
发表于 2009-09-28 09:38 |只看该作者
原帖由 dugu072 于 2009-9-25 16:13 发表
方法都给你了,代码,只是简单 copy 上去,告诉你问题而已,因为你的代码本身,确实存在不少问题,难道,不会自己调试一下吗?不能什么都指望,别人把代码都给你写好吧?
比如,打印 $seqs 后,你有重新初始化 ...


人家都弄了两天了,就帮下算了。O(∩_∩)O

论坛徽章:
0
20 [报告]
发表于 2009-09-28 09:53 |只看该作者
谢谢您.
问题解决了。
整体程序我和你的差不多。就是少了一个这个代码:$seqs ='';(这个代码在这程序里起了很重要的作用,我要和不要这句代码输出时完全不同,但我没有思考明白它的作用,您能帮我解释一下吗?)
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP