תרגיל ב-#C

זה המקום לכל נושא שאינו מתאים לאף פורום אחר, כולל דיונים בנושאים שאינם קשורים למג'יק.

מנהלים: kabanist, Sir Psycho Sexy

Dragon Slayer
?Hellkites you say
הודעות: 843
הצטרף: 12/9/2008 , 14:05
מיקום: מודיעין
אמר/ה תודה: 0
קיבל תודה: 0

תרגיל ב-#C

שליחה על ידי Dragon Slayer » 22/11/2010 , 20:26

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

יובל.
תמונה
"!Fishing is for wussies"

Yoav
מארגן טורנירים
הודעות: 3184
הצטרף: 30/9/2002 , 2:00
מיקום: חיפה
אמר/ה תודה: 0
קיבל תודה: 0

שליחה על ידי Yoav » 22/11/2010 , 20:46

אם אתה עושה מודולו 10 (שארית) אתה יכול לבודד ספרות. למשל -
המספר שלך לדוגמא 124=x, אז -
y=x%10
אז y יקבל את הערך 4.
ואז תמשיך לשאר הספרות באותה דרך.
נערך לאחרונה על ידי Yoav ב 22/11/2010 , 20:47, נערך פעם 1 בסך הכל.
מיצי מיאו

avatar of woe
MTGil Wizard
הודעות: 398
הצטרף: 22/6/2010 , 18:09
מיקום: מודיעין
אמר/ה תודה: 0
קיבל תודה: 0

שליחה על ידי avatar of woe » 22/11/2010 , 20:46

מה היא חושבת שאתם,
מחשבים?

Dragon Slayer
?Hellkites you say
הודעות: 843
הצטרף: 12/9/2008 , 14:05
מיקום: מודיעין
אמר/ה תודה: 0
קיבל תודה: 0

שליחה על ידי Dragon Slayer » 22/11/2010 , 21:11

פתרתי את זה כבר, תודה למי שמנסה וניסה.
תמונה
"!Fishing is for wussies"

Osbron
MTGil Wizard
הודעות: 1365
הצטרף: 27/4/2004 , 12:37
אמר/ה תודה: 0
קיבל תודה: 0

שליחה על ידי Osbron » 22/11/2010 , 21:16

פתרת? ואף אחד לא גילה לך? :lol:

Dragon Slayer
?Hellkites you say
הודעות: 843
הצטרף: 12/9/2008 , 14:05
מיקום: מודיעין
אמר/ה תודה: 0
קיבל תודה: 0

שליחה על ידי Dragon Slayer » 22/11/2010 , 21:29

כולה גילת לי שורה, את השאר כבר עשיתי לבד.
אנחנו יודעים שאתה מיוחד מאוד.
תמונה
"!Fishing is for wussies"

Yoav
מארגן טורנירים
הודעות: 3184
הצטרף: 30/9/2002 , 2:00
מיקום: חיפה
אמר/ה תודה: 0
קיבל תודה: 0

שליחה על ידי Yoav » 22/11/2010 , 21:33

הוא אלוף הארץ זה לא צחוק
מיצי מיאו

Shali
אלוף הארץ לשנת 2011
הודעות: 1354
הצטרף: 31/10/2001 , 2:00
אמר/ה תודה: 0
קיבל תודה: 0

שליחה על ידי Shali » 22/11/2010 , 21:42

Yoav כתב:הוא אלוף הארץ זה לא צחוק
Like

avatar of woe
MTGil Wizard
הודעות: 398
הצטרף: 22/6/2010 , 18:09
מיקום: מודיעין
אמר/ה תודה: 0
קיבל תודה: 0

שליחה על ידי avatar of woe » 22/11/2010 , 21:43

אני אלוף מודיעין כיתות ז

Yoav
מארגן טורנירים
הודעות: 3184
הצטרף: 30/9/2002 , 2:00
מיקום: חיפה
אמר/ה תודה: 0
קיבל תודה: 0

שליחה על ידי Yoav » 22/11/2010 , 21:50

אני פעם הייתי אלוף קרית ביאליק אבל עכשיו עברתי לחיפה
מיצי מיאו

Osbron
MTGil Wizard
הודעות: 1365
הצטרף: 27/4/2004 , 12:37
אמר/ה תודה: 0
קיבל תודה: 0

שליחה על ידי Osbron » 22/11/2010 , 21:53

גם היית פעם אלוף הארץ...

avatar of woe
MTGil Wizard
הודעות: 398
הצטרף: 22/6/2010 , 18:09
מיקום: מודיעין
אמר/ה תודה: 0
קיבל תודה: 0

שליחה על ידי avatar of woe » 22/11/2010 , 21:55

אלוף כיתות ז מודיעין<אלוף קרית ביאליק<אלוף הארץ פעם< אלוף הארץ

מרווין
מארגן טורנירים
הודעות: 3918
הצטרף: 12/7/2005 , 14:16
מיקום: חיפה
אמר/ה תודה: 0
קיבל תודה: 0

