Главное меню  

   

Авторизация  

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


49.9%Russian Federation Russian Federation
24.5%Ukraine Ukraine
14.6%United States United States
1.9%Belarus Belarus
1.1%Romania Romania
0.8%Kazakhstan Kazakhstan
0.8%Czech Republic Czech Republic
0.7%United Kingdom United Kingdom
0.6%Republic Of Moldova Republic Of Moldova
0.6%Kuwait Kuwait

Сегодня: 46
Вчера: 315
На этой неделе: 1912
На прошлой неделе: 2232
В этом месяце: 6384
В прошлом месяце: 6131
Всего: 19365


   

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

Записи

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

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

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

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

Дан целочисленный одномерный массив, состоящий из 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.