Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 4 389

/ вопрос открыт /

Здравствуйте, эксперты!
такая вот тема мжки.

есть число Х > 10(6)
надо найти его по формуле У(2)+1.
далее идет цикл: вместо У возводиться в квадрат уже (У(2)+1),
потом возводиться то что получилсь и т.д. - до Х.
как написать такой цикл??

я написал по другому: здесь возводиться в квадрат увеличивающийся на ед-цу У

Приложение:
  1. procedure TForm1.Button1Click(Sender: TObject);
  2. var x: double;
  3. a: integer;
  4. begin
  5. a:=0;
  6. while x <= 1000000 do
  7. begin
  8. Inc(a);
  9. x:= power(pred(a), 2)+1;
  10. end;
  11. Label1.Caption:= 'x = ' +floattostr(x);
  12. end;
  13.  
  14. end.


габибыч Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: габибыч (статус: Заблокирован)
Вопрос отправлен: 6 июля 2010, 18:45
Состояние вопроса: открыт, ответов: 0.


Мини-форум вопроса

Всего сообщений: 32; последнее сообщение — 6 июля 2010, 22:49; участников в обсуждении: 4.

Страницы: [1] [2] [Следующая »]

min@y™

min@y™ (статус: Доктор наук), 6 июля 2010, 20:32 [#1]:

У(2) - это случайно не Y2?
Если X = Y2 + 1, надо найти что? Y?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
габибыч

габибыч (статус: Заблокирован), 6 июля 2010, 21:00 [#2]:

да это Y в квадрате.
найти надо Х.
ход цикла такой: сначала Y возводиться в квадрат, прибавляем 1, потом вот этот получившийся результат возводим в квад. и опять прибавляем 1 и т.д.
никак не могу продумать запись этого цикла..
Кириченко Сергей

Кириченко Сергей (статус: 1-ый класс), 6 июля 2010, 21:13 [#3]:

Возможно нужно сделать так :
x:=1;
while x <= 1000000 do
begin
x:=x*x+1;
end;
габибыч

габибыч (статус: Заблокирован), 6 июля 2010, 21:15 [#4]:

ok, щас проверим..
габибыч

габибыч (статус: Заблокирован), 6 июля 2010, 21:21 [#5]:

блин, кажется не то....
в условии цикла Х до 10(6) доходит, а его квадрат вообще в небесах..
получается Х = 176771162
min@y™

min@y™ (статус: Доктор наук), 6 июля 2010, 21:36 [#6]:

Нихрена непонятно.
Если надо найти Х, то чему должен быть равен Y? Если нужно вычислить Х рекуррентно, давай формулу рекуррентности.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
габибыч

габибыч (статус: Заблокирован), 6 июля 2010, 21:41 [#7]:

условие задачи:
Число А возводят в квадрат и результат увеличивают на 1.Полученное число снова возводят в квадрат и результат увеличивают на 1.Этот процесс прдолжается до тех пор, пока не будет получено число Х, больше миллиона.Найдите число Х.
min@y™

min@y™ (статус: Доктор наук), 6 июля 2010, 21:50 [#8]:

Ты уверен, что число А надо возводить в квадрат? Может, всё-таки, Y?
Если на текущей итерации мы в X не попадаем, а получившееся число > X, тогда что?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
габибыч

габибыч (статус: Заблокирован), 6 июля 2010, 21:55 [#9]:

А, Y, X это просто обозначения (называй как хочешь).
незнаю, я задачу с инета скачал.
главное идея. можно ли вообще такую задачу решить?

думаю должен быть break или exit, если число будет > X
габибыч

габибыч (статус: Заблокирован), 6 июля 2010, 21:56 [#10]:

там второго числа и нет (как я понимаю).
просто число по какой то схеме увеличивается и не должно выходить за 1000000
min@y™

min@y™ (статус: Доктор наук), 6 июля 2010, 22:03 [#11]:

Цитата (габибыч):

я задачу с инета скачал.

Скопируй сюда оригинальный текст задачи.
А то мне телепатор за неуплату отключили.
Никак не пойму, чего ты хочешь добиться и для чего всё это надо!
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
IlluminatI

IlluminatI (статус: 2-ой класс), 6 июля 2010, 22:07 [#12]:

Если я правильно понял условие, то код будет предельно простым:

 a:=1; // про исходное значение A не сказано, пусть будет 1
 while a < 1000000 do
  a:=power((power(a, 2) + 1), 2) + 1;
 // т.е формула: A = (A^2 + 1)^2 + 1 
 // выводим A куда надо. Power() - возведение в степень
 // + уточни условие, < или <=
габибыч

габибыч (статус: Заблокирован), 6 июля 2010, 22:09 [#13]:

оригинальный текст задачи:
Число А возводят в квадрат и результат увеличивают на 1.Полученное число снова возводят в квадрат и результат увеличивают на 1.Этот процесс прдолжается до тех пор, пока не будет получено число Х, больше миллиона.Найдите число Х.

а добиться хочу - просто решить _)
надо, чтобы логику програмирования таким образом узнать что ли (на разных примерах).
вручную могу - это ряд (в каком то сходящийся)
представить это в Делфи не совсем получается
IlluminatI

IlluminatI (статус: 2-ой класс), 6 июля 2010, 22:13 [#14]:

Если это оригинальный текст задачи, тогда мое решение должно быть верным.
габибыч

габибыч (статус: Заблокирован), 6 июля 2010, 22:13 [#15]:

IlluminatI, не то.
получается - 210066388901 _)
IlluminatI

IlluminatI (статус: 2-ой класс), 6 июля 2010, 22:15 [#16]:

А нет. Немного не так. X считывается с клавиатуры? если да, тогда:

 readln(x);
 if  x > 1000000 then 
  begin
   a:=1;
   while a <= x do
     a:=power((power(a, 2) + 1), 2) + 1;
  end
 else writeln('X меньше миллиона');
габибыч

габибыч (статус: Заблокирован), 6 июля 2010, 22:15 [#17]:

min@y, по моему прав (рекурентно надо решить)
в задаче переменная обращается к себе пока не станет больше 1000000
IlluminatI

IlluminatI (статус: 2-ой класс), 6 июля 2010, 22:15 [#18]:

Ничо не понял. А сколько должно получится? Опиши A как Int64, возможно просто за диапазон вылетело.
IlluminatI

IlluminatI (статус: 2-ой класс), 6 июля 2010, 22:16 [#19]:

>> в задаче переменная обращается к себе пока не станет больше 1000000

Дык у меня так и написано, так то.
габибыч

габибыч (статус: Заблокирован), 6 июля 2010, 22:20 [#20]:

А и Х описываю как Double. иначе компилятор кусается
( не совместимые типы integer и extended)

Страницы: [1] [2] [Следующая »]

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:59
Выполнено за 0.03 сек.