מבוא לתכנות תרגיל 7

כך שסכום K מטריצה ריבועית מטיפוס שלם תיקרא ריבוע קסם, אם קים מספר שלם (1
K אבריה בכל שורה, בכל עמודה, ובכל אחד מ-2 האלכסונים, שוה    
.א. כתבי תכנית הבודקת אם מטריצה ריבועית נתונה היא ריבוע קסם    
.ב. כתבי תכנית המייצרת ריבוע קסם    
אשר הערכים בה הם בטווח ,N ריבוע לטיני הוא מטריצה ריבועית מטיפוס שלם במימד(2
ואשר אין בה אף שורה ואף עמודה בהן מופיע ערך מסוים יותר מפעם אחת ,[1..N]   
.א. כתבי תכנית הבודקת אם מטריצה ריבועית נתונה היא ריבוע לטיני   
.ב. כתבי תכנית המייצרת ריבוע לטיני   
כתבי תכנית העובדת מול מטריצה ריבועית מטיפוס שלם, ומבצעת עליה את הפעולות (3
:הבאות   
.א) מחשבת את סכום אברי האלכסון הראשי מימין לשמאל   
.ב) כנ"ל, משמאל לימין   
ג) מחשבת את סכום אברי המטריצה   
.M[i,j]=M[j,i] שעבורם מתקיים i,j ד) מדפיסה את כל הזוגות   
.ה) מדפיסה את האיבר המקסימלי במטריצה   
התכנית תקלוט כל אחת מ- 5 ההוראות האלה מהמסך    
M בגן החיות התנכ"י יש שטח ריבועי שיש בו חלוקה פנימית למשבצות. במשטח זה יש(4
בכל משבצת כזו יכול לגור שפן קטן .N שורות, ומספר המשבצות בכל שורה הוא    
משך זמן של שעה נקרא 'חיי דור' של השפנים. אחת לשעה, במעבר מדור לדור, עוברים כל    
:השפנים כבני מרון (כבנומרון), וגורלם נחתך, לחיים או למוות, על פי אמות המידה הבאות    
במעבר לדור הבא לא יחיה ,עוברים על כל המטריצה, ומחליטים מי בשלב ראשון-   
:לפי הכללים הבאים    
אם יש שפן שאין לו שום שכן בשום משבצת לידו (כולל המשבצות שנמצאות לידו -   
.באלכסון) הוא מת מבדידות במעבר לדור הבא    
אם יש שפן אשר אין לידו (כולל המשבצות שנמצאות לידו באלכסון) לפחות 3 משבצות-   
.פנויות, הוא מת מצפיפות במעבר לדור הבא    
בדיקת הבדידות והצפיפות נעשית מהמשבצת השמאלית העליונה אל המשבצת הימנית -   
התחתונה באופן שתחילה בודקים את כל השורה הראשונה (משמאל לימין), ואח"כ את    
כל השורה השניה, וכו'. משמעות קביעה זו היא, כי ההחלטה בדבר עודף בדידות או    
לאמר, ייתכן כי שפן לפי מצבו ברגע שהגענו לבדוק אותו צפיפות מתקבלת עבור כל    
בתחילת המעבר על המטריצה יהיה שפן שצפוף לו מאוד, אבל במהלך הבדיקה, בדרך    
אליו, ימותו שפנים הנמצאים משמאלו או מעליו, וכך, עד שתגיע הבדיקה אליו, יגאל    
מצפיפותו, ויחיה לקראת הדור הבא. כמו כן, יתכן כי בתחילת המעבר על המטריצה    
יהיה שפן שאינו סובל מעודף בדידות, אבל במהלך הבדיקה יכנס למצב בדידות    
.בגלל מות שכניו, ועד שתגיע הבדיקה אליו יהיה דינו מוות מבדידות    
לאחר שהורדנו את כל השפנים הסובלים מעודף בדידות או עודף צפיפות, הגיע,בשלב שני -   
:במעבר לדור הבא, וזה נעשה על פי הכללים הבאים יוולד הזמן להחליט מי    
אם מצויים 2 שפנים זה ליד זה, (לא כולל קרבה שבאלכסון), אזי במעבר לדור הבא -   
נולדים להם צאצאים: הצאצאים נולדים לתוך כל המשבצות המקיפות את זוג ההורים    
.(כולל המשבצות הצמודות לאחד ההורים באלכסון)   
.שפן שנולד, לא יכול להוליד באותו מעבר-דור בו הוא עצמו נולד -   
.שפנים במשטח המחיה הנ"ל K כתבי תכנית המתיחסת למצב התחלתי בו פזורים באקראי    
דורות עדיין יישארו שפנים במשטח. במהלך הבדיקה, התכנית P התכנית תבדוק, האם לאחר    
תדפיס את מצב השפנים בכל דור. הבדיקה אם שפן אמור למות (מבדידות או מצפיפות) תיעשה    
.על ידי פונקציה    
כתבי תכנית המקבלת כקלט מצב נתון של לוח שחמט. התכנית תבדוק האם המצב הוא מצב(5
של 'שח'. למען הפשטות ניתן להניח שאין במשחק פרשים. כמו"כ ניתן להחליט שבודקים    
רק אם יש מצב 'שח' של הלבן נגד השחור. המעונינות יכולות להרחיב, ולבדוק האם יש מצב    
.של 'מט', ולהוסיף גם נוכחות פרשים. את הלוח נגדיר מטיפוס המכיל כלי שחמט