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

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



  #1  
ישן 16-10-2011, 09:31
  ranl666 ranl666 אינו מחובר  
 
חבר מתאריך: 04.12.09
הודעות: 12
[עזרה]בעיה בקוד שכתבתי quicksort

היי..
ניסיתי לכתוב קוד משלי לפונקציה quick sort..
אני בטוח שכל החלקים שבו נכונים אבל הקומפיילר לא מוכן להריץ את זה..
כל פעם שהוא מסמן לי איזה שורה שלא עובדת ואני "מתקן" אותה כדי שיעבוד הוא ממשיך לשורה אחרת ולא מוכן להריץ את זה..
מה הבעיה?
יש לי את אותה בעיה שמתוארת בויקיספר תחת הכותרת הראשונה טיפול בחריגות:
http://alturl.com/eudzz

גם שם, אני לא מבין למה זה עושה הודעת שגיאה-נראה לי שהכל תקין.

הנה הקוד מי שרוצה לראותיש גם קובץ מצורף)

תודה לעוזרים!!!
קוד:
object quicksort {
def main (args : Array[String]) {
//get the array var n=5 val arr =Array(5,4,3,2,1) var temp=0 //quick sort def sort(x:Array[Int],s:Int,e:Int):Array[Int]={ var pivot=x((e/2)) if(x.length==1){//stop sign x } else{ //check whether the functions are splited to big and small numbers relative to pivot if((checklow(s,(e/2)-1))&&checkhigh((e/2)+1,e)){ sort(x,(e/2)+1,e)//create 2 new arrays sort(x,s,(e/2)-1) } else{ //sorting the arrays to 2 sides of big and small temp=x(sidurhigh(e)) x(sidurhigh(e))=x(sidurlow(s)) x(sidurlow(s))=temp sort(x,s,e) } } //functions def checkhigh(s:Int,e:Int)={//check if the all the numbers are bigger than pivot var i=s var check=true while ((i<=e)&check){ if(x(i)<pivot) check=false i+=1 } check } def checklow(s:Int,e:Int)={//check if the all the numbers are lower than pivot var i=s var check=true while ((i<=e)&check){ if(x(i)>pivot) check=false i+=1 } check } def sidurhigh(e:Int):Int={//finding the place of the numbers that should be switched if (x(e)<=pivot){ e} else sidurhigh(x(e-1)) } def sidurlow(s:Int):Int={ if (x(s)>pivot){ s} else sidurlow(x(s+1)) } x } sort(arr,0,5) } }

נערך לאחרונה ע"י ranl666 בתאריך 16-10-2011 בשעה 09:36.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #5  
ישן 26-10-2011, 11:11
  שימיadmin שימי אינו מחובר  
מנהל פורומי "תכנות ובניית אתרים" ו"חומרה ורשתות"
 
חבר מתאריך: 25.10.01
הודעות: 42,775
בתגובה להודעה מספר 4 שנכתבה על ידי ranl666 שמתחילה ב "שהתכוונתי ל"מתקן" התכוונתי..."

אז זה אומר שאתה פונה למיקום שלא קיים במערך. נניח שהמערך שלך הוא עם 10 תאים, ואתה פונה לתא מספר 11.

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

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

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

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

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

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



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

הדף נוצר ב 0.04 שניות עם 12 שאילתות

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

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