Иван 123 |
|
1 |
|
как найти количество четных чисел в массиве11.03.2010, 20:49. Показов 25213. Ответов 2
Подскажите ,как найти количество четных чисел в массиве |
Ngx1 2 / 2 / 4 Регистрация: 28.02.2010 Сообщений: 9 |
||||
11.03.2010, 23:50 |
2 |
|||
Решение
0 |
Inadequate Retired 7726 / 2558 / 671 Регистрация: 17.10.2009 Сообщений: 5,100 |
||||
12.03.2010, 08:02 |
3 |
|||
0 |
Итак формулировка задачи такова «найти все четные элементы массива, вывести на экран, и подсчитать их количество».
Для начала определим, что такое четное число вообще? правильно, четными числами называются числа, которые делятся на 2 без остатка (иногда еще говорят кратны 2).
Теперь определимся как это реализовать. В паскале есть такой замечательный оператор mod, который нам как раз и необходим. Сей оператор отвечает за деление с остатком, а если быть точнее, применив данный оператор, вы получаете остаток от деления. Например 11 разделить на 2. Использовав mod мы получим в ответе число 1.
11/2 = 5 (остаток 1)
Теперь как это все записать в паскале. Пусть переменная х — это остаток
x := 11 mod 5
Вернемся к нашей задаче, где нас интересует нахождение четных элементов массива. Для ее решения нужно подойти к составлению кода логически .
Каков остаток при делении четного числа на 2? Верно, остаток всегда равен нулю. (Подробнее о четности вы можете прочесть в статье оператор div и оператор mod) То есть нам просто нужно использовать цикл с условием вида
if s[i] mod 2 = 0 then
Ну а теперь код всей задачи (как в помните нам еще было необходимо подсчитать количество четных чисел и вывести их всех на экран)
var i,x,y:integer;s:array [1..10] of integer;
begin
for i:=1 to 10 do
read(s[i]);
for i:=1 to 10 do
if s[i] mod 2=0 then begin
writeln (s[i]);
y:=y+1;
end;
writeln;
writeln(‘количество четных чисел = ‘,y)
end.
В данной статье я написал, что такое массивы в Паскале, и как их использовать благодаря языку программирования. Для примера, в конце статьи, написана простая программа, которая определяет четность числа и выводит из массива на экран четные числа.
Массив в Паскале (как и, почти, во всем программировании) — это набор переменных(или констант) одного типа. Массиву присваивается имя, как и переменной или константе. Набор переменных (констант) в массиве является конечным, то есть Вы должны указать, сколько переменных включает в себя массив, если он состоит из переменных, или указать все константы в него входящие, если он состоит из констант. Для доступа к конкретной переменной (констант) в массиве необходимо написать имя массива и в квадратных скобках указать порядковый номер переменной.
Пример объявления массива целых чисел в разделе констант:
const
int_num = (1,5,8,2,44,7,3,66,4,7,34,7896,23463456,23,1,85456,44354,9);
Пример объявления массива целых чисел в разделе переменных:
var
int_number: array[1..1000] of integer;
Чтобы обратится (записать значение) к массиву, необходимо указать, к какому конкретно элементу массива Вы хотите обратится:
int_number[587]:= 24545;
Но если Вы хотите скопировать все значения массива number_1 в массив number_0, то можно записать так:
number_0:= number_1; {number_0[1]:=number_1[1], number_0[2]:=number_1[2], ...}
Естественно для такой операции элементы массивы в Паскале должны иметь одинаковый тип.
Чтобы обработать большое количество элементов массива, для удобства используют циклы.
Например, цикл «for»:
for i:= 1 to 1000 do
begin
int_number[i]:=random(9); {Записываем случайное число}
end;
Например, цикл «while»:
while i<=1000 do
begin
i:=i+1; {Увеличиваем счетчик на единицу}
int_nember[i]:=random(9); {Записываем случайное число}
end;
Массивы могут быть многомерными.
Пример двумерного массива (матрица):
var
mat_num: array[1..100, 1..100] of real;
Чтобы присвоить значения такому массиву необходимо уже два цикла, один будет вложен в другой:
for i1:=1 to 100 do
begin
for i2:=1 to 100 do
begin
mat_num[i1,i2]:=random(87)+sin(i1)*pi;
end;
end;
Чтобы все стало лучше понятно, напишем программу, которая будет заносить в вывод массива только четные числа и выводить их на экран.
PROGRAM Chetnye_chisla; {Имя программы}
uses Crt; {Подключаем модуль Crt, необходимо для функции clrscr}
var {Раздел объявления переменных}
i,j: integer; {i- наши числа j- индекс массива}
ostatok: real; {Для проверки наличия остатка от деления}
ch_chisla: array[1..50] of integer; {Массив, в котором будут хранится четные числа}
BEGIN {Начало выполнения программы}
clrscr; {Для начала очищаем экран}
for i:=1 to 100 do {Начало цикла}
begin
ostatok:= i mod 2; {Определяем четность, делим число на 2}
if ostatok=0 then {Если нет остатка от деления, значить число четное}
begin
j:=j+1; {Увеличиваем индекс цикла на единицу}
ch_chisla[j]:=i; {Записываем четное число в массив}
write(i,' '); {Выводим на экран четное число и пробел}
end;
end;
readln; {Нужно чтобы увидеть результат - компьютер будет ждать нажатия "Enter"}
END. {Конец программы}
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.
Напишем программу, которая подсчитывает количество четных элементов в массиве.
Подсчет количества четных элементов в массиве.
program massiv7; uses crt; const N=10; type x=array [1..N] of integer; var a:x; i:integer; k:integer; begin clrscr; randomize; for i:=1 to N do begin a[i]:= +10+random (91); write (A[i]:5) end; writeln; k:=0; for i:=1 to N do if a[i] mod 2=0 then begin k:=k+1 end; writeln (‘Количество четных элементов = ’,k:5); readln end.
В строке №7 записываем переменную для хранения количества четных элементов
В строке №13 заполняем массив случайными числами в диапазоне от +10 до +100 (включая 100).
В строке №17 переменной для хранения количества четных чисел присваиваем первоначальное значение равное 0.
В строке №19 записываем условие: если значение элемента массива (т.е. если сгенерированное число) делиться на 2 без остатка (т.е. остаток от целочисленного деления равен 0), то прибавляем к переменной K единицу (т.е. при наличии четного числа «K» увеличивается на 1).
Предыдущая статья : Вычисление суммы положительных элементов массива.
Оглавление : Уроки Паскаль.
Следующая статья : Определение наличия в массиве отрицательных чисел.
Перейти к содержанию
Определить индексы четных элементов массива
Просмотров 3.1к. Обновлено 15 октября 2021
Во втором массиве сохранить индексы четных элементов первого массива. Например, если дан массив со значениями 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
четные индексы python
from random import randint
N = 5arr = [0] * N
even = []for i in range(N):
arr[i] = randint(10, 19)
if arr[i] % 2 == 0:
even.append(i)print(arr)
print('Индексы четных элементов: ', even)
[14, 18, 11, 15, 16]
Индексы четных элементов: [0, 1, 4]
КуМир
алг индексы четных элементов
нач
цел 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
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