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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.09.2009, 18:25   #1
Halifath
Пользователь
 
Регистрация: 01.09.2009
Сообщений: 11
По умолчанию Поднесение к степени

Уважаемые, подскажите. Можно ли как-то (возможно, формулой) написать программу для решения примера вида x в степени y, где икс и игрек не заранее прописаны, а могут быть введены абсолютно любые через оператор read? Я знаю, как решить такое именно через циклы (там элементарно), а без прибегания к циклам и постоянному повторению if (вернее, иф будет использоваться без сомнения, однако не примитивным перебором вида if y=2 then Write(x*x))?
Halifath вне форума Ответить с цитированием
Старый 01.09.2009, 18:29   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Пользуйтесь поиском. Обсуждалось миллион раз.
http://programmersforum.ru/showthread.php?t=4192
http://programmersforum.ru/showthread.php?t=39639
http://programmersforum.ru/showthread.php?t=53950
и куча других.

Степень ищется через логарифмы.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 01.09.2009, 20:50   #3
Halifath
Пользователь
 
Регистрация: 01.09.2009
Сообщений: 11
По умолчанию

Не совсем то. Другие ответы тоже просмотрел. Конкретизирую: решение должно быть без экспонент и логарифмов. Использовать можно +-*abs, mod
Основание - число типа real. Может быть и положительным, и отрицательным. Степень - целое число, которое также может быть и отрицательным, и положительным.
Halifath вне форума Ответить с цитированием
Старый 01.09.2009, 21:05   #4
ОДИНОЧЕСТВО В СЕТИ
Любопытная Вредина
Участник клуба
 
Аватар для ОДИНОЧЕСТВО В СЕТИ
 
Регистрация: 19.06.2009
Сообщений: 1,285
По умолчанию

так пойдет
Код:
 function _Power(const x,y:real):real; //x>0!
asm
  fld y
  fld x
  fyl2x
  fld st(0)
  frndint
  fsubr st(0),st(1)
  f2xm1
  fld1
  faddp
  fscale
  fxch st(1)
  fstp st
 end;
Дурь - это особая форма материи, которая не возникает ниоткуда и не исчезает никуда, а лишь переходит из одной головы в другую.
ОДИНОЧЕСТВО В СЕТИ вне форума Ответить с цитированием
Старый 01.09.2009, 21:49   #5
sheka
Босс
Форумчанин
 
Аватар для sheka
 
Регистрация: 03.06.2009
Сообщений: 125
По умолчанию

можна использовать рекурсию. (только для натуральных у)
Код:
uses crt;

function power(x:real;y:integer):real;
begin
  if y=1 then power:=x
  else power:=power(x,y-1)*x;
end;

begin
  clrscr;
  writeln(power(2.888,5):0:8);readln;
end.
Подходит?

Две одинаковые вложенные ошибки называются четной ошибкой и ошибкой не являются.
Ася 255507394. Отзывы здесь.

Последний раз редактировалось sheka; 01.09.2009 в 21:51.
sheka вне форума Ответить с цитированием
Старый 02.09.2009, 09:16   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

ОДИНОЧЕСТВО В СЕТИ, сомневаюсь, что TC Ваше решение подойдёт, но прикольно! (и, что характерно, условиям задачи, имхо, соответствует )

sheka, 1) а зачем рекурсия, когда тут и обычный цикл вполне даже подойдёт!
сорри!! Понял, зачем... по условию задачи автор хочет без циклов обойтись.


2) не проверяется нулевая степень
3) и, главная ошибка/недочёт данного решения, - не проверяются отрицательные значения степени (программа уйдёт в бесконечный цикл)

Halifath - цикл то сами сможете написать?! и ещё, без операции деления, по моему, не решается - отрицательную степень - это 1/(число в abs(степени)), не взять...

Последний раз редактировалось Serge_Bliznykov; 02.09.2009 в 09:43.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 02.09.2009, 09:21   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
а без прибегания к циклам
А чем циклы то не устраивают?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 02.09.2009, 09:45   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Stilet
А чем циклы то не устраивают?
+1

Halifath, действительно, чем циклы не угодили? Какую Вы задачу перед собой поставили - решить что-то не используя стандартные средства? Типа головоломка для программиста?
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Решение полинома n-ой степени(регрессия) Angel-A Microsoft Office Excel 3 08.06.2009 11:22
корни уравнений n-й степени Delphi\C++ chandler Помощь студентам 7 14.05.2009 03:21
записать в Delphi 2 в степени 2.5 Godless Помощь студентам 1 03.12.2008 17:43
C# - корень 3 степени TaTT DoGG Общие вопросы .NET 4 26.09.2008 21:53
Число в степени vItal87ka Паскаль, Turbo Pascal, PascalABC.NET 12 12.01.2008 08:21