הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   עזרה [php] - תפריט אקראי (https://hosts.co.il/forums/showthread.php?t=18786)

LosNir 31-03-06 21:47

ציטוט:

נכתב במקור על ידי amirs_5
למה 8 ולא 7 ?!

7 אוקיי? זה רק דוגמה!

amirs_5 31-03-06 21:49

ציטוט:

נכתב במקור על ידי LosNir
7 אוקיי? זה רק דוגמה!

|Lol| חחח =]
טוב .. אז איך זה הולך , תוכל לנסות להגיד לי מה הבעיה בקוד שלי ?

somebody 31-03-06 21:49

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

זאת הדרך לדעתי הכי יעילה.

אני לא אוכל לעזור לך כי אני לא יודע PHP אבל הרעיון בכל השפות הוא אותו הרעיון.

LosNir 31-03-06 22:05

ציטוט:

נכתב במקור על ידי somebody
למה לא לעשות פשוט שני פונקציות, אחת שמוצאת מספר רנדומלי ובודקת לאורך כל המערך עד המקום אליו הגעת אליו את המספר הרנדומלי שיצא, אם הוא כבר קיים היא מחזירה FALSE ואתה מוצאי מספר חדש וגם אותו בודק, ואם אין אותו אתה מכניס אותו למערכת במקום המצאים וככה מתקדם בין התאים.

זאת הדרך לדעתי הכי יעילה.

אני לא אוכל לעזור לך כי אני לא יודע PHP אבל הרעיון בכל השפות הוא אותו הרעיון.

זה בדיוק מה שעשיתי, אבל הוא רוצה גם שיוכלו להגדיר את מספר המשתנים, ולעשות לכל אחד בדיקה, אבל הבעיה שהבדיקה מתבצע בלולאה, ובלולאה אני בודק את כל המספרים חוץ ממה שאני משווה אליו, אבל הבעיה שאני לא יכול להוסיף כל פעם
PHP קוד:

.... OR $rand[6] == $rand[7

אז זה הבעיה, וזה פשוט לא אפשרי.

Eye-Soft 31-03-06 22:07

אממ, זה הרעיון הכללי. אני לא מתכנת PHP, אז עשיתי את זה לפי הידע הדל שיש לי בPHP.
PHP קוד:

$bottom=1;
$top=5;
$n=bottom;
$rann[5]=0;
//איפוס המערך
for ($n=$bottom;$n<$top+1;$n++) {
$rann[$n]=0;
}
$n=1;
$i=1;
while 
n<{
$rann[$n]=rand($bottom,$max);
$same=false;
while ((
$i<$n+1) && ($same==false) {
if (
$rann[i]==$rann[n]) {
    
$same=true
}
}
if (
$same==false) {
$n++;
}



meshuga 31-03-06 22:19

כותרת עניינית, לשלוח לי בפרטי, נעול עד אז.

amirs_5 01-04-06 00:20

אוקיי תודה שי , עכשיו אני רוצה לחזור לתגובה של Eye-Soft .
תסתכל אחי אתה רשמת
if ($rann[i]==$rann[n]) {
$same=true
}
תמיד יהיה true .

ובסוף הקוד רשמת

if ($same==false) {
$n++;

מוזר... אתה בטוח?

yarin 01-04-06 00:29

תראה אני לא מבין בPhp אבל הגיונית אתה יכול לשים שדה שירשמו בו כמה מספרים הם כותבים..ואז לפי זה הלולא תרוץ..
הבנתה אחי?

Eye-Soft 01-04-06 00:51

ציטוט:

נכתב במקור על ידי amirs_5
אוקיי תודה שי , עכשיו אני רוצה לחזור לתגובה של Eye-Soft .
תסתכל אחי אתה רשמת
if ($rann[i]==$rann[n]) {
$same=true
}
תמיד יהיה true .

ובסוף הקוד רשמת

if ($same==false) {
$n++;

מוזר... אתה בטוח?

כן, אני בטוח. זה לא יהיה true אלא אם זה אותו המספר. ראה שאני תמיד "מאפס" את המשתנה בכל תחילת לולאת תנאי (while).
הקוד תקין, הבעיה (אם יש כזו) היא העובדה שאני לא יודע PHP טוב ויש סיכוי שכתבתי משהו לא נכון, אבל כל המשתנים והקוד נכון. הדבר היחידי שיהיה לא נכון זה אם כתבתי את המילות קוד לא נכון.
רק צריך לשנות את הקוד ב"while (($i<$n+1) && ($same==false) {"
ל
while (($i<$n) && ($same==false) {

amirs_5 01-04-06 18:22

אבל התנאי
if ($rann[i]==$rann[n]) {
$same=true
}
תמיד יהיה true .
בגלל זה הקוד לא יעבוד.


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

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