שליחה על ידי מרווין » 22/11/2010 , 22:02

מה לגבי אלוף ליגת האלופים? (זמנית אמנם, אבל עדיין)

TrUnks
Solemn master
הודעות: 10683
הצטרף: 18/1/2004 , 17:22
מיקום: הוד השרון
אמר/ה תודה: 0
קיבל תודה: 0
יצירת קשר:

שליחה על ידי TrUnks » 22/11/2010 , 22:25

סתם איזה אחד...לא מעניין
אני משדר משחקים מכל הפורמטים בmagic online בלינק הבא למי שמעוניין-
http://www.twitch.tv/nivshm

Antrax
MTGil Wizard
הודעות: 6939
הצטרף: 20/10/2001 , 2:00
אמר/ה תודה: 0
קיבל תודה: 0
יצירת קשר:

שליחה על ידי Antrax » 23/11/2010 , 8:12

מודולו זאת פעולה יקרה - צריך ממש להפעיל את היחידה שעושה חילוק ולשלוף שארית.
א) באילו מקרים היה אפשר להמנע משימוש במודולו ובמה היה אפשר להחליף את זה?
ב) במקרים האחרים, הניחו שיש לכם פעולת div-mod שמחזירה גם את תוצאת החילוק וגם את השארית מהמספר, והציעו פתרון שדורש פחות פעולות כאלה מהאלגוריתם המוצע.
(כנראה לא מיועד לפותח השרשור, אבל למי שהתאכזב שלא יצא לו לעזור)
נא לא לשלוח לי יותר מה"פ אחת בכל פעם. לפני השליחה, מומלץ לעיין בחוקי הפורום ובשיטת האימות אם עוד לא קראתם אותם.

Soul
Aether Blaster
הודעות: 1732
הצטרף: 21/6/2007 , 11:57
אמר/ה תודה: 0
קיבל תודה: 0

שליחה על ידי Soul » 23/11/2010 , 13:32

א)במקרים בהם ידוע שהמספר הוא שבר אמיתי (בין 0 ל-1), אפשר בלולאה להכפיל פי-10 , להדפיס את השלם (עם פעולת קיצוץ כלשהיא) ולהכניס למספר את השבר. אפשר גם לקחת כל מספר שהוא מ-1 ומעלה ולהפוך אותו לשבר אמיתי. (אבל זה לא טוב כשהמשתנה הוא floating point עם בסיס בינארי כיוון שההכפלה והחילוק ב-10 עלולות לתת תוצאה לא מדוייקת מה שאומר שהספרות עלולות להשתנה בכל פעולה. זה גם אומר שנדפיס קטעים של ספרות עזר שמשמשות לעיגול המספר (גם כן, משתנות מכל פעולות הכפל וחילוק))

ב) פחות מ-O([size=0]a[/size]n)[size=0]a[/size]? או "סתם" פחות פעולות? ולעשות את זה עם מספרים שיכולים להיות גם מ-1 ומעלה? (אם לא טעיתי ב-א')

Antrax
MTGil Wizard
הודעות: 6939
הצטרף: 20/10/2001 , 2:00
אמר/ה תודה: 0
קיבל תודה: 0
יצירת קשר:

שליחה על ידי Antrax » 23/11/2010 , 14:14

ההנחה היא שמדובר בשלמים, לשני הסעיפים.
נא לא לשלוח לי יותר מה"פ אחת בכל פעם. לפני השליחה, מומלץ לעיין בחוקי הפורום ובשיטת האימות אם עוד לא קראתם אותם.

TV-R-US
MTGil Wizard
הודעות: 3010
הצטרף: 10/12/2006 , 1:33
אמר/ה תודה: 0
קיבל תודה: 0
יצירת קשר:

שליחה על ידי TV-R-US » 23/11/2010 , 14:17

אפשר פשוט לקלוט ספרה ספרה עם getchar ולסכום
My first girlfriend turned into the moon
ליגת הטכניון בפייסבוק: https://www.facebook.com/groups/1659351194292050/" target="_blank

Antrax
MTGil Wizard
הודעות: 6939
הצטרף: 20/10/2001 , 2:00
אמר/ה תודה: 0
קיבל תודה: 0
יצירת קשר:

שליחה על ידי Antrax » 23/11/2010 , 14:34

ובהנחה שאתה צריך לעבד מערך של קלט של שלמים אי-שליליים שכבר נתון?
נא לא לשלוח לי יותר מה"פ אחת בכל פעם. לפני השליחה, מומלץ לעיין בחוקי הפורום ובשיטת האימות אם עוד לא קראתם אותם.

Soul
Aether Blaster
הודעות: 1732
הצטרף: 21/6/2007 , 11:57
אמר/ה תודה: 0
קיבל תודה: 0

שליחה על ידי Soul » 23/11/2010 , 15:25

א) כשמספר הספרות ידוע מראש:

קוד: בחירת הכל

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;
}
יש שורה שכתובה בעברית כי משום מה אם אני כותב אותה באנגלית זה מעוות את כל ההודעה.

שלח תגובה