דפנה לוי רשתי מדעי המחשב יסודות מדעי המחשב #C מערך דו-ממדי - יחידת לימוד 6 ש"ש ידע קודם מערך חד ממדי, מחלקות ועצמים, שימוש בפעולות פתיחה הקנייה מטרה ה

מסמכים קשורים
Slide 1

תוכן העניינים

תוכן העניינים

Tutorial 11

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

אוניברסיטת בן גוריון בנגב תאריך המבחן: שקולניק אלכסנדר שם המרצה: מר בשפת JAVA מבוא לתכנות מבחן ב: מס' הקורס : הנדסת תעשיה וניהול מ

מספר מחברת: עמוד 1 מתוך 11 ת"ז: תשע"א מועד ב סמסטר א' תאריך: 00:11 שעה: 0 שעות הבחינה: משך כל חומר עזר אסור בשימוש בחינה בקורס: מבוא למדעי ה

אוניברסיטת חיפה החוג למדעי המחשב מבוא למדעי המחשב מועד א' סמסטר ב', תשע"ג, משך המבחן: שעתיים וחצי חומר עזר: אסור הנחיות: וודאו כי יש בידיכם

מהוא לתכנות ב- JAVA מעבדה 3

פתרון 2000 א. טבלת מעקב אחר ביצוע האלגוריתם הנתון עבור הערכים : פלט num = 37, sif = 7 r האם ספרת האחדות של sif שווה ל- num num 37 sif 7 שורה (1)-(2) (

אוניברסיטת בן גוריון בנגב תאריך המבחן: שם המרצה: מר אלכסנדר שקולניק, בשפת JAVA מבחן ב: מבוא לתכנות מס' הקורס : מיועד לתלמידי : הנד

Slide 1

Slide 1

אוניברסיטת חיפה החוג למדעי המחשב.5.6 מבוא למדעי המחשב סמסטר א' תשע"ז בחינה סופית מועד א', מרצה: שולי וינטנר מתרגלים: סמאח אידריס, ראמי עילבו

מבוא לתכנות ב- JAVA תרגול 7

פתרון מוצע לבחינת מה"ט ב_שפת c מועד ב אביב תשע"ט, אפריל 2019 מחברת: גב' זהבה לביא, מכללת אורט רחובות שאלה מספר 1 מוגדרת מחרוזת המורכבת מהספרות 0 עד 9.

מספר זהות: סמסטר ב' מועד א' תאריך: 11102/4// שעה: 9:22 משך הבחינה: 3 שעות חומר עזר: אין מותר השימוש במחשבון פשוט בחינה בקורס: מבני נתונים מרצה: הדר בי

שקופית 1

PowerPoint Presentation

Slide 1

Microsoft Word B

PowerPoint Presentation

תרגול 1

סדנת תכנות ב C/C++

תכנות מונחה עצמים א' – תש"ע

Slide 1

PowerPoint Presentation

PowerPoint Presentation

Microsoft Word - c_SimA_MoedA2006.doc

אוניברסיטת חיפה החוג למדעי המחשב מרצה: שולי וינטנר מתרגלים: נעמה טוויטו, מחמוד שריף מבוא למדעי המחשב סמסטר א' תשע"ב בחינת סיום, מועד א', הנחי

תרגול 3 - מערכים

הגשה תוך שבוע בשעת התרגול

PRESENTATION NAME

שאלה 2. תכנות ב - CShell

שאלהIgal : מערכים דו מימדיים רקורסיה:

מבוא למדעי המחשב

Microsoft PowerPoint - rec3.ppt

Microsoft Word - ExamA_Final_Solution.docx

מבחן סוף סמסטר מועד א 15/02/08 מרצה אחראית: דר שירלי הלוי גינסברג מתרגלים: גלעד קותיאל, דניאל גנקין הוראות: א. בטופס המבחן 7 עמודים ו 4 דפי נוסחאות. ב

שאלהIgal : מערכים דו מימדיים רקורסיה:

מבוא לתכנות ב- JAVA תרגול 11

234114

מתכונת עיצוב 3013

שקופית 1

Slide 1

Microsoft Word - pitaron222Java_2007.doc

שם כיף עם ג'ף מאגר פעילויות חלק א' חוברת של פעילויות מתמטיות: העשרה, העמקה, משחקים ואתגרים כיתה

Homework Dry 3

ex1-bash

מועד: א בחינה סופית במתמטיקה דיסקרטית משך הבחינה: 2 1 שעות מרצה: פרופ' תאופיק מנסור תאריך: סמסטר: א תשע"ח m 2 הוראות לנבחן: )1( הבחינה מו

Microsoft Word - tutorial Dynamic Programming _Jun_-05.doc

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

Microsoft Word - Ass1Bgu2019b_java docx

Slide 1

תאריך פרסום: תאריך הגשה: מבנה נתונים תרגיל 5 )תיאורטי( מרצה ומתרגל אחראים: צחי רוזן, דינה סבטליצקי נהלי הגשת עבודה: -את העבודה יש לה

מבוא למדעי המחשב

הגשה תוך שבוע בשעת התרגול

אוניברסיטת בן-גוריון המחלקה למדעי המחשב בוחן במבנים בדידים וקומבינטוריקה פרופ' מתיא כ"ץ, ד"ר עופר נימן, ד"ר סטוארט סמית, ד"ר נתן רובין, גב'

אוניברסיטת חיפה החוג למדעי המחשב מרצה: שולי וינטנר מתרגלים: נעמה טוויטו, מחמוד שריף מבוא למדעי המחשב סמסטר א' תשע"ב בחינת סיום, מועד א', הנחי

מבחן סוף סמסטר מועד ב 28/10/08 מרצה אחראית: דר שירלי הלוי גינסברג מתרגלים: גלעד קותיאל, גדי אלכסנדרוביץ הוראות: א. בטופס המבחן 6 עמודים (כולל דף זה) ו

מבוא למדעי המחשב

מבוא למדעי המחשב - חובלים

תכנות דינמי פרק 6, סעיפים 1-6, ב- Kleinberg/Tardos סכום חלקי מרחק עריכה הרעיון: במקום להרחיב פתרון חלקי יחיד בכל צעד, נרחיב כמה פתרונות אפשריים וניקח

שאלהIgal : מערכים דו מימדיים רקורסיה:

מבוא למדעי המחשב

Microsoft Word - solutions.doc

מס' סידורי: ת.ז.: עמוד 1 מתוך 20 בחינה בתוכנה 1 סמסטר ב', מועד א',תשס"ט 5/7/2009 וולף, ליאור ליאור שפירא, נעמה מאיר, מתי שמרת הוראות )נא לקרוא!( משך ה

Microsoft Word - c_SimA_MoedB2005.doc

פקולטה: מחלקה: שם הקורס: קוד הקורס: מדעי הטבע מדעי המחשב ומתמטיקה מתמטיקה בדידה תאריך בחינה: _ 07/07/2015 משך הבחינה: 3 שעות סמ' _ב' מועד

MathType Commands 6 for Word

מדריך למרצים ומתרגלים 1

תרגיל בית מספר 1#

áñéñ åîéîã (ñéåí)

PowerPoint Presentation

Microsoft PowerPoint - rec1.ppt

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

Slide 1

Microsoft PowerPoint - T-10.ppt [Compatibility Mode]

תכנון אלגוריתמים, אביב 1021, תרגול מס' 4 תכנון דינאמי תכנון דינאמי בתרגול זה נדון בבעיית הכפלת סדרת מטריצות (16.1.(CLR ראשית נראה דוגמא: דוגמא: תהינה

YLA Crochet Along פרויקט לסרוג יחד YLA חלק 6 בחלק 6 של לסרוג יחד זה נהפוך את שני העיגולים האחרונים לריבועים ונחבר את ארבעת הריבועים יחד לריבוע אחד גדו

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

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

Microsoft Word - SDAROT 806 PITRONOT.doc

Slide 1

מבוא למדעי המחשב

Microsoft Word - Cosmic CAL Part 2 Hebrew Final

פקולטה לחינוך מנהל סטודנטים Beit Berl College الكلية االكاديمية بيت بيرل 20/06/2016 י"ד/סיון/תשע"ו ייעוץ וירטואלי הרכבת מערכת )רישום לקורסים( באמצעות

PowerPoint Presentation

לדרך... מה נלמד? תרגילים חיבור מספרים מכוונים נלמד את כללי החיבור של מספרים מכוונים. )תשובות לתרגילים בפרק זה-בעמ' (.Ⅰ

