function Pow(x,y:integer):integer; begin if y>0 then Pow:=Pow(x,y-1)*x else Pow:=1; end;
function ToDec(A : string) : integer; var L : Byte; begin if A = '' then ToDec := 0 else begin L := length(A); case A[1] of '0' : ToDec := ToDec(Copy(A, 2, L - 1)); '1' : ToDec := Pow(2, L - 1) + ToDec(Copy(A, 2, L - 1)); end; end; end;
begin clrscr; write('Введите двоичное число: '); readln(s); writeln('Это число в десятичной системе : ', ToDec(S)); readkey; end.
//Создадим переменную A типа List<integer>, задав в конструкторе ёмкость в 20 элементов;
var A : List<integer> := New List<integer>(20);
A.AddRange(SeqGen(A.Capacity, p -> Random(-10, 10))); //Запишем в наш List последовательность, длина которой равна List<T>.Capacity, и каждый элемент в которой генерируется случайно в диапазоне [-10; 10]
A.Println; //Распечатаем в консоль содержимое A
end.
Объяснение:
Заместо стандартного паскалевского массива использован класс List<T> библиотеки .NET Framework, являющийся аналогом обычного массива, но имеющий большее число методов для работы с ним.
А вообще, программа может быть написана в 1 строку:
Program ToDec;
Uses crt;
var s:string;
n,l,i:integer;
function Pow(x,y:integer):integer;
begin
if y>0 then Pow:=Pow(x,y-1)*x
else Pow:=1;
end;
function ToDec(A : string) : integer;
var L : Byte;
begin
if A = '' then ToDec := 0
else begin
L := length(A);
case A[1] of
'0' : ToDec := ToDec(Copy(A, 2, L - 1));
'1' : ToDec := Pow(2, L - 1) + ToDec(Copy(A, 2, L - 1));
end;
end;
end;
begin
clrscr;
write('Введите двоичное число: ');
readln(s);
writeln('Это число в десятичной системе : ', ToDec(S));
readkey;
end.
---PascalABC.NET 3.6.2 ---
begin
//Создадим переменную A типа List<integer>, задав в конструкторе ёмкость в 20 элементов;
var A : List<integer> := New List<integer>(20);
A.AddRange(SeqGen(A.Capacity, p -> Random(-10, 10))); //Запишем в наш List последовательность, длина которой равна List<T>.Capacity, и каждый элемент в которой генерируется случайно в диапазоне [-10; 10]
A.Println; //Распечатаем в консоль содержимое A
end.
Объяснение:
Заместо стандартного паскалевского массива использован класс List<T> библиотеки .NET Framework, являющийся аналогом обычного массива, но имеющий большее число методов для работы с ним.
А вообще, программа может быть написана в 1 строку:
begin
ArrRandom(20, -10, 10).Println;
end.