دستورهای انتقال کنترل عباسپور 1 دستورهای انتقال کنترل Control Statements.

Slides:



Advertisements
Similar presentations
Awe sim.
Advertisements

معاونت درمان امور مامایی اردیبهشت 90. برای ثبت اطلاعات در برنامه نرم افزاری نظام مراقبت مرگ پریناتال ابتدا لازم است برنامه نرم افزار info-path وپرنیان.
1 آزمايشگاه سيستم های هوشمند ( Domain-specific Architecture.
دستور های ورودی خروجی عباسپور 1 دستورهای ورودی و خروجی Input Output Commands.
آرايه ها يا رشته ها Arrays
Computer Programming برنامه سازی کامپيوتر1 طراحی الگوريتم ها Algorithm Design.
دستور های منطقی، عباسپور1 دستور های منطقی مقايسه ای LOGICAL COMPARISON EXPRESION.
Decision Tree.
مثال های کاربردی (1) محاسبه سطوح دايره ای شکل –آبياری بارانی –سم پاشها تعريف مسئله: تهيه برنامه ای که بر اساس يک شعاع مفروض ورودی سطح دايره متناظر را محاسبه.
دستورهای خروجی بر اساس فايل عباسپور 1 دستور های ورودی-خروجی بر اساس استفاده از فايل File-based Input and Output.
نويسه و رشته CHARACTER string رشته عبارتست از توالی از صفر يا چند کاراکتر مثل Ali برای ذخيره مواردی مثل اسم و آدرس و غيره.
نام و نام خانوادگي : فريد ملازم 1 آزمايشکاه سيستم هاي هوشمند ( موضوع ارائه Process and Deployment Design.
عمليات تکرار Repetition
برنامه سازی کامپيوتر 1 زبانهای برنامه سازی Programming Languages.
مديريت پروژه‌هاي فناوري اطلاعات فرآيند مديريت پروژه-مرحله برنامه‌ريزي تخصيص منابع.
ادامه برنامه های فرعی عباسپور 1 متغير ها در برنامه های فرعی هر نوع متغيری که در برنامه فرعی اعلان می شود مخصوص همان برنامه است و در خارج از آن موجوديت.
مراحل مختلف اجرای يک برنامه
فایل پردازی در C File based Programming in C. انواع فایل متنی –سرعت بالا –حجم کمتر –امکان دسترسی تصادفی –حفظ امنیت داده ها دودویی (باینری) –امکان باز.
PHP Hypertext per processor کار می کند؟ PHP چگونه
Microsoft Office Objectives Introducing Version history Look at the Excel window Data types Formulas Ribbon Functions Case study.
1 Network Address Translation (NAT). 2 Private Network شبکه خصوصی شبکه ای است که بطور مستقیم به اینترنت متصل نیست در یک شبکه خصوصی آدرس های IP به دلخواه.
فارسی سازی يکپارچه در سيستم عاملهای OS/390 & Windows واحد 1 مهندسی سيستم Integrated Farsi support on OS/390 & Windows.
1 بنام خدا زبان برنامه نویسی C (21814( Lecture 14 Structures.
Database Laboratory: Session #4 Akram Shokri. DB-Lab 2 Lab Activity You must already created all tables You have to have inserted proper data in tables.
به نام خدا برنامه سازی سمت سرور (php)
برنامه نویسی کامپیوتر بخش ششم مدرس: دکتر خالدیان.
1 بنام خدا زبان برنامه نویسی C (21814( Lecture 8 Chapters 8 & 9.
موضوع: دبير مربوطه: آموزشگاه : اجرا : عبارتهای جبری خانم مقصودی
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. 2 الگوريتم اقليدس E1: [find remainder] Divide m by n and let r be the remainder. Clearly, 0
Arrangements of Lines C omputational Geometry By Samaneh shafi naderi
آشنايي با سيستم اعداد.
LINEAR CONTROL SYSTEMS Ali Karimpour Associate Professor Ferdowsi University of Mashhad.
Power system stability پایداری سیستم های قدرت )) Presenter:mohammad zeinolabedini ( ارائه دهنده : محمد زین العابدینی ) 1.
[c.
تهیه و تنظیم: فاطمه قاسمی دانشگاه صنعتی شریف – پاییز 86
تهیه و تنظیم: فاطمه قاسمی دانشگاه صنعتی شریف – پاییز 86
نظریه رفتار برنامه ريزي شده Theory of Planned Behavior
بنام خدا زبان برنامه نویسی C (21814( Lecture 2 Chapter 3
انواع دستور در برنامه نويسی
بنام خدا زبان برنامه نویسی C (21814( Lecture 12 Selected Topics
SY800 router mode [AD-14-TB ].
واحد های مختلف برنامه عباسپور
چگونه بفهمیم آیا ژورنالی ISI است؟ ایمپکت فاکتور دارد یا خیر؟
آشنايي با برنامه نويسي به زبان C++
مدیریت مالی و اقتصاد مدیریت موضوع : نقطه سر به سر زمستان 93
فصل دوم جبر بول.
بررسی قطبش در لیزر های کاواک عمودی گسیل سطحی(vcsel)
SSO Single Sign-on Systems
تبدیل فوریه (Fourier Transform)
نمايش اعداد در کامپيوتر چهار عمل اصلي
1.
آشنایی با پایگاه داده mysql
Ali Karimpour Associate Professor Ferdowsi University of Mashhad
مدارهای منطقی فصل سوم - خصوصیات توابع سويیچی
هیدرولیک جریان در کانالهای باز
تهیه و تنظیم: فاطمه قاسمی دانشگاه صنعتی شریف – پاییز 86
Ali Karimpour Associate Professor Ferdowsi University of Mashhad
نظریه رفتار برنامه ريزي شده Theory of Planned Behavior
وبلاگ جامع مهندسی برق و الکترونیک
بسم الله الرحمن الرحیم هرس درخت تصمیم Dr.vahidipour Zahra bayat
جستجوی منابع الکترونیک
فصل ششم مدارهای ترتیبی.
مثال : فلوچارتي رسم كنيد كه دو عدد از ورودي دريافت كرده بزرگترين عدد
بسم الله الرحمن الرحیم.
kbkjlj/m/lkiubljj'pl;
مباني كامپيوتر و برنامه سازي Basics of Computer and Programming
مباني كامپيوتر و برنامه سازي Basics of Computer and Programming
Presentation transcript:

دستورهای انتقال کنترل عباسپور 1 دستورهای انتقال کنترل Control Statements

دستورهای انتقال کنترل عباسپور 2 انواع IF CASE DO توجه: در فرترن احکام غير اجرايي (مثل اعلان) در اين بلوک ها پذيرفته نمی شود  هر کدام ازاين بلک ها می تواند با نوعی ديگر به صورت متداخل ترکيب شوند  جهت سهولت در فهم برنامه می توان به دلخواه به هر بلوک يک نام اختصاص داد

دستورهای انتقال کنترل عباسپور 3 دستور های شرطی Conditional Statements هر تصميمی احتياج به برآورده شدن شرط يا شروطی دارد (حتی در زندگی روز مره) با بر آورده شدن شرايط يک سری عمليات انجام می گيرد –اگر هوا آفتابی باشد شرايط به صورت دستور های منطقی بيان می شوند که بر اساس نتيجه TRUE يا FALSE عملياتی انجام می گيرد

دستورهای انتقال کنترل عباسپور 4 جريان کنترل FLOW CONTROL انتخاب و کنترل مسير اجرای برنامه از ابزار مهم و قدرتمند در برنامه نويسی است در فرترن 90 و C دو ساختار زير جهت کنترل اجرا براساس خروجی يک عبارت منطقی مورد استفاده قرار می گيرد –ساختار و دستور IF –سازه و دستور CASE

دستورهای انتقال کنترل عباسپور 5 ساختار و دستور IFدر فرترن IF statement and construct ساده ترين فرم IF IF (Logical Expression) Executable Statement Statement : هر دستور اجرايي ( نه غير اجرايي و بجز END و خود دستور ديگری از IF) اگر Logical Expression مقداری TRUE باشد انگاه دستور statement اجرا می شود در اين ساختار هميشه دستور بعد از آن اجرا می شود Statementفقط بايد يک دستور واحد باشد مثال IF (x<0.0) x=0.0

دستورهای انتقال کنترل عباسپور 6 ساختار IF THEN ساده ترين بلوک IF چنانچه نتيجه دستوری منطقی TRUE باشد بلوکی شامل مجموعه ای از دستورات اجرا می شود در غير اينصورت اجرا به بعد از END IF منتقل می گردد فرم کلی [name:] IF (logical expression) THEN block1 END IF name Logical expression FALSE TRUE BLOCK1

دستورهای انتقال کنترل عباسپور 7 اجازه می دهد بر اساس نتيجه منطقی دو مسير مختلف انتخاب گردد. يک مسير با true بودن و مسير ديگر با false بودن اجرا می شود. در هر تکرار فقط يک بلوک می تواند اجرا شود [name:] IF (logical expression) THEN block1 ELSE block2 END IF name ساختار IF THEN ELSE Logical expression FALSE TRUE BLOCK2BLOCK1

دستورهای انتقال کنترل عباسپور 8 چندين گزينه پشت سر هم امکان پذير است تنها يک گزينه می تواند در هر بار اجرا شود به مجرد اجرای يک گزينه کنترل به انتهای END IF می رود در فرترن 90 با ساختار CASE جايگزين شده است [name:] IF (logical expression) THEN block1 ELSE IF (logical expression) THEN block2 ELSE IF (logical expression) THEN bolock3 ELSE block4 END IF name ساختارچند گانه Cascaded IF THEN ELSE

دستورهای انتقال کنترل عباسپور 9 مثال ساختار IF برنامه ای بنويسيد که بر اساس شکل سطح (دايره circle، مثلث triangle و مستطيل Rectangle) در هر مورد مساحت آنها را محاسبه نمايد PROGRAM shap ! Finding area of a surface based on shape identification ! shap= shape ID CHARACTER variable !radius= radius of circle !base= base of rectangle or Triangle !Height= height of rectangle or Triangle REAL:: area, radius, base, height, pi CHARACTER (10):: shap Pi=3.14 !input shape ID to choose a branch PRINT*, “input shape ID as “”circle””, “”triangle””,& &“”rectangle””.” READ(*,*) shapادامه در صفحه بعد

دستورهای انتقال کنترل عباسپور 10 IF (shap(1:1) == “c”. OR. shap(1:1) == “C” )THEN PRINT*, “input radius of circle” READ (*,*) radius Area=pi*radius**2. PRINT*, “radius and area for circle”, radius, area ELSE IF (shap(1:1) == “t”. OR. shap(1:1) == “T” )THEN PRINT*, “input base and height of triangle” READ(*,*) base, height Area=0.5*base*height PRINT*, “base, height and area for triangle are”, base, height, area ELSE IF (shap(1:1) == “r”. OR. shap(1:1) == “R” )THEN PRINT*, “input base and height of rectangle” READ (*,*) base, height Area=base*height PRINT*, “base, height and area for rectangle are:”, base, height, area ELSE PRINT*, “the requested shape is not a circle, triangle or rectangle” END IF END PROGRAM shap

دستورهای انتقال کنترل عباسپور 11 ساختار IF را می توان به صورت متداخل نيز نوشت. بطوريکه تقريباً تداخل در هر جايي امکان پذير است ماداميکه تصوير صحيحی از نوع تصميم داشته باشيد ساختاری ساده است در غير اينصورت ممکن است برنامه به درستی اجرا نشود فرم کلی: outer: IF( x>0.0 ) THEN block1... inner: IF( y<0.0 ) THEN block2…. END IF inner ELSE ………… …………. END IF outer ساختار متداخل Nested IF THEN ELSE

دستورهای انتقال کنترل عباسپور 12 ساختاری قديمی است که ساختار چندگانه جايگزين آن شده است ممکن است بعضی از کامپايلر ها آن را قبول نکنند فرم کلی IF (FORTRAN arithmetic expression) a, b, c a, b, c عدد برچسب دستور هستند اگر داخل پرانتز: منفی به دسنور a صفر به دستور b مثبت به دستور c می رود مثال IF (x-6.)100,200,300 ساختار محاسباتی Arithmetic IF

دستورهای انتقال کنترل عباسپور 13 ساختار GO TO با اين دستور بدون هيچ شرطی و يا بر آورده شدن شروطی خاص کنترل به دستوری معين به سمت جلو و يا عقب می رود با اين وجود از فرترن 90 به بعد سعی می شود از دستورات برچسب دار استفاده نشود فرم کلی GO TO lable مثال IF (x>10.) GO TO 10 …… 10 WRITE(*,*)………. GO TO 25 …….. ………

دستورهای انتقال کنترل عباسپور 14 ساختار مناسب ديگر در تصميم گيری بر اساس مقدار يک INTEGER کنترل به دستوری خاص می رود بهتر است کمتر از اين دستور استفاده شود چون برنامه را مبهم می کند اين دستور و دستور IF محاسباتی از دستورات منسوخ شده فرترن 90 هستند ولی می توان آنها را استفاده کرد فرم کلی GO TO (n1,n2,n3,……..nr) integer expression مثال GO TO (100,200,300,400)I اگر I 1 باشد به دستور 100 ، 2 باشد به دستور 200 و علی آخر اگر کمتر از 1 و يا بزرگتر از 4 باشد دستور بعدی اجرا می شود ساختار Computed GO TO

دستورهای انتقال کنترل عباسپور 15 ساختار انتخاب if در C فرم کلی if ( ) ; عبارت منطقی (درست (1یا غیر صفر) یا غلط (0)) دستور اجرایی پرانتز if اجباری است فرم دیگر if ( ) ; else ; فقط یکی از دو دستور اجرا می شود نیاز به کلمه then در این دستور نیست If (grade>=10) printf(“passed”); else printf(“failed”);

دستورهای انتقال کنترل عباسپور 16 ساختار بلوک if در C اگر تعداد دستورات در if بیشتر از 1 باشد باید از بلوک {} استفاده نمود فرم کلی if ( ){ …… ……. } else { …… ……. }

دستورهای انتقال کنترل عباسپور 17 مثال: محاسبه ضرائب معادله درجه2 # include void main(){ int a,b,c; float x1,x2 ; float delta; printf("please enter a,b,c:"); scanf("%d%d%d",&a,&b,&c); if (a==0){ printf("wrong equation"); exit(0); } delta= b*b -4*a*c; if (delta<0) printf("no answer"); else if (delta==0){ x1=-b/(2*a); printf("ther is one answer, x= %f",x1); } else { delta = sqrt(delta); x1=(-b+delta)/(2*a); x2=(-b-delta)/(2*a); printf(" there are two answers, x1=%4.2f and x2= %4.2f", x1, x2); }

دستورهای انتقال کنترل عباسپور 18 نکات برنامه تابع exit در فایل stdlib.h قرار دارد –ارگومان آن یک عدد است که نشان دهنده نحوه خروج از برنامه است عدد 0 خروج عادی هر عدد غیر صفر خروج بدلیل بروز خطا در c حاصل عبارت مقایسه ای (0 و یا غیر 0 است) بنابراین می توان در قسمت شرط if بجای عبارت مقایسه ای هر عبارتی که یک مقدار را باز می گرداند قرار داد If (!a) ….. اگر a صفر باشد نقیض ان درست خواهد بود

دستورهای انتقال کنترل عباسپور 19 If-else –if متداخل در c شرط ها از بالا به پایین بررسی و بمحض درستی یک شرط از دیگر شرط ها عبور می شود شرط های نادر تر در انتها آورده شود If (grade>=18) printf(“good”); else if (grade>=15) printf(“medium”); else if (grade>=12) printf(“rather weak”); else if (grade>=10) printf(“weak”); else printf(“failed!”);

دستورهای انتقال کنترل عباسپور 20 وضعیت else در if های متداخل مثال If (a<b) if (c ; else ; وضعیت tab نشان می دهد که else مربوط به if دوم است (statement2 در صورتی اجرا می شود که a<b درست و شرط c<d غلط باشد) در C هر else به نزدیکترین if بدون else تعلق دارد تغییر مالکیت if –اضافه کردن else –استفاده از بلوک {} If (a<b) if (c ; else; If (a<b) { if (c ; } else ;

دستورهای انتقال کنترل عباسپور 21 مثال برنامه ای بنویسید که سه عدد را دریافت و حداکثر آنها را چاپ کند # include void main(){ int a,b,c; int max; printf("please enter 3 numbers:"); scanf("%d%d%d",&a,&b,&c); if (a>b) if(a>c) max=a; else max=c; else if (b>c)max=b; else max=c; printf("maximum is %d", max); }

دستورهای انتقال کنترل عباسپور 22 ساختار SELECT CASE در فرترن روشی ساده که جايگزين ساختار IF…THEN می شود وقتی ELSE خيلی تکرار شود در فرترن 90 به بعد وجود دارد فرم کلی [name:] SELECT CASE( expression ) CASE( value ) [name] block... [CASE DEFAULT block] END SELECT [name] نتيجه expression ممکن است character, logical, integer باشد Value بايد هم نوع با نتيجه expression باشد CASE DEFAULT انتخابی است ولی اگر باشد شامل تمام مقاديری است که توسط CASE (VALUE) در نظر گرفته نشده است Value می تواند يک محدوده باشد ولی در هر صورت نبايد بر هم منطبق باشند CASE (number:) يعنی با هر مقداری بزرگتر از number اجرا شود CASE (:number) يعنی با هر مقداری کوچکتر از number اجرا شود

دستورهای انتقال کنترل عباسپور 23 مثال1 INTEGER :: month season: SELECT CASE( month ) CASE(4,5) WRITE(*,*) `Spring' CASE(6,7) WRITE(*,*) `Summer' CASE(8:10) WRITE(*,*) `Autumn' CASE(11,1:3,12) WRITE(*,*) `Winter' CASE DEFAULT WRITE(*,*) `not a month' END SELCET season

دستورهای انتقال کنترل عباسپور 24 مثال2 Wars:SELECTE CASE (nyears) CASE(1853:1856) WAR=“Crimean War” CASE(1899:1902) WAR=“Boer War” CASE(1914:1918) WAR=“World War1” CASE(1939:1945) WAR=“World War2” CASE DEFAULT WAR=“Peace” END SELECT Wars

دستورهای انتقال کنترل عباسپور 25 ساختار چند انتخابی switch/ case در C Switch ( ) { case : ; فرم کلی ; …… ; case : ; ; …… ; ……….. case : ; ; …… ; Default : ; ; …… ; }

دستورهای انتقال کنترل عباسپور 26 ( ) یک عبارت عدد صحیح یا کاراکتری یک ثابت عدد صحیح یا کاراکتری ( ) با هر یک از constant ها مقایسه و اگر برابر باشد اجرا می شود اگر با هیچکدام برابر نباشد Default اجرا می شود قرار دادن قسمت Default اختیاری است این ساختار فقط برای عبارات کاراکتری و صحیح قابل انجام است و برای اعشاری نمی توان استفاده نمود! اولین constant که صادق باشد تمام case های پس از ان نیز اجرا می شود حالت OR منطقی دارد، یعنی اگر چند حالت مختلف دارید که وقوع یکی از آنها باعث اجراء مجموعه ای از دستورات می شود برای لغو این حالت می توان از دستور break در انتهای هر case استفاده نمود دستور break در ساختار هاي do/while, for, while‌هم قابل استفاده هستند اين دستور سب مي شود كنترل از بلوك مربوط خارج و به اولين دستور پس از ان ساختار برسد دستور continue هم در ساختار هاي do/while, for, while‌قابل استفاده هستند. با اين دستور از اجراي باقيمانده بلوك صرف نظر شده و كنترل به ابتداي ساختار يا حلقه بر مي گردد If (number<0) break; If (number<0) continue; ساختار چند انتخابی switch/ case در C

دستورهای انتقال کنترل عباسپور 27 مثال : switch/ case برنامه اي بنويسيد كه دو عدد و عملگري را دريافت و نتيجه را چاپ نمايد #include void main(){ int number1, number2, result; char op; printf("please enter first number, operator and second number:"); scanf("%d%c%d", &number1, &op, &number2); result=0; switch (op){ case '+': result= number1+ number2; break; case '-': result= number1- number2; break; case '*': result= number1* number2; break; case '/': if (number2!=0)result= number1/ number2; else printf("error! there is no answer.\n"); break; case '%': if (number2!=0)result= number1% number2; else printf("error! there is no answer.\n"); break; default: printf("invalid operator!\n"); } printf("result=%d", result); }

دستورهای انتقال کنترل عباسپور 28 مثال کاربردی برای دستور IF افت انرژی در لوله ها –تعيين نوع جريان بر اساس عدد رينولدز R e =VD/ ، v=Q/A ؛ A=  d 2 /4 : Kinematic Viscosity (ft 2 /s) Re>2000 جريان متلاتم. معادله Darcy-Weisbach برای افت انرژی: h L =f(L/D)(v 2 /2g) افت بر حسب واحد وزن سيال f: Friction Factor f=64/R e for R e y 2000 جريان آرام

دستورهای انتقال کنترل عباسپور 29 برای جريان متلاتم : معادله Chen : معادله : Swamee and Jain معادله Colebrook

دستورهای انتقال کنترل عباسپور 30 استفاده از معادله Chen برای محاسبه افت PROGRAM headloss !Calculating energy loss in a circular pipe !using Chen Eq. ! D=diameter of pipe, ft ! E= average size of roughness, ft !AREA= Area of pipe, sq. ft !VEL=velocity of flow ! NU= Kinematic Viscosity, ft**2/s !Q= Volumetric flow rate, ft**3/s !L=Length of pipe, ft !F=friction factor !HL=energy loss, ft ادامه

دستورهای انتقال کنترل عباسپور 31 REAL::D,AREA,VEL,NU,Q,L,E,RE,F,HL,G,PI CHARACTER(LEN=9)::LABLE PRINT*, “input flow rate, cfs” READ(*,*)Q PRINT*, “input diameter, ft” READ (*,*)D PRINT*, “input length of pipe, ft” READ (*,*)L PRINT*, “input size of roughness, ft” READ (*,*)E PRINT*, “input kinematic viscosity, ft**2/s” READ (*,*)NU !Initial calculations and specifications G=32.17 PI= AREA=PI*D**2/4. VEL=Q/AREA RE=VEL*D/NU ادامه

دستورهای انتقال کنترل عباسپور 32 !calculating f based on Re IF (RE<=2000.)THEN F=64./RE LABLE="laminar" ELSE A1=5.8506/RE** A2=1./2.8257*(E/D)** A=A2+A1 F1=E/(3.7065*D) /RE*LOG10(A) F=(-2.01*LOG10(F1))**(-2) LABLE="Turbulant" END IF HL=F*L/D*VEL**2/(2.*G)

دستورهای انتقال کنترل عباسپور 33 !Out put approperiate data WRITE(*,*) WRITE(*,*)"Flow rate=",Q,"cfs" WRITE(*,*)"Pipe Diameter=",D,"ft" WRITE(*,*)"Lenght of pipe=",L,"ft" WRITE(*,*)"Size of ruoghness=",E,"ft" WRITE(*,*)"Kinematic Viscosity=",NU,"ft**2/s" WRITE(*,*) WRITE(*,*)"Flow is",LABLE,"the friction factor is",F WRITE(*,*)"The energy loss is",HL,"ft" END PROGRAM headloss

دستورهای انتقال کنترل عباسپور 34 عمليات تکرار Repetition از مهمترين ويژگيهای هر زبان برنامه نويسی است ساختار DO (DO Construct) –جهت تکرار بلوک هايي از دستورات مختلف –فرم کلی [name:]DO [Control Clause شرط کنترل ] block END DO [name]