מקביליות

משימה תכנית המתרגמת קטעי טקסט לשפה אחרת הקלט: קובץ המכיל את קטעי הטקסט וכן את השפה אליה רוצים לתרגם תרגול מס' 4: המתרגם שימוש במחלקות קיימות תכנות מתק

מצגת של PowerPoint

<4D F736F F D20F4F2E5ECE5FA20EEE5EEF6E0E5FA20312E646F63>

<4D F736F F D20E7E5F7E920E0E9EEE5FA20E1E8E1ECE42E646F63>

Slide 1

תורת החישוביות תרגול הכנה לוגיקה ותורת הקבוצות מה יש כאן? בקורס תורת החישוביות נניח ידע בסיסי בתורת הקבוצות ובלוגיקה, והכרות עם מושגים בסיסיים כמו א"ב

תמליל:

דפנה לוי רשתי מדעי המחשב יסודות מדעי המחשב #C מערך דו-ממדי - יחידת לימוד ש"ש ידע קודם מערך חד ממדי, מחלקות ועצמים, שימוש בפעולות פתיחה הקנייה מטרה הוכחה לרלוונטיות וחשיבות החומר הנלמד, שתגרום לתלמידים לגלות עניין ומעורבות בשיעור הצגת מערך דו ממדי, הגדרת הנושא והמושגים המרכזיים, לימוד, להעמקה והקניית ידע. הצגת משחק לוח שולה מוקשים, משחק החיים וכד' דיון כיצד נייצג את המשחק לוגית מצגת התנסות ההערכה התנסות פעילה, בהלימה למטרות השיעור ובדגש על: אקטיביות, העמקת ידע ופיתוח חשיבה מסדר גבוה. שימוש בכלים של למידת חקר בדיקה האם אכן עמדנו במטרות השיעור ומגלים נקודות הדורשות חיזוק בהמשך. דפי עבודה מצורפים כנספח א. כוללים סיכום של החומר שנלמד את דפי העבודה אני נותנת במשולב עם המצגת. מציגה חלק, נותנת חלק מדפי העבודה וכן הלאה בדיקת דפי העבודה ומתן משוב לתלמיד. אם קיים קושי תת הנושר מוסבר מחדש, ו/או הפתרון מוצג על הלוח סיכום השיעור שיעורי בית עצם ביצוע ההערכה מעבירה מסר של התייחסות מקצועית ורצינית לתלמיד, דרישה ללמידה והוקרת הלמידה. בעקבות ההערכה נוכל לתת מטלות המשך בהתאם לרמת ההבנה שהושגה וכמובן לאתר תלמידים הזקוקים לחיזוק. סקירה קצרה של הנושא ודיון. דיון בפרוייקט המסכם משחק מחשב, ביחידים, זוגות או קבוצות. תוך ציון של החשיבות והמשמעות שיש לשיעורי הבית על הלמידה, במקצוע בכלל ובנושא בפרט תרגילי תכנות. בסוף התהליך בניית משחק בקבוצות. במידת האפשר ונסיונו של המורה, משחק גרפי. דפנה לוי רשתי, 9

