Страница 1 из 1

Глава 17, задача Е.

СообщениеДобавлено: 07.05.2014 17:23:21
Ariman
Напишите программу, вычисляющую сумму чисел от 1 до N , где N – число, вводимое пользователем.
Код: Выделить всё
var N : integer;
     i, sum : integer;
begin
     Write('Введите N '); Readln(N);
     sum:=0;
     for i:=1 to N do sum:= sum + i;
     Write('С = ',sum); Readln;
end.

Почему с маленькими числами все ок, а на 100, например, уже неправильный ответ?

Re: Глава 17, задача Е.

СообщениеДобавлено: 07.05.2014 17:36:10
Лекс Айрин
Скорее всего, выход за диапазон допустимых значений.
Пардон, я почему-то подумал, про факториал (((

ЗЫ: а почему вычисление идет не по формуле, а напрямую?

Re: Глава 17, задача Е.

СообщениеДобавлено: 07.05.2014 17:56:22
Дож
У меня правильный ответ
Код: Выделить всё
[doj@korica ~/temp]$ cat sum.pp
var N : integer;
     i, sum : integer;
begin
     Write('Введите N '); Readln(N);
     sum:=0;
     for i:=1 to N do sum:= sum + i;
     Write('С = ',sum); Readln;
end.
[doj@korica ~/temp]$ fpc sum.pp && ./sum
Введите N 100
С = 5050

Re: Глава 17, задача Е.

СообщениеДобавлено: 07.05.2014 21:02:48
Ariman
Лекс Айрин писал(а):а почему вычисление идет не по формуле, а напрямую?

По какой такой формуле? Поясните, пожалуйста. Я новичек еще.
P.S. Кстати, это код из книги с ответами.

Добавлено спустя 5 минут 7 секунд:
Дож писал(а):У меня правильный ответ

Извините, нашел у себя ошибку. Теперь все правильно.

Re: Глава 17, задача Е.

СообщениеДобавлено: 08.05.2014 09:22:55
Дож
По какой такой формуле? Поясните, пожалуйста. Я новичек еще.

Изображение

Re: Глава 17, задача Е.

СообщениеДобавлено: 08.05.2014 10:27:55
Лекс Айрин
Ariman писал(а):P.S. Кстати, это код из книги с ответами.


Решение в книге не обязательно единственно верное. В данном случае оно слишком ресурсоемкое. Вот я и спросил есть ли для этого причина.

Дож, именно эту формулу я и имел ввиду.

Re: Глава 17, задача Е.

СообщениеДобавлено: 08.05.2014 16:57:27
Oleg_D
Лекс Айрин писал(а):
Ariman писал(а):P.S. Кстати, это код из книги с ответами.

Решение в книге не обязательно единственно верное. В данном случае оно слишком ресурсоемкое. Вот я и спросил есть ли для этого причина.
Дож, именно эту формулу я и имел ввиду.

Всё так, но цель задания -- поупражняться в применении циклов. А по формуле легко проверяется результат.