Решение задач. Array7-17


array7-17

Приветствуем читателей нашего сайта! Сегодня мы с вами решим задачи Array7-17.

Array7-17. (Одномерные массивы: вывод элементов)

Array7°. Дан массив размера N. Вывести его элементы в обратном порядке.

Не забываем про то, что циклом for можно пробегать числа не только от меньших к большим, но от больших к меньшим.

program array7;

var
  arr: array[1..10] of integer;
  N, i: integer;

begin
  write('Введите N: ');
  readln(N);
  write('Введите элементы массива: ');
  for i := 1 to N do
    read(arr[i]); 
  write('Элементы в обратном порядке: ');
  for i := N downto 1 do write(arr[i], ' ')
end.

Array8. Дан целочисленный массив размера N. Вывести все содержащиеся в данном массиве нечетные числа в порядке возрастания их индексов, а также их количество K.

program array8;

var
  arr: array[1..10] of integer;
  N, i, k: integer;

begin
  k := 0; {счётчик}
  write('Введите N: ');
  readln(N);
  write('Введите элементы массива: ');
  for i := 1 to N do
    read(arr[i]); 
  write('Нечетные элементы массива: ');
  for i := 1 to N do
    if arr[i] mod 2 <> 0 then 
    begin
      write(arr[i], ' ');
      inc(k);
    end;
   writeln;
   write('Количество нечетных элементов массива: ', k);
end.

Array9. Дан целочисленный массив размера N. Вывести все содержащиеся в данном массиве четные числа в порядке убывания их индексов, а также их количество K.

program array9;

var
  arr: array[1..10] of integer;
  N, i, k: integer;

begin
  k := 0; {счётчик}
  write('Введите N: ');
  readln(N);
  write('Введите элементы массива: ');
  for i := 1 to N do
    read(arr[i]); 
  write('Четные элементы массива: ');
  for i := N downto 1 do
    if arr[i] mod 2 = 0 then 
    begin
      write(arr[i], ' ');
      inc(k);
    end;
   writeln;
   write('Количество четных элементов массива: ', k);
end.

Array10. Дан целочисленный массив размера N. Вывести вначале все содержащиеся в данном массиве четные числа в порядке возрастания их индексов, а затем — все нечетные числа в порядке убывания их индексов.

program array10;

var
  arr: array[1..10] of integer;
  N, i: integer;

begin
  write('Введите N: ');
  readln(N);
  write('Введите элементы массива: ');
  for i := 1 to N do
    read(arr[i]); 
  write('Четные элементы массива: ');
  for i := 1 to N do
    if arr[i] mod 2 = 0 then 
      write(arr[i], ' ');
  writeln;
  write('Нечетные элементы массива: ');
  for i := N downto 1 do
    if arr[i] mod 2 <> 0 then 
      write(arr[i], ' ');
end.

Array11. Дан массив A размера N и целое число K (1 ≤ K ≤ N). Вывести элементы массива с порядковыми номерами, кратными K: AK, A2·K, A3·K, …. Условный оператор не использовать.

program array11;

var
  arr: array[1..10] of integer;
  N, K, i: integer;

begin
  write('Введите N: ');
  readln(N);
  write('Введите элементы массива: ');
  for i := 1 to N do
    read(arr[i]); 
  write('Введите K: ');
  readln(K);
  i := 1;
  write('Выбранные элементы массива: ');
  repeat 
    write(arr[K * i],' ');
    inc(i)
  until K * i > N;
end.

Array12. Дан массив A размера N (N — четное число). Вывести его элементы с четными номерами в порядке возрастания номеров: A2, A4, A6, …, AN. Условный оператор не использовать.

program array12;

var
  arr: array[1..10] of integer;
  N, i: integer;

begin
  write('Введите N(чётное): ');
  readln(N);
  write('Введите элементы массива: ');
  for i := 1 to N do
    read(arr[i]); 
  write('Выбранные элементы массива: ');
  i := 2;
  repeat 
    write(arr[i],' ');
    inc(i, 2)
  until i > N;
end.

Array13. Дан массив A размера N (N — нечетное число). Вывести его элементы с нечетными номерами в порядке убывания номеров: AN, AN−2, AN−4, …, A1. Условный оператор не использовать.

program array13;

var
  arr: array[1..10] of integer;
  N, i: integer;

begin
  write('Введите N(нечётное): ');
  readln(N);
  write('Введите элементы массива: ');
  for i := 1 to N do
    read(arr[i]); 
  write('Выбранные элементы массива: ');
  repeat 
    write(arr[N],' ');
    N := N - 2;
  until N < 1;
