Во всех программах у меня будет использоваться процедура swap:
procedure swap(a: ^real; b: ^real);
var
t: real;
begin
t := a^;
a^ := b^;
b^ := t;
end;
swap(x,y) - меняет местами значения x и y.
1.
var
A: array[1..100] of real;
i, j, N: integer;
begin
readln(N);
for i := 1 to N do
read(A[i]);
for j := 1 to (N div 2) - 1 do
for i := 1 to (N div 2) - j do
swap(A[i], A[i + 1]);
for j := 1 to (N div 2) - 1 do
for i := (N div 2) + 1 to N - j do
swap(A[i], A[i + 1]);
for i := 1 to N do
writeln(A[i])
end.
2.
var
A: array[1..100] of real;
i, N: integer;
begin
readln(N);
for i := 1 to N do
read(A[i]);
for i := 1 to N - 1 do
swap(A[i], A[i + 1]);
for i := 1 to N do
writeln(A[i])
end.
3.
var
A: array[1..100] of real;
i, N: integer;
begin
readln(N);
for i := 1 to N do
read(A[i]);
for i := N downto 2 do
swap(A[i], A[i - 1]);
for i := 1 to N do
writeln(A[i])
end.
Вы куда набирать собираетесь в какую-то третью емкость, да???
тогда так:Набираете сначала трехлитровым кувшином 3 литра и выливаете их в восьмилитровый кувшин, потом еще раз набираете и выливавете (у вас в 8-литровом уже 6 литров) и последний раз зачерпываете трехлитровым и выливаете ( соответственно в трехлитровом останется ровно литр). Сливаете полученный литр в наборочную емкость и еще 2 раза по три литра.
1+3+3=7
Решение во вложении
..............................
Найти N (M задано) На 38 ходу получаем данную сумму
Переводишь числа из двоичной в десятичную.
101011100=2^8*1 + 2^7*0 + 2^6*1 + 2^5*0 + 2^4*1 + 2^3*1 + 2^2*1 + 2^1*0 + 2^0*0 = 256 + 0 + 64 + 0 + 16 + 8 + 4 + 0 + 0 = 348, 101110=2^5*1 + 2^4*0 + 2^3*1 + 2^2*1 + 2^1*1 + 2^0*0= 32 + 0 + 8 + 4 + 2 + 0 =46,
Складываешь 348+46= 394 и переводишь обратно в двоичную систему счисления. 394 = 110001010<span />