תאריך פרסום: תאריך הגשה: משקל התרגיל : 5% מהציון הסופי )תקף( מבוא לתכנות מערכות תרגיל בית מספר )Bash( 1 סמסטר אביב 4102 יום שני 17:00-

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

Microsoft Word - Ass1Bgu2019b_java docx

מדריך להתקנת Code Blocks מדריך זה נועד לתאר את תהליך התקנת התוכנה של הקורס "מבוא למחשב שפת C". בקורס נשתמש בתוכנת Code::Blocks עם תוספת )אשף( המתאימה

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

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

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

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

Slide 1

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

T01-1page

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

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

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

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

PowerPoint Presentation

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

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

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

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

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

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

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

תוכן העניינים: פרק צמצומים ומימושים של פונקציות בוליאניות... 2 צמצומים של פונקציות באמצעות מפת קרנו:...2 שאלות:... 2 תשובות סופיות:... 4 צמצום

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

Microsoft Word B

מסע מדע ו - מסע ברכב שטח ביבשות רחוקות

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

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

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

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

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

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

Microsoft Word - ExamA_Final_Solution.docx

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

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

תרגיל 1 בקורס תוכנה 1

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

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

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

PowerPoint Presentation

יצוא לחשבשבת תוכן עיניינים הגדרות - חשבונות בנק...2 הגדרות - הגדרות חשבשבת... 3 הגדרות - כרטיסי אשראי... 4 הגדרות - סוגי הכנסה... 5 יצוא לחשבשבת...6 י

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

Microsoft Word - דוגמאות ב

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

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

Office 365 ProPlus בחינם לסטודנטים באוניברסיטת בן גוריון בנגב הוראות סטודנטים באוניברסיטת בן גוריון בנגב יכולים להוריד ולהתקין את חבילת התוכנה Office

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

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

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

סרגל כלים ל-Outlook או לExplorer- מדריך למשתמש

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

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

Algorithms Tirgul 1

HTML - Hipper Text Makeup Language

פייתון

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

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

PowerPoint Presentation

ISI

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

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

Microsoft Word - solutions.doc

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

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

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

PowerPoint Presentation

מצגת של PowerPoint

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

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

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

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

תרגול מס' 1

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

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

1

יום עיון עורכי בקשות להיתרים

PowerPoint Presentation

Data Structure Assignment no.3 תאריך הגשה: p.m. 11/09/16, 23:59 את העבודה יש להגיש בזוגות במערכת ההגשות.submission system על העבודה להיות מוגשות כקובץ

תוכן הגדרת שאלת רב-ברירה ]אמריקאית[...2 הגדרת שאלת נכון\לא נכון...8 שאלות אמריקאיות 1

בארץ אחרת

Microsoft Word - בעיות הסתברות 1.doc

Microsoft Word - c_SimA_MoedB2005.doc

People. Partnership. Trust שלבי הפרויקט והמסלולים השונים - פלטפורמת "קהילה לומדת" מסלול Free שלבי הפרויקט: חיבור לשירותי Office 365 ללא עלות פורטל התח

Titre du document en police Sodexo

Unix & Linux Basics,CSMA/CD vs CSMA/CA As a Collision Domain

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

(Microsoft Word - SQL\353\351\345\345\365 \341\361\351\361 \360\372\345\360\351\355 \ doc)

Microsoft Word - ניספח_8.doc

PowerPoint Presentation

<4D F736F F D20F9E9F2E5F820F1E9EEF0E920E7ECE5F7E4>

1 תיכון א' לאמנויות-ת"א תאריך הגשה: יומן קריאה /סמסטר א' כיתה ט' לכל תלמידי כיתות ט' לפני שתיגשו למטלות הכתיבה הנכם מתבקשים לקרוא בעיון את פרטי מהלך ה

Microsoft Word - tik latalmid-final

מדריך להתחלה מהירה Microsoft Project 2013 נראה שונה מגירסאות קודמות, ולכן יצרנו מדריך זה כדי לעזור לך ללמוד להכיר אותו. סרגל הכלים לגישה מהירה התאם אי

PowerPoint Presentation

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

PowerPoint Presentation

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

תמליל:

תאריך פרסום: 13.3.14 תאריך הגשה: 27.3.14 משקל התרגיל : 5% מהציון הסופי )תקף( מבוא לתכנות מערכות תרגיל בית מספר )Bash( 1 סמסטר אביב 4102 יום שני 17:00-18:00 טאוב 312 יום רביעי 17:00-18:00 טאוב 312 שעות קבלה לתרגיל: הערות כלליות שימו לב: לא יינתנו דחיות במועד התרגיל. תכננו את הזמן בהתאם. חובה לעבוד לפי נהלי ההתקשרות בקורס אשר מפורטים בתרגול 0, שקפים 11-13. לשאלות בנוגע לתרגיל )שתואמות את נהלי ההתקשרות בקורס), יש לפנות למייל של צוות הקורס.mtm1 )subject( נא לכתוב בשורת הנושא,mtm@tx.technion.ac.il מומלץ לקרוא את כל המסמכים הרלוונטיים והקבצים שפורסמו לתרגיל לפני תחילת הפתרון ולפני שליחת שאלות. חלק זה חובה להתעדכן בעמוד Information "Assignment - General המופיע באתר הקורס )תחת.) F.A.Q יתפרסם זמן קצר לאחר יציאת התרגיל. 1 שימו לב לבדיקה האוטומטית 1.1 1.1 תרגיל זה יעבור רק בדיקה אוטומטית ולכן על התכניות שתכתבו לייצר בדיוק את הפלט הנדרש בתרגיל. תכנית הבדיקה האוטומטית מפנה את הפלט אשר התכנית שלכם מייצרת לתוך קובץ, ואח"כ מפעילה את הפקודה diff של,UNIX כדי לוודא שתוכן הקובץ זהה בדיוק לקובץ שהיא מצפה לקבל. לפיכך הבדל של תו אחד )אפילו סוף שורה או רווח מיותר( בין הקובץ המצופה לבין הקובץ שיוצר ע"י התוכנית שלכם יגרום לכך שתכניתכם תיכשל בבדיקה. בכדי למנוע פגיעה מיותרת בציון, הקפידו להוציא פלט בדיוק לפי ההגדרות. על מנת שתוכלו לבדוק את עצמכם, מסופקות לכם דוגמאות, כפי שיפורט בהמשך. בתרגיל זה תהיה בדיקה אוטומטית בלבד ולא תהיה בדיקה יבשה של הקוד מת"מ בוט מערכת זו נוצרה במיוחד עבור הסטודנטים בקורס מת"מ ומטרתה לעזור לכם לוודא שקבצי ההגשה שלכם תקינים ויעבדו בסביבת הבדיקה של הקורס )לאחר שבדקתם זאת בעצמכם כמובן ב- t2 (. כמו כן המערכת יכולה לספק לכם תשובות בנוגע לפלט המצופה מכל תרגיל בית. החלפת הshell ניתן להשתמש בפקודה הבאה כדי לקבל את שם ה- Shell הנוכחי ב- Unix > echo $0 במחשבים בהם Bash אינה Shell ברירת המחדל )כמו בשרת ה- t2 לדוגמה(, ניתןלהשתמש בפקודה shell) chsh (change כדי לשנות את ברירת המחדל: > chsh Changing shell for mtm. old shell: /bin/tcsh New shell: /bin/bash Shell will be changed for mtm in approximately 5 minutes > חשוב להקפיד לכתוב את שם ה- Shell )הייחוס אליו( נכון, אחרת החשבון נהרס!!

1 התרגיל מבוא 1.1 בתרגיל זה אנו נכתוב מערכת של סקריפטים "משחקי המת"ם שף" שתדמה את שלב המוקדמות של תחרות ריאליטי פופולרית )מוזמנים לנחש איזו כוכב מישלן למנחשים נכון( תחילה ניתן הקדמה של מידע שימושי לפתרון תרגיל הבית )ולחיים(, לאחר מכן נפרט את סוגי הקבצים והתיקיות שהמערכת תהיה בנויה מהן, ולבסוף נגדיר לכם את הסקריפטים וההתנהגות שאנו מצפים מהם. 1.1 הקדמה וטיפים לעבודה ולחיים כפי ששמעתם עד כה קיימות מערכות הפעלה נוספות חוץ מווינדוס וכמובן שיש ביניהן הבדלים, אחד ההבדלים הוא בסוגי התווים, לדוגמא בלינוקס התו לירידת שורה מסומן בn \ בעוד שווינדוס זה r\. לכן כשתעבירו קבצים מווינדוס ללינוקס )או סביבת )unix סביר להניח שחלק מהתווים לא יהיו כפי שאתם )או כפי שסקריפטי עזר שעובדים לפניכם כתבו( מצפים, למזלכם קיימת פקודה מאוד פשוטה שממירה בין שני ההבדלים אשר נקראת dos2unix אשר מקבלת רשימה של קבצים שברצונכם להמיר. דוגמא להרצה: dos2unix a.txt b.txt בשביל לתרגל זאת הקובץ competitors )אשר יוסבר עליו בהמשך( בטסטים שיסופקו לכם ייכתב במערכת הפעלה מסוג ווינדוס כדי שתוכלו להפעיל עליו את.dos2unix הבהרה: בטסטים שנריץ הכל יהיה תקין ואפשר להניח שכל הקבצים שאנו נריץ יכתבו בסביבת,unix חלק זה הוא לתרגול בלבד. כעת נסקור בקצרה 3 פקודות שימושיות אשר לא חובה להשתמש בהן בתרגיל והן להעשרה בלבד חשוב לציין כי אסור להשתמש בפקודות אשר לא נלמדו בתרגולים במבחן ולכן גם השימוש בפקודות אלו במבחן אסור. -הפקודה,tr מלשון translate היא מקבלת שתי מחרוזות ומחליפה ביניהן בתוך קובץ, ככה לדוגמא אפשר להפוך רווחים לירידות שורה או כל החלפה שתעלה על דעתכם. כמו בפקודות שלמדתם בתרגול גם לה יש דגלים כמו: d מלשון delete שפשוט מוחקת את המופעים של המחרוזת בקובץ. s- מלשון squeeze אשר מצמצמת חזרה מרובה של תו. חידה: איך אפשר לממש את את אחת ההחלפות של dos2unix באמצעות?tr פתרון: cat file tr \r \n -הפקודה,sed מלשון stream editor וכפי שמשתמע מהשם זו פקודה עם המון אפשרויות ולמען האמת זו פקודה עם כ"כ הרבה אפשרויות שאפשר לתכנת באמצעותה. מידע נוסף על פקודות אלו ועוד ניתן למצוא בלינק הבא: /http://ss64.com/bash או לחפש בגוגל. המלצה חמה מצוות הקורס לתרגיל ולחיים בכלל, מטרת הקורס היא לא רק שתכתבו המון קוד ותחיו בעומס )גם זו חלק מהחוויה(, אלא ברמה הקונספטואלית לארגן את המחשבות והקוד שלכם בצורה מסודרת. לא רק כי זה יוצר פחות באגים, אלא גם כי זה מקל על הכתיבה ומציאת באגים כי לא כולנו אלן טיורינג )מי שרוצה לדעת עליו קצת יותר http://he.wikipedia.org/wiki /אלן_טיורינג ועל הקשר שלו לאפל( ובסופו של דבר זה רק הרגל בריא שניתן לרכוש ורצוי כמה שיותר מוקדם. לכן נמליץ לכם בתרגיל הזה להיעזר בסקריפטים מסעיפים קודמים כיוון שהם יהיו באותה תיקיית בית.

1.2 מבני נתונים במערכת מצרך כל מצרך במערכת ייוצג ע"י קובץ ריק בעל שם המצרך עם סיומת של,.ing לדוגמא המצרך תפוח )apple( במערכת ייוצג ע"י הקובץ. Apple.ing להלן איור להמחשה: תיקיית מתכון תיקיה ששמה הוא השם של המועמד להתחרות בתחרות שמכילה: קובץ מתכון- קובץ עם שם המתכון וסיומת.recipe שמכיל שורה מפורטת לכל אחד מהמצרכים שלו בפורמט הבא: <ingredient_name> <Price > <Calories> <Vegan> <Time> כאשר כל שדה מופרד ע"י רווח ו: <Ingredient_name> - שם המצרך )מובטח-מילה אחת בלבד(. > <Price - מחיר למצרך יחיד ( מספר שלם אשר קטן או שווה ל- 100 (. <Calories> -מספר הקלוריות למצרך יחיד )מספר שלם קטן מ- 200 (. <Vegan> - ספרה בינארית שמייצגת האם המצרך טבעוני: 1 משמע שהמצרך לא צמחוני. 0 משמע שהמצרך צמחוני. <Time> -הזמן שלוקח לבשל את המצרך בשניות. תיקיית שקית- תהיה קיימת תיקיה ששמה הוא Bag )וזו תיקיית שקית( אשר תכיל קבצי מצרכים ומטרתה להוות "שקית של מצרכים". הבהרה: בגלל שהמערכת מייצגת אדם פשוט שלא למד בקורס מת"מ לחשוב ולסדר את מחשבותיו, לכן המלאי שלו אינו מסודר, ייתכנו שקיות בתוך שקיות )כמו באיור 3( וכן תיקיות וקבצים עם סיומות אחרות שמהם תצטרכו להתעלם.

להלן שני איורים למתכונים שקולים מבחינת המערכת: איור 1

איור 3 מתחרה הינו חוקי אם מתקיימים התנאים הבאים: קובץ הrecipe שלו חוקי )כל טווחי המספרים חוקיים כפי שהוגדר קודם( - לכל מצרך שקיים בקובץ הrecipe קיים מצרך בBag או באחת מתתי התיקיות )ששמן גם כן )Bag שבתוכה. - הנחות מקלות לכל התרגיל : שם מצרך או מתכון לא יכיל רווחים לאורך כל התרגיל! לכל משתתף יש רק מתכון אחד!