end.

Array14. Дан массив A размера N. Вывести вначале его элементы с четными номерами (в порядке возрастания номеров), а затем — элементы с нечетными номерами (также в порядке возрастания номеров):
A2, A4, A6, …, A1, A3, A5, ….
Условный оператор не использовать.

program array14;

var
  arr: array[1..10] of integer;
  N, i: integer;

begin
  write('Введите N: ');
  readln(N);
  write('Введите элементы массива: ');
  for i := 1 to N do
    read(arr[i]); 
  write('Элементы массива: ');
  i := 2;
  repeat 
    write(arr[i],' ');
    i := i + 2;
  until N < i;
  i := 1;
  repeat 
    write(arr[i],' ');
    i := i + 2;
  until N < i;
  end.

Array15. Дан массив A размера N. Вывести вначале его элементы с нечетными номерами в порядке возрастания номеров, а затем — элементы с четными номерами в порядке убывания номеров:
A1, A3, A5, …, A6, A4, A2.
Условный оператор не использовать.

program array15;

var
  arr: array[1..10] of integer;
  N, i: integer;

begin
  write('Введите N: ');
  readln(N);
  write('Введите элементы массива: ');
  for i := 1 to N do
    read(arr[i]); 
  write('Элементы массива: ');
  i := 1;
  repeat 
    write(arr[i],' ');
    i := i + 2;
  until N < i;
  N := N div 2; {Количество чётных элементов}
  repeat 
    write(arr[N * 2],' ');
    N := N - 1;
  until N = 0;   
  end.

Array16°.  Дан массив A размера N. Вывести его элементы в следующем порядке:
A1, AN, A2, AN−1, A3, AN−2, ….

program array16;

var
  arr: array[1..10] of integer;
  N, i: integer;

begin
  write('Введите N: ');
  readln(N); {Например, 5}
  write('Введите элементы массива: ');
  for i := 1 to N do
    read(arr[i]); {например, 1 2 3 4 5}
  write('Элементы массива: ');
  for i := 1 to N div 2 do {5 div 2 = 2}
  begin
    write(arr[i],' ');
    write(arr[N - i + 1],' ')
  end;
  {программа выведет в 1 цикл - 1 5, а во 2 цикл - 2 4}
  {Если N - нечётное, то необходимо вывести оставшийся 
  элемент (3 в данном случае),
  который расположен сразу за средним элементом}
  if N mod 2 = 1 then write(arr[N div 2 + 1]);
  end.

Array17.  Дан массив A размера N. Вывести его элементы в следующем порядке:
A1, A2, AN, AN−1, A3, A4, AN−2, AN−3, ….

program array17;

var
arr: array[1..10] of integer;
N, i: integer;

begin
  write('Введите N: ');
  readln(N);
  write('Введите элементы массива: ');
  for i := 1 to N do
    read(arr[i]);
  write('Элементы массива: ');
  for i := 1 to N div 4 do
  {N div 4 показывает нам, сколько четверок
  содержится в данном массиве}
    write(arr[2*i - 1],' ', arr[2*i],' ', arr[N + 2 - 2 * i],' ', arr[N + 1 - 2 * i],' ');
  {Рассматриваем три оставшихся случая:}
  if N mod 4 > 0 then write(arr[2 * (N div 4) + 1],' ');
  if N mod 4 > 1 then write(arr[2 * (N div 4) + 2],' ');
  if N mod 4 > 2 then write(arr[N - 2 * (N div 4)])
 end.

На сегодня всё! Если у вас возникли вопросы, задавайте их в комментариях. И не забывайте рассказывать о нашем сайте своим друзьям!

  1. program_array_17;
    uses crt;
    const N=10;
    var i,l:integer;
    A:array [1..N]of integer;
    begin
    crtwindowsize(100,70);
    for i:=1 to N do begin
    A[i]:=random(20);
    write(‘ A[‘,i,’]=’,A[i]);
    end;
    writeln;

    for i:=1 to (N div 2)-2 do begin
    textcolor(red);
    write(‘ A[‘,i+(i-1),’]=’,A[i]);
    write(‘ A[‘,(i+1)+(i-1),’]=’,A[i]);

    write(‘ A[‘,N-i+1-(i-1),’]=’,A[N-i+1-(i-1)]);
    write(‘ A[‘,N-i-(i-1),’]=’,A[N-i-(i-1)]);
    end;

    end.
    Моё решение,буду признателен за конструктивную критику,недочёты и ошибки..

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *