منو
 کاربر Online
464 کاربر online
 : کامپیوتر
برای پاسخ دادن به این ارسال باید از صفحه قبلی اقدام کنید.   ناشناس   در :  پنج شنبه 13 بهمن 1384 [15:42 ]
  برنامه نویسی از ابتدا
 

سلام
من دانش‌اموز سال اول دبیرستانم و دوست دارم الگوریتم نویسی و برنامه نویسی را از ابتدا یاد بگیرم.
دیدم در این انجمن الگوریتم‌هایی بررسی شده‌اند که البته از درک من فعلا خارج است.
لطفا در این انجمن از ابتدا الگوریتم‌نویسی را آموزش دهید تا من هم به نوایی برسم.

با تشکر

مهران

  امتیاز: 9.46     
برای پاسخ دادن به این ارسال باید از صفحه قبلی اقدام کنید.   کاربر offline سعید صدری 3 ستاره ها ارسال ها: 270   در :  پنج شنبه 13 بهمن 1384 [15:44 ]
  > برنامه نویسی از ابتدا
 

حتما آقا مهران
از ابتدا شروع می‌کنیم
این صفحه را هم "چسبان" می‌کنیم تا همه در آن شرکت کنند.


  امتیاز: 4.68     
برای پاسخ دادن به این ارسال باید از صفحه قبلی اقدام کنید.   کاربر offline بابک_غنیان 1 ستاره ها ارسال ها: 1   در :  یکشنبه 16 بهمن 1384 [16:58 ]
  > برنامه نویسی از ابتدا
 

salam man ham kheili alaghemandam ke barname nevisio yad begiram albate bebakhshid ke englisi type kardamrolleyes

  امتیاز: 9.47    نمایش یاسخ های این پست  
برای پاسخ دادن به این ارسال باید از صفحه قبلی اقدام کنید.   کاربر offline سعید صدری 3 ستاره ها ارسال ها: 270   در :  پنج شنبه 18 اسفند 1384 [11:10 ]
  آموزش برنامه‌نويسي 1
 

براي مشاهده‌ي اين صفحه در فرمت pdf به آدرس http://olympiad.roshd.ir/computer/content/pdf/0168.pdf مراجعه كنيد


مطالب پيشرو مجموعه اي گزينش شده از اطلاعات در مورد و روشهاي برنامه نويسي به زبان Delphi است. در گرد آوري مطالب سعي شده تا حد امكان عناوين مرتب شده و در جهت رشد سطح برنامه نويسي عزيزان خواننده جهت دهي شوند. با اين وجود لازم است چند نكته اي كه احتمالاً كمك شايان توجهي در مسير استفاده از متن خواهند داشت تذكر داده شود.
الف)
1- محتواي فصل ها و كاربردشان
2- اين فصل براي عزيزاني كه به تازگي با علم كامپيوتر آشنا شده اند و تا كنون با مفاهيم اساسي برنامه نويسي مواجه نگشته اند در نظر گرفته و شامل توضيح و تعريف اين مفاهيم است.
5و4و3 – اين سه فصل در جهت بررسي و آموختن قواعد اوليه زبان در نظر گرفته شده است.
6- اين فصل شامل توضيحاتي درباره امكاناتي است كه زبان در جهت پياده سازي مفاهيم ذهني برنامه نويس به صورت عملي در اختيار او قرار داده است.
7- در اين بخش آشنايي با محيط دستور كار است و هدف آموزش نكاتي است كه باعث تسهيل و تسريع نوشتن كدهاي برنامه خواهد شد.
9- اين فصل امكانات و تكنيكهاي اشكال زدايي از برنامه را در بردارد.
ب) در ضمن آموزش هر بخش در صورت امكان نمونه برنامه هاي قرار داده شده كه ديدن اجراي آنها باعث فهم بيشتر متن مي گردد و توصيه مي كنيم با تغيير در كد نوشته شده و ديدن اثر تغييرات علاوه بر لذت برنامه نوشتن باعث درك عميق تر خود از بخش مورد مطالعه شويد.

  امتیاز: 4.70     
برای پاسخ دادن به این ارسال باید از صفحه قبلی اقدام کنید.   کاربر offline سعید صدری 3 ستاره ها ارسال ها: 270   در :  پنج شنبه 18 اسفند 1384 [11:23 ]
  آموزش برنامه‌نويسي 2
 

براي مشاهده‌ي اين صفحه در فرمت pdf به آدرس http://olympiad.roshd.ir/computer/content/pdf/0171.pdf مراجعه كنيد

مزايا و محدوديت ها:
رايانه ابزاري است كه بر اساس يك سري قواعد فيزيكي و منطق دودويي، كارهاي بسيار محدود و مشخصي را انجام مي دهد. اين كارها شامل ذخيره سازي اعداد و جمع و تفريق و عمليات منطقي و عملكرد شرطي و جابجايي در متن برنامه (Branching) است ( منظور از عمليات منطقي همان عملكردهاي بولي هستند كه در درس رياضيات گسسته ذكر مي شود)
از همين منظر مشخص است كه حل مسايل با استفاده از رايانه چه دردسرها و محدوديت هايي دارد.
به عنوان مثال در بررسي درستي يك گزاره رياضي كه در آن از ضرب استفاده شده است لازم است كه ضرب پياده سازي شود. البته در نسلهاي كنوني از رايانه كه مورد استفاده قرار مي گيرد اوضاع به اين بدي نيست و دايره عمليات قابل انجام توسط رايانه گسترش يافته و بازه وسيعي را پوشش مي دهد. اما از اين محدوديت ها كه بگذريم
باز هم در حل مسايل با رايانه دست بازي نداريم. به عنوان مثال از اين نوع محدوديت بررسي درستي قرائت عربي يك قاري قرآن در نظر بگيريد. پارامترهايي كه در صححت قرائت و اصولاً خود قرائت دخالت دارند بسيار زيادند و در عين حال مساله شباهت چيزي نيست كه بتوان با رياضيات به سادگي پياده سازي كرد. در اين دست مسايل كه مفاهيم انساني در آنها دخالت دارند و پيچيدگي ذهن بشر در حل آنها كمك فراوان مي كند، كماكان راه حل هاي رايانه اي ناكامل اند.
يك نوع ديگر محدوديت در زمينه راه حلهاي رايانه اي عدم وجود كمكهايي مثل الهامات ذهني است اين مساله جداي از مفاهيم بشري مثل اشكال هندسي و شباهت و ... است. نوع بشر در حل مسايل از يك سري كمكهاي برخوردار است كه روال منطقي در دستيابي به آنها ديده نمي شود به عنوان نمونه مي توان از پيشنهاد شكل " لانه زنبوري " براي مولكول بنزن نام برد. حال اگر چنين مسائلي را با كمك رايانه حل كنيم حتماً بجاي اين عامل تسريع كننده جايگزين مناسبي يافته ايم و يافتن جايگزين همواره ممكن نيست.
از محدوديت هاي حل مساله به كمك رايانه گفتيم حال به مزاياي استفاده از اين ابزار و حل مسائل اشاره كنيم. براي اين بررسي هم مي توان به همان محدوده عملكردهاي رايانه رجوع كرد.
بسياري از موارد وجود دارد كه در حل يك مساله به يك رويه تكراري يا طولاني بر مي خوريم كه در عين حجم بالاي عمليات داراي واحدهاي عملياتي ساده اي است مثلاً تعداد بسيار زيادي جمع و مقايسه ساده هستند كه بايد انجام شوند. در اين صورت سپردن اين عمليات تكراري خسته كننده به رايانه باعث خواهد شد. اين بخش از حل مساله به سرعت زيادي انجام پذيرد و در عين حال وقت حل كاهش پيدا نكند ( خستگي در وقت انسان اثر مي گذارد ).
جايگاه ديگري كه رايانه در حل مسايل داراست داخل هاي عددي است (Numeral Solution) اگر با اين اصطلاح آشنا باشيد مي دانيد كه بخش عظيمي از تحقيقات صنعتي بر پشتوانه اين روش استوار است. اين روشها در واقع يافتن جواب مسايل رياضي براي شرايط خاص را ممكن كرده است مثلاً را در نظر بگيريد و فرض كنيد براي ساخت دستگاه خاصي نياز به دانستن مقدار انتگرال براي چندين مختلف داريد. صورت بسته رياضي براي انتگرال فوق وجود ندارد پس جه بايد كرد؟ يك راه استفاده از همين روشهاي عددي و تقريب زدن نتيجه انتگرال با دقت هاي مورد نياز است.
زمينه ديگر استفاده مفيد راه حلهاي رايانه اي مسايلي است كه در" پردازش سيگنالها " بوجود مي آيد. منظور از" سيگنال" يك كميت فيزيكي متغير با زمان است و منظور از " پردازش سيگنال " اعمال عمليات رياضي بر روي تابع تغييرات كميت مذكور بر حسب زمان".
تا زماني كه راه حلهاي رايانه اي وجود نداشتند با ابزار قواعد فيزيك به اين مهم فايل مي شديم مثلاً اگر مي خواستيم يك موج الكترومغناطيسي متغير با زمان را در يك موج الكترومغناطيسي متغير با زمان ديگر ضرب كنيم بايد وسيله اي پيدا مي كرديم كه بتواند اين خاصيت را از خود نشان دهد و يا چند قطعه فيزيكي كه روي هم اين عمل را انجام دهند. اما با استفاده از رايانه اين كار و هر پردازش ديگر در همين سطح به سهولت ممكن است. به عنوان نمونه عملي از اين دست پردازش ها مي توان به flanger صدا اشاره كرد. حتماً در سالهاي اخير با موسيقي هايي مواجه شده ايد كه در آن صداي خواننده در آن داراي اعوجاج خاصي است. اين نوع تغيير در صدا با نام Digital effect معروفند توسط رايانه به سادگي انجام مي شود.
كنترل عمليا يك كارخانه را در نظر بگيريد، اين كنترل بايد شبانه روز بي وقفه انجام شود و معمولاً هم تصميم گيري هاي دشواري براي اين نوع كنترل انجام نمي شود. در اين نوع كارهاي تكراري خسته كننده كه حتي عمليات رياضي زيادي هم ندارند رايانه مي توان كارآمد باشد.

  امتیاز: 4.71     
