• 締切済み

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;

noname#108711
noname#108711
  • Perl
  • 回答数7
  • ありがとう数8

みんなの回答

  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.7

>>use Statistics::Basic qw(:all); >>use List::Util qw(min max); > >>open my $fh, '<', 'A' or die; >>my @data = <$fh>; >>close $fh; >say >のところがよく分かりません。 use Statistics::Basic qw(:all); use List::Util qw(min max); というのは、それぞれモジュールを使うための宣言です。 qw(:all) というのはaverage などのモジュールにある関数をすべて使えるようにするためのものです。 qw(min max) というのはそのモジュールの min と max という関数だけ使います という宣言です。 open my $fh, '<', 'A' or die; my @data = <$fh>; close $fh; というのは三行まとめて、 'A' という名前のファイルをオープンして(失敗したら実行を終了)、 @data という配列変数に丸ごと読み込んで、 ファイルをクローズするということをしています。 say というのは pirnt とほぼ同じですが、尻尾に改行を自動的につけてくれます。 >say

  • kuroizell
  • ベストアンサー率55% (95/170)
回答No.6

最後のところのPerl語、まんまですよ。 #!perl open my $fh, '<', "A"; my @data = <$fh>; close $fh; my @sort_data = sort {$a <=> $b} @data; print "min = $sort_data[0]\n"; print "max = $sort_data[$#data]\n"; my $anser = 0; foreach my $i(@data) { $anser += $i; } print "avg = " . sprintf "%.2f", $anser / scalar(@data); 標準偏差の計算はややこしいのでパスしています。 sakusaker7さんのようにモジュールを使えば、min,max,avgの他、標準偏差を出すと言うややこしい計算も、関数一つでやってくれます。 ActivePerlならppmでStatistics-Basicモジュールを入れないと動きませんが、それを除けばコピペで完璧に動くスクリプト書いて下さってますよ。

  • dda167
  • ベストアンサー率76% (55/72)
回答No.5

自分で書いたものを読み返して反省したので…… 内容を覚えてないのにおすすめするのはヒドイですよね。 「初めてのPerl」は定番だし、良い本だとは思うのですが、 アマゾンあたりでポンと買うのはやめてくださいね。 本屋さんで立ち読みして内容を確認してください。 もし買ったらボロボロになるまで読んでください。 # 最近は青いし……私が読んだころは赤い本だった(笑)。

noname#108711
質問者

お礼

>初めてのPerl ですか。 探してみます。 とりあえず、この問題を解きたいので、これも教えていただけないでしょうか?? ありがとうございました。

  • dda167
  • ベストアンサー率76% (55/72)
回答No.4

Perlは大規模で複雑な言語でもあります。同じことを達成するのにも、 数多くの異なる方法が用意されています。 結果的に、初心者にとって習得が難しく、他人が書いたプログラムを 理解するのが難しい、といった面があります。 --「ミニマルPerl,Tim Maher著,オライリージャパン」より Perlは、わかりにくく書こうと思えば、 いくらでもわかりにくく書ける言語です。 初心者は、あれこれと手をだすのではなく、 基本的なパターンを覚えていきましょう。 open(FH, '<A') or die "open: $!"; $sum = 0; $cnt = 0; while (<FH>) { chomp($num = $_); $sum += $num; $cnt++; } close(FH) or die "close: $!"; $avg = $sum / $cnt; print "Average value = $avg\n"; ファイル処理の基本はこんなところでしょうか。 どんな本を読まれたのでしょう。 Perlは長くつき合っていける言語です。 質のよい入門書を読んで基礎を固めましょう。 私がはじめて読んだPerl本は「Perlの国へようこそ」ですけど(古すぎる……) 最近、読み返してないので内容は忘れてしまいましたが、 オライリーの「初めてのPerl」がおすすめです。 # オライリーの本は、分厚くて値段も高いけど、 # きちんと学習しようとすれば、結局オライリーになると思う。 # 最近、翻訳のひどい本もあるけど……

  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.3

そもそも、Perl以外のプログラミング言語ならこの問題をこなせるのでしょうか? Perlでの書き方がわからないのか、Perlであろうがなかろうがわからないのか。 多分後者なんでしょうね。 さらになんでPerlで標準偏差とかを求める話になって、急ぎで回答求めてるんでしょう。 #!/usr/bin/perl use strict; use warnings; use feature 'say'; use Statistics::Basic qw(:all); use List::Util qw(min max); open my $fh, '<', 'A' or die; my @data = <$fh>; close $fh; chomp @data; my $v = vector(@data); say "Average :", average($v); say "Standard deviation : ", stddev($v); say "Max : ", max(@data); say "Min : ", min(@data);

