נושאים פעיליםנושאים פעילים  הצגת רשימה של חברי הפורוםרשימת משתמשים  חיפוש בפורוםחיפוש  עזרהעזרה
  הרשמההרשמה  התחברותהתחברות RSS עדכונים
תיכנות
RSS UnderWarrior Forums : RSS תיכנות
נושא

נושא: תוכנית המרה לבינארי

שליחת תגובהשליחת נושא חדש
כותב
הודעה << נושא קודם | נושא הבא >>
Hades
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 28 March 2007 בשעה 18:17 | IP רשוּם
ציטוט Hades

אני כותב תוכנית שאמורה לקבל מספר בבסיס 10 ולהציג את המספר בבסיס 2
יש לי כמה שאלות
1)האלגוריתם להפיכת מספר מבסיס 10 לבסיס 2
דוגמא 7
7/2=3.5 אם יש שארית שהיא לא אפס אז כותבים 1
ואם יש שארית 0 אז כותבים 0
אני צודק?
2) איך אני בידיוק בודק שארית
a/=2%a=!0?
 
חזרה לתחילת העמוד הצג את כרטיס החבר של Hades חפש הודעות אחרות של Hades בקר בדף הבית של Hades
 
asd
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 28 March 2007 בשעה 18:21 | IP רשוּם
ציטוט asd

שארית:

a % 2
חזרה לתחילת העמוד הצג את כרטיס החבר של asd חפש הודעות אחרות של asd בקר בדף הבית של asd
 
SBD
פורומיסט על
פורומיסט על
סמל אישי

הצטרף / הצטרפה: 13 January 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 1194
נשלח בתאריך: 28 March 2007 בשעה 22:34 | IP רשוּם
ציטוט SBD

1. יש כמה דרכים, אחת מהם זה מה שאתה אמרת...

לקוחים את המספר וכל פעם מחלקים אותו בשתים ואת השארית כותבים בצד. עד שהמספר נשאר לנו 0. המספר הבינארי הוא המספר רק בסדר הפוך...

דוגמא: המספר 15

קוד:

15/2 = 7 (1)
7/2 = 3 (1)
3/2 = 1 (1)
1/2 = 0 (1)

לכן המספר הוא: 1111, מקווה שזה מובן :) למרות שלקחתי מספר לא הכי טוב להדגמה, אבל נו מילא ;)

2. כן, % מסמל מודול, כלומר מספר במודול מסוים הערך שיוחזר לא יוכל להיות בערך של המודול (המספר אחרי ה-%) או גדול ממנו....מתבצע מחזור בין 0 לאותו מספר (על פעם שמגיעים למספר המסוים חוזרים שוב ל-0 וחוזר חלילה....)


__________________
~ Nobody Is Perfect, I'm Nobody ~
פורומים
חזרה לתחילת העמוד הצג את כרטיס החבר של SBD חפש הודעות אחרות של SBD בקר בדף הבית של SBD
 
Hades
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 29 March 2007 בשעה 21:59 | IP רשוּם
ציטוט Hades

אז ניתן לעשות כך?
a/=2%a=!0?
או שעדיף שאני יציג את הקוד שכתבתי עד עכשיו למרות שעלול להיות שמה בעיות לוגיות קשות ...תכנות לא נכנס לי לראש ממש טוב :|
חזרה לתחילת העמוד הצג את כרטיס החבר של Hades חפש הודעות אחרות של Hades בקר בדף הבית של Hades
 
shoshan
מנהל האתר
מנהל האתר
סמל אישי

הצטרף / הצטרפה: 16 July 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 4637
נשלח בתאריך: 29 March 2007 בשעה 22:34 | IP רשוּם
ציטוט shoshan

שמים לב, לא תצליח לעשות את זה בלי מבנה לולאה בסגנון לולאה או רקורסיה.

לדוגמא

קוד:
static void Main(string[ ] args)
{
    Console.WriteLine("{0} is {1}", 3333, binary(3333));
}

private static string binary(int p)
{
    string temp = "";
    do{
        temp = (p%2).ToString() + temp;
        p /= 2;
    }while(p>0);
    return temp;
}



__________________
עד מתי רשעים יעלוזו?

עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
חזרה לתחילת העמוד הצג את כרטיס החבר של shoshan חפש הודעות אחרות של shoshan בקר בדף הבית של shoshan
 
Hades
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 29 March 2007 בשעה 23:45 | IP רשוּם
ציטוט Hades

השתמשתי בלולאת do while זה יכול לעזור קצת ...רקורסיה אני לא יודע על זה שום דבר חוץ מזה שקוראים לזה רקורסיה..
do (a/2)
    while{
        if(%a=0)
                binary[]=0;
                else(5d=!0)
                binary[]=1;
            } 
ככה זה טוב ?
זאת פעם ראשונה שאני משתמש בdo whie ככה שאל תתפלאו אם יש שגיאות רציניות
 
חזרה לתחילת העמוד הצג את כרטיס החבר של Hades חפש הודעות אחרות של Hades בקר בדף הבית של Hades
 
shoshan
מנהל האתר
מנהל האתר
סמל אישי

הצטרף / הצטרפה: 16 July 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 4637
נשלח בתאריך: 30 March 2007 בשעה 12:57 | IP רשוּם
ציטוט shoshan

אתה אמור לשים את התנאי בתור סוגריים רגילות, אחרי ה-while, ואת הקוד בסוגריים מסולסלים אחרי ה-do.

__________________
עד מתי רשעים יעלוזו?

עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
חזרה לתחילת העמוד הצג את כרטיס החבר של shoshan חפש הודעות אחרות של shoshan בקר בדף הבית של shoshan
 

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

  שליחת תגובהשליחת נושא חדש
גרסת הדפסה גרסת הדפסה

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