Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.06.2009, 03:01   #1
Sarumjan
Пользователь
 
Аватар для Sarumjan
 
Регистрация: 29.11.2008
Сообщений: 46
Восклицание Проблема с кешырованием в паскале

Вот условие: Дано натуральное число n. Вычислить сумму тех чисел вида i*i*i-3*i*n*n+n (i=1,2,3,4,...,n) что представляют собой утроеные нечетные числа.

вот сам код рабочей програмы
Код:
program bl;
uses crt;
var i,n,s,g:integer;
k:char;
begin
repeat
clrscr;
write('vvedite N:  ');
readln(n);
for i:=1 to n do
g:=0;
g:=(i*i*i)-(3*i*(n*n))+n;
if (odd(g)=True) and(g mod 3=0) then s:=s+g;
write(s);
writeln;
writeln('Xotite povtorit? y/n ');
readln(k);
until k='n';
end.
Проблема в том што когда я ввожу N, оно щитает все правильно, а дальше я жму повторить, и делаю все тоже самое, дак оно выводить не результат етого подщета, а сумирует предыдущий результат с новым, мне нада штоб оно не брало результат прошлых подщетов и не прибавляло к новым.
Все ошыбки, являются собственностью автора.
Copyright © 1990-2009
Мой проект
Sarumjan вне форума Ответить с цитированием
Старый 08.06.2009, 03:27   #2
Evgeniy26
Форумчанин
 
Аватар для Evgeniy26
 
Регистрация: 29.05.2009
Сообщений: 384
По умолчанию

Обнулите s:
Код:
program bl;
uses crt;
var i,n,s,g:integer;
k:char;
begin
repeat
s := 0;
clrscr;
write('vvedite N:  ');
readln(n);
for i:=1 to n do
g:=0;
g:=(i*i*i)-(3*i*(n*n))+n;
if (odd(g)=True) and(g mod 3=0) then s:=s+g;
write(s);
writeln;
writeln('Xotite povtorit? y/n ');
readln(k);
until k='n';
end.
Что вы тут делаете n - ое число раз обнуляете g:
Код:
for i:=1 to n do
g:=0;
g:=(i*i*i)-(3*i*(n*n))+n;

Последний раз редактировалось Evgeniy26; 08.06.2009 в 03:46.
Evgeniy26 вне форума Ответить с цитированием
Старый 08.06.2009, 03:44   #3
Sarumjan
Пользователь
 
Аватар для Sarumjan
 
Регистрация: 29.11.2008
Сообщений: 46
По умолчанию

А точно, пропустил, сенк.
Все ошыбки, являются собственностью автора.
Copyright © 1990-2009
Мой проект
Sarumjan вне форума Ответить с цитированием
Старый 08.06.2009, 03:49   #4
Evgeniy26
Форумчанин
 
Аватар для Evgeniy26
 
Регистрация: 29.05.2009
Сообщений: 384
По умолчанию

Это
Код:
for i:=1 to n do
g:=0;
g:=(i*i*i)-(3*i*(n*n))+n;
Все равно что
Код:
for i:=1 to n do
g:=0;
g:=(n*n*n)-(3*n*(n*n))+n;
и
Код:
for i:=1 to n do
g:=(n*n*n)-(3*n*(n*n))+n;
и
Код:
g:=(n*n*n)-(3*n*(n*n))+n;
Evgeniy26 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с модулем в паскале deu4er Помощь студентам 5 04.04.2009 19:40
Проблема ограниченности переменных в Паскале Вадим Буренков Паскаль, Turbo Pascal, PascalABC.NET 28 13.03.2009 22:50
Проблема с графикой в Паскале... bygoga Паскаль, Turbo Pascal, PascalABC.NET 3 20.12.2008 09:55
Проблема с масивом в Паскале SeRhy Помощь студентам 2 15.11.2007 20:54