Написать алгоритм перевода чисел из 10тичной системы счисления в любую другую (от 2ичной до 36ричной) и обратно вся прогамма не нужна, только две функции желательно на с#, но можно и на других языках хотелось бы увидеть красивый и логичный код с красиво назваными переменными и без костылей могу и сама но некогда этим заниматься
Ответы на вопрос:
vara,b,c,i,n,p,s: integer; x: real; p1,g: string; beginwriteln('vvedite chislo'); readln(a); writeln('is kakoi perevodim? '); readln(b); if b=10 then beginwriteln('v kakoi perevodim? '); readln(c); end; n: =0; p: =0;
if b< > 10 then begin 'is 10 v lubuyu sistemurepeatx: =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 10g: =inttostr(a mod c); p1: =p1 + g; a: =a div c; until a< c; p1: =p1+inttostr(a); end;
if p=0 then begin 'vivodfor i: =1 to length(p1) dowrite(p1[length(p1)-i+1]); endelsewrite(p); end.
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); }
у нас тоже это было!
вот смотри:
первое а-а, шея-яеш, мама-амам,-это называется слова наобарот
а-1, весна-3, дом-5, река18-а это получение числа 18
Популярно: Информатика
-
Iist11.06.2021 19:36
-
aosch2k208.08.2021 09:23
-
Tima41107.02.2020 14:46
-
Superymniaha15.11.2022 02:47
-
11111119919.04.2021 04:02
-
vashchilkophoto11.04.2022 03:23
-
foma2004korol18.12.2021 17:41
-
olya1201111.09.2020 15:35
-
turovyuriy30.09.2021 21:40
-
magmet103p02l6703.12.2022 08:57