תרגיל ב-#C
מנהלים: kabanist, Sir Psycho Sexy
-
- ?Hellkites you say
- הודעות: 843
- הצטרף: 12/9/2008 , 14:05
- מיקום: מודיעין
- אמר/ה תודה: 0
- קיבל תודה: 0
תרגיל ב-#C
שלום לכל האנשים שיודעים ומבינים בזה. המורה שלי הביאה לנו תרגיל בונוס לתעודה (5 נקודות לציון מגן זה אחלה), אבל אני לא ממש מצליח את זה. התרגיל הוא לכתוב תכנית שקולטת מספר כלשהוא ולהדפיס את סכום הספרות שלו. אני יודע בעיקר דברים בסיסיים, ובגלל שאנחנו בדיוק עושים את החומר של לולאות אני מניח שהתרגיל יהיה מבוסס על לולאה כלשהיא שתבודד את הספרות אחת אחת ותוסיף אותם למשתנה שיסכם את כולם כדי שיהיה אפשר להדפיס, אבל בגלל שזה יכול להיות מספר עם כל מספר ספרות, לא יורד לי האסימון איך לגרום לו לבודד את הספרות.
אני אעריך מאוד את עזרתכם בנושא.
יובל.
אני אעריך מאוד את עזרתכם בנושא.
יובל.
"!Fishing is for wussies"
אם אתה עושה מודולו 10 (שארית) אתה יכול לבודד ספרות. למשל -
המספר שלך לדוגמא 124=x, אז -
y=x%10
אז y יקבל את הערך 4.
ואז תמשיך לשאר הספרות באותה דרך.
המספר שלך לדוגמא 124=x, אז -
y=x%10
אז y יקבל את הערך 4.
ואז תמשיך לשאר הספרות באותה דרך.
נערך לאחרונה על ידי Yoav ב 22/11/2010 , 20:47, נערך פעם 1 בסך הכל.
מיצי מיאו
-
- MTGil Wizard
- הודעות: 398
- הצטרף: 22/6/2010 , 18:09
- מיקום: מודיעין
- אמר/ה תודה: 0
- קיבל תודה: 0
-
- ?Hellkites you say
- הודעות: 843
- הצטרף: 12/9/2008 , 14:05
- מיקום: מודיעין
- אמר/ה תודה: 0
- קיבל תודה: 0
-
- ?Hellkites you say
- הודעות: 843
- הצטרף: 12/9/2008 , 14:05
- מיקום: מודיעין
- אמר/ה תודה: 0
- קיבל תודה: 0
-
- MTGil Wizard
- הודעות: 398
- הצטרף: 22/6/2010 , 18:09
- מיקום: מודיעין
- אמר/ה תודה: 0
- קיבל תודה: 0
-
- MTGil Wizard
- הודעות: 398
- הצטרף: 22/6/2010 , 18:09
- מיקום: מודיעין
- אמר/ה תודה: 0
- קיבל תודה: 0
-
- Solemn master
- הודעות: 10683
- הצטרף: 18/1/2004 , 17:22
- מיקום: הוד השרון
- אמר/ה תודה: 0
- קיבל תודה: 0
- יצירת קשר:
סתם איזה אחד...לא מעניין
אני משדר משחקים מכל הפורמטים בmagic online בלינק הבא למי שמעוניין-
http://www.twitch.tv/nivshm
http://www.twitch.tv/nivshm
מודולו זאת פעולה יקרה - צריך ממש להפעיל את היחידה שעושה חילוק ולשלוף שארית.
א) באילו מקרים היה אפשר להמנע משימוש במודולו ובמה היה אפשר להחליף את זה?
ב) במקרים האחרים, הניחו שיש לכם פעולת div-mod שמחזירה גם את תוצאת החילוק וגם את השארית מהמספר, והציעו פתרון שדורש פחות פעולות כאלה מהאלגוריתם המוצע.
(כנראה לא מיועד לפותח השרשור, אבל למי שהתאכזב שלא יצא לו לעזור)
א) באילו מקרים היה אפשר להמנע משימוש במודולו ובמה היה אפשר להחליף את זה?
ב) במקרים האחרים, הניחו שיש לכם פעולת div-mod שמחזירה גם את תוצאת החילוק וגם את השארית מהמספר, והציעו פתרון שדורש פחות פעולות כאלה מהאלגוריתם המוצע.
(כנראה לא מיועד לפותח השרשור, אבל למי שהתאכזב שלא יצא לו לעזור)
נא לא לשלוח לי יותר מה"פ אחת בכל פעם. לפני השליחה, מומלץ לעיין בחוקי הפורום ובשיטת האימות אם עוד לא קראתם אותם.
א)במקרים בהם ידוע שהמספר הוא שבר אמיתי (בין 0 ל-1), אפשר בלולאה להכפיל פי-10 , להדפיס את השלם (עם פעולת קיצוץ כלשהיא) ולהכניס למספר את השבר. אפשר גם לקחת כל מספר שהוא מ-1 ומעלה ולהפוך אותו לשבר אמיתי. (אבל זה לא טוב כשהמשתנה הוא floating point עם בסיס בינארי כיוון שההכפלה והחילוק ב-10 עלולות לתת תוצאה לא מדוייקת מה שאומר שהספרות עלולות להשתנה בכל פעולה. זה גם אומר שנדפיס קטעים של ספרות עזר שמשמשות לעיגול המספר (גם כן, משתנות מכל פעולות הכפל וחילוק))
ב) פחות מ-O([size=0]a[/size]n)[size=0]a[/size]? או "סתם" פחות פעולות? ולעשות את זה עם מספרים שיכולים להיות גם מ-1 ומעלה? (אם לא טעיתי ב-א')
ב) פחות מ-O([size=0]a[/size]n)[size=0]a[/size]? או "סתם" פחות פעולות? ולעשות את זה עם מספרים שיכולים להיות גם מ-1 ומעלה? (אם לא טעיתי ב-א')
ההנחה היא שמדובר בשלמים, לשני הסעיפים.
נא לא לשלוח לי יותר מה"פ אחת בכל פעם. לפני השליחה, מומלץ לעיין בחוקי הפורום ובשיטת האימות אם עוד לא קראתם אותם.
אפשר פשוט לקלוט ספרה ספרה עם getchar ולסכום
My first girlfriend turned into the moon
ליגת הטכניון בפייסבוק: https://www.facebook.com/groups/1659351194292050/" target="_blank
ליגת הטכניון בפייסבוק: https://www.facebook.com/groups/1659351194292050/" target="_blank
ובהנחה שאתה צריך לעבד מערך של קלט של שלמים אי-שליליים שכבר נתון?
נא לא לשלוח לי יותר מה"פ אחת בכל פעם. לפני השליחה, מומלץ לעיין בחוקי הפורום ובשיטת האימות אם עוד לא קראתם אותם.
א) כשמספר הספרות ידוע מראש:
ב) למרות שזה כנראה לא מה שהתכוונת...
יש שורה שכתובה בעברית כי משום מה אם אני כותב אותה באנגלית זה מעוות את כל ההודעה.
קוד: בחירת הכל
int num = 123456789;
int digits = 9;
int sum = 0;
int mult = 0;
while (digit > 0 )
{
digits--;
mult = 1;
for ( i=1; i<digits; i++)
mult *= 10;
sum += num / mult;
}
קוד: בחירת הכל
// divMod( int number , int divider ,int &div ,int &mod )
int num = 0;
int sum = 0;
int mod = 0;
כל-עוד num גדול מ-10
{
divMod( num , 10 , num, mod);
sum +=mode;
}