IOPanel

חזור   IOPanel > דבר חופשי > תוכנה ומערכות הפעלה > תיכנות
עמוד ראשי הירשם חיפוש הודעות מהיום סמן פורומים כנקראו

תיכנות פורום בנושאי תיכנות , פיתוח אתרים , שפות תיכנות , אפליקציות סלולר וטאבלטים.

תוכנה ומערכות הפעלה : תיכנות

עזרה במציאת הבעיה בקוד בשפת C

שלום לכולם, כתבתי תוכנית שקולטת 7 משתנים מסוג int. בצורה הבאה: a b c d e f g כך ש-a ...
תגובה
 
קישור חוזר הגדרות אשכול אפשרויות הצגת נושא
ישן 07-11-12, 16:04   #1 (קישור ישיר)
IO Rookie
 
תאריך הצטרפות: Nov 2012
הודעות: 18
ברירת מחדל עזרה במציאת הבעיה בקוד בשפת C

שלום לכולם,

כתבתי תוכנית שקולטת 7 משתנים מסוג int.

בצורה הבאה: a b c d e f g

כך ש-a מציינת את מספר המשימות.
b, c,d - כמה זמן לוקח לבצע כל משימה
e ,f,g - שעת התחלת המשימות.

הפלט -
1) התוכנית מדפיסה את מספר המשימות שאפשר לבצע תוך יממה אחת ברצף.
2) מדפיסה את מספר המשימות שאפשר לבצע במלואן ברצף תוך שבעה ימים.
3) מדפיסה את שעת הסיום של המשימות - סופרת החל מהרגע של שעת התחלת המשימות.

וב-3 הסתבכתי (צירפתי קובץ עם הקוד).
הצלחתי להציג את השניות והדקות כמו שצריך אבל בחישוב השעה נתקלתי בבעיה - חישבתי נטו את מספר השעות שוצא בספירה של מחוג השעות, אבל אני לא מצליח לשלב את הדקות שהופכים לשעu, לאחר 60 דקות = ועל אותו עיקרון גם את השניות.

האם יש מישהו שיכול לעזור?


http://www.fastup.co.il/images/31083244.jpg
eliorws לא מחובר   הגב עם ציטוט
ישן 07-11-12, 21:30   #2 (קישור ישיר)
IO Member
 
תאריך הצטרפות: Mar 2009
הודעות: 231
ברירת מחדל

ראשית - ברוך הבא לפורום

אם תרשה לי - שתי עצות בסיסיות לגבי כתיבת קוד:
1. תמיד תשתמש בשמות משתנים בעלי משמעות.
שימוש באותיות רק יבלבל אותך לאורך הדרך (כפי שלדעתי קרה פה)
2. רשום הערות/הסברים בגוף הקוד - יעזור לך ולאחרים...
למעשה יש הרבה תכנתים שמעדיפים לרשום את ההערות לפני שהם מתחילים בכתיבת הקוד עצמו - עוזר בארגון העבודה...

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

לגבי המרה משניות לדקות ולשעות - תזכור שאתה צריך להתייחס גם לשארית, כך ש (בהנחת שניות כזמן בסיס ומבלי להתייחס לחישוב ימים):
קוד:
Hours = (int)(Sec/3600);
Min = (int)((sec%3600)/60);
Remain_Sec = Sec-Hours*3600-Min*60;
schw22 לא מחובר   הגב עם ציטוט
ישן 07-11-12, 21:45   #3 (קישור ישיר)
IO Rookie
 
תאריך הצטרפות: Nov 2012
הודעות: 18
ברירת מחדל

אחי תודה על התגובה. עשיתי את הכול אני מבטיח לך. רק משהו אחד חסר.

תראה אני אסביר:

ב- a קלטתי את מספר המשימות.

ב-b,c,d קלטתי את הזמן שלוקח לבצע משימה אחת (היא שווה לכולם). b הוא שעות, c הוא דקות, d הוא שניות.

ב- e,f,g קלטתי את זמן ההתחלה של ביצוע רצף המשימות - e הוא השעות, f הוא הדקות, g הוא השניות.

ב-mission1d הדפסתי את מספר המשימות שניתן להדפיס ברצף ביממה אחת. חישבתי מבחינת דקות גם את השעות וגם את השניות (נאמר 1 שעה=60 דקות) וחילקתי את כל התוצאה ב-1440 דקות שהם 24 שעות. יצאה לי התוצאה הרצויה.

ב-mission7d - כפלתי את את mission1d כדי לקבל תוצאה שבועית.