קובץ שופטים קובץ בשם judges שיכיל שורה עבור כל שופט והעדפותיו בפורמט הבא: <judge_name> <Price_factor> <Calories_factor> <Vegan_factor> <Time_factor> כאשר: <judge_name> - זהו שם השופט. <Price_factor> - מקדם החשיבות של המחיר )מספר בין 0 ל 5 (. <Calories_factor> - מקדם החשיבות של הקלוריות )מספר בין 0 ל 5 (. <Vegan_factor> - מקדם החשיבות של הטבעונות )מספר בין 0 ל 5 (. <Time_factor> - מקדם החשיבות של הזמן )מספר בין 0 ל 5 (. ניתן להניח כי כל המקדמים חוקיים. להלן איור להמחשה: איור 2

המערכת תיקיה בה יש קובץ judges ותיקיות מתחרים )כמובן שיכולים להיות בה גם דברים נוספים שיש להתעלם מהם(. להלן איור לדוגמא:

1.2 סקריפט : 1 validate Bag ו קובץ.recipe בהתאמה )ראו דוגמא בהמשך(. 1.2.1 קלט התסריט יקבל 3 ארגומנטים: תיקיית 1.2.1 פעולת התסריט לתסריט שני תפקידים: ווידוא של מצב המערכת וסיכום של מצב המערכת. תסריט זה יוודא שהמערכת במצב תקין, כלומר קובץ המתכון שהתקבל תקין )כפי שהוגדר בתת הסעיף "מתכון"( וכל המצרכים שרשומים בו נמצאים בBag שהתקבלה כארגומנט )או באחת מתתי התיקיות עם השם Bag שבתוכה( פעם אחת )ניתן להניח שמצרך יופיע פעם אחת לכל היותר בBag ובמתכון(. אם המצב תקין, תודפס שורה שמסכמת את המתכון )כפי שיוסבר בהמשך(. אחרת תודפס הודעה שתפורט בהמשך. Invalid! 1.2.2 פלט ווידוא אם המערכת לא תקינה מסיבה כלשהיא תודפס כפלט לדוגמא אם נריץ את התסריט בלי ארגומנטים נקבל: >> validate Invalid! שורת סיכום במידה והמתכון תקין, התסריט ידפיס שורה אשר תסכם את תוכן התפריט באופן הבא: Total: <Price> <Calories> <Vegan> <Time> כאשר: <Price> -סה"כ המחיר עבור המתכון = לסכום את המחירים של כל המוצרים. <Calories> - סה"כ הקלוריות עבור המתכון = לסכום את כל הקלוריות של כל המוצרים. <Vegan> - האם המנה טבעונית = אם יש מרכיב שאינו טבעוני אז כל המנה לא טבעונית. <Time> - סה"כ זמן ההכנה בשניות של המנה = לסכום הזמנים של כל המצרכים. שימו לב כי ההדפסות הן עם ירידת שורה בשני המקרים! לדוגמא אם נריץ את התסריט עם הקבצים החוקיים שבאיור 1 )או איור 3, הם שקולים!(: >> validate Lev/Bag Lev/Fruit_Salad.recipe Total: 15 600 0 4968

1.2 סקריפט :1 judge 1.2.1 קלט התסריט יקבל כקלט שני דברים: קובץ השופטים ואת שורת הTotal של מתכון מסוים )כפי שחישבתם בתסריט הvalidate ( או את המילה Invalid!. כלומר תמיד הפרמטר הראשון יהיה קובץ שופטים, אך שאר הפרמטרים יכולים להשתנות, או שורת Total שכוללת חמישה פרמטרים נוספים או המילה Invalid! שמהווה רק פרמטר נוסף אחד. ניתן להניח שהקלט תמיד תקין, כלומר קובץ השופטים תקין ולפי הפורמט שהוצג קודם לכן, ובמידה ומתקבלת שורת Total היא תמיד בת חמישה פרמטרים כפי שמוסבר בתסריט הקודם, וכל הפרמטרים בטווחים החוקיים. 1.2.1 פעולת התסריט בחלק זה אנו נדמה מנגנון של שיפוט עבור המנות. כלומר עבור כל העדפות השופטים ועבור שורת הTotal ייפלט ציון שאופן חישובו יוסבר בסעיף הבא. 1.2.2 פלט אם תתקבל שורת Invalid! לא יודפס כלום והתסריט יגמר. אם תתקבל שורת Total אז הציון עבור המתכון יחושב באופן הבא: לכל שופט הציון שהוא ייתן יחושב כך-סכום המכפלות בין המאפיינים לפקטורים התואמים להם. לדוגמא עבור שורת הפלט מהדוגמא בסעיף הקודם )"4968 )"Total 15 600 0 ועבור קובץ הjudges באיור 2, הציון שכל שופט ייתן יהיה: Grumpy 0*15+0*600+0*0+0*4968 = 0 Cheapy 5*15+0*600+0*0+0*4968 = 75 Vegy 0*15+0*600+5*0+0*4968 = 0 Fasty 0*15+0*600+0*0+5*4968 = 24840 Bamby 2*15+5*600+3*0+1*4968= 7998 הציון הסופי ממוצע ציוני השופטים. כלומר עבור הדוגמא הנוכחית הציון יהיה 6582= 32913/5. #!/bin/bash i=15 let i /= 4 echo $i שימו לב: Bash מעגל את תוצאת המנה כלפי מטה וזה בסדר גמור. לדוגמא התסריט הבא: תדפיס 2. >>judge judges Total: 15 600 0 4968 6582 דוגמא מוחשית:

1.2 סקריפט :2 compete 1.2.1 קלט התסריט יקבל תיקיה שמכילה קבצים כפי שהוסבר בסעיף "מבני הנתונים במערכת")כמו compete באיורים עם או בלי path אליה(. ניתן להניח שתמיד מתקבל ארגומנט יחיד בלבד כקלט והוא תמיד שם של תיקיה. 1.2.1 פעולה לכל המשתתפים בתחרות ישוקלל את הציון ויודפסו המנצחים כפי שיפורט בהמשך. אם קיימת תיקיית מתחרה ריקה )בלי מתכון(, או שהמתכון אינו חוקי )מומלץ לבדוק זאת בעזרת התסריט validate שכתבתם( התסריט יתעלם מהמתחרה הזה. שימו לב כי ייתכנו תיקיות וקבצים נוספים אשר לא קשורים לתחרות או מתחרים לא חוקיים ויש להתעלם מהם. 1.2.2 פלט התסריט יוציא כפלט את 20 המתחרים התקינים עם הציון הטוב ביותר, כאשר הם ממוינים לפי סדר ראשוני של הציון שלהם )כפי שחושב בתסריט,judge אשר כמובן מומלץ להשתמש בו לחישוב( ומיון משני לקסיקוגרפי )לפי שמם של המתחרים(. במידה ויש פחות מ- 20 מתחרים יש להדפיס אותם לפי הסדר הנדרש. פורמט הפלט הוא: <competitor_name> <recipe_name> <Grade> כאשר: <competitor_name> -שם המתחרה. <recipe_name> - שם המתכון שהמתחרה הציג. <Grade> - הציון שהתקבל עבור המתכון. כלומר עבור הדוגמא שבתת סעיף "מערכת" נקבל: >>./compete <path_to_the_compete_directory>/compete Lev Fruit_Salad 6582 Ward Chocolate_Cake 6582

הגשה 2 את ההגשה יש לבצע דרך אתר הקורס. תחת.Electronic submission,exercise 1,Assignments הקפידו על הדברים הבאים: יש להגיש את קבצי הקוד מכווצים לספרית ZIP )לא RAR או כל דבר אחר(, כאשר כל הקבצים מופיעים בתיקיית - השורש בתוך קובץ ה- ZIP. )כל התסריטים( אין להגיש אף קובץ חוץ מהתסריטים הדרושים. - סה"כ 3 תסריטים בשמות שהוגדרו בתרגיל זה. o ע"מ לבטח את עצמכם כנגד תקלות בהגשה האוטומטית: - שימרו את קוד האישור עבור ההגשה. 1 o שימרו עותק של התרגיל על חשבון ה- T2 שלכם, כך שחותמת הזמן על הקבצים תוכיח את קיומם בזמן. הקפידו לא לשנותם אח"כ משום שדבר זה יעדכן את חותמת הזמן. o כל אמצעי אחר לא ייחשב כהוכחה לקיום הקוד בזמן מוקדם מספיק. o שימו לב, ניתן להגיש את התרגיל מס' פעמים. ההגשה האחרונה היא הנחשבת. - 1 מומלץ לאמץ את השיטה הבאה להגשות אלקטרוניות: העתיקו את קוד האישור ושילחו אותו לשותף )ולעצמכם( בדואר אלקטרוני. דבר זה יאשר לשותף שלא שכחתם את ההגשה ויאפשר לכם למצוא את הקוד במקרה הצורך.

windows ל- linux יש לבצע את הפקודה dos2unix a.txt b.txt Convert and replace a.txt. and b.txt. דרישות, הגבלות והערות כלליות תו ירידת השורה שונה בין windows לunix לכן כאשר מעתיקים קבצים מ- dos2unix <file name> דוגמא: 2 אסור להשתמש בקבצים זמניים. לצורך פתרון התרגיל עליכם לייצר בדיוק 3 תסריטים בשמות שהוגדרו לכם מראש, וודאו שהתסריטים שכתבתם ייקראו בשמות הנדרשים בלבד sensitive(.)case הגבלה זו חיונית לצרכי הצלחת ההגשה. יש לכתוב את התרגיל ב- Bash בלבד )ולא בשפות script אחרות או ב- C (. אסור להשתמש בפקודות UNIX אשר לא נלמדו בתרגולים או הוזכרו במפורש בתרגיל. נסו להיעזר בפקודות קיימות שנלמדו בכיתה כמו cut, sort, grep וכו'. שימוש בפקודות אלה יכול לקצר בהרבה את החלק שלכם בכתיבת התסריט. התסריטים ייבדקו על t2. העובדה שהבדיקה תתבצע על t2 אינה אומרת שאתם חייבים כל הזמן לפתח על t2 אתם יכולים לפתח את התסריטים שלכם במחשבים אחרים ובהמשך להעביר אותם ל- t2 ולוודא שהם עובדים נכון על ה- t2. שימו לב תסריטים אשר עובדים נכון במחשב אחר עלולים ליצור פלט שגוי על t2 לפני ההגשה וודאו שהתסריטים שלכם עובדים נכון על ה- t2! אפשר לפתח את התסריטים ב- Shells של מכונות הלינוקס בחווה, ב- Cygwin של מכונות Windows בחווה, או להתקין Connecting to Stud.pdf בבית, ראו: Cygwin )ההוראות בקובץ מסבירות על התקנה של C-Shell בנוסף, אין לכם צורך בכך מאחר ו- Shell ברירת המחדל הוא )Bash שימו לב: בד"כ יש עומס רב על stud בימים האחרונים לפני הגשת תרגיל. מומלץ מאוד לא לדחות את התרגיל ליומיים האחרונים. מומלץ גם לפתח את התסריטים במכונה אחרת כפי שהוסבר לעיל בכדי לצמצם חשיפה לבעיות עומס/איטיות של.stud צוות הקורס לא יטפל/לא יוכל לטפל בבעיות שקשורות לעומס/איטיות ב- stud. לא יתנו שום הקלות/דחיות בגלל העומס/איטיות של.stud ה- shell שצריך להריץ את התוכניות הוא./bin/bash ניתן להניח שהתיקייה הנוכחית ).( תמצא ב- path בזמן הבדיקה. זה אומר שאתם רשאים להריץ את התסריטים שלכם ללא שימוש ב-"/.". אסור להריץ תסריטים ע"י הפקודה.source אין צורך לכתוב את התסריטים לפי מוסכמות קוד Conventions( )Code כלשהן. לא חייבים לתעד את התסריטים במלואם. רצוי לציין בראש כל תסריט בהערה תמציתית מה הוא עושה. הקפידו לא להדפיס דברים מיותרים לערוצי הפלט - טעות קלה של אפילו תו רווח יחיד תכשיל בדיקה שלמה. הנכם רשאים להניח כי לא קיימות שגיאות נוספות מלבד אלו שפורטו. פונקציות ב bash יכולות להחזיר ערך מספרי שלם חיובי, נצלו זאת לקיצור הקוד. דוגמא: #!/bin/bash function retone{ return 1 } retone echo "$?"

#!/bin/bash read line case "$line" in 1) echo "input is one";; "pi") echo "mmm pie";; esac בbash יש תמיכה במנגנון,case נצלו זאת לקיצור הקוד. דוגמא: 2 שינויים עדכונים והודעות בנוגע לתרגיל כל ההודעות הנוגעות בתרגיל ימצאו באתר של הקורס http://webcourse.cs.technion.ac.il/234122 בדף התרגילים. דף זה יכיל שאלות ותשובות נפוצות. רק הודעות דחופות תשלחנה בדואר. עליכם לעקוב אחר האתר והעדכונים שיפורסמו בו. בהצלחה!