Показать сообщение отдельно
  (#2 (permalink)) Старый
AssAsin AssAsin вне форума
Member
 
Сообщений: 383
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Регистрация: 02.11.2002
По умолчанию 17.11.2002, 13:26

Вроде бы, так:

Код:
program shit;

var
  a, ym, h, c: double;

function func_y(x: double): double;
var
  xx: double;
begin
  xx := x*x;
  Result := sqrt(xx*x + 4.0*xx) / (4.0 - xx);
end;

procedure do_it(a, ym, h, c: double);
var
  i: integer;
  x, y, dc, dx: double;
begin
  x := a;
  dc := 1;  // = 1, c, cc, ccc, ...
  dx := h;  // = h, h+ch, h+ch+cch, ...
  for i := 1 to 15 do begin
    y := func_y(x);
    if y > ym then
      break;
    writeln('y(', x, ')=', y);
    x := x + dx;
    dc := dc * c;
    dx := dx + (h * dc);
  end;
end;

begin
  write('input a, ym, h, c: ');
  readln(a, ym, h, c);
  do_it(a, ym, h, c);
end;
P.S. Запрашиваемые переменные вводить одной строкой, кажись через пробел.
P.P.S. В действии не проверял.
Ads