На этой странице дано решение задач 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 647A **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