Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.12.2011, 20:23   #1
Orlangur
 
Регистрация: 16.12.2011
Сообщений: 5
По умолчанию Delphi, Цикл с неизвестным числом повторений

совсем новичок в программировании (не больше трех недель), попробовал составить программу, не работает... объясните, пожалуйста, где ошибка:

даны действительные x,e (x<>0, e>0). вычислить с точностью до e (сумма ряда):
k от 1 до бесконечности, ((-1)^k*x^k)/k;

вот код:

Код:
procedure TForm1.Button1Click(Sender: TObject);
var k:Integer;
x,e,u,S:Real;
begin
x:=StrTofloat(Edit1.Text);
e:=StrTofloat(Edit2.Text);
S:=0;
k:=0;
while (u>e) do
  begin
    S:=S+u;
    k:=k+1;
    u:=(power(-1,k)*power(x,k))/k;
  end;
  Edit3.Text:=FloatToStr(u);
end;

end.
Orlangur вне форума Ответить с цитированием
Старый 16.12.2011, 20:53   #2
ByAlex
Форумчанин
 
Аватар для ByAlex
 
Регистрация: 15.03.2011
Сообщений: 465
По умолчанию

Цитата:
Сообщение от Orlangur Посмотреть сообщение
совсем новичок в программировании (не больше трех недель), попробовал составить программу, не работает... объясните, пожалуйста, где ошибка:

даны действительные x,e (x<>0, e>0). вычислить с точностью до e (сумма ряда):
k от 1 до бесконечности, ((-1)^k*x^k)/k;

вот код:

Код:
procedure TForm1.Button1Click(Sender: TObject);
var k:Integer;
x,e,u,S:Real;
begin
x:=StrTofloat(Edit1.Text);
e:=StrTofloat(Edit2.Text);
S:=0;
k:=0;
while (u>e) do
  begin
    S:=S+u;
    k:=k+1;
    u:=(power(-1,k)*power(x,k))/k;
  end;
  Edit3.Text:=FloatToStr(u);
end;

end.
А где ошибка то?
Помог - жми на весы!
ByAlex89@mail.ru
ByAlex вне форума Ответить с цитированием
Старый 16.12.2011, 21:56   #3
Orlangur
 
Регистрация: 16.12.2011
Сообщений: 5
По умолчанию

Программа запускается, но работает не верно: при любых X и e он выдает постоянно одно и то же число: 7,29... и т.д.

я могу скинуть весь проект, если вам будет так удобнее...
Orlangur вне форума Ответить с цитированием
Старый 16.12.2011, 22:02   #4
ByAlex
Форумчанин
 
Аватар для ByAlex
 
Регистрация: 15.03.2011
Сообщений: 465
По умолчанию

Цитата:
Сообщение от Orlangur Посмотреть сообщение
Программа запускается, но работает не верно: при любых X и e он выдает постоянно одно и то же число: 7,29... и т.д.

я могу скинуть весь проект, если вам будет так удобнее...
Давай, отправляй!
Помог - жми на весы!
ByAlex89@mail.ru
ByAlex вне форума Ответить с цитированием
Старый 16.12.2011, 22:33   #5
viron
Форумчанин
 
Аватар для viron
 
Регистрация: 02.12.2011
Сообщений: 110
По умолчанию

Цитата:
Программа запускается, но работает не верно: при любых X и e он выдает постоянно одно и то же число: 7,29... и т.д.
Код:
begin
x:=StrTofloat(Edit1.Text);
e:=StrTofloat(Edit2.Text);
S:=0;
k:=0;
while (u>e) do  // Чему равна u здесь?
...
Код:
procedure TForm1.Button1Click(Sender: TObject);
var k:Integer;
x,e,u,S:Real;
begin
x:=StrTofloat(Edit1.Text);
e:=StrTofloat(Edit2.Text);
S:=0;
k:=1;
u:=(power(-1,k)*power(x,k))/k;

while (u>e) do
  begin
    S:=S+u;
    k:=k+1;
    u:=(power(-1,k)*power(x,k))/k;
  end;
  Edit3.Text:=FloatToStr(u);
end;

end.

Последний раз редактировалось viron; 16.12.2011 в 22:39.
viron вне форума Ответить с цитированием
Старый 16.12.2011, 23:04   #6
Orlangur
 
Регистрация: 16.12.2011
Сообщений: 5
По умолчанию

VIRON

все-равно не пашет...
вот кое какие наработки)

Код:
procedure TForm1.Button1Click(Sender: TObject);
var k:Integer;
x,e,u,S:Real;
begin
x:=StrTofloat(Edit1.Text);
e:=StrTofloat(Edit2.Text);
S:=0;
k:=1;
u:=1;

while (u>e) do
  begin
    S:=S+u;
    k:=k+1;
    u:=u*(power(-1,k)*power(x,k))/k;
  end;
  Edit3.Text:=FloatToStr(S);
end;

end.
в Edit3 все же сумму нужно вывести
Orlangur вне форума Ответить с цитированием
Старый 16.12.2011, 23:36   #7
ByAlex
Форумчанин
 
Аватар для ByAlex
 
Регистрация: 15.03.2011
Сообщений: 465
По умолчанию

Учти - для входа в цикл, u должно быть больше e!
Помог - жми на весы!
ByAlex89@mail.ru
ByAlex вне форума Ответить с цитированием
Старый 17.12.2011, 00:13   #8
viron
Форумчанин
 
Аватар для viron
 
Регистрация: 02.12.2011
Сообщений: 110
По умолчанию

Несколько раз проверил эту программу. Она ни при каких x и e не
заходит даже в цикл while Все таки u нужно считать по
формуле u:=(power(-1,k)*power(x,k))/k;. То есть u до входа в цикл получаеться отрицательным а e положительное.

Может в самой формуле ошибка?

Если x положительное то цикл пропускаеться а если отрицательное то в цикл заходим, но из него уже не выходим никогда.

Последний раз редактировалось viron; 17.12.2011 в 00:24.
viron вне форума Ответить с цитированием
Старый 17.12.2011, 00:33   #9
viron
Форумчанин
 
Аватар для viron
 
Регистрация: 02.12.2011
Сообщений: 110
По умолчанию

Вроде так

Код:
  x:= StrToFloat(Edit1.Text);
  e:= StrToFloat(Edit2.Text);
  k:= 1;
  u:= ( Power(-1,k)  * Power(x,k) ) / k;
  s:= u;

  if x > 0 then
  while (u > e) do
    begin
      k:= k + 1;
      u:= ( Power(-1,k)  * Power(x,k) ) / k;
      s:= s + u;
    end
  else
  while (u < e) do
    begin
      k:= k + 1;
      u:= ( Power(-1,k)  * Power(x,k) ) / k;
      s:= s + u;
    end;

Последний раз редактировалось viron; 17.12.2011 в 00:35.
viron вне форума Ответить с цитированием
Старый 17.12.2011, 17:33   #10
Orlangur
 
Регистрация: 16.12.2011
Сообщений: 5
По умолчанию

все-равно не работает...
не знаю уже, что делать
Orlangur вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
"Циклы с неизвестным числом повторений" obayashka Паскаль, Turbo Pascal, PascalABC.NET 3 20.01.2011 15:37
Программирование циклов с неизвестным числом повторений Any13 Помощь студентам 0 23.11.2010 21:13
Организовка цикла с неизвестным числом повторений серг Помощь студентам 6 16.11.2009 18:21
Pascal, цикл с заданным числом повторений mondi Помощь студентам 8 13.11.2008 17:55
Цикл с заданным числом повторений Extrem_um Помощь студентам 3 02.04.2008 21:00