Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.08.21;
Скачать: CL | DM;

Вниз

Вычислить сумму   Найти похожие ветки 

 
BrenD   (2005-07-28 14:20) [0]

Уважаемые мастера, каким, наиболее рациональным, методом можно вычислить сумму у выражения такого типа:
S:=(x*2-1*x )+(x*4-2*x)+(x*6-3*x)+...(x*40-20*x) - ?, где X - задает пользователь по своему усмотрению.


 
Nikolay M. ©   (2005-07-28 14:24) [1]

Гы :)))
Вынести х за скобки, посчитать сумму 1+2+..+20 (=210). Получаем S:=x*210 :)))


 
Ega23 ©   (2005-07-28 14:25) [2]

S:=210*x;


 
BrenD   (2005-07-28 14:31) [3]

Как будет выглядеть строка цикла, в котором будут происходить вычисления суммы?


 
Алхимик ©   (2005-07-28 14:42) [4]

В виде цикла:
s := 0;
for i := 1 to 20 do begin
   s := s + (x*i*2 - x*i);
end;

Но настоящие джедаи любят оптимизировать, см. [1]


 
Ega23 ©   (2005-07-28 14:45) [5]

2 Алхимик ©   (28.07.05 14:42) [4]

В виде цикла:
s:=0;
i:=1 to 20 do s:=s+i;
s:=s*x;

:о)


 
Floppy ©   (2005-07-28 14:53) [6]

S:= X*(N*(N + 1))/2;
где, в частном случае = 20


 
Floppy ©   (2005-07-28 14:54) [7]

Это, если цикл не обязателен:))


 
BrenD   (2005-07-28 15:46) [8]


> В виде цикла:
> s := 0;
> for i := 1 to 20 do begin
>    s := s + (x*i*2 - x*i);
> end;
> Но настоящие джедаи любят оптимизировать, см. [1]

В первом случае переменная i, изменяется с шагом +2, следовательно, цикл FOR не подходит.


 
Nikolay M. ©   (2005-07-28 16:07) [9]


> BrenD   (28.07.05 15:46) [8]
>
> > В виде цикла:
> > s := 0;
> > for i := 1 to 20 do begin
> >    s := s + (x*i*2 - x*i);
> > end;
> > Но настоящие джедаи любят оптимизировать, см. [1]
>
> В первом случае переменная i, изменяется с шагом +2, следовательно,
> цикл FOR не подходит.

Ууу... Как все запущенно :(


 
BrenD   (2005-07-28 16:22) [10]


> Ууу... Как все запущенно :(

?


 
Nikolay M. ©   (2005-07-28 16:30) [11]


> BrenD

Я, правда, жевать за других не люблю, но раз уж начал учайствовать... Если нек. переменная, скажем, i, принимает значения с шагом 1, то величина i*2 принимает значения с шагом 2, i*3 - с шагом 3 и тд. Что тебе и написали:

> for i := 1 to 20 do begin
>    s := s + (x*i*2 - x*i);
> end;


 
Floppy ©   (2005-07-28 16:38) [12]

BrenD
Ты о чем?, у тебя сумма:
x + 2x + 3x + 4x + ... + 20x
x выносишь за скобки, получаешь:
(1 + 2 + 3 + ... + N)*X
в скобках обыкновенная арифметическая прогрессия с суммой равной N*(N + 1) см. Floppy ©   (28.07.05 14:53) [6]
Постарайся не мучить форумчан и себя:)


 
Nikolay M. ©   (2005-07-28 17:04) [13]


> Floppy ©   (28.07.05 16:38) [12]

Он циклом хочет :)


 
Алхимик ©   (2005-07-28 17:07) [14]

И без всяких там, вынесений, за скобочку, пАнимешь...



Страницы: 1 вся ветка

Текущий архив: 2005.08.21;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.042 c
4-1120202185
Mishenka
2005-07-01 11:16
2005.08.21
Как иконке в трее добавить PopupMenu?


1-1122974812
kyn66
2005-08-02 13:26
2005.08.21
Listbox с разными картинками из TImageList


14-1122461517
dreamse
2005-07-27 14:51
2005.08.21
Программа для автоматического добавления софта в каталоги


14-1122458670
Piter
2005-07-27 14:04
2005.08.21
ГАИ и Украина


3-1120751559
Alex77777
2005-07-07 19:52
2005.08.21
Поиск значения при вводе