Главная страница
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.041 c
3-1121248213
linesoft
2005-07-13 13:50
2005.08.21
Отладчик процедур MS SQL


1-1122973306
Bless
2005-08-02 13:01
2005.08.21
Удаление страницы из Excel


1-1122642655
mazepa
2005-07-29 17:10
2005.08.21
excell


14-1122546675
BorisMor
2005-07-28 14:31
2005.08.21
произносим VCL


4-1120018732
leonidus
2005-06-29 08:18
2005.08.21
Как отследить момент отпускания левой клавиши мыши?