ビットウォークの高橋です。
Yさ wrote:
> [お題]簡易足し算器
> [内容]入力された数字を合計し、表示する。
> 0が入力されるまで数字を受け付け、合計し続ける。
> 0が入力されるとそれまでの合計を表示する。
>
> [awkによる例]
> -----
> { if($1!=0) total+=$1; else exit; }
> END{ print "total = ", total; }
> -----
> ※ちなみに"簡易"なので入力が数値であるか等のチェックは省略
>
>
> どなたかその他の(スクリプト)言語による例をお願いいたします(^o^)/
> (適当なお題がありましたらそれもお願いいたします)
Tclの場合の一例を紹介します。上記と同様、数値が入力されているかなど、細
かなチェックはしていません。
一般的なTclのスクリプト起動のやりかた(最初の3行)から、ちょっと余計な
機能を足しました。
--- ここから ---
#!/bin/sh
# the next line restarts using tclsh \
exec tclsh "$0" "$@"
# 初期値
set total 0
# コマンド引数の読み込み
if {$argc} {
foreach value $argv {
set total [expr $total + $value]
}
}
# 0が入力されるまでループ
while {[set value [gets stdin]] != 0} {
set total [expr $total + $value]
}
# 合計を出力
puts "合計:$total"
exit
--- ここまで ---
これを例えばファイル名をaddition.tclとして保存します。
LinuxなどUNIX系シェル上で実行するには、次のようにします($はシェルのプロ
ンプトです)。
$ chmod +x ./addition.tcl
$ ./addition.tcl
2
4
6
8
10
0
合計:30
(実行時に引数を付けてもOK)
$ ./addition.tcl 2 4 6
8
10
0
合計:30
--
Keiichi Takahashi, bitWalk Co.,Ltd.
mailto:bitwalk@...
http://members10.tsukaeru.net/bitwalk/