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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.11.2010, 15:40   #1
oban11
Пользователь
 
Регистрация: 12.10.2010
Сообщений: 18
По умолчанию x в степени y

подскажите как возвести x в степень y
exp(y*ln(x)) но если x<0 то логарифм не существует
что делать?
abs(x)/x*exp(y*ln(abs(x))) только при нечетной степени будет -
или подскажите функцию проверки на четность
oban11 вне форума Ответить с цитированием
Старый 18.11.2010, 16:01   #2
Ivan_Susanin
Пользователь
 
Регистрация: 15.04.2007
Сообщений: 20
По умолчанию

возведение в произвольную степень
функция Power
модуль math

Последний раз редактировалось Ivan_Susanin; 18.11.2010 в 16:24.
Ivan_Susanin вне форума Ответить с цитированием
Старый 18.11.2010, 16:04   #3
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Проверка на четность:
Код:
x mod 2;
результаты:
0 - число четно
1 - число нечетно
mod - это остаток от деления
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 18.11.2010, 17:01   #4
oban11
Пользователь
 
Регистрация: 12.10.2010
Сообщений: 18
По умолчанию

как записать это условие?
if (x mod 2):=0 then так можно?
oban11 вне форума Ответить с цитированием
Старый 18.11.2010, 17:03   #5
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Нет. := означает присваивание. Сравнение записывается просто знаком =
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 18.11.2010, 17:34   #6
oban11
Пользователь
 
Регистрация: 12.10.2010
Сообщений: 18
По умолчанию

что то не могу понять как работает эта функция и как с ее помощью решить проблему с отрицательным x в степени y
oban11 вне форума Ответить с цитированием
Старый 18.11.2010, 19:00   #7
Ybn2
Форумчанин
 
Регистрация: 18.11.2010
Сообщений: 183
По умолчанию

result:= exp (y*ln(abs(x))
if (y mod 2)=1 then Begin Result:=-Result;
А если y- вещественное число, то надо проверять его четность и если оно четное, а x<0. тогда решения не существует (если только это не мнимая единица.

Последний раз редактировалось Ybn2; 18.11.2010 в 19:11.
Ybn2 вне форума Ответить с цитированием
Старый 18.11.2010, 20:11   #8
oban11
Пользователь
 
Регистрация: 12.10.2010
Сообщений: 18
По умолчанию

Код:
program lab7part2;
uses crt;
const t=1e-10;
var z:array[1..15] of real;
    x,xn,xk,y,yn,yk,hx,hy,ch,zn,chet,cosec,f : real;
    ki,i:byte;
    ks:word;
BEGIN
clrscr;
ks:=0;
write('Vvedite xn=');
readln(xn);
write('Vvedite xk=');
readln(xk);
write('Vvedite Hx=');
readln(Hx);
write('Vvedite yn=');
readln(yn);
write('Vvedite yk=');
readln(yk);
write('Vvedite Hy=');
readln(Hy);
clrscr;
write('Vvedite kol-vo elementov massiva Z ki=');
readln(ki);
For i:=1 to ki do
begin
writeln('Vvedite Z[',i,']');
readln(z[i]);
end;
while x<xk+t do
begin
x:=xn;
while y<yk+t do
begin
y:=yn;
for i:=1 to ki do
begin
inc(ks);
writeln(ks:2,' x=',x:6:2,' y=',y:6:2,' z[',i,']=',z[i]:6:2);
ch:=cos(y);
if ch>-t then
begin
ch:=sqrt(ch)+exp(z[i]);
cosec:=sin(y+z[i]);
if abs(cosec)>t then
begin
cosec:=1/sin(y+z[i]);
if abs(cosec)>t then
begin
f:=sin(x)/cosec;
zn:=exp(y*ln(abs(x)));
if ( y mod 2 ) = 0 then
begin
zn:=-zn
zn:=zn+exp(cos(z[i])*ln(5))+z[i];
if abs(zn)>t then
begin
f:=ch/zn+f;
writeln('f=',f:12:6);
end
else
writeln('f - no exist delenie na 0')
end
else
writeln('f - no exist delenie na 0')
end
else
writeln('f - no exist delenie na 0')
end
else
writeln('f - no exist podkorennoe virazhenie <0');
x:=x+hx;
y:=y+hy;
end;
end;
end;
readln
END.
что то не получается на строке if (y mod 2)=1 выдает ошибку
Типы операндов не соответствуют операции

Последний раз редактировалось Stilet; 19.11.2010 в 08:58.
oban11 вне форума Ответить с цитированием
Старый 19.11.2010, 07:04   #9
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Потому что четность актуальна только для целых чисел, но никак не для вещественных. Соответственно и операция тоже для работы над целыми числами .
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 19.11.2010, 08:50   #10
oban11
Пользователь
 
Регистрация: 12.10.2010
Сообщений: 18
По умолчанию

так что мне тогда делать?
мне дали задание я вот вторую неделю мучаюсь с этой степенью не знаю уже что делать
oban11 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
N>=a в степени K yardie Общие вопросы C/C++ 5 31.08.2010 14:52
Корень n-степени _-Re@l-_ Общие вопросы Delphi 3 25.05.2010 19:20
Pascal Степени Vkusnjashka Помощь студентам 4 17.01.2010 16:04
х в степени н anksunamun Помощь студентам 10 24.11.2009 00:31
Поднесение к степени Halifath Помощь студентам 7 02.09.2009 09:45