| 
| 
 | Вопрос # 4 389/ вопрос открыт / | 
 |  Здравствуйте, эксперты!такая вот тема мжки.
 
 есть число Х > 10(6)
 надо найти его по формуле У(2)+1.
 далее идет цикл: вместо У возводиться в квадрат уже (У(2)+1),
 потом возводиться то что получилсь и т.д. - до Х.
 как написать такой цикл??
 
 я написал по другому: здесь возводиться в квадрат увеличивающийся на ед-цу У
 Приложение:Переключить в обычный режим procedure TForm1.Button1Click(Sender: TObject);var x: double;   a: integer;begin      a:=0;    while x <= 1000000 do     begin    Inc(a);    x:= power(pred(a), 2)+1;    end;    Label1.Caption:= 'x = ' +floattostr(x);end; end.
|  |   Вопрос задал: габибыч (статус: Заблокирован)Вопрос отправлен: 6 июля 2010, 18:45
 Состояние вопроса: открыт, ответов: 0.
 |  
 Мини-форум вопросаВсего сообщений: 32; последнее сообщение — 6 июля 2010, 22:49; участников в обсуждении: 4. Страницы: [1] [2] [Следующая »]  
|   | 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™ (статус: Доктор наук), 6 июля 2010, 21:36 [#6]:Нихрена непонятно. Если надо найти Х, то чему должен быть равен Y? Если нужно вычислить Х рекуррентно, давай формулу рекуррентности.
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | габибыч (статус: Заблокирован), 6 июля 2010, 21:41 [#7]:условие задачи: Число А возводят в квадрат и результат увеличивают на 1.Полученное число снова возводят в квадрат и результат увеличивают на 1.Этот процесс прдолжается до тех пор, пока не будет получено число Х, больше миллиона.Найдите число Х.
 |  
|   | 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™ (статус: Доктор наук), 6 июля 2010, 22:03 [#11]: Цитата (габибыч): я задачу с инета скачал. Скопируй сюда оригинальный текст задачи.
 А то мне телепатор за неуплату отключили.
 Никак не пойму, чего ты хочешь добиться и для чего всё это надо!
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | 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 (статус: 2-ой класс), 6 июля 2010, 22:13 [#14]:Если это оригинальный текст задачи, тогда мое решение должно быть верным. |  
|   | габибыч (статус: Заблокирован), 6 июля 2010, 22:13 [#15]:IlluminatI, не то. получается - 210066388901  _)
 |  
|   | 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 (статус: 2-ой класс), 6 июля 2010, 22:15 [#18]:Ничо не понял. А сколько должно получится? Опиши A как Int64, возможно просто за диапазон вылетело. |  
|   | IlluminatI (статус: 2-ой класс), 6 июля 2010, 22:16 [#19]:>> в задаче переменная обращается к себе пока не станет больше 1000000 
 Дык у меня так и написано, так то.
 |  
|   | габибыч (статус: Заблокирован), 6 июля 2010, 22:20 [#20]:А и Х описываю как Double. иначе компилятор кусается ( не совместимые типы integer и extended)
 |  Страницы: [1] [2] [Следующая »]  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |