دستورهای محاسباتی
اسلاید 1: برنامه نويسی کامپيوتر عباسپور1دستور های محاسباتی Arithmetic statementsاساسی ترين دستور زبانهای برنامه نويسی علمی (مثلاً فرترن و C)ترکيبی از ثابت ها، متغيير ها و عملگرهای محاسباتی قابل قبولفرم کلیA=E E : يک عبارت رياضی و A: يک متغيير و علامت = به معنی جايگزينی است نه برابریعملگرهای رياضی:
اسلاید 2: برنامه نويسی کامپيوتر عباسپور2عملگر ها بر روی تمام انواع داده های عددی عمل می کننددر C بر روی داده char نیز عمل می کنندعملگر % در C فقط بر روی اعداد صحیح عمل می کندنحوه عمل گر تقسيم در C :نتيجه تقسيم دو عدد صحيح عدد صحيح استاگر حتی يکی اعشاری باشد نتيجه اعشاری استمثال:int a,b;float c,d;a=10;b=4; c=8.2;d=4.0;a/b →2c/d →2.05a/d →2.54/2 →2
اسلاید 3: برنامه نويسی کامپيوتر عباسپور3عملگر غالب ريزی در Cبرای تبديل يک نوع داده به داده ديگر(<type>) <expression>مثال:(float) a/4a را بصورت موقت به اعشاری تبديل و سپس عمل تقسيم را انجام می دهد. نتيجه اعشاری خواهد بوددر يک عبارت محاسباتی نهايتاً تمام متغیر ها به يک نوع داده تبديل می شودchar ch;int i;float f;double d;result= (ch/i) + (f*d) +(f+i); int doublefloatdoubledouble
اسلاید 4: برنامه نويسی کامپيوتر عباسپور4دستورهای محاسباتی (ادامه...)دو عملگر نمی توانند در کنار هم قرار بگيرند مگر اينکه با پرانتز از هم جدا شوند X**-2 : قابل قبول نيست X**(-2)مثال:Cost*numberCost*number + postage10+34*pi1/pressurePi* radius* radius
اسلاید 5: برنامه نويسی کامپيوتر عباسپور5دستورهای محاسباتی (ادامه...)ترتيب انجام عمليات محاسباتی در يک دستورمطابق جدول زيراز چپ به راستبا استفاده از پرانتز می توان تقدم و تاخر زير را تغيير داد
اسلاید 6: برنامه نويسی کامپيوتر عباسپور6در يک دستور محاسباتی در طرف چپ بايد فقط نام يک متغيير باشد A+B=C يک دستور غلط استمثال: S=a+bF=a/b+c/DU=x+y+zz=x*y**0.5 (فقط فرترن)Q=V*T6.0*2.-3./4.+4.0*5.C=39.2*D-B+B**2-4.*A*c**0.5/2.*A(فقط فرترن)دستورهای محاسباتی (ادامه...)
اسلاید 7: برنامه نويسی کامپيوتر عباسپور7عملگر های انتساب در Cعلاوه بر = عملگر های زير در C معتبر استنسبت دهی متوالی (از راست به چپ)a=b=c=10;عملگر های انتساب خلاصه شدهبرای کوتاه نويسی عبارات++ عملگر افزایش به میزان يک واحد-- عملگر کاهش به میزان يک واحدپس عمل (ابتدا از مقدار فعلی متغير استفاده می شود سپس متغیر، تغيير می کند a++ )پیش عمل (ابتدا مقدار متغِير تغيير کرده سپس در عبارت مورد نظر استفاده می شود - -a )
اسلاید 8: برنامه نويسی کامپيوتر عباسپور8مثال#include <stdio.h>void main() {int a,b;a=5;b=a++;printf (“a=%d and b=%dn”, a,b);a=5;b=++a;printf (“a=%d and b=%dn”, a,b);}a=6 and b=5a=6 and b=6
اسلاید 9: برنامه نويسی کامپيوتر عباسپور9عبارت انتساب معادلمثالعملگرa=a+1;a++;++a=a-1;a--;--a=a+5;a+=5;=+a=a-8;a-=8;=-a=a*10;a*=10;=*a=a/2;a/=2;=/a=a%10;a%=10;=%فقط دو عملگر بالا بدو صورت پس عمل و پیش عمل استفاده می شوندعملگر های خلاصه نویسی در C
اسلاید 10: برنامه نويسی کامپيوتر عباسپور10دستورهای محاسباتی (ادامه...)مثال هايي از استفاده از پرانتزاستفاده از { } و کروشه به جای پرانتز مجاز نيستوجود زوج پرانتز مجاز استوجود تک پرانتز مجاز نيستX=(A+B+1.5*
اسلاید 11: 11دستورهای محاسباتی (ادامه...)در مورد ترتيب انجام توان بايد از پرانتز استفاده شود a**b**2 از نظر کامپيوتر مشخص نيستa (b2) a**(b**2)(ab)2 (a**b)**2درتدوين زبان های برنامه نويسی سعی شده است که دستورهای محاسباتی از لحاظ صورت ظاهری شبيه عبارات رياضی معادل آن باشد که مواقعی سبب اشتباه می گرددi**x
اسلاید 12: برنامه نويسی کامپيوتر عباسپور12محاسبات در مود های REAL و INTEGERدرفرترن و C در يک دستور محاسباتی آميختن ثابت يا متغييرها با دو مود مختلف مجاز استدر اين حالت INTEGER قبل از انجام هر عملی تبديل به REAL شده و نتيجه نيز يک REAL خواهد بوداگر دو INTEGER در يک دستور باشد نتيجه INTEGER خواهد بود و در مرحله بعد اگر با REAL بکار رود نتيجه REAL خواهد بوداشکال موقعی است که دو INTEGER بر هم تقسيم شوند د ر اين حالت اگر دارای بخش اعشاری باشد خذف خواهد شد عبارت (1/3)*Y*Z هميشه صفر خواهد بوددر عبارت Y**(N/M) اگر N و M به ترتيب برابر 6 و 4 نتيجه برابر ؛ به توان يک خواهد بوددر هيدروليک مجاری باز شعاع هيدروليکی برابر R (2/3) است که اگر 2و 3 اعداد صحيح در نظر گرفته شوند نتيجه R به توان صفر خواهد بود (منشاء بروز خطای منطقی)
اسلاید 13: برنامه نويسی کامپيوتر عباسپور13در مواردی آميختن مود ها مفيد استمثال: در محاسبات آماری جهت محاسبه متوسط چند کميت بايد مجموع بر تعداد انها (n) تقسيم شود در اين حالت نتيجه دقيق و به صورت REAL خواهد بود و نياز به تبديل کردن n به INTEGER نخواهد بود. اگر نياز باشد از توابع آماده شده استفاده می شودمحاسبات در مود های REAL و INTEGER
اسلاید 14: برنامه نويسی کامپيوتر عباسپور14محاسبات در مود های REAL و INTEGERدر فرترن اگر در توان رسانی استفاده از REAL و INTEGER نتيجه يکسان باشد جهت صرفه جويي در زمان اجرا بهتر است از INTEGER استفاده شودA**(I+1)B**0.5(k-2)**3مثالهايي از آميختن مود ها
اسلاید 15: برنامه نويسی کامپيوتر عباسپور15مثال:PROGRAM modeREAL:: a, b, cINTEGER:: I, j, ka=1.1; b=2.2; c=3.3i=1; j=2; k=3c= a + k j=k+bPRINT*, “c=“,c , “j=“, jEND PROGRAM modeمحاسبات در مود های REAL و INTEGERC=4.1 J=5اخطار در کامپايل بدليل اعلان i ولی استفاده نکردن از آنتمرین: این برنامه را با C بنویسید
اسلاید 16: برنامه نويسی کامپيوتر عباسپور16توابع رياضی آمادهتوابعی که نحوه محاسبه آنها به صورت برنامه هايي از قبل آماده شده در کتابخانه کامپايلر فرترن و C موجود استجهت استفاده بايد از صورت ويژه آنها استفاده کردهر تابع آرگومان خاصی دارد که در داخل پرانتز قرار می گيرندآرگومان ممکن است دارای يک يا چند ثابت ويا متغيير مختلف باشدزوايا در آرگومانهای مختلف بر حسب راديان هستند . درغيراين صورت بايد به راديان تبديل شوند
اسلاید 17: برنامه نويسی کامپيوتر عباسپور17مثال
اسلاید 18: برنامه نويسی کامپيوتر عباسپور18اثر تعداد ارقام ذخيره شده در کامپيوتر بر روی نتيجه محاسباتمحدوديت تعداد ارقامی که کامپيوتر می تواند ذخيره کند ممکن است سبب اشکال گردد.نتيجه امر می تواند به صورت خطاهای گرد شدن (Round off) نمايان گردد.مثال: اگر کامپيوتر شما برای هر عدد 7 رقم ذخيره نمايد محاسبات زير:0.4000000+1234567.-1234567نتيجه به جای اينکه 0.4 باشد صفر خواهد بود.ويا در محاسبات زير:10.0/3.0*3.نتيجه به جای اينکه 10 باشد برابر 9.999999 خواهد بود
اسلاید 19: برنامه نويسی کامپيوتر عباسپور19ادامه Round off Errorsاين امر سبب اشکال در مواقعی می گردد که دو عدد می خواهند با هم مقايسه گردندبرای جلوگيری از اين امر می توان از Double Precision ( با دقت مضاعف استفاده کرد)به صورت معمول نياز نيست چون حافظه زيادی از کامپيوتر اشغال می گردد.
اسلاید 20: برنامه نويسی کامپيوتر عباسپور20توابع کتابخانه ای در Cتوابع با کاربرد عمومی که در کامپايلر به احتمال زياد وجود داردمثل main, printf, scanf,… توابع دسته بندی شده اند و هر دسته در فايلی با نام خاص قرار داده شده است که فايل سرآمد ناميده می شونداین فايل ها بايد با دستور <file-name.ext> #include در اختیار بر نامه قرار می گيرندStdio.h : توابع ورودی و خروجی Math.h: توابع رياضیString.h توابع مربوط به رشته های نويسه ای
اسلاید 21: برنامه نويسی کامپيوتر عباسپور21Overflow و Underflow در توابع نماييهنگامی ممکن است بروز کند که عددی به توان عددی خيلی بزرگ و يا خيلی کوچک برسددر اين صورت پيام خطا از نوع خطای اجرايي می باشدبرنامه خاتمه می يابدمقداری که سبب خطا می شود از يک کامپيوتر به کامپيوتر ديگر متفاوت می باشدمثال:X=1.E30Y= x**2در مثال فوق پيام خطا ظاهر می شود اگر حد مجاز کمتر از 60 باشد
اسلاید 22: برنامه نويسی کامپيوتر عباسپور22استفاده از متغييرهای محاسبه شده قبلیسبب خواناتر و قابل فهم تر شدن دستورها می شوداز پيچيدگی برنامه می کاهداز متغييرهای محاسبه شده در صورت لزوم می توان در جای ديگری نيز استفاده کرد.منطق برنامه بهتر قابل فهم می شوداکثر معادلات بزرگ را می توان به اجزاء کوچکتر آن شکستاستفاده از معادلات بلند ممکن است سبب شود دستور از تعداد کاراکتر مجاز در هر دستور تجاوز نمايد
اسلاید 23: برنامه نويسی کامپيوتر عباسپور23مثال: محاسبه ممان اينرسی سطح مثلثی حول مرکز سطح IC، حول محوری موازی IXIc=1/36(bh3)Ix=Ic+Ayc2Yc=y1+1/3(h)A=0.5bhREAL:: IC,IX,B,H,A,YC,Y1IC=(1./36.)*B*H**3A=0.5*B*HYC=Y1+H/3.IX=Ic+A*YC**2ycy1hbxcx
نقد و بررسی ها
هیچ نظری برای این پاورپوینت نوشته نشده است.