Условие задачи : Найти сумму элементов массива с четными номерами, содержащего N элементов. Элементы вводятся с клавиатуры.
Сложность : легкая .
Решение задачи :
Для того чтобы найти сумму четных элементов массива кроме обычного массива и цикла, тут нам понадобиться еще и условие которое будет проверять наше введенное число на четность.
Первое что мы сделаем мы создадим свой тип данных как и зачем читайте (тут) :
type massiv = array [1..1000] of integer;
Теперь какие нам нужны переменные ?
- Для кол-ва элементов.
- Для цикла for
- Для массива
- И для суммы.
var mass : massiv; n , i, summa : integer;
Теперь просим пользователя ввести длину массива, и присваиваем нашей сумме 0, для корректной работы.
write('Введите кол-во элементов : ');readln(n); summa := 0 ;
Ну теперь стоит сделать цикл, пока что простой в котором мы будем просить пользователя ввести число :
for i:=1 to n do begin write('Введите ',i, ' элемент : '); readln(mass[i]); summa := summa + mass[i]; // считаем сумму end;
Т.е. в этом цикле мы считаем сумму всех чисел которые вводим, но нам нужны только четные. Как правильно определить четность числа вы можете посмотреть (тут)
Нечего трудного в этом нет, просто используем операцию mod, которая ищет остаток от деления.
write('Введите ',i, ' элемент : '); readln(mass[i]); if (mass[i] mod 2 = 0) then summa := summa + mass[i] // считаем сумму else writeln('Число ', mass[i], ' нечетное, к сумме прибавлено не будет');
Т.е. когда мы вводим число, после этого сразу идет условие, если введенное число четное, то мы прибавляем его к сумме, если нет то выводи сообщение, и сумма при этом не меняется.
Вот и всё решение задачи. Сумма четных элементов массива найдена.
Весь код программы:
uses crt; type massiv = array [1..1000] of integer; var mass : massiv; n , i, summa : integer; begin clrscr; write('Введите кол-во элементов : ');readln(n); summa := 0 ; for i:=1 to n do begin write('Введите ',i, ' элемент : '); readln(mass[i]); if (mass[i] mod 2 = 0) then summa := summa + mass[i] // считаем сумму else writeln('Число ', mass[i], ' нечетное, к сумме прибавлено не будет'); end; writeln('Сумма четных эл-тов равна : ', summa); readln;// чтобы программы не закрывалась. end.