תכנות נומרי עם Matlab ו-Octave/שלום עולם!



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

שתי צורות העבודה עריכה

בבMatlab וOctave קיימות שתי צורות עבודה:

  1. אפשר לעבוד אינטראקטיבית במעטפת פקודה. לאחר הקלדת כל פקודה, מקבלים ישירות את תוצאת המתרגם.
  2. אפשר לשמור רצפי פקודות בקובץ אצווה, ולהריץ את המתרגם על הקובץ. צורת עבודה זו דומה יותר (אם כי לא זהה) למקובל בשפות מהודרות כשפת C. הקובץ עם סיומת m ואפשר לערוך אותו בכל מעבד תמלילים.

עבודה אינטראקטיבית עריכה

הפעלת המתרגם עריכה

  • Matlab: מפעילים את התוכנה. החלון הגדול נקרא command window ושם כותבים את הפקודות או מריצים תוכניות בצד שמאל יש חלונית היסטוריה ומעליה חלונית workspace שם רשומים כל המשתנים המוגדרים .
  • Octave:
    • לינוקס: פותחים את חלון הפקודות, ומקלדים octave (באותיות קטנות).
    • חלונות: מפעילים את התוכנה

עם הפעלת התוכנה, תופיע הודעת ברכה. אם מפעילים את Octave בלינוקס, לדוגמה, ייתכן שתופיע ההודעה הבאה:

GNU Octave, version 2.9.12
Copyright (C) 2007 John W. Eaton and others.
This is free software; see the source code for copying conditions.
There is ABSOLUTELY NO WARRANTY; not even for MERCHANTIBILITY or
FITNESS FOR A PARTICULAR PURPOSE.  For details, type `warranty'.

Octave was configured for "i486-pc-linux-gnu".

Additional information about Octave is available at http://www.octave.org.

Please contribute if you find this software useful.
For more information, visit http://www.octave.org/help-wanted.html

Report bugs to <bug@octave.org> (but first, please read
http://www.octave.org/bugs.html to learn how to write a helpful report).

For information about changes from previous versions, type `news'.

octave:1>

במערכות שונות עשויה להופיע הודעה שונה מעט. Matlab כמובן תדפיס הודעת ברכה שונה (אך מקבילה).

סמן הPrompt עריכה

נשים לב לסימן

octave:1>

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

במערכות שונות עשוי הסמן להראות מעט שונה, אך אין הבדל מהותי. בMatlab, לדוגמה, עשוי הסמן להראות כך:

>>

בדוגמאות הספר נשתמש בסמנים שונים.

הדפסת ברכה אינטראקטיבית עריכה

כעת נכתוב:

>> disp('Hello, world!')

ונקיש Enter. המתרגם ידפיס את המילים !Hello, world, ויחכה לפקודה חדשה:

>> disp('Hello, world!')
Hello, world!

בעצם הפעלנו פונקציה בשם disp שמדפיסה מחרוזות. המחרוזת שלנו היתה !Hello, world.

פקודות בסיסיות עריכה

 

שקלו לדלג על נושא זה

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



בעבודה אינטראקטיבית, יש מספר פקודות בסיסיות להקלת העבודה.

מבנה הפקודה:

order <object>

כאשר order זו הפקודה ו<object> הוא האובייקט עליו מפעילים את הפקודה (אם זה רלוונטי).


עזרה עריכה

בהקלדת help בשורת הפקודה נקבל רשימה של האופרטורים, הפקודות והפונקציות שמותקנות בתוכנה.

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



דוגמה:

octave:2> help sin
 -- Mapping Function:  sin (X)
     Compute the sine of each element of X.

sin is a built-in mapper function

Additional help for built-in functions and operators is
available in the on-line version of the manual.  Use the command
`doc <topic>' to search the manual index.

Help and information about Octave is also available on the WWW
at http://www.octave.org and via the help@octave.org
mailing list.


חיפוש עריכה

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


lookfor abs
abs                  Compute the magnitude of Z, defined as |Z| = `sqrt (x^2 +
                     y^2)'.
file_in_loadpath     Return the absolute name of FILE if it can be found in the
                     list of directories specified by `path'.
file_in_path         Return the absolute name of FILE if it can be found in
                     PATH.
nextpow2             If X is a scalar, returns the first integer N such that 
                     2^n >= abs (x).

קיבלנו פונקציות המשתמשות בביטוי abs


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

אם נכתוב whos ללא משתנים, נקבל את כל המשתנים הקיימים.

>>whos

פקודות ניקוי עריכה

  • clear - הפקודה תמחק את כל המשתנים הקיימים. אם לאחריה נכתוב שם של משתנה קיים, היא תמחוק רק אותו.
  • clc - הפקודה מנקה את חלון הפקודות . מקובל לכתוב אותה בתחילת תוכניות.

קובץ אצווה עריכה

יצירת הקובץ עריכה

ניתן לכתוב קובץ אצווה (סקריפט) על ידי עורך טקסט, ולהפעילו ללא כניסה ישירה לMatlab או Octave.

פתח עורך טקסטים, ורשום בו:

% Prints 'Hello, world!' when run.

disp('Hello, world!');

שמור את הקובץ בשם hello.m כקובץ טקסט (ללא סימני עריכה) בתיקיה בה יש לך הרשאות מתאימות.

הרצת הקובץ עריכה

בחלונות תוכל להפעיל את הקובץ ע"י לחיצה עליו עם לחצן ימני ובחירת פתיחה באמצעות התוכנה.

בלינוקס, פתח חלון טרמניל, ונווט לתיקיה בה שמרת את הקובץ. הקלד octave hello.m והקש Enter.

המתרגם יזהה את פקודת ההדפסה, ובטרמינל תראה Hello, world!



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