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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.10.2008, 17:12   #1
Sabber
Пользователь
 
Регистрация: 21.10.2008
Сообщений: 23
По умолчанию Пожалуйста, помогите решить две задачи очень надо!

Здравствуйте уважаемые программисты.
Пожалуйста, помогите решить две задачи очень надо!
Вычисление функции, заданной в виде суммы бесконечного ряда, необходимо выполнить тремя способами: с заданной погрешностью EPS (F1(x)), с заданным числом K первых членов ряда (F2(x)) и по аналитической формуле (F(x)).
и ещё

Дано натуральное число N. Получить все способы выплаты суммы с помощью монет достоинством 1, 2 и 5 рублей.


с ув. Sabber Заранее спасибо вам!
Sabber вне форума Ответить с цитированием
Старый 21.10.2008, 21:31   #2
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

По первой задаче формулы нет?
Код второй:
Код:
uses crt;
var N,i,j,k:integer;
begin
clrscr;
Write('N=');readln(N);
for i:=1 to n do
for j:=0 to n-1 do
for k:=0 to n-4 do
if i+2*j+5*k=N then
writeln('1=',i:3,'   2=',j:3,'   5=',k:3);
readln
end.
puporev вне форума Ответить с цитированием
Старый 22.10.2008, 08:15   #3
Sabber
Пользователь
 
Регистрация: 21.10.2008
Сообщений: 23
По умолчанию

Спасибо большое за вторую задачю! Вот формулы первой, решите если можно?

∑_(n-1)^∞ x^(2n-1)/(2n-1)!=x+x^3/3!+x^5/5!+x^7/7!…….разложение в ряд

sh x (|x|<1) функция и область сходимости
Sabber вне форума Ответить с цитированием
Старый 22.10.2008, 08:39   #4
Plague
Забанен
Форумчанин Подтвердите свой е-майл
 
Аватар для Plague
 
Регистрация: 01.11.2006
Сообщений: 420
По умолчанию

to puporev, вы вообще когда нибудь задумываетесь о быстроте
ваших алгоритмов
даже если заменить
Цитата:
Код:
for i:=1 to n do
for j:=0 to n-1 do
for k:=0 to n-4 do
на это
Код:
for i:=1 to n do
for j:=0 to n div 2 do
for k:=0 to n div 5 do
он будет работать быстрее
например для n=780
ваша программа делает 472.726.800 шага
а измененная 47.881.860 в 10 раз быстрее.
можно еще ускорить алгоритм.
Если ничто другое не помогает, прочтите, наконец, инструкцию! Аксиома Кана
Plague вне форума Ответить с цитированием
Старый 22.10.2008, 10:45   #5
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Привожу решение задачи №1. По второй задаче сделайте как у Plague он плохому не научит.
Код:
uses crt;
var x,e,s,si,p:double;
    i,k:integer;
begin
clrscr;
repeat
write('x=');readln(x);
until abs(x)<1;
writeln('Первый способ - с заданной погрешностью');
repeat
write('e=');readln(e);
until e<=0.1;
i:=1;p:=x*sqr(x)/(2*i*((2*i+1)));s:=x+p;
while p>=e do
    begin
      inc(i);
      p:=p*sqr(x)/(2*i*(2*i+1));
      s:=s+p;
    end;
writeln('sh(x)=',s:0:5);
writeln;
writeln('Второй способ - с заданным количеством членов ряда');
repeat
write('k=');readln(k);
until k>1;
i:=1;p:=x*sqr(x)/(2*i*((2*i+1)));s:=x+p;
for i:=2 to k do
  begin
    p:=p*sqr(x)/(2*i*(2*i+1));
    s:=s+p;
  end;
writeln('sh(x)=',s:0:5);
writeln;
writeln('Третий способ - по формуле shx=(e^x-e^-x)/2');
s:=(exp(x)-exp(-x))/2;
writeln('sh(x)=',s:0:5);
readln
end.
puporev вне форума Ответить с цитированием
Старый 22.10.2008, 12:44   #6
Sabber
Пользователь
 
Регистрация: 21.10.2008
Сообщений: 23
По умолчанию

Спасибо большое!!! Вы мне очень помогли!!!
Sabber вне форума Ответить с цитированием
Старый 22.10.2008, 13:57   #7
Ламер_001
Ну и что? :)
Форумчанин
 
Регистрация: 20.10.2008
Сообщений: 129
По умолчанию

Цитата:
Сообщение от Plague Посмотреть сообщение
to puporev, вы вообще когда нибудь задумываетесь о быстроте
ваших алгоритмов
даже если заменить

на это
Код:
for i:=1 to n do
for j:=0 to n div 2 do
for k:=0 to n div 5 do
он будет работать быстрее
например для n=780
ваша программа делает 472.726.800 шага
а измененная 47.881.860 в 10 раз быстрее.
можно еще ускорить алгоритм.
посчитать значения n div 2 и n div 5 в какие нибудь переменные и использовать их как границу тож чуть пошустрей должна работать)))
Учиться, учиться и еще раз учиться
Ламер_001 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите пожалуйста решить задачку,очень надо __k1ll3r__ Паскаль, Turbo Pascal, PascalABC.NET 2 28.05.2008 08:47
Помогите решить две задачи на С/С++ Сема Помощь студентам 3 24.12.2007 07:31
Помогите решить две задачи с массивами SHiZiK Помощь студентам 3 21.12.2007 10:01
Помогите решить две задачи! очень прошу... DmT Фриланс 1 23.10.2007 23:19
ПОМОГИТЕ ПОЖАЛУЙСТА РЕШИТЬ ЗАДАЧИ.. ОЧЕНЬ НАДО.. unknown Паскаль, Turbo Pascal, PascalABC.NET 5 28.12.2006 14:02