ex1-bash

מסמכים קשורים
שאלה 2. תכנות ב - CShell

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

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

Microsoft Word - lec

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

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

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

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

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

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

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

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

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

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

תרגול 1

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

Slide 1

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

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

Microsoft Word - c_SimA_MoedB2005.doc

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

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

PowerPoint Presentation

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

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

Tutorial 11

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

PowerPoint Presentation

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

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

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

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

Slide 1

המינהל למדע וטכנולוגיה הפיקוח על מדעי המחשב עתודה מדעית טכנולוגית מדינת ישראל משרד החינוך המינהל הפדגוגי אגף בכיר בחינות בחינת מפמ ר במדעי המחשב לכיתה

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

<4D F736F F D20FAE5F1F4FA20ECE7E5E5FA20E3F2FA20ECE2E1E920E3E9F1F720FAEEE5F0E5FA20E6E9F8FA20E4F8F6E72E646F63>

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

Slide 1

PowerPoint Presentation

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

Slide 1

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

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

מבוא ללוגיקה ולתורת הקבוצות

PowerPoint Presentation

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

PowerPoint Presentation

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

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

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

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

מקביליות

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

PRESENTATION NAME

Slide 1

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

Slide 1

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

מקביליות

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

Microsoft Word - Ass1Bgu2019b_java docx

234114

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

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

Microsoft Word B

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

Microsoft Word - ExamA_Final_Solution.docx

<4D F736F F D20FAF8E2E5EC20E0ECE2E1F8E420EEF2E5F8E D F9E0ECE5FA2E646F63>

מס' ת"ז מס' מחברת מבחן בקורס מבוא מורחב למדעי המחשב CS1001.py ביה"ס למדעי המחשב, אונ' תל אביב סמסטר א' , מועד ב, 23/3/2018 מרצים: דניאל דויטש,

מקביליות

PowerPoint Presentation

שקופית 1

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

<4D F736F F D20E7E5F7E920E0E9EEE5FA20E1E8E1ECE42E646F63>

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

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

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

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

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

Slide 1

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

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

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

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

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

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

Slide 1

Microsoft Word - pitaron222Java_2007.doc

Microsoft Word Viewer - Winter0708-MoedC.doc

Microsoft Word - tutorial Dynamic Programming _Jun_-05.doc

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

Slide 1

Microsoft Word - 14

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

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

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

תמליל:

ביה"ס למדעי המחשב סמסטר חורף תשע"ח 13.12.2017 יסודות מערכות פתוחות פתרון תרגיל מס' 7 המכללה האקדמית נתניה שימו לב: כל ההערות שבתחילת תרגילים 1-6 תקפות גם לתרגיל זה. הערה 1: החל מתרגיל זה והלאה, בכל פעם שכתוב מילה הכוונה לרצף כלשהו של תווים ללא תווי רווח או סוף שורה. לדוגמה המחרוזת abc@#&cd נחשבת למילה אחת..1 כתוב/כתבי תוכנית ב- Bash (דהינו קובץ (Script בשם P7.1 שמקבלת כפרמטרים שימת מילים (בהמשך נקרא לה רשימה 1) לאחריה המילה -dirs ולאחריה רשימת תיקיות (בהמשך נקרא לה רשימה 2). התוכנית מדפיסה לפלט עבור כל מילה שברשימה 1 שורה אחת שמכילה הפרטים הבאים: המילה עצמה, תו רווח אחד, רשימת מספרים (עם תו רווח אחד בדיוק בין המספרים) שמכילה את מספר הקבצים שבהם מופיעה המילה כמילה בכל אחת מהתיקיות שברשימה 2 (לפי סדר התיקיות שברשימה 2). תו רווח אחד, המילה ALL או המילה,NOTALL כאשר המילה ALL תודפס אם בכל אחת מהתיקיות שברשימה 2 (בעומק כלשהו) ישנו קובץ שהמילה מופיעה בו כמילה, אחרת תודפס המילה.NOTALL על סדר השורות בפלט להיות לפי סדר המילים שברשימה 1. ראה/י דוגמה בעמוד הבא. 1

לדוגמה: נניח שהתיקיות ~basicsys/win18/ex7/d4 ~basicsys/win18/ex7/d5 ~basicsys/win18/ex7/d6 מכילות את הקבצים הבאים: ~basicsys/win18/ex7/d4/f1 שתוכנו הוא: abc def gi hi hi wxyz hi ~basicsys/win18/ex7/d4/c/d1 שתוכנו הוא: abc hello hi ab ab ab ab 1 ab 12 ~basicsys/win18/ex7/d5/d6/h1 שתוכנו הוא: shalom def ab hi ~basicsys/win18/ex7/d5/g/h1 שתוכנו הוא: shalom1 def ab1 hello abc yab hi def rami ronit abc hi @Hello abc bye see you later שתוכנו הוא: שתוכנו הוא: ~basicsys/win18/ex7/d6/a1 ~basicsys/win18/ex7/d6/b/f1 לאחר הפעלת התוכנית ע"י הפקודה: P7.1 hello rr hi ab abc -dirs ~basicsys/win18/ex7/d4 ~basicsys/win18/ex7/d5 ~basicsys/win18/ex7/d6 יתקבל הפלט: hello 1 1 0 NOTALL rr 0 0 0 NOTALL hi 2 2 1 ALL ab 1 1 0 NOTALL abc 2 1 2 ALL 2

פתרון שאלה 7.1 3

פתרון שאלה 7.1 בפורמט טקסט: function num_of_les(){ local word=$1 dir=$2 le n count=0 for le in $(nd $dir -type f); do n=$(echo $(cat $le) tr " " "\n" egrep -c "^$word$") if [ $n -gt 0 ]; then ((count++)) echo $count } words="" for par in $(echo $@); do if [ $1 = "-dirs" ]; then shift dirs=$(echo "$@") break words="$words $1" shift for word in $words; do result="$word ";flag=true for dir in $dirs; do num=$(num_of_les $word $dir) if [ $num -eq 0 ];then flag=false result="$result $num" if [ $flag = true ]; then result="$result ALL" else result="$result NOTALL" echo $result 4

.2 שאלה זו היא מהחומר ללימוד עצמי שמופיע באתר הקורס. על התכנית של שאלה זו להיראות כך: התוכנית מכילה שורה אחת או יותר של פקודות 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 אסור להתשמש ב- כתוב תוכנית Script ב- sed בשם P7.2 שמקבלת כפרמטר שם קובץ (בהמשך נקרא לו קובץ 1). התוכנית מדפיסה לפלט את השורות בקובץ 1 שמכילות בדיוק 4 מילים, כאשר בכל שורה בפלט מופיעה המילה הראשונה 3 פעמים ברצף (עם תו רווח אחד בין המילים), כפי שמודגם בדוגמה שלהלן. לדוגמה, נניח שתוכן הקובץ F1 הוא: Hello hi 123 if a equals b you one abc two three four dany uri four 123 P7.2 F1 if if if a equals b dany dany dany uri four 123 לאחר הפעלת התוכנית ע"י הפקודה: יתקבל הפלט: 5

פתרון שאלה 7.2 ובפורמט טקסט: sed -r '/^[ ]*([^ ]+[ ]+){3}[^ ]+[ ]*$/!d' $1 > tmp sed -r 's/^([ ]*)([^ ]+)([ ] $)/\1\2 \2 \2\3/' tmp.3 P7.3 (Script בשם Bash (דהינו קובץ כתוב/כתבי תוכנית ב- שמקבלת כפרמטרים שם קובץ (בהמשך נקרא לו קובץ 1) ורשימת מספרים (בהמשך נקרא לה רשימה 1) ומדפיסה לפלט את העמודות מתוך קובץ 1 לאחר ישורן לימין או לשמאל לפי המספרים ברשימה 1, כפי awk printf של שמתואר בדוגמאות שבהמשך. (ניתן להשתמש בפקודה לפתרון השאלה). 1 גדולים יותר מאורכי כל המילים ניתן להניח שהמספרים ברשימה 1. (לדוגמה, אם בעמודה שנמצאות בעמודות המתאימות להם בקובץ 5, אזי בכל הראשונה בקובץ 1 המילה הארוכה ביותר הינה באורך 5). הפעלה של התוכנית המספר הראשון ברשימה 1 יהיה גדול מ- בנוסף ניתן להניח שבכל שורה בקובץ 1 מספר המילים הוא לפחות כמו 4 מספרים מספר המילים ברשימה 1. (לדוגמה אם התוכנית מופעלת עם 4 מילים בכל שורה). 1 יש לפחות ברשימה 1, אזי בקובץ דוגמאות, A abcd ddd eee zz tt ab gggwe 12 88 iii jjj yaara yyzz 12abcd xyz x y z נניח ש- תוכן קובץ F1 הוא: P7.3 F1-8 -7 6 4 A abcd ddd eee ab gggwe 12 88 yaara yyzz 12abcd xyz לאחר הפעלת התוכנית ע"י הפקודה: יתקבל הפלט: בדוגמה הנ"ל בין A ל- abcd ישנם 7 רווחים, בין abcd ל- ddd ישנם 6 רווחים ובין ddd ל- eee ישנו רווח אחד. 6

P7.3 F1-8 -7 6 4 5 לאחר הפעלת התוכנית ע"י הפקודה: A abcd ddd eee zz ab gggwe 12 88 iii yaara yyzz 12abcd xyz x יתקבל הפלט: בדוגמה הנ"ל בין A ל- abcd ישנם 7 רווחים, בין abcd ל- ddd ישנם 6 רווחים, בין ddd ל- eee ישנו רווח אחד, בין eee ל- zz ישנם 3 רווחים, בין 88 ל- iii ישנם שני רווחים, בין xyz ל- x ישנם 4 רווחים. פתרון שאלה 7.3 #!/bin/bash le=$1 shift x=\" for z in $@ do x=$x"%"$z"s" for i in $(seq $#) do y=$y,\$$i cat $le awk '{printf '$x'\n"'$y'}' ובפורמט טקסט: 7

4. שאלה זו הופיעה במבחן מועד א 2017 i 2 נגדיר שמילה נמצאת בקובץ בתחום המוגדר על ידי 4 מספרים i 1 i 2 j 1 j 2 אם המילה נמצאת בקובץ בין שורה i 1 לבין שורה (כולל שורות i 1 ו- (i 2 ובין עמודות j 1 ו- j 2 (כולל עמודות j 1 ו-.(j 2 לדוגמה עבור הקובץ הבא: ab cd ef gh 12 xy zw 67 89 zzz ddd.2 3.2 1 2 המילה המילה 89 נמצאת בתחום המוגדר על ידי 4 המספרים 3 1 2 zzz אינה נמצאת בתחום המוגדר על ידי 4 המספרים כתוב/כתבי תכנית ב- bash בשם P7.4 (אין להשתמש בפקודות awk ו- sed בשאלה זו) שמקבלת כפרמטרים 4 מספרים i 1 i 2 j 1 j 2 ולאחריהם רשימת שמות קבצים ומדפיסה לפלט את כל המילים שנמצאות בתחום שמוגדר על ידי 4 המספרים i 1 i 2 j 1 j 2 בכל אחד מהקבצים שברשימת הקבצים. כל מילה תודפס בשורה נפרדת שמכילה את המילה תו רווח אחד ולאחר מכן את מספר ההופעות הכולל של המילה בקבצים שברשימת הקבצים (לא בהכרח בתחום המוגדר על ידי המספרים). על שורות הפלט להיות ממוינות לפי מספר ההופעות הכולל של המילים בסדר מספרי יורד. (עבור מילים עם אותו מספר הופעות הסדר יהיה לפי סדר לכסיקוגרפי יורד). ראה/י דוגמה בעמוד הבא. 8

לדוגמה, נניח שנתונים הקבצים הבאים: ab gh cd gh 12 xy ef ef 66 89 zzz ddd 3 44 55 66 ddd 1 66 3 4 66 ef 7 8 9 88 99 gh ab cd ef gh 66 12 xy zw 67 uu zzz ef 3 99 55 66 88 ddd 99 ab cd ef gh 12 xy zw 88 67 89 zzz ddd 88 3 44 55 66 77 a b c d ef קובץ קובץ קובץ H שתוכנו הוא: G שתוכנו הוא: I שתוכנו הוא: לאחר הפעלת התכנית על ידי הפקודה: P7.4 3 6 4 6 H G I מתקבל הפלט: ef 7 66 7 ddd 4 88 4 9

פתרון שאלה 7.4 10

ובפורמט טקסט: function word_in_les { local word=$1 les words les=$(echo $@ cut -d" " -f2-) echo $(cat $les) tr " " "\n" egrep -c "^${word}$" } function lines_in_range_i1_i2 { local le=$1 i1=$2 i2=$3 n=$(wc -l < $le) if [ $i1 -gt $n ]; then return if [ $i2 -gt $n ]; then i2=$n head -$i2 $le tail -$[(i2-i1)+1] } function colums_in_range { local le=$1 j1=$2 j2=$3 z while read line; do a=($line) z="${a[@]:$[j1-1]:$[(j2-j1)+1]}" if [ "$z"!= "" ] ; then echo ${a[@]:$[j1-1]:$[(j2-j1)+1]} <$le } function words_in_range { local le=$1 i1=$2 i2=$3 j1=$4 j2=$5 lines_in_range_i1_i2 $le $i1 $i2 > tmp echo $(colums_in_range tmp $j1 $j2) } i1=$1;i2=$2;j1=$3;j2=$4 les=$(echo $@ cut -d" " -f5-) for le in $les;do words_in_range $le $i1 $i2 $j1 $j2 tr " " "\n" sort -u > tmp1 num_les=$(echo $les wc -w) sort tmp1 uniq -c egrep "^[ ]*${num_les}[ ]" > tmp2 while read line; do echo $line <tmp2 > tmp3 words=$(cat tmp3 cut -d" " -f2) for word in $words; do echo $word $(word_in_les $word $les) > tmp4 sort tmp4 -k 2nr,2 -k 1r,1 11