Pierwiastek szescieny [delphi]

0

ZADANIE
Dla obliczenia wartosci y=x(1/3) mozna zastosowac nastepujacy proces iteracyjny: y{n+1}=(1/3)(2y{n}+(x/y{n}2)dla n=0,1 Gdy jest zbieżny jezeli za przyblizenie poczatkowe y{0} przyjac dowolna liczbe rzeczywista. kolejnych obliczen nalzey przerwac gdy spelniony bedzie warunek |y{n}-y{n-1}|

0

Funkcja:

function CubeRoot(x, Eps: Double): Double;
var
y, y1: Double;
begin
y := 1;
repeat
y1 := y;
y := (1/3)(2y+x/(y*y));
until Abs(y1-y)

0

wielkie dziei ale musi sie ta funkcja tak dziwnie nazywac nie moze bycn np. oblicz i musi byc zastosowane duble ja czegos takiego nie mialem :( ale fajnie to wyglada na dzialajace :)

0

Może się nazywać choćby: FunkcjaDoObliczaniaPierwiastkaSzesciennegoZLiczbyX (zostało jeszcze 13 znaków, ale już nie wiedziałem co do pisać :) )
A Double nie musi być. Może być także Single lub Extended (ew. Real48 lub zwykłe Real, ale to to samo co Single... a może Double eh).

A w ogóle to powinno być CubicRoot, ale...

0

no tak przeceiz to nazwa :) ok to ja to zmienie na real, sprawdzales czy to dziala?? jeszcze mam pytanie tam jest cos takiego 999 po co to jest pyam z ciekawosci, aha to moge po prostu przepisac bo to tak podzieliles na czesci ??

0

no tak przeceiz to nazwa :) ok to ja to zmienie na real, sprawdzales czy to dziala??

Najpierw sprawdź, a potem pytaj. A tak w ogóle to proponuję lekturę helpa lub chociaż jakiegoś kursu.

jeszcze mam pytanie tam jest cos takiego 999 po co to jest pyam z ciekawosci, aha to moge po prostu przepisac bo to tak podzieliles na czesci ??

Chciałem sprawdzić, czy zwróci mi w wyniku 9. Skoro komputer może policzyć za mnie 999 to po co ja mam to liczyć? Ja znam na pamięć jedynie potęgi 2 :-D

0

tak zgadzam sie bede musial poczytac cosik ale mozesz powiedziec czy to dziala ja nie mam delphi wiec niemam jak sprawdzic i pisac to jak leci?? wielkie dzieki normalnie

0

Tutaj poczytaj na początek: http://www.4programmers.net/download.php?id=81
Albo tutaj: http://vogel.iglu.cz
A co do tego czy działa, to już po przeczytaniu będziesz wiedział, czy zadziała (poczytaj trochę o analizie poprawności algorytmów, a dowiesz się, że nie trzeba kompa uruchamiać, by stwierdzić czy program działa).

0

jejku przeczytam ale tego znowu tak malo nie ma:) czyli mam rozumiec ze dziala:) dzieki kurs sciagniety stronka dodoana do ulubionych

0

[sorry za usunięcie posta, kliknąłem w nie ten przycisk, chciałem odpisać a zmieniłem Twojego posta, masz tu odpowiedź, a pytania już nie ma...]

Widzę, że nie czytałeś mojego kursu :D

{ tu jest ok }

procedure TForm1.Button1Click(Sender: TObject);
var
x,eps:real; // TU MAŁY BŁĄD

function cubicroot(x,eps:real):real; // TU BYŁO ŹLE
var
y,y1:real;
begin
y:=1;
repeat
y1:=y;
y:=(1/3)(2y+x/(y*y));
until abs(y1-y)

1 użytkowników online, w tym zalogowanych: 0, gości: 1