واحد های مختلف برنامه عباسپور

Slides:



Advertisements
Similar presentations
معاونت درمان امور مامایی اردیبهشت 90. برای ثبت اطلاعات در برنامه نرم افزاری نظام مراقبت مرگ پریناتال ابتدا لازم است برنامه نرم افزار info-path وپرنیان.
Advertisements

Stranded Costs مقدمه 1 - آشنايی با پديده های غيرخطی ( ياد آوری و تکميل ) 2 - مبانی رياضی ( مهم )
دستورهای انتقال کنترل عباسپور 1 دستورهای انتقال کنترل Control Statements.
1 آزمايشگاه سيستم های هوشمند ( Domain-specific Architecture.
Computer Programming برنامه سازی کامپيوتر1 مدل های رياضی مهندسی يعنی کاربرد علوم مختلف (رياضی، فيزيک) در حل مسائل کاربردی مدل های رياضی برای پيش بينی رفتار.
دستور های ورودی خروجی عباسپور 1 دستورهای ورودی و خروجی Input Output Commands.
آرايه ها يا رشته ها Arrays
فاکتورهای مهم در ایجاد یک مقاله علمی
Computer Programming برنامه سازی کامپيوتر1 طراحی الگوريتم ها Algorithm Design.
ارائه روشي براي شناسايي کاراکترهاي دستنويس، برپايه شبکه LVQ.
دستور های منطقی، عباسپور1 دستور های منطقی مقايسه ای LOGICAL COMPARISON EXPRESION.
Decision Tree.
مثال های کاربردی (1) محاسبه سطوح دايره ای شکل –آبياری بارانی –سم پاشها تعريف مسئله: تهيه برنامه ای که بر اساس يک شعاع مفروض ورودی سطح دايره متناظر را محاسبه.
دستورهای خروجی بر اساس فايل عباسپور 1 دستور های ورودی-خروجی بر اساس استفاده از فايل File-based Input and Output.
نويسه و رشته CHARACTER string رشته عبارتست از توالی از صفر يا چند کاراکتر مثل Ali برای ذخيره مواردی مثل اسم و آدرس و غيره.
نام و نام خانوادگي : فريد ملازم 1 آزمايشکاه سيستم هاي هوشمند ( موضوع ارائه Process and Deployment Design.
برنامه سازی کامپيوتری 1 نرم افزار در کامپيوتر. برنامه سازی کامپيوتری 2 نرم افزارها سخت افزار کامپيوتر بدون نرم افزار ان غير قابل استفاده است نرم افزار.
1 تدوين راهبرد برای يک برنامه جلب حمايت همه جانبه Mohsen Shams, MD. PhD Candidate in Health Education, School of Public Health, Tehran University of Medical.
مديريت پروژه‌هاي فناوري اطلاعات فرآيند مديريت پروژه-مرحله برنامه‌ريزي تخصيص منابع.
ادامه برنامه های فرعی عباسپور 1 متغير ها در برنامه های فرعی هر نوع متغيری که در برنامه فرعی اعلان می شود مخصوص همان برنامه است و در خارج از آن موجوديت.
مراحل مختلف اجرای يک برنامه
فایل پردازی در C File based Programming in C. انواع فایل متنی –سرعت بالا –حجم کمتر –امکان دسترسی تصادفی –حفظ امنیت داده ها دودویی (باینری) –امکان باز.
فارسی سازی يکپارچه در سيستم عاملهای OS/390 & Windows واحد 1 مهندسی سيستم Integrated Farsi support on OS/390 & Windows.
به نام خدا برنامه سازی سمت سرور (php)
آرايه Array آرايه مجموعه اى از متغيرهاى از يك نوع است كه با يك نام مشترك تحت استفاده قرار مى گيرند. يك عنصر بخصوص در يك آرايه با يك index (انديس ) مورد.
Data Types Modifiers Base data type Size Sign signed int 2 B unsigned float 4 B short double 8 B long char 1 B.
روابط مجموعه ها سلیمی. دکتر سلیمانی. نظریه فازی در سال 1965 بوسیله یک دانشمند ایرانی بنام پروفسور لطفی زاده معرفی گردید. گرچه این نظریه در ابتدا با.
1 فصل دوم تبديلات. 2 فصل دوم سرفصل مطالب مقدمه ضرب بردارها دستگاه ‌ هاي مختصات دوران ‌ ها مختصات همگن دوران ‌ ها و انتقال ‌ ها تبديلات تركيبي همگن تبديل.
دانشگاه صنعت آب و برق 1 زیربرنامه ‌ ها یا برنامه ‌ های فرعی موسوی ندوشنی ویراست بهار 1389.
آشنايي با سيستم اعداد.
LINEAR CONTROL SYSTEMS Ali Karimpour Associate Professor Ferdowsi University of Mashhad.
به نام خدا.
[c.
تهیه و تنظیم: فاطمه قاسمی دانشگاه صنعتی شریف – پاییز 86
تهیه و تنظیم: فاطمه قاسمی دانشگاه صنعتی شریف – پاییز 86
نظریه رفتار برنامه ريزي شده Theory of Planned Behavior
تمرین هفتم بسم الله الرحمن الرحیم درس یادگیری ماشین محمدعلی کیوان راد
انواع دستور در برنامه نويسی
بنام خدا زبان برنامه نویسی C (21814( Lecture 12 Selected Topics
دانلود جدیدترین مقالات برق الکترونیک و کامپیوتر
نمايش معادلات فضاي حالت توسط فرمهاي كانوليكال
آشنايي با برنامه نويسي به زبان C++
فصل دوم جبر بول.
تکنیک دیماتل DEMATEL: decision making trial and evaluation laboratory.
SSO Single Sign-on Systems
تبدیل فوریه (Fourier Transform)
نمايش اعداد در کامپيوتر چهار عمل اصلي
Similarity transformation
به نام خدا برنامه ارزيابي خارجي کيفيت (هماتولوژی- سرولوژی)
سميرا قانوني زهرا معدني
هیدرولیک جریان در کانالهای باز
دینامیک سیستمهای قدرت مدرس: دکتر مهدی بانژاد
تهیه و تنظیم: فاطمه قاسمی دانشگاه صنعتی شریف – پاییز 86
Ali Karimpour Associate Professor Ferdowsi University of Mashhad
نظریه رفتار برنامه ريزي شده Theory of Planned Behavior
وبلاگ جامع مهندسی برق و الکترونیک
به نام خدا برنامه ارزيابي خارجي کيفيت (هماتولوژی- سرولوژی)
به نام خدا اين فايل راهنما جهت آشنايی کاربران گرامی با پايگاه اطلاعاتی Sciencedirect و نحوه جستجوی اطلاعات در آن تهيه شده است لطفاً اسلايدهای بعد را مشاهده.
بسم الله الرحمن الرحیم هرس درخت تصمیم Dr.vahidipour Zahra bayat
کاربرد کامپیوتر در داروخانه
جستجوی منابع الکترونیک
فصل ششم مدارهای ترتیبی.
مثال : فلوچارتي رسم كنيد كه دو عدد از ورودي دريافت كرده بزرگترين عدد
نسبت جرم فرمولی ”جرم اتمی و فرمول تجربی
عملیات با رشته‌ها موسوی ندوشنی ویراست 1389 دانشگاه صنعت آب و برق.
کتابخانه دانشکده پرستاری و مامایی دانشگاه علوم پزشکی شهید بهشتی
برنامه ریزی خطی پیشرفته (21715( Advanced Linear Programming Lecture 7
kbkjlj/m/lkiubljj'pl;
مباني كامپيوتر و برنامه سازي Basics of Computer and Programming
مباني كامپيوتر و برنامه سازي Basics of Computer and Programming
Presentation transcript:

واحد های مختلف برنامه عباسپور Program Units واحد های مختلف برنامه عباسپور

واحد های مختلف برنامه عباسپور مقدمه در برنامه های بزرگ هر قسمت از برنامه با وظيفه مشخص را در واحد (بخش ) خاصی از برنامه قرار می دهند و هر موقع (حتی به صورت تکراری) نياز بود از آن استفاده می شود هر برنامه متشکل از برنامه اصلی و برنامه های فرعی: Subprogram Subroutine Internal External Module واحد های مختلف برنامه عباسپور

واحد های مختلف برنامه عباسپور جزئيات داخلی هر يک از برنامه های فرعی از ديگر برنامه های فرعی و خود برنامه اصلی مجزا بوده و لذا به راحتی می توان آنها را در هر برنامه ديگر به راحتی مورد استفاده قرار داد برنامه اصلی و هريک از برنامه های فرعی می توانند ازطريق واسط (Interface) با يک برنامه فرعی ارتباط بر قرار کند ولی ارتباط بين برنامه اصلی و فرعی يک طرفه است بايد بين واسط ها سازگاری برقرار باشد (Consistency of Interfaces) واحد های مختلف برنامه عباسپور

واحد های مختلف برنامه عباسپور انواع برنامه های فرعی توابع آماده (Supplied Functions): در کتابخانه فرترن موجود بوده و برنامه نويس بدون اجازه دخل و تصرف فقط می تواند آنها را در برنامه خود زير روالها (Procedure): اينها را برنامه نويس خود نوشته و می تواند در هر برنامه ای از آنها استفاده نموده و يا آنها را تغيير و يا اصلاح نمايد. شامل Functions (توابع) Subroutines واحد های مختلف برنامه عباسپور

مزايای استفاده از برنامه های فرعی واحد های فرعی را می توان مستقلاً نوشت و تست نمود يک برنامه فرعی که برای يک کار خاص نوشته شده است قابل فهم تر است استفاده مکرر در هر برنامه ديگر وقتی برنامه به صورت مجموعه ای از زير برنامه ها نوشته می شود عملکرد کامپايلر بهتر می شود واحد های مختلف برنامه عباسپور

واحد های مختلف برنامه عباسپور انواع تابع در فرترن تابع تک جمله ای: موقعی استفاده می شود که تابع را بتوان در يک عبارت يا دستور بيان نمود. اين تابع تنها يک خروجی دارد تابع تک جمله ای بايد قبل از اولين دستور محاسباتی (يا اجرايی) آورده شود فرم کلی: Name (x1,x2,……..xn)=e e: is a FORTRAN statement اگر تابع در يک سطر جا نگيرد می توان ادامه آن را در سطر بعد (با علامت&) نوشت نام تابع اگر اعلان نشود از قانون Implicit declaration پيروی خواهد شد اگر نام تابع تک جمله ای انتخابی مشابه نام تابعی از کتابخانه فرترن باشد اولويت با تابع تک جمله ای خواهد بود واحد های مختلف برنامه عباسپور

واحد های مختلف برنامه عباسپور مثال تابع تک جمله ای PROGRAM func1 REAL ::root REAL:: a, b, c, x, z REAL:: array (3) Root (a, b, c)=(-b+ ( b**2- 4.0*a *c)**0.5)/(2.0*a) X=Root (1, 5, 3) Print*, x ……….. ……… Z=Root (v, w, q) X= Root (Array (1), Array(2), Array (3)) Print*, z, x END PROGRAM func1 واحد های مختلف برنامه عباسپور

واحد های مختلف برنامه عباسپور توابع چند جمله ای اگر تابع دارای بيش از يک دستور باشد از اين نوع تابع استفاده می شود تمام برنامه های فرعی (internal Procedure) شامل توابع چند جمله ای و سابروتين ها در داخل برنامه اصلی قرار می گيرند. به عبارتی هر برنامه ای فقط و فقط می تواند يک برنامه اصلی داشته باشد. فرم کلی PROGRAM [name] [specification statements] [executable statements] ... [CONTAINS ] internal procedures] END [PROGRAM [name]] تمام برنامه های فرعی (بجز توابع تک جمله ای ) پس از برنامه اصلی و پس از کلمه CONTAINS می ايند تقدم و تاخر در آوردن برنامه های فرعی وجود ندارد واحد های مختلف برنامه عباسپور

واحد های مختلف برنامه عباسپور هر برنامه فرعی خود دارای نام و کلمه END در پايان آن است آوردن کلمه STOP در هر جای برنامه اصلی و برنامه های فرعی که اورده شود (به شرط رسيدن کنترل به آن) کل برنامه متوقف می گردد STOP [Character string] هنگامی که يک برنامه فرعی به صورت Function نوشته می شود خروجی آن فقط می تواند يک کميت (از هر نوع) باشد خود يک برنامه فرعی می تواند برنامه های فرعی ديگر را فراخوانی کند واحد های مختلف برنامه عباسپور

واحد های مختلف برنامه عباسپور فرم کلی FUNCTION FUNCTION name [(argument list)] [specification statements] [executable statements] ... …… name= Fortran statement RETURN END FUNCTION name در يک تابع حتماًً بايد Name يک بار در سمت چپ يک دستور قرار گيرد پس از محاسبه مقدار تابع در اختيار برنامه ای قرار می گيرد که آن را فرا خوانده است دستور RETURN کنترل را به نقطه ای بر می گرداند که احضار شده است ليست آرگومان ممکن است تهی و يا شامل تعدادی متغير از هر نوع باشد يک تابع برای اينکه در برنامه اصلی و يا در يک برنامه فرعی ديگر احضار شود با يد از اسم آن در دستورات مختلف استفاده شود (مانند توابع موجود در کتابخانه فرترن) واحد های مختلف برنامه عباسپور

واحد های مختلف برنامه عباسپور مثال: برنامه فرعی زير ريشه دوم هر عددی مثل a را به روش عددی نيوتن – رافسون با خطای نسبی 00001/0 از فرمول Ri+1=1/2(Ri + a/Ri) استفاده می شود. در اين روش با استفاده از تکرار عمليات ابتدا R برابر a/2 در نظر گرفته شده و هربار مقدار جديد a از روی مقدار قبلی آن محاسبه می گردد FUNCTION SQR (a) R=a/2.0 Do SQR=0.5* (R+ a/R) IF (ABS (SQR**2 –a)/a -0.00001)10, 5, 5 (مثبت، صفر ، منفی) R=SQR END DO RETURN END چنانچه اين تابع در پايين CONTAINS يک برنامه آورده شود آنگاه می توان به صورت زير مورد استفاده قرار گيرد Variable name= SQR (variable or constant) دستور محاسباتی شامل واحد های مختلف برنامه عباسپور

واحد های مختلف برنامه عباسپور PROGRAM main مثال REAL:: w(3,4) OPEN (16, File="out put", STATUS = "unknown") w=5.0 WRITE (16,1) totsum (w) 1 FORMAT (" The sum of All elements of w is:",F10.1) CONTAINS FUNCTION totsum (xx) نياز نيست اسم آرايه در برنامه اصلی و تابع يکسان باشد REAL:: xx (3,4 ( !Dummy argument آرگومان تقلبی totsum=0.0 loop1: Do I=1,3 loop2: DO J=1,4 totsum=totsum+ xx (I,J) END DO loop2 END DO loop1 END FUNCTION totsum END PROGRAM main اين برنامه فرعی جمع مقادير المان های يک آرايه دو بعدی را مشخص می کند واحد های مختلف برنامه عباسپور

واحد های مختلف برنامه عباسپور مثال2 اگر Y بزرگترين مقداری باشد که برای هر مقدار x از روابط زير بدست می آيد Y=cos x2 – cos x Y=cos x3 – 0.5 cos x برنامه ای بنويسيد که w را از رابطه w=(y+siny)0.5 برای مقادير x از 1 تا 100 حساب کند واحد های مختلف برنامه عباسپور

واحد های مختلف برنامه عباسپور PROGRAM Function2 REAL::y,x OPEN (16, File="out put", STATUS = "unknown") DO I=1,100 x=REAL (I) y=BIG (x) w=SQRT (ABS(y+SIN (y))) WRITE (16,10) x,w END DO 10 FORMAT (F5.0, 5x, E14.5) CONTAINS FUNCTION BIG (a) REAL:: a, y1, y2 y1=COS (a*a)- COS (a) y2= COS (a**3)-0.5* COS (a) IF (y1-y2)7, 4, 4 4 BIG=y1 RETURN 7 BIG=y2 END FUNCTION BIG END PROGRAM Function2 واحد های مختلف برنامه عباسپور

آرگومان های حقيقی و تقلبی Actual and Dummy arguments برنامه های فرعی وظايف خود را بر اساس اطلاعاتی که در اختيار آنها قرار می گيرد انجام می دهند. اين اطلاعات از طريق ليست ارگومانها که در جلوی اسم آنها قرار می گيرد مشخص می گردند ليست آرگومانها متشکل از تعدادی متغيير و يا عبارت (ويا حتی نام يک تابع ديگر) است متناظر با اين ليست ، ليست ارگومانها در دستور احضار نيز وجود دارد آرگومانهای موجود در ليست دستور احضار را آرگومانهای حقيقی و آرگومانهای موجود در ليست برنامه فرعی را آرگومانهای تقلبی می نامند واحد های مختلف برنامه عباسپور

واحد های مختلف برنامه عباسپور آرگومانهای حقيقی و تقلبی بر اساس مکان انها در ليست آرگومانها با همديگر متناظر می باشند يعنی اولين آرگومان در ليست حقيقی با اولين آرگومان در ليست تقلبی و الی آخر به اين ترتيب هر بار برنامه فرعی توسط يک برنامه ديگر احضار می شود تابع براساس مقادير آرگومانهای احضار کننده اجرا خواهد شد. بنابراين ليست آرگومانها در هر دو حالت بايد از همه نظر (نوع Data ، مرتبه و ابعاد آرايه) با همديگر مطابقت داشته باشند پس از اجرای برنامه فرعی اطلاعات از ليست تقلبی به ليست حقيقی منتقل می گردد واحد های مختلف برنامه عباسپور

مثال: استفاده از يک رشته در ارگومان برنامه فرعی !Example of using array in argument FUNCTION Amaximum (a, n) REAL:: a(100) Amaximum= a(1) IF (n>0)THEN DO I=2, n IF (Amaximum – a (I))5, 10, 10 Amaximum= a (I) CYCLE END DO END IF RETURN END FUNCTION Amaximum اين برنامه فرعی (تابع) بزرگترين عنصر يک رشته يک بعدی را مشخص می کند واحد های مختلف برنامه عباسپور

برنامه فرعی SUBROUTINE همانطور که اشاره شد FUNCTION ها چه تک جمله ای و چه چند جمله ای باشند فقط قادر به محاسبه و انتقال يک کميت هستند که اين کميت می تواند به جای يک متغير قرار گيرد: Results= name [(argument list)] با استفاده از سابروتين می توان کميت های متعددی را از برنامه احضار کننده به برنامه فرعی (سابروتين) منتقل و کميت های متعدد ديگری را از برنامه فرعی به برنامه اصلی منتقل نمود واحد های مختلف برنامه عباسپور

واحد های مختلف برنامه عباسپور فرم کلی سابروتين SUBROUTINE name (list of arguments) ................ ............. RETURN END در برنامه فرعی FUNCTION بايد نام تابع يکباردر سمت چپ يک دستور گنجانيده شود در حاليکه در سابروتين نام فقط در اواين دستور ظاهر می گردد آرگومانهای سابروتين همگی ساختگی (تقلبی) هستند و لذا انتقال دو طرفه کميت ها از طريق ليست آرگومانها صورت می گيرد واحد های مختلف برنامه عباسپور

واحد های مختلف برنامه عباسپور نحوه احضار يک سابروتين از دستور CALL استفاده می شود: PROGRAM call_test REAL, DIMENSION(10) :: a, c ... CALL swap ( a,c )   ………….   CONTAINS SUBROUTINE swap ( a,b ) REAL, DIMENSION(10) :: a, b, temp temp = a a = b b = temp END SUBROUTINE swap END PROGRAM call_test واحد های مختلف برنامه عباسپور

مثال کاربرد Subroutine در اين برنامه از يک سابروتين استفاده می شودکه در اين برنامه فرعی مشخص می شود آيا سه عدد وارد شده اضلاع مثلث هستند يا خير: اگر مثلث باشند محيط و مساحت مثلث را با پيام مناسب چاپ کند. اگر مثلث نباشند مساحت و محيط را برابر 1- قرار می دهد روش عددی بکار رفته به صورت زير است: در اين رابطه p نصف محيط است واحد های مختلف برنامه عباسپور

واحد های مختلف برنامه عباسپور READ (10,2) a, b, c FORMAT (3f10.2) CALL Triangle (a, b, ,c, s, p) IF (s) 5, 10,10 WRITE (3,6) a, b, c FORMAT (// 3f10.2/ 5x, “not a triangle”) GO TO 1 WRITE (3,12) a, b, c, s, p FORMAT (// 3f10.2/ 2x, “Area=“, f10.2, 5x, & “Circumference=“, f10.2) STOP CONTAINS واحد های مختلف برنامه عباسپور

واحد های مختلف برنامه عباسپور SUBROUTINE Triangle (a, b, c, Area, per) Area= -1 Per= -1 IF (a –(b + c)) 1, 1, 5 IF (b – (a + c)) 2, 2, 5 IF (c – (a + b))3, 3, 5 Per = a + b + c p=0.5 *per Area= SQRT (p* (p-a) * (p- b) * (p* -c)) RETURN END واحد های مختلف برنامه عباسپور

واحد های مختلف برنامه عباسپور مثال: برنامه ای بنويسيد که خواندن ؛ جمع کردن و چاپ عناصر يک آرايه (3,4) به صورت مجزا در يک سابروتين انجام گيرد PROGRAM main REAL, DIMENSION:: w (3,4) CALL READER (w) CALL PRINTER (w) CALL ADDER (w, sum) WRITE (*, 1) sum 1 FORMAT (// , “ The sum of all the elements & is:”, F7.2/) CALL FINISH CONTAINS واحد های مختلف برنامه عباسپور

واحد های مختلف برنامه عباسپور SUBROUTINE READER (z) REAL, DIMENSION:: z (3,4) WRITE (*,1) 1 FORMAT (“Please enter the 12 elements of the matrix”) READ (*,*) z RETURN END SUBROUTINE READER واحد های مختلف برنامه عباسپور

واحد های مختلف برنامه عباسپور SUBROUTINE PRINTER (x) REAL, DIMENSION:: x(3,4) WRITE ( *,10) 10 FORMAT (// “The following matrix was read:”) DO Irow=1,3 WRITE (*,3) (x ( Irow, Icol ) , Icol=1,4) FORMAT (1x, 4f10.1) END DO RETURN END SUBROUTINE PRINTER واحد های مختلف برنامه عباسپور

واحد های مختلف برنامه عباسپور SUBROUTINE ADDER (w, sum) REAL, DIMENSION:: w(3,4) Sum=0.0 DO Irow = 1, 3 DO Icol= 1,4 sum= sum + w (Irow, Icol) END DO RETURN END SUBROUTINE ADDER واحد های مختلف برنامه عباسپور

واحد های مختلف برنامه عباسپور SUBROUTINE FINISH ! بدون آرگومان WRITE (*,1) FORMAT (1x, 60 “-”,/ 1x, 60 “-”) RETURN END SUBROUTINE FINISH END PROGRAM main خلاصه: تعداد آرگومان در سابروتين ممکن است صفر، يک و يا بيشتر باشد انتقال اطلاعات بين برنامه احضار کننده و احضار شونده از طريق آرگومانهای حقيقی و ساختگی سورت می گيرد هر برنامه فرعی می تواند برنامه فرعی ديگری را احضار ولی نمی تواند خود و يا برنامه اصلی را احضار کند واحد های مختلف برنامه عباسپور

واحد های مختلف برنامه عباسپور واحد های مختلف برنامه عباسپور