noname#108711
質問者

お礼

はい。そうです。 perlであろうとなかろうと分かりません・・・ >use Statistics::Basic qw(:all); >use List::Util qw(min max); >open my $fh, '<', 'A' or die; >my @data = <$fh>; >close $fh; say のところがよく分かりません。 もう少し詳しく教えていただけませんか?? ありがとうふございました。

  • kuroizell
  • ベストアンサー率55% (95/170)
回答No.2

Aというファイルに、一行に数字が一つあるとします。標準偏差はパスします。 最後は日本語を半ば放棄してPerl語になってますがご容赦を。 まず、@Strを読み込んだ後にファイルを閉じましょう。 print $Rowの部分は、print @Strだけで同じことがます。 次に@Strをソートして配列の最初(0)と最後($#Str)をprintしたら、最大最小値が出せます。 そしてforeach my $i(@Str)でmy $sum+= $iして、それをscalar(@Str)で割れば平均値が出ます。

noname#108711
質問者

お礼

標準偏差はあっているということでしょうか??? perl語のところは全く分かりません。 ありがとうございました。

  • zionic
  • ベストアンサー率39% (31/79)
回答No.1

とりあえず、ぱっと見でおかしいな、と思うところ。 1.まず、データの読み込みをどのように行いたいのか不明です。ファイルから読み込みたいのか、引数で渡すのか、一つ一つ入力させるのか、どれか決めましょう。 2. >open ( FILEHANDLE , " < A " ) ; これは、ファイル「A」を入力ファイルとするのですが、コードの中では一切使われていないので意味の無いものになっています。 3. >my @Str=<STDIN>; > >foreach my $Row (@Str ){ >print $Row; >} 値を入力させてるようですが、その後使われていないので、何のためのものか不明です。 4. >my $Minimum=$ARGV[0]; >my $Maximum=$Minimum; >my $Sum=$Minimum; >my $temp=0; >my $i=1; >while ( $i < $Num_arg){ いきなり$Num_argがでてきてますが、値が入っていないのでループ処理が思うような処理になっていないのでは? 5. >$temp=$ARGV[$i]; >if ( $Minimum > $temp ) { >$Minimum = $temp; >}elsif ( $Maximum < $temp ){ >$Maximum = $temp; >} >$Sum = $Sum + $temp; >$i++; >} 一見まともなんですが、$iは1から始まっているのでARGV[0]の値は集計に使わなくていいのでしょうか? 6. >foreach my $w(0..$#Numbers){ ここの$#Numbersもいきなり出てきてますね。値入ってますか? 7. >($Num_arg - $Average) ** / Num_arg; Num_argから$が取れちゃってます。

noname#108711
質問者

お礼

>ファイルから読み込みたいのか、引数で渡すのか、一つ一つ入力させるのか >コードの中では一切使われていないので意味の無いものになっています。 >値が入っていないのでループ処理が思うような処理になっていないのでは? > $iは1から始まっているのでARGV[0]の値は集計に使わなくていいのでしょうか? これらの意味がよく分かりません>< 私はAから読み取った数字が全部$Numbersに入っていると思ったのですが、これは間違っているようですね・・・;;; とりあえずどこが違うかがわかりました ありがとうございました。

関連するQ&A

  • *至急 perl 違うところの修正と説明をお願いします。

    この間質問したのですが、全く解決できないので再度お願いします。 Aというファイルを読み込んで、最大最小・平均を求めたいです。専門用語をできるだけ使わないで答えてください!! #!/usr/bin/perl # 12345 STDIN use strict; use warnings; open ( FILEHANDLE , " < A " ) ;  #Aを読み取ってnumbersに当てはめる my $Minimum=$ARGV[0]; #最小値に一番最初の値を当てはめる。 my $Maximum=$Minimum; #ひとまず最大値=最小値(両方とも一番最初)とおく my $Sum=$Minimum;     #?  my $temp=0;        #?temp my $i=1;    #numbersの最初の値iを初期化 while ( $i < $Num_arg){  #?(iと最初の値を比べる??) $temp=$ARGV[$i];      #? if ( $Minimum > $temp ) { #最小値と数字を比べる。 $Minimum = $temp;     #小さかったらその値を最小値と置く }elsif ( $Maximum < $temp ){ #最小値に当てはまらなかったら最大値と比べる。 $Maximum = $temp;    #大きかったらその値を最大値と置く。 } $Sum = $Sum + $temp;  #? $i++;         #最初の値iに1を足す。そしてループさせる } my $Average = $Sum / $Num_arg; #平均=合計÷全部の数 my $w =          #wをしたのforeach文で出た値と置く。 foreach my $w(0..$#Numbers){  #Numbersの最初から最後までやる(Σシグマとおなじ) ($Num_arg - $Average) ** / $Num_arg;  #Numbersのi番目の値から平均値を引き2剰そしてNumbersの数で割る。 } my $Standarddivitation = sqrt ($w); #標準偏差=wの平方根 print "Average value = $Average \n"; print "Maximum Value = $Maximum \n"; print "Minimum Value = $Minimum \n"; print "Standard devitation = $Standarddevitation; 私がやっていると思っているのが#のところです。?の部分はよく分かりません><。 何で違うかと間違っているところを(簡単なものを使って)修正してください。 気がついたのはNumbersとNum_arg(i番目をあらわしていることと総数を表している)とがばらばらなことです。 よろしくお願いします。

  • 「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初心者ですが、プログラム作成で行き詰ってしまいました。

    perl初心者ですが、プログラム作成で行き詰ってしまいました。 参考書を読みあさり、色々とググってみたのですが、どうしても組み立てられません。知識のある方ご回答よろしくお願いします。 一つ目は: 英語の文章を記憶したファイルを指定し,その内容を読み込み,文章内に含まれる単語を出現頻度の降順で表示させるプログラムを作成すること 「1位:・・・(・・回)」 「2位:・・・(・・回)」 ... なお,一つの単語が二行にまたがることはないものとする。 二つ目は: テストの成績データを記憶したCSV ファイルを指定し,その内容を読み込み,各学生の総合点と順位,各科目の最高点,最低点,平均点を記憶したCSVファイルを書き出すプログラムを作成せよ。 なお,入力用のファイルと出力用のファイルはキーボード入力で指定するものとする。 また,異なる学生数および科目数のCSV ファイルを読み込んでも正しく動作するようにすること。 卒業のかかったレポートで、この二つを完成させないと先に進めないのです。 本当に図々しい質問で大変申し訳ありません。知識のある方どうかご教授ねがいます。 *ひとつめに関しては: open (FILE, 'perl.txt') or die "$!"; while (my @array = <FILE>){ foreach (@array) { $count{ $_ }++ ; } @rank = sort { $count{ $b } <=> $count{ $a } } keys %count ; foreach (0..$#rank) { $kagi = $rank[ $_ ]; $kaisu = $count{ $kagi } ; print $_+1, "位:$kagi($kaisu 回)\n" ; } } のように書いたところで行き詰ってしまいました。 二つ目は: open (FILE, 'data.txt') chomp(@data = <FILE>) ; $i= 1 ; # 行番号を記憶する変数 for (@data) { # 各行に対して以下を繰り返す. # 各行の数値を配列の要素として記憶する. @list = split(/,/, $_) ; # サブルーチンを呼び出して,結果を表示 print "$i行目:" ; print "数値:",&cardinality(@list),"個," ; print "最大値:",&maximum(@list),"," ; print "最少値:",&minimum(@list),"," ; print "合計:",&summation(@list),"," ; print "平均:",&average(@list),"\n" ; # 行番号の更新 $i++ ; } とまで書き、もう何が何だか訳わからなくなってしまいました。

    • ベストアンサー
    • Perl
  • perlがうごきません

    <html> <head> <title>form3</title> </head> <body> <form action="form3.cgi" method="post" name="form3"> <input type="text"name="form3"> <input type="submit"value="送信"> </form> </body> </html> ::::::::::::::::::::::::::::::: #! /usr/bin/perl if($ENV{"REQUEST_METHOD"} eq "GET"){ $str=$ENV{QUERY_STRING"}; }else{ read(STDIN, $str, $ENV{"CONTENT_LENGTH"}); } $str=~ tr/+/ /; $str=~ s/%([0-9A-Fa-f][0-9A-Fa-f])/pack("c", hex($1))/eg; foreach(split(/&/, $str)){ my ($key, $value)=split(/=/, $_); $data{$key}=$value; } print "Content-type:text/html\n"; print "\n"; print "<html>\n"; print "<head><title>form3</title></head>\n"; print "<body>$data{'form3'}</body>\n"; print "</html>\n"; exit; :::::::::::::::::::::::::::::::: どうしてもうごきません。 どこかスクリプトがまちがっているのでしょうか。 パールのパスはあっています。

    • ベストアンサー
    • Perl
  • 電卓のJavaScriptで

    大学でプログラミング基礎の講義を取っているのですが、そこで配られたテキストをなぜそうなるのか理解できなかったのでご教授お願いします。 電卓のJavaScriptなのですが、 <script language = "JavaScript"> count = 0; sum = 0; num = 0; flag = 0; list = new Array( "0", "0", "0", "0", "0" ); これはグローバル変数ですべてのfunctionに適応させるためのものだと 思うのですが、sum = 0;num = 0;というのはこのJavaScriptでどのような 意味を持ったものなのでしょうか? function clist( ) { for( i = 0 ; i < 5 ; i++ ) { list[ i ] = 0; } } このlist[ i ] = 0;というのは配列変数を使っているのですが、何を意味しているのでしょうか? また、このループを使うことによってどのような意味があるのでしょうか? function aclear( ) { count = 0; sum = 0; num = 0; flag = 0; clist( ); display.value = 0; } function calc1( ) { num = sum; clist( ); display.value = num; flag = 1; } function calc2( ) { num = sum; clist( ); display.value = num; flag = 2; } function calc3( ) { num = sum; clist( ); display.value = num; flag = 3; } function calc4( ) { num = sum; clist( ); display.value = num; flag = 4; } これらのcalc1からcalc4のなかの式の意味がよくわかりません(>_<) function equal( ) { if(flag == 1) { sum = num + sum; } else if(flag == 2) { sum = num - sum; } else if(flag == 3) { sum = num * sum; } else if(flag == 4) { sum = num / sum; } else { aclear( ); } display.value = sum; } function push1( ) { list[count] = 1; sum = list[count]; ↑ この部分は何を意味しているのでしょうか? for( i = 0 ; i < count ; i++ ) { temp = 1; for( j = i ; j < count ; j++) { temp = temp * 10; } sum += list[i] * temp; } count += 1; display.value = sum; } list[count] = 1; 以下同様に function push9 まで続く。 ちょっと長すぎるので、全部書きたかったのですが、無理でした。 正直さっぱりなので、困っています。

  • C言語初心者です。書いたプログラムを採点して下さい

    入力された0~100までの10個の数値から、 最小値と最大値を表示するプログラムを書きました。 #include <stdio.h> int getmin(int * pvalue); int getmax(int * pvalue); int main(void) {     int i,value[10];     int minimum,maximum;     printf("0~100の範囲で10個の数値を入力してください:\n");     for(i=0;i<10;i++){         scanf("%d",&value[i]);         if(value[i] < 0 || value[i] > 100)         {             printf("0~100の範囲です:\n");             scanf("%d",&value[i]);         }     }     minimum = getmin(value);     maximum = getmax(value);     printf("最小値は%d\n",minimum);     printf("最大値は%d\n",maximum);     return 0; } int getmin(int * pvalue) {     int i=0,j;     for(j=1;j<10;j++)     {         while(pvalue[i] > pvalue[j]){i++;}     }     return pvalue[i]; } int getmax(int * pvalue) {     int i=0,j;     for(j=1;j<10;j++)     {         while(pvalue[i] < pvalue[j]){i++;}     }     return pvalue[i]; } 正常に作動はしましたが、 記述に無駄が多い、分かりづらい などあればご指導いただけますか? よろしくお願いします。

  • perlでサブルーチンへの複数の配列渡し

    perlでサブルーチンに配列を渡しているのですが、 引数としている配列が1個の場合は問題ないのですが、 複数渡すと、第2引数以降が渡りません。 どの様にすれば上手くできますか。 例1 #!/usr/bin/perl @x1 = (14, 11, 5, 12, 8, 15); @x2 = (12, 10, 8, 9); print "main : @x1 \n"; &test(@x1); sub test { my (@arg1) = @_; print "sub : @arg1 \n"; } 結果 main : 14 11 5 12 8 15 sub : 14 11 5 12 8 15 例2 #!/usr/bin/perl @x1 = (14, 11, 5, 12, 8, 15); @x2 = (12, 10, 8, 9); print "main : @x1 \n"; print "main : @x2 \n"; &test(@x1, @x2); sub test { my (@arg1, @arg2) = @_; print "sub : @arg1 \n"; print "sub : @arg2 \n"; } 結果 main : 14 11 5 12 8 15 main : 12 10 8 9 sub : 14 11 5 12 8 15 12 10 8 9 sub : 引数1に全てが設定されて、引数2に設定されていない。

    • ベストアンサー
    • Perl
  • perl 配列名変数指定するには

    perlプログラムで for文で ループ分の配列定義するには どうしたらよいですか? 下記のようなことができないかと 考えております。 for(my $i = 0; $i < $file_no; $i++){ my @{"segments$i"} =(); #配列定義 my ${"line$i"}="";     #変数定義 my %{"hash$i"}= ();    #ハッシュ定義 open(ARG1,$ARGV[$i]); while(<ARG1>){ ${'line'.$i} = $_; chomp ${'line'.$i}; @{'segments'.$i} = split(/\t/,${'line'.$i});        ${'hash'.$i}{${'segments'.$i}[0]}=${'segments'.$i}[1];     } close(ARG1); } #下記で、その後 各ハッシュに設定したデータをもとに いろいろ計算したい foreach my $a (keys %{'hash'.$i}){ ・・・ } 今は、Can't declare array dereference in "my" at test.pl line XX, near "} =" と 配列定義でエラーとなり処理できません。

    • ベストアンサー
    • Perl
  • 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
  • 電卓のJavaScript

    初心者で申し訳ないのですが、電卓のソースを作ってみたのですが、JavaScriptが間違っているためか「ページにエラーが発生しました」となり計算が行われません。 どのように、改変すればいいのでしょうか?どうかご教授お願いします。 <html> <head> <title> 電卓 </title> <script language = "JavaScript"> count = 0; sum= 0; flag =0; list = new Array( "0", "0","0","0","0",); function clist( ) { for( i = 0 ; i < 5 ; i++ ) { list[i] =0; } } function calc1() { num = sum; clist( ); display.value = num; flag = 1; } function calc2() { num = sum; clist( ); display.value = num; flag = 2; } function calc3() { num = sum; clist( ); display.value = num; flag = 3; } function calc4() { num = sum; clist( ); display.value = num; flag = 4; } function calc5() { clist( ); } function equal() { if(flag==1) { sum=num+sum; display.value=sum; clist( ); } else if(flag==2) { sum=num-sum; display.value=sum; clist( ); } else if(flag==3) { sum=num*sum; display.value=sum; clist( ); } else if(flag==4) { sum=num/sum; display.value=sum; clist( ); } } function push0( ) { list[count] = 0; sum = list[count]; for( i = 0 ; i < count ; i++ ) { temp=1; for( j = i ; j < count ; j++ ) { temp=temp*10; } sum+ =list[i]*temp; } count+=1; display.value=sum; } function push1( ) { list[count] = 1; sum = list[count]; for( i = 0 ; i < count ; i++ ) { temp=1; for( j = i ; j < count ; j++ ) { temp=temp*10; } sum+ =list[i]*temp; } count+=1; display.value=sum; } 同様に2~9 </script> </head> <body> <hr><br> <input type = "button" value ="7" onclick = "push7()">&nbsp <input type = "button" value ="8" onclick = "push8()">&nbsp <input type = "button" value ="9" onclick = "push9()">&nbsp&nbsp <input type = "button" value ="+" onclick = "calc1()">&nbsp<br><br> <input type = "button" value ="4" onclick = "push4()">&nbsp <input type = "button" value ="5" onclick = "push5()">&nbsp <input type = "button" value ="6" onclick = "push6()">&nbsp&nbsp <input type = "button" value ="-" onclick = "calc2()">&nbsp<br><br> <input type = "button" value ="1" onclick = "push1()">&nbsp <input type = "button" value ="2" onclick = "push2()">&nbsp <input type = "button" value ="3" onclick = "push3()">&nbsp&nbsp <input type = "button" value ="×" onclick = "calc3()">&nbsp<br><br> <input type = "button" value ="0" onclick = "push0()">&nbsp <input type = "button" value ="=" onclick = "equal()">&nbsp <input type = "button" value ="C" onclick = "calc5()">&nbsp&nbsp <input type = "button" value ="÷" onclick = "calc4()">&nbsp<br><br> <br><br><hr><br>&nbsp&nbsp&nbsp <input type = "text" size ="10" name = "display">&nbsp <br><br><hr><br> </body> </html>