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

מסמכים קשורים
ex1-bash

דוגמאות שהוצגו בהרצאה 10 בקורס יסודות מערכות פתוחות דוגמה 1 דוגמאות של פונקציות ב- awk שמראות שהעברת פרמטרים של משתנים פשוטים היא by value והעברת פרמט

Microsoft Word - lec

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

MathType Commands 6 for Word

Slide 1

WinZIP תוכנה לדחיסת קבצים ספטמבר 2007

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

Microsoft Word - Ass1Bgu2019b_java docx

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

ייבוא וייצוא של קבצי אקסל וטקסט

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

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

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

תרגול מס' 4: המתרגם שימוש במחלקות קיימות מחרוזות, קבצים, וקבלת קלט מהמשתמש

<4D F736F F D20FAE5F1F4FA20ECE7E5E5FA20E3F2FA20ECE2E1E920E3E9F1F720FAEEE5F0E5FA20E6E9F8FA20E4F8F6E72E646F63>

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

Tutorial 11

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

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

פתרון וחקירת מערכות של משוואות לינאריות שאלות: 1( מצא אילו מהמערכות הבאות הן מערכות שקולות: 2x+ y= 4 x+ y= 3 x y = 0 2x+ y = 3 x+ 10y= 11 א. 2x 2y= 0

PowerPoint Presentation

ת'' מדריך לבעלי תיבה קיימת במופ ומשתמשים ב Outlook 2003 או doc.2007 לפני שניגש להגדיר את תיבת המייל החדשה, נבצע גיבויי של המיילים ופנקס הכתובות מהחשבו

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

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

2013/14 אוניברסיטת חיפה מבוא למדעי מחשב, מעבדה מטרת המעבדה: לתרגל את המעבר מאלגוריתם לקוד C כמה שיותר. הוראות:.1.2 ניתן לעבוד ביחידים או בזוגות. (יש מ

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

פסגות ע"ש ברוך ונגר בית ספר על יסודי מקיף ומכללה עבודת קיץ לבוגרי כיתה ז' קבוצת מיצוי " שכונה מערבית, רח' הפסגה 17 כרמיאל דוא"ל:

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

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

Microsoft Word - c_SimA_MoedA2006.doc

Microsoft Word B

הטכניון מכון טכנולוגי לישראל אלגוריתמים 1 )443432( סמסטר חורף הפקולטה למדעי המחשב תרגול 9 מסלולים קלים ביותר תרגיל APSP - 1 עד כה דנו באלגור

<4D F736F F D20F4F2E5ECE5FA20EEE5EEF6E0E5FA20312E646F63>

PowerPoint Presentation

Slide 1

תרגיל 9 מבוא ללוגיקה ותורת הקבוצות, סתיו תשע"ד 1. תהי L השפה בעלת סימן פונקצייה דו מקומי G, סימן פונקציה חד מקומי T, סימן יחס תלת מקומי.c, d וקבועים L

Limit

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

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

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

מכללת הדסה, הפקולטה למדעי המחשב מבוא לתכנות מונחה עצמים והנדסת תוכנה סמסטר א', תשע"ו תרגיל 2 תאריך אחרון להגשה: קמפוס הנביאים יום א', 29/11/2015 בשעה

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

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

מספר נבחן / תשס"ג סמסטר א' מועד א' תאריך: שעה: 13:00 משך הבחינה: 2.5 שעות בחינה בקורס: מבחנים והערכה א' מרצה: ד"ר אבי אללוף חומר עזר

1 בגרות עח יולי 18 מועד קיץ ב שאלון x b 2 2 y x 6x שיעור ה- א x לכן, של קדקוד הפרבולה, ו-, מתקבל על ידי הנוסחה a. C(3, 9) ובהתאם, y. (3, 9) 2 C

Microsoft Word - sync_LG.doc

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

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

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

ע 003 מרץ 10 מועד מיוחד פתרונות עפר

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

PowerPoint Presentation

<4D F736F F D20F4FAF8E5EF20EEE5F2E320E020F1EEF1E8F820E120FAF9F2E3>

PowerPoint Presentation

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

Slide 1

Microsoft PowerPoint - Lecture1

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

שיעור 1

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

. שאלה 1: ה אי x] T : R 4[ x] R 4[ אופרטור ליניארי מוגדר על-ידי T( ax bx cx d) bx ax cx c )13 נק'( א( מצאו את הערכים העצמיים, המרחבים העצמיים

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

עמוד 1 מתוך 5 יוחאי אלדור, סטטיסטיקאי סטטיסטיקה תיאורית + לוחות שכיחות בדידים/רציפים בגדול מקצוע הסטטיסטיקה נחלק ל- 2 תחומים עיקריים- סטט

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

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

חשבון אינפיניטסימלי מתקדם 1

עב 001 ינואר 12 מועד חורף פתרונות עפר

תוכנה 1 אביב תשע"ח תרגיל מספר 8 אוספים גנריים ו- framework collection הנחיות כלליות: קראו בעיון את קובץ נהלי הגשת התרגילים אשר נמצא באתר הקורס. הגשת ה

Slide 1

1 תבניות טקסט מהי תבנית טקסט? שימוש ב- Characters Meta שימוש ב- Expression Grouping שימוש ב- Quantifiers תת תבניות הפונקציה preg_match הפונקציה preg_m

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

סט נובמבר 08 מועד מיוחד - פתרונות עפר.doc

Microsoft Word - tutorial Dynamic Programming _Jun_-05.doc

המשימה תרגול מס' 5: קלט-פלט במערכות הפעלה שונות יש סימונים שונים עבור ירידת שורה :)newline( ב- UNIX/Linux )Line Feed( \n ב- Windows )Carriage Return +

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

PowerPoint Presentation

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

פתרונות לדף מס' 5

T01-1page

בגרות עז יולי 17 מועד קיץ ב שאלון ,000 א. ניתוח הנתונים מחירה של ספה הוא שקלים, והיא התייקרה ב-. 25% כאשר המחיר מתייקר ב- המחיר החדש הוא פי,

תכנון אלגוריתמים עבודת בית 4: תכנון אלגוריתמים תאריך הגשה: 02: , בצהריים,תא מספר 66 בקומת כניסה של בניין 003 מתרגל אחראי: אורי 0

Homework Dry 3

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

PRESENTATION NAME

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

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

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

עבודת קיץ לתלמידים כיתה ט' העולים לכיתה י (רמה 4-5 יחידות)

מטלב לפיסיקאים שיעור 1

מבנים בדידים וקומבינטוריקה סמסטר אביב תשע"ט מספרי רמזי תרגול 11 הגדרה: (t R = R(s, הוא המספר הטבעי הקטן ביותר כך שבכל צביעה של צלעות הגרף וכחול(, קיים

אנליזה מתקדמת

Slide 1

ניהול פלטים אפקטיבי

שיעור מס' 6 – סבולות ואפיצויות

Microsoft Word - אלגברה מעורב 2.doc

מבוא לאסמבלי

תמליל:

ביה"ס למדעי המחשב 4.2.2018 האקדמית נתניה מבחן מועד א' יסודות מערכות פתוחות סמסטר חורף, תשע"ח משך המבחן: שלוש וחצי שעות. יש לענות על כל השאלות. מותר השימוש בחומר עזר כלשהו, פרט למחשבים, (מחשבונים מותר). יש להקפיד על כתיבה ברורה ומסודרת של התשובות. 1.(20 נקודות) חלק א (5 נקודות) P1.1 שמבצעת את הצעדים expect בשם כתוב תכנית ב- הבאים: tmp מהתיקיה הנוכחית במידה וקיים 1. מוחקת קובץ בשם קובץ כזה. elinks לאתר שכתובתו: 2. ניגשת באמצעות http://www.xe.com/currencyconverter/ כתוצאה מכך מתקבל המסך הבא: 1

3. במסך הנ"ל התכנית מפעילה מכן enter (דהינו n\). ואז מתקבל המסך הבא: 3 פעמים חץ תחתון ולאחר 3. במסך הנ"ל התכנית מפעילה enter ומתקבל המסך הבא: 4. לאחר קבלת המסך הנ"ל התכנית שומרת אותו בקובץ tmp ואז יוצאת מ-.elinks 2

חלק ב (5 נקודות) בחלק זה ניתן להניח שקימת תוכנית בשם P1.1 שיוצרת קובץ בשם tmp לפי ההנחיות שתוארו בחלק א. להלן חלק מתוכן הקובץ tmp שהתכנית P1.1 יוצרת: כתוב/י תכנית סקריפט ב- bash בשם P1.2 שתפעיל את התכנית P1.1 שתוארה בחלק א ותדפיס את השורה שמתארת את הקשר בין שער הדולר לשער היורו. דהינו יש להדפיס את השורה שנמצאת אחרי השורה שמסומנת ב- [89]. לדוגמה, לאחר הפעלת התכנית התקבל הפלט: P1.2 בתאריך שבו נכתב המבחן 1 USD =0.806398EUR 3

חלק ג (10 נקודות) מה יתקבל בפלט (דהינו יוצג על המסך) לאחר הפעלת קטע הקוד הבא: echo "output 1:" x="(2x3y4)+(5z2)" echo $[$(echo $x tr x-z "*")] echo "output 2:" y=$(seq 2 2 9 tr "\n" ",") echo "ab cd ef gh ij kl mn op" cut -d" " -f$y echo "output 3:" echo " abhi1z1 ab cd" > F1 echo " aa 1ab abxza abd" >> F1 echo " az1 ababc ab1 " >> F1 echo " c2ha xi ab" >>F1 egrep "(^ [ ]+)(ab)+[cd]+([ ]+ $)" F1 echo "output 4:" echo 14 > F2 echo 8 >> F2 echo 10 >> F2 echo 5 >> F2 echo 16 >> F2 echo 4 >> F2 awk '{getline;s+=$1;getline;getline;s+=$1;print s}' F2 echo "output 5:" echo "@ab@cd@@fg@ij" awk 'BEGIN {FS="@"}{print $2":"$4":"$6}' 4

2.(10 נקודות) נגדיר שמילה היא רצף של תווים ללא תווי רווח וסוף שורה. כתוב תכנית Script ב- sed בשם P2 שמקבלת כפרמטר שם קובץ ומדפיסה לפלט את השורות בקובץ שהמילה השניה שלהן מורכבת מספרות בלבד והמילה השלישית שלהן מורכבת מאותיות אנגליות קטנות בלבד, כאשר בשורות שמודפסות לפלט מתבצעת החלפה בין המילה השניה למילה השלישית, כפי שמתואר בדוגמה שבהמשך. שימו לב שבזמן ההחלפה של המילה השניה והשלישית יש לשמור על הרווחים בין המילה השניה לשלישית וכן יש לשמור על הרווחים לפני המילה השניה ואחרי המילה השלישית. על המבנה של התכנית P2 להיות כדלהלן: התכנית מכילה שורה אחת או יותר של פקודות sed לדוגמה: sed s/dog/cat/ $1.sed אין להשתמש בפקודות שאינן של sed ושאינן מתחילות ב- מותר לכתוב לקובץ ביניים כמו למשל: sed s/dog/cat/ $1 > tmp מותר גם לקרוא מקובץ ביניים כמו למשל: sed s/dog/cat/ < tmp אסור להשתמש ב- pileline זאת אומרת המבנה הבא אסור: sed s/dog/cat $1 sed s/abc/def 5

ab cd dea 13333 a777 zz xy123 777 xyz xy123 81 XYZ r55 77 r55 77a bcd 12 12 55 abcd 12 813 a 77 34 לדוגמה, נניח שתוכן הקובץ F2 הוא: P2 F2 xy123 xyz 777 12 abcd 55 12 a 813 77 34 לאחר הפעלת התכנית ע"י הפקודה: יתקבל הפלט: 6

3.(30 נקודות) הגדרה האיבר 1: עבור מטריצה A (לא בהכרח ריבועית) נגדיר את A[i,j] כאיבר שנמצא בשורה i ועמודה j במטריצה. לדוגמה, עבור המטריצה A הבאה: 10 20 30 40 50 1 2 300 4 5 6 7 60 70 80 8 9.300 האיבר [2,3]A של המטריצה A הוא המספר הגדרה 2: B (לא בהכרח ריבועיות) נגדיר את A ו- עבור שתי מטריצות A-B כמטריצה שמתקבלת באופן הבא: מטריצת ההפרש A A[i,j] קיים במטריצה i,j כך שהאיבר עבור כל זוג מספרים j האיבר i ובעמודה A-B נמצא בשורה נגדיר שבמטריצת ההפרש שהערך שלו הוא: A[i,j]-B[i,j] אם האיבר B[i,j] לא קיים אזי מציבים 0 במקום B[i,j] בנוסחה הנ"ל. B לדוגמה, נניח שהמטריצה היא: A היא כפי שתואר לעיל והמטריצה 15 7 1 2 3 4 5 6 7 8 9 10-5 13 30 40 50 0 0 297 0 5 6 7 55 64 73 8 9 אזי מטריצת ההפרש A-B היא: 7

חלק א (15 נקודות) matrix_difference(file1,file2) כתוב פונקציה ב- awk בשם שמקבלת כפרמטרים שני שמות של קבצים file1 ו- file2 שמכילים מטריצות (לא בהכרח ריבועיות) ויוצרת קובץ tmp שמכיל את מטריצת ההפרש.file1-file2 לדוגמה, אם בתיקיה בה מופעת התכנית קיימים קבצים בשם A ו- B שמכילים את המטריצות A ו- B, שתוארו לעיל. אזי לאחר הקריאה לפונקציה: matrix_difference(a,b) תוכן הקובץ tmp יהיה ההפרש A-B כפי שתואר לעיל. חלק ב (15 נקודות) בחלק זה ניתן להניח שקיימת פונקציה בשם matrix_difference(file1,file2) שהגדרתה מתוארת בחלק א. כתוב/כתבי תכנית ב- awk (ללא שימוש בפקודה (system בשם P3 שמקבלת כפרמטרים רשימת שמות של קבצים שמכילים מטריצות (לא בהכרח ריבועיות) ומדפיסה עבור כל קובץ את שם הקובץ ולאחר מכן את תוכן הקובץ ולאחר מכן שורה שמתארת את ההפרש בין כל הקבצים, ולבסוף את תוכן מטריצת ההפרש של הקבצים. על הפלט להיות בפורמט כפי שמתואר בדוגמה שבהמשך. ראה/י דוגמה בעמוד הבא: 8

לדוגמה, נניח שתוכן הקבצים A ו- B הוא כפי שתואר לעיל ונניח שתוכן הקובץ C הוא: 1 1 1 1 2 2 4 6 8 3 5 7 9 2 4 6 8 10 12 ונניח שתוכן הקובץ D הוא: לאחר הפעלת התכנית על ידי הפקודה: P3 A B C D מתקבל הפלט: The matrix A is: 10 20 30 40 50 1 2 300 4 5 6 7 60 70 80 8 9 The matrix B is: 15 7 1 2 3 4 5 6 7 8 9 10 The matrix C is: 1 1 1 1 2 The matrix D is: 2 4 6 8 3 5 7 9 2 4 6 8 10 12 The matrix difference A-B-C-D is: -8 8 23 31 50-5 -5 290-9 5 6 7 53 64 73 4 3 לדוגמה ערך האיבר במקום 1,1 של מטריצת ההפרש הוא 8- והוא התקבל על ידי החישוב הבא: A[1,1]-B[1,1]-C[1,1]-D[1,1]=10-15-1-2=-8 9

4.(40 נקודות) במערכת המחשוב של האקדמית נתניה ישנה תיקיה בשם exams שבה שומרים נתונים על החדרים שבהם מתקימות הבחינות. מבנה התיקיה exam הינו כפי שמתואר בתרשים הבא שהתקבל מהפעלת הפקודה tree exams exams -- 2016 -- sem-a -- 2304 `-- 2305 -- sem-b -- 2304 `-- 2305 `-- sem-c -- 2304 `-- 2305 `-- 2017 -- sem-a -- 2304 -- 2305 `-- 2307 -- sem-b -- 2304 -- 2305 `-- 2307 `-- sem-c -- 2304 `-- 2305 8 directories, 14 files בדוגמה הנ"ל תוארו רק חלק מהקבצים והתיקיות ויש להניח שיש תיקיות נוספות עבור שנים נוספות וקבצים נוספים עבור חדרים נוספים. 10

נסתכל לדוגמה על הקובץ 2304 שנמצא בתיקיה exams/2017/sem-a קובץ זה מכיל שורה אחת עבור כל בחינה שהתקימה בסמסטר א בשנת 2017 בחדר 2304. להלן דוגמה לשורה אפשרית בקובץ זה: 1/1/2017:Basic Systems:15-00:18-30 משמעות השורה הנ"ל היא שבתאריך 1/1/2017 התקימה בחינה בקורס יסודות מערכות פתוחות בחדר 2304 הבחינה החלה בשעה 15:00 והסתימה בשעה 18:30. שימו לב שבין השדות בקובץ מפריד התו : הפורמט של שאר הקבצים שמתארים חדרים זהה לזה של הקובץ.2304 חלק א (20 נקודות) ניתן להניח שבקבצים שתוארו אין בחינות חופפות. דהינו, אין בחינות שמתקימות באותו תאריך באותו חדר בשעות שיש בהן חפיפה. הגדרה: נגדיר ששתי בחינות הן בחינות קרובות אם שתיהן מתקימות באותו תאריך ובאותו החדר ואחת מהבחינות מתחילה שעה (או פחות) לאחר שהבחינה השניה מסתימת. לדוגמה, אם שתי בחינות א ו-ב מתקימות באותו תאריך ובאותו חדר, בחינה א מסתימת בשעה 14 ובחינה ב מתחילה בשעה 15 אז הבחינות א ו-ב הן בחינות קרובות. כתוב תכנית סקריפט ב- bash (אין להשתמש ב- awk או ב- sed בשאלה זו) בשם P4.1 שמקבלת כפרמטר שם קובץ שמכיל נתונים על בחינות בחדר מסוים בסמסטר מסוים (כמו למשל הקובץ 2304 שמתואר בהמשך), ומדפיסה לפלט את כל התאריכים שבהן יש בחינות קרובות. אין צורך להדפיס את הבחינות הקרובות ואין חשיבות לסדר בין התאריכים שמופיעים בפלט. כל תאריך שבו ישנן לפחות שתי בחינות קרובות יופיע פעם אחת בלבד ובשורה נפרדת. ראה/י דוגמה בעמוד הבא: 11

לדוגמה, נניח שתוכן הקובץ 2304 הוא: 1/1/2017:Basic Systems:16-00:18-30 1/1/2017:Java:12-30:14-30 12/1/2017:Discrete Math:10-00:12-30 12/1/2017:Basic Laws:13-00:15-30 1/1/2017:Insurance 1:9-00:11-00 15/1/2017:Linear Algebra 1:9-00:11-00 13/1/2017:Automata Theory:15-00:18-00 15/1/2017:Cyber 1:12-30:14-30 13/1/2017:Economics 1:12-00:14-00 13/1/2017:English 1:8-30:10-00 18/1/2017:Economics 1:12-00:14-00 18/1/2017:Basic Communication:15-00:17-00 18/1/2017:Infi 2:9-00:11-00 לאחר הפעלת התכנית על ידי הפקודה (בהנחה שהתכנית מופעלת בתיקיה בה נמצא הקובץ 2304): P4.1 2304 מתקבל הפלט: 12/1/2017 13/1/2017 18/1/2017 לדוגמה, התאריך 12/1/2017 מופיע בפלט כי שתי הבחינות הבאות הן בחינות קרובות: 12/1/2017:Discrete Math:10-00:12-30 12/1/2017:Basic Laws:13-00:15-30 חלק ב (20 נקודות) כתוב תכנית סקריפט ב- bash (אין להשתמש ב- awk או ב- sed בשאלה זו) בשם P4.2 שמקבלת כפרמטרים שנה וסמסטר (בפורמט כפי שמתואר בדוגמה שבהמשך) ומדפיסה לפלט שורה אחת עבור כל חדר שהתקימו בו יותר משתי בחינות באותו התאריך בשנה זו בסמסטר זה, שמכילה את מספר החדר ואת התאריכים שבהם התקימו יותר משתי בחינות בחדר זה בשנה זו בסמסטר זה. המבנה של שורות הפלט הוא כפי שמתואר בדוגמה שבהמשך. על סדר השורות בפלט להיות לפי מספרי החדרים בסדר מספרי עולה. אין חשיבות לסדר בין התאריכים שמוצגים בכל שורה בפלט. 12

לפתרון השאלה יש להניח שהתכנית P4.2 נמצאת באותה התיקיה שבה נמצאת התיקיה exams (דהינו לא בתוך התיקיה exams אלא באותה רמה כמו.(exams לדוגמה, נניח שבשנת 2017 בסמסטר א התקימו בחינות בחדרים 2307 2305, 2304, בלבד ונניח שתוכן הקובץ 2304 הוא כפי שתואר בחלק א, ותוכן הקובץ 2305 הוא: 1/2/2017:Algebra:16-00:18-30 1/3/2017:Data Bases:12-30:14-30 1/2/2017:Discrete Math:10-00:12-30 12/2/2017:Basic Laws:13-00:15-30 1/2/2017:Insurance 1:13-00:15-00 12/2/2017:Linear Algebra 1:9-00:11-00 1/2/2017:English 1:8-00:9-30 15/2/2017:Economics 1:12-00:14-00 15/2/2017:Basic Communication:15-00:17-00 15/2/2017:Infi 2:9-00:11-00 2307 הוא: 10/2/2017:Infi 1:16-00:18-30 15/3/2017:Data Structures:12-30:14-30 10/2/2017:Discrete Math 2:10-00:12-30 15/3/2017:Data Bases:16-30:18-30 17/2/2017:Insurance 2:13-00:15-00 ונניח שתוכן הקובץ 2305 נניח שהקבצים 2304 exams/2017/sem-a 2307 הנ"ל נמצאים בתיקיה אזי לאחר הפעלת התכנית (exams על ידי הפקודה: P4.2 (בתיקיה שבה נמצאת התיקיה P4.2 2017 A 2304:1/1/2017 13/1/2017 18/1/2017 2305:1/2/2017 15/2/2017 יתקבל הפלט: שימו לב שאין בפלט שורה עבור חדר 2307, כי בסמסטר א של שנת 2017 אין אף תאריך שבו התקימו יותר משתי בחינות בחדר זה. בהצלחה! 13