. פתיחה לקראת השיעור שיעורי בית לתלמידים לכתבו תוכנית tic tac toe )"איקס מיקס דריקס"( כאשר לוח המשחק מיוצג על ידי מערך חד ממדי בגודל 9. הצגת משחק לוח פשוט כמו שולה המוקשים או משחק החיים. מומלץ - משחק אסטרטגיה מופשט ללא אלמנט מזל, בו קיימת ידיעה מלאה ובכל רגע כל השחקנים יודעים הכול על מצב המשחק. המהלכים מתבצעים בזה אחר זה, ולא בו זמנית. בתחילת השיעור לתת לילדים לשחק באחד המשחקים כדוגמת: http://minesweeperonline.com/ https://playpager.com/othello-reversi/ https://www.coolmathgames.com/-checkers https://www.mathsisfun.com/games/connect.html https://www.mathsisfun.com/games/cleanup-puzzle.html https://gomokuonline.com/ דיון בש"ב קודמים )איקס עיגול( ייצוגים אפשריים ללוח. דיון כיצד נייצג את משחק הלוח הדו ממדי. הקנייה אני משתמשת במצגת. סרטונים רלבנטיים: https://www.youtube.com/watch?v=dw-totdgqo https://www.youtube.com/watch?v=yedeufzk הנושאים: טיפוס הנתונים של המערך הדו ממדי הגדרה ואתחול מערך דו ממדי דגש על האופי הדו שלבי מצייני המערך ובמיוחד השורה הראשונה והאחרונה והעמודה הראשונה והאחרונה ממדי המערך מערך דו ממדי כעצם מעבר על תאי המטריצה, לרבות מעבר חלקי הגדרת שכנים של תא מטריצה ריבועית אלכסונים מערך מונים וצוברים מערך דו ממדי של עצמים. התנסות דף עבודה הכולל סיכום המידע שהוצג במצגת ותרגול )מצ"ב כנספח א'( דפנה לוי רשתי, 9

. הערכה מילולית, ניתן ציון על ההשקעה בתרגול ופתרון דפי העבודה ולא על נכונות הפתרונות.. סיכום הנושא חזרה וסיכום, דיון הייצוגים של משחקים שונים. שימוש במערך עצמים.. שיעורי בית אני חסידת התרגול בבית. בכל שיעור התלמידים מקבלים ש"ב להגשה. פתרון בסביבת העבודה. התלמידים פותרים את רוב התרגילים בספר הלימוד. לעיתים אני מוסיפה תרגילים. מצורף בנספח ב' אוסף תרגילים, לא כולם שלי, אך אינני יודעת להתחקות על המקור, לנוחיות מי שהתלמידים בכיתתו אינם מצוידים בספר לימוד מסודר. דפנה לוי רשתי, 9

נספח א' מערך דו-מימדי דף עבודה מערך דו מימדי )מטריצה( מורכב משורות ועמודות, במבנה של טבלה, כל האיברים/תאים במערך זה הם משתנים מאותו טיפוס. הגדרת מערך דו מימדי: ;שם_משתנה_ההפנייה ], [ טיפוס_תא משתנה מטיפוס הפניה )כתובת( למערך דו מימדי סימן למערך דו מימדי לאחר ההגדרה, לאו דווקא בצמוד, יש להקצות מקום בזיכרון למערך: טיפוס כל תא במערך ;[מספר_עמודות,מספר_שורות [ טיפוס_תא = new שם_משתנה_ההפנייה פעולה זו בונה בזיכרון מערך דו- מימדי של משתנים מטיפוס טיפוס_תא, בגודל המבוקש. שימו - המערך הוא קבוצה מסודרת של משתנים מאותו טיפוס, בעלי שם משותף ומספרים סידוריים, דבר המאפשר לפנות אל כולם על ידי לולאות. דרך מקובלת יותר היא להגדיר את המערך ולהקצותו בו זמנית: ;[מספר_עמודות,מספר_שורות [ טיפוס_תא = new ], [ שם_משתנה_ההפנייה טיפוס_תא דוגמאות להגדרת מערך דו-מימדי )קודם מספר שורות, אח"כ מספר עמודות(: ; [,] int int [,] grades=new מערך בן שורות ו- עמודות double [,] heights=new double [,]; COL=; const int ROW=, מערך בן שורות ו- עמודות double [,] grades=new double [ROW,COL] ; דפנה לוי רשתי, 9

כאמור, ניתן גם להצהיר על המערך, ורק אח"כ לאתחל אותו )שורת ההצהרה תבוא תמיד לפני האתחול, לא חייב ברצף(: const int ROW=, COL=; int [,] grades; double [,] heights;.. grades=new int [,] ; מערכים אלו נבנו בזיכרון. למרות שיש בהם ערכי ברירת מחדל, יש לתת לכל תא ערך התחלתי לפני פניה אליו. מערך מונים ומערך צוברים חובה לאפס. ניתן גם לאתחל מערך דו-מימדי בדרך מקוצרת: נקבל: Int[,] mat =,,,,,,,,9,,, ; mat 9 המשתנה mat מכיל הפניה )כתבות( למערך. נהוג לומר שזהו "שמו" של המערך, אך לאמיתו של דבר זהו שם המשתנה המכיל את ההפניה למערך בזיכרון )כתבות(. פנייה לאיבר/תא במערך דו-מימדי נעשית על ידי ציון מספר שורה ואחריו מספר עמודה: [ מספר עמודה, מספר שורה ] mat דפנה לוי רשתי, 9

mat עמודות שורות במערך זה שורות, ו- עמודות. סמן בתא mat[,] את הערך, ובתא mat[,] את הערך. התבונן בהוראות שלפניך. אם ניתן לשרטט את המערך, או להכניס את הערך המבוקש, עשה זאת, אחרת, רשום בקצרה מה הבעיה: int [, ] a; int [, ] b = new int[,]; double [, ] c; int [, ] d; a = new [,]; c = new [.,.]; e = new [,]; סמן בתא [,]a את הערך סמן בתא [,]a את הערך סמן בתא [,]b את הערך סמן בתא [,]c את הערך סמן בתא [,]d את הערך סמן בתא [,]e את הערך דפנה לוי רשתי, 9

כיצד נדע מה גודלו של המערך? בניגוד למערך חד מימדי בו יש רק מימד אחד, במערך דו-מימדי שני מימדים )מימד השורות ומימד העמודות(, ולכן נשתמש בהוראה )מספר המימד( GetLength : על מנת לקבל את מספר השורות mat.getlength() על מנת לקבל את מספר העמודות mat.getlength() שימו : מספר השורה האחרונה הוא mat.getlength()- שימו : מספר העמודה האחרונה הוא mat.getlength()- מעבר על כל התאים: על מנת לעבור על כל התאים במערך דו-מימדי, אנו זקוקים ל- לולאות מקוננות. א. מעבר על שורות ובכל שורה על כל התאים )לפי עמודה( הלולאה החיצונית עוברת על כל השורות, הלולאה הפנימית עוברת על כל העמודות בשורה בודדה. לולאה על כל השורות// i++) for ( i= ; i<mat.getlength() ; לולאה על העמודות בשורה בודדה = התאים בשורה// j++) for ( j= ; j< mat.getlength() ; לולאה זו עוברת שורה שורה על כל התאים במערך, לפי הסדר: mat 9 9 דפנה לוי רשתי, 9

א. מעבר על עמודה ובכל עמודה על כל התאים )לפי שורה( הלולאה החיצונית עוברת על כל העמודות, הלולאה הפנימית עוברת על כל השורות בעמודה בודדה. לולאה על כל העמודות// j++) for ( j= ; j<mat.getlength() ; לולאה על השורות בעמודה בודדה = התאים בעמודה// i++) for ( i= ; i< mat.getlength() ; לולאה זו עוברת עמודה עמודה על כל התאים במערך, לפי הסדר: mat 9 9 מהן הלולאות הרלבנטיות כדי לעבור על המערך בסדר המסומן? mat א. 9 9 for ( i= ; i ; i ) for ( j= ; j ; j ) דפנה לוי רשתי, 9

mat ב. 9 9 for ( i= ; i ; i ) for ( j= ; j ; j ) mat ג. 9 9 for ( _= ; ; ) for ( _= ; ; ) ג. mat 9 9 for ( _= ; ; ) 9 דפנה לוי רשתי, 9

for ( _= ; ; ) הדפסת מערך דו מימדי: for ( i= ; i< mat.getlength() ; i++) for ( j= ; j< mat.getlength() ; j++) Console.Write (mat [ i, j ]+" "); קליטה למערך דו מימדי ב"שם" mat המכיל מספרים שלמים: for ( i= ; i< mat.getlength() ; i++) for ( j= ; j< mat.getlength() ; j++) סכום שורות for ( i= ; i< mat.getlength() ; i++) sum = ; for ( j= ; j< mat.getlength() ; j++) sum+= mat [ i, j ] ; חישוב סכום עמודות for ( j= ; j< mat.getlength() ; j++) sum = ; for ( i=; i < mat.getlength() ; i++) sum+= mat [ i, j] ; דפנה לוי רשתי, 9

מעבר מותנה על התאים עד להתקיימות תנאי מסויים דוגמאות : האם איבר נמצא במערך? האם אין במערך ערך מסויים? האם סכום האיברים גדול מ-? ניתן, כמובן, להשתמש בלולאות for מקוננות, המשמשות למעבר על כל התאים: דוגמה: האם הערך נמצא במערך? bool found = false; for ( i= ; i<mat.getlength() ; i++) for ( j= ; j< mat.getlength() ; j++) if (mat[i,j] == ) found = true; עדיף, מטעמי יעילות, להשתמש בלולאות while מקוננות: לולאה זו מצריכה אתחול לפני הלולאה bool found = false; int i = ; // כנ"ל // ; = j int while (!found && i<mat.getlength()) while (!found && j< mat.getlength()) if (mat[i,j] == ) found = true; לולאה זו מצריכה קידום בתוך הלולאה קידום של משתנה הלולאה // ;++j הפנימית לולאה זו מצריכה קידום בתוך הלולאה קידום של משתנה הלולאה החיצונית // ;++i דפנה לוי רשתי, 9

תרגול : האם סכום המערך גדול מ-? int i = int j = while ( && i<mat.getlength()) while ( && j< mat.getlength()) תרגול: נתון מערך דו מימדי.mat כתבו קטע קוד המשתמש בלולאות,while הבודק אם כל עמודות המערך ממויינות בסדר עולה ממש )ללא כפילויות( 9 9 9 9 דפנה לוי רשתי, 9

while ( && mat.getlength( )) while ( && mat.getlength( )) מערך דו מימדי ופעולות:. פעולה המקבלת מערך דו מימדי כפרמטר: public static return_value FunctionName(parameters) כאשר מערך נשלח כפרמטר פעולה, יש לכתבו את טיפוס המערך, העובדה שמדובר במערך, ושם המשתנה המקומי המפנה למערך: דוגמה: פעולה אשר מחזירה סכום מערך של מספרים ממשיים: public static double ArrSum(double[, ] arr) טענת כניסה: הפעולה מקבלת מערך דו מימדי של מספרים ממשיים // טענת יציאה: הפעולה מחזירה את סכום המערך// double sum =.; for ( i= ; i< arr.getlength() ; i++) for ( j= ; j< arr.getlength() ; j++) sum += arr[i,j]; return sum; דפנה לוי רשתי, 9

. מערך מאותחל//.,-9.,-.;.,.,., = a double[, ] doube arrsum = ArrSum(a); זימון הפעולה בתוכנית: a... -9.. -. זהו תיאור של המערך לאחר השורה הראשונה. בעת הזימון, ולצורך הפעולה, נוצר בפעולה משתנה מקומי בשם arr )הפרמטר(, שמצביע אף הוא על המערך: a... -9.. -. arr לכן, שימו - גם כאשר המערך משתנה בתוך הפעולה, אין צורך להחזיר אותו כ"ערך מוחזר". public static void Add(int[, ] arr) טענת כניסה: הפעולה מקבלת מערך דו מימדי של מספרים שלמים // טענת יציאה: הפעולה מוסיפה לכל איבר במערך// for ( i= ; i< arr.getlength() ; i++) for ( j= ; j< arr.getlength() ; j++) arr[i,j] += ; return sum; דפנה לוי רשתי, 9

. מערך מאותחל//,,;,,, = a Int[, ] זימון הפעולה בתוכנית: Add(a); a arr השינוי במערך נעשה תוך כדי שימוש בהפניה,arr אך כמובן, זהו אותו מערך אליו מפנה המשתנה a בתוכנית הראשית. כתבו את כותרת הפעולות הבאות: א. פעולה המקבלת מערך דו מימדי של תווים ובודקת האם התו @ נמצא במערך: ב. פעולה המקבלת מערך דו מימדי של מחרוזות ומחרוזת, ומשנה כל מחרוזת shalom למחרוזת המועברת כפרמטר. ג. פעולה המקבלת שני מערכים דו מימדיים של שלמים ובודקת האם הם זהים דפנה לוי רשתי, 9

כתבו את הפעולות הבאות: א. פעולה המקבלת מערך דו מימדי של שלמים ומחזירה את השורה בה נמצא הערך המקסימלי: public static RowWithMaxValue( ) טענת כניסה: // טענת יציאה: // ב. פעולה המקבלת מערך דו מימדי של שלמים ומשנה את ערכי כל תא בשורה בה נמצא הערך המקסימלי, לערך העמודה של אותו תא. יש להשתמש בפעולה מסעיף א'. public static ChangeRow( ) טענת כניסה: // טענת יציאה: // דפנה לוי רשתי, 9

. פעולה המחזירה מערך: public static cell_type FunctionName(parameters) כאשר הפעולה מחזירה מערך דו מימדי, יש לכתבו בכותרת את טיפוס ערכי המערך, והעובדה שמדובר במערך דו-מימדי. דוגמאות: פעולה שמקבלת מספר שורות ועמודות ומחזירה מערך דו מימדי רנדומלי של שלמים: public static int[, ] RandomMatrix(int row, int col) פעולה שמקבלת מספר ומחזירה את לוח הכפל עד מספר זה: public static int[, ] MultiplicationTable(int num) פעולה שתקלוט את מספר השורות והטורים בכיתה, ואת שמות התלמידים, ותחזיר את מערך הישיבה בכיתה public static string[, ] MyClass() פעולה המקבלת מערך דו-מימדי של מספרים שלמים ומחזירה מערך בוליאני מקביל, ובו, אם יש בתא במערך הנתון יופיע,true אחרת false public static bool[, ] BuildBoolArr(int[,] arr) שימו - כאשר המערך מועבר כפרמטר, אין צורך להחזירו. בפעולות המחזירות מערך, נוצר המערך בתוך הפעולה! בהוראת ה- return יש לכתבו את ההפניה למערך )"שם המערך"( בלבד! public static int[, ] RandomMatrix(int row, int col) טענת כניסה: הפעולה מקבלת מספר שורות ומספר עמודות // טענת יציאה: הפעולה מחזירה מערך דו מימדי רנדומלי בגודל זה// int[, ] a = new int[row,col]; Random rnd = new Random(); for ( i= ; i< row; i++) return a; for ( j= ; j< col ; j++) a[i,j] = rnd.next(int.minvalue, Int.MaxValue); דפנה לוי רשתי, 9

כתבו את הפעולות הבאות: א. פעולה המגרילה אורך ורוחב למטריצה, בין ל 9, כולל, ומחזירה מטריצה בה הערכים הם מספר המורכב ממספר השורה ואחריו מספר העמודה. public static BuildMatrix( ) טענת כניסה: // טענת יציאה: // ב. פעולה המקבלת מטריצות שלמים זהות מימדים ומחזירה מטריצה בוליאנית, בה ערך כל תא הוא אמת או שקר בהתאם לשאלה האם התאים המקבילים במטריצות הנתונות זהים. public static ChangeRow( ) טענת כניסה: // טענת יציאה: // דפנה לוי רשתי, 9

מערך דו-מימדי ריבועי מערך דו-מימדי ריבועי בגודל nxn נקרא גם מטריצה ריבועית, וקיימים בו שני אלכסונים: אלכסון ראשי אלכסון משני כל איברי האלכסון הראשי )משמאל מעלה לימין מטה( הם מסוג mat[i,i] - המציינים של השורה והעמודה זהים כל איברי האלכסון המשני )מימין מעלה לשמאל מטה( הם מסוג mat[i,n--i] סכום המציינים שווים לאורך/רוחב המטריצה פחות חישוב סכום האיברים באלכסון הראשי. במטריצה mat מגודל N. x N sum = ; for ( i=; i < N ; i++) sum+= mat [ i, i] ; Console.Write ("The sum of main diagonal is: "+sum); חישוב סכום האיברים באלכסון המשני. במטריצה mat מגודל N. x N sum = ; for ( i=; i < N ; i++) sum+= mat [ i, N- i ] ; Console.Write ("The sum of second diagonal is: "+sum); 9 דפנה לוי רשתי, 9

שימו במערך שאינו ריבועי, אין אלכסונים )ב- Length הכוונה ל- (. GetLength,,Length()-,,, Length()-,, Length()-,, Length()-, Length()-, Length()-, Length()- תאים סמוכים לתא במערך דו-ממדי )שכנים( שאלות רבות עוסקות בשכנים של תא מסוים, שכנים לאיבר/תא הם איברים המקיפים את האיבר במקום y[ ]x,. יש לשים - האם מדובר בכל הסמוכים ) במספר בתא פנימי, פחות בשוליים( או שכנים ללא אלו באלכסון )למעלה, למטה, ימין ושמאל בתא פנימי, פחות בשוליים(, או אולי דווקא רק האלכסונים )כנ"ל(. x-,y- x,y- x+,y- x-,y x,y x+,y x-,y+ x,y+ x+,y+ דוגמה: פעולה המקבלת מערך דו-מימדי ומצייני תא )אינדקסים(. הפעולה תחזיר את סכום התאים השכנים לתא. טענת כניסה: טענת יציאה: דפנה לוי רשתי, 9

