Главное меню  

   

Авторизация  

   
   
Хостинг в Украине
   


52.1%Russian Federation Russian Federation
21.1%Ukraine Ukraine
16%United States United States
1.9%Belarus Belarus
1.2%Romania Romania
1.1%United Kingdom United Kingdom
0.9%Czech Republic Czech Republic
0.9%Kazakhstan Kazakhstan
0.6%Kuwait Kuwait
0.6%Republic Of Moldova Republic Of Moldova

Сегодня: 8
Вчера: 311
На этой неделе: 619
На прошлой неделе: 1872
В этом месяце: 3246
В прошлом месяце: 8478
Всего: 25455


   

Учитель информатики Бамбуркин С.П.

Записи

  • Главная
    Главная Страница отображения всех блогов сайта
  • Категории
    Категории Страница отображения списка категорий системы блогов сайта.

Вычисление суммы и произведений массива. Паскаль

Добавлено : Дата: в разделе: Прикладная информатика

Вычисление суммы и произведения элементов массива, удовлетворяющих заданному условию.

Дан целочисленный одномерный массив, состоящий из n элементов. Найти сумму и произведение нечетных элементов, кратных 3. 

Введем обозначения: n – количество элементов в массиве; А – имя массива; i – индекс элемента массива; Ai – i-й элемент массива A; s – сумма нечетных элементов массива, кратных 3; p – произведение нечетных элементов массива, кратных 3.

Входные данные: n, A.

Выходные данные: s, p.

Первоначально сумма искомых элементов равна нулю: не просуммировано ни одно слагаемое, то есть s:=0. Далее, используя любой оператор цикла, просматриваем весь массив от первого и до последнего элемента. И если при этом элемент массива нечетный и кратен 3, то к уже накопленной сумме добавляется очередное слагаемое, т.е. s:= s + A[i]. Здесь слева и справа от знака присваивания записано имя одной и той же переменной s, именно это обеспечивает постепенное накопление суммы: s справа – уже вычисленное известное значение суммы, s  - ее новое, вычисляемое значение.

При просмотре массива можно сразу вычислить и произведение элементов массива, удовлетворяющих заданному условию. Произведение вычисляется с помощью оператора p:=p*A[i]. При этом p справа и p слева имеют разные значения: p справа – уже известное, вычисленное ранее значение произведения, p слева – новое, вычисляемое его значение. Первоначально искомое произведение равно единице, т.е. p:=1.

При решении этой задачи можно использовать любой из видов циклов. Рассмотрим несколько вариантов решения задачи.

Первый способ.  Для решения используется цикл с параметром:

Program massiv;
Var A: Array[1..20] Of Integer;
i, n, s, p: Integer;
Begin
Write ('n='); Readln (n);
For i:=1 To n Do Readln (A[i]); //ввод массива
s:= 0; p:=1;
For i:=1 To n Do //обработка массива
If (A[i] mod 2 <>0) and (A[i] mod 3 = 0) Then
Begin
s:=s+A[i]; p:= p*A[i]
End;
Writeln ('s=', s, 'p=', p);
End.

Второй способ. Для решения используется цикл с предусловием:

Program massiv_2;
Var A: Array[1..20] Of Integer;
i, n, s, p: Integer;
Begin
Write ('n=');
Readln (n);
i:=1;
While i <= n Do
Begin
Readln (A[i]);
i:= i + 1
End;
s:= 0;
p:=1;
i:=1;
While i<=n Do
Begin
If (A[i] mod 2 <>0) and (A[i] mod 3 = 0) Then
Begin
s:=s+A[i];
p:= p*A[i]
End;
i:= i + 1
End;
Writeln ('s=', s, 'p=', p);
End.

Редактировалось Дата:

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


Защитный код
Обновить

   
© 2012 fordus.