ערכתי לאחרונה בתאריך 11.02.04 בשעה 15:50 בברכה, דני15
במקום שיהיו לך נגיד 20 משתנים, יהיה לך משתנה אחד נגיד A שיכיל את הערכים. אז יש את A1 A2 A3 A4 וכו' וכל אחד כזה מכיל ערך ואתה יכול לקלוט אליהם, להדפיס כל אחד מהם כל דבר שעושים עם משתנה רגיל מסוג שלם תו או מחרוזת. אבל במערך כל הערכים חייבים להיות מאותו טיפוס.בפסקל הגדרה של מערך תיעשה כך:
שם המערך:array{1..גודל המערך} of טיפוס המערך;
דוגמא:
a:array{1..20} of integer;
והדבר הזה יימצא ב-var כמו שאתה מגדיר כל משתנה רק הפעם המשתנה שלך הוא מסוג מערך שמכיל כמה איברים.
פניה לתא כלשהו במערך תעשה ע"י סוגריים מרובעות דוגמא:
a{1}:=6;
a{3}:=3;
a{4}:=a{1}+a{3};
כלומר, הצבתי בתא הראשון 1, בשלישי 3 וברביעי את סכום האיברים הראשון והשלישי כלומר 9. אם אני ארצה לקלוט לתא כלשהו במערך אעשה כך:
או להדפיס:
יתר התאים שלא הוצבו בהם ערכים הם תאים "מזובלים" כמו משתנים שיש בהם ערכים כלשהם מהרצות קודמות. אם תשתמש במערך מונים מתישהו תאפס עם לולאה את המערך לפני כן.
בדרך כלל כדי להמחיש את איך שזה נראה מציירים דבר כזה עם ערכים:
http://n.rotter.net/User_files/nor/402a2e547141b3fa.jpg
זה מערך חד מימדי בגודל 5 שמכיל ערכים. המיקומים(האינדקס) שבאמצעותם פונים לתא הם מ-1 עד 5 משמאל לימין. נגיד המספר 6 נמצא במקום ה-3 אז אם תעשה:
יודפס 6.
אגב מערך יכול להיות לא רק של מספרים שלמים אלא גם תוים מחרוזות וכו'. תלוי איך תגדיר אותו במשתנים.
כמעט תמיד כשעובדים עם מערכים משתמשים בלולאות. נגיד ואתה רוצה לקלוט 80 מספרים למערך בגודל 80 אז אתה תרוץ עם לולאת FOR מ-1 עד 80 ותקלוט כל פעם למערך למקום מונה הלולאה.
דוגמא:
for i:=1 to 80 do
readln(a{i});
וככה הוא קולט ערכים לכל תא ותא במערך. כנ"ל לגבי הדפסה של מערך.
יש הרבה סוגים של תרגילים בפסקל בנושא מערכים. אני זוכר כרגע כמה סוגים: תוכנית שמדפיסה את האיבר הגדול והקטן ביותר, הדפסת הערכים שבתאים הזוגיים\אי זוגיים, הדפסת הערכים הזוגיים והאי זוגיים וכו' וכו'. תחשוב איך תעשה כל אחד מאלה ולדעתי תוכל להבין...
משתמשים במערך בדרך כלל בשביל לשמור נתונים לשימוש חוזר.
נגיד ואתה רוצה לקלוט 20 ציונים של תלמידים ולהדפיס את הציון שגדול מהממוצע. אז מה שצריך לעשות זה קודם כל זה לחשב את הממוצע ואחרי זה לעבור ציון ציון ולבדוק איזה גדול מהממוצע ולהדפיס אותו.
אבל כדי לחשב את הממוצע צריך לקלוט ציון ציון עם לולאה מ-1 עד 20 לסכום ולחלק ל-20. ולעבור על כל ציון ולבדוק איזה גדול מהממוצע. אבל הציונים נעלמו ! קלטת אותם וסכמת וזהו. הם לא נשמרו איפשהו וצריך או 20 משתנים כדי שפשוט הם יישמרו וזה חוסך בלולאה, או שלבקש מהמשתמש להכניס אותם שוב כדי להשוות. שתי הדרכים לא יעילות אז עדיף לקלוט את הציונים למערך, לסכום לחשב ממוצע ואז לרוץ על המערך עם לולאה ולבדוק. באופן זה התוכנית מתקצרת.
כל פעם שעשיתי סוגריים מסולסלות זה מרובעות במקום !! זו מגבלה בפורום !!!
אתה צריך גם הסבר על מערכים דו מימדיים ?