static int sum_of_niegboors ( mat_type m, int x, int y ) int sum=; מספר השורות במערך הדו-מימדי = rows rows = m.getlength(); // מספר העמודות במערך הדו- מימדי = cols cols = m.getlength(); // for (int i= x - ; i<= x+ ; i++ ) for (int j= y- ; j<= y+ ; j++ ) לא לכל תא יש שכנים! בקצוות המערך ישנם פחות שכנים // if ((i>=)&&(i<rows) && (j>=) && (j>cols)) sum += m[ i,j ]; return sum; דפנה לוי רשתי, 9

נספח ב' תרגול יסודות מדעי המחשב מערך חד-מימדי 9 'י' 'ד' 'מ' 'י' 'מ' 'ו' 'ד' 'ך' 'ר' 'ע' 'מ' '-' ' ' 'ר' 'ט' 'ו' 'ו' 'ד' ל' 'ו' 'ג' 'ס' 'ה' 'י' 'ב' ' ' ' ' ' ' ' ' ' ' 'ן' 'י' 'ג' 'ב' 'ן' 'י' 'ב' 'ר' ' ' את כל הפעולות יש לכתבו בתוכנית אחת. יש להוסיף את פעולת ההדפסה: public static void PrintMatrix(int[,] mat) for (int i = ; i < mat.getlength(); i++) for (int j = ; j < mat.getlength(); j++) Console.Write(",",mat[i,j]); Console.WriteLine(); יש להוסיף ל- main זימונים הבודקים את הפעולות. א. בניית מערכים דו-ממדיים: כתבו פעולה המקבלת מספר שורות ומספר עמודות ומחזירה מערך דו-מימדי שבו ערך כל תא הוא מספר רנדומלי בין שני המציינים )האינדקסים( של התא )כולל(. כתבו פעולה המקבלת מספר שורות ומספר עמודות ומחזירה מערך דו-מימדי שבו ערך כל תא הוא התו שערכו הוא המציין )האינדקס( הגבוה מבין שני האינדקסים של התא. כתבו פעולה המקבלת מספר שורות ומספר עמודות ומחזירה מטריצה המהווה את לוח הכפל בגודל זה. כתבו פעולה המקבלת מספר הגדול מ-, ומחזירה מערך דו מימדי ריבועי, המדמה לוח דמקה )'B' עבור משבצת שחורה, 'W' עבור משבצת לבנה(..... דפנה לוי רשתי, 9

כתבו פעולה המקבלת מספר גדול מ-, ומחזירה מטריצה בוליאנית ריבועית שבה יהלום, F F T T F F במבנה הבא: F T F F T F T F F F F T T F F F F T F T F F T F F F T T F F F F T F F F T F T F T F F F T F T F T F F F T F F.. משולש פסקל הוא משולש בו כל תא שווה לסכום התאים מעליו: כתבו פעולה אשר מקבלת מספר שורות ומחזירה את משולש פסקל הרלבנטי: דפנה לוי רשתי, 9

ב. עבודה על מטריצות מטריצה תיקרא "ממוינת שורות" אם בכל שורה האיברים ממוינים בסדר עולה ממש. מטריצה תיקרא "ממוינת עמודות" אם בכל עמודה האיברים ממוינים בסדר עולה ממש. מטריצה תיקרא "ממוינת לחלוטין" אם בכל שורה ובכל עמודה האיברים ממוינים בסדר עולה ממש.. - - 9 ממוינת שורות ממוינת לחלוטין כתב/י תוכנית הקולטת למטריצה בגודל מספרים שלמים. פלט התוכנית היא הודעה האם המטריצה ממוינת שורות, ממוינת עמודות או ממוינת לחלוטין. יש לכתבו פעולות מתאימות. מטריצה סימטרית היא מטריצה שבה מתקיים:.A]I,J[=A]J,I[ א. תן/י דוגמה למטריצה סימטרית בגודל. ב. כתב/י פעולה המחזירה אמת כאשר המטריצה היא סימטרית.. כתב/י פעולה המקבלת מטריצה בגודל N, x N ומחזירה מטריצה בה הוחלפו האיברים בין האלכסון הראשי לאלכסון המשנה..9. מטריצה דלילה היא מטריצה ריבועית )N N( בה מתקיימים שני התנאים הבאים: ) I מספר איברי המטריצה השונים מאפס הוא פחות מעשרים אחוז מאיברי המטריצה. ) II בכל שורה יש לכל היותר שני איברים השונים מאפס. למשל, המטריצה הבאה היא מטריצה דלילה: 9 דפנה לוי רשתי, 9

