Другие языки программирования и технологии

Проверьте программу на языке Pascal

Сумма кубов указанных чисел гарантированно не уместится в типе integer.
101^3 уже 1030301, а в integer умещается максимум 32767, если вы, конечно, не в Delphi пишете. Там в integer умещается максимальное число 2147483647.
И вы не суммируете кубы чисел, а просто их считаете.
var
i: integer;
sum:longint;
begin
sum:=0;
for i:=1 to 101 do
if i mod 2 = 1 then
sum := sum + i * i * i;
writeln('Сумма кубов нечетных чисел: ', sum);
readln;
end.
----------------------
> А если так?
> if (i div 2) <> 0 then
А так вы не сможете проверить на чётность/нечётность. И просуммируете все числа от 2 до 101.
D*
Dem'yan ***
51 590
Лучший ответ
Если вам надо проверять на нечетность, то делите на 2.

if i mod 2 = 1 then ...

А еще сумму нечетных можно посчитать как сумму арифметической прогрессии с первым членом 1 и шагом 2. Почитайте, например, это http://ru.wikipedia.org/wiki/Арифметическая_прогрессия
И почему все забывают про стандартную функцию проверки нечетности odd ?
Но в данном случае проверять нечетность вообще не надо.
Gennady, надо считать не сумму нечетных, а сумму кубов нечетных :(
Миоко, longint нужно и для вычисления i*i*i ;) Тип результата операции определяется наиболее общим из типов операндов, автоматически он не расширяется.

var i,s:longint;
begin s:=0; for i:=0 to 50 do s:=s+(2*i+1)*(2*i+1)*(2*i+1); writeln(s); readln end.

Или, если вам обязательно надо использовать условный оператор,

var i,s:longint;
begin s:=0; for i:=1 to 101 do if odd(i) then s:=s+i*i*i; writeln(s); readln end.

Или промежуточный вариант

var i,s:longint;
begin s:=0; for i:=1 to 101 do s:=s+ord(odd(i))*i*i*i; writeln(s); readln end.

:)
P.S. Я вообще не понимаю, зачем в школах учат программированию? Школьник принципиально не может написать даже простейшую программу правильно. Не говоря уже о программах реального значения.
Руслан Шкляров
Руслан Шкляров
32 266
Первая правельна за исключением одного: не inc(sum); , a sum:= sum + i*i;
а так все правельно
Антон Пинигин
Антон Пинигин
1 018