質問<3557>2007/6/11
次のプログラムはなにをするものか、出力sを数学の総和記号Σを用いて表し、説明せよ。 program test(input,output); var i,n,s:integer; bigin read(n) s:=0; i=1; while i=2*n do begin s=s+i*; i=i+2 end; writeln('n'=,n,'のときs=',s) end. ★希望★完全解答★
お便り2007/6/14
from=JUN*2
手持ちのBASICでプログラミングしましたが、お力になれませんでした。 ご質問のプログラムはPascalですよね? でしたら、一度実際にPascalがダウンロードされたPCでプログラミングされることをおすすめします。
お便り2007/6/16
from=JJon.com
タイプミスが多くてこのままでは正常に実行できないです。 while i<=2*n do begin s:=s+i; i:=i+2; end; であるなら 求められる値sは 1+3+5+7+...+(2*n-1) となりますから, s = Σ_(i=1~n) (2×i-1)
お便り2007/6/17
from=亀田馬志
(defun program-test () (let (n (s 0) (i 1)) ;初期条件n, s, iを決める (setq n (read)) ;nに直接入力 (loop ;ループ開始 (or (and (< (* 2 n) i) ;iが2nを超えたら出力表示 (return (format t "n=~Aのときs=~A~%" n s))) (and (setq s (+ s i)) ;sをs+1に更新、iをi+2に更新 (setq i (+ i 2))))))) >次のプログラムはなにをするものか n(直接入力された数)の2乗を返すプログラム >出力sを数学の総和記号Σを用いて表し、説明せよ。 プログラム上で s=s+i と表される部分は、数学的には第k番目の操作を_kと言う添え字で書き換えれば S_{k+1}=S_{k}+i・・・・・・① と表される。 ここでk≧1とすれば、iが初項1、公比2の等差数列である事に気をつければ①は S_{k+1}-S_k=1+2*(k-1) =2*k-1・・・・・・② と書き換えることが出来る。 あとは上記の漸化式を解けば良い。