א. כתב/י פעולה המקבלת מטריצה ומחזירה אמת כאשר המטריצה היא מטריצה דלילה. ב. מטריצה דלילה ניתן לשמור בזיכרון באמצעות שלושה מערכים חד ממדיים, כאשר המערך הראשון מכיל את איברי המטריצה השונים מאפס. שני המערכים האחרים מכילים את האינדקסים של השורה והעמודה של איברים אלה. לדוגמא, שלושת המערכים שישמרו את המטריצה הדלילה הנ"ל הם: 9 מערך ערכים מערך שורות מערך עמודות כתב/י פעולה המקבלת כפרמטרים את שלושת המערכים ואת מספר איברי המטריצה המקורית, ומחזירה את המטריצה הדלילה בצורתה המקורית. נתון מערך דו מימדי a של מספרים שלמים )לאו דווקא חיובים(. כתבו פעולה שתקבל כקלט את המערך a ותחזיר מערך חדש בו כל איבר b[i,j] הוא מספר האיברים החיוביים, מבין השכנים של a[i,j] במערך המקורי. הערה: איברים שכנים לאיבר מסוים הם אלה הנמצאים על ידו בשורה או בעמודה. דוגמה: אם =N והמערך a הוא. - - 9 - - - - אזי מערך b הוא:. נתון מערך דו מימדי a של מספרים שלמים )לאו דווקא חיובים(. כתבו פעולה שתקבל כקלט את המערך a ותחזיר מערך חדש בו כל איבר b[i,j] הוא מספר האיברים החיוביים, מבין האיברים הסמוכים של a[i,j] במערך המקורי. הערה: איברים סמוכים לאיבר מסוים הם אלה הנמצאים על ידו בשורה, בעמודה או באלכסון. דוגמה: אם =N והמערך a הוא - - 9 - - - - אזי מערך b הוא: דפנה לוי רשתי, 9

"ריבוע לטיני" הוא ריבוע המכיל מספרים כך שכל מספר לא מופיע יותר מפעם אחת בשורה או בעמודה שלו. כתב/י שגרה המקבלת מטריצה בגודל NxN ומחזירה אמת כאשר המטריצה היא ריבוע לטיני... נתון מערך של מספרים שלמים )צור/י אותו ע"י ערכים אקראיים בין -(. כתב/י תוכנית שתקלוט מספרים מהמשתמש ותסדר אותם במערך. התוכנית תדפיס את המערכים, ותקבע האם המערך הקטן מוכל במערך הגדול. לדוגמה: >===== <. כתב/י פעולה המקבלת שני מערכים דו מימדיים ובודקת האם מערך אחד מכיל את המערך השני )הכללה של תרגיל (. ג. שאלות סיפור, המצריכות מבנה נתונים של מערך דו ממדי. בערב בינגו חילקו טפסים המכילים מספרים אקראיים בין ל-. הכנס/י ערכים אקראיים לשני טפסים ריבועיים שחולקו במסיבה והדפס את הטפסים. כתב/י תוכנית שמדמה את רשימת המספרים שהוגרלו במסיבה עד לקבלת טופס מנצח ראשון. הדפס/י מי ניצח. שם/י לב כי יתכנו שני מנצחים בו זמנית.. טבלת המרחקים הבאה מכילה את המרחק בין כל שתי ערים: מספר עיר A A B C D B C D )למשל המרחק בין עיר A לעיר C הוא ק"מ(. א. ב. כתב/י פעולה המקבלת טבלת מרחקים ועיר ומחזירה שם העיר הרחוקה ממנה ביותר ואת המרחק בניהן. כתב/י תוכנית המדפיסה עבור כל עיר את שם העיר הכי רחוקה ממנה. דפנה לוי רשתי, 9

ג. מעונינים להקים תחנת מגן דוד אדום המשותפת לכל הערים. התחנה תמוקם בעיר שמרחקה מכל הערים האחרות הוא הקטן ביותר. כתב/י תוכנית בה הקלט הוא מרחקים בין כל שתי ערים )טבלת מרחקים( ומדפיסה את העיר בה תמוקם התחנה.. בחנות סופרמרקט ישנן קופות ו- מחלקות. לגבי כל קנייה רושמים את המספר הסידורי של הקופה, את מחיר הפריט ואת המספר הסידורי של המחלקה שאליה שייך הפריט. בסוף כל יום אוספים את הרישומים האלה מכל הקופות. כתב/י תוכנית שתקבל כקלט את אוסף הרישומים האלה ותקבע: א. את מספר הפריטים שנמכרו מכל מחלקה ומחלקה ואת שווים הכספי הכולל. ב. את הפדיון הכספי הכולל של כל קופה וקופה. ג. מאיזו מחלקה נמכרו סחורות בערך הכספי הגדול ביותר. 9. המשרד לאיכות הסביבה מדד את רמת זיהום האוויר במשך שנה ב- ישובים ברחבי המדינה. בכל ישוב נעשו מדידות אחת בכל חודש. כתב/י תוכנית שתבצע את הפעולות הבאות: הזיהום לתוך מערך דו תכניס מספרים אקראיים בין ל- )כולל(, שיציינו את רמת א. ממדי. ב ג. תקלוט את מספר החודש ותדפיס את ממוצע המדידות שנעשו באותו חודש בכל הישובים. דאג לתקינות מספר החודש. תקלוט את מספר היישוב )יש לדאוג לתקינות הקלט(, ותדפיס את רשימת המדידות של אותו יישוב, עם כותרת מתאימה.. ד. שאלות ברמת קושי גבוהה כתבו. א. פעולה המקבלת מערך דו מימדי של מספרים שלמים ובודקת האם המערך הוא ריבוע קסם: מופיעים בו כל המספרים מ- עד.n*n סכום כל השורות, כל העמודות והאלכסונים, זהה. ב. בכדי ליצור ריבוע קסם אי זוגי יש לבצע את התהליך הבא:. מקם את המספר באמצע השורה העליונה.. עלה משבצת אחת למעלה, ומשבצת אחת שמאלה, ומקם את המספר הבא. כל מספר נוסף ימוקם ע"פ תהליך זה.. אם התהליך הנ"ל גורם לחריגה מהלוח, יש לעבור לצידו ההפכי של הלוח: חריגה דפנה לוי רשתי, 9

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

בלוח ההתחלתי יהיו רבע תאים שבהם יצורים. התוכנית תייצר את הדורות הבאים כל עוד המשתמש ירצה זאת, ותדפיס כל דור. 9 דפנה לוי רשתי, 9