Написать программу в паскаль abc, генератор чисел от 0 до 1 с 16 знаками после запятой(пример 0.0000000000000002) и записать эти данные в файл txt по возрастанию.
242
243
Ответы на вопрос:
Как то так, можно улучшить конечно, но числа генерируются в нужном интервале, если найду что получше, то перепешу var a: array[1..1000] of real; i,x, j: integer; cur: real; l: text; label y; begin assign(l, 'output.txt'); rewrite(l); randomize; for i: = 1 to 999 do begin y: 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(; 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.
Если говорить о точном дополнении для двоичного числа, то оно получается путём: 1. представить данное число в двоичном виде. 2. инвертировать каждый разряд. (0 станет 1, а если был 1, то станет 0). 3. прибавить к полученному числу 1. точное дополнение числа в сумме с самим числом даёт 0. найдём точное дополнение к числу 98. 1) 0110 0010 2) 1001 1101 3) 1001 1110 число 1001 1110 - есть дополнение числа 98. представлено в однобайтовом виде. (задействовано 8 бит). старший знаковый бит "1". число соответствует отрицательному числу -98. да, действительно, дополнение к положительному числу 98 есть отрицательное число -98). найдём точное дополнение к числу -48 1) представим в двоичном виде. 1101 0000 2) инвертируем поразрядно 0010 1111 3) прибавим 1 0011 0000. число 0011 0000 есть дополнение числа -48. старший знаковый бит "0". число соответствует положительному числу 48. да, действительно, дополнение к отрицательному числу -48 есть положительное число 48).
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
koop226.05.2023 01:39
-
guygoomy29.01.2023 14:57
-
nadya574510.11.2020 23:41
-
Роннилав09.01.2022 22:22
-
zagudaevaa04.05.2022 11:43
-
арсен18704.12.2021 21:44
-
kolakao01.11.2021 08:53
-
спрос301.05.2023 09:31
-
Вппгш20.09.2022 09:11
-
alinasharifulli23.04.2023 18:24
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.