Root /ArchiveAbout
()

Array 11 - 17

Array 11 - 17

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

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

Ak, A2k, A3k, … .

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

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.

**type** integer;: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647 **type** byte;: Представляет 8-битовое целое число без знака.Диапазон значений: 0..255 **function** Trunc(x: real): integer;: Возвращает целую часть числа x. Array12. Дан массив A размера N (N — четное число). Вывести его элементы с четными номерами в порядке возрастания номеров:

A2, A4, A6,  …,  AN.

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

 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.

**type** integer;: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647 **type** word;: Представляет 16-битовое целое число без знака.Диапазон значений: 0 .. 65 535 **procedure** Inc(**var** i: integer);: Увеличивает значение переменной i на 1 Array13. Дан массив A размера N (N — нечетное число). Вывести его элементы с нечетными номерами в порядке убывания номеров:

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

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

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.

**type** integer;: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647 **type** word;: Представляет 16-битовое целое число без знака.Диапазон значений: 0 .. 65 535 Array14. Дан массив A размера N. Вывести вначале его элементы с четными номерами (в порядке возрастания номеров), а затем — элементы с нечетными номерами (также в порядке возрастания номеров):

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

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

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.

**type** integer;: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647 **type** word;: Представляет 16-битовое целое число без знака.Диапазон значений: 0 .. 65 535 Array15. Дан массив A размера N. Вывести вначале его элементы с нечетными номерами в порядке возрастания номеров, а затем — элементы с четными номерами в порядке убывания номеров:

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

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

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. 

**type** integer;: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647 **type** word;: Представляет 16-битовое целое число без знака.Диапазон значений: 0 .. 65 535 A **div** B - целочисленное деление А на В Array16. Дан массив A размера N. Вывести его элементы в следующем порядке:

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

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.

**type** integer;: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647 **type** word;: Представляет 16-битовое целое число без знака.Диапазон значений: 0 .. 65 535 A **div** B - целочисленное деление А на В **function** Odd(i: integer): boolean;: Возвращает True, если i нечетно Array17. Дан массив A размера N. Вывести его элементы в следующем порядке:

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

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. 

**type** integer;: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647 **type** word;: Представляет 16-битовое целое число без знака.Диапазон значений: 0 .. 65 535 A **div** B - целочисленное деление А на В A **mod** B - остаток при целочисленном делении А на В A **mod** B - остаток при целочисленном делении А на В A **mod** B - остаток при целочисленном делении А на В