Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

(Pascal)цикл с условием

18K
18 декабря 2006 года
GroW
8 / / 24.08.2006
Помогите с задачкой плиззз

Написать 2 вида программ, используя оператор с постусловием и оператор с предусловием:
Найти сумму ряда с точностью до члена ряда меньшего e=0.0001 и сравнить эту сумму с функцией для контроля.
На рисунке задание

[COLOR=magenta]Pascal[/COLOR]
257
18 декабря 2006 года
kosfiz
1.6K / / 18.09.2005
попробуй так:
Код:
uses
  crt;
var a:byte;
    i,j:word;
    k,x,sum:real;
function stepen(base,exponenta:real):real;
begin
if exponenta=0 then stepen:=1
else
if (base=0) and (exponenta>0) then stepen:=0
else
stepen:=exp(exponenta*ln(base));
end;

function factorial(n:integer):integer;
var i:integer;
    j:word;
begin
if n=0 then factorial:=1
else
 begin
  i:=1;
  for j:=n downto 1 do
   i:=i*j;
  factorial:=i;
 end;
end;

function controlfunc(x:real):real;
begin
controlfunc:=(1+x/2+sqr(x)/4)*exp(x/2)-1;
end;

begin
readln(a);
readln(x);
case a of
1:begin
j:=1;
sum:=0;
k:=0;
repeat
sum:=sum+k;
k:=((sqr(j)+1)/(stepen(2,j)*factorial(j)))*stepen(x,j);
inc(j);
until k<0.0001;
writeln('sum:=',sum);
end;
2:begin
j:=1;
sum:=0;
k:=((sqr(j)+1)/(stepen(2,j)*factorial(j)))*stepen(x,j);
while k>0.0001 do
begin
sum:=sum+k;
inc(j);
k:=((sqr(j)+1)/(stepen(2,j)*factorial(j)))*stepen(x,j);
end;
writeln('sum:=',sum);
end;
end;
writeln('control result:=',controlfunc(x));
readln;
end.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог