Всех ! если вам не сложно, то хотел бы попросить . необходимо решить на яп pascal с использованием подпрограмм, если можно, то с комментариями переменных и некоторых функций. системы счисления: 2, 8, 10 и 16. типа real чтобы число можно было записать с десятичной дробью пример: (2.25) . заранее .
193
266
Ответы на вопрос:
// pascalabc.net 3.3.5, сборка 1644 от 23.03.2018// внимание! если программа не работает, обновите версию! function atodec(n: string; k: integer): string; // перевод из системы по основанию k в десятичнуюbegin var s: ='0123456789abcdef'; result: =''; var pointpos: =pos('.',n); if pointpos> 0 then begin // есть дробная часть var sfracpart: =n[pointpos+1: ]; var r: =0.0; var p: =k; foreach var c in sfracpart do begin r+=(pos(c,s)-1)/p; p*=k; end; result: =r.tostring[2: ] end else pointpos: =n.length+1; var pa: =1; n: =n[: pointpos]; var p: =0; foreach var c in n.reverse do begin p+=pa*(pos(c,s)-1); pa*=k end; result: =p.tostring+resultend; function dectoa(n: string; k: integer): string; // перевод из десятичной системы в систему по основанию kbegin var s: ='0123456789abcdef'; result: =''; var pointpos: =pos('.',n); var intpart: integer; if pointpos> 0 then begin // есть дробная часть var fracpart: =frac(n.toreal); var m: =0; while true do begin var r: =fracpart*k; result+=s[trunc(r)+1]; fracpart: =frac(r); m+=1; if (m=15) or (fracpart=0) then break end; intpart: =n[: pointpos].tointeger; end else intpart: =n.tointeger; if result< > '' then result: ='.'+result; while intpart> 0 do begin result: =s[intpart mod k+1]+result; intpart: =intpart div k end; if result='' then result: ='0'; if result[1]='.' then result: ='0'+resultend; function atob(s: string; a,b: integer): string; // перевод из системы по основанию a в систему по основанию bbegin if a=10 then result: =dectoa(s,b) else if b=10 then result: =atodec(s,a) else result: =dectoa(atodec(s,a),b)end; begin var n: =readlnstring('какое число перевести? '); var (a,b): =readinteger2('исходное и результирующее основания: '); writeln(n,'(',a,') = ',atob(n,a,b),'(',b,')'); end. пример какое число перевести? 345.653 исходное и результирующее основания: 8 16 345.653(8) = e5.d58(16)
А) 84953 = 10100101111011001, 834 = 1101000010, 55 = 110 111б) 1462 = 1100110010, 71 = 111001, 634 = 110011 100в) e93f76 = 111010010011111101110 110,59d45 = 1011001110101000101 94553 = 10010100010101010 011
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
zhidkovzachar01.03.2021 16:49
-
anastasijamak01.04.2022 01:29
-
aguscov05.10.2020 05:09
-
e2005n04.07.2021 16:37
-
bm2233721.06.2020 07:03
-
suvaeva884p019j529.05.2021 02:59
-
Ameya01.05.2023 16:30
-
tatksyushap06w3y05.05.2023 18:43
-
LIBOVALEmail08.09.2020 08:23
-
Nastya001200524.01.2023 21:21
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.