Формулировка задачи:
Помогите мне, пожалуйста, написать вот эти задачи:
1. Найти сумму четных, положительных элементов массива.
Заранее всем очень благодарна)))
Код к задаче: «Найти сумму четных элементов массива»
textual
const n=5; var i:integer; a:array[1..n] of integer; s:real; begin for i:=1 to n do readln(a[i]); for i:=1 to n do begin if (a[i]>0) and ((a[i] mod 2)=0) then s:=s+a[i];end; writeln('Сумма: ',s); end.
Полезно ли:
5 голосов , оценка 4.200 из 5
0 / 0 / 1 Регистрация: 01.11.2012 Сообщений: 16 |
|
1 |
|
Найти сумму и количество чётных элементов массива01.11.2012, 14:46. Показов 90726. Ответов 9
Дан массив целых чисел. Найти сумму и количество чётных элементов массива.
0 |
CodeR Фрилансер 3417 / 2814 / 3000 Регистрация: 08.02.2012 Сообщений: 8,541 Записей в блоге: 1 |
||||
01.11.2012, 15:28 |
2 |
|||
2 |
0 / 0 / 1 Регистрация: 01.11.2012 Сообщений: 16 |
|
01.11.2012, 19:33 [ТС] |
3 |
Всё замечательно, но почему в paskal abc данный код не работает.
0 |
Модератор 5091 / 3907 / 1342 Регистрация: 30.07.2012 Сообщений: 11,680 |
|
01.11.2012, 19:43 |
4 |
Всё замечательно, но почему в paskal abc данный код не работает. Все работает.
1 |
0 / 0 / 1 Регистрация: 01.11.2012 Сообщений: 16 |
|
02.11.2012, 08:42 [ТС] |
5 |
по-моему не работает, или может я что-то не правильно делаю … Миниатюры
0 |
Фрилансер 3417 / 2814 / 3000 Регистрация: 08.02.2012 Сообщений: 8,541 Записей в блоге: 1 |
|
02.11.2012, 11:19 |
6 |
по-моему не работает, или может я что-то не правильно делаю … так написано же введите размерность!а не элементы массива… Миниатюры
1 |
0 / 0 / 1 Регистрация: 01.11.2012 Сообщений: 16 |
|
02.11.2012, 17:42 [ТС] |
7 |
Может кто поможет составить блок схему данной программы.
0 |
3451 / 2389 / 2135 Регистрация: 04.12.2011 Сообщений: 3,966 |
|
02.11.2012, 17:54 |
8 |
блок схема Миниатюры
1 |
0 / 0 / 1 Регистрация: 01.11.2012 Сообщений: 16 |
|
02.11.2012, 19:02 [ТС] |
9 |
Что нужно изменить для ввода массива чисел, а не выбора случайно?
0 |
domovou2.0 Дзæуджыхъæу 232 / 204 / 148 Регистрация: 20.09.2012 Сообщений: 421 Записей в блоге: 1 |
||||
02.11.2012, 20:09 |
10 |
|||
Что нужно изменить для ввода массива чисел, а не выбора случайно?
1 |
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
02.11.2012, 20:09 |
Помогаю со студенческими работами здесь Найти сумму и количество всех четных положительных элементов массива Найти сумму элементов массива, стоящих на четных местах. Подсчитать количество элементов, значения которых меньше 1 Найти сумму всех четных элементов массива, максимальный элемент и его номер, количество элементов, кратных трем Найти сумму и количество четных элементов массива, стоящих на нечетных местах Найти сумму и количество четных элементов массива, стоящих на нечетных местах Дан двумерный массив целых чисел. Найти количество и сумму четных элементов массива Искать еще темы с ответами Или воспользуйтесь поиском по форуму: 10 |
Условие задачи : Найти сумму элементов массива с четными номерами, содержащего N элементов. Элементы вводятся с клавиатуры.
Сложность : легкая.
Решение задачи
Для того чтобы найти сумму четных элементов массива кроме обычного массива и цикла, тут нам понадобиться еще и условие которое будет проверять наше введенное число на четность.
Первое что мы сделаем мы создадим свой тип данных как и зачем читайте (тут) :
type
massiv =
array
[
1..1000
]
of
integer
;
Теперь какие нам нужны переменные ?
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
.
Предыдущая
ПрограммированиеЗадачи по Pascal. Произведение нечетных элементов массива.
Следующая
ПрограммированиеЗадачи по Pascal. Найти среднее арифметическое массива.
Одномерные массивы (последовательности).
- Задачи заполнения
- Задачи анализа
- Задачи поиска
- Задачи перестановки
A: 3,-4,0,3,-5,10,0
A[1]=3, A[3]=0, A[7]=0
I – номер элемента, A[I] – элемент массива, стоящий на I-ом месте
-
1.Сформировать и вывести на экран последовательность из n элементов, заданных датчиком случайных чисел на интервале [-23, 34].
Program posled;
Var a: array[1..100] of integer;
i, n: integer;
Begin
Write (‘Сколько элементов? ’); Readln (n);
For i=1 to n do
begin
a[i]:= Random(58)-23;
writeln (a[i],’ ‘);
end;
End.
2. Найти произведение элементов одномерного массива, состоящего из n элементов. Элементы вводятся с клавиатуры.
Program proisveden;
Var a: array[1..100] of integer;
i, n, p: integer;
Begin
Write (‘Сколько элементов? ’); Readln (n);
p:=1;
For i:=1 to n do
begin
write (‘введите число’); readln (a[i]);
p:=p*a[i];
end;
writeln(‘произведение элементов равно: ‘,p);
End.
3. Найти сумму элементов одномерного массива. Размер произвольный. Элементы вводятся с клавиатуры.
Program summa;
Var a: array[1..100] of real;
i, n: integer;
s: real;
Begin
Write (‘n=’); Readln (n);
s:=0;
For i:=1 to n do
begin
write (‘введите число’); readln (a[i]);
s:=s+a[i];
end;
writeln(‘сумма элементов равна ‘,s);
End.
4. Задан массив А, состоящий из n чисел. Найти среднее арифметическое его элементов. Элементы вводятся с клавиатуры.
Program srednee;
Var a: array[1..100] of real;
i, n: integer;
s,sred: real;
Begin
Write (‘n=’); Readln (n);
s:=0;
For i:=1 to n do
begin
write (‘введите число’); readln (a[i]);
s:=s+a[i];
end;
sred:=s/n;
writeln(‘среднее арифметическое элементов: ‘,s);
End.
5. Найти сумму элементов массива с четными номерами, содержащего N элементов. Элементы вводятся с клавиатуры.
Program sumshet;
Var a: array[1..100] of real;
i, n: integer;
s,sred: real;
Begin
Write (‘n=’); Readln (n);
s:=0;
For i:=1 to n do
begin
write (‘введите число’); readln (a[i]);
if i mod 2 = 0 then s:=s+a[i];
end;
writeln(‘сумма элементов с четными номерами: ‘,s);
End.
6. Сформировать и вывести на экран массив, элементы которого заданы датчиком случайных чисел на интервале [-19, 26] (размер произвольный). Найти произведение элементов с нечетными номерами.
Program proisvednechet;
Var a: array[1..100] of integer;
i, n, p: integer;
Begin
Write (‘Сколько элементов? ’); Readln (n);
P:=1;
For i=1 to n do
begin
a[i]:= Random(46)-19;
writeln (a[i],’ ‘);
if i mod 2 <> 0 then P=P*a[i];
end;
Writeln(‘Произведение элементов с нечетными номерами:’, P);
End.
7. Сформировать и вывести на экран массив, элементы которого заданы датчиком случайных чисел на интервале [-56, 47] (размер произвольный). Найти произведение элементов с четными номерами, которые превосходят некоторое число t.
Program proisvedchetbolt;
Var a: array[1..100] of integer;
i, n, p, t: integer;
Begin
Write (‘Сколько элементов? ’); Readln (n);
P:=1;
For i=1 to n do
begin
a[i]:= Random(104)-56; writeln (a[i],’ ‘);
if (i mod 2 = 0) and (a[i]>t) then P=P*a[i];
end;
Writeln(‘Произведение элементов с четными номерами, превосходящие число t:’, P);
End.
8. Найти наименьший элемент одномерного массива, состоящего из n элементов. Элементы вводятся с клавиатуры.
Program minim;
Var a: array[1..100] of real;
i, n: integer;
min: real;
Begin
Write (‘n=’); Readln (n);
For i:=1 to n do
begin
write(‘a[‘,i,’]=’); readln (a[i]);
end;
min:=a[1];
For i:=2 to n do
If a[i]< min then min:=a[i];
Writeln(‘наименьшее число: ‘,min);
End.
9. Найти номер наименьшего элемента в массиве, заданного датчиком случайных чисел на интервале [-20, 25]. Размер произвольный.
Program numberminim;
Var a: array[1..100] of integer;
i, n, num, min: integer;
Begin
Write (‘n=’); Readln (n);
For i:=1 to n do
begin
a[i]:= Random(46)-20;
writeln (a[i]);
end;
min:=a[1];
num:=1;
For i:=2 to n do
If a[i]< min then
begin
min:=a[i];
num:=i;
end;
Writeln(‘ номер наименьшего элемента: ‘,num);
End.
10. В заданном одномерном массиве, состоящем из n целых чисел, подсчитать количество нулей.
Program kolv0;
Var a: array[1..100] of integer;
i, n, k: integer;
Begin
Write (‘n=’); Readln (n);
For i:=1 to n do
begin
Write(‘a[‘,i,’]=’); readln (a[i]);
if a[i]=0 then k:=k+1;
end;
Writeln(‘количество 0 равно ’, k);
end.
11. В заданном одномерном массиве, состоящем из n целых чисел, подсчитать количество четных элементов.
Program kolvсchet;
Var a: array[1..100] of integer;
i, n, k: integer;
Begin
Write (‘n=’); Readln (n);
For i:=1 to n do
begin
Write(‘a[‘,i,’]=’); readln (a[i]);
if a[i] mod 2=0 then k:=k+1;
end;
Writeln(‘количество четных элементов: ’, k);
end.
12. Найдите среднее арифметическое элементов массива, состоящего из 10 чисел, которые превышают по величине число С. Элементы вводятся с клавиатуры.
Program sredarifmet;
Var a: array[1..10] of real;
i, k: integer;
C, S, sred: real;
Begin
For i:=1 to 10 do
begin
write(‘a[‘,i,’]=’); readln (a[i]);
end;
write(‘введите С: ‘); readln (C );
For i:=1 to 10 do
begin
If a[i]>C then
begin S=S+a[i]; K=K+1; end;
end;
sred=S/k;
Writeln(‘среднее арифметическое чисел, превосходящих ‘,C,’ равно ‘,sred);
End.
13. Найти произведение элементов целочисленного одномерного массива с четными номерами, состоящего из n элементов. Элементы вводятся с клавиатуры.
Program proizved_chet;
Var a: array [1..100] of integer;
i, n, p: integer;
Begin
p:=1;
write (‘n=’); readln (n);
for i:=1 to n do
begin
write (‘a[‘,i,’]=’); readln (a[i]);
if i mod 2=0 then p:=p*a[i];
end;
Writeln (‘произведение элементов массива с четными номерами равно ‘,p);
End.
14. В заданном одномерном массиве поменять местами соседние элементы.
Var
n, i, c : integer;
a : array [1..1000] of integer;
begin
read (n);
for i := 1 to n do read (a[i]);
for i := 1 to n div 2 do
begin
c := a[i*2];
a[i*2] := a[i*2-1];
a[i*2-1] := c;
end;
for i := 1 to n do
write (a[i], ‘ ‘);
end.
15. Массив А вводится с клавиатуры. Сформировать новый массив В, состоящий из четных элементов массива А. Элементы вводятся с клавиатуры. Размер n.
Program newmasiv;
Var a: array[1..100] of integer;
b: array[1..100] of integer;
n, i, k: integer;
Begin
kol:=0; k:=0;
write (‘n=’); readln (n);
For i:=1 to n do
begin
write(‘a[‘,i,’]=’); readln (a[i]);
if a[i] mod 2=0 then
begin
k:=k+1; b[k]:=a[i]; kol:=kol+1;
end;
if kol=0 then writeln(‘четных элементов нет’) else
for k:=1 to kol do write(‘b[‘,k,’]=’,b[k]);
end;
К обработке элементов одномерного массива можно отнести такие типы задач:
1. найти сумму элементов;
2. найти количество элементов;
3. заменить элементы по условию;
4. поиск максимального и минимального значений.
Рассмотрим эти задачи на двух языках программирования
Найти сумму элементов массива (сложить все элементы массива).
Рис. (1). Программа на Pascal | Рис. (2). Программа на Python |
Найти сумму по условию, например сумму чётных элементов (сложить все чётные элементы массива).
Рис. (3). Программа на Pascal | Рис. (4). Программа на Python |
Найти количество элементов по сложному условию, например кратных (7) и не кратных (5) и (3).
Рис. (5). Программа на Pascal | Рис. (6). Программа на Python |
Заменить все отрицательные элементы на модуль элемента.
Рис. (7). Программа на Pascal | Рис. (8). Программа на Python |
Способов поиска максимального и минимального значений элементов массива существует множество. Остановимся на таком способе:
1. допустим, что максимальное значение равно меньшему из диапазона;
2. сравним его со всеми элементами массива поочерёдно;
3. всегда найдётся значение большее, чем начальное, поэтому запомним его в переменную, которую ввели для поиска максимального значения.
Задача на поиск максимального элемента
Заполнить массив элементами в диапазоне от (-10) до (20). Найти максимальный элемент массива.
Рис. (9). Алгоритм поиска максимального элемента массива
Рис. (10). Поиск максимального элемента на Pascal |
Рис. (11). Поиск максимального элемента на Python |
Аналогично происходит поиск минимального элемента.
Источники:
Рис. 1. Программа на Pascal. © ЯКласс.
Рис. 2. Программа на Python. © ЯКласс.
Рис. 3. Программа на Pascal. © ЯКласс.
Рис. 4. Программа на Python. © ЯКласс.
Рис. 5. Программа на Pascal. © ЯКласс.
Рис. 6. Программа на Python. © ЯКласс.
Рис. 7. Программа на Pascal. © ЯКласс.
Рис. 8. Программа на Python. © ЯКласс.
Рис. 9. Алгоритм поиска максимального элемента массива. © ЯКласс.
Рис. 10. Поиск максимального элемента на Pascal. © ЯКласс.
Рис. 11. Поиск максимального элемента на Python. © ЯКласс.