PhoenixBoy פורסם 2005 בספטמבר 3 Share פורסם 2005 בספטמבר 3 http://Rar.Co.iL/files/Rar-1125756222.jpgאחרי שאתם מורידים תשנו את הסיומת ל EXE.תגידו לי מה דעתכם, התחלתי ללמוד פסקל אתמול בערב.אם אסור לשים כאן דברים שהכנתי אז תגידו לי.. קישור לתוכן שתף באתרים אחרים More sharing options...
Ran B פורסם 2005 בספטמבר 4 Share פורסם 2005 בספטמבר 4 פשוט. אתה יכול ליפות את זה ע"י שימוש בספריית CRT בפונקציות אשר קיימות בה כמו textcolor ועוד ועוד. (ניתן לשחק עם מיקום כרטיס הביקור, לאמצע המסך ע"י שימוש בפונקצית gotoXY). על כל הפונקציות העיצוב תוכל לקרוא בINDEX בפסקל. כמו כן, על מנת ליעל את למידתך, אם תוכל לשים פה העתק של הקוד, אולי יהיה אפשר לראות אם יש אפשרות לחסוך משאבים, לייעל את התוכנית והשאר. יפה להתחלה, פשוט כמובן. רן. קישור לתוכן שתף באתרים אחרים More sharing options...
PhoenixBoy פורסם 2005 בספטמבר 4 מחבר Share פורסם 2005 בספטמבר 4 תודה רבה, הנה הקוד:יש לי שאלה, הייתי יכול להשתמש בפרוצדורה או פונקציה בשביל הרווחים?Program Visiting_Card;Uses Crt, Strings;Var Pers_Name, Address, Phone: String; Name_Len, Add_Len, Phone_Len, i: Integer;Begin TextColor(15); Write('Please enter your name: '); ReadLn(Pers_Name); Name_Len := Length(Pers_Name); Name_Len := 31-Name_Len; Write('Please enter your address: '); ReadLn(Address); Add_Len := Length(Address); Add_Len := 24-Add_Len; Write('Please enter your phone number: '); ReadLn(Phone); Phone_Len := Length(Phone); Phone_Len := 22-Phone_Len; WriteLn; WriteLn('Name_Len: ', Name_Len); ClrScr; WriteLn('------------------------------------------'); WriteLn('| Personal Visiting Card |'); WriteLn('| ====================== |'); WriteLn('| |'); { Start writing personal name } i := 0; Write('| Name: ', Pers_Name); Repeat Begin Write(' '); i := i+1; End; Until i=Name_Len; WriteLn('|'); { End writing personal name ) { Start writing address } i := 0; Write('| Address: ', Address); Repeat Begin Write (' '); i := i+1; End; Until i=Add_Len; WriteLn('|'); { End writing address } { Start Writing Phone } i := 0; Write('| Phone: ',Phone); Repeat Begin Write (' '); i := i+1; End; Until i=Phone_Len; WriteLn('|'); { End writing Phone } WriteLn('| |'); WriteLn('------------------------------------------'); WriteLn; WriteLn; Write('Press any key to quit.'); ReadKey;End. קישור לתוכן שתף באתרים אחרים More sharing options...
Ran B פורסם 2005 בספטמבר 4 Share פורסם 2005 בספטמבר 4 וואי וואי, רק לקרוא את התוכנית שלך יצאו לי העיינים.יש לך פה הרבה דברים מיותרים.(אגב, אני מקווה שאת כל התגובות שלי לגבי התארד הזה ואחרים, אתה לא נעלב או נפגע אישיתאני בא ליעל את הלמידה שלך ולעזור לך ללמוד לתכנת חכם ונכון)קודם לשאלתך - לא, אין פונקציה אשר עושה רווחים (לא לפחות אחת שאני מכיר).כמובן שזה לא מונע ממך ליצור אחת.דבר שני, לא הבנתי בשביל מה כל משחק הרווחים האלה, סתם שטותי וסתם יצרת לעצמך עוד משתניםו"שקלת" את אורך המילים וחישבת ובלה בלה...אבל בכל זאת אםאתה אהבת את המשחק רווחים הזה, אז שיהיה בכיף.כפי שאתה שם לב כנראה רשמת 3 פעמים חבילת את אותן חבילת פקודות פשוט עם משתנים שונים.לכן, במצבים כאלה צריל לפעמים להתחשב גם במתכנת (מה לעשות..) ומתכנתים חכמים עובדים כמה שפחות,כמה פחות שאפשר ויעיל כמובן, ולכן כל הכתיבה של 3 חבילות הפקודות החוזרות על עצמן מיותרת לחלוטין,במצבים כאלה "יוצרים" פונקציות/פרוצדורות לפי הצורך.מתי "יוצרים" אותם? פשוט מאוד, מתי שאתה רואה שאתה משתמש באותם פקודות בדיוק (ולפעמים אם משתנים אחרים),ובמקום כל פעם לרשום 3 שורות, או להתחכם ולעשות COPY PASTE ואז אתה מנפח את נפח הקובץ - אתה פשוט רושםפעם אחת את חבילת הפקודות לפני התוכנית הראשית (מעל הBEGIN) בתוך פונקציה/פרוצדורה, וכל פעם שאתה מעונייןלהשתמש באותה פונקציה/פרוצדורה אתה רק קורא לה. (לא בואי בואי..)ולפי כך בניתי לך את הפונקציה הדורשה.(אם תרצה הסבר בין פונקציה לפרוצדורה - בקש, חבל שארשום סתם אולי אתה יודע) התוכנית תראה כך (בקצרה) :Program Visi;Uses crt, strings;var XXXXXXProcedure S_pace (Pstr : string; Pint, Poption:integer); var Li : integer; Loption : string; Begin {Procedure} if Poption=1 then Loption:='Address' else if Poption=2 then Loption:='Phone' else {Poption must be 3} Loption:='Name'; Write('| ',Loption,' : ',Pstr ); Repeat Begin Write (' '); Li := Li+1; End; Until Li=Pint; WriteLn('|'); end; {Procedure}Begin {Main}{main program HERE}S_pace(Pers_name,Name_Len,3);S_pace(Phone,Phone_Len,2);S_pace(address,add_Len,1);End. {Main}כפי שאתה בטח שם לב, התוכנית סתם מסובכת ומסורבלת עם כל הרווחים והמשחק רווחים שעשית פה, לכן יצא לי מסובך מאודלכתוב את זה. אם תרצה הסברים על מה שרשמתי תבקש, נסה לפענח את התוכנית לבד, אני בטוח שתבין.כמו כן אתה תצטרך להתאים אותה לרווחים שלך וכל שאר הדברים.רן. קישור לתוכן שתף באתרים אחרים More sharing options...
PhoenixBoy פורסם 2005 בספטמבר 4 מחבר Share פורסם 2005 בספטמבר 4 קודם כל אני מאוד שמח שאתה מגיב לי תגובות מפורטות כל כך ואתה מאוד עוזר לי! השאלה שלי אם היית יכול להשתמש בפונקציה התכוונתי למה שעשיתי אבל נזכרתי בזה רק אחר כך.... קישור לתוכן שתף באתרים אחרים More sharing options...
PhoenixBoy פורסם 2005 בספטמבר 5 מחבר Share פורסם 2005 בספטמבר 5 הצלחתי.. הנה:Program Visiting_Card;Uses Crt, Strings;Procedure Spaces(Fname: string; ext: integer);Var l_ength, i: integer;Begin {Spaces Procdure} l_ength := length(Fname); If ext = 1 Then {Name} Begin l_ength := 31-l_ength; Write('| Name: ', Fname); End; If ext = 2 Then {Address} Begin l_ength := 24-l_ength; Write('| Address: ', Fname); End; If ext = 3 Then {Phone} Begin l_ength := 23-l_ength; Write('| Phone: ', Fname); End; i := 0; Repeat Begin Write(' '); i := i+1; End; Until i=l_ength; WriteLn('|');End; {End of spaces procedure}Var Pers_Name, Address, Phone: String;Begin {Main} TextColor(15); ClrScr; Write('Please enter your name: '); ReadLn(Pers_Name); Write('Please enter your address: '); ReadLn(Address); Write('Please enter your phone number: '); ReadLn(Phone); ClrScr; WriteLn('------------------------------------------'); WriteLn('| Personal Visiting Card |'); WriteLn('| ====================== |'); WriteLn('| |'); Spaces(Pers_Name,1); Spaces(Address,2); Spaces(Phone,3); WriteLn('| |'); WriteLn('------------------------------------------'); WriteLn; WriteLn; Write('Press any key to quit.'); ReadKey;End. קישור לתוכן שתף באתרים אחרים More sharing options...
Recommended Posts
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.