Оглавление:
Задача — Определить индексы четных элементов массива
— программирование на Pascal, Си, Кумир, Basic-256, Python
Во втором массиве сохранить индексы четных элементов первого массива. Например, если дан массив со значениями 8, 3, 15, 6, 4, 2, то во второй массив надо заполнить значениями 1, 4, 5, 6 (или 0, 3, 4, 5 — если индексация начинается с нуля), т.к. именно в этих позициях первого массива стоят четные числа.
- Ввести для второго массива счетчик элементов.
- В цикле перебирая все элементы первого массива,
- проверять их на четность.
- Если элемент четный, то
- заносить его индекс в очередную ячейку второго массива,
- увеличивать на 1 значение счетчика элементов второго массива.
- Вывести на экран элементы второго массива от первого до последнего, на индекс которого указывает счетчик элементов второго массива (чаще за вычетом 1).
Pascal
const N = 15;
var
arr, even: array[1..N] of integer;
i, j: byte;
begin
randomize;
for i:=1 to N do begin
arr[i] := random(11);
write(arr[i]:4)
end;
writeln;
j := 0;
for i:=1 to N do
if arr[i] mod 2 = 0 then begin
j := j+1;
even[j] := i;
end;
write(‘Индексы четных элементов: ‘);
for i:=1 to j do
write(even[i], ‘ ‘);
writeln;
end. 5 2 6 10 7 7 3 7 10 2 1 9 1 1 1
Индексы четных элементов: 2 3 4 9 10
Язык Си
#include <stdio.h>
#define N 10
main() {
int arr[N], even[N], i, j;
srand(time(NULL));
for (i=0; i<N; i++) {
arr[i] = rand()%11+10;
printf(«%d «, arr[i]);
}
printf(«n»);
j = 0;
for (i=0; i<N; i++)
if (arr[i] % 2 == 0) {
even[j] = i;
j += 1;
}
printf(«Индексы четных элементов: «);
for (i=0; i<j; i++)
printf(«%d «, even[i]);
printf(«n»);
} 14 17 13 20 20 18 11 12 12 11
Индексы четных элементов: 0 3 4 5 7 8
Python
from random import random
N = 10
arr = [0]*N
even = []
for i in range(N):
arr[i] = int(random() * 10) + 10
if arr[i] % 2 == 0:
even.append(i)
print(arr)
print(‘Индексы четных элементов: ‘, even) [10, 10, 15, 12, 13, 19, 11, 18, 12, 15]
Индексы четных элементов: [0, 1, 3, 7, 8]
КуМир
алг индексы четных элементов
нач
цел N = 15
цел таб arr[1:N], even[1:N]
цел i,j
нц для i от 1 до N
arr[i] := int(rand(0,11))
вывод arr[i], » »
кц
вывод нс
j := 0
нц для i от 1 до N
если mod(arr[i],2) = 0 то
j := j + 1
even[j] := i
все
кц
вывод «Индексы четных элементов: »
нц для i от 1 до j
вывод even[i], » »
кц
кон 7 5 8 4 2 0 2 7 4 10 9 4 0 6 6
Индексы четных элементов: 3 4 5 6 7 9 10 12 13 14 15
Basic-256
N = 10
dim arr(N)
dim even(N)
for i=0 to N-1
arr[i] = int(rand *10) + 10
print arr[i] + » «;
next i
print
j = 0
for i=0 to N-1
if arr[i] % 2 = 0 then
even[j] = i
j = j + 1
endif
next i
print «Индексы четных элементов: »
for i=0 to j-1
print even[i] + » «;
next i 10 13 18 19 17 16 12 12 18 10
Индексы четных элементов:
0 2 5 6 7 8 9