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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.12.2009, 17:36   #1
Driver_09
Пользователь
 
Регистрация: 11.10.2009
Сообщений: 61
По умолчанию Помогите дополнить задачу

Задача:
В течение месяца курс доллара падал. В первый день он составил а рублей. В каждый
следующий на 3% и ещё 0,1 руб. меньше. Каким будет курс доллара во 2.3,4,...n день?
Через сколько дней он будет ниже b рублей?


вот текст проги:
uses
SysUtils;

Var a:real;i,d:integer;
begin
writeln('Vvedite kurs dollara $');
readln(a);
writeln('Vvedite kol-vo dney');
readln(d);
for i:=2 to d do
begin
a:=a-0.1-(a/100)*3;
writeln('day:',i,', ','$=',a:0:2);
end;
readln;
end.


То есть, я написал прогу чтобы просто за заданное кол-во дней она считала падение доллара.
а вот чтобы за сколько дней курс будет ниже b рублей, я не могу додуматься...
Помогите кто чем может или подкиньте идеи)
Driver_09 вне форума Ответить с цитированием
Старый 23.12.2009, 17:54   #2
IT-man
АльTRUEи$т
Форумчанин
 
Аватар для IT-man
 
Регистрация: 19.03.2009
Сообщений: 784
По умолчанию

Код:
kd:=0;
while a>= b do begin
kd:=kd+1;
a:=a-0.1-(a/100)*3;
end;
Цитата:
«Никто не войдет в Рай, имея хотя бы крупицу гордыни в своем сердце». «Аллах Красив и любит красоту. Гордыня означает отказ от истины и высокомерие»
IT-man вне форума Ответить с цитированием
Старый 23.12.2009, 18:14   #3
Dzmitry Loktseu
Пользователь
 
Регистрация: 17.12.2009
Сообщений: 18
По умолчанию

Код:
program Project3;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var
  B: Boolean;
  CurrCours, LessThan: Currency;
  NumDays, I, N: Integer;
begin
  try
    Write('dollar on the first day, rubles: ');
    ReadLn(CurrCours);
    Write('Number of days: ');
    ReadLn(NumDays);
    Write('Less than, rubles: ');
    ReadLn(LessThan);
    B := False;
    N := 0;
    for I := 2 to NumDays do
    begin
      CurrCours := CurrCours - ((CurrCours / 100) * 3) - 0.1;      
      if not B and (CurrCours < LessThan) then
      begin
        N := I;
        B := True;
      end;
    end;
    WriteLn(Format('After "%d" days dollar will be %f rubles.', [NumDays,
      CurrCours]));
    if N > 0 then
      WriteLn(Format('After %d days the dollar will be lower then %f rubles.',
        [N, LessThan]));
    ReadLn;
  except
    on E:Exception do
      Writeln(E.Classname, ': ', E.Message);
  end;
end.

Последний раз редактировалось Dzmitry Loktseu; 23.12.2009 в 18:21.
Dzmitry Loktseu вне форума Ответить с цитированием
Старый 23.12.2009, 18:21   #4
Driver_09
Пользователь
 
Регистрация: 11.10.2009
Сообщений: 61
По умолчанию

IT-man , Dzmitry Loktseu спасибо.
Только я при помощи IT-man намного проще прогу сделал)
Но огромное спасиб
Driver_09 вне форума Ответить с цитированием
Старый 23.12.2009, 18:33   #5
Driver_09
Пользователь
 
Регистрация: 11.10.2009
Сообщений: 61
По умолчанию

IT-man , Dzmitry Loktseu а можете ещё дополнить прогу:
Используя оператор цикла, вычислить с заданной точностью ε приближенное значение
функции, указав количество элементов в вычисленной сумме, с использованием
рекуррентных формул, скобочных форм и/или дополнительных переменных по формуле S.
При составление программы считать, что точность достигнута, если |an |<ε .



Цитата:
uses
SysUtils;

var sum,an,x:real;n:integer;
begin
write('Vvedite X:');
readln(x);
sum:=0;
an:=1-((n*ln(-1)*n*n*ln(x))/x);
n:=2;
while (abs(an)>0.0001) do
begin
sum:=sum+an;
n:=n+1;
an:=an*((-n*x)/1-n);
end;
writeln('Summa ',n:3,'elementov=',an:0:5);
readln;
end.
Она почему-то считает только при х меньше 1.
больше ничего не считает.
Вроде рекуррентную формулу правильно высчитал.
Driver_09 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дополнить слова пробелами на языке Си hellslash Помощь студентам 1 20.12.2009 12:10
макросом дополнить название Romuald Microsoft Office Excel 2 22.05.2008 17:31
Надо дополнить плз... Droid Общие вопросы Delphi 12 24.04.2008 18:01