Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.11.2017, 19:08   #1
ParkerVans
Пользователь
 
Регистрация: 22.10.2017
Сообщений: 25
По умолчанию Проверьте решение. Дан целочисленный массив, вычислить S= b1+ b2^2 + . + bn^n - PascalABC.NET

Здравствуйте! Проверьте пожалуйста решение задачи. ( Процедуры)
Дан целочисленный массив {bi}, i = 1, 2, ... , n. Вычислить S= b1+ b2^2 + ... + bn^n

Код:
program summa;
type mass=array[1..20] of integer;
var s,n,i:integer;
x:mass;
procedure sum (m:integer;y:mass; var ss:integer);
var i:integer;
begin
     ss:=y[1];//первый элемент массива ss
     for i:=1 to m do 
     ss:=ss+y[i]*y[i]//вычисление суммы 
     end;
begin
write ('Введите количество элементов массива=');
read(n);
write('Введите целых чисел - элементов массива =');
for i:=1 to n do read (x[i]);
sum (n,x,s);
write (s)
end.
ParkerVans вне форума Ответить с цитированием
Старый 01.11.2017, 19:35   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Код:
procedure sum (m:integer;y:mass; var ss:integer);
var i:integer;
begin
     ss:=0;
     for i:=1 to m do 
        ss:=ss+trunc(Power(y[i],i)); //вычисление суммы 
end;

Последний раз редактировалось Serge_Bliznykov; 01.11.2017 в 20:17. Причина: преобразование типа Real к Integer
Serge_Bliznykov вне форума Ответить с цитированием
Старый 01.11.2017, 19:48   #3
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

А лучше так:
Код:
procedure sum (m:integer;y:mass; var ss:integer);
var i,t:integer;
   
begin
     t:=1;
     ss:=0;
     for i:=1 to m do 
      begin
        t:=t*y[i];
        ss:=ss+t;
      end;
end;
type_Oleg вне форума Ответить с цитированием
Старый 01.11.2017, 20:16   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от type_Oleg Посмотреть сообщение
А лучше так:
неверно.
попробуйте, например, проверить для 1,2,3

результат = 1+ 2^2 + 3^3 =1+ 4 + 27 = 32.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 01.11.2017, 20:18   #5
ParkerVans
Пользователь
 
Регистрация: 22.10.2017
Сообщений: 25
По умолчанию

Нужно чтобы степень увеличивалась с каждым очередным слагаемым. Например вводишь массив {1,2,3,4}. Первый элемент массива в данном случае (1) остается в первой степени, второй элемент массива (2) возводится во вторую степень, третий элемент массива (3) возводится в третью степень, четвертый элемент массива возводится в четвертую степень (т.е. степень увеличивается с очередным слагаемым). Вычисление суммы этого массива по калькулятору равняется 288.
ParkerVans вне форума Ответить с цитированием
Старый 02.11.2017, 10:05   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от ParkerVans Посмотреть сообщение
Нужно чтобы степень увеличивалась с каждым очередным слагаемым.
я написал решение. см. пост #2

можно обойтись без функции Power, заменив её умножением в цикле.
это не сложно.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 02.11.2017, 11:05   #7
Plague
Забанен
Форумчанин Подтвердите свой е-майл
 
Аватар для Plague
 
Регистрация: 01.11.2006
Сообщений: 420
По умолчанию

Код:
begin
  var b:=ReadArrInteger('Введите значения элементов массива: ',
                        ReadInteger('Введите количество элементов массива: '));
  Print(b.Select((b, i)-> Power(b, i + 1)).Sum)
end.
Если ничто другое не помогает, прочтите, наконец, инструкцию! Аксиома Кана
Plague вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дан целочисленный массив {bi}, i = 1, 2, ... , n. Вычислить S= b1+ b2^2 + ... + bn^n ParkerVans Паскаль, Turbo Pascal, PascalABC.NET 2 26.10.2017 18:15
Проверьте решение задачи: Дан массив. Получить новый массив, выбросив из исходного массива все члены со значением max(а1 ,а2 , ... , аn). Определить число элементов нового массива. ParkerVans Паскаль, Turbo Pascal, PascalABC.NET 5 23.10.2017 19:03
Дан одномерный массив чисел. Определите сумму его элементов(PascalABC.net) Godnub Помощь студентам 3 29.11.2016 16:55
Дан целочисленный массив A(N) manyhin Помощь студентам 5 03.04.2015 09:31
Проверьте задачку с While...Do. В PascalABC.Net AntoshkaK Паскаль, Turbo Pascal, PascalABC.NET 0 21.12.2011 17:33