|
Вопрос # 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;
- var
- t: longint;
- r: real;
- isInteger: boolean;
-
- begin
- t := 0;
-
- if b = 0 then
- begin
- result := 1.0;
- exit;
- end;
-
- if a = 1.0 then
- begin
- result := 1.0;
- exit;
- end;
-
- if a = 0.0 then
- begin
- if b > 0.0 then
- begin
- result := 0.0;
- exit;
- end
- else
-
- end;
-
- if (a > 0) then
- try
- 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 then
- begin
-
- 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;
- end
- else
-
- 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;
- var
- SWord: string;
- StrLen, N: Byte;
- begin
-
- StrLen := SizeOf(Str);
- N := 1;
-
- while ((WordNmbr >= N) and (StrLen <> 0)) do
- begin
- 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 := SWord
- else
- Result := '';
- end;
- end;
 |
Ответ отправил: Feniks (статус: Бакалавр)
Время отправки: 22 октября 2008, 10:50
|
Мини-форум вопроса
Мини-форум пуст.
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|