בשלב האחרון קצת הסתבכתי.
המטרה לקבל את שעת הסיום. מה עשיתי? זה מתחיל מהשניות כך:

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

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

איפה הבעיה? במחוג השעות, אני לא מצליח להוסיף בצורה נכונה את קבוצת הדקות שהפכה לשעות כיוון שהשעות שלי מחושבות באמצעות דקות. וכאן אני חייב עצה מועילה.
eliorws לא מחובר   הגב עם ציטוט
ישן 07-11-12, 22:05   #4 (קישור ישיר)
IO Member
 
תאריך הצטרפות: Mar 2009
הודעות: 231
ברירת מחדל

ידידי,

- חישוב מס' המשימות שניתן לבצע ביום (שורה 14) - הגיוני (אם אתעלם מהרצון להשתמש בדקות בתור בסיס זמן)
- חישוב כמה פעולות ניתן לבצע ב- 7 ימים (שורה 15) - בסדר, כולל השימוש ב- integer כדי לקבל מס' שלם.
- חישוב ה- endtimeS (שורה 16) - מחורבש לגמרי.
d - מכיל רק את מרכיב השניות במשךהזמן שלוקח לסיים משימה, לא את משך הזמן הכולל בשניות (שאותו עליך לחשב, אחרת לא היית צריך את החישוב בשורה 14)

כנ"ל לגבי שאר החישובים - EndTimeM1, 2, H


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

נערך לאחרונה על ידי schw22, 07-11-12 בשעה 22:06. סיבה: השלמה
schw22 לא מחובר   הגב עם ציטוט
ישן 08-11-12, 2:41   #5 (קישור ישיר)
IO Rookie
 
תאריך הצטרפות: Nov 2012
הודעות: 18
ברירת מחדל

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

תודה.
eliorws לא מחובר   הגב עם ציטוט
ישן 08-11-12, 20:36   #6 (קישור ישיר)
IO Rookie
 
תאריך הצטרפות: Nov 2012
הודעות: 18
ברירת מחדל

עבדתי על הקוד תוכנית שמתבסס על שניות - לחישוב כך השעות, הדקות והשניות שלקח לבצע את רצף המשימות.
אבל אני עדיין מסתבך עם להוסיף את זה בצורה נכונה לזמן ההתחלתי. הרי עם לקח נטו לבצע את העבודה, נגיד, 6 שעות, 40 דקות ו-20 שניות ושעת ההתחלה הייתה 20:00:45, איך אני מחשב את הזמן קדימה? כי בהנחה שאני מוסיף בצורה נקייה את שעות העבודה לשעה ההתחלתית אני מקבל שעה מסויימת - אבל מה עם הדקות שהצטרפו לדקות ההתחלתיות והפכו לשעה?

Seconds = ((b*60)*60) + (c*60);
Hours = ((Seconds/3600)+ e)%24;
Minuts = (Seconds%3600)/60;
RemainS = Seconds - Seconds*Hours - Seconds*Minuts;
eliorws לא מחובר   הגב עם ציטוט
קישור פירסומי
ישן 08-11-12, 21:39   #7 (קישור ישיר)
IO Rookie
 
תאריך הצטרפות: Nov 2012
הודעות: 18
ברירת מחדל

סיימתי סוף סוף.
תודה על העזרה.
eliorws לא מחובר   הגב עם ציטוט
תגובה


הגדרות אשכול
אפשרויות הצגת נושא

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

vB code הינו פועל
סמיילים הינו פועל
קוד [IMG] הינו פועל
קוד HTML הינו כבוי
Trackbacksהינו פועל
Pingbacks הינו פועל
Refbacks הינו פועל

נושאים דומים
אשכול מפרסם האשכול פורום תגובות הודעה אחרונה
יש לי את הבעיה עם הGPS בגלקסי אס שלי הבעיה הזאת שהGPS לא עובד טוב... New_Shady סלולר וגאדג'טים 6 22-04-11 0:38
עזרה במציאת שיר IdanBS דיבורים על הא ודא 5 02-05-10 23:50
עזרה במציאת שיר BIGBENG5 דיבורים על הא ודא 8 07-07-09 17:04
עזרה בתרגיל בשפת JAVA boxerown תיכנות 20 04-01-09 10:17
עזרה שניה בשפת C ExtaNd תוכנה ומערכות הפעלה 13 08-11-08 21:30


כל הזמנים הם GMT +3. השעה כרגע היא 19:02.





מופעל על ידי: vBulletin
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO
IOPanel.net © כל הזכויות שמורות