В
Все
М
Математика
А
Английский язык
Х
Химия
Э
Экономика
П
Право
И
Информатика
У
Українська мова
Қ
Қазақ тiлi
О
ОБЖ
Н
Немецкий язык
Б
Беларуская мова
У
Українська література
М
Музыка
П
Психология
А
Алгебра
Л
Литература
Б
Биология
М
МХК
О
Окружающий мир
О
Обществознание
И
История
Г
Геометрия
Ф
Французский язык
Ф
Физика
Д
Другие предметы
Р
Русский язык
Г
География
ритттт
ритттт
28.12.2020 04:56 •  Информатика

Заполнить массив из 10 элементов случайными числами в интервале [-50..50] и отсортировать по убыванию.
язык паскаль

Показать ответ
Ответ:
vanzoca
vanzoca
18.11.2020 02:29
Function aToDec(n:string;k:integer):longint;
{ Перевод из системы по основанию k в десятичную }
var
  i:integer;
  pa,s:longint;
begin
  s:=0;
  pa:=1;
  for i:=Length(n) downto 1 do begin
    s:=s+pa*(Ord(n[i])-Ord('0'));
    pa:=pa*k
    end;
  aToDec:=s
end;

function DecToa(n:longint;k:integer):string;
{ Перевод из десятичной системы в систему по основанию k }
var
  s:string;
  c:integer;
begin
  s:='';
  c:=Ord('0');
  while n>0 do begin
    s:=Chr(c+n mod k)+s;
    n:=n div k
    end;
  DecToa:=s
end;

function AtoB(s:string;A,B:integer):string;
{ Перевод из системы по основанию A в систему по основанию B }
begin
  AtoB:=DecToa(aToDec(s,A),B)
end;
    
var
  a,b:integer;
  n:string;
begin
  Write('Число в c/c по основанию [2;10]: '); Readln(n);
  Writeln('Укажите исходное и результирующее основания: ');
  Read(a,b);
  Writeln(n,'(',a,') = ',AtoB(n,a,b),'(',b,')');
end.

Пример решения
Число в c/c по основанию [2;10]: 643342414
Укажите исходное и результирующее основания:
7 9
643342414(7) = 80050347(9)
0,0(0 оценок)
Ответ:
ForeverDiman
ForeverDiman
12.06.2021 12:04
Var
  s: string;
  n,m: integer;

 begin
  readln(n);
  if (n <= 9) then write(n)
  else if (n <= 9 + 9) then
     begin
       s := inttostr(n - 9);
      write(s + s);
     end
  else if (n <= 9 + 9 + 90) then
     begin
       s := inttostr(n - 9 -9 + 10 -1);
       m:=s.Length-1;
       write(s + s[m:0:-1]);
     end
  else if (n <= 9 + 9 + 90 + 90) then
     begin
       s := inttostr(n - 9 - 9 + 90 + 10 - 1);
       write(s + s[::-1]);
     end
  else if (n <= 9 + 9 + 90 + 90 + 900) then
     begin
       s := inttostr(n - 9 - 9 - 90 - 90 + 100 - 1);
       m:=s.Length-1;
write(s + s[m:0:-1]);
     end
  else if (n <= 9 + 9 + 90 + 90 + 900 + 900) then
     begin
       s := inttostr(n - 9 - 9 - 90 - 90 - 900 + 100 - 1);
       write(s + s[::-1]);
     end
  else if (n <= 9 + 9 + 90 + 90 + 900 + 900 + 9000) then
     begin
       s := inttostr(n - 9 - 9 - 90 - 90 - 900 - 900 + 1000 - 1);
       m:=s.Length-1;
       write(s + s[m:0:-1]);
     end
  else if (n <= 9 + 9 + 90 + 90 + 900 + 900 + 9000 + 9000) then
     begin
       s := inttostr(n - 9 - 9 - 90 - 90 - 900 - 900 - 9000 + 1000 - 1 );
       write(s + s[::-1]);
     end
  else
     begin
       s := inttostr(n - 9 - 9 - 90 - 90 - 900 - 900 - 9000 - 9000 + 10000 - 1);
       m:=s.Length-1;
       write(s + s[m:0:-1]);
     end
end.
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота