לוגו אתר Fresh          
 
 
  אפשרות תפריט  ראשי     אפשרות תפריט  צ'אט     אפשרות תפריט  מבזקים     אפשרות תפריט  צור קשר     חץ שמאלה ‎print ‎"Hello World!"; if‎ ‎not rules.‎know ‎then rules.‎read(); חץ ימינה  

לך אחורה   לובי הפורומים > מחשבים > תכנות ובניית אתרים
שמור לעצמך קישור לדף זה באתרי שמירת קישורים חברתיים
תגובה
 
כלי אשכול חפש באשכול זה



  #7  
ישן 01-12-2011, 23:37
צלמית המשתמש של High_Hopes
  משתמש זכר High_Hopes High_Hopes אינו מחובר  
 
חבר מתאריך: 30.05.02
הודעות: 8,838
בתגובה להודעה מספר 6 שנכתבה על ידי Army_Boy שמתחילה ב "יצרתי מערך נוסף"

השיטה הראשונה שלך יותר טובה - צור מערך חדש, עדיף להתרגל כבר בהתחלה שכל סוג של אובייקט (או משתנה במקרה הזה) עושה את התפקיד המוגדר שלו.

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

בצד שמאל המטריצה, בצד ימין המערך שבנית עם סכומי כל שורה
ניסיון לדוגמא:

קוד PHP:
 1   2   3   |   6
 1   1   1   
|   3
 1   2   2   
|   


נניח עכשיו שזאת היתה מטריצה הרבה יותר גדולה, עם 500 שורות, איך היית עושה את זה אם הייתי אומר שאין לך מקום פנוי, רק המערך והמטריצה? (על דף, לא על מחשב)
סביר להניח שכל פעם היית מחפש את הסכום הכי קטן ומחליף אותו עם השורה הראשונה, אחרי זה את הסכום השני הכי קטן, ומחליף אותו עם השורה השניה וכן הלאה... עד שהיית מגיע לשורה ה499 (נסה לחשוב למה) ואז היית מסיים עם המטריצה ממויינת.
שלב א' מציאת הערך הכי קטן:

קוד PHP:
 1   2   3   |   6  
 1   1   1   
|   3  ====> זה הערך הכי קטןאך גילינו את זה רק שעברנו על כל המערך
 1   2   2   
|   


שלב ב': החלפה

קוד PHP:
 1   1   1   |   ====> החלפנו את השורה של הערך הכי קטן עם השורה הראשונהשים לב שהחלפתי גם במטריצה.
 
1   2   3   |   6
 1   2   2   
|   

שלב ג': מציאת החלק הכי קטן

קוד PHP:
 1   1   1   |   ====> אנחנו לא צריכים לבדוק את השורה הזאתאנחנו יודעים שזה הערך הכי קטן
 1   2   3   
|   ====> מתחילים לחפש מכאן
 1   2   2   
|   ====> אחרי סריקת המערך גילינו שזה הערך הבא הכי קטן 

שלב ד: החלפה

קוד PHP:
 1   1   1   |   
 1   2   2   
|   5
 1   2   3   
|   


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

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #9  
ישן 02-12-2011, 10:12
צלמית המשתמש של High_Hopes
  משתמש זכר High_Hopes High_Hopes אינו מחובר  
 
חבר מתאריך: 30.05.02
הודעות: 8,838
בתגובה להודעה מספר 8 שנכתבה על ידי Army_Boy שמתחילה ב "בתוך לולאת DO WHILE..."

אם המטריצה בגודל 1 (או בגודל 0), למה להיכנס ללולאה?

השימוש בdo while הוא בדרך כלל בעייתי, אתה נכנס ללולאה בלי לבדוק תנאי מראש.
כשאתה יודע מה הגודל של המערך, וכמה אתה צריך להתקדם, לולאת for היא נוחה מאוד, היא הופכת את הקוד למאוד קריא גם למישהו מבחוץ שרואה אותו.

הקוד הזה:
קוד PHP:
 for (int i=0;i<matrixLength;i++)
{
    
//some code for each line
    
for (int j=0;j<matrixWidth;j++)
    {
          
//some code for each cell in the line
     
}


הוא מאוד ברור להבנה, קל לראות שאתה עובר על כל שורה במערך ואתה עובר על כל תא בתוך שורה בלולאה פנימית. אם היית משתמש בwhile בכל מקרה היית נדרש להכניס את המשתנים i וj אבל לא בטוח שמי שקורא את הקוד היה מבין מיידית שאתה מעוניין לרוץ על אברי המערך
_____________________________________
תמונה שהועלתה על ידי גולש באתר ולכן אין אנו יכולים לדעת מה היא מכילה
הגלריה שלי בפליקר

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

כלי אשכול חפש באשכול זה
חפש באשכול זה:

חיפוש מתקדם
מצבי תצוגה דרג אשכול זה
דרג אשכול זה:

מזער את תיבת המידע אפשרויות משלוח הודעות
אתה לא יכול לפתוח אשכולות חדשים
אתה לא יכול להגיב לאשכולות
אתה לא יכול לצרף קבצים
אתה לא יכול לערוך את ההודעות שלך

קוד vB פעיל
קוד [IMG] פעיל
קוד HTML כבוי
מעבר לפורום



כל הזמנים המוצגים בדף זה הם לפי איזור זמן GMT +2. השעה כעת היא 01:19

הדף נוצר ב 0.05 שניות עם 10 שאילתות

הפורום מבוסס על vBulletin, גירסא 3.0.6
כל הזכויות לתוכנת הפורומים שמורות © 2024 - 2000 לחברת Jelsoft Enterprises.
כל הזכויות שמורות ל Fresh.co.il ©

צור קשר | תקנון האתר