Напишите программу которая будет переводить из 10 системы с счисления в любую другую ( в том числе должны быть отрицательные числа и не только целые) было бы неплохо ещё засчиту от дебилов(чтобы можно было упасть на клаву и программа не сломалась) прошу.
231
437
Ответы на вопрос:
Pascalabc.net 3.3.5, сборка 1644 от 23.03.2018 внимание! если программа не работает, обновите версию! function dectoa(n: string; k: integer): string; // перевод из десятичной системы в систему по основанию k begin var s: ='0123456789abcdefghijklmnopqrstuvwxyz'; 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'+result end; begin var n: =readlnstring('какое число перевести? '); var p: real; if not real.tryparse(n,p) then writeln('такая запись недопустима') else if n.contains('e') or n.contains('e') then writeln('запись в экспоненциальном формате не разрешена') else begin var k: =readinteger('укажите основание системы: '); if k.between(2,36) then writeln(n,'(10) = ',n[1],dectoa(n[2: ],k),'(',k,')') else writeln('допустимы основания 2..36') end end. примеры какое число перевести? 123,5433 такая запись недопустима какое число перевести? -353.093234 укажите основание системы: 21 -353.093234(10) = -gh.1k2951b0djah1bi(21) какое число перевести? 6523 укажите основание системы: 8 6523(10) = 61013(8) какое число перевести? 1.2e-18 запись в экспоненциальном формате не разрешена
program a_86betiri; uses crt; const n=20; var a: array[1..n] of real; sum, mt: real; i: integer; begin writeln('*** alphaues is ***'); writeln('*** ok ***'); sum: =0; mt: =1; randomize; for i: =1 to n do begin a[i]: =random(100); sum: =sum+a[i]; end; writeln('элементы массива: '); for i: =1 to n do begin if a[i]< (sum/n) then mt: =mt*a[i]; write (a[i]: 7: 2); end; writeln(); writeln('произведение элементов, меньших, чем среднее арифметическое: ',mt); end.
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
Gllodory12.10.2021 18:50
-
Zhora23123.05.2020 14:03
-
lenyaalikin23.08.2020 02:52
-
ольга171608.05.2022 11:17
-
бабеков25.05.2022 19:40
-
RihDest30.05.2021 19:34
-
tylkerwest19.09.2022 06:27
-
nastya11w22.03.2020 18:51
-
tt5tt529115.02.2021 19:42
-
лолололололпке25.03.2020 01:45
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.