Форум «Всё о Паскале» _ Задачи _ Корень N-й степени интеррационным методом
Автор: Szug 21.11.2006 2:45
Помогите разобраться! Задача состоит в том, чтобы составить прогу вычисления корня степени Q числа Х по реккурентной формуле: Y(k+1)=1/Q * ((Q-1)*Y(k)+X/Y(k)^(Q-1)) с заданной точностью. Х=16234, У=7, Е=0,000001. Программу вроде бы написал, но где-то ошибся -НЕ СЧИТАЕТ!!?? Вот что у меня получилось:
Код
Program Lab8; var{блок задания переменных} Yt,Yp,q,x,y,e:real; g,k:integer; begin writeln('Введите Х');{ввод данных} readln(x); writeln('Введите Q'); readln(q); writeln('Введите E'); readln(e); g:=0; {переменная счета колличества строк} k:=0; {переменная счета колличества интерраций} Yt:=7; repeat {начало цикла вычисления значений Y} Yp:=Yt; {задание начального значения Y} inc(k); Yt:=(((q-1)*Yp+x)/(exp(q*ln(Yp))/Yp))/q;{вычисление Y(k+1)} writeln('E=',abs(Yt-Yp),' Yp=',Yp,' Yt=',Yt,' №=',k);{печать значений} inc(g); if g=24 then begin {проверка заполнения экрана} write('Нажмите <ENTER>'); readln; g:=1; end; until abs(Yt-Yp)<=e; { проверка Е- выход из цикла} writeln('Y = ',Yt,' Количество интераций N=',k);{вывод на экран} writeln; write('Расчет окончен. Нажмите <ENTER>'); {вывод на экран} readln; end. {конец программы}
ОБЬЯСНИТЕ МНЕ!!! ПОЧЕМУ НЕ РАБОТАЕТ??? ЧТО НЕ ТАК??? С-П-А-С-И-Б-О!!!!