For7. Даны два целых числа $$A$$ и $$B$$ ($$A < B$$). Найти сумму всех целых чисел от $$A$$ до $$B$$ включительно.
Решение:
1 2 3 4 5 6 7 8 9 10 11 12 |
program For7; var A,B,Sum, i:Integer; begin Write('Введите A: '); Readln(A); Write('Введите B: '); Readln(B); sum:=0; For i:=A to B do Sum:=Sum+i; Writeln(Sum); end. |
Другие задачи из раздела For можно посмотреть здесь.
Мой варик в догонку)
долго думал над этим решением… столько всего сразу.. несколько раз садился за ответ… но всё было не то настроение 🙂
начну с того что решение рабочее… но сильно запутанное… если его распутать то получиться решение в шапке 🙂
О чём это я 🙂
ну например k:=a; всё ок. Но зачем дальше :
a:=a+k+n;
логичнее k:=k+a+n;
Почему я считаю это логичнее? при таком подходе не меняется назначение переменной a. В вашем решении она из входных данных превратилась в сумму… притом всё равно нам пришлось использовать дополнительную переменную. Это при больших решениях может запутать.
И того получиться:
далее… есть такая весчь…
for i:=a+1 to b do
…
n:=n+1;
…
это у нас два счётчика… иногда конечно приходиться это делать, особенно когда второй счётчик отличается от первого методом увеличения числа.
А здесь получается счётчики дублируют друг друга.
то есть в этом выражении «k:=k+a+n;» n можно заменить на i-a
и получится k:=k+a+(i-a)
k:=k+a+i-a
k:=k+i;
На что бы это могло походить… а вот же Sum:=Sum+i; из моего примера в шапке…
Как я и обещал я довёл ваше решение до моего…
здравствуйте,а можно пожалуйста решение этой задачи операторов while
Здравствуйте. Можно и while, но это менее красиво 🙂 :