ВВЕРХ
ВНИЗ
  • Home
  • Array
  • Array 11 - 17

Array 11 - 17

На этой странице дано решение задач Array11 - Array17 на одномерные массивы раздела Array из задачника Абрамяна.

Array11. Дан массив A размера N и целое число k (1 ≤ k ≤ N). Вывести элементы массива с порядковыми номерами, кратными k:

Ak,  A2k,  A3k, … .

Условный оператор не использовать.

Код Pascal
1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  
var
  A: array[1..100] of integer; 
  i, t, k, N: byte;
begin
  write(' N = ');
  readln(N);
  writeln('Введите массив из ', N, ' элементов:'); 
  for i:=1 to N do read(a[i]);
  writeln('Введите число k, не больше ' ,N, ':'); 
  write('k = ');
  readln(k);
  for i:=1 to trunc(N / k) do write(' ',a[i*k]);
  readln
end.

Array12. Дан массив A размера N (N — четное число). Вывести его элементы с четными номерами в порядке возрастания номеров:

A2,  A4,  A6,  …,  AN.

Условный оператор не использовать.

Код Pascal
1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  
15  
16  
17  
18  
19  
20  
21  
 var 
   A: array[1..20] of integer;
   N, i: word;
 begin
   writeln('Введите четное число N: ');
   write(' N = ');
   readln(N);
   writeln(' Введите массив размера ', N, ':');
   {Вводим массив размера N: }
   for i := 1 to N do
    read(a[i]);
   writeln(' Выводим элементы с четными номерами: '); 
   write(' '); 
   i := 0; //Инициализация индекса
   while i < N do //Если номер i меньше N, 
    begin
      inc(i, 2); //то увеличиваем номер i на 2
      write(' ', a[i]) //и выводим элемент массива.
    end;
  readln;
 end.

Array13. Дан массив A размера N (N — нечетное число). Вывести его элементы с нечетными номерами в порядке убывания номеров:

AN,  AN−2,  AN−4,  …,  A1.

Условный оператор не использовать.

Код Pascal
1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  
15  
16  
17  
18  
19  
20  
21  
var 
   A: array[1..20] of integer;
   N, i: word;
 begin
   writeln(' Введите нечетное число N: ');
   write('  N = ');
   readln(N);
   writeln(' Введите массив размера ', N, ':');
   write('  ');
   {Вводим массив размера N: }
   for i := 1 to N do
    read(a[i]);
   writeln(' Выводим элементы с нечетными номерами(в обратном порядке): '); 
   write(' '); 
   i := N + 2; //Инициализация индекса
   while i > 1 do //Если номер i больше 1, 
    begin
      i := i - 2; //то уменьшаем номер i на 2
      write(' ', a[i]) //и выводим элемент массива
    end
 end.

Array14. Дан массив A размера N. Вывести вначале его элементы с четными номерами (в порядке возрастания номеров), а затем — элементы с нечетными номерами (также в порядке возрастания номеров):

A2,  A4,  A6,  …,  A1,  A3,  A5,  … .

Условный оператор не использовать.

Код Pascal
1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  
15  
16  
17  
18  
19  
20  
21  
22  
23  
24  
25  
26  
27  
28  
29  
var 
  A: array[1..20] of integer;
  N, i: word;
begin
  writeln(' Массив какого размера N вы хотите получить? ');
  write('  N = ');
  readln(N);
  writeln(' Введите массив размера ', N, ':');
  write('  ');
  {Вводим массив размера N: }
  for i := 1 to N do
   read(a[i]); 
  writeln(' Результат: ');
  write(' '); 
  {Выводим элементы с четными номерами: } 
  i := 2; //Инициализация индекса
  while i <= N do //Если номер i меньше N, 
   begin
     write(' ', a[i]); //то выводим соответствующий элемент
     i := i + 2 //и увеличиваем номер i на 2
   end; 
  {Выводим элементы с нечетными номерами: }  
  i := 1; //Инициализация индекса
  while i <= N do //Если номер i меньше N, 
   begin
     write(' ', a[i]); //то выводим соответствующий элемент
     i := i + 2 //и увеличиваем номер i на 2.
   end
