- 締切済み
Perlで足し算をするには
kuroizellの回答
- kuroizell
- ベストアンサー率55% (95/170)
普通は、my @array = (4, 2 ,3);と書きます。 my $A = "4,2,3";、と書くなら my @array = split(',', $A); としてからsumできなくもないけれど、 それなら最初から配列変数使えってことになるでしょう。
関連するQ&A
- EXCELで足し算できるのにSUMできない
EXCELシートなのですが、+A+Bなど足し算だとちゃんと計算してくれるのに、+sum(A:B)だと式は正しいはずなのに、答えがゼロになってしまいます。 これはどのあたりを調整すればいいのでしょうか?
- ベストアンサー
- その他([技術者向] コンピューター)
- 「Learning Perl」(第4章、問3)
Perl初心者です。 「Learning Perl」(オライリー社、第5版)を勉強中なのですが、4章の練習問題3でつまずいています。 #!/usr/bin/perl use strict; sub total { my $sum; foreach (@_) { $sum += $_; } $sum; } sub average { if(@_ == 0) {return} my $count = @_; my $sum = total(@_); $sum/$count; } sub above_average { my $average = average(@_); my @list; foreach my $element (@_) { if($element > $average) { push @list, $element; } } @list; } my $average = average(100, 1..10); print "\$average = $average\n"; my $barney = above_average(100, 1..10); print "\$barney = $barney\n"; とやったのですが、結果が $average = 14.0909090909091 $barney = 1 となってしまいます。 ($averageの値は正しいのですが、$barneyの値が100となってほしいのに、1になってしまっています。) すみませんが、識者の方、どこが悪いのか、ご教授お願いします。
- ベストアンサー
- Perl
- Perl my 改行について
#Practice Coad in Perl(注意:プログラムは上から実行される) use strict; use warnings; # スカラー変数 my $a = '1'; #これは「1」という数字の入っている箱 my $b = '2'; #これは「2」という数字の入っている箱 my $str = "ABCD_TEXT"; #文字列 print "$a" - "$b" ; print "$str"; 以下のコードで、my$str ="ABCD_TEXT"; #文字列 表示を 3 ABCD_TEXT としたい。 どうすればいいか?
- 締切済み
- Perl
- perl 初心者です。 わかりやすくお願いします。
Perlを始めたのですが、本や色いろんなサイトを見てもよく分かりません。 Aと言うデータを読み込んで最大最小・平均・標準偏差を求めたいです。 (1)どこが間違っているのか1部づつでもいいので詳しく教えてください。 (2)一つ一つの意味がちゃんとはつかめていないと感じるので流れを教えてください。 #!/usr/bin/perl # 12345 STDIN use strict; use warnings; open ( FILEHANDLE , " < A " ) ; my @Str=<STDIN>; foreach my $Row (@Str ){ print $Row; } my $Minimum=$ARGV[0]; my $Maximum=$Minimum; my $Sum=$Minimum; my $temp=0; my $i=1; while ( $i < $Num_arg){ $temp=$ARGV[$i]; if ( $Minimum > $temp ) { $Minimum = $temp; }elsif ( $Maximum < $temp ){ $Maximum = $temp; } $Sum = $Sum + $temp; $i++; } my $Average = $Sum / $Num_arg; my $w = foreach my $w(0..$#Numbers){ ($Num_arg - $Average) ** / Num_arg; } my $Standarddivitation = sqrt ($w); print "Average value = $Average \n"; print "Maximum Value = $Maximum \n"; print "Minimum Value = $Minimum \n"; print "Standard devitation = $Standarddevitation;
- 締切済み
- Perl
- perl
授業でperlをやっていて課題がでてるのですが、 よく分かりません。 200以上300未満の数字か否かを判断する物を作りたいです。 が、300以上だと反応はないのですが200未満でも反応があります。 どこが違うのか教えてください 2つあります。 (1) my $a= 118; if($a < 200 ){ print "" } elsif($a => 300 ){ print "" } else { print "OK.\n"; } (2) my $x =111; if ($x ge 200 && $x lt 300){ print "OK.\n"; }
- 締切済み
- その他(インターネット・Webサービス)
- excelでの足し算
こんにちは。 excelで、複数シートで大量の足し算を行なっており、シートを開くのに すごく時間が掛かってしまいます。 足し算自体は、単純なものですが、sum関数を使った場合と、+(プラス) 記号を使った場合では、どちらの方が処理が速く終わるのでしょうか? また、 =A1+A2 と =sum(A1:A2) と =A1+A2+A3 と =sum(A1:A3) で処理速度の違いはあるでしょうか? ご存じの方がいらっしゃいましたらご教授ください。
- ベストアンサー
- その他MS Office製品
- perlのdo-while文で抜け出せない
perlのwhile,do-while,last文に関する質問です。 1) code1のようなプログラムを作ったのですが eでdo_whileを抜け出すことができませんがなぜでしょうか。 ---code1(eで抜け出せない)(NG)--- my $sum=0; do{ my $a=<STDIN>; chomp($a); $sum=$sum+$a; }while($a ne 'e'); print $sum; -------------------------------- 2) 抜け出す方法をいろいろ試していたら while(1)にしてlastで抜けるようにすると code2ではeで抜け出すことができるように なりましたが、 do~while(1)にしたcode3では、 「Can't "last" outside a loop block at …」C というエラーが発生します。 code2とcode3はwhileがdo~whileになって 条件を見る位置がループの始めか終わりの 違いだけなのに、なぜ、code2ではOKで、 code3ではエラーになるのでしょうか。 ---code2(eで抜け出せる)(OK)----- my $sum=0; while(1) { my $a=<STDIN>; chomp($a); last if ($a eq 'e'); $sum=$sum+$a; }; print $sum; --------------------------------- ---code3(エラーになる)(NG)----- my $sum=0; do{ my $a=<STDIN>; chomp($a); last if ($a eq 'e'); $sum=$sum+$a; }while(1); print $sum; --------------------------------- よろしくお願いします。 Windows7 , ActivePerl(v5.16.3)
- ベストアンサー
- Perl
- エクセル マクロ 足し算
いつもお世話になります。マクロ勉強中の初心者です。 マクロの足し算を教えてください。 A列 B列 C列 ・・・・ 1 2 3 4 5 6 7 8 9 という数字のデータがあります。 これらのA列の合計、B列の合計・・・など列の合計を出すマクロはわかるのですが、 作成したVBA Range("a4") = Application.WorksheetFunction.Sum(Range("a1:a3")) A列の合計(A1~A3)とB列の合計(B1~B3)とC列(C1~C3)の合計を、D4に合計させる方法を 教えてください。 どうぞよろしくお願いします。
- ベストアンサー
- その他MS Office製品
- ACCESS2007 クエリで足し算したいができない。
クエリで、足し算をしたいのですができません。 例えば、A+B=Cをしたいのですが、クエリ内でAとBが0のデータが空白になってしまっていて、足し算ができません。 AとBに数字が入っている場合は、足されています。 規定値を0に設定すればいいみたいですが、それがわかりません。 規定値を0に設定とはどうやるのですか? 元になっているテーブルに設定するのですか? クエリの方に設定するのですか?
- ベストアンサー
- Windows XP