М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
armine8
armine8
19.12.2022 03:23 •  Информатика

Написать алгоритм перевода чисел из 10тичной системы счисления в любую другую (от 2ичной до 36ричной) и обратно вся прогамма не нужна, только две функции желательно на с#, но можно и на других языках хотелось бы увидеть красивый и логичный код с красиво назваными переменными и без костылей могу и сама но некогда этим заниматься

👇
Ответ:
marinatabeleva4
marinatabeleva4
19.12.2022

static string DecAntjeToBin(int antje)
{
   /*if (antje == 0)
        return "0";*/ //косметический 0 перед запятой если целая часть равна 0
   string bin = "";

   while (antje != 0)
   {
      bin = (antje % 2).ToString() + bin;
      antje /= 2;
   }
   return bin;
}

 

static string DecMantToBin(float mant, int precision)
{
   /*if (mant == 0)
        return "0";*/ //косметический 0 после запятой если дробная часть равна 0
   string bin = "";
   while (mant != 0 && bin.Length <= precision)
   {
      mant *= 2;
      bin += ((int)mant).ToString();
      mant -= (int)mant;
   }
   return bin;
}

 

static string DecToBin(float dec, int precision)
{
   int antje = (int)dec;
   float mant = dec - antje;
   return DecAntjeToBin(antje) + "," + DecMantToBin(mant, precision);
}

 

static string DecToBin(int dec)
{
   return DecAntjeToBin(dec);
}

 

static float Pow(int a, int x)
{
   float result = 1;
   if (x > 0)
      for (int i = 0; i < x; i++)
         result *= a;
   else
      for (int i = x; i < 0; i++)
         result /= a;
   return result;
}

 

static float BinMantToDec(string mant)
{
   float decMant = 0;
   for (int i = 0; i < mant.Length; i++)
      if (mant[i] == '1')
         decMant += Pow(2, -(i + 1));
   return decMant;
}

 

static float BinAntjeToDec(string antje)
{
   float decAntje = 0;
   for (int i = 0; i < antje.Length; i++)
      if (antje[i] == '1')
         decAntje += Pow(2, antje.Length - i - 1);
   return decAntje;
}


static float BinToDec(string bin)
{
   int indexSep = bin.IndexOf(',');

   if (indexSep == -1)
      return BinAntjeToDec(bin);

   string binAnt = bin.Substring(0, indexSep);
   string binMant = bin.Substring(indexSep + 1);

   return BinAntjeToDec(binAnt) + BinMantToDec(binMant);
}

4,4(49 оценок)
Ответ:
viktoriag373
viktoriag373
19.12.2022

var
a,b,c,i,n,p,s:integer;
x:real;
p1,g:string;
begin
writeln('vvedite chislo');
readln(a);
writeln('is kakoi perevodim?');
readln(b);
if b=10 then begin
writeln('v kakoi perevodim?');
readln(c);
end;
n:=0;
p:=0;

 

if b<>10 then begin      'is 10 v lubuyu sistemu
repeat
x:=exp(ln(b)*n);
s:=Round(x);
p:=p + (a mod 10)*s;
a:= a div 10;
n:=n+1;
until a=0;
end


else begin

repeat                         'is luboi sistemi v 10
g:=IntToStr(a mod c);
p1:=p1 + g;
a:=a div c;
until a<c;
p1:=p1+IntToStr(a);
end;


if p=0 then begin         'vivod
for i:=1 to length(p1) do
write(p1[length(p1)-i+1]);
end
else
write(p);
end.

4,4(8 оценок)
Открыть все ответы
Ответ:
vitalya0011
vitalya0011
19.12.2022
Вот код:

var ababab,bababa,sususumamama:Integer;
begin
WriteLn('Перед вами программа для нахождения суммы всех натуральных чисел заданного диапазона');
введите наименшее число диапазона ');
ReadLn(ababab);
Write('А теперь введите наибольшее число диапазона ');
ReadLn(bababa);
//оформляем ввод данных
sususumamama:=0;//присваиваем сумме значение 0
while ababab<=bababa do
begin
sususumamama:=sususumamama+ababab;//увеличиваем сумму на число а
ababab:=ababab+1;//увеличиваем число а на 1
end;
Write('Сумма всех чисел диапазона равна '+sususumamama);
//выводим сумму чисел
end.
4,5(48 оценок)
Ответ:
PascalABC.NET 3.3.5, сборка 1659 от 09.04.2018
Внимание! Если программа не работает, обновите версию!

procedure LT(p,q:array of integer; var r:boolean);
begin
  r:=p.Zip(q,(i,j)->i-j).All(t->t<0)
end;

begin
  var a:=ArrRandom(15,-50,10); Print('a:'); a.Println;
  var b:=ArrRandom(15,-10,50); Print('b:'); b.Println;
  var less:boolean;
  LT(a,b,less);
  if less then begin
    a.Transform(t->t*10); Print('a:'); a.Println;
    b.Transform(t->t div 2); Print('b:'); b.Println
    end
  else Writeln('Векторы не менялись')
end.

Примеры
a: -1 -32 -32 6 -27 -19 -31 -24 -38 -7 -23 -20 -32 -32 2
b: -7 -8 4 -3 31 12 49 42 -9 3 -1 46 9 45 49
Векторы не менялись

a: -15 9 -43 -6 -27 -41 -37 4 -37 -22 -41 -34 -12 -5 -32
b: -1 21 -9 38 5 33 38 45 27 12 25 -7 40 38 9
a: -150 90 -430 -60 -270 -410 -370 40 -370 -220 -410 -340 -120 -50 -320
b: 0 10 -4 19 2 16 19 22 13 6 12 -3 20 19 4
4,5(51 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