Root /ArchiveAbout
()

Массив: обратный порядок, четные, нечетные числа, их количество

Массив: обратный порядок, четные, нечетные числа, их количество

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

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

var
  A: array[1..20] of integer;
  i, N: byte;

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

**type** integer;: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647 **type** byte;: Представляет 8-битовое целое число без знака.Диапазон значений: 0..255 Array8. Дан целочисленный массив размера N. Вывести все содержащиеся в данном массиве нечетные числа в порядке возрастания их индексов, а также их количество K.

var
  A: array[1..20] of integer; 
  N, i, K: integer;

begin
  K := 0;
  write('N = '); 
  readln(N);
  writeln('Введите ', N, ' элементов массива: ');
  for i := 1 to N do
    read(a[i]); { <-- Задаем массив размера N }
  writeln;
  for i := 1 to N do
    if odd(a[i]) then { <-- Если элемент массива нечётный, }
    begin 
      K := K + 1;  { <== то увеличиваем количество на единицу }
      write(a[i],' ') { <-- и выводим на экран этот элемент }
    end;
  { В конце выводим общее количество нечётных элементов: }
  writeln('Количество нечетных чисел K = ', K);
  readln
end.

**type** integer;: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647 **type** integer;: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647 **function** Odd(i: integer): boolean;: Возвращает True, если i нечетно Array9. Дан целочисленный массив размера N. Вывести все содержащиеся в данном массиве четные числа в порядке убывания их индексов, а также их количество K.

var
  i, k, N: integer;               
  A, B: array[1..100] of integer;

begin
  write('N = ');
  readln(N);
  K := 0; { <-- количество четных чисел }
  writeln('Введите массив из ', N, ' чисел: ');
  for i := 1 to N do begin
    read(a[i]); { <-- Вводим i-й элемент массива }
    if a[i] mod 2 = 0 then { <-- элемент a[i] четный }  
    begin
      inc(K); { <-- увеличиваем количество K }
      b[K] := a[i] { <-- и находим очередной элемент нового массива }
    end
  end;
  if K > 0 then begin
    writeln('Четные элементы в обратном порядке: ');
    for i := K downto 1 do write(' ', b[i]);
    writeln('Количество четных элементов: ', K)
  end
  else writeln('В массиве нет четных элементов');
  readln
end.

**type** integer;: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647 **type** integer;: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647 A **mod** B - остаток при целочисленном делении А на В **procedure** Inc(**var** i: integer);: Увеличивает значение переменной i на 1 Array10. Дан целочисленный массив размера N. Вывести вначале все содержащиеся в данном массиве четные числа в порядке возрастания их индексов, а затем — все нечетные числа в порядке убывания их индексов.

Имеем первый вариант решения, в котором просто выводим элементы массива, предварительно анализируя их:

var
  A: array[1..255] of integer;    
  i, N: byte;

begin
  write('N = ');
  readln(N);
  writeln('Введите массив из ', N, ' чисел: ');
  for i := 1 to N do 
    read(a[i]); { <-- Вводим i-й элемент массива }
  writeln('Четные числа (в порядке возрастания инденксов):');
  { Выводим четные элементы массива: }
  for i := 1 to N do
    if odd(a[i] + 1) then write(' ', a[i]);
  writeln;
  writeln('Нечетные числа (в порядке убывания индексов):');
  { Выводим нечетные элементы массива в обратном порядке: }
  for i := N downto 1 do
    if odd(a[i]) then write(' ', a[i]);
  readln
 end.

**type** integer;: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647 **type** byte;: Представляет 8-битовое целое число без знака.Диапазон значений: 0..255 **function** Odd(i: integer): boolean;: Возвращает True, если i нечетно **function** Odd(i: integer): boolean;: Возвращает True, если i нечетно Во втором варианрте сначала составляем два массива с указанными элементами, а потом выводим их.

var
  A, B, C: array[1..255] of integer;
  i, k, t, N: byte;

begin
  write('N = ');
  readln(N);
  writeln('Введите массив из ', N, ' чисел: ');
  for i := 1 to N do 
  begin
    read(a[i]); { <-- Вводим i-й элемент массива }
    if Odd(a[i]+1) then { <-- Если он четный, }
    begin 
      inc(k); { <-- то увеличиваем k на 1 }
      b[k] := a[i] { <-- и запоминаем очередной элемент
        с четными элементами. }
    end
    else begin
      inc(t); { <-- увеличиваем t на 1 }
      c[t] := a[i] { <-- и находим очередной элемент 
        массива с нечетными элементами. }
    end
  end;
  if k > 0 then begin
    writeln('Четные числа (в порядке возрастания инденксов):');
    for i := 1 to k do write(' ', b[i])
  end
  else writeln('В массиве нет четных элементов');
  writeln;
  if t > 0 then begin
    writeln('Нечетные числа (в порядке убывания индексов):');
    for i := t downto 1 do write(' ', c[i])
  end
  else writeln('В массиве нет нечетных чисел');
  readln
 end.

**type** integer;: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647 **type** byte;: Представляет 8-битовое целое число без знака.Диапазон значений: 0..255 **function** Odd(i: integer): boolean;: Возвращает True, если i нечетно **procedure** Inc(**var** i: integer);: Увеличивает значение переменной i на 1 **procedure** Inc(**var** i: integer);: Увеличивает значение переменной i на 1