• Написать программу в паскаль ABC, генератор чисел от 0 до 1 с 16 знаками после запятой(пример 0.0000000000000002) и записать эти данные в файл txt по возрастанию.

Ответы 1

  • Как то так, можно улучшить конечно, но числа генерируются в нужном интервале, если найду что получше, то перепешуvar a:array[1..1000] of real;i,x, j:integer;cur:real;l:text;label y;beginassign(l, 'output.txt');rewrite(l);randomize;for i:= 1 to 999 dobeginy:cur := 0.96743612142/( random(24)+random(11)+random(7));x:= random(100);if x > 20 then  if cur < 0.4 then cur:= cur * random(5);if (cur = 0) or (cur > 1)then goto y;a[i]:=cur;end;for i:= 1 to 999 do  for j:= 1 to 999 do    if a[j] > a[i] then swap(a[j], a[i]);for i:= 1 to 999 do writeln(l, a[i]:0:16);close(l);end.================================================================Улучшенная версия var  a: array[1..1000] of real;  i, x, j: integer;  cur, tmp: real;  l: text;label y, z;begin  assign(l, 'output.txt');  rewrite(l);  randomize;  for i := 1 to 999 do  begin    y:    tmp := 1 - 1 / (random(33) + random(11) + random(7));    if tmp < 0.4 then goto y;    cur := tmp / abs(random(24) + random(11) - random(7));    if cur > 0.8 then     begin      x := random(10000);      if x < random(10000) then      begin        cur := cur / (1 - 1/(random(10) + random(11) + random(7)));              end;    end;    x := random(100);    if x > 50 then      if cur < 0.5 then cur := cur * random(5);    if cur < 0.1 then    begin      x := random(10000);      if x < 7000 then        cur := cur * random(8);    end;    if cur > 0.8 then    cur:= cur - 1/(random(10) + random(11) + random(7)) - 1/(random(10) + random(11) + random(7)) + 1/(random(10) + random(11) + random(7)) + 1/(random(10) + random(11) + random(7));    if (cur = 0) or (cur > 1) then goto y;    a[i] := cur;  end;  for i := 1 to 999 do    for j := 1 to 999 do      if a[j] > a[i] then swap(a[j], a[i]);  for i := 1 to 999 do writeln(l, a[i]:0:16);  close(l);end.
    • Автор:

      petey
    • 5 лет назад
    • 0
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years