Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

DNK
I. DNK
Баллы: 5

Подробнее »



Вопрос # 2 015

/ вопрос открыт /

ЗДРАВСТВУЙТЕ! Я в области программирования лузер. Помогите решить задачи:
1) найти сумму x^2k / (2^k*k!), k=1 меняется до n;
2) вывести n-ое ('эн-ное') слово строки.
Большое спасибо)))

К вопросу прикреплён файл. Загрузить » (срок хранения: 60 дней с момента отправки вопроса)

NoX Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: NoX (статус: Посетитель)
Вопрос отправлен: 21 октября 2008, 22:46
Состояние вопроса: открыт, ответов: 1.

Ответ #1. Отвечает эксперт: Feniks

Здравствуйте, NoX!
Примеры решения задач смотрите в приложении.

Приложение:
  1.  
  2. program Feniks_q2015;
  3.  
  4. {$APPTYPE CONSOLE}
  5.  
  6. uses
  7. SysUtils;
  8.  
  9. type
  10. EPowerException = class(Exception)
  11. end;
  12.  
  13. var
  14. x : word;
  15. n, k : integer;
  16. y : extended;
  17.  
  18.  
  19. function FactIterative(j: Word): Longint;
  20. var
  21. f: LongInt;
  22. i: Integer;
  23. begin
  24. f := 1;
  25. for i := 2 to j do f := f * i;
  26. Result := f;
  27. end;
  28.  
  29.  
  30. function Power(a, b: real): extended;
  31. var
  32. t: longint;
  33. r: real;
  34. isInteger: boolean;
  35.  
  36. begin
  37. t := 0;
  38.  
  39. if b = 0 then
  40. begin
  41. result := 1.0;
  42. exit;
  43. end;
  44.  
  45. if a = 1.0 then
  46. begin
  47. result := 1.0;
  48. exit;
  49. end;
  50.  
  51. if a = 0.0 then
  52. begin
  53. if b > 0.0 then
  54. begin
  55. result := 0.0;
  56. exit;
  57. end
  58. else
  59.  
  60. end;
  61.  
  62. if (a > 0) then
  63. try
  64. result := exp(b * ln(a));
  65. exit;
  66. except
  67. raise
  68.  
  69. end;
  70.  
  71.  
  72.  
  73.  
  74.  
  75. try
  76. t := trunc(b);
  77. if (b - t) = 0 then
  78. isInteger := true
  79. else
  80. isInteger := False;
  81. except
  82.  
  83. r := int(b);
  84. if (b - r) = 0 then
  85. begin
  86. isInteger := true;
  87. if frac(r / 2) = 0.5 then
  88. t := 1
  89. else
  90. t := 2;
  91. end
  92. else
  93. isInteger := False;
  94. end;
  95.  
  96. if isInteger then
  97. begin
  98.  
  99. if odd(t) then
  100.  
  101. try
  102. result := -exp(b * ln(-a));
  103. exit;
  104. except
  105. raise
  106.  
  107. end
  108. else
  109.  
  110. try
  111. result := exp(b * ln(-a));
  112. exit;
  113. except
  114. raise
  115.  
  116. end;
  117. end
  118. else
  119.  
  120. end;
  121.  
  122.  
  123. begin
  124.  
  125. try
  126.  
  127. readln(x);
  128.  
  129. readln(n);
  130. y := 0;
  131. for k := 1 to n do
  132. y := y + (Power(x, 2 * k) / (Power(2, k) * FactIterative(k)));
  133.  
  134. readln;
  135. except
  136. on E:Exception do
  137. Writeln(E.Classname, ': ', E.Message);
  138. end;
  139. end.
  140.  
  141.  
  142. {
  143.  
  144.  
  145.  
  146. }
  147. function GetWord(Str, Smb: string; WordNmbr: Byte): string;
  148. var
  149. SWord: string;
  150. StrLen, N: Byte;
  151. begin
  152.  
  153. StrLen := SizeOf(Str);
  154. N := 1;
  155.  
  156. while ((WordNmbr >= N) and (StrLen <> 0)) do
  157. begin
  158. StrLen := Pos(Smb, str);
  159. if StrLen <> 0 then
  160. begin
  161. SWord := Copy(Str, 1, StrLen - 1);
  162. Delete(Str, 1, StrLen);
  163. Inc(N);
  164. end
  165. else
  166. SWord := Str;
  167. end;
  168.  
  169. if WordNmbr <= N then
  170. Result := SWord
  171. else
  172. Result := '';
  173. end;
  174. end;


Ответ отправил: Feniks (статус: Бакалавр)
Время отправки: 22 октября 2008, 10:50


Мини-форум вопроса

Мини-форум пуст.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 23 июля 2017, 05:48
Выполнено за 0.03 сек.
Рейтинг@Mail.ru