end.

Array15. Дан массив A размера N. Вывести вначале его элементы с нечетными номерами в порядке возрастания номеров, а затем — элементы с четными номерами в порядке убывания номеров:

A1,  A3,  A5,  …,  A6,  A4,  A2.

Условный оператор не использовать.

Код Pascal
1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  
15  
16  
17  
18  
19  
20  
21  
22  
23  
24  
25  
26  
var 
  A: array[1..20] of integer;
  N, i: word;
begin
  writeln(' Массив какого размера N вы хотите получить? ');
  write('  N = ');
  readln(N);
  writeln(' Введите массив размера ', N, ':');
  write('  ');
  {Вводим массив размера N: }
  for i := 1 to N do
   read(a[i]);
  writeln(' Результат: ');
  write(' '); 
  {Выводим элементы с нечетными номерами: } 
  i := 1; //Инициализация индекса
  while i <= N do //Если номер i меньше N, 
   begin
     write(' ', a[i]); //то выводим соответствующий элемент
     i := i + 2 //и увеличиваем номер i на 2.
   end;
  {Выводим элементы с четными номерами(в обратном порядке): } 
  N := N div 2; //Количество элементов с четными номерами.
  for i := N downto 1 do //Считаем в обратном порядке
   write(' ', a[i * 2]) //и выводим соответствующие элементы.  
end. 

Array16. Дан массив A размера N. Вывести его элементы в следующем порядке:

A1,  AN,  A2,  AN−1,  A3,  AN−2, … .


Код Pascal
1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  
15  
16  
17  
18  
19  
20  
21  
var
  A: array[1..20] of integer;
  N, i, P: word;
begin
  writeln('Массив какого размера N вы хотите получить? ');
  write(' N = ');
  readln(N);
  writeln('Введите массив размера ', N, ':');
  {Вводим массив размера N: }
  for i := 1 to N do
   read(a[i]);
  writeln('Результат: ');
  {Выводим новую последовательность(массив): }
  P := N div 2; //Количество повторов цикла.
  {Далее выводим P раз в паре по два элемента с начала
  и с конца так, чтобы сумма их индексов давала N + 1: }
  for i := 1 to P do
   write(a[i], ' ', a[N + 1 - i], ' '); 
  {Если N нечетно, то добавляем оставшийся элемент: }  
  if odd(N) then write(a[P + 1])
end.

Array17. Дан массив A размера N. Вывести его элементы в следующем порядке:

A1,  A2,  AN,  AN−1,  A3,  A4,  AN−2,  AN−3, … .


Код Pascal
1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  
15  
16  
17  
18  
19  
20  
21  
22  
23  
24  
25  
var
  A: array[1..20] of integer;
  N, i, P: word;
begin
  writeln('Массив какого размера N вы хотите получить? ');
  write(' N = ');
  readln(N);
  writeln('Введите массив размера ', N, ':');
  {Вводим массив размера N: }
  for i := 1 to N do
   read(a[i]);
  writeln(' Результат: ');
  {Выводим новую последовательность(массив): }
  P := N div 4; //Количество повторов цикла.
  {Далее выводим P раз в паре по два элемента с начала
  и с конца так, чтобы сумма их индексов давала N + 1: }
  for i := 1 to P do
   write(a[2*i-1], ' ', a[2*i], ' ', a[N+2-2*i], ' ', a[N+1-2*i], ' '); 
  {Если остаток не меньше 1, то добавляем оставшийся 1 элемент: }
  if N mod 4 > 0 then write(a[2*P + 1], ' ');
  {Если остаток не меньше 2, то добавляем еще один элемент: }
  if N mod 4 > 1 then write(a[2*P + 2], ' ');
  {Если остаток 3, то добавляем оставшийся третий элемент: }
  if N mod 4 > 2 then write(a[N-2*P])
end. 


Яндекс.Метрика