Решение в лоб :D, только желательно запускай прогу отдельно в папке.
Program out;
var fo:text;
begin
assign(fo,'output.txt');
rewrite(fo);
Writeln(fo,'Program AplusB;');
Writeln(fo,'var A,B: Integer;');
Writeln(fo,'begin');
Writeln(fo,' Assign(input,''input.txt'');');
Writeln(fo,' Reset(input);');
Writeln(fo,' Assign(output,''output.txt'');');
Writeln(fo,' Read(A,B);');
Writeln(fo,' ReWrite(output);');
Writeln(fo,' WriteLn(A+B);');
Writeln(fo,' Close(input);');
Writeln(fo,' Close(output);');
Writeln(fo,'end.');
close(fo);
end.
№1
37 = 100101
64 = 1000000
121= 1111001
307= 100110011
511 = 111111111
91 = 1011011
366 = 101101110
404 = 110010100
717 = 1011001101
1228 = 10011001100
№2
101010= 42
100100=36
11111= 31
101110= 46
1100011=99
1001010=74
1100010000=784
101110001=369
1000001=65
1011001=89
569(9)=5103
26705(16)=427280
а второе я хз:D
1024байта - 1024*8=8192 бит
1024 кбайта - 8192000 бит
1024 гбайта - 8192000000000 бит
//Прошу прощения за "пузырёк"
//Pascal ABC.NET 3.1 сборка 1219
Const n=5; //количество вершин
Type
ty=record
x:integer;
y:integer;
end;
Var
ar:array[1..n] of ty;
i,j:integer;
begin
for i:=1 to n do
begin
write('Абсцисса точки №',i,':');readln(ar[i].x);
write('Ордината точки №',i,':');readln(ar[i].y);
end;
for i:=1 to n-1 do
for j:=i+1 to n do
if ar[i].x>ar[j].x then swap(ar[i],ar[j]);
for i:=1 to (n div 2)-1 do
for j:=i+1 to n div 2 do
if ar[i].y<ar[j].y then swap(ar[i],ar[j]);
for i:=n div 2+1 to n-1 do
for j:=i+1 to n do
if ar[i].y>ar[j].y then swap(ar[i],ar[j]);
ar.reverse.Print;
end.
Пример ввода:
Абсцисса точки №1:1
Ордината точки №1:2
Абсцисса точки №2:2
Ордината точки №2:1
Абсцисса точки №3:-3
Ордината точки №3:-3
Абсцисса точки №4:3
Ордината точки №4:3
Абсцисса точки №5:3
Ордината точки №5:1
Пример вывода:
(3,3) (3,1) (2,1) (-3,-3) (1,2)