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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.10.2009, 21:08   #1
anksunamun
Пользователь
 
Регистрация: 16.10.2009
Сообщений: 12
По умолчанию х в степени н

в паскале нужно сделать программу: вычислить у=х в степени н, где н - целое число.
вот что получилось у меня:
var
n,i:integer;
x,y:real;
BEGIN
writeln('Vvedite chislo x');
readln(x);
writeln('Vvedite stepen n');
readln(n);
y:=x;
for i:=1 to (n-1) do
begin
y:=y*x;
end;
writeln(y);
END.

но так не получается, если степень минусовая. подскажите, что сделать, чтобы программа работала с любой степенью
anksunamun вне форума Ответить с цитированием
Старый 16.10.2009, 21:19   #2
redeezko
Пользователь
 
Аватар для redeezko
 
Регистрация: 16.10.2009
Сообщений: 16
По умолчанию

если степень минусовая то считаешь также, только y присваиваешь y:=1/y*x
redeezko вне форума Ответить с цитированием
Старый 16.10.2009, 21:30   #3
anksunamun
Пользователь
 
Регистрация: 16.10.2009
Сообщений: 12
По умолчанию

спасибо большое
anksunamun вне форума Ответить с цитированием
Старый 16.10.2009, 21:43   #4
anksunamun
Пользователь
 
Регистрация: 16.10.2009
Сообщений: 12
По умолчанию

ой, что-то я туплю. вроде поставила
if i>=0 then
y:=y*x
else
y:=1/(y*x);
а он возвращает то же значение, не возведя его ни в какую степень..(
где у меня ошибка?
anksunamun вне форума Ответить с цитированием
Старый 16.10.2009, 21:57   #5
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,547
По умолчанию

5^0=1, а у вас получится в ответе 5.
Arigato вне форума Ответить с цитированием
Старый 16.10.2009, 22:10   #6
Greblin
Меркантильный кю
Участник клуба
 
Аватар для Greblin
 
Регистрация: 02.02.2008
Сообщений: 1,001
По умолчанию

Цитата:
Сообщение от redeezko Посмотреть сообщение
если степень минусовая то считаешь также, только y присваиваешь y:=1/y*x
Я конечно извиняюсь за резкие слова, но желательно всё таки немного подумать, прежде чем писать ответ. Начальное значение y = x. После первой итерации Вашего цикла y = 1/x*x = 1, после второй y = 1/1*x = x и т.д.

anksunamun
Измените Ваше решение следующим образом:
Код:
y:=1;
for i:=1 to abs(n) do
begin
y:=y*x;
end;
if n < 0 then y := 1 / y;
writeln(y);
Так работает правильно и для n = 0
Росли вроде умными, выросли дурнями... (c)А.Васильев
Greblin вне форума Ответить с цитированием
Старый 16.10.2009, 22:11   #7
anksunamun
Пользователь
 
Регистрация: 16.10.2009
Сообщений: 12
По умолчанию

у меня слишком широкий угол зрения, объясните, пожалйуста, поострее)
anksunamun вне форума Ответить с цитированием
Старый 16.10.2009, 22:25   #8
anksunamun
Пользователь
 
Регистрация: 16.10.2009
Сообщений: 12
По умолчанию

спасибо за объяснение
anksunamun вне форума Ответить с цитированием
Старый 16.10.2009, 22:33   #9
anksunamun
Пользователь
 
Регистрация: 16.10.2009
Сообщений: 12
По умолчанию

да, теперь всё ок. всех благодарю
anksunamun вне форума Ответить с цитированием
Старый 23.11.2009, 22:34   #10
alecto
Новичок
Джуниор
 
Регистрация: 23.11.2009
Сообщений: 1
По умолчанию

A если у меня так:
A[i]:=(A[i-2]+a[i-1])/2^i-1
Подскажите пожалуйста как записать два в степени и минус 1.
alecto вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поднесение к степени Halifath Помощь студентам 7 02.09.2009 09:45
корни уравнений 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