שאלה בשפת C....

ZiPZaP

New member
שאלה בשפת C....

שלום לכולם! אתמול ישבתי 7(!) שעות וכתבתי תוכנית שאני בטוח שאתם תוכלו לכתוב אותה בשנייה וחצי. מטרת התוכנית להציג את גיל המשתמש היום או בתאריך עתידי. אפשרות ראשונה: התוכנית קולטת את התאריך היומי ואז את תאריך יום-ההולדת ומחסרת בינהם וככה מגיע הגיל. אפשרות שנייה: התוכנית קולטת את התאריך היומי, תאריך יום-ההולדת ואז את התאריך העתידי. אחר-כך, מחסרת את התאריך היומי בתאריך יום-ההולדת ולבסוף מחברת את ההפרש עם התאריך העתידי. מכאן, התוכנית נשמעת מאוד קלה להכנה אבל שמתי כל מיני תנאים ועוד דברים. בקיצור, רציתי לשאול שאלה בקשר לשפת C: איך אני יכול להכניס לתוך משתנה את התאריך המקומי מהמחשב במקום שהתוכנית תצטרך לקלוט אותו מהמשתמש? בנוסף, צירפתי את התוכנית ואת קוד המקור שלה בכדי שתוכלו להתבונן ולתת כמה טיפים וגם לבדוק אם היא עובדת טוב. אני יודע שבטוח יהיו דרכים יותר קלות וםחות מסובכות, אבל כתבתי אותה רק בעזרת מה שלמדתי עד עכשיו (בתיכון...) הלינק: http://members.lycos.co.uk/zipomri/Program.zip בתודה מראש, עומרי
 

ke

New member
זמן ושעה

תקרא על הפונקציות time ו localtime. (מצ"ב קישור) דוגמא לתוכנית שמדפיסה בעזרתם את התאריך והשעה,
#include <stdio.h> #include <time.h> int main() { time_t cur = time(NULL); struct tm* local = localtime(&cur); int day,month,year; int hour,minutes,seconds; day = local->tm_mday; month = local->tm_mon + 1; year = local->tm_year + 1900; printf("Today is %d/%d/%4d\n",day,month,year); hour = local->tm_hour; minutes = local->tm_min; seconds = local->tm_sec; printf("The time now is : %2d:%2d:%2d\n",hour,minutes,seconds); return 0; }​
 

galh

New member
כמה הערות בונות

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

ZiPZaP

New member
תודה....

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

galh

New member
אין בעד מה...

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

ZiPZaP

New member
האם מישהו יודע איך לחשב?

האם מישהו בפורום יודע איך לעשות חישוב מדויק שיש בו חודשים עם 28,30,31 ימים וגם שנים מעוברות? אשמח אם תוכלו להציע חישובים שונים... למי שלא ראה את התוכנית, הנה הלינק שוב: http://members.lycos.co.uk/zipomri/Program.zip בתודה, עומרי
 

ZiPZaP

New member
ניסיתי ללמוד פונקציות ושיניתי אבל..

היי! למדתי מספר של C קצת על פונקציות וניסיתי לשנות את הקוד אבל יש משהו אחד שלא מצליח לי. נגיד ואני מגדיר כמה משתנים. עכשיו, בפונקציה שבאה אחרי הגדרת המשתנים, אני רוצה להכניס למשתנים ערכים. משום מה, הפונקציה לא מוצאת את המשתנים. האם אני צריך להגדיר את אותם המשתנים שהגדרתי לפני הפונקציה גם בתוך הפונקציה עצמה?! לכל-מקרה, אם לא הבנתם, צירפתי את קוד המקור כדי שתוכלו להבין יותר טוב: http://members.lycos.co.uk/zipomri/AGE.C בתודה מראש, עומרי
 
למעלה