קבלת מנה של שבר?

Zeliran

New member
קבלת מנה של שבר?

אני מחלק שני מספרים ואני רוצה לקבל את המנה של השבר, כלומר פעולת חילוק כגון 14/4 תניב את התוצאה 3,1,2 (כלומר 3 וחצי.. אבל בשברים) ואני בעיקרון רוצה לקבל רק את המנה של השבר (במקרה זה 1)
 

itaym02

New member
זה לא %

וכל מה שנשאר לך לבדוק זה אם המונה מצטמצם עם המכנה.
 

Zeliran

New member
../images/Emo35.gif

לא הבנתי..
 

gilad g

New member
זה גם "%" ../images/Emo13.gif

פעולת מודולו (שארית החלוקה, %) תתן לך את שארית החלוקה של מספר מסוים במספר אחר. אבל לא תמיד שארית החלוקה תתן את המונה של השבר המעורב - יש לצמצמם את השבר. ניקח את המקרה של 14/4, לדוגמא.
14 % 4 = 2​
השבר שקיבלנו הוא 2/4, ואחרי צמצום - 1/2. המונה הוא 1.
 

Zeliran

New member
../images/Emo6.gif

נכון עד מאוד, כל כך הרבה זמן שלא השתמשתי בו שבכלל חשבתי שהכוונה היא לאחוזים
תודה
 

itaym02

New member
בגללך אני שובר את הראש על אלגוריטם

שיפתור את זה. בלהה
 

Zeliran

New member
ועד קצרצר...

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

nadavb

New member
אפשרי ב- c++, תנסה בהגדרה של

הפונקציה לתת לפרמטר השמה, לדוגמה: void a(int p = 0 אף פעם לא ניסיתי את זה ב-.net, תנסה לראות אם זה עובד.
 

Zeliran

New member
../images/Emo4.gif

נראה שזה שההצעה בלתי אפשרית, כאשר אני מנסה להכניס "=" אני מקבל שגיאת תחביר
 

nadavb

New member
זהו, שב-C++ אתה יכול אשכרה לתת

לפרמטרים של פונצקיה ערך דיפולטיבי, ב-.net הם פשוט השמיטו את הפיצ'ר הזה.
 

Zeliran

New member
הממ....

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

gilad g

New member
אפשר

מה שאתה מתאר זה operator overload... במקרה שלך מדובר ב-overloading רגיל, של מתודות:
public class Kuku { public void CallMe(int oper1) { CallMe(oper1, 0, -2); } public void CallMe(int oper1, int oper2, int oper3) { //implementation. } }​
 

Zeliran

New member
אז זהו ש..

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

nadavb

New member
אוקיי, כנראה ש-c# לא תומך בזה,

כנראה שאין ברירה אלא לעשות overloading לפונקציה.
 

סומבודי

New member
כן ולא

ניתן לשלוח מספר משתנה של פרמטרים כל עוד הם מאותו סוג, בעזרת מילת המפתח params.
void foo(string str, DateTime dt, params int[] iarr) { for(int i=0; i < iarr.Length; i++) //.... }​
אחרי שני הפרמטרים הראשונים, ניתן לשלוח כל מספר של אינטים.
 

itaym02

New member
מה ההבדל בין זנ לבין מערך רגיל?

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