Как найти произведение всех чисел массива паскаль

2 / 2 / 0

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

Сообщений: 58

1

Найти произведение всех элементов массива

07.04.2012, 17:57. Показов 5943. Ответов 4


Студворк — интернет-сервис помощи студентам

1. Найти произведение всех элементов массива.
2. Дан массив целых чисел. Вывести все чётные элементы.



0



Севак

любитель покушать

686 / 640 / 248

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

Сообщений: 1,313

07.04.2012, 19:04

2

Drakula12,

Pascal
1
2
3
s:=1; 
for i:=1 to n do begin //n - кол-во элементов массива
s:=s*a[i];
Pascal
1
2
3
for i:=1 to n do begin
if a[i] mod 2=0 then write(a[i],' ');
end;



1



2 / 2 / 0

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

Сообщений: 58

07.04.2012, 21:45

 [ТС]

3

спасибо, а можно вторую задачу по-подробнее?



0



Севак

любитель покушать

686 / 640 / 248

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

Сообщений: 1,313

07.04.2012, 21:49

4

Drakula12, можно,

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
uses crt;
var a: array[1..10] of integer;
     i: integer;
begin
writeln('Исходный массив:');
for i:=1 to 10 do begin
a[i]:=random(21)-10;
write(a[i],' ');
end;
writeln('Полученный массив:');
for i:=1 to 10 do begin
if abs(a[i]) mod 2=0 then write(a[i],' ');
end;
end.



1



2 / 2 / 0

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

Сообщений: 58

07.04.2012, 21:55

 [ТС]

5

спасибо))



0



Сумма и произведение элементов массива

Просмотров 10.7к. Обновлено 15 октября 2021

Заполнить массив вещественных чисел вводом с клавиатуры. Посчитать сумму и произведение элементов массива. Вывести на экран сам массив, полученные сумму и произведение его элементов.

  1. Присвоить переменной, в которой будет храниться сумма, значение 0, а переменной для произведения — значение 1.
  2. В цикле увеличивая индекс массива от начала до конца
    1. считывать с клавиатуры число и записывать его в текущую ячейку массива,
    2. увеличивать переменную с суммой на введенное число.
    3. умножать переменную с произведением на введенное число.
  3. В цикле увеличивая индекс массива от начала до конца вывести все элементы массива.
  4. Вывести сумму и произведение.

Pascal

сумма элементов массива паскаль


const N = 10;
var
a: array[1..N] of real;
sum, mult: real;
i: integer;
begin
sum := 0;
mult := 1;
for i:=1 to N do begin
read(a[i]);
sum := sum + a[i];
mult := mult * a[i];
end;
for i:=1 to N do write(a[i]:5:2);
writeln;
writeln(sum:5:2);
writeln(mult:5:2);
end.



4.3 2.3 4.5 3.3 8.3 1.2 8.3 9.1 2.3 3.6
4.30 2.30 4.50 3.30 8.30 1.20 8.30 9.10 2.30 3.60
47.20
914812.11

Язык Си


#include
#define N 10

main() {
float a[10], sum, mult;
int i;
sum = 0;
mult = 1;
for (i=0; i < 10; i++) {
scanf("%f", &a[i]);
sum += a[i];
mult *= a[i];
}
for (i=0; i < 10; i++) {
printf("%.2f ", a[i]);
}
printf("n%.2fn", sum);
printf("%.2fn", mult);
}

Python

сумма элементов массива python (питон)


a = [0]*10
s = 0
m = 1
for i in range(10):
a[i] = float(input())
s += a[i]
m *= a[i]
print(a)
print(s)
print('%.4f'%m)

КуМир


алг сумма элементов
нач
цел N=10
вещ таб a[1:N]
вещ sum, mult
цел i
sum := 0
mult := 1
нц для i от 1 до N
ввод a[i]
sum := sum + a[i]
mult := mult * a[i]
кц
нц для i от 1 до N
вывод a[i], " "
кц
вывод нс, sum, нс
вывод mult
кон

Basic-256


dim a(10)
sum = 0
mult = 1
for i=0 to 9
input a[i]
sum = sum + a[i]
mult = mult * a[i]
next i

for i=0 to 9
print a[i] + " ";
next i
print
print sum
print mult