برای پاسخ دادن به این ارسال باید از صفحه قبلی اقدام کنید.   کاربر offline سعید صدری 3 ستاره ها ارسال ها: 270   در :  پنج شنبه 18 اسفند 1384 [11:42 ]
  آموزش برنامه‌نويسي 3
 

براي مشاهده‌ي اين صفحه در فرمت pdf به آدرس http://olympiad.roshd.ir/computer/content/pdf/0172.pdf مراجعه كنيد


الگوريتم :
در بخش گذشته ديديم كه حل مسايل به كمك رايانه چه محدوديت هايي دارد. مجموعه دستورالعملهاي قابل انجام توسط يك رايانه محدودند ( منظور در هر زمان ) و در عين حال دستورات ابتدايي و ساده اند. به عنوان مثال وقتي مي خواهيد يك عمل ضرب ساده را توسط ريانه هاي قديمي انجام دهيد، بايد مرحله به مرحله روش را تفكيك كرده و هر مرحله را جداگانه بصورت دستور به رايانه اعمال كنيد.
1- عدد c را صفر قرار بده 2- به تعداد b دفعه، c را با a جمع كن
يك نمونه از اين تفكيك ( كه البته روش خوبي نيست ) براي ضرب روش بالاست.
اين نوع عملكرد را مي توان به انجام عمليات يك كار پيچيده توسط يك كارگر ساده تشبيه كرد در اينگونه موارد نمي توان مفاهيم پيچيده را توضيح داد و سپس از فرد انتظار داشت كه خود با توجه به طبيعت مساله كار را انجام دهد بلكه بايد هر مرحله از كارهايي كه بايد او انجام دهد مجزا و بصورت رقيق ( منظور بصورتي كه فرد دقيقاً متوجه شود ) و جزئي ( تفكيك شده ) برايش توضيح دهيم. به عنوان مثال دستگاهي را در نظر بگيريد كه با گشودن و يا تنگ كردن دهانه مجراي عبور آب سد فشار پشت سد را تنظيم مي كند؛ نمي توان به كاربرد دستگاه گفت كه حداكثر تنش سد a است و تيغه سد زاويه را با افق دارد، كليد روبرويت بازكننده و مسدود كننده مجرا است و عقربه سمت راست فشار آب در ارتفاع 10 متري را نشان مي دهد، مراقب باش تنش از حد مجاز بالاتر نرود!
مي توان گفت مثلاً حواست باشد وقتي عقربه سمت راست كه فشار آب است به b رسيد، كليد روبرويت را باز كن و ... البته در مثالهاي انساني همواره انسان در طول زمان تجربه كسب مي كند و مي آموزد ولي به مثال گفته شده از اين ديده نگاه نكنيد.
رايانه برخلاف انسان با لذات قابليت آموختن ندارد و در نتيجه تا زماني كه روشي براي شبيه سازي آموختن نيافته ايم برخورد با رايانه دقيقاً همان رويه برخورد با \\\" كارگر ساده \\\" است.
بنابراين وقتي مي خوايم يك كار نسبتاً بزرگ توسط رايانه انجام شود آنرا تعداد زيادي كار كوچكتر تقسيم مي كنيم كه هر بخش براي رايانه قابل اجرا باشد و سپس براي هر بخش دستور مربوط را وارد مي كنيم.
به مجموعه كارهاي كوچك ذكر شده در بالا الگوريتم آن كار بزرگتر مي گوييم.
البته بايد در نظر داشت كه الگوريتم نوشتن تنها براي رايانه كه كارهاي وسيع نمي تواند انجام دهد نيست. اين كار ( تفكيك كارهاي بزرگ به بخشهاي جزيي جهت تسهيل در فهم آن )‌يعني الگوريتم نويسي علاوه بر كاربرد ذكر شده در كارهاي بزرگي كه خود ما مي خواهيم انجام دهيم هم مفيدند. اين عمل موجب نظم دادن به بخشهاي كار بزرگي كه مي خواهيم انجام دهيم مي شود.
يك مثال كاربردي پيدا كردن اعداد اول 1 تا مثلاً 100 است. يك روش اينست كه كه بدون تفكيك كار اين اعداد را از بقيه جدا كنيم! روش ديگر روش الگوريتميك زير است.
1- عدد 2 را در نظر بگيريد. 2- تمامي مضارب عدد در نظر گرفته شده را از مجموعه حذف كن.
3-آيا عدد خط نخورده اي پس از عدد در نظر گرفته شده وجود دارد؟
بله – آن عدد را در نظر بگيريد و به مرحله 2 برو.
خير – اتمام .
نمونه بالا كه كاملاً توسط رايانه هم قابل پياده سازي است مي تواند كار را براي انسان هم ساده كند و به سرعت بيشتري انجام شود.
در علم كامپيوتر دستورات جزئي كه در واقع مثل آجرهاي ساخت بناي مورد نظر هستند مشخص و محدودند اين دستورات جزئي عبارتند از الف) انتساب ( نسبت دادن عدد يا مقدار به يك نام ) ب) عمليات رياضي پ) حلقه ها ( انجام عمليات بصورت تكراري ) ت) دستورات شرطي
مثلاً در الگوريتم يافتن اعداد اول مرحله 1 انتساب مرحله 2 تكرار و شرط و عمليات رياضي را با هم دارد مرحله 3 شرط است. با اين مفهوم به مرور در روند آموزش بيشتر آشنا خواهيم شد.
حال اگر بخواهيم اين الگوريتمها را بصورت نموداري نمايش دهيم باز هم روش استانداردي وجود دارد. به اين نوع نمودارها فلوچارت (flowchart) به معناي نمودار جريان گوييم. استاندارد فلوچارت چيزي جز شكلهاي استاندارد نيست.
شكل بيضي براي شروع و پايان مستطيل براي انتساب و عمليات رياضي، لوزي براي شرط متوازي الاضلاع براي ورودي و خروجي ( رابط كاربر‌) و شكل دو مستطيل براي مجموعه اي از دستورالعملها كه جداگانه نوشته شده ( زير روال )

  امتیاز: 4.71     
برای پاسخ دادن به این ارسال باید از صفحه قبلی اقدام کنید.   کاربر offline سعید صدری 3 ستاره ها ارسال ها: 270   در :  پنج شنبه 18 اسفند 1384 [12:05 ]
  آموزش برنامه‌نويسي 4
 

براي مشاهده‌ي اين صفحه در فرمت pdf به آدرس http://olympiad.roshd.ir/computer/content/pdf/0173.pdf مراجعه كنيد

استراتژي حل مسئله
بحث آخر در مقوله حل مسايل توسط رايانه استراتژي صحيح در حل مسأله است زيرا خود طرح الگوريتم در بعضي موارد بخش از حل مسأله است.
معمولاً حل مسأله مراحل زير پيش مي آيد.
ابتدا يك راه حل در ذهن شكل مي گيرد و بصورت ايده ظاهر مي شود. سپس راه حل مورد نظر به جزه هاي كوچك تفكيك و الگوريتم اوليه آن نوشته مي شود. در اكثر موارد اين الگوريتم اوليه دچار نقايص ريز يا درشت است؛ پس مرحله بعد اجراي مرحله به مرحله الگوريتم است كه به آن Disk Check مي گويند. پس از آنكه اين كار انجام شد احياناً اشكالاتي از الگوريتم مشخص مي شود. اين اشكالات تصحيح شده و دوباره روند اجراي مرحله به مرحله را انجام مي دهيم.
چرخه تا جايي ادامه پيدا مي كند كه خطايي باقي نماند.
دقت كنيد اينكه اين مساله ظاهراً ساده در بخش جداگانه اي آورده شده اينست كه طرح راه حل بدون توجه به روند صحيح آن مي تواند باعث صرف هزينه بسيار زيادي براي رفع اشكال شود.
چه هزينه مادي و چه هزينه زماني ( البته براي دوستاني كه در المپياد شركت دارند هزينه زماني اهميت دارد!)
نموداري وجود دارد كه اين روند را براي توليد نرم افزار بصورت خيلي كلي نشان مي دهد.

  امتیاز: 4.72     
برای پاسخ دادن به این ارسال باید از صفحه قبلی اقدام کنید.   کاربر offline سعید صدری 3 ستاره ها ارسال ها: 270   در :  پنج شنبه 03 فروردین 1385 [14:38 ]
  آموزش برنامه‌نویسی 5
 

برای مشاهده‌ی این صفحه در فرمت pdf به آدرس http://olympiad.roshd.ir/computer/content/pdf/0175.pdf مراجعه کنید

زبان ماشین
تا کنون به مفاهیم اساسی حل مسأله توسط رایانه پرداختیم ولی از نکات عملی سخنی گفته نشد.
دستورات اولیه قابل اجرا توسط رایانه را چگونه می توان به رایانه گفت ؟ اصولاً پردازشگرهای کوچک (Micro Processor : µP ) نسل بعدی گیت های دیجیتال و مدارات منطقی بدوی هستند. عملکردهایی شبیه or , and , ... , که احتمالاً در منطق ریاضی با آنها آشنایی دارید. ( هنوز هم این المانها در جایگاه خود کارآیی دارند ) و لذا می توان پایه پیشرفت این علم را پیشرفت الکترونیک دیجیتال و پردازش های دو دویی (Binary) روی اعداد دانست. به درستی هم همین است زبان قابل فهم رایانه مشتی اعداد هستند که دارای ترکیب بندی خاصی هستند. (Format).
بر فرض عدد مبنای 16 "BA" به پردازشگرهای "Intel" سازگار با 8086 می فهماند که عدد خاصی را باید در جای خاصی از حافظه کپی کند. تمامی عملکرد رایانه بر همین منوال با دستوراتی از جنس اعداد است. در ضمن تمامی این دستورات همانند داده های خام در حافظه اصلی سیستم ( که توضیح آن بعداً خواهد آمد ) قرار دارند یعنی هیچ تفاوتی بین دستور و داده خام وجود ندارد.
ازهمین خاصیت دستورات می توان حدس زد که ایجاد مجموعه دستورالعملهای اجرایی در حین اجرای برنامه ممکن است یعنی برنامه می تواند بصورت پویا رشد یابد.
خلاصه کلام اینکه زبان ماشین مجموعه ای از اعداد ترکیب بندی شده است. لذا اعداد کد ( Code=رمز ) های اجرای دستورات هستند که برای درک این زبان می توان به دفترچه پردازشگر مربوط رجوع کرد و رمزها را گشود!
اما در حقیقت این سطح از کار به عهده ما نیست. این بخش را با تلاش فراوان دیگران انجام می دهند سیستم عامل تهیه می کنند و چه و چه تا در نهایت ما مجبور نباشیم برای پیاده سازی راه حل های خود با مشقت دست و پنجه نرم کردن با کدهای عددی آشنایی شویم.

  امتیاز: 4.73     
برای پاسخ دادن به این ارسال باید از صفحه قبلی اقدام کنید.   کاربر offline سعید صدری 3 ستاره ها ارسال ها: 270   در :  پنج شنبه 03 فروردین 1385 [14:49 ]
  آموزش برنامه‌نويسي 6
 

برای مشاهده‌ی این صفحه در فرمت pdf به آدرس http://olympiad.roshd.ir/computer/content/pdf/0176.pdf مراجعه کنید


زبان سطح بالا
گفتیم که در اصل برای پیاده سازی راه حلهای رایانه ای صفر و یک ها هستند که تدوین شده و به رایانه داده می شوند اما ما برای پیاده سازی واقعاً با این مشقت دست در گریبان نیستیم امروزه به علت آنکه مساله دست و پنجه نرم کردن با اعداد و کدهای دستورات خود توسط راه حلهای رایانه ای حل شده! ما با صورت دیگری از دستور دادن به رایانه روبرو هستیم. ما معمولاً برنامه ها را به زبانهای شبیه به زبان سخن گفتن انسانها و توسط ابزاری شبیه ماشین تایپ جملات و دستورات را وارد می کنیم.
به این زبانهای دادن دستورات به رااینه که به زبان سخن گفتن مانزدیکی زیادی دارد ( نسبت به اعداد!) زبانهای سطح بالا می گوئیم.
همانطور که گفته شد زبانهای سطح بالا خود راه حلهای رایانه ای برای سر و کله زدن با کدهای رمز دستورات است. در این زبانها برای کارهای مثل چاپ نتایج با تقسیم و ضرب و یا حتی توابع ریاضی از قبل دستورات ساده ای در نظر گرفته شده است. هر چه دامنه پوشش اعمال پیچیده با دستورات ساده در زبانی گسترش می یابد. سطح آن زبان بالاتر و نزدیکتر به زبان انسانها است نوشتن برنامه به زبان های سطح بالا مزایا و معایب خاص خود را دارد. در زبانهای سطح بالا پیاده سازی افکار آسان تر است و برنامه نویس دغدغه پیاده سازی ایده هایی که برای حل مساله به ذهنش رسیده کمتر دارد. با عبور از سد مشکلات پیاده سازی اعم از بسیار ریز کردن بخشهای الگوریتم و یا تکرار فوق العاده زیاد در نوشتن دستورات ریز تکراری می توان بیشتر به راه حل اصل مسأله فکر کرد، در عین حال با نوشتن در این زبانها نمی توان از حداکثر سرعت رایانه و یا حداقل حجم برنامه ( چنانگه در بخش قبل گفته شده برنامه هم مثل داده های خام فضای حافظه اشغال می کند ) استفاده کرد.
از این روست که در بسیاری زبانهای سطح بالا امکان نوشتن بخشی از برنامه به زبان های نزدیک به زبان ماشین قرار داده شده و هر جا که نیاز به سرعت بالا و یا کم کردن حجم برنامه بود می توان از زبان ماشین استفاده کرد.

  امتیاز: 4.73     
برای پاسخ دادن به این ارسال باید از صفحه قبلی اقدام کنید.   کاربر offline سعید صدری 3 ستاره ها ارسال ها: 270   در :  دوشنبه 21 فروردین 1385 [19:16 ]
  آموزش برنامه‌نویسی 7
 

برای مشاهده‌ی این صفحه در فرمت pdf به آدرس http://olympiad.roshd.ir/computer/content/pdf/0178.pdf مراجعه کنید


حافظه اصلی
در بخشهای گذشته ذکر شد که هم داده های خام و هم دستورات برنامه باید جایی ذخیره شوند.
این داده ها و حافظه اصلی ذخیره می شوند. حافظه اصلی که به نام RAM (Random Access Memory) هم معروف است یک قطعه سخت افزاری است یعنی چیزی است که درون قطعات رایانه ان را خواهید یافت این حافظه متشکل از تعداد زیادی واحد 1 بیتی ( رقم دودویی ) است که بر هر کدام Flip Flop ها چنانکه شد قابلیت ذخیره 1 یک \\\"1\\\" یا \\\"0\\\" را دارند. تعداد بسیار زیادی از این مکان صفر و یکها در کنار هم حافظه را تشکیل می دهند، محتویات این نوع حافظه با قطع برق پاک می شود از چگونگی ارتباط پردازشگر رایانه با حافظه که بگذریم به مسأله انواع حافظه اصلی می رسیم.
حافظه های اصلی در یک تقسیم بندی به \\\" ایستا \\\" و \\\" پویا \\\" تقسیم بندی می شوند. حافظه های ایستا بسیار سریع هستند و در عین حال قیمت بسیار بالایی هم دارند و حافظه \\\" پویا \\\" سرعت به نسبت کمتر و قیمت کمتری دارند . در حافظه های پویا داده ذخیره شده به تدریج از بین می رود و لذا هر از چندی نیاز به دوباره نویسی حافظه روی خودش است! ( تعجب نکنید حافظه پویا تکه به تکه روی خود بازنویسی می شود). حافظه های \\\" پویا \\\" امروزه حد سرعت 400 مگاهرتز دارند.
تقسیم بندی پویا و ایستا برای این بیان شد که مختصراً یکی از تکنیکهای بکار رفته در تسریع عملکرد رایانه های عصر جدید توضیح داده شود. احتمالاً با نام حافظه آشنا هستید این حافظه از نوع ایستا و درون پردازشگر است و پردازشگر داده هایی را که به دفعات داده هایی که بسیار استفاده می شود چند برابر شود کل عملیات چه افزایش سرعتی خواهد داشت.
دست آخر این که به علت حجم محدود حافظه اصلی پاره ای از اوقات از حافظه هایی با سرعت پائین تر از ان کار می کنمی و در نتیجه استفاده از روش بالا می تواند سرعت برنامه را افزایش دهد.
البته در دستگاههای جدید کمتر پیش می آید که حافظه اصلی برای انجام عملیات کم باشد مخصوصاً برنامه هایی که حجم سنگین داده را پردازش نمی کنند.

  امتیاز: 4.74     
برای پاسخ دادن به این ارسال باید از صفحه قبلی اقدام کنید.   کاربر offline سعید صدری 3 ستاره ها ارسال ها: 270   در :  دوشنبه 21 فروردین 1385 [19:49 ]
  آموزش برنامه‌نويسي 8
 

برای مشاهده‌ی این صفحه در فرمت pdf به آدرس http://olympiad.roshd.ir/computer/content/pdf/0179.pdf مراجعه کنید



حافظه جانبی
در پردازش حجم بالا که حافظه اصلی کم باشد یا در هنگامی که بخواهیم داده ها حتی در هنگام قطع برق از بین نرود داده ها ( یا برنامه ها ) را روی حافظه های جنبی ذخیره می کنیم. این نوع حافظه سرعت دستیابی بسیار پایینی دارد ولی حجم بسیار بالای از آن معمولاً در دسترس است مثلاً ( دیسک سخت را می توان نام برد که در رایانه های شخصی استفاده از دیسکهایی با حجم 120گیگابایت ( در مقایسه با 512 مگابایت حافظه اصلی ) نیز رایج است.
از این دست حافظه می توان CD-ROM,HARD DISK,FLOPPY DISK,DVD و ... را نام برد. علاوه بر حجم بالا مزیت دیگر این نوع حافظه قیمت به نسبت پایین آن است.
در رایانه های جدید که معمولاً با پردازش داده های حجیم نیز سرو کار دارند ( برنامه های کار سه بعدی یا بازیهای سه بعدی و یا نرم افزارهای تخصصی رشته های مهندسی ) سیستم عامل با استفاده از قابلیت های پردازشگر رایانه عمل انتقال داده به / از حافظه جانبی از / به حافظه اصلی را در وقت مقتضی انجام می دهد و بدین جهت کار بهینه سازی استفاده از حافظه های جانبی و اصلی که در بخش گذشته ذکر شد بدون نیاز به کار اضافه ممکن است به بخشی از حافظه جنبی که توسط سیستم عامل برای این کار استفاده می شود حافظه مجازی(Virtual Memory) می گویند. دقت کنید در مواردی که خود ما با حافظه جانبی کار می کنیم این بهینه سازی صور نمی گیرد و فقط وقتی از سیستم عامل برای اختصاص جانبی کار می کنیم این بهینه سازی صورت نمی گیرد و فقط وقتی از سیستم عامل برای اختصاص حافظه استفاده شود این بهینه سازی خود به خودی انجام می شود، نهایتاً لازم به ذکر است که به علت اینکه تنها نوع حافظه که در هنگام قطع برق ( خاموشی دستگاه ) کماکان داده هایش حفظ می شود حافظه های جانبی اند بالاجبار همواره مورد نیازند.

  امتیاز: 4.74     
برای پاسخ دادن به این ارسال باید از صفحه قبلی اقدام کنید.   کاربر offline سعید صدری 3 ستاره ها ارسال ها: 270   در :  چهارشنبه 13 اردیبهشت 1385 [17:37 ]
  آموزش برنامه نويسي 9
 

برای مشاهده ی این صفحه در فرمت pdf به آدرس http://olympiad.roshd.ir/computer/content/pdf/0181.pdf مراجعه کنید


ورودی و خروجی :
مساله ای که تا کنون به آن به درستی پرداخته نشده نحوه ارتباط ما با دستگاه رایانه است. به عبارت دیگر چگونه داده ها و برنامه ها را وارد حافظه می کنیم و چگونه نتیجه اجرای برنامه و حل مساله داده شده به رایانه را مشاهده می کنیم؟
هر چند این بخش از کار حل مساله در الگوریتم نویسی از اهمیت خاصی برخودار نیست ولی در تعیین سرعت اجرای برنامه نقش به سزایی دارد.
برای دریافت داده از کاربر ( به عبارت دیگر ورود داده به حافظه ) از ابزارهای همچون صفحه کلید ، موشواره و .... استفاده می شود و برای نمایش خروجی نمایشگر یا چاپگر ابزار رایجند.
البته هدف این بخش نام بردن از این ابزارها نیست. حتماً و بالاجبار در حین کار با رایانه با این ابزار آشنا خواهید شد لذا بررسی چگونگی اثر ورودی و خروجی در سرعت اجرای برنامه هدف اصلی این بخش است.
کندترین دستورات اجرایی در کار با رایانه دستورات ورود و خروجند، کلاً دستوراتِ I/O یا (Input/Output) چه روی ابزار نام برده و چه روی دستگاههای دیگری که ما اثر روی آنها را نمی بینیم سرعت پایینی دارند. این تفاوت سرعت به اندازه ای است که در مقایسه لازم نیست بقیه انواع دستورات را طبقه بندی کنیم.
همچنین چه زمان و در چه حالتی دستور ورودی و خروجی می دهیم بر سرعت اجرای دستور ورود و خروج موثر است. بررسی این نکته می تواند در بالا بردن سرعت اجرای برنامه موثر باشد.
البته در محیط برنامه نویسی Delphi که برای Windows طراحی شده این نکات خیلی موثر نیستند زیرا خروجی و ورودی بواسطه ` جهازگردان ` ( برنامه های آماده شده توسط شرکت سازنده ) انجام می گیرد و معمولاً نزدیک به بهترین سرعت ممکن است.
با این وجود حتی در Windows هم درست نمایش دادن خروجی می تواند در سرعت برنامه موثر باشد، به اشاره به چند مورد بسنده می کنیم. البته اهمیت این نکات در هنگام نوشتن برنامه مشخص خواهد شد ولی به علت ارتباط به موضوع در اینجا بیان می شود. در دفعات نمایش خروجی برنامه زیاده روی نکنید. مثلاً اگر خروجی که می خواهید نمایش دهید در یک ثانیه بیش از 15 بار تغییر کند نمایش 15 نمونه خروجی کافی است. این نحوه نمایش حداقل دو مزیت دارد، اول اینکه وقت کمتری صرف نمایش خروجی می شود و در عین حال برای چشم انسان تاثیر به سزایی ندارد که بیش از 15 تصویر در ثانیه ببینید و عملاً بیش از 24 تصویر قابل تشخیص نخواهد بود. دوم اینکه وقتی فرکانس نمایش تصویر از حدی بیشتر می شود ( مثلاً همین 15 تصویر در ثانیه ) به علت عدم تطابق زمانی شروع ` بازسازی ` تصویر روی مانیتور و شروع دستور خروجی داده شده حالت ` چشمک زدن ` در تصویر دیده می شود و این امر خود باعث کاهش شدید سرعت اجرای دستورات خروجی می شود.
به عنوان مثال در این مورد می توان به نمایش درصد پیشرفت یک عملیات اشاره کرد. برای جلوگیری از نمایش بیشتر از 15 تصویر در 15/1 ثانیه یک زمان سنج در نظر بگیرید که از آغاز هر نمایش خروجی ثانیه بشمارد و تا شمارش آن تمام نشده خروجی دیگری نمایش ندهید. در ` به روز رسانی ` کردن محتویات صفحه دقت کنید حداقل مستطیلی از صفحه که نیاز به ` به روز رسانی دارد ` را یافته و فقط آنرا تغییر دهید. هر چه محدوده ای از صفحه که تغییر در آن ایجاد می کنید کوچکتر باشد سرعت دستور خروجی بیشتر خواهد بود.
مثلاً وقتی که نمودار میله ای را نمایش می دهید و مثلاً در محتویات داده ها فقط چند داده تغییر کرده، در نمایش هم فقط همان چند نمونه را تغییر می دهیم و تمامی نمودار را از نو رسم نمی کنیم.
در مجموع برای سرعت بخشیدن به برنامه خود در نوشتن دستورات ورودی و خروجی دقت لازم را داشته باشید.

  امتیاز: 0.00     
برای پاسخ دادن به این ارسال باید از صفحه قبلی اقدام کنید.   کاربر offline سعید صدری 3 ستاره ها ارسال ها: 270   در :  چهارشنبه 13 اردیبهشت 1385 [17:44 ]
  آموزش برنامه نویسی 10
 

برای مشاهده ی این صفحه در فرمت pdf به آدرس http://olympiad.roshd.ir/computer/content/pdf/0182.pdf مراجعه کنید


برنامه نویسی پیمانه ای :
در ابتدای این فصل به الگوریتم و نحوه نوشتن و طرح راه حلهای رایانه ای برای حل مسائل اشاره شد ولی در هنگام مواجهه با حل مسایل به این روشها دیده می شود که با افزایش حجم مساله سختی کار بصورت نمایی زیاد می شود و عملاً نوشتن یک الگوریتم جزیی برای کل حل مساله غیر ممکن می شود.
در اینجاست که نیاز به تدوین روش برای مقابله با این مشکل احساس می شود. البته ناگفته نماند که مشابه این مشکل وقتی پیش می آید که چند نفر و بصورت مشترک بخواهند یک راه حل برای مساله طرح کنند تا روند حل مساله ساده تر شود.
روش برنامه نویسی ` پیمانه ای ` به این صورت است که کل حل مساله به بخشهای کوچکتر %u2013که درعین حال خود مساله های دیگری هستند که باید بصورت جزیی حل می شوند %u2013 تقسیم می شود هر بخش با صورت مساله خود ( که کوچکتر از مساله اصلی است ) جداگانه حل می شود و در نهایت این حلها با هم ادغام شده و کل حل مساله را تشکیل می دهند.
اگر حل کل مساله را برنامه بنامیم هر بخش کوچکتر دارای حلی است که به آن ` زیر برنامه ` گفته می شود.
به روند تقسیم کردن مسایل بزرگ به چندین زیر مساله و حل جداگانه هر کدام و ادغام این زیر برنامه ها برنامه نویسی ` پیمانه ای ` گویند.
حال که اصل و مبدا این روش گفته شد می توان به مزایا و معایب استفاده از این روش پرداخت مسلماً یکی از مزایای این روش ممکن شدن پیاده سازی بسیاری از راه حلهاست که بصورت یک الگوریتم کلی آنقدر دشوارند که عملاً غیر ممکن هستند!
برنامه نویسی به روش ` پیمانه ای ` علاوه بر مورد گفته شده دارای مزایای فرعی دیگری نیز هست بسیاری از اوقات مسایلی هستند که اگر در صورت آنها تغییراتی ایجاد کنیم راه حل عوض نمی شود بلکه ورودیهای راه حل عوض می شود. مثلاً انتگرال معین یک تابع خاص را در نظر بگیرید که در حل یک مساله چندین بار ولی با حدود متفاوت استفاده شده است.
در چنین مواردی با استفاده از روش پیمانه ای می توان فقط یکبار انتگرال را حل کرد و سپس با قرار دادن حدود متفاوت از یک بار حل در چند بخش حل کلی استفاده کرد. این امر هم کار حل مسایل کلی را ساده تر می کند و هم حجم فضای مورد نیاز برنامه را کاهش می دهد.
بسیاری اوقات راه حلهای بهینه برای مسایل بدست می آید اگر هر زیر بخش حل مساله بهینه باشد. یعنی با فرض طرح زیر برنامه هایی با بهترین مشخصات ممکن می توان بهترین برنامه را نوشت. هر چند بهینه کردن حداکثر موارد ممکن نیست ولی تقریبی از بهینه را می توان در نظر گرفت. این واقعیت منجر می شود به این که روش طراحی یک برنامه کلی نوشته شود و در آن حداکثر تلاش برای بهتر نوشتن کل حل انجام گیرد سپس هر گاه راه حلهای بهتری برای زیر مساله های خاص یافتیم آنها را جایگزین می کنیم و برنامه را بهبود می بخشیم. به عنوان مثال برنامه اصلاح کیفیت یک ` عکس ` را در نظر بگیرید که نیاز به یک سری محاسبه انتگرالی دارد. ما اصل راه حل را بر فرض آنکه زیر برنامه محاسبات مذکور به درستی نوشته شده طرح می کنیم و سپس زیر مساله محاسبه انتگرال را حل می کنیم. هر گاه روش جدیدی برای محاسبه انتگرالها یافتیم بهتر بود کافیست همین بخش جایگزین گردد تا کل برنامه بهتر شود. به عبارت دیگر بهتر کردن برنامه امکان پذیرتر! است.
و بالاخره در مورد این روش باید گفت وقتی به صورت پیمانه ای می اندیشید این امکان بوجود می آید که بر حسب انتخاب کاربر انواع متفاوتی از حل مساله اتفاق بیفتد. برای روشن تر شدن مطلب یک مثال عملی می زنیم:
یک مساله مهم در امر پردازش بدست آوردن مولفه های فرکانسی موج ورودی است. برای این کار دو روش وجود دارد یکی محاسبه مستقیم DFT و دیگری استفاده از الگوریتم FFT . بر حسب اینکه چند مولفه فرکانسی از موج ورودی را نیاز داریم این دو روش انتخاب می شوند یعنی بهتر بودن این دو الگوریتم وابسته به تعداد المانهای فرکانسی مورد نیاز است. با استفاده از روش پیمانه ای می توان به سادگی برنامه را نوشت و فقط در مورد هر صورت مساله با توجه به تعداد المانهای مورد نیاز از زیر برنامه مناسب استفاده کرد. البته شاید این مثال خیلی آشکار نباشد و لذا برای توضیح بیشتر بعدا که در مورد زیر برنامه ها بصورت اختصاصی Delphi سخن خواهیم گفت صبر کنید.
پیمانه اندیشیدن علاوه بر برنامه نویسی رایانه کمک شایان توجهی به انجام کارهای خود ما خواهد کرد. مشابه الگوریتم که علاوه بر کاربرد در دنیای رایانه به کارکرد ما هم در کارهای بزرگ کمک می کند پیمانه ای اندیشیدن به معنای تقسیم کار به بخشهای کوچکتر هم بسیاری از کارهای سخت را برای ما ممکن می نماید.

  امتیاز: 0.00     
برای پاسخ دادن به این ارسال باید از صفحه قبلی اقدام کنید.   کاربر offline مریم اعتصامی 3 ستاره ها ارسال ها: 441   در :  دوشنبه 25 اردیبهشت 1385 [15:25 ]
  یک پیشنهاد
 

سلام
خیلی خوبه که دارید توی انجمن این کارا رو میکنید ولی دوست عزیز به نظر من اگر تا به حال هیچ زبان برنامه نویسی یاد نگرفته ای
یکی از زبان های vb script یا c را یاد بگیری بهتره!
فقط یک پیشنهاد بود
بای!!!

  امتیاز: 0.00     
برای پاسخ دادن به این ارسال باید از صفحه قبلی اقدام کنید.   کاربر offline سعید صدری 3 ستاره ها ارسال ها: 270   در :  پنج شنبه 28 اردیبهشت 1385 [15:08 ]
  آموزش برنامه نویسی 11
 

برای مشاهده‌ی این صفحه در فرمت pdf به آدرس http://olympiad.roshd.ir/computer/content/pdf/0183.pdf مراجعه کنید


در بخش قبل ` پیمانه ای ` برنامه نوشتن توضیح داده شد، برای آنکه گام فراتر نهیم و باز هم نوشتن برنامه ها ساده تر شود علاوه بر آن مزایا دیگری در برنامه نویسی بدست می آوریم می توانیم شی‌گرا بیندیشیم و برنامه بنویسیم. احتمالاً این بخش خیلی واضح نخواهد بود برای روشن تر شدن بحث باید تا 6-6 صبر کنید در این طرز تفکر علاوه بر آنکه کار به بخشهای کوچکتر تقسیم می شود، به هر بخش کار بصورت یک شی (موجودیت ) نگریسته می شود، به این معنی که هر بخش کار همچون موجودیت هایی که با آنها در زندگی روزمره سرو کار داریم خواصی دارند و افعالی مثلاً یک چرخ گوشت وزن و جرم و ... ( خواص ) دارد و گوشت را خرده خرده می کند ( افعال ). این طرز تفکر باعث می شود که به سادگی برخوردهای روزمره با اجزای کوچک برنامه ( تفکیک های انجام شده ) کار کنیم یعنی نتیجه مورد نظر خود را از تعامل چند موجودیت بدست آوریم.
از توصیف فلسفی بالا که بگذریم بصورت ساده می توان گفت در روش شیئی گرا علاوه بر تفکیک راه حل کلی به بخشهای کوچک خود این بخشها را طبقه بندی کرده و به هر طبقه نامی می دهیم این کار باعث جلوگیری از مخلوط شدن اسامی، زیربرنامه ها و کلا ساده تر شدن برنامه نویسی می گردد.
احتمالاً بسیاری از شما فیلم های سه گانه ماتریکس را دیده اید. ایده این فیلم هم دقیقاً منطبق بر شیئی گرایی است شیئی که زمین شبیه سازی می کند، شیئی که درختها را مدیریت می کند و ...
ایده این فیلم هم دقیقاً منطبق بر شیئی گرایی است شیئی که زمین را شبیه سازی می کند، شیئی که درختها را مدیریت می کند و ... با تصور برنامه بودن هر کدام از این اشیا عملاً یک برنامه شیئی گرا را تصور کرده اید. با این متد در تجرید انواع داده ( یعنی تولید یک ساختار داده ذهنی جدید ) هم پیشرفت شایان ذکری ایجاد شده است.
این نوع برنامه نویسی هم برخی کارها را ممکن کرده است که سابقاً بسیار مشکل قابل انجام بود. امروزه مسایلی نظیر تعامل موجودات زنده تک سلولی در محیطی خاص را هم می توان با روش شیئی گرایی شبیه سازی کرد. بدین صورت که یک شیئی محیط و یک شیئی تک سلولی با تمام مشخصات و افعالشان طرح می شود سپس چند نمونه از شیئی تک سلولی و یک نمونه از شیئی محیط زیست ایجاد شده و ادامه برنامه اجرا می شود و اتفاقی که در اثر سالها تعامل تک سلولیها قرار است اتفاق بیفتد پس از چند ساعت اجرای برنامه پیش بینی می شود. کلاً شبیه‌سازیهای پیچیده با این روش راحت تر قابل انجام است.
نحوه پیاده سازی این روش و اصولاً نحوه کار زبان های سطح بالا را توضیح دادن از حوصله این متن بیرون است و لذا فقط نکات کلیدی روشها و مفاهیم که احتمالاً کاربرد آنها وجود بیان می شود.
از دیگری مزایای شیئی گرایی ارث بری است بدین معنا که در نوشتن برنامه و طراحی اشیاء متفاوتی که بخش قابل توجهی در اشتراک دارند می توان بخش مشترک را در یک کلاس والد نوشت و اشیاء متفاوت نام برده را از آن به ارث برد، به این ترتیب بخش مشترک فقط یک بار پیاده سازی می شود و حجم کار کاهش می یابد، مسلما اشیا به ارث برده شده تمامی خصوصیات شیء والد و افعال آن را دارند.
مقوله ارث بری و سایر مشخصات شیئی گرای فوائد زیاد دیگری دارند که به علت کاربرد کم این مفاهیم در برنامه نویسی در المپیاد از ذکر آنها صرف نظر می کنیم.

  امتیاز: 0.00     
برای پاسخ دادن به این ارسال باید از صفحه قبلی اقدام کنید.   کاربر offline سعید صدری 3 ستاره ها ارسال ها: 270   در :  پنج شنبه 28 اردیبهشت 1385 [15:34 ]
  آموزش برنامه‌نویسی 12
 

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

تصویر تصویر
ساختار 1
ساختار 2


حال به تفصیل به بخشهای متفاوت آن می پردازیم. در ابتدا یک تقسیم بندی که درفصل اول به آن اشاره نشد ذکر می کنیم. برنامه های نوشته شده در Delphi دو نوع فایل دارند. یکی فایل پروژه که بصورت ساختار 1 است و دیگری فایلهای کتابخانه ای که به ساختار 2 هستند.
این تقسیم بندی برای طبقه بندی و جداسازی متن برنامه نوشته شده است.
به خاطر داشته باشید که از این به بعد از نام ` کد ` برای بیان متن برنامه استفاده خواهیم کرد.
معمولاً یک پروژه برنامه Delphi حداقل شامل یک فایل پروژه ( اجباری ) و یک کتابخانه ( اختیاری ) است که در کتابخانه کدهای لازم برای نمایش یک پنجره و در پروژه مقدمات اجرای برنامه تحت ویندوز نوشته می شود در ابتدا که پروژه جدید ایجاد می کنید کدهای اولیه لازم برای هر دوی این فایلها بصورت خود کار نوشته شده است و قابل اجراست. در برنامه های دلفی به ازای هر پنجره که به آن Form گویند یک کتابخانه ایجاد خواهد شد. حال به توضیح جزئیات هر یک می پردازیم.

1. بخش 1 پروژه :

Program : در این بخش بجای اسم برنامه خط را بنویسید نوشتن کل این بخش اختیاری است و فقط جهت تفکیک محتوا بکار می آید و به نوعی یک توضیح است.
Uses : در این بخش کتابخانه هایی را که استفاده کرده اید می نویسید، معمولاً این بخش توسط خود Delphi در حین افزودن کتابخانه اضافه می شود و نیازی به تغییرات دستی ندارد هر چند گاهی اوقات ممکن است این کار را انجام دهید.
Subroutines: در این بخش زیر برنامه های احتمالی نوشته می شود.
const : در این بخش ثابت های مورد استفاده در برنامه را تعریف می کنید.ثوابت در برنامه بدین علت استفاده می شوند که بجای اعداد عبارات با مفهوم نوشته شود و لذا فهم آن آسانتر باشد علاوه بر آنکه تصحیح برنامه به میزان زیادی ساده می شود.
var: در این بخش متغیرهای مورد استفاده در برنامه تعریف می شوند. متغیرها در واقع مکانهایی از حافظه هستند که به شکل خاصی با آنها برخورد می شود مثلاً محتوای آنها مانند عدد برخورد می شود یا بصورت متن یا هر چیز دیگر.
Program body //: این بخش بدنه برنامه است که متن مقداردهی اولیه و بقیه موارد لازم جهت شروع برنامه ویندوز در آن نوشته شده در تغییر دادن این بخش باید دقت کنید. هیچکدام از دستورات موجود را حذف نکنید. معمولاً نیازی به تغییر این بخش دیده نمی شود ولی جهت آشنایی دستورات موجود توضیح داده می شود. از آنجا که برنامه نویسی تحت Windows مورد بحث ما نیست به راحتی می توانید این بخش را کنار گذاشته ( بخش Program body را ) و عنوان بعدی را مطالعه کنید.
در برنامه نویسی Windows معمولاً روال بر پردازش پیغام های رسیده از سیستم عامل است به این صورت که ابتدا پنجره های مورد نیاز ایجاد می شود و سپس برنامه در یک حلقه قرار می گیرد که پیغام های رسیده از سیستم عامل را پردازش و مدیریت می کند بصورت خلاصه Application CreatForm همان بخش ایجاد پنجره هاست که در عین حال اولین پنجره ایجاد شده را هم پنجره اصلی برنامه قرار می دهد و به این وسیله باعث می شود بستن این پنجره کل برنامه را متوقف کند.Application .run هم بخش حلقه ذکر شده است که در آن پیغام ها پردازش می شود. این پیغام ها محتویاتی از قبیل اینکه کلیدی توسط کاربر زاده شده، موشواره حرکت کرده و یا کلیک شده و ... است.
بنابراین می توانید با تغییر این بخش اجرای برنامه را منوط به مساله خاصی کنید و یا اصولاً پنجره قرار ندهید و بدون قرار گرفتن در حلقه برنامه را اجرا کنید هر چند اصلاً توصیه چنین کاری نمی شود.

2. بخش 2 کتابخانه

Unit: بجای اسم کتابخانه را بنویسید، این نام اجباری است و در فایلهای دیگر این نام استفاده می شود.
این نام در بخش Uses دیگر فایلهای می آید.
کلمه Interface یک کلمه اجباری است و دقیقاً در همان جا که ذکر شده باید قرار گیرد.
Uses : دقیقاً مشابه همان عبارت Uses در پروژه فایلهای کتابخانه دیگری را ضمیمه این کتابخانه می کند تا بتوان از آنها در این کتابخانه استفاده کرد. به تدریج که با برنامه کار کنید علت این امر روشن خواهد شد.
const : بخش تعریف ثوابت این ثوابت در فایلهایی که از کتابخانه استفاده کنند تعریف شده خواهد بود.
var : بخش تعریف متغیرها: این متغیرها در فایلهایی که از کتابخانه استفاده کنند تعریف شده خواهد بود.
SubroutineDeclarations// : در این بخش تعریف زیر برنامه ها می آید.
کلمه Implemention هم اجباری است. پس از این کلمه هم می توان uses,const,var تعریف کرد ولی آن دسته از ثوابت و متغیرها که در این جا تعریف شوند در فایلهایی که از کتابخانه استفاده می کنند تعریف شده نخواهند بود به عبارت دیگر محلی اند.
Subroutine & Clans lmp// : در این بخش متن زیر برنامه ها و کلاسهای تعریف شده قرار دارد. منظور از پیاده سازی کلاس پیاده سازی توابع کلاسها ( در Delphi به اشیا Class و به نمونه از شیئی Object گفته می شود ) همان متن زیر برنامه های درون کلاسها و همچنین destructor,Constructor احتمالی است که اگر با شیئی گرایی‌آشنا ندارید نیاز به توجه به این فایلها نیست.
Intialization Codes//: این بخش مقدار دهی های اولیه برای متغیرهای محلی و عمومی کتابخانه انجام می شود. که معمولاً نیازی به نوشتن این بخش هم نیست البته اگر این کدها را نخواستید فقط begin را حذف کنید! پیش فرض کتابخانه در Delphi فاقد مقدار دهی اولیه است لذا در واقع اگر بخواهید اینها وجود داشته باشد باید begin را قرار دهید.

  امتیاز: 0.00    نمایش یاسخ های این پست  
برای پاسخ دادن به این ارسال باید از صفحه قبلی اقدام کنید.   ناشناس   در :  پنج شنبه 11 خرداد 1385 [18:04 ]
  !!!!توجه بسیار مهم!!!!
 

من الان برنامه نویس یک شرکت هستم برای همتون هم آرزوی موفقیت دارم و این هم راهیه که خودم طی کردم اما یک توصیه جدی:exclaimexclaim
آقا جون شما که می خواین Delphi یاد بگیرین باید اول Qbasic رو در عرض یک ماه فول بشید بعدش برید سراغ توربو پاسکال (اگه بیسیک رو خوب استاد کرده باشید مشکلی نیست).بعدش یواش یواش با ویپوال بیسیک کار کنید بعد تازه برید سر Delphi
اینم یک سایت خوب واقعا مثل اسمش بهشته) [http://www.programmersheaven.com|]
بعدشم به من ربطی نداره ولی الگوریتم و فلوچارت به دردتون نمیخورهarrow
اگرم به کتابی نیاز داشتید به این سایت سر به زنید البته کتاباش انگلیسیه ولی مجانیهbiggrin.
[http://www.flazx.com|]

  امتیاز: 0.00    نمایش یاسخ های این پست  
برای پاسخ دادن به این ارسال باید از صفحه قبلی اقدام کنید.   ناشناس   در :  یکشنبه 26 شهریور 1385 [11:53 ]
  الگوریتم دوستان بخونن
 

سلام امروز می خوام یه الگوریتم ساده را از شما بخواهم.
الگوریتمی که بدون استفاده از شرط قدرمطلق بدست آورد ؟
راستی هرکی جواب داد لطفا به آیدی من ferinefast2@yahoo.com ایمیل بزنه ؟!
راستی جایزه اش هم محفوظه !!! wink mrgreen
!! حمید !!

  امتیاز: 0.00     
برای پاسخ دادن به این ارسال باید از صفحه قبلی اقدام کنید.   ناشناس   در :  چهارشنبه 29 شهریور 1385 [12:07 ]
  چه برنامه ای؟
 

چه برنامه ای؟ یکم بیشتر توضیح بدید. در مورد خودش و زبانش

  امتیاز: 0.00     
برای پاسخ دادن به این ارسال باید از صفحه قبلی اقدام کنید.   ناشناس   در :  پنج شنبه 06 مهر 1385 [11:54 ]
  پروژه ی تحقیقاتی
 

biggrinسلام من مریم علیپور دانش اموز سوم رشته کامپیوتر هستم .راستش معلم کارافرینیمون یک پروژه در مورد رشتمون و مشاغل اون به ما داده وتا شنبه هفته اینده باید تحویل بدیم . میخواستم اگه ممکنه منو در این پروژه کمک کنید و هر چه اطلاعات در این زمینه دارید به این ادرس ایمیل ارسال کنید www.maryam_alipoor2003@yahoo.com خیلی ممنونwink

  امتیاز: 0.00    نمایش یاسخ های این پست  
برای پاسخ دادن به این ارسال باید از صفحه قبلی اقدام کنید.   ناشناس   در :  چهارشنبه 02 اسفند 1385 [07:15 ]
  پارس لوگو
 

دوست عزیز شما می تونین از نرم افزار پارس لوگو که به تازگی منتشر شده استفاده کنین تا با ساختار برنامه نویسی پله پله آشنا بشین.
برای تهیه با دفتر مرکزی تماس بگیرین 66659291 تا 5

  امتیاز: 0.00     
برای پاسخ دادن به این ارسال باید از صفحه قبلی اقدام کنید.   ناشناس   در :  چهارشنبه 08 فروردین 1386 [08:25 ]
  الگوریتم
 

سلام دوست عزیز . شما برای یاد گفتن الگوریتم وفلوچارت میتوانید به کتابهای `مهندس جعفرنژاد قمی`مراجعه کنید در ضمن اگر سوالی دراین زمینه داشتید میتوانید به سایت`finalist.4t.com`رجوع کرده و سوالات خود را در باکس مربوطه بنویسیددر اولین فرصت جواب شما دوست گرامی راخواهم داد.البته ایم سایت فعلا در حال بار گذاری می باشد ولی به امید خدا تا چند روز آینده فعال می گردد.ایمیل من هم`final4u@yahoo.com`می باشد.خوشحال می شوم در خدمت دوست دارارن علم کامپیوتر باشم.

  امتیاز: 0.00     
برای پاسخ دادن به این ارسال باید از صفحه قبلی اقدام کنید.   کاربر offline زینب معزی 3 ستاره ها ارسال ها: 407   در :  چهارشنبه 03 مرداد 1386 [07:35 ]
  آموزش html
 

سلام بچه ها!wink
خوبین؟
من امروز براتون فایلی رو برای دانلود میذارم که شاید خیلی از شما ها مدتها دنبالش بودین.
آموزش html اونم به زبان فارسی.
یه فایل word هست که با فرمت doc میذارم تا همه بچه هایی که هنوز office 2003 دارن هم بتونن ازش استفاده کنن.
اما توصیه میکنم که نذارین زیاد به طول بینجامه.
از بحث خودمون خارج نشیم.
احتمالا اگه تنبلی نکنین و دستورهایی که گفته شده رو توی یه notepad با فرمت html بنویسین و save کنین، حتما میتونین صفحات وب رو طراحی کنین.
البته میشه این کار ها رو با نرم افزار dremweaver هم انجام داد که منکر آسون شدن کار نمیشم.
اما اگه این نرم افزار رو ندارین هم آسمون به زمین نیومده.
با همون notepad ساده هم میشه.
اینم لینک دانلودش:
آموزش html
موفق و پیروز باشین.wink

  امتیاز: 0.00    نمایش یاسخ های این پست  
برای پاسخ دادن به این ارسال باید از صفحه قبلی اقدام کنید.   ناشناس   در :  یکشنبه 28 مرداد 1386 [07:08 ]
  آموزش asp.net
 

آموزش گام به گام asp.net در وبلاگ http://kiaei.blogfa.com/

  امتیاز: 0.00     
برای پاسخ دادن به این ارسال باید از صفحه قبلی اقدام کنید.   ناشناس   در :  جمعه 24 خرداد 1387 [11:04 ]
  شروع با ویژوال بیسیک
 

با سلام دوست عزیز اگر میخوای برنامه نویسی رو به خوبی یاد بگیری باید از ابتدا و با منطق این کار رو بکنی و اگر ابه صورت موضوعی یک سری کد رو حفظ کنی که هر کدوم کار خاصی رو انجام میدند به نتیجه ای نمیرسی برای همین میتونی از زبان ویژوال بیسیک که یک زبان ساده ، کاملا منطقی و با قدرت بسیار بالاست استفاده کنی. هم اکنون نسخه 2008 این برنامه در بازار موجوده و از Express Edition هم باید استفاده کنی که مخصوص کاربران تازه کاره ضمنا این که چطور اموزش بینی مهمه به نظر من بهترین منبع منبع ماکروسافته که در خود برنامه صفحه اول موجوده (به شرطی که msdn رو هنگام نصب برنامه نصب کرده باشی ) میتونی با کلیک رو ی learn vb آموزش رو شروع کنی این آموزش به زبان انگلیسی خیلی ساده نوشته شده و به راحتی قادر به درک اون هستی اگر هم مشکلی داشته یک دیکشنری مثل نارسیس یا فرهنگ معاصر رو نصب کن تا مشکلت تو ترجمه متن حل بشه. یه مورد دیگه اینکه برنامه های ریاضی و شبه کد ها برای شروع برنامه نویسی بسیار مناسبند. میتونی برای شبه کدها از کتابهای فنی و کاردانش یا کتاب مبانی سال سوم ریاضی استفاده کنی ولی توصیه میکنم که برای آموزش از کتابهای فنی استفاده نکنی چون ویژوال 6 رو آموزش میدند و این نسخه اصلا با نسخه 2008 قابل قیاص نیست بسیار سخت تر و کارایی بسیار کمتری داره. امیدوارم که موفق باشی

  امتیاز: 0.00