Автор | Помощь по теме цикличиских процессов. |
name program1;
var
s,i:integer;
begin
s:=0;
for i:=5 to 255 do
if i mod 2 = 0 then s:=s+i; //в этой строчке возможны ошибки в синтаксисе
end. |
для nesher1988:
Я бы решил через циклы, но если вам так легче, то конечно.
для башня007:
s = (A1+An)/2*n
А1 = 6
An = 254
n = (254 - 6)/2 = 248/2 = 124
Из первой формулы получается:
s = (6 + 254) / 2*124 = (260) / 248 = 1.04
сумма всех чётных чисел в интервале от 5 до 255 = 1.04
что за бред :) |
для apafeoz: если считать не по формуле и не по циклам, то как ещё я не знаю. Думаю рекурсивные функции это очень сложно для такого рода примера) |
для nesher1988:
Так а зачем это сравнение if i mod 2 = 0?
Не легче просто цикл с шагом 2 было сделать? |
для Йопсель:
Я думал об этом, но я не знаю, как сделать чтобы с каждым шагом прибавляемое увеличивалось на 2. У меня получается только чтобы сумма с каждым последующим шагом увеличивалась на 2. :( |
для Йопсель:
Так это цикл for здесь только на 1 можно увеличивать/уменьшать
Вот пример с циклом While
name program1;
var
s,i:integer;
begin
s:=0;
i:=6
while i<255 do
begin
s:=s+i;
i:=i+2;
end;
end. |
26+
i:=6;
Точку с запятой пропустил) |
Ну естественно для 21 и 26 решением является значение в переменной s.
Можно дописать перед последним эндом readln(s) |
s = (6 + 254) / 2*124 = (260) / 248 = 1.04
сумма всех чётных чисел в интервале от 5 до 255 = 1.04
что за бред :)
Конечно бред, если не иметь представления о приоритете арифметических операций :)
260/2*124 = 130*124 = 16120 |
для freddy_guarin:
Лажанул, во второй клас дорога мне. :(
Но всё равно в 2 способах описаных выше сумма получается 16250. |