<u>PascalABC.NET 3.3.5, сборка 1669 от 21.05.2018</u>
<u>Внимание! Если программа не работает, обновите версию!</u>
begin
var n:=ReadInteger('n=');
var s:=0.0;
for var i:=1 to n do s+=1/i;
Writeln('S=',s)
end.
<u>Пример</u>
n= 10
S=2.92896825396825
1. 1*2=2 (1 команда)
2. 1+3=4 (2 команда)→дальше так же раскладываем 4 ( 4*2=8 (1ком.) и 4+3=7 (2 ком.)) и так далее. Получается 211121
Program Amstrong;
var
a,b: integer;
i,j,k,
ci,
si,mi,
errkod: integer;
sti: string;
flag: Boolean;
begin
Readln(a,b);
flag:=false;
for i:=a to b do
begin
str(i, sti);
si:=0;
for j:=1 to Length(sti) do
begin
val(sti[j],mi,errkod);
ci:=1;
for k:=1 to Length(sti) do
ci:=ci*mi;
si:=si+ci;
end;
if si=i then
begin
write(si,' ');
flag:=true
end;
end;
if not flag then write(-1);
Readln;
end.
3 Кбайта = 3 * 2^10 байта = 3 * 2^10 * 2^3 бита
k = 2^12
I = k*i, где I - <span>информационный о</span><span>бъемом, k - кол-во символов, i -отводимое количество бит на символ
i = I/k = 3*2^13/2^12 = 3*2 = 6;
Мощность алфавита N = 2^i, N = 2^6 = 64
Ответ: 64 символа
</span>
//Прошу прощения за "пузырёк"
//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)