Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Delphi > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail


Ответ
 
Опции темы
Старый 07.10.2011, 16:34   #1
Horatii
Новичок
Джуниор
 
Регистрация: 07.10.2011
Сообщений: 5
Сообщение Циклы (разложить число в ряд суммы квадратов)

Привет всем!!!
ну у мну такой вопрос
дается 1^2+2^2+3^2+4^2+..+n^2
1 + 4 + 9 + 16 +...+n
5 14 30 n
чтобы программе дал назад 4 уровни (1 4 9 16)

я вот так подумал но не работает

program p1;
var a,b,c,d:integer;
begin
readln(a);
for i:=1 to n do
while b:=a do
b:=b+sqr(i+1);
write (i);
end. {не работает пробовал и с инструкцией repeat тоже что то не то}
Дал а:=30 а программа написала 4(1 + 4 + 9 + 16)
Дал а:=14 а программа написала 3(1 + 4 + 9 )

Последний раз редактировалось Horatii; 07.10.2011 в 16:40.
Horatii вне форума Ответить с цитированием
Старый 07.10.2011, 16:37   #2
Alex11223
Заблокирован
 
Регистрация: 12.01.2011
Сообщений: 19,503
По умолчанию

Вопрос-то где? Не понял, что вы хотите сделать.
Alex11223 вне форума Ответить с цитированием
Старый 07.10.2011, 17:04   #3
Horatii
Новичок
Джуниор
 
Регистрация: 07.10.2011
Сообщений: 5
По умолчанию

Чтобы программа дала мне уровни если а:=5 то тут 2 уровня
и без case
Horatii вне форума Ответить с цитированием
Старый 07.10.2011, 17:12   #4
Alex11223
Заблокирован
 
Регистрация: 12.01.2011
Сообщений: 19,503
По умолчанию

Что такое уровни?оО
Члены этой последовательности от 1 до а? А зачем тогда n?
Alex11223 вне форума Ответить с цитированием
Старый 07.10.2011, 17:25   #5
JUDAS
фонатик DELPHI
Форумчанин
 
Аватар для JUDAS
 
Регистрация: 14.01.2008
Сообщений: 708
По умолчанию

Код:
program Project5;
var i,a,d :integer;
    r   : string;
begin
 readln(a);
 i:=1;
 r:='';
 repeat
  d:=sqr(i);
  A:=A-d;
  r:=r+str(d)+' ';
  inc(i);
 until sqr(i)>a;
 write (r);
end.
Но если я дам значение которое не разбивается на сумму квадратов, то переменна а будет содержать остаток.
Например А=32 даст (1+4+9+16) и остаток 2
95% сбоев и ошибок приложений, находится в полу метрах от монитора
JUDAS вне форума Ответить с цитированием
Старый 08.10.2011, 09:49   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,260
По умолчанию

мне понравилось решение от JUDAS

но там маленькая ошибочка - STR - это не функция, а процедура.
вот исправленное решение (ну плюс ещё добавил вывод то, что автор темы называет "уровнем")
Код:
program Project5;
var i,a,d :integer;
    r, sD   : string;
begin
 readln(a);
 i:=1;
 r:='';
 repeat
  d:=sqr(i);
  A:=A-d;
  str(d, sD);
  if length(r)=0 then r := sD
  else r:=r + ' + ' + sD;
  inc(i);
 until sqr(i)>a;
 writeln (i,' ('+r+')' );
 if A<>0 then Writeln('Внимание. число A не разбивается нацело!');
 readln
end.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 08.10.2011, 10:20   #7
Horatii
Новичок
Джуниор
 
Регистрация: 07.10.2011
Сообщений: 5
По умолчанию

Большое спасибо !!!
Horatii вне форума Ответить с цитированием
Старый 08.10.2011, 11:31   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,840
По умолчанию

Цитата:
но там маленькая ошибочка - STR - это не функция, а процедура.
Ну и нужна она тут?
Код:
program Project5;
var i,a,d :integer;
    r   : string;
begin
 readln(a);
 i:=1;
 r:='';
 repeat
  d:=sqr(i);
  A:=A-d;
  write (d:5);
  inc(i);
 until sqr(i)>a;
 writeln;readln;
end.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 08.10.2011, 11:57   #9
JUDAS
фонатик DELPHI
Форумчанин
 
Аватар для JUDAS
 
Регистрация: 14.01.2008
Сообщений: 708
По умолчанию

Цитата:
но там маленькая ошибочка - STR - это не функция, а процедура.
Серж, спорить не стану !
Все паскалевские задачи отлаживаю в 7-м делфи в консольном режиме )))
Знаю что в Паскале нет IntToSTr )))
95% сбоев и ошибок приложений, находится в полу метрах от монитора
JUDAS вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
sh(х) разложить в ряд Тейлора Litoi Помощь студентам 5 26.09.2011 21:16
Разложить число на цифры Dog Помощь студентам 10 09.05.2011 12:16
Разложить в ряд arcsin. FPU smalsvoloch Общие вопросы C/C++ 0 28.10.2010 20:57
число в виде суммы квадратов натуральных чисел gambuz Паскаль, Turbo Pascal, PascalABC.NET 0 04.10.2010 11:07
Дано натуральное число n. Можно ли представить его в виде суммы двух квадратов натуральных чисел? Сеня Помощь студентам 3 29.01.2009 02:17