תכנות - שיעור 30 19/February/2006    

עוד פקודות Linux

הצגנו מספר פקודות שמושיות ב-Linux. למשל:

עיקר הכוח של פקודות מהסוג הזה הוא ביכולת להפעילן ביחד על ידי (pipe) צינור שיוצרים אותו על ידי התו "|". לדוגמא נשתעשע עם הקובץ
/usr/share/dict/words


yotam@durini:l30:356> grep q /usr/share/dict/words | wc -l
1411
yotam@durini:l30:357> grep q /usr/share/dict/words | grep -v qu 
Chongqing
Compaq
Compaq's
Esq
Esq's
Iqbal
Iqbal's
Iraq
Iraq's
Iraqi
Iraqi's
Iraqis
Qiqihar
Qiqihar's
Urumqi
q
yotam@durini:l30:358> grep q /usr/share/dict/words | grep -v qu | wc -l
16

אנו רואים שיש 1411 שורות עם האות q, ומתוכן את השורות שאין בהם qu, ואת מספרן שהוא 16.

תיעוד

בדרך כלל, אפשר למצוא תיעוד על פקודות Linux בדרכים הבאות:
  1. קריאה לפקודה ללא פרמטרים. זה לא עובד כאשר הפקודה יכולה לעבוד יפה ללא פרמטרים.
  2. קריאה עם פרמטר --help למשל:
    head --help
  3. קריאת דפי manual למשל
    man head
  4. קריאת דפי information למשל
    info head
    ניתן לבצע זאת גם מתוך (אין כמו) emacs על ידי פקודת
    M-x info
  5. חיפוש ב- http://www.google.com/linux

בסיסים

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

int()
אך בכל זאת הראינו כיצד נתן לבצע זאת ידנית.


תרגילים

פתרונות לתרגילים קודמים

תוכלו לראות או להוריד פתרון לתרגיל שניתן בשעור קודם .

חדשים:

  1. נסו למצוא תיעוד של הפקודות שהוזכרו למעלה בכל השיטות שצוינו למעלה.
  2. הורידו את התכנית, והריצו אותה על ידי שורת פקודה:
    ./int10.py 0 13 mymistake 2006
    והבינו כיצד היא עובדת.
  3. כתבו פונקציה int16(n) שמקבלת מחרוזת של אותיות שמיצגת מספר בבסיס 16 ומחזירה את ערכו כמספר lteq1.png אם הוא חוקי, ומחזירה lteq2.png אחרת - כלומר אם יש אות שאיננה מתארת ספרה בבסיס 16.
  4. כתבו תוכנית שקוראת את השורות של קובץ המלים:
    /usr/share/dict/words
    בכל שורה יש מילה אחת. הדפיסו את המילים שיכולות להציג באופן חוקי מספרים בבסיס 16. במערכת שלי היו (באותיות קטנות) 59 מלים שכאלו.
    שימו לב שיש להתעלם מתווי "שורה חדשה".

חזרה לעמוד האם