Вычислить приближенное значение бесконечной суммы
Категория: Delphi/Pascal
2011-09-09 18:46:36
Вычислить приближенное значение бесконечной суммы(n стремится к бесконечности) с заданным общим членом 2 способами:с заданной точностью и для заданного числа членов ряда. Выбор способа реализовать с помощью оператора выбора.
code: #pascal
program Summa; uses Crt; var v:byte; {выбор метода решения} accuracy:real; {1 метод - точность} number:byte; {2 метод - число членов} sum:real; i:integer; {процедура выбора метода решения} procedure start; begin writeln('>>> entering data '); Write('Method:(1-accuracy; 2-number of member) : '); {вводим цифры или 1 или 2 - смотря каким методом решать} readLn(v); case v of {решение с заданной точностью} 1: begin write(' accuracy( 0<a<=1 ) = '); readln(accuracy); end; {решение с колличеством заданных членов} 2: begin write(' number of member = '); readln(number); end; end; writeln('>>> entering data completed. Waiting...'); end; {формула} function f(x:real):real; begin f:=1/sqr(x); end; {Первый метод решения} procedure metod1; begin sum:=0; i:=1; {продолжаем суммировать, пока не превысим точность} while f(i)>accuracy do begin sum:=sum+f(i); writeln(' ',i,'# ',f(i):6:2); inc(i); end; writeln('---------------'); writeln(' sum = ',sum:6:2); writeln('number = ',(i-1):6); end; {второй метод решения} procedure metod2; begin sum:=0; for i:=1 to number do begin sum:=sum+f(i); end; writeln('---------------'); writeln(' sum = ',sum:6 :2); end; begin Clrscr; {очистка экрана} start; {вызов процедуры выбора метода решения} case v of 1: metod1; {если выбран 1-й метод} 2: metod2; {если 2-й} end; readln; end.
Поделиться: