اساس ه. Fortran 90 Programming Examples Including Fortran 90 CD. Omid Alizadeh CCGroup 1/1/2009

Size: px
Start display at page:

Download "اساس ه. Fortran 90 Programming Examples Including Fortran 90 CD. Omid Alizadeh CCGroup 1/1/2009"

Transcription

1 اساس ه 90 Fortran 90 Programming Examples Including Fortran 90 CD Omid Alizadeh CCGroup 1/1/2009

2

3 ي م فرترن برنامه فرترن 95 شامل فرترن 90 و فرترن 77 باشد. فرترن 90 نيز استانداردها و امكانات فرترن 77 را نيز در بر دارد. FORTRAN COMPAQ تمامي امكانات و ويژگي هاي فرترن 95 و 90 و 77 را شامل مي شود و توسط MICROSOFT VISUAL به برنامه هاي ديگر شركت COMPAQ متصل مي شود. نمودار زير درصد بخش هاي مختلف MICROSOFT VISUAL FORTRAN را مشخص مي كند.

4 فصل اول

5 ي م برنامه نوشته شده بوسيله زبان فرترن شامل يك يا چند قسمت برنامه نويسي ي م باشد كه از تعدادي خط دستور تشكيل شده است كه شامل دستورات تعريف متغير Variable Declaration و دستورات اجرايي Execution Statement باشد. هر برنامه به كلمه END خاتمه مي يابد. برنامه مي تواند در قسمت هاي مختلفي نظير بدنه اصلي زيربرنامه ها مدول ها بلوك اطلاعات نوشته شود هر برنامه داراي يك بدنه اصلي است و ساير قسمت ها مي توانند در صورت نياز به برنامه افزوده شوند. قسمت هاي مختلف برنامه مي توانند به صورت جداگانه كامپايل شوند ) كامپايل عمل بررسي دستورات و تبديل آن به زبان پردازنده است (. دستورات نوشته شده به دو دسته اصلي عبارات قابل اجرا و غير قابل اجرا تقسيم مي شوند. دستورات اجرايي عملي را جهت اجرا مشخص مي كنند حال آنكه دستورات غير اجرايي نحوه اجراي ي ك پردازش را تعيين مي كنند. تصوير زير موقعيت قسمت هاي مختلف برنامه را نمايش مي دهد : در برنامه هاي فرترن از كاراكتر هاي زير مي توان استفاده نمود : 1 -ارقام 0 تا 9 2 -حروف انگليسي (بزرگ و كوچك ( 3- خط فاصله _ 4 -حروفي كه در جدول زير قرار دارند : 5

6 Character Name Character Name blank Blank (space) : Colon = Equal sign Exclamation point + Plus sign " Quotation mark - Minus sign % Percent sign * Asterisk & Ampersand / Slash ; Semicolon ( Left parenthesis < Less than ) Right parenthesis > Greater than, Comma? Question mark. Period (decimal point) $ Dollar sign (currency symbol) ' Apostrophe برنامه هاي فرترن به دو صورت قالب آزاد و ثابت نوشته مي شوند.در قالب آزاد مي توان متن را در هر قسمت دلخواه نوشت اما در قالب ثابت 5 ستون اول هر خط به برچسب شود (Label) اختصاص دارد و ستون ششم به علامت پيوستگي (+) اختصاص دارد و برنامه مي بايست در بين ستون ها 7 تا 72 نوشته. علامت پيوستگي به اين معناست كه خط جاري در ادامه خط بالايي قرار دارد و زماني كه نتوان در يك خط كل دستور را نوشت در ستون ششم خط بعدي علامت پيوستگي را قرار مي دهيم. در برنامه با قالب آزاد به جاي علمت + از علامت & استفاده مي شود به اين ترتي ب جهت پيوستگي دو خط قرار داده مي شود. كه در انتهاي خط تفاوت ديگري كه بين اين دو قالب وجود دارد اين است كه در قالب آزاد جهت قرار دادن توضيحات از استفاده مي شود و در قالب ثابت از C استفاده مي شود. خط توضييح خطي است كه اجرا نمي شود و تنها جهت درك بهتر برنامه نوشته مي شود. عبارات رياضي كه در برنامه نويسي استفاده مي شوند در جدول زير آمده اند : كارايي عملگر توان ** 6

7 ي م ضرب * تقسيم / جمع و يا علامت مثبت + تفريق و يا علامت منفي - بود فرض كنيد مي خواهيم مقدار عبارت را محاسبه كنيم. اگر در ابتدا ضرب را انجام دهيم مقدار كل عبارت فوق 14 خواهد شد و چنانچه عمل جمع در ابتدا انجام شود مقدار آن 16 خواهد. حال آنكه در رياضيات هيچ يك از دو عمل جمع و ضرب نسبت به يكديگر تقدم ندارند و براي حل اين دوگانگي توان از طراح سوال در مورد تقدم عملگرها اطلاعاتي را كسب نمود. در زبانهاي برنامه نويسي نيز به محاسبه عبارتي نظير عبارت فوق نيازمنديم اما براي حل مشكل يك تقدم استاندارد براي عملگرها در نظر گرفته شده است. در زبان برنامه نوي سي بصورت زير است : فرترن اولويت عملگرها همواره اولويت با آنچه داخل پرانتز () است مي باشد. توان ** / يا * ضرب و تقسيم - يا + جمع و منها چسباندن دو رشته // > يا < يا <= يا >= يا = = يا /= عبارت مقايسه اي نقيص گزاره شرطي تركيب دو گزاره ياي منطقي معادل است با معادل نيست با.NOT..AND..OR..EQV..NEQV. بدين ترتيب همواره ابتدا عملگري كه در جدول بالاتر از ديگر عملگرها قرار دارد اعمال مي شود.در مثال هاي زير اولويت عملگرها با شماره در زير عبارت مشخص شده است : 7

8 ي م * 2-6/2 = 7 ^ ^ ^ ^ (4 + 3) * 2-6/2 = 11 ^ ^ ^ ^ (4 + 3 * 2-6)/2 = 2 ^ ^ ^ ^ ((4 + 3) * 2-6)/2 = 4 ^ ^ ^ ^ و براي تبديل عبارات رياضي به فرترن نيز بايد اين اولويت ها را رعايت نمود به عنوان مثال براي 5 محاسبه در فرترن بايد نوشت (3+4)/ در مورد عبارات منطقي نيز بايد به ترتيب اولويت عبارات را بر اساس جدول زير ساده كرد تا به ي ك نتيجه صحيح يا غلط رسيد. ) ستون NOT بر روي گزاره دوم اعمال مي شود و بقيه ستون ها بر روي هر دو ستون اعمال مي شوند (.NOT. F T F T.AND. T F F F.OR. T T T F.EQV. T F F T.NEQV. F T T F گزاره دوم T F T F گزاره اول T T F F عملگر // كه در جدول اولويت ها آمده است موجب مي شود كه دو عبارت رشته اي به يكديگر بچسبند و يك عبارت رشته اي بزرگتر را ايجاد كنند به عنوان مثال خروجي سه عبارت زير همان ' ABCDEF' است. ('ABC'//'DE')//'F' 'ABC'//('DE'//'F') 'ABC'//'DE'//'F' در جدول زير عملگر هاي ديگري كه در زبان برنامه نويسي فرترن وجود دارند نوشته شده اند : عملگر.LT. or < كاربرد كوچكتر است از 8

9 .LE. or <=.EQ. or = =.NE. or /=.GT. or >.GE. or >= كوچكتر يا مساوي است با مساوي است با مساوي نيست با بزرگتر است از بزرگتر يا مساوي است با اين عملگرها به عملگرهاي مقايسه اي معروفند و باعث تولي د.TRUE. و يا.FALSE. مي شوند و مي توانند در بين داده هاي رشته اي و عددي و منطقي اعمال شوند. مطلب ديگري كه مي توان در اين فصل به آن اشاره كرد نتيجه عملگرهاست. به عبارت ديگرمي توان پيش از انجام عمليات توسط رايانه مشخص كرد كه نتيجه عمل از چه نوعي خواهد بود. به عنوان مثال عمل 2+2 عبارت 4 را نتيجه مي دهد يا.4 در توضيح مي توان گفت كه چنانچه عملگر بين دو نوع يكسان انجام شود خروجي نيز از همان نوع است يع ين در مثال بالا چون هر دو عدد از نوع صحيح هستند خروجي نيز از نوع صحيح خواهد بود. تنها نكته اي كه در اين ميان است آنكه حاصل 1/2 عدد 0 مي باشد زيرا هر دو عدد 1 و 2 از نوع صحيح مي باشند و خروجي كه بايد مقدار 0.5 باشد از نوع حقيق ي است و پس از حذف قسمت اعشاري به صفر تبديل مي شود. اگر عملگر بين دو نوع متفاوت باشد نتيجه نوع وسيع تر است. نوع عددي صحيحي زير مجموعه اعداد حقيقي و اعداد حقيقي زير مجموعه اعداد مختلط است. اگر مثال بند قبلي را به شكل 2/.1 مطرح كنيم جواب 0.5 خواهد بود. 9

10 فصل دوم

11 ي م ي م در تمام زبانهاي برنامه نويسي به ذخيره موقت اطلاعات نياز داريم تا در زمان نياز از آنها بهره مند شويم. اين امكان توسط ذخيره اطلاعات در يك شي برنامه نويسي به نام متغير فراهم شده است.متغير محلي از حافظه است كه داراي اسم و مشخصات خاص خود است و براي دسترسي به اين متغيرها لازم است كه يك سري ويژگي براي آنها تعريف شود. كه اولين آن همان نام متغير است. در انتخاب نام متغير نكاتي وجود دارد كه بايد به آنها توجه كرد. 1 نام متغير نبايد با عدد شروع شود. 2 نام متغير نبايد نام توابع آماده فرترن باشد. 3 در انتخاب نام تنها بايد از كاراكترهاي مجاز استفاده شود. كاراكترهاي مجاز حروف لاتين از a تا A z تا Z 0 تا 9 و _ ) كه underscore خوانده مي شود ( مي باشند. البته بايد توجه كرد كه متغيرهايي با نام ) 7up بدليل نقض مورد ( 1 و ) Sin به دلي ل نقض مورد ( 3 مجاز نمي باشند اگرچه از كاراكترهاي مجاز در نام آنها استفاده شده است. حال اسامي با نام Sinx و Flor و A-B را بررسي كنيم. نام Sinx نه تنها با عدد شروع نمي شود بلكه از كاراكترهاي مجاز تشكيل شده است. حال براي بررسي شرط دوم به اين نكته توجه كنيد كه در تابع Sin(x) قسمت اول يع ين Sin نام تابع است و متغير Sinx نام هيچ تابعي نمي باشد پس مي تواند يك نام مجاز براي متغير به حساب بيايد. Flor با عدد شروع نمي شود و در نام آن از كاراكترهاي مجاز استفاده شده است همچنين نام متغير نيز نميباشد ) تابع جزء صحيح Floor باشد )بنابراين ميتوان از آن براي نامگذاري يك متغير استفاده كرد. اما A-B از كاراكتر غير مجاز ) (dash تشكيل شده است پس نمي تواند يك متغير باشد. در انتخاب نام متغير سعي كنيد از اسامي تك حرفي استفاده نكنيد زيرا تعداد اين متغيرها به دلي ل محدود بودن تعداد حروف زبان انگليسي محدود مي باشد. به عبارت ديگر در اين صورت تنها مي توانيد متغير هاي a تا z را تعريف كنيد و از آنجا كه فرترن به بزرگي و كوچكي حروف حساس نيست تنها مي توانيد از 26 متغير استفاده كنيد. همچنين سعي كنيد نام متغيرها را متناسب با اطلاعات داخل آن انتخاب كنيد. به عنوان مثال اگر متغيري را براي ذخيره نام دانشجو تعريف مي كنيد بهتر است از متغيرهايي با نام StudentName و Name استفاده كنيد. در تعريف نام متغير حروف كوچك و بزرگ تفاوتي ندارند بنابراين متغيرهاي NAME و name يك ي مي باشند. م ي توان متغير StudentName ويا Student_Name را براي خوانايي بيشتر به صورت StudentName تعريف كرد. 11

12 و 3 ي م ي م ي م ي م ي م پس از انتخاب نام متغير لازم است تعيين كنيم كه چه نوع داده اي بايد در متغير ذخيره شود. تمام انواع داده هايي كه مي توانند در متغيرها ذخيره شوند در زير آمده است :... صحيح Integer مانند اعداد 2 مانند اعداد 2.1 يا 3.0 اعشاري اعداد Real مانند عدد 23) (12 مختلط انواع Complex متن داده Character Logical نوع منطقي با توجه به تقسيم بندي فوق عدد صحيح Integer فاقد هرگونه نشانه اي است و تنها از ارقام 0 تا 9 تشكيل مي شود. حال آنكه عدد حقيقي اعشاري Real داراي مميز ). ( مي باشد اعدادي نظير 0.2 و 2. و.2 باشند. عدد مختلط Complex نيز در داخل پرانتز نگاشته شود كه عدد اول قسمت حقيقي و عدد دوم قسمت موهومي عدد است. اين دو قسمت خود از نوع داده اعشاري مي باشند. براي امتحان اين مطلب برنامه زير را مي نويسيم : در اين برنامه متغير CN از نوع مختلط تعريف شده است و هر دو قسمت حقيق ي صورت صحيح نوشته شده اند اما خروجي عدد Complex CN CN=(1,2) Print *,CN End و موهومي آن به 12 ( , ) دهد بطور پيش فرض قسمتهاي حقيقي و موهومي عدد مختلط Real انواع داده هاي عددي در اين دو قسمت به نوع داده عددي صحيح تبديل مي شوند. باشد كه اين نشان مي باشند به عبارت ديگر تمام نوع داده اي Real قابليت ذخيره تمامي ارقام اعشار را ندارد وبسته به سيستم عامل آنرا تا دقت مشخصي گرد مي كند. براي رفع اين اشكال از نوع متغيري. اين نوع عددي كه نوع خاصي از اعشاري Double Precision استفاده مي كنيم باشد به كاربر اين امكان را مي دهد تا دقت اعداد خود

13 را بالاتر ببرد و تعداد رقم اعشار بيشتري ذخيره گردد. در مثال زير مقداردهي اوليه دو متغير A و B يكسان است اما مقداري كه در آنها ذخيره مي گردد متفاوت است بعد از اجرا كردن برنامه فوق مقدار زير چاپ خواهد شد : REAL A DOUBLE PRECISION B A=4*ATAN(1.) B=4*ATAN(1.) PRINT *,A,B END دقت انواع داده اي رابطه مستقيمي با تعداد بايت هاي اختصاص يافته جهت ذخيره دارد به عبارت ديگر با تغيير تعداد بايت هاي تخصيص يافته مي توان دقت اعداد را تغيير داد.براي اين منظور تعداد بايت ها را با نوشتن نوع داده ضربدر تعداد بايت ها مشخص مي كنيم. در زبان هاي برنامه نويسي BASIC نوع داده اي بايت وجود دارد كه اين نوع داده را مي توان با نوشتن عبارت زير ايجاد كرد : INTEGER*1 A در اين مثال متغير A تنها در يك بايت ذخيره مي گردد و از آنجا كه هر بايت از 8 بيت تشكيل شده است لذا تنها مقادير -128 تا 127 را در خود نگه مي دارد و بقيه اعداد را با بردن به اين محدوده در خود ذخيره مي كتد. داده هاي صحيح مي توانند در 1 يا 2 يا 4 يا 8 بايت ذخيره گردند و داده هاي اعشاري در 4 يا 8 بايت ذخيره مي گردند كه REAL*8 همان نوع داده اي DOUBLE PRESICION است و به طور پيش فرض تعداد بايت هاي نوع داده اي اعشاري و صحيح 4 بايت مي باشد. مي توان تعداد بايت ها را در داخل پرانتز نيز قرار داد به اين ترتيب نوع بايت به اين صورت نوشته مي شود : بر روي اين نوع داده ها Complex) ( Integer, Real, INTEGER(1) A محاسبات رياضي را مي توان انجام داد. در زبان برنامه نويسي فرترن اين امكان فراهم شده است تا بتوان اعداد را در مبناهاي مختلف نوشت. مبناي دو را بوسيله قرار دادن حرف B قبل از عددي كه داخل علامت نقل قول قرار دارد مي توان مشخص كرد. مثال هاي زير اعداد در مبناي 2 را نشان مي دهند اين اعداد به باينري مشهورند. B"1" B B عدد '0112'B بدليل استفاده از رقم 2 عدد باينري نمي باشد. اعداد در مبناي 8 را توسط حرف O و اعداد در مبناي 16 را با حرف Z نمايش مي دهيم. جدول زير مقدار اعداد در مبناهاي مختلف را نمايش مي دهد : 13

14 ي م مبناي 16 يا مبناي 2 مبناي 8 مين A B C D E F نوع رشته اي كه همان متن يا text باشد داراي نشانه هاي يا است. اگر متن حاوي يك ي از علايم گفته شده باشد براي مشخص كردن نوع رشته اي از علامت دوم استفاده مي شود به عنوان مثال چنانچه بخواهيم عبارت : Hello Ali را در يك متغير رشته اي قرار دهيم بايد از علامت استفاده كنيم زيرا علامت در خود متن استفاده شده است. پس نتيجه عمل : Hello Ali خواهد بود. بر روي اين نوع داده كارهايي از قبيل حذف قسمتي از متن برش قسمتي از متن كاراكتريزه كردن و... را مي توان انجام داد. داد. اما اعمال زياضي از قبيل سينوس و كسينوس ضرب و... را نمي توان انجام 14

15 ي م ي م نوع منطقي Logical نتيجه صحيح يا غلط بودن يك سري پردازش را در خود نگه مي دارد كه تنها شامل دو مقدار.True. يا.False. باشد. اين نوع متغير معادل گزاره هاي منطقي رياضي باشد. به عنوان مثال به شخص گفته مي شود كه جزوه فرترن در دست اوست او پس از نگاه كردن به جزوه تشخيص مي دهد كه آيا اين گزاره درست است يا نه و نتيجه اين پردازش ها در قالب يك كلمه بله يا نه نمود پيدا ميكند كه معادل.True. يا.False. در فرترن مي باشد. زبان برنامه نوي سي هم چنين كاري را درقبال عبارت هاي منطقي انجام ميدهد. نوع متغيري Type متشكل از تمام موارد بالاست كه در ادامه مطلب به آن اشاره خواهد شد. فرترن پس از تعيين تمام موارد بالا نوبت به نحوه تعريف متغير ها مي رسد.براي اين منظور از دستور خلاصه شده زير استفاده مي كنيم :... نام متغير 2 نام متغير 1 نوع متغير به عنوان مثال براي معرفي متغيري به نام text1 از نوع رشته اي از دستور زير استفاده مي شود : Character text1 همانطور كه در دستور نوشته شده است مي توان در يك خط تعريف بيش از يك متغير را تعريف نمود. در خط دستور زير سه نوع متغير از نوع صحيح تعريف شده اند : INTEGER A,B,C از آنجا كه فرترن جهت انجام محاسبات رياضي طراحي شده است لذا از انواع داده هاي ياد شده بيشتر از اعداد استفاده مي شود و دربين اعداد از اعداد اعشاري و صحيح بيشتر از اعداد مختلط استفاده مي شود به اين دليل متغيرهايي كه بدون تعريف استفاده شوند در صورتي كه با حروف I تا N شروع شوند بطور پيش فرض بصورت صحيح تعريف مي شوند و چنانچه با غير از اين حروف آغاز شوند بصورت حقيقي تعريف مي شوند.اين پيش فرض ها را مي توان توسط دستور IMPLICIT... NONEكه در اول برنامه نوشته مي شود حذف كرد و حتي مي توان پيش فرض هاي جدي دي توسط دستور IMPLICIT به برنامه افزود. تعريف كلي اين دستور به صورت زير است : و سرنام 2 سرنام 1 نوع متغير Implicit را اين دستور به اين معني است كه متغيرهايي كه با اين حرف شروع مي شوند از نوع نوشته شده اند. بنابراين عبارت زير موجب مي شود كه متغير هايي كه با حروف C و T شروع مي شوند در صورت عدم تعريف از نوع رشته اي در نظر گرفته شوند : IMPLICIT CHARACTER T,C پيش فرض كلي فرترن نيز به اين صورت قابل نوشتن است : 15

16 Implicit integer ( I-N) Implicit Real (A-H), ( O-Z) استفاده از خط فاصله به اين معني است كه حروف I تا N را به متغير هاي صحيح و حروف A تا H و O تا Z را به متغير هاي اعشاري نسبت دهد. در رياضيات عباراتي مانند x n x 1 متغيرx يعي nن 2 x داريم كه براي سهولت كار از انديس استفاده كرديم از آنجا كه فرترن بيشتر جنبه هاي رياضيات را دارد مي توان متغير با انديس تعريف كرد براي تعريف n متغير با انديس از دستور زير استفاده مي كنيم :... (تعداد انديس ( نام متغير 2 ) تعداد انديس ( نام متغير 1 : نوع متغير وجود نام متغير در ابتداي خط موجب مي شود عددي كه در داخل پرانتز نوشته مي شود به عنوان تعداد انديس باشد. در مثال زير 100 متغير انديس دار x كه از نوع صحيح مي باشد تعريف شده است Integer x(100) چنانچه نوع متغير ذكر نشود منظور انديس مشخصي از آن متغير است. به عنوان مثال در نمونه زير در پنجمين x عدد 23 نوشته مي شود : در ماتريس ها و در فيزيك از انديس دو بعدي X(5)=23 بعدي استفاده كرد براي اين منظور از دستور زير استفاده مي كنيم استفاده مي شود. در فرترن نيز مي توان از انديس چند... (..., تعداد بعد, 2 تعداد بعد ( 1 نام متغير نوع متغير دستور زير 100 متغير با انديس دو بعدي را تعريف مي كند ) يك ماتريس 4 25 ( Real A(25,4) در مثال بالا بعد اول داراي 25 انديس و بعد دوم داراي 4 انديس مي باشد چنانچه تعداد انديس ها مشخص نباشد از : استفاده مي كنيم حال دستور بالا را اين چنين تغيير مي دهيم : Real A(:,4) اين بدان معني است كه متغير A داراي دو بعد كه تعداد انديس اول نامشخص و تعداد انديس دوم 4 است كه از شماره 1 شروع و به شماره 4 ختم مي شود. چنانچه بخواهيم كران پايين و بالاي متغيرها را تغيير دهيم از دستور زير استفاده مي كنيم :... )..., كران بالاي بعد : 1 كران پايين بعد 1) نام متغير نوع متغير مثال بالا را دوباره تغيير مي دهيم : Real A(:,-1:2) 16

17 اينك بعد دوم اين دستور داراي 4 انديس است اما شروع انديس ها از عدد 1- است. براي مقدار دهي ابعادي كه تعداد نامشخص دارند (متغيرهايي كه در تعريف آنها از : استفاده شده است ( از تابع Allocate استفاده مي كنيم. در مثال زير ابتدا يك متغير سه بعدي تعريف و سپس تعداد انديس ها را مشخص كرده ايم : Real Allocatable :: A(:,:,3) Allocate (A(11:12,4,3)) در اين مثال بعد از استفاده از دستور Allocate بعد اول داراي 2 انديس با شروع از 11 و بعد دوم داراي 4 انديس با شروع از ) 1 به دليل عدم تعري ف ( تعري ف شده است. استفاده مجدد از دستور ALLOCATE براي يك متغير امكان پذير نيست و برنامه با خطاي در حين اجرا مواجه مي شود. در برنامه زير دوبار از دستور مي دهد : ALLOCATEبراي يك متغير استفاده شده است كه برنامه پيغام خطا INTEGER*4, ALLOCATABLE:: A(:) ALLOCATE(A(1)) ALLOCATE(A(2)) END همچنين استفاده از دستور ALLOCATE براي متغيري كه تمامي ابعاد مشخص مي باشند نيز امكان پذير نمي باشد و برنامه اجرا نخواهد شد. براي تشخيص اينكه آيا متغيري تمامي ابعاد آن مشخص شده است از تابع ALLOCATED استفاده مي كنيم. در صورتي كه متغير از پيش مشخص شده باشد مقدار آن. TRUE. و در غير اينصورت مقدار آن.FALSE. خواهد بود. در برنامه نويسي گاهي اوقات لازم است ويژگي هاي مختلف را به متغيرها نسبت داد بنابراين بايد ابتدا اين ويژگي ها را شناخت و سپس از آنها استفاده كرد. اكنون به بررسي اين ويژگي ها مي پردازيم : Allocatable- اگر در تعريف متغير ها تعداد انديس ها را مشخص نكرديم بايد از ويژگي Allocatable براي امكان استفاده از Allocate استفاده كنيم. به عبارت ديگر در سري Visual Fortran 6.5 و غيره تابع Allocate تنها قادر است به متغيرهايي كه داراي ويزگي Allocate هستند انديس اختصاص دهد. Dimension - 17

18 از اين ويژگي براي دادن بعد به متغيرها استفاده مي شود به عنوان مثال در دستور تعريف متغير زير به ترتيب به سه متغير Aو B و C ابعاد (2,2) داده مي شود. : Real,Dimension (2,2) ::A,B,C اين دستور معادل دستور زير است : Real A(2,2), B(2,2), C(2,2) Parameter - از اين ويژگي براي ثابت نگه داشتن يك مقدار در متغير استفاده مي شود به صورتي كه تا آخر برنامه مقدار آن ثابت خواهد ماند. به عنوان مثال در برنامه زير براي جلوگيري از نوشتن عبارت آن را در متغير p ذخيره و براي ثابت نگه داشتن آن در كل برنامه از اين ويژگي استفاده مي كنيم : كنيم Double Precision, Parameter :: P= Read *,R Print *, Area =, p*r**2 Print *, S =, 2*p*R End حال آنكه با ويژگي ها آشنا شديم مي بايست آنها رادر دستور تعريف متغير بكار بريم. براي تعري ف متغيرها همراه با ويژگي ها از دو نوع entity oriented و attribute oriented استفاده مي در دستور entity oriented داريم :... نام متغير 2 نام متغير :: 1... ويژگي 2 ويژگي 1 نوع متغير Real Allocatable, Dimension (:) :: A,B... نام متغير 2 نام متغير 1 نوع متغير... نام متغير 2 نام متغير 1 ويژگي 1... نام متغير 2 نام متغير 1 ويژگي 2... Real A,B Dimension (:) A,B در دستور attribute oriented داريم : 18

19 ي م ي م ي م Allocatable A,B تنها تفاوت موجود بين هر دو نوع تعريف اين است كه چنانچه بخواهيم تمامي ويژگي ها را به تمامي متغيرها اعمال كنيم از حالت اول و اگر بخواهيم ويژگي هاي متفاوت را به متغيرهاي متفاوت اعمال كنيم از حالت دوم استفاده مي كنيم. علاوه بر ويژگي هاي گفته شده ويژگي هاي ديگري كه با نحوه متفاوتي اعمال مي شوند نيز وجود دارند. يكي از اين ويژگي ها دستورات Kind هستند. در مورد نوع صحيح به عنوان مثال به صورت زير تعريف مي شوند : يع ين Integer (Selected_INT_Kind(3)) A 3 عدد A از نوع صحيح و در بازه 10- تا 10 3 باشد. در مورد عدد اعشاري بايد دو مقدار را وارد كرد كه عدد اول حداقل رقم اعشار و عدد دوم بازه عدد است. به عنوان مثال : عددB يع ين Real (Selected_Real_Kind(3,4))B از نوع صحيح -4 با حداقل 3 رقم اعشار و در بازه 10 تا 10 4 باشد. مي توان براي خلاصه تر شدن Selected_INT_Kind و Selected_Real_Kind را حذف كرد و به صورت زير نوشت : Integer (3) A Real (3,4) B در مورد متغير رشته اي استفاده مي كنيم : توان طول رشته را تعيين كرد براي اين منظور از يك ي از سه دستور زير... نام متغير (Len=n) 1 Character... نام متغير (n) 1 Character... نام متغير Character * n 1 كه n طول رشته است. در صورتي كه از اين تعريف استفاده نشود طول به طور پيش فرض 1 در نظر گرفته مي شود. چنانچه در متغيري با n حرف تعداد m حرف نوشته شود اگر m>n باشد n حرف اول در متغير ذخيره مي شود. و در غير اينصورت قسمت خالي رشته با Space پر مي شود. 19 Character *4 C1

20 C1= Hello در اين مثال چهار حرف اول Hello يع ين Hell ذخيره مي شود. Character *6 C1 C1= Hello ودر اين مثال مقدار Hello در متغير ذخيره مي شود. توجه كنيد كه يك فاصله خالي (Space) بعد از كلمه وجود دارد. 20

21 فصل سوم توابع آماده فرترن

22 در برنامه نويسي براي انجام تعدادي از كارهاي معمول از توابع آماده استفاده مي شود. توابع در حالت كلي از يك نام و يك يا چند آرگومان ) ورودي ( تشكيل مي شوند....) ورودي 2 ورودي (1 نام تابع آنچه كه بايد در مورد توابع بدانيم اين است كه تابع چه كاري را انجام مي دهد و براي انجام اين كار از چه نوع ورودي استفاده مي كند و خروجي تابع چيست. جهت بررسي اين موارد جدول زير طراحي شده است : نام تابع ورودي توضيحات ABS (x) اعشاري Real قدر مطلق CABS (x) مختلط Complex قدر مطلق (x) DABS دقت مضاعف قدر مطلق IABS (x) صحيح Integer قدر مطلق ACOS (x) اعشاري Real آرك كسينوس (x) DACOS دقت مضاعف آرك كسينوس AINT (x) اعشاري Real حذف قسمت اعشاري (x) DINT دقت مضاعف حذف قسمت اعشاري ASIN (x) اعشاري Real آرك سينوس (x) DSIN دقت مضاعف آرك سينوس ATAN (x) اعشاري Real آرك تانژانت (x) DTAN دقت مضاعف آرك تانژانت ATAN2 (x) اعشاري Real آرك تانژانت (x) DTAN2 دقت مضاعف آرك تانژانت CHAR (x) صحيح Integer حرف مطابق با جدول Ascii COS (x) اعشاري Real كسينوس CCOS (x) مختلط Complex كسينوس (x) DCOS دقت مضاعف كسينوس CONJ (x) مختلط Complex مزدوج عدد مختلط COSH (x) اعشاري Real كسينوس هيپربوليك (x) DCOSH دقت مضاعف كسينوس هيپربوليك 22

23 DIM (x,y) IDIM (x,y) DPROD (x,y) EXP (x) CEXP (x) DEXP (x) ICHAR (x) INDEX (String,Substring) INT (x) IFIX (x) IDINT (x) LEN( String ) LOG (x) ALOG (x) CLOG (x) DLOG (x) LOG10 (x) ALOG10 (x) DLOG10 (x) MAX (x,y, ) MAX0 (x,y, ) AMAX1 (x,y, ) DMAX1 (x,y, ) MAX1 (x,y, ) AMAX0 (x,y, ) MIN (x,y, ) MIN0 (x,y, ) AMIN1 (x,y, ) DMIN1 (x,y, ) 23 تفاضل در صورت مثبت بودن تفاضل در صورت مثبت بودن توليد عدد با دقت بيشتر e بتوان عدد e بتوان عدد e بتوان عدد كد اسكي مربوط به رشته جستجو در ميان رشته تبديل عدد به صحيح تبديل عدد به صحيح تبديل عدد به صحيح طول رشته لگاريتم در پايه طبيعي لگاريتم در پايه طبيعي لگاريتم در پايه طبيعي لگاريتم در پايه طبيعي لگاريتم در پايه ده لگاريتم در پايه ده لگاريتم در پايه ده ماكزيمم اعداد ماكزيمم اعداد ماكزيمم اعداد ماكزيمم اعداد ماكزيمم اعداد ماكزيمم اعداد مينيموم اعداد مينيموم اعداد مينيموم اعداد مينيموم اعداد اعشاري Real صحيح Integer اعشاري Real اعشاري Real مختلط Complex دقت مضاعف رشته اي رشته اي اعشاري Real اعشاري Real دقت مضاعف رشته اي اعشاري Real اعشاري Real مختلط Complex دقت مضاعف اعشاري Real اعشاري Real دقت مضاعف اعشاري Real صحيح Integer اعشاري Real دقت مضاعف اعشاري Real صحيح Integer اعشاري Real صحيح Integer اعشاري Real دقت مضاعف

24 MIN1 (x,y, ) AMIN0 (x,y, ) MOD (x,y) AMOD (x,y) DMOD (x,y) REAL (x) FLOAT (x) SNGL (x) SIGN (x,y) DSIGN (x,y) ISIGN (x,y) SIN (x) CSIN (x) DSIN (x) SINH (x) DSINH (x) SQRT (x) CSQRT (x) DSQRT (x) TAN (x) DTAN (x) TANH (x) DTANH (x) ADJUSTL ( String ) ADJUSTR (String ) TRIM ( String ) LEN_TRIM ( String ) مينيموم اعداد مينيموم اعداد باقيمانده باقيمانده باقيمانده تبديل عدد به اعشاري تبديل عدد به اعشاري تبديل عدد به اعشاري مفدار x به همراه علامت y مفدار x به همراه علامت y مفدار x به همراه علامت y سينوس سينوس سينوس سينوس هيپربوليك سينوس هيپربوليك جذر جذر جذر تانژانت تانژانت تانژانت هيپربوليك تانژانت هيپربوليك قرار دادن فاصله هاي اول در آخر رشته قرار دادن فاصله هاي آخر در اول رشته حذف فواصل خالي آخر رشته طول متن بدون فاصله خالي در آخر اعشاري Real صحيح Integer صحيح Integer اعشاري Real دقت مضاعف صحيح Integer صحيح Integer دقت مضاعف اعشاري Real دقت مضاعف صحيح Integer اعشاري Real مختلط Complex دقت مضاعف اعشاري Real دقت مضاعف اعشاري Real مختلط Complex دقت مضاعف اعشاري Real دقت مضاعف اعشاري Real دقت مضاعف رشته اي رشته اي رشته اي رشته اي 24

25 فصل چهارم كنترل اجراي برنامه

26 ي م براي نوشتن برنامه هاي كاربردي علاوه بر استفاده از متغيرها و توابع مي بايست از دستورات متفاوتي كه در اين بخش توضيح داده مي شود استفاده كنيم. - دستور و ساختار شرط چنانچه در برنامه نويسي بخواهيم در صورت برقراري شرطي اتفاقي بيفتد ) نيفتد ( از ساختار يا دستور شرط استفاده مي كنيم. دستور شرط به صورت زير تعريف مي شود : يك دستور ) عبارت شرطي ( IF فرترن ابتدا عبارت شرطي را محاسبه و به يكي از دو حالت صحيح يا غلط مي رسد چنانچه عبارت شرطي درست باشد دستور داده شده اجرا مي شود. بايد توجه داشت كه تنها يك دستور مي توان نوشت. چنانچه بخواهيم بيش از يك دستور را در يك شرط اعمال كنيم و يا اينكه شروط مختلفي را با دستورات مختلف اعمال كنيم مي توانيم به شكل زير از ساختار شرط استفاده كنيم : در ساختار شرط قسمتهاي Else IF و Else كاملا اختياري شود مي بايست از كلمه IF عبارت شرطي ( 1 ) Then بلوك دستورات Else IF شرطي ( 2 Then (عبارت بلوك دستورات... Else بلوك دستورات End IF باشند اما چنانچه ELSE IF نوشته Then استفاده شود. استفاده از End IF براي پايان ساختار الزامي است. در توضيح ساختار شرط مي توان گفت كه پس از بررسي شرط اول چنانچه درست باشد بلوك دستورات مربوط به آن را اجرا مي كند و در غير اينصورت شرط بعدي را چك ميكند. چنانچه هيچ يك از دستورات بالا اجرا نشود و قسمت Else در ساختار شرط آمده باشد بلوك دستوري مربوط به Else اجرا خواهد شد در واقع Else داراي عبارت شرطي معادل با تركيب نقيض شروط بالاست.نماگرد دستور شرط در تصاوير زير آمده است. 26

27 در برنامه زير چنانچه عدد وارد شده يك يا دو رقمي باشد عبارت مناسب چاپ مي شود : Read *,I If ( I>=0.AND. I<10 ) Then Print *,"Your Number has one digit" Else If ( I<100.AND. I>9 ) Then Print *,"Your Number has two digits" Else Print *,"Your Number has more than two digits" End If PAUSE End 27

28 برنامه زير سينوس يك زاويه كه بر حسب راديان است را خوانده و تانژانت آنرا نمايش مي دهد. Read *,A If ( A<=1.And. A>=-1) Then Ang=Asin(A) Print *,Ang*180/ ,Tan(Ang) End If End - ساختار انتخاب اين ساختار حالت خاصي از ساختار شرط است. حالت كلي اين ساختار به شرح زير است اين ساختار معادل دستورات شرط زير است : ) عبارت مورد نظر ( Case Select ) حالت اول عبارت ( Case بلوك دستورات ) حالت دوم عبارت ( Case بلوك دستورات... Case Default بلوك دستورات End Select If ( حالت اول == عبارت شرطي ) Then بلوك دستورات Else If ( حالت دوم == عبارت شرطي ) Then بلوك دستورات... Else بلوك دستورات End IF 28

29 همانگونه كه از مقايسه دو ساختار بالا بدست مي آيد بلوك دستورات زماني اجرا مي شود كه عبارت مورد نظر يكي از حالات ذكر شده باشد و Case default معادل Else در ساختار شرط است يعني اگر هيچ كدام از بلوك هاي دستور اجرا نشوند بلوك دستوري اين قسمت اجرا خواهد شد. در تصاوير زير نماگرد دستور ترسيم شده است. 29

30 بايد توجه داشته باشيد كه حالات ذكر شده بايد از نوع عبارت مورد نظر باشند و نبايد اشتراك داشته باشند. عبارت مورد نظر ساختار انتخاب تنها يكي از سه حالت Logical Character Integer مي باشد. در دو برنامه زير چنانچه عدد يك وارد شود برنامه عدد 100 و در غير اينصورت عدد 0 را چاپ خواهد كرد برنامه اول : استفاده از نوع صحيح برنامه دوم : استفاده از نوع منطقي براي ايجاد گستره انتخاب از : استفاده مي شود به اين صورت كه n:m يع ين Integer A Read *,A Select Case (A) Case (1) Print *, 100 Case default Print *, 0 End select End Logical L1 Integer A Read *,A L1=(A==1) Select Case (L1) Case (.True.) Print *, 100 Case (.False.) Print *, 0 End select End كليه اعداد صحيح از عدد 30 n تا عدد ) m با احتساب n وm ( و :n يع ين تمامي اعداد كوچكتر يا مساوي عدد m تمامي اعداد صحيح بزرگتر مساوي عدد n و m: يعني از : مي توان براي كاراكترها نيز استفاده كرد. در برنامه زير يك حرف از كاربر گرفته مي شود و نوع آن مشخص مي شود. Character *1 C1 Read *,C1 Select Case (C1) Case ( a : z, A : Z ) Print *, Alphabetic

31 ز ا ي م Case ( 0 : 9 ) Print *, Number Case Default Print *, Other End Select End از برنامه بالا مي توان فهميد كه در مقابل Case مي توان بيش از يك حالت را قرار داد. همچنين حالت عددي نوع كاراكتر مي باشد و هيچ اشتراكي بين حالات نيست. - دستور پرش ساده اگر بخواهيم ادامه اجراي برنامه را از سطر خاصي شروع كنيم مي توانيم از دستور پرش استفاده كنيم : Goto Label كه Label يك عدد مي باشد كه در ابتداي خط مقصد نوشته مي شود. استفاده از دستور پرش بدون اختصاص Label موجب نمايش پيغام خطا خواهد شد. در ادامه مثالي از اين مطلب آورده خواهد شد - دستور پرش محاسباتي عدد ), Label2 Goto ( Label1, اين دستور ابتدا عدد مورد نظررا محاسبه كرده و چنانچه مقدار آن يك باشد به عددي كه به عنوان label 1 نوشته شده است پرش مي كند و... اگر عدد مورد نظر منفي و يا داراي اعشار باشد و يا هيچ Label به آن اختصاص داده نشده باشد دستور كار خاصي انجام نمي دهد. برنامه زير ريشه هاي معادله درجه دو را تنها با استفاده از دستور پرش و دستور پرش محاسباتي محاسبه مي كند : - دستور ادامه Read *,A,B,C Delta=b**2-4*A*C Goto ( 10, 20 ) Floor(Delta/(ABS(Delta)+1))+2 10 Print *, there is no root Goto Print *, x1=,(-b+sqrt(delta))/2/a Print *, x2=,(-b-sqrt(delta))/2/a 30 End اين دستور به صورت Continue نوشته مي شود و گاهي اوقات به همراه يك Label در ابتداي خط مي آيد. اجراي اين دستور باعث ادامه پردازش به خط بعدي ندارد. از اين دستور مي توان براي خاتمه حلقه نيز استفاده كرد. شود و كاربرد خاصي در اين زمينه 31

32 - دستور توقف از اين دستور براي توقف عمليات اجراي برنامه و خاتمه برنامه استفاده مي شود. اين دستور به صورت زير تعريف مي شود : Stop [Stop-expresion] مي توانيم دستور Stop را تنها به كار برد و در صورتي كه بخواهيم عبارتي را براي بستن برنامه تحت عنوان handle اختصاص دهيم مي توانيم يك رشته و يا يك عدد را قرار دهيم. در صورت به كار بردن رشته عدد صفر منظور مي شود. - ساختار گردشي - حلقه چنانچه بخواهيم يك عمل را N بار انجام دهيم يا N متغير كه با هم تصاعد عددي دارند داشته باشيم از ساختار حلقه استفاده مي كنيم.حلقه ها بر اساس N به سه دسته تقسيم مي شوند [: Do نام حلقه] [بلوك دستورات] ] نام حلقه [ Do End - حلقه نا محدود - حلقه محدود شرطي :] Do label نام حلقه] [بلوك دستورات] Label Continue (عبارت شرطي ( While :] Do [Label] [,] نام حلقه] [بلوك دستورات [ [نام حلقه [ Do End (عبارت شرطي ( While :] Do Label [,] نام حلقه] [بلوك دستورات] Label Continue 32

33 - حلقه شمارشي [گام ] كران پايين كران بالا = نام متغير [Label] [: Do نام حلقه] [بلوك دستورات] [نام حلقه [ Do End [گام ] كران پايين كران بالا = نام متغيرLabel [: Do نام حلقه] [بلوك دستورات] Label Continue در برنامه زير با استفاده از حلقه شمارشي N محاسبه مي شود : Read *,N Factoriel=1 Do i=1,n Factoriel=Factoriel*I End Do Print *,N, =,Factoriel End n n= 0 n در برنامه زير مقدار محاسبه و چاپ مي شود : F=1 ; Sum=1 Do i= 1,100 F=F*I Sum=Sum+(2**i)/F End Do Print *,Sum End - دستور خروج از حلقه دستور Exit براي خروج از حلقه اي است كه خود دستور در آن قرار دارد. چنانچه در مقابل اي ن دستور نام حلقه اي ذكر شود دستور خروج براي آن حلقه اجرا خواهد شد. - دستور گردش حلقه چنانچه فرترن در اجراي برنامه به دستور Cycle برسد دستورات بين Cycle و اولين End Do انجام نخواهد شد. 33

34 ي م در برنامه زير عدد 1 را بر اعداد 100- تا 100 تقسيم كرده ايم و خروجي آن مقدار اين عبارت است. همانطور كه استفاده كرده ايم : دانيد تقسيم بر صفر معني ندارد و براي انجام ندادن تقسيم بر صفر از دستور Cycle Do i=-100, 100 IF ( i==0) Cycle Print *,1./i. End Do End در شكل زير نحوه استفاده از ساختارهاي گردش مركب ) وت در تو) نشان داده شده است. ستون سمت راست استفاده نادرست و ستون سمت چپ استفاده درست را نمايش مي دهد. 34

35 35

36 36

37 فصل پنجم خواندن و نوشتن

38 (بهتر است مطالب اين بخش را همزمان با مطالب بخش دسترسي به فايل بخوانيد.) براي خواندن اطلاعات از يكي از سه دستور زير استفاده مي شود :... نام متغير 1 (ويژگي هاي كنترلي خواندن ( Read... نام متغير 1 قالب Read... نام متغير 1 (ويژگي هاي كنترلي خواندن ( Write منظور از ويژگي هاي كنترلي افزودن مشخصات و خصوصيات جديد به عمل خواندن است. در جدول زير اين ويژگي ها آورده شده اند : كليد واژه [unit=] [FMT=] Advance END EOR ERR مقدار ويژگي عدد قالب yes يا no Label Label Label توضيحات عددي كه مشخص كننده واحد ورود اطلاعات است. به عبارت ديگر يك اشاره گر از محل ورود اطلاعات مي باشد. * نماد ورودي استاندارد است. چنانچه در جايگاه اول داخل پرانتز قرار گيرد نوشتن كليدواژه لازم نيست. مشخص كننده نحوه خواندن و قرار دادن ورودي در متغيرهاست. * نماد فرمت آزاد يا بدون قالب است. چنانچه در جايگاه دوم داخل پرانتز قرار گيرد نوشتن كليد واژه لازم نيست چنانچه yes باشد در خواندن اطلاعات با توجه به قالب در طول داده به جلو حركت مي كند. در غير اينصورت پس از خواندن اولين متغير از بين داده ها براي خواندن اطلاعات بعدي از اول داده شروع مي كند چنانچه در خواندن از فايل به آخر آن برسد به Label گفته شده پرش مي كند چنانچه در خواندن از فايل به آخر ركورد برسد به Label گفته شده پرش مي كند. چنانچه در حين عمليات خواندن يا نوشتن به خطايي برخورد كند به Label گفته شده پرش مي كند. منظور از ركورد در مطالب بالا يك خط از فايل مي باشد. 38

39 وي( مي توان يك حلقه را نيز در ساختارهاي بالا اعمال كرد : (...( ژگي هاي كنترلي خواندن ( Read... )... ) گام كران بالا كران پايين = شمارنده 2 (گام كران بالا كران پايين =شمارنده 1 نام به مثال زير توجه كنيد : متغير Read (*,*)((A(i,j),i=1,10),j=1,5)) اين دستور معادل دستور زير است : Do 1 i=1,10 Do 1 j=1,5 Read (*,*) A(i,j) 1 Continue 39

40 فصل ششم ( قالب بندي ) فرمت

41 ي م بخش عظيمي از برنامه نويسي به خواندن و چاپ اطلاعات اختصاص دارد. بنابراين اين مهم ايجاب مي كند تا بتوان خواندن و نوشتن را سفارشي كرد به عبارت ساده تر بتوان حالات خاصي را به اين دو دستور داد از جمله اين حالات مي توان به اختصاص ميدانها و قالب بندي صفحه اشاره كرد. به عنوان مثال مي توان به گونه اي برنامه نوشت كه عمل چاپ اطلاعات از سطر چهام شروع شود و يا در خواندن اطلاعات 5 حرف اول ناديده فرض شود. قبل از توضيح ميدانها بياييم ميدان را تعريف كنيم. برنامه هاي فرترن در كنسول غير گرافيك ي ميشود يا به عبارت ديگر در محيط DOS ابتدا صفحه داس را تقسيم بندي اجرا كنيم. مي دانيم صفحه مشكي رنگي كه در زمان اجراي برنامه ظاهر مي شود ) صفحه ( DOS از نقاط نوراني به نام pixel تشكيل شده است. مجموع تعدادي از اين پيكسل ها براي نمايش يك كاراكتر استفاده مي شود در هر يك از اين مجموعه ها تنها يك حرف نمايش داده مي شود. حال اگر تعدادي از اين مجموعه ي پيكسل ها كنار يكديگر قرار گيرند تا بتوان تعداد زيادي حرف را نمايش داد يك ميدان را تشكيل مي دهند البته اين جايگاه ها همگي داراي خصوصيت مشترك هستند مثلا همگي از نوع صحيح و يا همگي از نوع رشته اي هستند. اكنون كه با ميدان ها آشنا شديم ببينيم چگونه مي توان اين ميدانها را اعمال كرد. اگر به خاطر داشته باشيد در مبحث خواندن و نوشتن ويژگي با نام قالب به طور مختصر توضيح داده شد. دستور زير را در نظر بگيريد : يا Read (*,*) A اين دستور متغير A را از صفحه كليد با قالب آزاد ) بدون محدوديت ( مي خواند. حال اگر بخواهيم يك قالب را بر اين متغير اعمال كنيم به يكي از دو روش زير عمل مي كنيم : 41 Read ( *,1) A 1 Format ( F6.2) Read (*, (F6.2) )A چنانچه مي بينيد در قسمت FMT بايد يك شماره label اختصاص داد كه در خطي كه حاوي اي ن شماره است بلافاصله دستور پرانتز و گيومه قرار داد. دستور Format دستور اجرايي نيست يع ين Format قرار دارد و يا مي توان به طور مستقيم ميدان را در داخل ي ك تا زماني كه به اين دستور پرش داده نشود اجرا نخواهد شد پس لزومي ندارد كه دستور فرمت در خط بعد از خواندن و يا نوشتن بيايد مي توان آن را در هر قسمت از بدنه اصلي برنامه قرار داد. اكنون بايد تمامي ميدان ها را شناخت ) در مثال هاي ذكر شده در پايين منظور از همان Space است كه در حين اجراي برنامه نمايش داده نمي شود (

42 ي م - ميدان I اين ميدان به صورت زير تعريف مي شود : ] حداقل طول ميدان. [ طول ميدان I طول ميدان تعداد جايگاه هاي ذكر شده در بالاست و حداقل طول ميدان حداقل تعداد ارقام نمايش داده شده در ميدان است. چنانچه طول عدد از طول ميدان بيشتر باشد به اندازه طول ميدان ستاره چاپ خواهد شد و اگر طول عدد از طول ميدان كمتر باشد ميدان از سمت راست پر مي شود. فرمت عدد خروجي توضيحات I حداقل طول ميدان 3 است I I *** طول ميدان كم است I2.0 0 جز استثناهاست I I *** در اين ميدان تنها اعداد صحيح و عبارت منطقي قرار مي گيرند I عمل كنيد. ميدان B عدد - ميدان مبنا ها B, O, Z در اين ميدان ها ابتدا عدد را به مبناي مورد نظر برده و سپس مانند ميدان را به مبناي دو و O عدد را به مبناي 8 و Z عدد را به 16 برد. خروجي عدد در مبناي مورد عدد در مبناي 10 فرمت نظر B4 B3 B5.5 O4.3 Z FFF 1001 *** FFF اكنون برنامه اي بنويسيد كه دو عدد را گرفته و عدد اول را در مبناي عدد دوم كه يكي از سه عدد 2 يا 8 يا 16 است نمايش دهد : Read *,N,IBase 42

43 Select case (IBase) Case (2) Print (B0),N Case (8) Print (O0),N Case (16) Print (Z0),N End select End همانگونه كه مي بينيد طول ميدان صفر در نظر گرفته شده است و موجب مي شود كه طول ميدان به اندازه خود خروجي باشد. - ميدان F اين ميدان در حالت كلي به صورت زير است: تعداد رقم اعشار. طول كلي ميدان F براي محاسبه خروجي اين ميدان كافيست كه ابتدا به اندازه طول كلي ميدان جايگاه در نظر گرفته شود سپس از سمت راست به اندازه تعداد رقم اعشار جايگاه خالي گذاشته شود در جايگاه بعد مميز قرار داده مي شود و بقيه جايگاه ها در سمت چپ ميدان به قسمت صحيح اختصاص داده مي شود. حال چنانچه نتوانيد ميدان را بسازيد در لحظه اجرا با پيغام خطا مواجه خواهيد شد. آنچه در مورد اين ميدان مهم است آنكه طول قسمت صحيح عدد بايد بتواند به طور كامل در قسمت صحيح ميدان قرار گيرد در غير اينصورت به تعداد طول كلي ميدان ستاره چاپ خواهد شد و اگر طول قسمت اعشاري ميدان كمتر از طول قسمت اعشاري عدد باشد تعدادي از رقمهاي اعشار كه در آن قسمت مي توانند قرار گيرند با گرد كردن چاپ مي شوند. براي فهم بهتر مطلب به مثالهاي زير توجه كنيد : توضيحات خروجي عدد ميدان F F عدد گرد شده است F در ميدان قرار نمي گيرد ****** F F E2 *** ابتدا عدد محاسبه شود F تعداد ارقام اعشار بايد حتما رعايت شود

44 ي م - ميدان نماد علمي اين ميدان به وسيله سه مشخصه ES EN E تعيين مي شود. حالت كلي E به صورت زير است. دو ميدان بعد نيز به همين صورت تعيين مي شوند. ] طول توان [ E طول قسمت اعشاري. طول كلي ميدان E در هر سه اين ميدانها ابتدا به اندازه طول كلي ميدان جايگاه قرار دهيد سپس از سمت راست شروع كرده و به اندازه طول توان جايگاه براي توان جدا كنيد ) چنانچه طول توان نوشته نشده باشد آنرا 2 در نظر بگيريد ( سپس يك جايگاه را به علامت مثبت يا منفي اختصاص دهيد جايگاه بعدي را براي حرف E در نظر بگيريد توجه كنيد كه اگر در فرمت e نوشته شده باشد شما نيز بايد از حرف كوچك آن استفاده كنيد و اگر نوشته نشده باشد منظور همان E است. بعد از اين مرحله به اندازه طول قسمت اعشار جدا كرده و جايگاه بعدي را به مميز اختصاص دهي د. بقيه جايگاه ها در سمت راست براي قسمت صحيح باقي ماند. چنانچه نتوانيد اين ميدان را توليد كنيد در حين اجرا با پيغام خطاي مبني بر اشتباه بودن ميدان مواجه خواهيد شد. حال بايد عدد را در ميدان قرار دهيم از سمت چپ عدد شروع كرده و تمامي صفرهاي موجود در سمت چپ را ناديده مي گيريم سپس در مورد ميدان E عدد بدست آمده را بعد مميز مي نوي سي م و در صورتي كه كل عدد در قسمت اعشاري جا نشود آنرا گرد مي كنيم. در مورد ميدان EN سه رقم عدد بدست آمده را سمت چپ مميز و بقيه را در سمت راست مميز قرار مي دهيم. در مورد ميدان ES يك رقم را در سمت چپ و بقيه را در سمت راست مي نويسيم. بايد توجه كرد كه در صورت جا نشدن عدد بايد آنرا گرد كرد. حال نوبت به محاسبه قسمت توان مي رسد. با محاسبه ميزان كوچك شدن عدد توان مناسبي را اختيار مي كنيم. ممكن است عدد در اين ميدان كاملا تغيير كند.اگر عدد مورد نظر منفي بود يك جايگاه در سمت چپ به منفي تعلق مي گيرد. چنانچه يك ي از قسمتهاي بالا قابل اجرا نباشد به اندازه طول كلي ميدان ستاره چاپ خواهد شد. اكنون به مثالهاي زير توجه كنيد : فرمت E10.3 E10.3 ES11.3 EN11.3 EN11.2 ورودي خروجي 0.121E E E E E+03 44

45 ي م - ميدان L اين ميدان به صورت زير تعريف مي شود : طول كلي ميدان L اين ميدان بسيار ساده بوده و با ايجاد جايگاه ها در آخرين جايگاه يكي از دو كلمه F يا T را قرار مي دهد به عنوان نمونه در ميدان L3 مقدار.True. به صورت T چاپ مي شود. - ميدان رشته اي A اين ميدان براي قرار دادن متن استفاده مي شود : طول كلي ميدان A چنانچه ميدان براي متن مورد نظر بزرگ باشد از سمت راست ميدان پر مي شود و در سمت چپ جاهاي خالي باقي گذارد و در غير اينصورت از سمت راست متن به اندازه طول ميدان چاپ خواهد شد. اگر طول ميدان نوشته نشود طول آن به اندازه طول متن خواهد بود. ميدان ورودي خروجي A4 Ali Ali A3 Ali Reza Ali A Ali Reza Ali Reza اكنون كه اين ميدان ها را شناختيم مي توانيم صفحه DOS را به ميدانهاي مختلف براي كنترل بيشتر تقسيم كنيم اما براي جابجايي و تنظيم ميدان ها تعدادي دستور تحت عنوان كنترل قالب وجود دارد كه در زير به آنها اشاره مي كنيم. فرمان كنترل T n TL n TR n n X [r] / : S مثال T 10 TL 5 TR 4 5 X /// يا/ 3 توضيحات ايجاد ميدان بعدي از ستون 10 خواهد بود از موقعيت فعلي به اندازه 5 جايگاه به سمت چپ مي رود از موقعيت فعلي به اندازه 4 جايگاه به سمت راست مي رود 5 فاصله خالي را قرار مي دهد سه سطر خالي چاپ مي كند ادامه ايجاد ميدانها را در صورت نبود متغير متوقف مي كند قرار دادن علامت + اعداد به سيستم عامل بستگي پيدا ميكند 45

46 SP SS k P BN BZ 2 P علامت + اعداد قرار داده مي شود علامت + اعداد قرار داده نمي شود عدد را در 10 بتوان k ضرب مي كند فاصله خالي بين ارقام يك عدد را حذف مي كند فاصله خالي بين ارقام يك عدد را به صفر تبديل مي كند براي آگاهي كامل از نحوه اعمال اين فرمت ها به ضميمه مراجعه كنيد. 46

47 فصل هفتم دسترسي به فايل

48 ي م ي م ابتدا بايد نكاتي در مورد نام فايل ها در سيستم عامل هاي مختلف گفته شود. همانطور كه مي دانيد نام فايل متشكل از دو قسمت نام و پسوند است كه توسط نقطه از هم جدا مي شوند. وجود نام ضروري و وجود پسوند اختياري است. بايد توجه داشت كه در نام فايلها بايد قوانين مربوط به سيستم عامل موجود بر روي سيستم را رعايت كرد. به عنوان مثال در DOS 4.5 و قبل از آن نام فايل تنها 8 حرف مي تواند باشد. در ويندوزها نام فايل مي تواند تا 256 كاراكتر را به خود اختصاص دهد. نبايد از حروف غير مجاز در نام فايل ها استفاده كرد. اكنون كه با نام فايل آشنا شديم مي خواهيم دستورات باز كردن فايل ها را بيان كنيم : (مشخصات باز كردن فايل ( OPEN (مشخصات بستن فايل ( CLOSE منظور از مشخصات يك سري از كليد واژه ها هستند كه به دستور OPEN جهت باز كردن فاي ل كمك مي كنند. اكنون به بررسي تك تك آنها مي پردازيم. ACCESS - فرض كنيد ليس يت از اسامي دانشجويان را در اختيار داريد. به دانشجويان گفته مي شود كه به ترتي ب ليست و به طور پشت سرهم بر روي صندلي ها بنشينند. اينك شما براي پيدا كردن نفر بيستم مي تواني د مستقيما به صندلي شماره 20 برويد زيرا ترتيبي بين ليست و نحوه نشستن دانشجويان وجود دارد. اما اگر به آنها اين اجازه داده شود كه هر شخص بتواند با هر فاصله دلخواهي از نفر قبل بر روي ي ك صندلي بنشيند آنگاه براي پيدا كردن نفر بيستم بايد به ترتيب از نفر اول شروع كرده و تا پيدا كردن نفر بيستم به جستجوي خود ادامه دهيم. اين مثال عينا در مورد فايل ها نيز صادق است. اگر طول هر ركورد كاملا مشخص باشد براي دسترسي به ركورد n ام مي توانيد با پشت سر گذاشتن طول ركورد *(1-n) حرف به اول ركورد مورد نظر برسيد اما اگر طول هر ركورد با ركورد هاي ديگر متفاوت باشد مي بايست تك تك ركوردها را تا رسيدن به ركورد مورد نظر بخوانيم. اگر شيوه اول را دسترسي مستقيم بناميم و دومي را ترتيبي توان با نوشتن يكي از دو عبارت Direct براي مستقيم و يا Sequential براي ترتيب ي در مقابل Access= نحوه دسترسي به فايل را مشخص كرد.چنانچه هيچ عبارتي نوشته نشود دسترسي پيش فرض ترتيبي خواهد بود. Action- يكي ديگر از اختياراتي كه وجود دارد اين است كه ما مي توانيم فايل را صرفا جهت انجام عمل خواندن و يا فقط نوشتن باز كنيم. كليدواژه Action داراي سه حالت Read Write ReadWrite باشد. كه حالت اول براي حالت فقط خواندن و حالت دوم براي حالت فقط نوشتن و حالت سوم براي انجام هر دو عمل است. پيش فرض اين دستور حالت سوم در نظر گرفته مي شود. 48

49 كه يكي از سه حالت ASIS Append Rewind ي م باشد و محل اشاره گر هارد ERR - چنانچه در حين باز كردن فايل با پيغام خطا مواجه شويم در صورت وجود كليدواژه ERR ادامه برنامه به شماره Label نوشته شده در جلوي آن پرش مي كند. File- در مقابل اين كلمه بايد يك متن كه مسير دقيق فايل را بيان مي كند قرار داد. چنانچه بخواهيم ي ك فايل موجود را باز كنيم بايد حتما پسوند آنرا در صورت وجود بنويسيم. اگر تنها نام فايل ذكر شود مسير پيش فرض مسير قرار گيري برنامه خواهد بود. Position- براي باز كردن و جستو را به ترتيب موقعيت فعلي از اول و از آخر را تعيين مي كند.حالت اول پيش فرض در نظر گرفته مي شود Status- اگر مقدار آن Old باشد فايل تنها زماني باز خواهد شد كه وجود داشته باشد. اگر فايل مورد نظر وجود نداشته باشد خطا رخ خواهد داد. اگر مقدار آن New باشد فايل ايجاد خواهد شد و در صورتي كه از پيش وجود داشته باشد پيغام خطا ظاهر خواهد شد. اگر مقدار آن Unknown باشد در صورت وجود آنرا باز مي كند و در صورت عدم وجود آنرا ساخته و بعد باز مي كند. اين حالت پيش فرض در نظر گرفته مي شود. مقدار بعدي Replace است كه فايل را ساخته و باز ميكند اگر فايل از پيش بر روي هارد موجود باشد آنرا پاك كرده و مجددا مي سازد. مقدار Scratch يك فايل موقت در مسير temp مي سازد زماني مورد استفاده قرار مي گيرد كه بايد فايل ساخته شده با بسته شدن برنامه بسته شود است. Unit - حال زماني كه تمام مشخصات بالا نوشته شد باي د يك عدد به عنوان unit به فايل ساخته شده اختصاص داد تا در هنگام خواندن و نوشتن با اين عدد كار كرد. به عبارت ديگر براي جلوگيري از نوشتن مجدد همه موارد بالا از يك عدد استفاده مي شود. UNIT جهت معرفي فايل به برنامه استفاده مي شود و در تمامي دستوراتي كه بايد با فايل باز شده ارتباط داشته باشند مورد استفاده قرار مي گيرد. به مثال زير توجه كنيد. 10 خط اطلاعات فايل اول دو بار در فايل دوم نوشته مي شوند : Character *(*) A Open(Unit=2,File= C:\data.dat,ERR=23,Action= Read,Status= Old ) 49

50 Open(Unit=3,File= C:\data.out,ERR=24,Action= Write,Status= New ) Do i= 1, 10 Read (2,*)A Write(3,*) (A,j=1,2) End do Close(2) Close(3) GOTO PRINT *, ERROR OPENING INPUT FILE 24 PRINT *, ERROR OPENING OUTPUT FILE 25 End ) خط اول اين برنامه در COMPAQ FORTRAN خطا محسوب مي شود و بايد يك طول استايك براي متغير رشته اي A تعريف كرد ( همانطور كه مي بينيدپس از پايان كار فايل هاي باز شده را بستيم. چنانچه اين كار را انجام ندهي د برنامه خود به خود فايل ها را مي بندد. 50

51 فصل هشتم ساختار كلي برنامه

52 ي م تا به اينجا تمام كارها در بدنه اصلي برنامه نوشته مي شد. م ي دانيم كه تعريف متغير ها در بالا و دستورات ديگر در پايين نوشته مي شد و برنامه به كلمه End ختم مي شد. حال مي توانيم قسمت هاي ديگري را تحت عنوان زير برنامه به برنامه خود اضافه كنيم كه بعد از كلمه End توانند قرار گيرند Function- در برنامه نويسي تمام توابع مورد نياز ما نوشته نشده اند و گاهي خود ما نياز به تعريف توابع جدي دي داريم براي اين منظور از ساختار زير استفاده مي كنيم : ) ليست آرگومان ها ورودي) نام تابع Function بلوك دستوري... = نام تابع End Function همانطور كه در بحث توابع آماده ديديد توابع با گرفتن يك يا چند آرگومان محاسبات خاصي را انجام داده و نتيجه محاسبات را در نام متغير ذخيره مي كنند بنابراين تنها يك خروجي دارند و حداقل يكبار مي بايست در متن زير برنامه عددي به آن اختصاص داده شود. به عنوان مثال در زير برنامه زير تابع Sin2 براي محاسبه سينوس يك زاويه از طريق بسط تيلور نوشته شده است و در بدنه اصلي اختلاف دو تابع Sin وSin2 نوشته مي شود. Read *,A Print *,Sin(A)-Sin2(A) End Function Sin2(x) Sin2=x ; F=1 ; S=-1 Do i=3,20,2 F=F*(i-1)*i Sin2=Sin2+S*x**i/F S=S*-1 End do End Function همانطور كه مي بينيد فراخواني توابع جديد مانند توابع آماده است. نكته اي كه بايد رعايت شود اي ن است كه ورودي تابع Sin2 از نوع اعشاري تعريف شد پس بايد در بدنه اصلي برنامه عدد اعشاري به عنوان آرگومان قرار داده شود. 52

53 ي م Subroutine- اگر بخواهيم بيش از يك خروجي داشته باشيم از subroutine استفاده مي كنيم به اينصورت كه ابتدا ورودي هاي خود را به داخل تابع فرستاده و سپس از ورودي ها بعنوان خروجي استفاده مي كنيم. ساختار كلي به صورت زير است. اكنون برنامه بالا را با اين ساختار مي نويسيم : ) ليست ورودي ها و خروجي ها ( نام زير برنامه Subroutine بلوك دستورات End Subroutine Read *,A Call Sin2(A,B) Print *,Sin(A)-B End Subroutine Sin2(x,y) y=x ; F=1 ; S=-1 Do i=3,20,2 F=F*(i-1)*i y=y+s*x**i/f S=S*-1 End do End Subroutine همانطور كه مي بينيد فراخواني Subroutine با دستورCall باشد. 53

54 ضميمه : 1 ليست كليه توابع مورد نياز برنامه نويسي Name Description Argument/Function Type ACOS ACOSD ACOS(x). Returns the arc cosine of x in radians between 0 and pi. When ACOS is passed as an argument, x must be REAL(4). ACOSD(x). Returns the arc cosine of x in degrees between 0 and 180. When ACOSD is passed as an argument, x must be REAL(4). x: Real result: same type as x x: Real result: same type as x ALOG ALOG(x). Returns natural log of x. x: REAL(4) result: REAL(4) ALOG10 ALOG10(x). Returns common log (base 10) of x. x: REAL(4) result: REAL(4) ASIN ASIND ATAN ATAND ATAN2 ATAN2D ASIN(x). Returns arc sine of x in radians between ±pi/2. When ASIN is passed as an argument, x must be REAL(4). ASIND(x). Returns arc sine of x in degrees between ±90. When ASIND is passed as an argument, x must be REAL(4). ATAN(x). Returns arc tangent of x in radians between ±pi/2. When ATAN is passed as an argument, x must be REAL(4). ATAND(x). Returns arc tangent of x in degrees between ±90. When ATAND is passed as an argument, x must be REAL(4). ATAN2(y, x). Returns the arc tangent of y/x in radians between ±pi. When ATAN2 is passed as an argument, y and x must be REAL(4). ATAN2D(y, x). Returns the arc tangent of y/x in degrees between ±180. When ATAN2D is passed as an argument, y and x must be REAL(4). x: Real result: same type as x x: Real result: same type as x x: Real result: same type as x x: Real result: same type as x y: Real x: same as y result: same type as y y: Real x: same as y result: same type as y 54

55 CCOS CCOS(x). Returns complex cosine of x. x: COMPLEX(4) result: COMPLEX(4) CDCOS CDEXP CDLOG CDSIN CDSQRT CDCOS(x). Returns double-precision complex cosine of x. CDEXP(x). Returns double-precision complex value of e**x. CDLOG(x). Returns double-precision complex natural log of x. CDSIN(x). Returns double-precision complex sine of x. CDSQRT(x). Returns double-precision complex square root of x. x: COMPLEX(8) result: COMPLEX(8) x: COMPLEX(8) result: COMPLEX(8) x: COMPLEX(8) result: COMPLEX(8) x: COMPLEX(8) result: COMPLEX(8) x COMPLEX(8) result: COMPLEX(8) CEXP CEXP(x). Returns complex value of e**x. x: COMPLEX(4) result: COMPLEX(4) CLOG CLOG(x). Returns complex natural log of x. x: COMPLEX(4) result: COMPLEX(4) COS COSD COS(x). Returns cosine of x radians. When COS is passed as an argument, x must be REAL(4). COSD(x). Returns cosine of x degrees. When COSD is passed as an argument, x must be REAL(4). x: Real or Complex result: same type as x x: Real result: same type as x COSH COSH(x). Returns the hyperbolic cosine of x. When COSH is passed as an argument, x must be REAL(4). x: Real result: same type as x COTAN COTAND COTAN (x). Returns cotangent of x in radians. COTAND (x). Returns cotangent of x in degrees. x: Real result: same type as x x: Real 55

56 result: same type as x CSIN CSIN(x). Returns complex sine of x. x: COMPLEX(4) result: COMPLEX(4) CSQRT DACOS DACOSD DASIN DASIND DATAN DATAND DATAN2 DATAN2D DCOS CSQRT(x). Returns complex square root of x. DACOS(x). Returns double-precision arc cosine of x in radians between 0 and pi. DACOSD(x). Returns the arc cosine of x in degrees between 0 and 180. When DACOSD is passed as an argument, x must be REAL(4). DASIN(x). Returns double-precision arc sine of x in radians between ±pi/2. DASIND(x). Returns double-precision arc sine of x in degrees between ±90. DATAN(x). Returns double-precision arc tangent of x in radians between ±pi/2. DATAND(x). Returns double-precision arc tangent of x in degrees between ±90. DATAN2(y, x). Returns double-precision arc tangent of y/x in radians between ±pi. DATAN2D(y, x). Returns double-precision arc tangent of y/x in degrees between ±180. DCOS(x). Returns double-precision cosine of x in radians. x: COMPLEX(4) result: COMPLEX(4) x: REAL(8) result: REAL(8) x: REAL(8) result: REAL(8) x: REAL(8) result: REAL(8) x: REAL(8) result: REAL(8) x: REAL(8) result: REAL(8) x: REAL(8) result: REAL(8) y: REAL(8) x: REAL(8) result: REAL(8) y: REAL(8) x: REAL(8) result: REAL(8) x: REAL(8) result: REAL(8) 56

57 DCOSD DCOSH DCOTAN DEXP DLOG DLOG10 DSIN DSIND DSINH DSQRT DTAN DTAND DTANH DCOSD(x). Returns double-precision cosine of x in degrees. DCOSH(x). Returns double-precision hyperbolic cosine of x. DCOTAN(x). Returns double-precision cotangent of x. DEXP(x). Returns double-precision value of e**x DLOG(x). Returns double-precision natural log of x. DLOG10(x). Returns double-precision common log (base 10) of x. DSIN(x). Returns double-precision sin of x in radians. DSIND(x). Returns double-precision sin of x in degrees. DSINH(x). Returns double-precision hyperbolic sine of x. DSQRT(x). Returns double-precision square root of x. DTAN(x). Returns double-precision tangent of x in radians. DTAND(x). Returns double-precision tangent of x in degrees. DTANH(x). Returns double-precision hyperbolic tangent of x. x: REAL(8) result: REAL(8) x: REAL(8) result: REAL(8) x: REAL(8) result: REAL(8) x: REAL(8) result: REAL(8) x: REAL(8) result: REAL(8) x: REAL(8) result: REAL(8) x: REAL(8) result: REAL(8) x: REAL(8) result: REAL(8) x: REAL(8) result: REAL(8) x: REAL(8) result: REAL(8) x: REAL(8) result: REAL(8) x: REAL(8) result: REAL(8) x: REAL(8) 57

بهار

بهار 3--03 جلسه ي بيست و سوم دانشگاه شهيد بهشتي دانشكدهي مهندسي برق و كامپيوتر بهار 392 احمد محمودي ازناوه http://faculties.sbu.ac.ir/~a_mahmoudi/ فهرست مطالب مروري بر جلسهي پيش مثال حافظهي نهان چند سطحي حافظهي

More information

Introduction to Computer Science and Programming

Introduction to Computer Science and Programming Introduction to Computer Science and Programming 2 nd Ed. Fall 2012 Instructor: A. Jafari ajafari.uni@gmail.com Lecture 1: Introduction Dept. of Materials and Metallurgical Engineering, IUST, Fall 2012

More information

گروه ا موزشي فرزان. ا موزش. Forefront TMG 2010

گروه ا موزشي فرزان.  ا موزش. Forefront TMG 2010 نمونه ايي از كتاب الكترونيكي ا موزش Forefront TMG 2010 1 IAG UAG TMG مقايسه و قابليتهاي بين ا نها 2 سرويس TMG در دو نسخه Standard و Enterprise قابل نصب مي باشد كه مي توانيد سناريوهاي قابل پياده سازي توسط

More information

Dr. Ebadati University of Economic Science

Dr. Ebadati University of Economic Science Advanced Management Information System Dr. Ebadati University of Economic Science پايگاه داده و نحوه طراحي ا ن The Traditional Approach Versus the Database Approach Traditional approach: separate data

More information

Beginning Ajax. Asynchronous JavaScript and XML. توسط Jeese James Garrett. Ajax. Kaveh Ahmadi Beginning Ajax 2

Beginning Ajax. Asynchronous JavaScript and XML. توسط Jeese James Garrett. Ajax. Kaveh Ahmadi Beginning Ajax 2 Beginning Ajax سيد كاوه احمدي Ajax Asynchronous JavaScript and XML توسط Jeese James Garrett معرفي شده است. Ajax يك تكنولوژي جديد نيست. بلكه يك اصطلاح است كه به تركيب چهار تكنولوژي مختلف با يكديگر اشاره

More information

لیست پیوندی- 2 سید مهدی وحیدی پور با تشکر از دکتر جواد سلیمی دانشکده مهندسی برق و کامپیوتر

لیست پیوندی- 2 سید مهدی وحیدی پور با تشکر از دکتر جواد سلیمی دانشکده مهندسی برق و کامپیوتر لیست پیوندی- 2 سید مهدی وحیدی پور با تشکر از دکتر جواد سلیمی دانشگاه کاشان- دانشکده مهندسی برق و کامپیوتر لیستهای پیوندی اشاره گرها ليست ها ليست هاي دايره اي پشته ها و صفهاي پيوندي چند جمله اي ها روابط

More information

ILUM-SAM7s راهنمای نرم افزار پردازش سبز هونام. راهنمای نرم افزاری ILUM-SAM7s

ILUM-SAM7s راهنمای نرم افزار پردازش سبز هونام. راهنمای نرم افزاری ILUM-SAM7s پردازش سبز هونام ILUM-SAM7s راهنمای نرم افزار و نحوه ی پروگرم کردن میکروکنترلر و نیز کامپایل و اجرای یک کد نمونه در محیط نرم افزاری IAR نحوه پروگرام کردن ILUM-SAM7s برنامه SAM-BAرا از داخل CD نصب و کامپيوتر

More information

بسمه تعالی نمونه آزمون برنامهنویسی جاواکاپ 12 شهریور 2931

بسمه تعالی نمونه آزمون برنامهنویسی جاواکاپ 12 شهریور 2931 بسمه تعالی نمونه آزمون برنامهنویسی جاواکاپ 12 شهریور 2931 نکات مهم: همه سؤاالت چند گزينهای هستند. سؤاالت نمره منفی ندارند. هر سؤال بين سه تا ده گزينه دارد. هر سؤال ممکن است بيش از يک گزينه صحيح داشته باشد.

More information

MPLS HYBRID. PACKET Forwarding CIRCUIT CWITCHING ATM +IP

MPLS HYBRID. PACKET Forwarding CIRCUIT CWITCHING ATM +IP مروری بر پروتکلMPLS : IP : MPLS : : علی رستمی ٨٣ /١١/٢٠ : : احمد ا قاميرزاي ی : علی رستمی ٨٣ /١٢/٢۵: : اینترنت مقدمه... ٣ ١ -ایده اصلی...۴ MPLS ٢ -مزایای ۵...MPLS ٣- نحوه آد گذاري سرفصل ۶...MPLS ۴ -ساختار

More information

Visual Basic.NET Sub Programs

Visual Basic.NET Sub Programs 1 Visual Basic.NET 2 پروگرامهاي فرعي بسياري پروگرامهاي کمپيوتر داراي دستورهاي زياد بوده و تجارب نشان داده است که بهتر است اين پروگرامها به بخش هاي خورد و قابل اداره تبديل شود. در ويژول بسيک دات نت اين

More information

دستور خروجی. :cout این شی ء در فایل سرآیند iostream.h قرار دارد نکته: در 2008 این شی ء با افزودن ; std using namespace قابل دسترسی است.

دستور خروجی. :cout این شی ء در فایل سرآیند iostream.h قرار دارد نکته: در 2008 این شی ء با افزودن ; std using namespace قابل دسترسی است. دستور خروجی به برنامه :cout این شی ء در فایل سرآیند iostream.h قرار دارد نکته: در 2008 این شی ء با افزودن ; std using namespace قابل دسترسی است. شکل کلی :cout ;

More information

Instructor : Saeed Shiry

Instructor : Saeed Shiry کنترل جريان برنامه Instructor : Saeed Shiry 1 کنترل جريان برنامه در حالت عادی خطوط برنامه بصورت پشت سرهم اجرا ميشوند. ولی برنامه نويس ميتواند روند اجرای برنامه را بر اساس نتايج محاسبات مقادير ورودی تحقق

More information

مرتب سازی. (sort) : ویرایش احمدرضا غدیرزاده دانشجوی رشته ی مهندسی کامپیوتر

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

More information

برنامه نويسي به زبان C++ مهندس عين هللا جعفرنژاد قمي:تاليف

برنامه نويسي به زبان C++ مهندس عين هللا جعفرنژاد قمي:تاليف برنامه نويسي به زبان C++ مهندس عين هللا جعفرنژاد قمي:تاليف + + + برنامه اي بنويسيد که دو مقدار اعشاري را از ورودي خوانده و تفاضل و حاصلضرب و حاصلل تقسليم آنهلا را محاسبه کرده به خروجي ببرد. برنامه وقتي

More information

Introduction to Programming

Introduction to Programming Introduction to Programming Lecture 6: Making Decisions What We Will Learn Introduction Conditions and Boolean operations if-else statement switch-case statement Conditional expressions 2 What We Will

More information

ابتدا نصب بودن بسته VConfig که برای راه اندازی VLAN مورد نیاز است را بررسی کنید:

ابتدا نصب بودن بسته VConfig که برای راه اندازی VLAN مورد نیاز است را بررسی کنید: اعطا ما مدیریت و شبکه به را تری افزون وری بهره و کارایی بیشتر امنیت تر آسان مدیریت VLAN می کند.دلیل و توجیه استفاده از VLAN بنا به نیاز و طراحی شبکه متغییر است VLAN. در تعریف ساده تقسیم شبکه موجود به چندین

More information

MODBUS ETHERNET و مفاهیم پایه

MODBUS ETHERNET و مفاهیم پایه MODBUS ETHERNET و مفاهیم پایه IP (network and sharing) 7 Network and Sharing Center. (Change adapter» «. settings). Properties (local adapter) : Internet Protocol Local Area Connection Properties. Properties.

More information

a) Peripheral Interface = Interface Adaptor = Interface Controller

a) Peripheral Interface = Interface Adaptor = Interface Controller فصل سیزدهم اصول میکروکامپیوترها http://ee.iust.ac.ir/rahmati/index.htm استفاده ازIC هاي جانبی درس: دکتر رحمتی آدرس Email و Website براي تکالیف و... : rahmati@iust.ac.ir http://eel.iust.ac.ir/rahmati/ اين

More information

تلفن: دورنگار: تلفن: و دورنگار نمايند.

تلفن: دورنگار: تلفن: و دورنگار نمايند. استاندارد مهارت و آموزشي تكنسين شبكه هاي كامپيوتري بيسيم گروه برنامه ريزي درسي فناوري اطلاعات تاريخ شروع اعتبار: // كد استاندارد: 0-/// از كليه صاحب نظران تقاضا دارد پيشنهادات و نظرات خود را درباره اين

More information

:هجوت تهنت 4 هگرب تسخن تفا تیفیک دنراد

:هجوت تهنت 4 هگرب تسخن تفا تیفیک دنراد :هجوت تهنت 4 هگرب تسخن تفا تیفیک دنراد 5 : case 4 ;"cout

More information

پرﺎﺷ ﯽﺳ شزﻮﻣآ C#.NET ﺎﻫ ﻪﺘﺷر ﺎﺑ رﺎﮐ

پرﺎﺷ ﯽﺳ شزﻮﻣآ C#.NET ﺎﻫ ﻪﺘﺷر ﺎﺑ رﺎﮐ آموزش سی شارپ C#.NET کار با رشته ها طریقه ایجاد کردن رشته ها: راه معمول تعریف رشته در سی شارپ استفاده از دو علامت نقل قول است. ("abcdef") که رشته مورد نظر ما در بین این دو علامت تایپ می شود. string newstring

More information

اصول ميکروکامپيوترها درس: دکتر رحمتی http://ee.iust.ac.ir/rahmati/index.htm آدرس Email و Website براي تکالیف و... : rahmati@iust.ac.ir http://eel.iust.ac.ir/rahmati/ ١ فصل دوازدهم استفاده از Interruptها

More information

Mahdi. Shabany. M. Shabany, Digital. VLSI System Design

Mahdi. Shabany. M. Shabany, Digital. VLSI System Design Digital VLSI sy ystem Design ASIC Des sign Flow Mahdi Shabany Department tof Electrical ti lengineering i Sharif University of technology ASIC Design Flow 1. HDL Coding 2. Simulation 3. Synthesis 4. Placement

More information

آشنایی با دستورNetStat

آشنایی با دستورNetStat آشنایی با دستورNetStat این دستور وضعیت پروتکلها و پورتهای ارتباطی TCP/IP را نمایش می دهد. در صورتی که این دستور بدون هیچ سوئیچی استفاده شود این دستور کلیه پورتها و ارتباطات خروجی فعال را نمایش می دهد.

More information

کامل ترین دوره های آموزش برنامه نویسی پایگاه داده معماری نرم افزار و موبایل به همراه مجموعه مقاالت و فیلم های آموزشی رایگان در:

کامل ترین دوره های آموزش برنامه نویسی پایگاه داده معماری نرم افزار و موبایل به همراه مجموعه مقاالت و فیلم های آموزشی رایگان در: کامل ترین دوره های آموزش برنامه نویسی پایگاه داده معماری نرم افزار و موبایل به همراه مجموعه مقاالت و فیلم های آموزشی رایگان در: www.tahlildadeh.com استفاده از این مطالب با ذکر منبع بال مانع است. شی SqlCommand

More information

آسیب پذیري هاي تزریق SQL

آسیب پذیري هاي تزریق SQL به نام خدا دانشگاه صنعتی امیرکبیر دانشکده مهندسی کامپیوتر و فناوري اطلاعات آسیب پذیري هاي تزریق SQL CSRF و XSS اراي ه دهنده: محمود قربانزاده تحت نظر: دکتر حمید رضا شهریاري مهر 1393 ده آسیب پذیري برتر (در

More information

یسیون همانرب هاگراک عباوت اب ییانشآ

یسیون همانرب هاگراک عباوت اب ییانشآ کارگاه برنامه نویسی با توابع آشنایی توابع برنامههایی که تاکنون نوشته شدهاند فقط شامل یك تابع اصلی به نام main() بودهاند. برنامههاي واقعی و تجاري بسيار بزرگتر از برنامههایی هستند که تاکنون بررسی کیم. براي

More information

Introduction to Programming

Introduction to Programming Introduction to Programming Lecture 10: Pointers What We Will Learn Introduction Pointers and Functions Pointers and Arrays Pointers and Strings Pointer to Pointer Dynamic memory allocation 2 What We Will

More information

اصول ميکروکامپيوترها استاد درس: دکتر http://eeiustacir/rahmati/indexhtm rahmati@iustacir ا درس Email و Website برای تکاليف و : http://eeliustacir/rahmati/ ١ /١۴ هفدهم فصل ا شنايی با دستورالعمل ها وMode

More information

اصول درس: دکتر رحمتی http://ee.iust.ac.ir/rahmati/index.htm آدرس Email و Website براي تکالیف و... : rahmati@iust.ac.ir http://eel.iust.ac.ir/rahmati/ ١ فصل ششم فصل ششم ا شنايی با دستورالعملهای Z8 و مقدمهای

More information

Internet Engineering. Chapter3: IP layer

Internet Engineering. Chapter3: IP layer Internet Engineering Instructor: Masoud Asghari Web page: http://www.maser.ir/lectures/ies2017ucna/ Based on slides of Dr. Davood Karimzadegan Moghaddam Chapter3: IP layer فصل سوم: اليه IP در شبکه اينترنت

More information

پروتكلهاي احرازاصالت. Authentication protocols

پروتكلهاي احرازاصالت. Authentication protocols پروتكلهاي احرازاصالت Authentication protocols فهرست مطالب مقدمه احرازاصالت ضعيف) كلمات عبور( احرازاصالت قوي پروتكل كربروس )مبتني بر سؤال و جواب( مقدمه مقدمه Basis for Authentication Something you know

More information

بسم الله الرحمن الرحیم آموزشگاه تحلیل داده تخصصی ترین مرکز برنامه نویسی و دیتابیس در ایران. آموزش Table در HTML مدرس : مهندس افشین رفوآ

بسم الله الرحمن الرحیم آموزشگاه تحلیل داده تخصصی ترین مرکز برنامه نویسی و دیتابیس در ایران. آموزش Table در HTML مدرس : مهندس افشین رفوآ بسم الله الرحمن الرحیم آموزشگاه تحلیل داده تخصصی ترین مرکز برنامه نویسی و دیتابیس در ایران آموزش Table در HTML مدرس : مهندس افشین رفوآ آموزش Table در HTML جدول های HTML به نویسندگان وب اجازه می دهند تا

More information

تلفن: دورنگار: كدپستي:

تلفن: دورنگار: كدپستي: استاندارد مهارت و آموزشي تكنسين امنيت سيستمهاي Linux گروه برنامه ريزي درسي فناوري اطلاعات تاريخ شروع اعتبار: /6/ كد استاندارد: 0-/// دفتر طرح و برنامه هاي درسي: تهران- خيابان آزادي- خ خوش شمالي- تقاطع

More information

GARMIN ETREX 10. Physical & Performance FOR ETREX " x 4.0" x 1.3" (5.4 x 10.3 x 3.3 cm) و transflective, monochrome

GARMIN ETREX 10. Physical & Performance FOR ETREX  x 4.0 x 1.3 (5.4 x 10.3 x 3.3 cm) و transflective, monochrome Physical dimensions ليست جديدترين سيستمهاي GPS دستي براي سال 94 2015 GARMIN ETREX 10 طراحي جديد ساخت 2015 ساخت كمپاني GARMIN قابليت دريافت امواج ماهواره هاي امريكايي GNSS support GPS قابليت دريافت امواج

More information

باASP.NET دفتر طرح و برنامه هاي درسي: تهران- خيابان تلفن: و دورنگار: كدپستي: نمايند.

باASP.NET دفتر طرح و برنامه هاي درسي: تهران- خيابان تلفن: و دورنگار: كدپستي: نمايند. استاندارد مهارت و آموزشي مهندس درتوسعهWebهايEnterprise گروه برنامه ريزي درسي فناوري اطلاعات تاريخ شروع اعتبار 18//1 كد استاندارد 0-8/27/1/2 دفتر طرح و برنامه هاي درسي تهران- خيابان آزادي- خ خوش شمالي-

More information

(Opnet. 1

(Opnet. 1 ص( دانشكده مهندسي كامپيوتر (Opnet پروژه چهارم (مسيريابي در 1 درس شبكههاي كامپيوتري مهلت تحويل: شنبه 27 /ابان/ 1391 قبل از كلاس TA Opnet ميباشد. هدف از اين پروژه شبيه سازي انواع مسيريابي در براي اين منظور

More information

How to Search the Medical Literature

How to Search the Medical Literature پروانه مديراماني ) كارشناس ارشد كتابداري دانشكدة پزشكي مشهد) How to Search the Medical Literature پروانه مديراماني كارشناس ارشد كتابداري و اطلاع رساني پزشكي اهداف كارگاه ا شنايي با امكانات وب براي جستجوي

More information

The no service password-recovery Command for Secure ROMMON Configuration

The no service password-recovery Command for Secure ROMMON Configuration دستور no service password-recovery قابلیتهای امنیتی ROMMON را فعال میکند ولی در هنگام استفاده از این دستور باید نهایت دقت رو انجام بدید و گرنه با دردسرهای زیادی مواجه خواهید شد. این دستور در جایی کاربرد

More information

بسم الله الرحمن الرحیم آموزشگاه تحلیل داده تخصصی ترین مرکز برنامه نویسی و دیتابیس در ایران قابل جابجایی مدرس : مهندس افشین رفوآ

بسم الله الرحمن الرحیم آموزشگاه تحلیل داده تخصصی ترین مرکز برنامه نویسی و دیتابیس در ایران قابل جابجایی مدرس : مهندس افشین رفوآ بسم الله الرحمن الرحیم آموزشگاه تحلیل داده تخصصی ترین مرکز برنامه نویسی و دیتابیس در ایران قابل جابجایی مدرس : مهندس افشین رفوآ قابل جابجایی jqueryui متد draggable() را برای ساخت عنصر قابل جابجایی DOM

More information

حقوق مؤلف. انجمن جاواکاپ اشیاء در جاوا

حقوق مؤلف. انجمن جاواکاپ اشیاء در جاوا دن یک م م ی نجاواکاپتقد م نج ا جاوا نويسی برنامه دوره جاوا در اشیاء JAVA OBJECTS ری کب یا عل صادق حقوق مؤلف کلیه حقوق این اثر متعلق به است بازنشر یا تدریس آنچه توسط جاواکاپ و به صورت عمومی منتشر شده است

More information

access-list access-list-number {permit deny} {host source source-wildcard any}

access-list access-list-number {permit deny} {host source source-wildcard any} Cisco Access List در ترجمه لغوی به معنای لیست دسترسی سیسکو می باشد که زیاد هم از معنای واقعی خود دور نیست. همانطور که از اسم آن بر می آید به وسیله این ابزار میتوانیم بر روی سخت افزارهای سیسکو فایروال ایجاد

More information

بسم الله الرحمن الرحیم آموزشگاه تحلیل داده تخصصی ترین مرکز برنامه نویسی و دیتابیس در ایران. آموزش ایجاد کنترل های سفارشی / controls ASP.

بسم الله الرحمن الرحیم آموزشگاه تحلیل داده تخصصی ترین مرکز برنامه نویسی و دیتابیس در ایران. آموزش ایجاد کنترل های سفارشی / controls ASP. و< بسم الله الرحمن الرحیم آموزشگاه تحلیل داده تخصصی ترین مرکز برنامه نویسی و دیتابیس در ایران آموزش ایجاد کنترل های سفارشی / controls ASP.NET Custom مدرس : مهندس افشین رفوآ آموزش ایجاد کنترل های سفارشی

More information

دفتر طرح و برنامه هاي درسي: تهران- خيابان تلفن: و دورنگار: كدپستي:

دفتر طرح و برنامه هاي درسي: تهران- خيابان تلفن: و دورنگار: كدپستي: استاندارد مهارت و آموزشي طراحي مقدماتي صفحات Web گروه برنامه ريزي درسي فنĤوري اطلاعات تاريخ شروع اعتبار: 18//1 كد استاندارد: 1-66//1/ دفتر طرح و برنامه هاي درسي: تهران- خيابان آزادي- خ خوش شمالي- تقاطع

More information

تلفن: و دورنگار تلفن: دورنگار: نمايند.

تلفن: و دورنگار تلفن: دورنگار: نمايند. استاندارد مهارت و آموزشي برنامه نويس PHP گروه برنامه ريزي درسي فناوري اطلاعات تاريخ شروع اعتبار: 84/6/1 كد استاندارد : 0-8/81/1/2 دفتر طرح و برنامه هاي درسي: تهران- خيابان آزادي- خيابان خوش شمالي- تقاطع

More information

اشاره گر به تابع 5/23/2016

اشاره گر به تابع 5/23/2016 /* * advanced programming * Alireza Akhavan Pour * akhavan@alirezaweb.com * date: 1395/03/03 */ int main() { cout

More information

بسم اهلل الرحمن الرحیم

بسم اهلل الرحمن الرحیم بسم اهلل الرحمن الرحیم آموزشگاه تحلیل داده تخصصی ترین مرکز برنامه نویسی و دیتابیس در ایران آموزش رشته ها در سی شارپ مدرس : مهندس افشین رفوآ آموزش رشته ها در سی شارپ در #C می توانید از رشته ها به عنوان

More information

RTFM. (Red Team Field Manual) Cheet Sheet

RTFM. (Red Team Field Manual) Cheet Sheet راهنماي سريع RTFM فرمانها و هاي Red Team براي هك و امنيت در ويندوز و لينوكس (Red Team Field Manual) Cheet Sheet بن كلارك برگردان مهندس محسن مصطفي جوكار انتشارات پندار پارس سرشناسه عنوان و نام پديدآور مشخصات

More information

آزمایشگاه شبکههای کامپیوتری

آزمایشگاه شبکههای کامپیوتری آزمایشگاه شبکههای کامپیوتری دانشگاه سمنان دانشکده برق و کامپیوتر. دستورالعمل شماره 9: آشنایی با مسیریابی پویا محمدرضا رازیان ویرایش 3.0 به نام خدا در شد. این دستورالعمل با لیسته یا کنترل دسترسی آشنا خواهیم

More information

حقوق مؤلف. انجمن جاواکاپ 2 چند داستان کوتاه درباره امکانات جاوا

حقوق مؤلف. انجمن جاواکاپ 2 چند داستان کوتاه درباره امکانات جاوا دن یک م م ی نجاواکاپتقد م نج ا جاوا نويسی برنامه دوره جاوا امکانات درباره کوتاه داستان چند Java Short Stories ری کب یا عل صادق حقوق مؤلف کلیه حقوق این اثر متعلق به است بازنشر یا تدریس آنچه توسط جاواکاپ

More information

آشنایی با مدارك و آزمون هاي بین المللی مایکروسافت

آشنایی با مدارك و آزمون هاي بین المللی مایکروسافت بنام خدا آشنایی با مدارك و آزمون هاي بین المللی مایکروسافت Microsoft Certified Professional (MCP) Microsoft Certified Systems Engineer (MCSE) Microsoft Certified Systems Administrator (MCSA) فهرست مطالب

More information

بسم اهلل الرحمن الرحیم

بسم اهلل الرحمن الرحیم بسم اهلل الرحمن الرحیم آموزشگاه تحلیل داده تخصصی ترین مرکز برنامه نویسی و دیتابیس در ایران آموزش نحوه ی از استفاده اندروید List در قسمت ششم مدرس : مهندس افشین رفوآ آموزش نحوه ی استفاده از List در اندروید

More information

بسم اهلل الرحمن الرحیم

بسم اهلل الرحمن الرحیم بسم اهلل الرحمن الرحیم آموزشگاه تحلیل داده تخصصی ترین مرکز برنامه نویسی و دیتابیس در ایران آموزش نحوه ی از استفاده اندروید action bar قسمت سوم مدرس : مهندس افشین رفوآ آموزش نحوه ی استفاده از action bar

More information

آموزش تصویری نصب Kerio Control. شرکت Bitdefender تعویض کرده و به طور کامل هم از سخت افزار های 64 بیت حمایت می نه (که

آموزش تصویری نصب Kerio Control. شرکت Bitdefender تعویض کرده و به طور کامل هم از سخت افزار های 64 بیت حمایت می نه (که دانلود Kerio Control Installer 9.2.2-2172 امروزه دغدغه بسیاری از ادمین های شب ه این شده است که چ ونه م توان پهنای باند مصرف توسط کاربران را کنترل کرد. نرم افزار های بسیاری به منظور کنترل و مانیتور کردن

More information

عنوان مقاله : نحوه ایجاد تصویر captcha در ASP.net تهیه وتنظیم کننده : مرجع تخصصی برنامه نویسان

عنوان مقاله : نحوه ایجاد تصویر captcha در ASP.net تهیه وتنظیم کننده : مرجع تخصصی برنامه نویسان در این مقاله قصد داریم نشان دهیم که چگونه می توان تصویر Captcha را در برنامه های ASP.netخود قرار دهیم captcha.برای تشخیص ربات ها از انسان ها ایجاد شده اند که با استفاده از آن ربات ها نتوانند به سایت وارد

More information

حقوق مؤلف. انجمن جاواکاپ 2 رشته آرایه و چند داستان دیگر

حقوق مؤلف. انجمن جاواکاپ 2 رشته آرایه و چند داستان دیگر دن یک م م ی نجاواکاپتقد م نج ا جاوا نويسی برنامه دوره دیگر داستان چند و آرایه رشته STRING, ARRAY, AND OTHER STORIES ری کب یا عل صادق حقوق مؤلف کلیه حقوق این اثر متعلق به است بازنشر یا تدریس آنچه توسط جاواکاپ

More information

Introduction to Programming

Introduction to Programming Introduction to Programming Lecture 4: Calculations What We Will Learn Basic mathematic operations in C Effect of type and type conversion Precedence Advanced mathematical operations Mathematic library

More information

<h2>nonmonotonic Reasoning: Context- Dependent Reasoning</h2> <i>by <b>v. Marek</b> and <b>m. Truszczynski</b></i><br> Springer 1993<br> ISBN

<h2>nonmonotonic Reasoning: Context- Dependent Reasoning</h2> <i>by <b>v. Marek</b> and <b>m. Truszczynski</b></i><br> Springer 1993<br> ISBN nonmonotonic Reasoning: Context- Dependent Reasoning by v. Marek and m. Truszczynski Springer 1993 ISBN 0387976892 nonmonotonic Reasoning: Context-Dependent

More information

شروع کار با Entity Framework Core 2.0 ASP.NET Core 2.0

شروع کار با Entity Framework Core 2.0 ASP.NET Core 2.0 شروع کار با Entity Framework Core 2.0 ASP.NET Core 2.0 این مقاله نشان می دهد چگونه یک برنامه Entity Framework Core 2.0 MVC Web با استفاده از Visual Studio 2017 و ASP.NET Core ایجاد کنیم و چگونه عملیات

More information

.1 دستور ASSOC برای تغییر و نشان دادن اینکه چه فایلی با چه برنامه ای باز شود ASSOC.txt=textfile

.1 دستور ASSOC برای تغییر و نشان دادن اینکه چه فایلی با چه برنامه ای باز شود ASSOC.txt=textfile برای وارد شدن به CMD در ویندوز از منو استارت وارد Run شوید و عبارت CMD را تایپ کنید و اینتر بزنید.1 دستور ASSOC برای تغییر و نشان دادن اینکه چه فایلی با چه برنامه ای باز شود ASSOC.txt=textfile.2 دستور

More information

بسم اهلل الرحمن الرحیم

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

More information

حقوق مؤلف. انجمن جاواکاپ 2 تولد و مرگ اشیاء

حقوق مؤلف. انجمن جاواکاپ 2 تولد و مرگ اشیاء دن یک م م ی نجاواکاپتقد م نج ا جاوا نويسی برنامه دوره اشیاء مرگ و تولد Objects Initialization and Cleanup ری کب یا عل صادق حقوق مؤلف کلیه حقوق این اثر متعلق به است بازنشر یا تدریس آنچه توسط جاواکاپ و به

More information

C++ 2 هر ساختار از دو يا چند عضو كه به همراه هم يك واحد منطقي را ميسازند

C++ 2 هر ساختار از دو يا چند عضو كه به همراه هم يك واحد منطقي را ميسازند 10/18/2014 C++ 2 2014 struct هر ساختار از دو يا چند عضو كه به همراه هم يك واحد منطقي را ميسازند تشكيل ميشود. ارايهها هستند بدين صورت كه يك نوع داده گروهي(جمعی) ساختارها شبيه است كه فضاي پيوسته از حافظه

More information

AHR ANSYS Help.ir. Web:

AHR ANSYS Help.ir. Web: ANSYS Help.ir تهيه و تنظيم: محمد جواد جبارزاده Web: www.ansyshelp.ir Email: AnsysHelp.ir@gmail.com دهم تير نود و دو ويرايش اول لطفا در صورت استفاده از اين گزارش پايگاه اينترنتي www.ansyshelp.ir را به عنوان

More information

پایتون جهت دسترسی به دیتابیس از توابع کتابخانه ای DB-API استفاده کرده و interface هایی که برای

پایتون جهت دسترسی به دیتابیس از توابع کتابخانه ای DB-API استفاده کرده و interface هایی که برای MySQL و دسترسی به دیتابیس Python پایتون جهت دسترسی به دیتابیس از توابع کتابخانه ای DB-API استفاده کرده و interface هایی که برای اتصال به پایگاه داده و مدیریت داده های اپلیکیشن بایستی پیاده سازی شود بر

More information

فصل هشتم برنامه نویس شی گرا

فصل هشتم برنامه نویس شی گرا فصل هشتم برنامه نویس شی گرا فهرست مطالب فصل هشتم.12 عضوهای static.13.14.15.1.2.3.4.5.6.7.8.9.10.11 تعریف شی گرایی چند ریختی )polymorphism( خاصیت ارث بری پشته )stack( ایجاد شی ارث بری سازنده ها و نابود

More information

سویچ های سیس و. برای update کردن ios اول باید ios مورد نیاز از سایت سیس و دریافت کنیم و سپس ان را با ی نرم

سویچ های سیس و. برای update کردن ios اول باید ios مورد نیاز از سایت سیس و دریافت کنیم و سپس ان را با ی نرم آموزش update کردن IOS های روتر و سویچ های سیس و ios های سیس و مانند هر سیستم عامل دی ری نیاز به update دارند این فرآیند م تواند به دلایل مختلف انجام شود برای مثال مم ن است شما سخت افزار یا ماژول جدیدی

More information

بر روی هر یک از تجهیزاتی که از پروتکل IP/TCP پشتیبانی می کنند به ۲ طریق می توان Address IP تنظیم کرد.

بر روی هر یک از تجهیزاتی که از پروتکل IP/TCP پشتیبانی می کنند به ۲ طریق می توان Address IP تنظیم کرد. بر روی هر یک از تجهیزاتی که از پروتکل IP/TCP پشتیبانی می کنند به ۲ طریق می توان Address IP تنظیم کرد. Static Dynamic - - حتما تمامی خوانندگان با روش static آشنایی دارند. همان روش وارد کردن آدرس ها بصورت

More information

نظریه صف Queuing Theory سید صابر ناصرعلوی بخش مهندسی عمران دانشگاه شهید باهنر کرمان

نظریه صف Queuing Theory سید صابر ناصرعلوی بخش مهندسی عمران دانشگاه شهید باهنر کرمان نظریه صف Queuing Theory سید صابر ناصرعلوی بخش مهندسی عمران دانشگاه شهید باهنر کرمان نظریه صف 4. نظریه صفبندی شاخهای به که از ریاضی مطالعه صف ها ویژگی های و آنها می پردازد. ارزیابی وسیله ای برای محاسبه

More information

شروع کار با CSS. بخش هشتم: CSS Specificity سید کاوه احمدی

شروع کار با CSS. بخش هشتم: CSS Specificity سید کاوه احمدی شروع کار با CSS بخش هشتم: CSS Specificity سید کاوه احمدی سوال المان p به چه رنگی نمایش داده خواهد شد #mainnote { color: Blue; } div.note { color: green; }

More information

مستندات کار با وب سرویس سیستم خبری نیوزویت

مستندات کار با وب سرویس سیستم خبری نیوزویت به خدا مستندات کار با وب سرویس سیستم خبری نیوزویت (Newsvit REST-API Documentation) بخش اخبار لیست اخبار list گرفتن لیست اخبار http://newsvit.ir/api/news/list?limit=8&page=3&order=&sort=asc&count=0 مرتب

More information

یک هشدار دهنده صوتی قطع اینترنت یک راهکار عالی برای آنکه بدانید اینترنت شما چه زمانی قطع شده است

یک هشدار دهنده صوتی قطع اینترنت یک راهکار عالی برای آنکه بدانید اینترنت شما چه زمانی قطع شده است یک هشدار دهنده صوتی قطع اینترنت یک راهکار عالی برای آنکه بدانید اینترنت شما چه زمانی قطع شده است زمانی که اتصال اینترنتی قطع میشود سادهترین راهکاری که پیش روی شما قرار دارد نگاه کردن به آیکن وایفای است

More information

aurolab Excellence... in Sight

aurolab Excellence... in Sight aurolab Excellence... in Sight www.aurolab.com Auroflex لنز فولديبل هيدروفيليك با انژكتور و كارتريج يك بار مصرف با تاييديه اداره تجهيزات پزشكي Model: Optic Diameter: Overall Length: Material: Refractive

More information

Introduction to Programming

Introduction to Programming Introduction to Programming Lecture 11: struct & typedef & enum What We Will Learn Introduction struct definition Using struct struct & Array struct & Pointers struct & Functions enum 2 What We Will Learn

More information

private void Form1_Load(object sender, EventArgs e) {

private void Form1_Load(object sender, EventArgs e) { مروری بر ساختار.net ساختار,net بصورت یک محيط مجتمع برای توسعه و اجرای برنامه ھای اینترنتی برنامه ھای کاربردی ویندوز و حتی دستگاھھای موبایل طراحی شده است و اھداف آن بصورت زیر است. 1- فراھم ساختن یک محيط

More information

برنامه ای که به ازای مقادير ,x,y z عبارت رياضی (x+y-2z+1) را ارزيابی و محابسه می کند. .model small.

برنامه ای که به ازای مقادير ,x,y z عبارت رياضی (x+y-2z+1) را ارزيابی و محابسه می کند. .model small. .model small.stack 64 برنامه ای که به ازای مقادير,x,y z عبارت رياضی (x+y-2z+1) را ارزيابی و محابسه می کند. - 1 cr equ 0dh ; carriage return character lf equ 0ah ; linefeed character.data msg db 'evaluation

More information

SQL: Queries, Constraints, Triggers

SQL: Queries, Constraints, Triggers اصول طراحی پایگاه داده ها Principles of Database Design SQL: Queries, Constraints, Triggers مدرس : عاطفه خزاعی 1 زبان پرس و جوی SQL شرکت IBM در دهه 1970 در سیستم مدیریت پایگاهداده System R برای اولین بار

More information

اواج یسيون همانرب هرود طساو

اواج یسيون همانرب هرود طساو دن یک م م ی نجاواکاپتقد م نج ا جاوا نويسی برنامه دوره واسط Interface ری کب یا عل صادق حقوق مؤلف کلیه حقوق این اثر متعلق به است بازنشر یا تدریس آنچه توسط جاواکاپ و به صورت عمومی منتشر شده است با ذکر مرجع

More information

برنامه نویسی مقدماتی

برنامه نویسی مقدماتی برنامه نویسی مقدماتی بررسی مفاهیم الگوریتم و فلوچارت به کارگیری زبان CوC++ جهت پیاده سازی الگوریتم ها مدرس : علی نیک فرجام دستورات کنترل روند برنامه if if else Switch ساختارهای تصمیم for while do... while

More information

20. تمرين : ساخت برنامه ی تبديل دما

20. تمرين : ساخت برنامه ی تبديل دما بسم اهلل الرحمن الرحيم آموزشگاه تحليل داده تخصصی ترين مرکز برنامه نويسی و ديتابيس در ايران برنامه نويسی تحت اندرويد با Android Studio يا Eclipse ADT مدرس : مهندس افشين رفوآ کليه حقوق مادی و معنوی اين مقاله

More information

عنوان مقاله : خواندن و نوشتن محتوای فایل های Excel بدون استفاده ازAutomation Excel تهیه وتنظیم کننده : مرجع تخصصی برنامه نویسان

عنوان مقاله : خواندن و نوشتن محتوای فایل های Excel بدون استفاده ازAutomation Excel تهیه وتنظیم کننده : مرجع تخصصی برنامه نویسان در این مقاله با دو روش از روشهای خواندن اطالعات از فایل های اکسل و نوشتن آنها در DataGridView بدون استفاده از ( Automation Excelبا استفاده از NPOI و( ADO.Net آشنا میشوید. راه اول : با استفاده از (xls)

More information

ا شنايي با مدارك و ا زمون هاي بين المللي

ا شنايي با مدارك و ا زمون هاي بين المللي ا شنايي با مدارك و Certified Ethical Hacker (CEH) مديريت ا موزش شركت كاريار ارقام ١ فهرست -۱ مقدمه:... ٣ ۲ -تعداد امتحانات : يک ا زمون در مجموع... ۴ ۳ -نمونه مدرك... CEH ۴ ۴ -ميزان درا مد دارندگان مدارک

More information

آزمون برنامهنویسی جاوا

آزمون برنامهنویسی جاوا هب انم خا ل ق یکتا انجمن جاواکاپ آزمون برنامهنویسی جاوا نمونه آزمون جاوا: بخش پایه و حرفهای تعداد سواالت مدت زمان پاسخگویی نام و نام خانوادگی: شماره داوطلبی: سواالت بخش پایه String text = "Ali#and#Taghi#are#friends";

More information

Islamic Azad University Science and Research Branch

Islamic Azad University Science and Research Branch Islamic Azad University Science and Research Branch A Thesis Submitted to the School of Graduate Studies in Partial Fulfillment of the Requirements for Degree of Master of Arts (M.A.) In Translation Studies.

More information

بسم اهلل الرحمن الرحیم

بسم اهلل الرحمن الرحیم بسم اهلل الرحمن الرحیم آموزشگاه تحلیل داده تخصصی ترین مرکز برنامه نویسی و دیتابیس در ایران آموزش از استفاده Drawable ها در اندروید مدرس: مهندس افشین رفوآ در این بخش به کاربرد drawable ها در اندروید می

More information

بسمه تعالي. Web site:

بسمه تعالي. Web site: بسمه تعالي ريزپردازنده اسمبلي و زبان عبدلي : مدرس Email: abdoli@basu.ac.ir Web site: www.profs.basu.ac.ir/abdoli تا 18 : 961 ترم زمان كلاس: يكشنبه و سه شنبه ساعت 16 محل كلاس: كلاس 21 ***حضور در كلاس حل

More information

1 آدرس:تهران - خيابان شريعتی - باال تر از خيابان ملک - جنب بانک صادرات - پالک

1 آدرس:تهران - خيابان شريعتی - باال تر از خيابان ملک - جنب بانک صادرات - پالک 1 الرحیم الرحمن اهلل بسم آموزشگاه داده تحلیل نویسی برنامه مرکز ترین تخصصی ایران در ودیتابیس به گام آموزش کتاب گام AngularJS فارسی زبان به رفوآ افشین مهندس مولف 2 تقدیم به نائب امام عصر آیت اهلل خامنه ای

More information

ماژول اسناد فنی و مهندسی

ماژول اسناد فنی و مهندسی http://www.aisoft.ir ماژول اسناد فنی و مهندسی برای سیستم آرشیو اسناد و مدیریت محتوای سازمانی سگال سان نشانی: تهران خیابان ستارخان سه راه تهران ویال کوچه عنبرافشان خیابان فرخ کیش پالک 4 طبقه همکف واحد 2

More information

تحلیل ایستا ارائه دهنده: مطهره دهقان چاچکامی دانشجوی مقطع دکتری- گرایش امنیت اطالعات پاییز 93

تحلیل ایستا ارائه دهنده: مطهره دهقان چاچکامی دانشجوی مقطع دکتری- گرایش امنیت اطالعات پاییز 93 تحلیل ایستا ارائه دهنده: مطهره دهقان چاچکامی دانشجوی مقطع دکتری- گرایش امنیت اطالعات پاییز 93 روش های مقابله با آسیب پذیری تحلیل ایستا تحلیل پویا تحلیل ترکیبی روش های نظارتی... تحلیل ایستا بررسی کد برنامه

More information

خروجی

خروجی خروجی خروجی DayOfWeek d; for (d=dayofweek.sunday;d

More information

اصول ميکروکامپيوترها استاد درس: دکتر http://ee.iust.ac.ir/rahmati/index.htm rahmati@iust.ac.ir ا درس Email و Website برای تکاليف و... : http://eel.iust.ac.ir/rahmati/ ١ نوزدهم فصل ا شنايی با دستورالعمل

More information

هفتصد گیگ فایل از ارباب حلقهها و هابیت

هفتصد گیگ فایل از ارباب حلقهها و هابیت هارد رسزم ن مانه هفتصد گگ فال از ارباب حلقهها و هابت هارد ن رسزم مانه دارا سه پوشه )فولدر( اصل مباشد که هر ک به ترتب در ادامه با جزات لست شده است: عنوان پوشه )فولدر( شماره صفحه صفحه ۲ صفحه ۷ پوشه ۱: ارباب

More information

فهرست مطالب. سیستم مورد نیاز جهت نصب :... Kaspersky Anti-Virus نصب...: Kaspersky Anti-Virus نصب استاندارد...

فهرست مطالب. سیستم مورد نیاز جهت نصب :... Kaspersky Anti-Virus نصب...: Kaspersky Anti-Virus نصب استاندارد... سانا سیستم پارس www.kasperskyir.com 1 فهرست مطالب سیستم مورد نیاز جهت نصب :... Kaspersky Anti-Virus 2015 5 نصب...: Kaspersky Anti-Virus 2015 7-1 -2-2-1 نصب استاندارد...: 8-3 فعالسازی : Kaspersky Anti-Virus

More information

MSC-51

MSC-51 اصول ميکروکامپيوترها استاد درس: دکتر http://ee.iust.ac.ir/rahmati/index.htm rahmati@iust.ac.ir ا درس Email و Website برای تکاليف و... : http://eel.iust.ac.ir/rahmati/ ١ پانزدهم فصل ا شنايی با ميکروکنترولرها

More information

سید ناصر رضوی

سید ناصر رضوی توابع و کتابخانه ها: توابع بازگشتی سید ناصر رضوی www.snrazavi.ir ۱۳۹۶ توابع 3-2 بازگشتی 2 توابع بازگشتی ۳ تابعی بازگشتی. تابع به صورت را که خودش غیرمستقیم یا مستقیم فراخوانی می کند. مزایای یادگیری توابع

More information

دیگ های بخار. Ansar Industrial Group 18 برخوردار است. انفجارات احتراق مشعل. 300 درجه سانتیگراد و جوش های اصلی با دستگاه جوش

دیگ های بخار. Ansar Industrial Group   18 برخوردار است. انفجارات احتراق مشعل. 300 درجه سانتیگراد و جوش های اصلی با دستگاه جوش دیگ های بخار دیگ های بخار گروه صنعتی انصار از ظرفیت 7 کیلوگرم در ساعت تا ظرفیت تن در ساعت به صورت سه پاس و با راندمان باال و رده انرژی A در سه مدل افقی Wet Back افقی Dry Back و عمودی تولید می گردد. Áكليه

More information

اواج یسيون همانرب هرود باتزاب

اواج یسيون همانرب هرود باتزاب دن ممیک ی نجاواکاپتقد م نج ا جاوا نويسی برنامه دوره بازتاب Reflection صادقعلیاکبری حقوق مؤلف کلیه حقوق این اثر متعلق به است بازنشر یا تدریس آنچه توسط جاواکاپ و به صورت عمومی منتشر شده است با ذکر مرجع )جاواکاپ(

More information

دیگ های آب داغ و آبگرم

دیگ های آب داغ و آبگرم دیگ های آب داغ و آبگرم دیگ های آب داغ و آبگرم گروه صنعتی انصار از ظرفیت 0 هزار تا میلیون کیلوکالری در ساعت در پنج مدل سوپر سه پاس Wet Back سوپر سه پاس Dry Back کوره برگشتی L کوره برگشتی M و مدل S تولید

More information

پردازش لوله ای و برداری

پردازش لوله ای و برداری پردازش لوله ای و برداری )فصل 9 از کتاب )Mano 1 پردازش موازی Throughput: the amount of processing that can be accomplished during a given interval of time 2 3 : طبقه بندی کامپیوترها از نظر Flynn SISD: Single

More information

#include <iostream.h> #include<conio.h> int fact(int n) { int p=1; for (int i=2;i<=n;i++) p*=i; return p; } struct

#include <iostream.h> #include<conio.h> int fact(int n) { int p=1; for (int i=2;i<=n;i++) p*=i; return p; } struct یادآوری زبان C یکی از زبانھای برنامه نویسی که مبتنی برتعریف توابع است زبان C ميباشد.در این زبان ھر برنامه متشکل از دو نوع تابع است. 1 -توابع کتابخانه ای: توابعی ھستند که در دسته بندی ھای مختلف Files) (Header

More information