כיצד לתכנת בפורטראן (עם תמונות)

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

כיצד לתכנת בפורטראן (עם תמונות)
כיצד לתכנת בפורטראן (עם תמונות)

וִידֵאוֹ: כיצד לתכנת בפורטראן (עם תמונות)

וִידֵאוֹ: כיצד לתכנת בפורטראן (עם תמונות)
וִידֵאוֹ: Merge multiple notes into a single note in the Evernote desktop app 2024, אַפּרִיל
Anonim

אנשים רבים תופסים את פורטרן כשפת תכנות ארכאית ו"מתה ". עם זאת, רוב הקוד המדעי וההנדסי כתוב בפורטראן. ככזה, תכנות ב- F77 ו- F90 נשאר מיומנות הכרחית עבור רוב המתכנתים הטכניים. יתר על כן, התקנים העדכניים ביותר של Fortran (2003, 2008, 2015) מאפשרים למתכנת לכתוב קוד יעיל במיוחד במינימום מאמץ, תוך ניצול כל תכונות השפה המודרנית, כגון OOP (תכנות מונחה עצמים). FORTRAN הוא ראשי תיבות של "FORmula TRANslation", ומתאים ביותר ליישומים מתמטיים ומספריים ולא גרפיקה או יישומי מסד נתונים. רוב קודי ה- fortran לוקחים קלט טקסט מקובץ או משורת פקודה ולא מתפריט או ממשק GUI.

צעדים

חלק 1 מתוך 4: כתיבה ועריכה של תוכנית פשוטה

תוכנית Fortran hello world write corrected
תוכנית Fortran hello world write corrected

שלב 1. כתוב תוכנית "שלום עולם"

בדרך כלל זו התוכנית הראשונה שכתבה בשפה כלשהי, והיא פשוט מדפיסה "שלום עולם" למסך. כתוב את הקוד הבא בכל עורך טקסט ושמור אותו כ- helloworld.f. שימו לב שחייבים להיות בדיוק 6 רווחים מול כל שורה.

תכנית helloworld implicit none character*13 hello_string hello_string = "שלום, עולם!" כתוב (*, *) hello_string סיום התוכנית helloworld

עֵצָה: הרווחים נחוצים רק בגרסאות של Fortran עד FORTRAN 77. אם אתה משתמש בגרסה חדשה יותר, תוכל להוריד את הרווחים. הידור תוכניות מגרסה חדשה יותר עם f95, לא f77; השתמש ב-.f95 כתוסף הקובץ במקום רק.f.

שלב 2. הידור התוכנית

לשם כך הקלד f77 helloworld.f בשורת הפקודה. אם זה נותן שגיאה, כנראה שטרם התקנת מהדר של Fortran כמו למשל gfortran.

פורטראן שלום עולם הידור run
פורטראן שלום עולם הידור run

שלב 3. הפעל את התוכנית שלך

המהדר הפיק קובץ בשם a.out. הפעל קובץ זה על ידי הקלדת./a.out.

שלב 4. להבין מה כתבת זה עתה

  • תוכנית הולוורלד

    מציין את תחילת התוכנית "helloworld". באופן דומה,

    סיום התוכנית helloworld

  • מציין את סופו.
  • כברירת מחדל, אם אינך מצהיר על סוג משתנה, Fortran מתייחס למשתנה עם שם שמתחיל באות מ- i ל- n כמספר שלם, וכל האחרים כמספר אמיתי. מומלץ להשתמש

    אין מרומז

  • אם אינך זקוק להתנהגות זו.
  • תו*13 מחרוזת שלום

  • מכריז על מערך תווים הנקרא hello_string.
  • hello_string = "שלום, עולם!"

  • מקנה את הערך "שלום, עולם!" למערך המוצהר. שלא כמו בשפות אחרות כמו C, לא ניתן לעשות זאת על אותו קו כמו הכרזת המערך.
  • כתוב (*, *) hello_string

  • מדפיס את הערך של hello_string לפלט הסטנדרטי. הראשון * פירושו לכתוב לפלט רגיל, בניגוד לקובץ כלשהו. השני * פירושו לא להשתמש בעיצוב מיוחד.
הערות פורטראן
הערות פורטראן

שלב 5. הוסף הערה

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

  • כדי להוסיף הערה שיש לה שורה שלמה בפני עצמה, כתוב c ישירות בשורה חדשה, ללא 6 הרווחים. אחרי זה כתוב את תגובתך. עליך להשאיר רווח בין c לבין ההערה שלך לקריאה טובה יותר, אך אין צורך בכך. שים לב שעליך להשתמש ב-! במקום c ב- Fortran 95 ומעלה.
  • כדי להוסיף הערה באותה שורה כמו קוד, הוסף a! היכן אתה רוצה שההערה שלך תתחיל. שוב, אין צורך ברווח, אך משפר את הקריאות.

חלק 2 מתוך 4: שימוש בקלטים ואם-קונסטרוקציות

סוגי נתונים של Fortran
סוגי נתונים של Fortran

שלב 1. הבנת סוגי נתונים שונים

  • INTEGER משמש למספרים שלמים, כמו 1, 3 או -3.
  • REAL יכול להכיל גם מספר שאינו שלם, כמו 2.5.
  • COMPLEX משמש לאחסון מספרים מורכבים. המספר הראשון הוא החלק האמיתי והשני החלק הדמיוני.
  • CHARACTER משמש לתווים, כמו אותיות או סימני פיסוק.
  • לוגי יכול להיות נכון. או.false.. זה כמו סוג בוליאני בשפות תכנות אחרות.

שלב 2. קבל את קלט המשתמש

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

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

program compnum real r לכתוב (*, *) "הזן מספר אמיתי:" קרא (*, *) r סיום התוכנית

Fortran if construction
Fortran if construction

שלב 3. עיבד את קלט המשתמש באמצעות if-construction

שים את זה בין

קרא (*, *) r

וה

תוכנית סיום

  • ההשוואה נעשית עם.gt. (גדול מ),.lt. (פחות מ) ו-.eq. (שווה) בפורטראן.
  • פורטראן תומך אם, אחרת אם, ועוד
  • בניית פורטראן אם תמיד מסתיימת בסופה אם.

אם (r. 0) אז כתוב (*, *) "המספר הזה חיובי." אחרת אם (r.lt. 0) אז כתוב (*, *) "המספר הזה שלילי." אחרת כתוב (*, *) "המספר הזה הוא 0." לסיים אם

עֵצָה: אתה לא צריך להכניס קוד בתוך מבני if עם יותר רווחים, אבל זה משפר את הקריאות.

תוכנית בדיקת מספר Fortran test
תוכנית בדיקת מספר Fortran test

שלב 4. הידור והפעלת התוכנית שלך

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

חלק 3 מתוך 4: שימוש בלולאות ומערכים

שלב 1. פתח קובץ חדש

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

שלב 2. הצהיר מערך באורך 10

כאן תוכלו לאחסן את המספרים. מכיוון שאתה כנראה רוצה סכום של מספרים ממשיים, עליך להכריז על המערך כממשי. אתה מכריז על מערך כזה עם

מספרים אמיתיים (50)

(מספרים הוא שם המערך, לא ביטוי).

שלב 3. הכריז על כמה משתנים

הצהירו על numSum כמספר אמיתי. תוכל להשתמש בו כדי לאחסן את הסכום מאוחר יותר, אך מכיוון שהסכום כבר נלקח על ידי ביטוי של Fortran, עליך להשתמש בשם כמו numSum. הגדר אותו ל- 0. הצהיר על i כמספר שלם ואל תקצה לו ערך עדיין. זה ייעשה ב- do-loop.

שלב 4. צור לולאה

המקבילה לזה בשפות תכנות אחרות תהיה for-loop.

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

    i = 1, 10

    . זה יגרום למשתנה i, שהצהרת לפני הלולאה, לעבור מ -1 ל -10 בשלבים של 1. השלבים אינם מוזכרים בביטוי זה, ולכן פורטראן משתמש בערך ברירת המחדל של 1. היית יכול גם לכתוב

    i = 1, 10, 1

  • הכנס קוד בתוך הלולאה (כניסה עם רווחים לקריאה טובה יותר). עבור תוכנית זו, עליך להגדיל את המשתנה numSum עם האלמנט ה- i של מספרי המערך. זה נעשה עם הביטוי

    numSum = numSum + מספר (i)

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

לולאת ה- do שלך אמורה להיראות כך:

האם 1 i = 1, 10 numSum = numSum + מספרים (i) 1 ממשיכים

עֵצָה: ב- Fortran 95 ואילך, אין צורך להשתמש בתוויות. רק אל תכניס אחד להצהרת ה- do וסיים את הלולאה עם "סוף עשה" במקום "המשך".

קוד לולאה של Fortran do
קוד לולאה של Fortran do

שלב 5. הדפס numSum

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

תכנית להוסיף הרבה מרומז אין מספרים ממשיים (10) מספר שלם של ממש מספר iSum = 0 לכתוב (*, *) "הזן 10 מספרים:" קרא (*, *) מספרים לעשות 1 i = 1, 10 numSum = numSum + מספרים (i) 1 המשך לכתוב (*, *) "הסכום שלהם הוא:" לכתוב (*, *) numSum סיום התוכנית הרבה

Fortran הוסף קוד מספר test
Fortran הוסף קוד מספר test

שלב 6. הידור והפעלת הקוד שלך

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

חלק 4 מתוך 4: הבנת מושגים מתקדמים

התוכנית בשלב פורטראן שלב 13
התוכנית בשלב פורטראן שלב 13

שלב 1. יש לך מושג טוב מה התוכנית שלך תעשה

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

אתר הפניה של Fortran screenshot
אתר הפניה של Fortran screenshot

שלב 2. מצא אסמכתא טובה של פורטראן

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

תת שורות Fortran example
תת שורות Fortran example

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

מחרוזת פורמט פורטאן דוגמה
מחרוזת פורמט פורטאן דוגמה

שלב 4. למד כיצד לקרוא ולכתוב מתוך/לקבצים

למד גם כיצד לעצב את הקלט/הפלט.

דוגמא מודרנית fortran screenshot
דוגמא מודרנית fortran screenshot

שלב 5. למד על התכונות החדשות של Fortran 90/95 ואילך

דלג על שלב זה אם אתה יודע שאתה רק כותב/שומר על קוד Fortran 77.

זכור כי פורטראן 90 הציג את קוד המקור "טופס חופשי", המאפשר כתיבת קוד ללא הרווחים וללא מגבלת 72 התווים

פורטרן ספר מקוון צילום מסך
פורטרן ספר מקוון צילום מסך

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

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

תוכנית ריכוז Fortran על פני קבצים מרובים
תוכנית ריכוז Fortran על פני קבצים מרובים

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

נניח שתוכנית Fortran שלך פרוסה על פני הקבצים main.f ו- morestuff.f, וכי אתה רוצה שהבינארי שנוצר יקרא בשם allstuff. לאחר מכן תצטרך לכתוב את הפקודות הבאות בשורת הפקודה:

f77 -c morestuff.f f77 -c main.f f77 -c morestuff.f f77 -o allstuff main.o morestuff.f

לאחר מכן הפעל את הקובץ על ידי הקלדת./allstuff.

עֵצָה: זה עובד באותו אופן עם גירסאות חדשות יותר של Fortran. פשוט החלף את.f בסיומת הנכונה ו- f77 בגרסת המהדר הנכונה.

שלב 8. השתמש באופטימיזציה שהמהדר שלך מספק

רוב המהדרים כוללים אלגוריתמים לאופטימיזציה המשפרים את יעילות הקוד שלך. אלה מופעלים בדרך כלל על ידי הכללת דגל -O, -O2 או -O3 בעת הידור (שוב תלוי בגרסת ה- fortran שלך).

  • באופן כללי, הרמה הנמוכה ביותר- O או -O2 היא הטובה ביותר. שים לב ששימוש באופטימיזציה האגרסיבית יותר יכול לגרום לשגיאות בקודים מורכבים ואף עלול להאט את העניינים! בדוק את הקוד שלך.

    טיפים

    • התחל עם תוכניות קטנות. כאשר אתה יוצר קוד משלך, נסה לזהות את החלק המהותי ביותר בבעיה - האם זה קלט הנתונים או קריאת הפונקציות, מבנה הלולאה (אלו כמה דוגמאות מאוד אלמנטריות) והתחל משם. לאחר מכן בנה על כך במרווחים קטנים.
    • פורטראן אינו תלוי רישיות. תוכל למשל להכריז על משתנה "מספר אמיתי" ולכתוב "num = 1" בשורה הבאה כדי להקצות לו ערך. אבל זה סגנון גרוע, אז הימנע מזה. חשוב מכך, לפורטאן לא אכפת גם מהמקרים של פונקציות והצהרות. זה די נפוץ לכתוב פונקציות והצהרות ב- UPPERCASE ומשתנים באותיות קטנות.
    • EMACS הוא עורך טקסט חינמי טוב לשימוש במקום פנקס רשימות.
    • אולי יהיה לך קל יותר בהתחלה להשתמש ב- IDE מקוון (סביבת פיתוח משולבת). אופציה טובה היא Coding Ground. תוכלו למצוא שם שפות תכנות רבות, כולל Fortran-95. אפשרות נוספת היא Ideone.

מוּמלָץ: