הרשם שאלות ותשובות רשימת חברים לוח שנה הודעות מהיום

חזור   הוסטס - פורום אחסון האתרים הגדול בישראל > עיצוב גראפי, תכנות על כל שפותיו וקידום ושיווק אתרים > פורום תיכנות

   
|!|

השב
 
כלים לאשכול תצורת הצגה
ישן 06-05-09, 16:17   # 1
Labs
חבר וותיק
 
מיני פרופיל
תאריך הצטרפות: Nov 2007
גיל: 32
הודעות: 1,500
Send a message via Skype™ to Labs

Labs לא מחובר  

PHP | רקורסיה פשוטה דרך ארוכה מידי

היי
אני כותב את זה מהאייפוד לכן לא אוכל להציג את הקוד שלי

לא מזמן סתם בישביל הכיף בניתי רקורסיה שעושה לי דבר כזה
\/
\\//
\\\///
///\\\
//\\
/\
יצא לי דרך קצת ארוכה מידי הייתי רוצה לראות איך אחרים יעשו את זה

אני יחזור הביתה אני יעלה לפה את הקוד שלי

דן.
__________________
אין יותר צהל!
Skype: lab5dan
  Reply With Quote
ישן 06-05-09, 17:20   # 2
vadimg88
חבר מתקדם
 
מיני פרופיל
תאריך הצטרפות: Feb 2008
גיל: 36
הודעות: 710

vadimg88 לא מחובר  

ואת זה אתה עושה בישביל?
  Reply With Quote
ישן 07-05-09, 00:33   # 3
daMn
הוסטסניון
 
מיני פרופיל
תאריך הצטרפות: Mar 2007
גיל: 33
הודעות: 2,050

daMn לא מחובר  

ציטוט:
נכתב במקור על ידי vadimg88 צפה בהודעה
ואת זה אתה עושה בישביל?
ציטוט:
נכתב במקור על ידי Labs צפה בהודעה
לא מזמן סתם בישביל הכיף בניתי רקורסיה שעושה לי דבר כזה
דווקא אהבתי את הרעיון וניסיתי, אולי בגלל שאני עייף יצא לי קצת עקום אבל עושה את העבודה.
PHP קוד:
function recursion($level$top) {
    static 
$ret;
    
$ret .= str_repeat("/"$top-$level+1) . str_repeat("\\"$top-$level+1) . "<br />";
    if (
$level 0) {
        
recursion($level-1$top);
    }
    
$ret .= str_repeat("\\"$top-$level+1) . str_repeat("/"$top-$level+1) . "<br />";
    return 
$ret;
}

echo 
recursion(33); 
הפרמטר הראשון מקבל את כמות השלבים שאתה רוצה לעשות למעויין שייצא, והפרמטר השני הייתי חייב כי זה מעויין, אפשר להסתדר בלי הפרמטר השני ואז ייצא משהו כזה:
///\\\
//\\
/\
\/
\\//
\\\///

יהיה נחמד לראות אם מישהו יצליח לשפר את מה שעשיתי.
__________________
"חינוך למדעי המחשב לא יכול להפוך אף אחד למתכנת מומחה יותר מאשר לימוד על מברשות וצבעים יכול להפוך מישהו לצייר מיומן."
(אריק ס. ריימונד)
  Reply With Quote
ישן 07-05-09, 00:54   # 4
daMn
הוסטסניון
 
מיני פרופיל
תאריך הצטרפות: Mar 2007
גיל: 33
הודעות: 2,050

daMn לא מחובר  

בסוף סידרתי תפונקציה, לא עמדתי בזה
PHP קוד:
function recursion($level$top) {
    static 
$ret;
    
$newline = ($top-$level === 0) ? "" "<br />\n";
    
$ret .= str_repeat("/"$top-$level) . str_repeat("\\"$top-$level) . $newline;
    if (
$level 0) {
        
recursion($level-1$top);
    }
    
$ret .= str_repeat("\\"$top-$level) . str_repeat("/"$top-$level) . $newline;
    return 
$ret;
}

