Как найти сумму четных элементов массива паскаль

Формулировка задачи:

Помогите мне, пожалуйста, написать вот эти задачи:

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

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Var A:array[1..100] of integer;
    i,n,k,s:integer;
Begin
    write('Введите размерность: ');readln(n);
    For i:=1 to n do
    Begin
      A[i]:=random(31)-15;
      write(A[i]:4);
      if A[i] mod 2 = 0 then
      Begin
        s:=s+A[i];
        inc(k);
      End;
    End;
    writeln;
    writeln('Сумма чётных= ',s);
    writeln('Кол-во чётрых= ',k);
    readln;
End.



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

Цитата
Сообщение от FINT0010
Посмотреть сообщение

Всё замечательно, но почему в paskal abc данный код не работает.

Все работает.
А для полноты счастья можете первой строкой в программе записать: Uses Crt;



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

Цитата
Сообщение от FINT0010
Посмотреть сообщение

по-моему не работает, или может я что-то не правильно делаю …

так написано же введите размерность!а не элементы массива…

Миниатюры

Найти сумму и количество чётных элементов массива
 



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

Цитата
Сообщение от FINT0010
Посмотреть сообщение

Что нужно изменить для ввода массива чисел, а не выбора случайно?

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Var A:array[1..100] of integer;
    i,n,k,s:integer;
Begin
    write('Введите размерность: ');readln(n);
    For i:=1 to n do
    Begin
      write('a[',i,'] = ');
      readln(a[i]);
      if A[i] mod 2 = 0 then
      Begin
        s:=s+A[i];
        inc(k);
      End;
    End;
    for i:=1 to n do
        write(a[i]:3);
    writeln;
    writeln('Сумма чётных= ',s);
    writeln('Кол-во чётных= ',k);
    readln;
End.



1



IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

02.11.2012, 20:09

Помогаю со студенческими работами здесь

Найти сумму и количество всех четных положительных элементов массива
Имеется массив А из N произвольных чисел А(N), среди которых есть положительные, отрицательные и …

Найти сумму элементов массива, стоящих на четных местах. Подсчитать количество элементов, значения которых меньше 1
помогите пожалуйста решить задачку на паскале:
Дан одномерный массив ci , где i=1…n. Найти сумму…

Найти сумму всех четных элементов массива, максимальный элемент и его номер, количество элементов, кратных трем
Дан одномерный масив чисел.
Найти сумму всех четных
элементов массива,
максимальный элемент и…

Найти сумму и количество четных элементов массива, стоящих на нечетных местах
Задан одномерный массив из 17 целых элементов, заполненый случайным образом в диапазоне от 7 до…

Найти сумму и количество четных элементов массива, стоящих на нечетных местах
Найти сумму и количество четных элементов массива Р(13), стоящих на нечетных местах

Дан двумерный массив целых чисел. Найти количество и сумму четных элементов массива
Дан двумерный массив целых чисел. Найти количество и сумму четных элементов массива

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:

10

Условие задачи : Найти сумму элементов массива с четными номерами, содержащего 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
    .

    Предыдущая

    ПрограммированиеЗадачи по Pascal. Произведение нечетных элементов массива.

    Следующая

    ПрограммированиеЗадачи по Pascal. Найти среднее арифметическое массива.

    Одномерные массивы (последовательности).

    1. Задачи заполнения
    2. Задачи анализа
    3. Задачи поиска
    4. Задачи перестановки

    A: 3,-4,0,3,-5,10,0

    A[1]=3, A[3]=0, A[7]=0

    I – номер элемента, A[I] – элемент массива, стоящий на I-ом месте

    1. 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. поиск максимального и минимального значений.

    Рассмотрим эти задачи на двух языках программирования

    Найти сумму элементов массива (сложить все элементы массива).

    ps_summ.jpg

    py_summ.jpg

    Рис. (1). Программа на Pascal Рис. (2). Программа на Python

    Найти сумму по условию, например сумму чётных элементов (сложить все чётные элементы массива).

    ps_xtn.jpg

    py_чет.jpg

    Рис. (3). Программа на Pascal Рис. (4). Программа на Python

    Найти количество элементов по сложному условию, например кратных (7) и не кратных (5) и (3).

    ps_k_sl_usl.jpg

    колво.jpg

    Рис. (5). Программа на Pascal Рис. (6). Программа на Python

    Заменить все отрицательные элементы на модуль элемента.

    ps_zamena.jpg

    py_zam.jpg

    Рис. (7). Программа на Pascal Рис. (8). Программа на Python

    Способов поиска максимального и минимального значений элементов массива существует множество. Остановимся на таком способе:

    1. допустим, что максимальное значение равно меньшему из диапазона;

    2. сравним его со всеми элементами массива поочерёдно;

    3. всегда найдётся значение большее, чем начальное, поэтому запомним его в переменную, которую ввели для поиска максимального значения.

    Задача на поиск максимального элемента

    Заполнить массив элементами в диапазоне от (-10) до (20). Найти максимальный элемент массива.

    макс.jpg

    Рис. (9). Алгоритм поиска максимального элемента массива

    ps_max.jpg

    py_max.jpg

    Рис. (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. © ЯКласс.

    Добавить комментарий