פורסם 2005 בספטמבר 1120 שנים שלום לכלום אני עובד עם C++ ורציתי לדעת איך אני יכול להחליף את התוכן של שתי נעלמים ללא עזרת נעלם נוסף אם אפשר תוכנית כתובה זה יעזור מאודתודה
פורסם 2005 בספטמבר 1220 שנים אתה יכול לעשות את זה עם מצביעים ואז זה כאילו פתרון "כללי". רק צריך לדאוג שלא יהייה לך OVERFLOW.
פורסם 2005 בספטמבר 1220 שנים השאלה דיברה על תוכן של שני נעלמים, ולא על מצביעים אליהם.השיטה עם הסיביות תעבוד רק עבור משתנים באותו גודל.מה שכן, השיטה עם החיבור והחיסור תפעל על כל שני אובייקטים שיש ביניהם אופרטורים לחיבור וחיסור שפועלים לינארית
פורסם 2005 בספטמבר 1220 שנים טוב, אלא אם זו סתם חידה שמישהו שאל אותך, אני חייב למחות נגד השיטה הזו.עדיף להשתמש במשתנה זמני.ולמה?בשפת המכונה קיימת בדיוק הפעולה שיודעת להחליף בין שני משתנים (קוראים לה swap, נראה לי).כשהקומפיילר רואה את 3 השורות האלה:int tmp = a;a = b;b = tmp;הוא יודע בדיוק מה הכוונה שלך, ומתרגם את הקוד שלך בדיוק לפקודה swap (וכן, הוא לא יוצר בכלל את המשתנה tmp, אלא אם אח"כ אתה משתמש בו למשהו אחר).ככה שבעצם בשימוש בשיטה האחרת (עם חיסור או קיסור) לא חסכת כלום.
פורסם 2005 בספטמבר 1220 שנים קראתי איפשהו שבעבודה עם INTEGER, אכן השיטה הרגילה עדיפה, אך בעבודה עם DOUBLE למשל, עדיף השיטה הטריקית, ככה שזה הכל תלוי מי/מה/מו
פורסם 2005 בספטמבר 1320 שנים בעבודה עם Double הטריק עוד יותר בעייתי!צריך לזכור שכמעט כל חישוב ב-Doubleים גורר אחריו כל מיני שגיאות עיגול.והחלפת משתנים לא.
פורסם 2005 בספטמבר 1920 שנים מחבר לפי דעתי עם משתנה נוסף זה הכי טוב השיטה של החיבור והחיסור לא עובדת בכל המקריםפשוט זה היה חידה כזאת לכן שאלתי..בכל אופן תודה לכם
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.