أود أن أعرف ما يقوم به FORTRAN 77 التعليمات البرمجية التالية

StackOverflow https://stackoverflow.com/questions/1041453

سؤال

في ملف .F هناك تعليمات برمجية أن يفعل هذا:

real Bob, avar
...
avar = Bob( 8.3 )
...

وبوب يبدو أن وظيفة ولكن يتم إعلانها في بداية الملف كملف حقيقية.

وثم هناك ملف .D يحتوي على إشارة إلى بوب. أيضا أنا أعرف أفار يحمل القيمة التي تظهر محرف، والمشكلة تكمن في الاستيفاء ليست دائما على حق.

Bob    John      35
-17.     -16.     -15.     -14.     -13.     -12.     -11.     -10.     -9.      -8.  
-7.      -6.      -5.      -4.      -3.      -2.      -1.       0.       1.       2.5  
 3.       4.       5.       6.5      7.       8.       9.       10.      11.      12.  
 13.      14.      15.      16.      17.  
 0.001    0.001    0.041    0.098    0.155    0.213    0.27     0.327    0.384    0.441   
 0.499    0.556    0.613    0.670    0.728    0.785    0.844    0.904    0.965    1.058   
 1.089    1.152    1.216    1.314    1.347    1.413    1.479    1.543    1.609    1.670   
 1.733    1.799    1.860    1.925    1.937 

وهذا هو كل رمز القديمة. أنا لم أكتب ذلك. أحاول إصلاحه. يتكون سؤالي ما يلي:

<اقتباس فقرة>   

ما هو هذا تفعل وكيف؟ ما هو ملف .D؟

وأعتقد أنه يحاول دس لكن لم أكن أعتقد أنك يمكن أن تفعل ذلك (بهذه الطريقة) مع FORTRAN 77.

هل كانت مفيدة؟

المحلول 3

وآسف للارتباك. الجواب هو نظام يستخدم ج الكلية الملكية لبرنامج FORTRAN التي لا الاستيفاء. يحدث هذا في ملف جعل. لقد وجدت من خلال النظر في بعض الوثائق غامضة. شكرا للجميع على مساهماتهم. عذرا مرة أخرى لاختصارية منه. لم أكن أحاول أن يكون صعبا. كان مربكا لي مع ما رأيته كذلك. ومن الصعب في بعض الأحيان العمل مع 30 سنة كود التركة القديمة تم شراؤها من شركة مختلفة. أنا جديدة على فورتران حتى ظننت أنني لم نرى شيئا أود أن نشهد مثل ميزة لغة كنت غير مألوف مع. أشعر أحمق. فعلت يؤدي بي إلى حفر أعمق. الدرس المستفاد.

نصائح أخرى

ويبدو ان بوب هو وظيفة، وهذا هو الحصول على قيمة حقيقية 8.3 تمريرها إليه، وreturniung حقيقية التي يتم تخزينها في أفار. ولكن هذا هو كل ما يمكن استخلاصها من رمز لديك موقع.

ويبدو أن ملف .D يحتوي على بعض البيانات التي خطي تقريبا. يبدو البيانات التجريبية. 35 هو عدد النقاط التي لديك، ثم لديك س، ثم ذ.

وبوب وجون يبدو أن مثل نوعا من علامات سلسلة، أو معرفات. وربما استخدامها في مكان ما في رمز لتقرر ما يجب القيام به مع البيانات، أو أي نوع من البيانات التي يمثلونها.

وبوب يبدو وكأنه وظيفة. يرجى ملاحظة أن لديك طريقتان لإعلان وظيفة.

real function foo(a)
    implicit none
    real, intent(in) :: a
    foo = 3.0+a
end function

program test
   implicit none
   real foo, bar, a, b
   bar(b) = b+5.0

   a=foo(5.3)
   print *, a, bar(2.3)
end program

واحد هو الحال صريحة (فو)، حيث كنت إرجاع القيمة من خلال إسناد لمتغير يدعى الدالة نفسها. القضية الأخرى هي "الضمنية" (لا أعرف الاسم الرسمي)، انظر شريط. هل نعلن ذلك بأنه "مجموعة"، ومن ثم التعبير عن كيف يجب أن تتصرف. رأيت ذلك نادرا جدا، ولكنها لكتابة مدمجة للغاية.

وملف. د هو على الارجح طريقة بعض منشطات للabreviating دات. وكان كسول جدا لكتابة حرفين إضافية. كان الوقت المبرمجين القديمة مثل ذلك.

ويبدو أنك قد حصلت على وظيفة الاستيفاء بسيطة على الرسم البياني حيث "بوب" هو X محور يمتد من -17 إلى +17 و "جون" عبارة عن مجموعة من القيم في الاتجاه Y المقابلة لنقطة بوب . (لا أعرف ما هو 35 ل، منذ يتم عرض فقط 32 نقطة).

والرمز يسأل: من أجل القيمة على المحور العاشر، 8.3، ما يمكن أن يكون قيمة محرف في الاتجاه Y. في شكل خطي انها ستعود 0.3 أضعاف الفرق بين 1.413 و 1.479. يمكن أن يكون أعلى من أجل interpolator ولكنك لا تظهر رمز، لذلك أفترض أبسط.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top