Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Detartraj partial slatina

Cu ce pot izola fonic peretii pen...

Telefon cu senzor compass BUN

Blocare google chrome cu master p...
 Instalare Siemens NX pe macbook

sfat achizitie telefon pana in 20...

Stoc Smart CAM TV

Ce corzi de chitara sa cumpar?
 Galaxy A54 compass defect?

Cum conectez un switch WIFI la 60...

Cumparare AC Gree [Buget maxim 30...

Telekom
 Ce e aratarea asta ?

Probleme timonerie schimbator sau...

Numar strada gresit in contractul...

Centrala Ariston Cares Premium 24...
 

Functii recursive

- - - - -
  • Please log in to reply
26 replies to this topic

#19
phinkuletz

phinkuletz

    Junior Member

  • Grup: Members
  • Posts: 42
  • Înscris: 15.10.2008
urban, deci pur si simplu am luat codurile puse de tine si le-am dat paste intr-o pagina nou-nouta. Nu rezulta nimic.

#20
urban

urban

    Active Member

  • Grup: Members
  • Posts: 1,622
  • Înscris: 25.07.2002
daca pui intr-o pagina urmatorul cod:

<?PHP
phpinfo();
?>

ce iti afiseaza?

#21
phinkuletz

phinkuletz

    Junior Member

  • Grup: Members
  • Posts: 42
  • Înscris: 15.10.2008
No, gata ca am reusit... urban, am vreo cateva site-uri facute cu php si care ruleaza din localhost fara probleme, deci si codurile voastre, daca ar fi corecte ar trebui sa mearga. In fine, am reusit pana la urma cam asa:
function test($x) {
    if($x<=4) {
        return test(++$x);
    } else {
        return $x;
    }
}

echo test(0); // afiseaza 5

Va multumesc baieti pentru timpul acordat si pentru idei.;)

Edited by phinkuletz, 15 September 2009 - 14:22.


#22
Mr.Jinx

Mr.Jinx

    Gigant ca NY

  • Grup: Senior Members
  • Posts: 3,186
  • Înscris: 11.07.2006

View Postphinkuletz, on 15th September 2009, 15:19, said:

No, gata ca am reusit... urban, am vreo cateva site-uri facute cu php si care ruleaza din localhost fara probleme, deci si codurile voastre, daca ar fi corecte ar trebui sa mearga. In fine, am reusit pana la urma cam asa:
function test($x) {
    if($x<=4) {
        return test(++$x);
    } else {
        return $x;
    }
}

echo test(0); // afiseaza 5

Va multumesc baieti pentru timpul acordat si pentru idei.;)
deci cum era corect până la urmă? aud, aud??

Edited by Mr.Jinx, 15 September 2009 - 14:32.


#23
NLC

NLC

    Junior Member

  • Grup: Members
  • Posts: 31
  • Înscris: 12.01.2007

View Postphinkuletz, on 15th September 2009, 15:19, said:

No, gata ca am reusit... urban, am vreo cateva site-uri facute cu php si care ruleaza din localhost fara probleme, deci si codurile voastre, daca ar fi corecte ar trebui sa mearga. In fine, am reusit pana la urma cam asa:
function test($x) {
    if($x<=4) {
        return test(++$x);
    } else {
        return $x;
    }
}

echo test(0); // afiseaza 5

Va multumesc baieti pentru timpul acordat si pentru idei.;)
da...corect...trebuia pus return si pe prima ramura a if-ului... greseala mea ca nu am vazut.... observasem ca intra in ciclu infinit si apoi testasem cu printf si am obtinut 0 cum era si de dorit...alte teste nu am facut :)

#24
urban

urban

    Active Member

  • Grup: Members
  • Posts: 1,622
  • Înscris: 25.07.2002
Intra intr-un ciclu infinit nu pentru ca nu aveai return ci pentru ca ceea ce trimiteai catre functia test era exact aceeasi valoare de fiecare data.

test($x++) sau test($x--) este de fapt:

test($x);
$x++

sau

test($x);
$x--

Si cu si fara return tot intr-un ciclu ai fi ramas pentru ca de fapt return-ul tau nu facea decat un fel de:

function test($x);
if ($x<4) {
 return test($x);
 $x++; (sau $x--)
}

caz in care if-ul era intotdeauna adevarat pentru x < 4 (eg. test(0));

#25
phinkuletz

phinkuletz

    Junior Member

  • Grup: Members
  • Posts: 42
  • Înscris: 15.10.2008
function test($x) {
if($x >= 1) {
return test($x-1); // sau $x--, n-are importanță aici
}
else
return $x;
}

echo test(4);
Asa e, Mr.Jinx, ai fost cel mai aproape de adevar. De fapt, codul tau e bun, dar comentariu facut e gresit.:) In cazul de fata "x-1"!="x--". Daca nu ma crezi, testeaza urmatorul cod schimband x+1 cu x++ :
function test($x) {
if($x<=4)
return test($x+1);
else
return $x;
}
echo test(0); // ar trebui sa afiseze 5



View Posturban, on 15th September 2009, 17:39, said:

Intra intr-un ciclu infinit nu pentru ca nu aveai return ci pentru ca ceea ce trimiteai catre functia test era exact aceeasi valoare de fiecare data.

test($x++) sau test($x--) este de fapt:

test($x);
$x++

sau

test($x);
$x--

Si cu si fara return tot intr-un ciclu ai fi ramas pentru ca de fapt return-ul tau nu facea decat un fel de:

function test($x);
if ($x<4) {
 return test($x);
 $x++; (sau $x--)
}

caz in care if-ul era intotdeauna adevarat pentru x < 4 (eg. test(0));
Iti dau dreptate.

#26
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006
Asta Ii spusesem si eu

View PostOriginalCopy, on 15th September 2009, 14:01, said:

preincrementeaza

LE: altfel nu intra in recursiune cu noua valoare. Vezi "pass by value" si "pass by reference".
dar cred ca trebuie sa repetam de mai multe ori acelasi lucru pana se observa... :thumbdown:


Ca si incepator, cand ti se spune ceva si nu intelegi, nu te uita in partea cealalta, ci cere explicatii ;)

#27
phinkuletz

phinkuletz

    Junior Member

  • Grup: Members
  • Posts: 42
  • Înscris: 15.10.2008

View PostOriginalCopy, on 15th September 2009, 18:00, said:

Asta Ii spusesem si eudar cred ca trebuie sa repetam de mai multe ori acelasi lucru pana se observa... :thumbdown:


Ca si incepator, cand ti se spune ceva si nu intelegi, nu te uita in partea cealalta, ci cere explicatii ;)
OriginalCopy, chiar luasem in calcul sfatul tau(pre=inainte), dar nu pusesem return, deci...

Edited by phinkuletz, 15 September 2009 - 15:28.


Anunturi

Neurochirurgie minim invazivă Neurochirurgie minim invazivă

"Primum non nocere" este ideea ce a deschis drumul medicinei spre minim invaziv.

Avansul tehnologic extraordinar din ultimele decenii a permis dezvoltarea tuturor domeniilor medicinei. Microscopul operator, neuronavigația, tehnicile anestezice avansate permit intervenții chirurgicale tot mai precise, tot mai sigure. Neurochirurgia minim invazivă, sau prin "gaura cheii", oferă pacienților posibilitatea de a se opera cu riscuri minime, fie ele neurologice, infecțioase, medicale sau estetice.

www.neurohope.ro

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate