Function toBin(dec: integer): string; var buf: integer; str: string; begin buf := dec; repeat str := concat(IntToStr(buf mod 2), str); buf := buf div 2; until (buf = 0); toBin := str; end;
procedure toBin(dec: integer; var bin: string); var buf: integer; begin buf := dec; repeat bin := concat(IntToStr(buf mod 2), bin); buf := buf div 2; until (buf = 0); end;
var s: string;
begin writeln(toBin(10)); toBin(10, s); writeln(s); end.
Последняя часть вопроса поставлена некорректно. Массив может в общем случае индексироваться, начиная с любого целого числа, например, с нуля или с единицы. В случае индексирования от нуля, четные индексы будут иметь первый, третий, пятый и т.д. по порядку элементы, а при нумерации от единицы - второй, четвертый, шестой и т.д. Будем считать, что индекс массива совпадает с порядковым номером элемента, т.е. индексация в массиве идет от единицы, тогда выводу подлежат второй, четвертый, шестой и т.д. элементы.
1. Современный "короткий" вариант
// PascalABC.NET 3.1, сборка 1190 от 05.03.2016 begin var a:=ArrRandom(17,-50,50); a.Println; a.Where((x,i)->Odd(i)).Println end.
2. Традиционный ("школьный" вариант) - так до сих пор учат в школах
// PascalABC.NET 3.1, сборка 1190 от 05.03.2016 const n=17; var a:array[1..n] of integer; i:integer; begin Randomize; for i:=1 to n do begin a[i]:=Random(101)-50; Write(a[i],' ') end; Writeln; i:=2; while i<=n do begin Write(a[i],' '); i:=i+2 end; Writeln end.
Const n=10; var a:array[1..n+1] of integer; k,i:integer; b:boolean; begin Randomize; for i:=1 to n do begin a[i]:=random(21)-10; write(a[i]:4); end; writeln; write('Введите число: '); readln(k); b:=false; for i:=1 to n do if a[i]=k then b:=true; if not b then begin for i:=n+1 downto n div 2 + 1 do a[i]:=a[i-1]; a[n div 2]:=k; for i:=1 to n+1 do write(a[i]:4); writeln; end else writeln('Массив не изменился'); end.
var
buf: integer;
str: string;
begin
buf := dec;
repeat
str := concat(IntToStr(buf mod 2), str);
buf := buf div 2;
until (buf = 0);
toBin := str;
end;
procedure toBin(dec: integer; var bin: string);
var
buf: integer;
begin
buf := dec;
repeat
bin := concat(IntToStr(buf mod 2), bin);
buf := buf div 2;
until (buf = 0);
end;
var
s: string;
begin
writeln(toBin(10));
toBin(10, s);
writeln(s);
end.