Перевести из паскаля в питон program Project1;
type
//Тип, задающий основания систем счисления.
TBase = 2..20;
//Переводит запись числа в системе счисления по основанию aBase - в число.
function XToNum(const aStr : String; aBase : TBase) : Longint;
var
StrBin : String;
i, Sign : Integer;
Res, Weight : Longint;
begin
XToNum := 0;
if aStr = '' then Exit;
Res := 0;
//Определяем знак и получаем запись числа без знака.
if aStr[1] = '-' then begin
Sign := -1;
StrBin := Copy(aStr, 2, Length(aStr) - 1);
end else begin
Sign := 1;
StrBin := aStr;
end;
Weight := 1;
//Движемся по разрядам беззнакового числа справа-налево.
for i := Length(StrBin) downto 1 do begin
case StrBin[i] of
'0' : Res := Res + 0 * Weight;
'1' : Res := Res + 1 * Weight;
'2' : Res := Res + 2 * Weight;
'3' : Res := Res + 3 * Weight;
'4' : Res := Res + 4 * Weight;
'5' : Res := Res + 5 * Weight;
'6' : Res := Res + 6 * Weight;
'7' : Res := Res + 7 * Weight;
'8' : Res := Res + 8 * Weight;
'9' : Res := Res + 9 * Weight;
'A', 'a' : Res := Res + 10 * Weight;
'B', 'b' : Res := Res + 11 * Weight;
'C', 'c' : Res := Res + 12 * Weight;
'D', 'd' : Res := Res + 13 * Weight;
'E', 'e' : Res := Res + 14 * Weight;
'F', 'f' : Res := Res + 15 * Weight;
'G', 'g' : Res := Res + 16 * Weight;
'H', 'h' : Res := Res + 17 * Weight;
'I', 'i' : Res := Res + 18 * Weight;
'J', 'j' : Res := Res + 19 * Weight;
else
raise Exception.Create('Ошибка! Незарегистрированная цифра!');
end;
//Вес следующего разряда.
Weight := Weight * aBase;
end;
//Учитываем знак.
XToNum := Sign * Res;
end;
//Переводит число в систему счисления по основанию aBase.
function NumToX(const aNum : Longint; const aBase : TBase) : String;
var
Num : Longint;
Dig : Byte;
Res : String;
begin
Res := '';
Num := Abs(aNum);
repeat
//Определяем очередной младший разряд числа.
Dig := Num mod aBase;
case Dig of
0 : Res := '0' + Res;
1 : Res := '1' + Res;
2 : Res := '2' + Res;
3 : Res := '3' + Res;
4 : Res := '4' + Res;
5 : Res := '5' + Res;
6 : Res := '6' + Res;
7 : Res := '7' + Res;
8 : Res := '8' + Res;
9 : Res := '9' + Res;
10 : Res := 'A' + Res;
11 : Res := 'B' + Res;
12 : Res := 'C' + Res;
13 : Res := 'D' + Res;
14 : Res := 'E' + Res;
15 : Res := 'F' + Res;
16 : Res := 'G' + Res;
17 : Res := 'H' + Res;
18 : Res := 'I' + Res;
19 : Res := 'J' + Res;
end;
//Удаляем из числа очередной младший разряд.
Num := Num div aBase;
until Num = 0;
//Учитываем знак.
if aNum < 0 then Res := '-' + Res;
NumToX := Res;
end;
//Переводит число, представленное в системе счисления по основанию aBase1,
//в систему счисления по основанию aBase2.
function XToY(const aStr : String; const aBase1, aBase2 : TBase) : String;
begin
XToY := NumToX( XToNum(aStr, aBase1), aBase2 );
end;
var
S : String;
begin
repeat
Writeln('Задайте целое число в шестнадцатиричной системе счисления:');
Readln(S);
S := XToY(S, 16, 20);
Writeln('Это же число, представленное в двадцатиричной системе счисления:');
Writeln(S);
Writeln('Повторить - Enter, выход - любой символ + Enter.');
Readln(S);
until S <> '';
end.
199
307
Ответы на вопрос:
#!/usr/bin/python
print "program Project1;
type
//Тип, задающий основания систем счисления.
TBase = 2..20;
//Переводит запись числа в системе счисления по основанию aBase - в число.
function XToNum(const aStr : String; aBase : TBase) : Longint;
var
StrBin : String;
i, Sign : Integer;
Res, Weight : Longint;
begin
XToNum := 0;
if aStr = '' then Exit;
Res := 0;
//Определяем знак и получаем запись числа без знака.
if aStr[1] = '-' then begin
Sign := -1;
StrBin := Copy(aStr, 2, Length(aStr) - 1);
end else begin
Sign := 1;
StrBin := aStr;
end;
Weight := 1;
//Движемся по разрядам беззнакового числа справа-налево.
for i := Length(StrBin) downto 1 do begin
case StrBin[i] of
'0' : Res := Res + 0 * Weight;
'1' : Res := Res + 1 * Weight;
'2' : Res := Res + 2 * Weight;
'3' : Res := Res + 3 * Weight;
'4' : Res := Res + 4 * Weight;
'5' : Res := Res + 5 * Weight;
'6' : Res := Res + 6 * Weight;
'7' : Res := Res + 7 * Weight;
'8' : Res := Res + 8 * Weight;
'9' : Res := Res + 9 * Weight;
'A', 'a' : Res := Res + 10 * Weight;
'B', 'b' : Res := Res + 11 * Weight;
'C', 'c' : Res := Res + 12 * Weight;
'D', 'd' : Res := Res + 13 * Weight;
'E', 'e' : Res := Res + 14 * Weight;
'F', 'f' : Res := Res + 15 * Weight;
'G', 'g' : Res := Res + 16 * Weight;
'H', 'h' : Res := Res + 17 * Weight;
'I', 'i' : Res := Res + 18 * Weight;
'J', 'j' : Res := Res + 19 * Weight;
else
raise Exception.Create('Ошибка! Незарегистрированная цифра!');
end;
//Вес следующего разряда.
Weight := Weight * aBase;
end;
//Учитываем знак.
XToNum := Sign * Res;
end;
//Переводит число в систему счисления по основанию aBase.
function NumToX(const aNum : Longint; const aBase : TBase) : String;
var
Num : Longint;
Dig : Byte;
Res : String;
begin
Res := '';
Num := Abs(aNum);
repeat
//Определяем очередной младший разряд числа.
Dig := Num mod aBase;
case Dig of
0 : Res := '0' + Res;
1 : Res := '1' + Res;
2 : Res := '2' + Res;
3 : Res := '3' + Res;
4 : Res := '4' + Res;
5 : Res := '5' + Res;
6 : Res := '6' + Res;
7 : Res := '7' + Res;
8 : Res := '8' + Res;
9 : Res := '9' + Res;
10 : Res := 'A' + Res;
11 : Res := 'B' + Res;
12 : Res := 'C' + Res;
13 : Res := 'D' + Res;
14 : Res := 'E' + Res;
15 : Res := 'F' + Res;
16 : Res := 'G' + Res;
17 : Res := 'H' + Res;
18 : Res := 'I' + Res;
19 : Res := 'J' + Res;
end;
//Удаляем из числа очередной младший разряд.
Num := Num div aBase;
until Num = 0;
//Учитываем знак.
if aNum < 0 then Res := '-' + Res;
NumToX := Res;
end;
//Переводит число, представленное в системе счисления по основанию aBase1,
//в систему счисления по основанию aBase2.
function XToY(const aStr : String; const aBase1, aBase2 : TBase) : String;
begin
XToY := NumToX( XToNum(aStr, aBase1), aBase2 );
end;
var
S : String;
begin
repeat
Writeln('Задайте целое число в шестнадцатиричной системе счисления:');
Readln(S);
S := XToY(S, 16, 20);
Writeln('Это же число, представленное в двадцатиричной системе счисления:');
Writeln(S);
Writeln('Повторить - Enter, выход - любой символ + Enter.');
Readln(S);
until S <> '';
end.\n";
print "program Project1;
type
//Тип, задающий основания систем счисления.
TBase = 2..20;
//Переводит запись числа в системе счисления по основанию aBase - в число.
function XToNum(const aStr : String; aBase : TBase) : Longint;
var
StrBin : String;
i, Sign : Integer;
Res, Weight : Longint;
begin
XToNum := 0;
if aStr = '' then Exit;
Res := 0;
//Определяем знак и получаем запись числа без знака.
if aStr[1] = '-' then begin
Sign := -1;
StrBin := Copy(aStr, 2, Length(aStr) - 1);
end else begin
Sign := 1;
StrBin := aStr;
end;
Weight := 1;
//Движемся по разрядам беззнакового числа справа-налево.
for i := Length(StrBin) downto 1 do begin
case StrBin[i] of
'0' : Res := Res + 0 * Weight;
'1' : Res := Res + 1 * Weight;
'2' : Res := Res + 2 * Weight;
'3' : Res := Res + 3 * Weight;
'4' : Res := Res + 4 * Weight;
'5' : Res := Res + 5 * Weight;
'6' : Res := Res + 6 * Weight;
'7' : Res := Res + 7 * Weight;
'8' : Res := Res + 8 * Weight;
'9' : Res := Res + 9 * Weight;
'A', 'a' : Res := Res + 10 * Weight;
'B', 'b' : Res := Res + 11 * Weight;
'C', 'c' : Res := Res + 12 * Weight;
'D', 'd' : Res := Res + 13 * Weight;
'E', 'e' : Res := Res + 14 * Weight;
'F', 'f' : Res := Res + 15 * Weight;
'G', 'g' : Res := Res + 16 * Weight;
'H', 'h' : Res := Res + 17 * Weight;
'I', 'i' : Res := Res + 18 * Weight;
'J', 'j' : Res := Res + 19 * Weight;
else
raise Exception.Create('Ошибка! Незарегистрированная цифра!');
end;
//Вес следующего разряда.
Weight := Weight * aBase;
end;
//Учитываем знак.
XToNum := Sign * Res;
end;
//Переводит число в систему счисления по основанию aBase.
function NumToX(const aNum : Longint; const aBase : TBase) : String;
var
Num : Longint;
Dig : Byte;
Res : String;
begin
Res := '';
Num := Abs(aNum);
repeat
//Определяем очередной младший разряд числа.
Dig := Num mod aBase;
case Dig of
0 : Res := '0' + Res;
1 : Res := '1' + Res;
2 : Res := '2' + Res;
3 : Res := '3' + Res;
4 : Res := '4' + Res;
5 : Res := '5' + Res;
6 : Res := '6' + Res;
7 : Res := '7' + Res;
8 : Res := '8' + Res;
9 : Res := '9' + Res;
10 : Res := 'A' + Res;
11 : Res := 'B' + Res;
12 : Res := 'C' + Res;
13 : Res := 'D' + Res;
14 : Res := 'E' + Res;
15 : Res := 'F' + Res;
16 : Res := 'G' + Res;
17 : Res := 'H' + Res;
18 : Res := 'I' + Res;
19 : Res := 'J' + Res;
end;
//Удаляем из числа очередной младший разряд.
Num := Num div aBase;
until Num = 0;
//Учитываем знак.
if aNum < 0 then Res := '-' + Res;
NumToX := Res;
end;
//Переводит число, представленное в системе счисления по основанию aBase1,
//в систему счисления по основанию aBase2.
function XToY(const aStr : String; const aBase1, aBase2 : TBase) : String;
begin
XToY := NumToX( XToNum(aStr, aBase1), aBase2 );
end;
var
S : String;
begin
repeat
Writeln('Задайте целое число в шестнадцатиричной системе счисления:');
Readln(S);
S := XToY(S, 16, 20);
Writeln('Это же число, представленное в двадцатиричной системе счисления:');
Writeln(S);
Writeln('Повторить - Enter, выход - любой символ + Enter.');
Readln(S);
until S <> '';
end.\n";
a : = x * x; //x**2
b : = a * a; //x**4
c : = b * b; //x**8
d : = b * c; //x**12
e : = c * c; //x**16
f : = e * d; //x**28
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
sgerbst24.05.2020 06:44
-
ostankova8229.03.2020 17:23
-
HsbHbaj25.02.2022 16:28
-
игоревич15975323.04.2022 18:43
-
илья194828.04.2023 08:53
-
annapalko04406.09.2020 08:03
-
Ytkin456030.11.2021 15:42
-
lubenkovalilia204.03.2020 20:55
-
krll33311.02.2020 09:11
-
maksimananchenko22.03.2023 19:37
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.