Написать программу на языке паскаль. преобразовать массив таким образом, чтобы в первой его половине располагались элементы, стоявшие в четных позициях, а во второй половине - элементы, стоящие на нечетных позициях.
Const n=20; var a: array[1..n] of integer; tmp,i,j,m: integer; begin { заполнение массива и вывод на экран } for i:=1 to n do begin a[i]:=Random(100); write(a[i],' '); end; { преобразование массива} m:= n div 2; for i:=1 to m do begin tmp:=a[i]; a[i]:=a[2*i]; for j:=2*i-1 downto i+1 do a[j+1]:=a[j]; a[i+1]:=tmp; end; writeln; writeln('преобразованный массив'); { вывод массива на экран } for i:=1 to n do write(a[i],' '); end.
1. Очевидно в формулировке задания пропущена еше одна буква - Е Решение: Проще всего перевести последовательность букв в шестиричную систему счисления. Тогда получим: А ->0, Г -> 1, Д -> 2, E -> 3, П -> 4, Р ->5 Упорядоченную последовательность слов можно записать так: 1. ААА - 000 2. ААГ - 001 3. ААД - 002
N. ГАА - 100 -наше первое слово начинающееся на Г Переведем число 100 из шестиричной системы счисления в десятичную и получим: 1 *6^2+0*6^1+0*6^0=36 Так как список слов начинается с 1, то надо 36 увеличить на единицу. ответ: 37
В двоичном числе каждый разряд справа налево представляет собой степень двойки. Первый разряд имеет 0 степень. Далее для остальных разрядов степень увеличивается, а для дробной части уменьшается. Для перевода в десятичную систему счисления нужно перевести все единицы в числе в соответствующие им степени двойки и сложить. Возьмём число 111011,001: Распишем по разрядам: 1 (-3 разряд) = 2^-3 = 1/8 0 (-2 разряд) 0 (-1 разряд) , 1 (1 разряд) = 2^0 = 1 1 (2 разряд) = 2^1 = 2 0 (3 разряд) 1 (4 разряд) = 2^3 = 8 1 (5 разряд) = 2^4 = 16 1 (6 разряд) = 2^5 = 32 Теперь нужно сложить полученные числа: 1/8 + 1 + 2 + 8 + 16 + 32 = 59.125 ответ: 111011,001(10) = 59.125(10)
var a: array[1..n] of integer;
tmp,i,j,m: integer;
begin
{ заполнение массива и вывод на экран }
for i:=1 to n do
begin
a[i]:=Random(100);
write(a[i],' ');
end;
{ преобразование массива}
m:= n div 2;
for i:=1 to m do
begin
tmp:=a[i];
a[i]:=a[2*i];
for j:=2*i-1 downto i+1 do a[j+1]:=a[j];
a[i+1]:=tmp;
end;
writeln;
writeln('преобразованный массив');
{ вывод массива на экран }
for i:=1 to n do write(a[i],' ');
end.