110 likes | 243 Views
عملیات با رشتهها. موسوی ندوشنی ویراست 1389. توابع کتابخانهای. تابع Len(s) آرگومان آن رشته است. خروجی عددی است که طول رشته را نشان میدهد. مثال: Character(Len=15) :: str i=Len(str) ! returns 15. دنباله توابع کتابخانهای. تابع Trim آرگومان آن رشته است.
E N D
عملیات با رشتهها موسوی ندوشنی ویراست 1389 دانشگاه صنعت آب و برق
توابع کتابخانهای • تابع Len(s) • آرگومان آن رشته است. • خروجی عددی است که طول رشته را نشان میدهد. • مثال: • Character(Len=15) :: str • i=Len(str) ! returns 15 دانشگاه صنعت آب و برق
دنباله توابع کتابخانهای • تابع Trim • آرگومان آن رشته است. • خروجی همان رشته ورودی است با این تفاوت که فواصل خالی راست حذف میشود. • مثال: • Print*, Trim('Fortran90') • Ans: Fortran90 دانشگاه صنعت آب و برق
دنباله توابع کتابخانهای • تابع Len_trim(s) • آرگومان آن رشته است. • خروجی عددی است که طول رشته را (بدون احتساب فواصل خالی راست آن) نشان میدهد. • مثال: • INTEGER :: L1, L2 • L1 = LEN_TRIM ('GOODDAY') ! returns 9 • L2 = LEN_TRIM ('') ! returns 0 دانشگاه صنعت آب و برق
دنباله توابع کتابخانهای • تابع AdjustL • آرگومان آن رشته است. • خروجی همان رشته ورودی است با این تفاوت که فواصل خالی چپ به راست منتقل میشود. • مثال • print*, AdjustL('Fortran 90') • Ans: Fortran90 • اکنون میتوان با تابع Trim فواصل خالی جلوی رشته را حذف نمود. • Print*, Trim(AdjustL('Fortran 90')) • Ans: Fortran90 دانشگاه صنعت آب و برق
دنباله توابع کتابخانهای • تابع AdjustR • آرگومان آن رشته است. • خروجی همان رشته ورودی است با این تفاوت که فواصل خالی راست به چپ منتقل میشود. • مثال: • print*, AdjustR('Fortran90') • Ans: Fortran90 دانشگاه صنعت آب و برق
دنباله توابع کتابخانهای تابع verify این تابع دارای دو آرگومان رشتهای است. اگر کلیه کاراکترهای آرگومان اول در آرگومان دوم موجود باشد، خروجی تابع صفر است. مثال: print*, verify('banana', 'abn') ! return 0 print*, verify('banana','cabn') ! return 0 اگر از چپ به راست، اولین کاراکتر آرگومان اول در بین کاراکترهای آرگومان دوم وجود نداشته باشد. محل آن کاراکتر در آرگومان اول توسط تابع فوق مشخص میشود. مثال: print*, verify('fbanana','cabn') ! return 1 print*, verify('bafnana','cabn') ! return 3 print*, verify('bafneana','cabn') ! return 3 print*, verify('bafneafna','cabn') ! return 3 print*, verify('banAna','cabn') ! return 4 دانشگاه صنعت آب و برق
دنباله توابع کتابخانهای تابع scan اگر از چپ به راست، اولین کاراکتر آرگومان اول در بین کاراکترهای آرگومان دوم موجود باشد. محل آن کاراکتر در آرگومان اول توسط تابع فوق مشخص میشود. مثال: print*, scan('banana','cabn') ! return 1 print*, scan('banana','can') ! return 2 print*, scan('fortran', 'tr') ! return 3 print*, scan('fortran', 'gha') ! return 6 print*, scan('fortran', 'ghA') ! return 0 دانشگاه صنعت آب و برق
فایلهای داخلی تاکنون شما چگونگی کار با دادههای عددی و کاراکتری را آموختهاید. اکنون به این مساله پرداخته میشود که چگونه میتوان دادههای عددی را به دادههای کاراکتری و یا بالعکس تبدیل نمود. مکانیزمی که در فرترن این کار را انجام میدهد، فایلهای داخلی نامیده میشود. برای دستور Read به صورت عمل میشود. Read(buffer, format) arg1, arg2, ... که در آن buffer کاراکتر ورودی است و به جای شماره پرونده (فایل) قرار میگیرد و format نیز قالبی برای خواندن است و arg1,arg2 نیز مانند متغیرهایی هستند که مقادیرشان از buffer خوانده میشود. دانشگاه صنعت آب و برق
دنباله فایلهای داخلی فرم عمومی دستور Write از فایل داخلی به صورت زیر است. Write(buffer, format) arg1, arg2, … که در آن buffer کاراکتر خروجی است و به جای شماره پرونده (فایل) قرار میگیرد وformat نیز قالبی برای نوشتن است و arg1,arg2 نیز مانند متغیرهایی هستند که مقادیرشان رویbuffer نوشته میشود. دانشگاه صنعت آب و برق
مثال فایلهای داخلی • implicit none • Character(Len=5) :: text ='135.4' • Character(Len=10) :: str ='_567', string • Real :: value • integer :: val • Print '(A\)', 'Enter the integer value:' • Read*, val • Read(text,*) value • value=2.*value • Print*, value • Write(string, '(I10)') val • Print*, string // str • End • ورودی برنامه عدد 1234 است و خروجی به صورت زیر است. • 270.8000 • 1234_567 دانشگاه صنعت آب و برق