echo 
recursion(33); 
רק עדיין אם מישהו מצליח בפרמטר אחד יהיה יותר מגניב.
__________________
"חינוך למדעי המחשב לא יכול להפוך אף אחד למתכנת מומחה יותר מאשר לימוד על מברשות וצבעים יכול להפוך מישהו לצייר מיומן."
(אריק ס. ריימונד)
  Reply With Quote
ישן 07-05-09, 09:00   # 5
Inet
חבר וותיק
 
מיני פרופיל
תאריך הצטרפות: Nov 2007
הודעות: 1,295
שלח הודעה באמצעות ICO אל Inet שלח הודעה באמצעות MSN אל Inet

Inet לא מחובר  

ציטוט:
נכתב במקור על ידי daMn צפה בהודעה
בסוף סידרתי תפונקציה, לא עמדתי בזה
PHP קוד:
function recursion($level$top) {
    static 
$ret;
    
$newline = ($top-$level === 0) ? "" "<br />\n";
    
$ret .= str_repeat("/"$top-$level) . str_repeat("\\"$top-$level) . $newline;
    if (
$level 0) {
        
recursion($level-1$top);
    }
    
$ret .= str_repeat("\\"$top-$level) . str_repeat("/"$top-$level) . $newline;
    return 
$ret;
}

echo 
recursion(33); 
רק עדיין אם מישהו מצליח בפרמטר אחד יהיה יותר מגניב.
הפרמטר השני מיותר - הוא תמיד יהיה שווה לlevel כדי שזה יראה כמו שצריך.
__________________
  Reply With Quote
ישן 07-05-09, 14:22   # 6
daMn
הוסטסניון
 
מיני פרופיל
תאריך הצטרפות: Mar 2007
גיל: 33
הודעות: 2,050

daMn לא מחובר  

ציטוט:
נכתב במקור על ידי Inet צפה בהודעה
הפרמטר השני מיותר - הוא תמיד יהיה שווה לlevel כדי שזה יראה כמו שצריך.
אתה מוזמן להריץ ולבדוק שאתה טועה, וגם בלי להריץ אפשר לראות שהוא לא משתנה.
__________________
"חינוך למדעי המחשב לא יכול להפוך אף אחד למתכנת מומחה יותר מאשר לימוד על מברשות וצבעים יכול להפוך מישהו לצייר מיומן."
(אריק ס. ריימונד)
  Reply With Quote
ישן 07-05-09, 14:24   # 7
Labs
חבר וותיק
 
מיני פרופיל
תאריך הצטרפות: Nov 2007
גיל: 32
הודעות: 1,500
Send a message via Skype™ to Labs

Labs לא מחובר  

ציטוט:
נכתב במקור על ידי daMn צפה בהודעה
בסוף סידרתי תפונקציה, לא עמדתי בזה
PHP קוד:
function recursion($level$top) {
    static 
$ret;
    
$newline = ($top-$level === 0) ? "" "<br />\n";
    
$ret .= str_repeat("/"$top-$level) . str_repeat("\\"$top-$level) . $newline;
    if (
$level 0) {
        
recursion($level-1$top);
    }
    
$ret .= str_repeat("\\"$top-$level) . str_repeat("/"$top-$level) . $newline;
    return 
$ret;
}

echo 
recursion(33); 
רק עדיין אם מישהו מצליח בפרמטר אחד יהיה יותר מגניב.

עשיתי בדיוק אותו דבר רק במקום ה STR REPEAT השתמשתי בFORים... ואת הNEWLINE שילבתי לתוך שם זה לא משנה אם הוא יעשה עוד שורה ריקה למטה

ציטוט:
נכתב במקור על ידי Inet צפה בהודעה
הפרמטר השני מיותר - הוא תמיד יהיה שווה לlevel כדי שזה יראה כמו שצריך.
לא נכון =\
הוא כל פעם מחסיר מLEVEL
כל הקטע ברקורסיה...

אגב אפשר להחשיב את הצורה הזאת כפרקטל?
__________________
אין יותר צהל!
Skype: lab5dan
  Reply With Quote
ישן 07-05-09, 22:37   # 8
intercooler3819
חבר וותיק
 
מיני פרופיל
תאריך הצטרפות: Jul 2008
הודעות: 1,056

intercooler3819 לא מחובר  

אני חושב שניצחתי אם מדובר באורך הקוד D:

PHP קוד:
<?php
function nitsana ($n$b='')
{
    return 
$n == $b nitsana($n-1str_repeat('[',$n).str_repeat(']',$n) ."\n".$b.str_repeat('[',$n).str_repeat(']',$n)."\n");
}

function 
nitsanb ($n$l=0$b='')
{
    
$l $l == $l 2*$n $l $l;
    return 
$n == $b nitsanb($n-1$lstr_repeat(' ',ceil($l-(2*$n))).str_repeat('[',$n).str_repeat(']',$n)."\n".$b.str_repeat(' ',ceil($l-(2*$n))).str_repeat('[',$n).str_repeat(']',$n)."\n");
}

function 
nitsanc ($n$l=0$b='')
{
    
$l $l == $l $n $l $l;
    return 
$n == $b nitsanc($n-1$lstr_repeat(' ',ceil($l-$n)).str_repeat('[',$n).str_repeat(']',$n)."\n".$b.str_repeat(' ',ceil($l-$n)).str_repeat('[',$n).str_repeat(']',$n)."\n");
}

echo 
nitsana(5);
echo 
"\n\n\n";
echo 
nitsanb(5);
echo 
"\n\n\n";
echo 
nitsanc(5);
?>
והפלט:
קוד:
[]
[[]]
[[[]]]
[[[[]]]]
[[[[[]]]]]
[[[[[]]]]]
[[[[]]]]
[[[]]]
[[]]
[]



        []
      [[]]
    [[[]]]
  [[[[]]]]
[[[[[]]]]]
[[[[[]]]]]
  [[[[]]]]
    [[[]]]
      [[]]
        []



    []
   [[]]
  [[[]]]
 [[[[]]]]
[[[[[]]]]]
[[[[[]]]]]
 [[[[]]]]
  [[[]]]
   [[]]
    []

ובנוגע לפרקטל
אם אתה מדבר על הפרקטל המתמטי - אז לא
__________________

Last edited by intercooler3819; 07-05-09 at 22:41..
  Reply With Quote
ישן 08-05-09, 01:54   # 9
daMn
הוסטסניון
 
מיני פרופיל
תאריך הצטרפות: Mar 2007
גיל: 33
הודעות: 2,050

daMn לא מחובר  

נחמד ניצן אבל הבעיה בצורה שהוא ביקש, אתה חייב לבצע שורה לפני ואחרי הרקורסיה שתצא צורה של מעויין.
\/
/\
__________________
"חינוך למדעי המחשב לא יכול להפוך אף אחד למתכנת מומחה יותר מאשר לימוד על מברשות וצבעים יכול להפוך מישהו לצייר מיומן."
(אריק ס. ריימונד)
  Reply With Quote
ישן 08-05-09, 08:26   # 10
ali_napso
חבר וותיק
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
גיל: 34
הודעות: 1,153

ali_napso לא מחובר  

ציטוט:
נכתב במקור על ידי daMn צפה בהודעה
נחמד ניצן אבל הבעיה בצורה שהוא ביקש, אתה חייב לבצע שורה לפני ואחרי הרקורסיה שתצא צורה של מעויין.
\/
/\
על מה אתה מדבר? הוא פשוט יכול להחליף את הסימן בו הוא משתמש......

אפשר לעשות את זה עם משתנה אחד אבל עם 3 פונקציות
1 ראשית ו2 עזר

בראשית אתה רק מבצע את הפומקציות עזר ובפונקצייות העזר

אתה צריך משתנה אחד שזה הוא מספר הקומות במשולש
__________________

"Yesterday is history, Tomorrow is a mystery,
Today is a gift, that's why it's called the present".
  Reply With Quote
השב

חברים פעילים הצופים באשכול זה: 1 (0 חברים ו- 1 אורחים)
 


חוקי פירסום
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is מופעל
סמיילים הם מופעל
[IMG] קוד מופעל
קוד HTML מכובה

קפיצה לפורום


כל הזמנים הם GMT +2. הזמן כעת הוא 09:41.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