باسلام

برای خوندن برنامه ام این مشکل رو دارم وقتی نمودار را با گردس رسم میکنم محورافقی را سال با بازه یک ماهه تعریف کردم و محور قاءم را مقدار متغیرهام هنگام رسم نمودار مقادیر که نمودار انها رسم میشود مثلا بجای اینکه برای 60 سال باشد فقط 20 سال رو رسم میکند و این مقادیر هم روی کل نمودار پخش می شود یعنی هر مقدار در سال خودش رسم نمیشه خواستم بپرسم ایا ctl برنامه ام ایراد داره و چه ایرادی؟

اما سوال دومم مربوط به این هستش که چرا در برنامه فرترن وقتی فایل datخروجی را نوشتم و 3 متغیر خروجی دارم rec=jرا برای هر 3 متغیر به همراه دستور جداگانه write نوشتم اما هنگام رسم نمودار ان در گردس فقط چند مقدار(مثلا20 سال) مربوط به متغیر سوم را می دهد؟

باتشکر

سه‌شنبه, 29/04/2014 - 21:16
تصویر moje.am

سلام

لطفا قسمت رایت برنامه فرترن و همینطور فایل کنترلی گردس رو بذارید تا بدونم چطور نوشته شدن

آیا براتون مقدور نبود فایل اصلی داده‌ها رو با گردس باز کنید و همه محاسبات لازم رو توی یک اسکریپت گردس بنویسید. فکر میکنم اگر محاسبه پیچیده نداشته باشید این کار ساده‌تر باشه :)

تصویر anis

سلام

با عرض پوزش دیر جواب می دهم 

ابتدا نطر استادم این هستش که فقط با فرترن کار کنم وقسمت رایت برنامه ام به این شکل نوشتم سوال دومم رو حل کردم اما هنوز برنامه ام فقط 16 سال اول را رسم می کند

OPEN(unit=10, file='C:\Users\hp\Desktop\hgt1.dat', form='unformatted', status='unknown', access='direct', recl=4*5*9)
OPEN(unit=20, file='C:\Users\hp\Desktop\hgt2.dat', form='unformatted', status='unknown', access='direct', recl=4*5*9)
OPEN(unit=30, file='C:\Users\hp\Desktop\hgt3.dat', form='unformatted', status='unknown', access='direct', recl=4*5*9)


                         WRITE(10,rec=j)Hanomaljun500(j)
	            
	                WRITE(20,rec=j)Hanomaljul500(j)
		 
	                WRITE(30,rec=j)Hanomalaug500(j) 

البته نظر استادم این هستش که 5*9را ننویسم و به جایش مقدار1 را قرار دهم من این کار را انجام دادم اما در مسیر اجرای گردس ایراد میگیرد

باتشکر

تصویر moje.am

به نظر من بهتره اجرا رو بیایید فقط با رایت یک متغیر انجام بدید و نتیجه رو چک کنید. این دستورهای رایت که توی برنامتون هست توی حلقه هستند دیگه؟! درمورد recl=4*9*5 همینی که نوشتید درسته (البته نمیدونم 9 و 5 چی هستند ولی 1 گذاشتن با این الگوریتم قطعا اشتباهه). برای فرترن باید اندازه آرایه مشخص باشه تا بتونه حافظه مورد نیاز رو به درستی تخصیص بده!

تصویر anis

سلام

5*9 این مقدار طول و عرض جغرافیایی که میخوام  محاسبه های خروجی ام تو این مقدار خونه شبکه باشه

اره رایتم تو حلقه هستش اما با اجرای فقط یه متغیر هم باز همین تعداد سال رو رسم میکنه مثلا این بار فقط برای جون؟!

ایشالا تو مصاحبه موفق باشید

تصویر moje.am

recl در واقع اشاره داره به طول رکورد (record lenght). در این بخش 4 دقت عدد شماست و بقیه اون باید متناسب با بٌعد آرایه باشه. یعنی اگر متغیر شما مثلا Hanomaljun500 دارای یک ستون با 30 عدد هست، باید بنویسید recl=4*1*30. رعایت این نکته الزامیه

تصویر anis

مگه هر reclطول یک رکورد نیست؟

مثلا ما اینجا 60 سال داریم که تعداد رکوردهای ما هم 60 تا است پس نبایدrecl=4*1*60 بنویسیم؟

تصویر moje.am

خب بله. همونه. من گفتم اگر اون متغیر شما 30 تایی هست. میشه 4*1*30

تصویر anis

تشکر

ولی هنوز فقط جند تابستان اول رو برام رسم میکنه؟

تصویر moje.am

به نظرم بیایید یک دستور مثل این رو بدون حلقه استفاده کنید ببینید کار میده یا نه:

write(10,rec=1) (Hanomaljun500(i),i=1,60)
برای ارسال دیدگاه وارد شوید یا ثبت نام کنید .