program kvad;
uses crt;
var a:array[1..100]of Integer;
i,n,sum,proz,sumkv,sum6,sumz,k1,k2:Integer;
begin
proz:=1;
ClrScr;
Write('Введите размер массива,n=');
Readln(n);
Writeln('Введите значения элементов массива:');
for i:=1 to n do 
begin
Write('a[',i,']=');
Readln(a[i]);
end;
Writeln('Заданный массив:');
for i:=1 to n do Write(a[i],'  ');
Writeln;
Write('k1=');
Readln(k1);
Write('k2=');
Readln(k2);
for i:=1 to n do
begin
sum:=sum+a[i];
proz:=proz*a[i];
sumkv:=sumkv+sqr(a[i]);
if i<=6 then sum6:=sum6+a[i];
if i in [k1..k2] then sumz:=sumz+a[i];
end;
Writeln('Сумма всех элементов:',sum);
Writeln('Произведение всех элементов массива:',proz);
Writeln('Сумма квадратов всех элементов массива:',sumkv);
Writeln('Cумма шести первых элементов массива:',sum6);
Writeln('Cумма элементов массива с k1-гo по k2-й:',sumz);
Readln;
end.

Одномерные массивы

Сегодня мы с вами наконец-то начинаем новую тему — одномерные массивы.

Одномерные массивы. Определение.

Одномерный массив — это фиксированное количество элементов одного и того же типа, объединенных одним именем, где каждый элемент имеет свой номер. Обращение к элементам массива осуществляется с помощью указания имени массива и номеров элементов.

var 
   a : array [1..N] of integer;

//или
type 
  arr = array[1..N] of integer;

var
  a: arr;

Между именем типа и именем переменной ставится знак «двоеточие». Array — служебное слово (в переводе с английского означает «массив», «набор»); [1..N] — в квадратных скобках указывается номер первого элемента, затем, после двух точек, номер последнего элемента массива; of — служебное слово (в переводе с английского «из»); integer — тип элементов массива.

Индексом могут быть не только натуральные числа: мы можем написать так: [0..10], [-29..45], [‘a’..’z’], [false..true] — то есть нам подходят любые символы и числа — главное соблюсти следующее условие: левая часть меньше правой. Для того чтобы определить, что меньше — восклицательный знак(‘!’) или точка(‘.’) используем таблицу ASCII и функции Ord() и Chr().

Как же производится ввод одномерного массива?

Для того чтобы ввести или вывести значения элементов такого массива, используем цикл с параметром(или с постусловием, или с предусловием — в общем, любой цикл. ).

for i := 1 to N do
   read(a[i]); //где a[i] -- элемент одномерного массива a с индексом (порядковым номером) i.

Как видите, ничего страшного в массивах нет. Массивы применяют в тех случаях, когда нельзя обойтись одной-двумя переменными (примеры таких задач мы рассматривали в решении задач из блока Series). В случаях, когда после ввода последовательности целиком пользователю необходимо обратиться к переменным в середине последовательности, в начале, поменять их значения местами, отсортировать.

Раз уж мы затронули тему задач из блока Series, давайте решим пару задачек оттуда с помощью массивов, а не тем увечным способом, которым нам приходилось пользоваться.

Одномерные массивы. Решение задач.

Series8. Дано целое число N и набор из N целых чисел. Вывести в том же порядке все четные числа из данного набора и количество K таких чисел.

Исходное решение: Series8.

Модифицированное решение:

var
  a: array[1..1000] of integer; {мы не знаем заранее N, поэтому берем с запасом.}
  k, N, i: integer;

begin
  write('N = '); 
  readln(N);  
  write('Введите ', N, ' целых чисел: '); 
  for i := 1 to N do read(a[i]); {заполняем масссив}
  
  {Начинаем выбирать чётные числа}
  write('Чётные числа: ');
  for i := 1 to N do
  begin
    if a[i] mod 2 = 0 then 
    begin
      Inc(k);
      write(a[i], ' ');
    end;
  end;  
  writeln();
  writeln('Количество четных чисел - ', k); 
end.

Series28.  Дано целое число N и набор из N вещественных чисел: A1, A2, …, AN. Вывести следующие числа:

(A1)N, (A2)N−1, …, (AN−1)2, AN.

Исходное решение: Series28.

Более подробно про возведение числа в степень мы говорили в решении задачи for36.

Модифицированное решение:

var
  a: array[1..1000] of integer; 
  N, i, j, n_pow: integer;
  d, r: real;

begin
  write('N = ');
  readln(N);
  write('Введите ', N, ' целых чисел: '); 
  for i := 1 to N do read(a[i]);
  
  {Возводим элементы массива в степень}
  for i := 1 to N do
  begin
    n_pow := N + 1 - i;
    d := a[i];
    if n_pow mod 2 <> 0 then r := d else r := 1; //в r будет записываться результат
    while n_pow > 1 do
    begin
      n_pow := n_pow div 2;
      d := d * d;
      if n_pow mod 2 <> 0 then r := r * d;
    end;
    writeln(a[i], ' в степени ', N + 1 - i, ' равно ', r);
  end;
end.

Ну и напоследок давайте разберём веселенькую задачу на длинную арифметику.

Задача. Найти факториал числа. 

Мы уже решали эту задачу здесь(for19).

Научимся вычислять факториал натурального числа N. Факториал числа — это произведение чисел 1*2*3*…*(N-1 )*N (обозначается как N!).  Сложность задачи в том, что уже 8!=40320, а 13!=6227020800. Типы данных Integer, Longlnt применимы весьма в ограниченном диапазоне натуральных чисел. Для представления факториала договоримся использовать массив. Пример:

A[0] A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8]
8 0 0 8 6 1 9 9 3

В массиве записано значение 11!=39916800. Каким образом? В А[0] фиксируется число занятых элементов массива, в А[1] — цифра единиц результата, в А[2] — цифра десятков результата, в А[3] — цифра сотен результата и т. д. Почему так, а не наоборот? Такая запись позволяет исключить сдвиг элементов массива при переносе значений в старший разряд. А сейчас наберите, как обычно, текст программы, выполните компиляцию и, выполните ее в пошаговом режиме, отслеживая изменение значений переменных при не очень большом значении N. Добейтесь полного понимания логики работы программы.

Для того чтобы выполнить программу в пошаговом режиме, нажмите «шаг без входа в подпрограмму» и перейдите в «локальные переменные».

факториал с одномерным массивом

const 
  MaxN = 300;

var
  A: array [0..MaxN] of integer;
  i, j, r, w, N: integer;

begin
  Write('Введите число, факториал которого необходимо подсчитать: ');
  Read(N);
  A[0] := 1;
  A[1] := 1; 
  j := 2; {Начальные присвоения, начинаем вычислять 2! }
  while (j <= N) and (A[0] < MaxN) Do {Второе условие 
  позволяет избежать выхода из границ диапазона, если 
  количество цифр в факториале превзойдет 300.}
  begin
    r := 0;
    i := 1;
    {r - перенос из разряда в разряд при
    выполнении умножения числа j на очередную цифру
    A[i] предыдущего результата.}
    while (i <= A[0]) or (r <> 0) Do 
    begin
      {Пока не
      «прошли» все цифры предыдущего результата или
      есть перенос цифры в старший разряд}
      w := A[i] * j + r;{Умножаем очередную цифру и
      прибавляем цифру переноса из предыдущего
      разряда}
      A[i] := w mod 10; {Оставляем остаток от деления на 10}
      r := w div 10;{Вычисляем значение переноса}
      if A[A[0] + 1] <> 0 then Inc(A[0]);{Изменяем 
      количество элементов, если их количество увеличилось.}
      Inc(i);
    end;
    Inc(j);
  end;
  write('Факториал: ');
  for i := A[0] downto 1 Do Write(A[i]);{Вывод результата}
end.

Подведем итоги:

Одномерный массив — это конечное упорядоченное множество элементов. За первым элементом идет второй, за вторым — третий и т. д. Индекс может быть чем угодно — и целым числом, и символом. Но чаще мы всё-таки будем пользоваться следующим диапазоном:  [1.. N].

На сегодня все! Если у вас еще остались вопросы о том, как работает программа выше, оставляйте их в комментариях. И очень скоро мы начнем решать задачи на массивы из задачника М. Э. Абрамяна.

Перейти к контенту

Вычислительная техника и дискретная математика

Найти произведение элементов одномерного массива, состоящего из 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.

Рейтинг

( Пока оценок нет )

Понравилась статья? Поделить с друзьями:

Не пропустите также:

  • Как исправить вмятину на коже
  • Как можно найти телефон через gps
  • Как составить благодарственную грамоту
  • Как найти погрешность линейки в физике
  • Как найди координаты вершины параболы через точки

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии