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}|
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)
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 :)
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...
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 ??
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
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
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).
jejku przeczytam ale tego znowu tak malo nie ma:) czyli mam rozumiec ze dziala:) dzieki kurs sciagniety stronka dodoana do ulubionych
[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)
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.