Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 28.02.2011, 22:39
Shiza Shiza вне форума
Прохожий
 
Регистрация: 28.02.2011
Сообщения: 8
Репутация: 10
Вопрос помогите с кодом программы Делфи

блок-схема.jpg
собственно по этой блок-схеме необходимо решить задачу.

у меня получилось так?
Код:
 var
  Form1: TForm1;

i,n:integer;
 z : extended;
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
if edit1.text=''then showMessage ('Error') else
begin
z:=0;
edit1.Text:=inttostr(n);
 for i:=1 to n do
z:=z+((-1)*ln(i))*(((x*i)*ln(i))/i);
  begin
 if  (z>n) then edit2.Text:=inttostr(z)
   else  edit2.Text:=strtoint(n)
   end;
  end;
 end;
Админ: Пользуемся тегами для оформления кода!

неработает

Последний раз редактировалось Shiza, 28.02.2011 в 22:55.
Ответить с цитированием
  #2  
Старый 28.02.2011, 22:55
Shiza Shiza вне форума
Прохожий
 
Регистрация: 28.02.2011
Сообщения: 8
Репутация: 10
По умолчанию

Уважаемый Админ знать бы как ими пользоваться
Ответить с цитированием
  #3  
Старый 28.02.2011, 22:58
Аватар для Sky.NET
Sky.NET Sky.NET вне форума
Прохожий
 
Регистрация: 22.09.2010
Сообщения: 49
Версия Delphi: XE
Репутация: 12
По умолчанию

Болок-схема точная?
__________________
IDE := Embarcadero.RADStudio.XE.Architect
// Успешность метода научного тыка обратно пропорциональна извилистости головного мозга на кривизну рук ©
Ответить с цитированием
  #4  
Старый 28.02.2011, 22:59
Shiza Shiza вне форума
Прохожий
 
Регистрация: 28.02.2011
Сообщения: 8
Репутация: 10
По умолчанию

не факт, но хотелось бы верить.

вероятнее что z=сумма+(-1).....

Последний раз редактировалось Shiza, 28.02.2011 в 23:03.
Ответить с цитированием
  #5  
Старый 28.02.2011, 23:14
Аватар для Sky.NET
Sky.NET Sky.NET вне форума
Прохожий
 
Регистрация: 22.09.2010
Сообщения: 49
Версия Delphi: XE
Репутация: 12
По умолчанию

Немного не точная блок-схема, некоторых элементов не хватает. Но если я правильно понял, то код следующий:
Код:
var
  i, n, x: integer;
  z: extended;
begin
  i := 1;
  z := 0;
  n := StrToInt(Edit1.text);
  x := StrToInt(Edit2.text);
  repeat
    z := z + ((-1) * ln(i)) * (((x * i) * ln(i)) / i);
    inc(i);
  until i > n;
  Edit3.text := FloatToStr(z);
end;
__________________
IDE := Embarcadero.RADStudio.XE.Architect
// Успешность метода научного тыка обратно пропорциональна извилистости головного мозга на кривизну рук ©
Ответить с цитированием
  #6  
Старый 28.02.2011, 23:24
Shiza Shiza вне форума
Прохожий
 
Регистрация: 28.02.2011
Сообщения: 8
Репутация: 10
По умолчанию

Большое спасибо! Вполне устраивает
Ответить с цитированием
  #7  
Старый 02.03.2011, 17:02
icWasya icWasya вне форума
Местный
 
Регистрация: 09.11.2010
Сообщения: 499
Репутация: 10
По умолчанию ln(i)

А причём тут логарифм?
Ответить с цитированием
  #8  
Старый 02.03.2011, 18:43
Аватар для Sky.NET
Sky.NET Sky.NET вне форума
Прохожий
 
Регистрация: 22.09.2010
Сообщения: 49
Версия Delphi: XE
Репутация: 12
По умолчанию

Ну это уже как автор знает математику
__________________
IDE := Embarcadero.RADStudio.XE.Architect
// Успешность метода научного тыка обратно пропорциональна извилистости головного мозга на кривизну рук ©
Ответить с цитированием
  #9  
Старый 04.03.2011, 17:03
Shiza Shiza вне форума
Прохожий
 
Регистрация: 28.02.2011
Сообщения: 8
Репутация: 10
По умолчанию

если верить интернету и руководству по Делфи, то в степень на языке делфи возводится через логарифм.
Ответить с цитированием
  #10  
Старый 04.03.2011, 17:21
Аватар для v1s2222
v1s2222 v1s2222 вне форума
Продвинутый
 
Регистрация: 07.09.2010
Сообщения: 726
Репутация: 26711
По умолчанию

Вообще в делфи есть процедурка возведения в степень - Power из модуля Math. То бишь: 2^3: Math.Power(2, 3).
А вообще: a^b=e^(b*ln(a))=exp(b*ln(a)).
А вообще почитай статейку: http://ru.wikipedia.org/wiki/%D0%92%...%D 0%BD%D1%8C
__________________
Помогаю за Спасибо
Ответить с цитированием
  #11  
Старый 04.03.2011, 17:27
Shiza Shiza вне форума
Прохожий
 
Регистрация: 28.02.2011
Сообщения: 8
Репутация: 10
По умолчанию

Благодарю!
Ответить с цитированием
  #12  
Старый 04.03.2011, 21:00
Shiza Shiza вне форума
Прохожий
 
Регистрация: 28.02.2011
Сообщения: 8
Репутация: 10
По умолчанию

эх.. видимо мне не дано это сделать.

Последний раз редактировалось Shiza, 04.03.2011 в 21:06.
Ответить с цитированием
  #13  
Старый 04.03.2011, 21:03
Shiza Shiza вне форума
Прохожий
 
Регистрация: 28.02.2011
Сообщения: 8
Репутация: 10
По умолчанию

подправила непосредственно уравнение руководствуясь
Цитата:
Сообщение от v1s2222
a^b=e^(b*ln(a))=exp(b*ln(a))

z:=(exp(i*ln((-1))))*((x*exp(i*ln(i)))/i);

но где-то намудрила, выдает ошибку: "invalid floating point operation" (нетрудоспособное действие плавающей точки)
Ответить с цитированием
  #14  
Старый 06.03.2011, 07:16
woc131 woc131 вне форума
Прохожий
 
Регистрация: 11.02.2011
Сообщения: 13
Репутация: 10
По умолчанию

Попробуй поменять типы переменных в Var.
Думаю ругается т.к. какое-то из действий нельзя производить с типом extended, или из-за несовместимости типов и тп.
Ответить с цитированием
  #15  
Старый 07.03.2011, 00:23
Аватар для Sky.NET
Sky.NET Sky.NET вне форума
Прохожий
 
Регистрация: 22.09.2010
Сообщения: 49
Версия Delphi: XE
Репутация: 12
Восклицание

Цитата:
Сообщение от Shiza
z:=(exp(i*ln((-1))))*((x*exp(i*ln(i)))/i);
Зачем так много скобок?
z := z + exp(i * ln(-1)) * (exp(i * ln(x * i))/i); // если (xi)^i
или
z := z + exp(i * ln(-1)) * (x * exp(i * ln(i))/i); // если x* i^i

И ln(-1) калькуляторы не посчитают. Это комплексный логарифм. Поэтому и ошибка.
Подробнее в Википедии.
__________________
IDE := Embarcadero.RADStudio.XE.Architect
// Успешность метода научного тыка обратно пропорциональна извилистости головного мозга на кривизну рук ©

Последний раз редактировалось Sky.NET, 07.03.2011 в 00:29.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 03:15.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025