| 
| 
 | Вопрос # 2 015/ вопрос открыт / | 
 |  ЗДРАВСТВУЙТЕ! Я в области программирования лузер. Помогите решить задачи:1) найти сумму x^2k / (2^k*k!), k=1 меняется до n;
 2) вывести n-ое ('эн-ное') слово строки.
 Большое спасибо)))
 К вопросу прикреплён файл. Загрузить » (срок хранения: 60 дней с момента отправки вопроса) 
|  |   Вопрос задал: NoX (статус: Посетитель)Вопрос отправлен: 21 октября 2008, 22:46
 Состояние вопроса: открыт, ответов: 1.
 |  Ответ #1. Отвечает эксперт: Feniks Здравствуйте, NoX!Примеры решения задач смотрите в приложении.
 Приложение:Переключить в обычный режим  program Feniks_q2015; {$APPTYPE CONSOLE} uses  SysUtils; type   EPowerException = class(Exception)end; var  x : word;  n, k : integer;  y : extended;  function FactIterative(j: Word): Longint;var  f: LongInt;  i: Integer;begin  f := 1;  for i := 2 to j do f := f * i;  Result := f;end;  function Power(a, b: real): extended;vart: longint;r: real;isInteger: boolean; begint := 0; if b = 0 thenbegin   result := 1.0;   exit;end; if a = 1.0 thenbegin   result := 1.0;   exit;end; if a = 0.0 thenbegin   if b > 0.0 then   begin     result := 0.0;     exit;   end   else end; if (a > 0) thentry   result := exp(b * ln(a));   exit;except   raise end;     try   t := trunc(b);   if (b - t) = 0 then     isInteger := true   else     isInteger := False;except    r := int(b);   if (b - r) = 0 then   begin     isInteger := true;     if frac(r / 2) = 0.5 then       t := 1     else       t := 2;   end   else     isInteger := False;end; if isInteger thenbegin    if odd(t) then    try     result := -exp(b * ln(-a));     exit;   except     raise    end   else    try     result := exp(b * ln(-a));     exit;   except     raise    end;endelse end;  begin   try     readln(x);     readln(n);    y := 0;    for k := 1 to n do       y := y + (Power(x, 2 * k) / (Power(2, k) * FactIterative(k)));     readln;  except    on E:Exception do      Writeln(E.Classname, ': ', E.Message);  end;end.  {   }function GetWord(Str, Smb: string; WordNmbr: Byte): string;varSWord: string;StrLen, N: Byte;begin StrLen := SizeOf(Str);N := 1; while ((WordNmbr >= N) and (StrLen <> 0)) dobegin   StrLen := Pos(Smb, str);   if StrLen <> 0 then   begin     SWord := Copy(Str, 1, StrLen - 1);     Delete(Str, 1, StrLen);     Inc(N);   end   else     SWord := Str;end; if WordNmbr <= N then   Result := SWordelse   Result := '';end;end;
|  | Ответ отправил: Feniks (статус: Бакалавр)Время отправки: 22 октября 2008, 10:50
 
 |  
 Мини-форум вопросаМини-форум пуст. Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |