// This Program Computes the Area of a Circle
#include
void main() {
int radius ;
float area;
printf("please enter radius : ");
scanf("%d",&radius);
area = 2 * 3.14 * radius;
printf("Area is %f",area);
{
please enter radius : 10
Area is 62.8
درمورد برنامه فوق به نکات زیر توجه کنید :
- خط اول یک توضیح درمورد برنامه است. در زبان C برای توضیحات یک خطی از علامت // استفاده می گردد. اما چنانچه توضیحات بیش از یک خط بود،- آن را با علامت /* شروع کرده و با */ پایان دهید. کامپایلر از این توضیحات صرفنظر خواهد کرد. این توضیحات باعث می شوند که برنامه شما خواناتر شده و دیگران بهتر آن را درک کنند.
- هر دستوری که با علامت # شروع شود،- یک دستور C نیست،- بلکه جزو دستورات پیش پردازنده محسوب می گردد. دستورات پیش پردازنده،- دستوراتی هستند که توسط کامپایلر قبل از شروع به کامپایل انجام می شوند. بعنوان مثال دستور #include باعث می شود که تعاریف اولیه مربوط به توابعی (زیربرنامه هایی) که قصد استفاده از آنها را داریم به برنامه اضافه شود. در مثال بالا برای استفاده از توابع printf و scanf که در کتابخانه استاندارد C تعریف شده اند،- فایل سرآمد stdio.h را که این توابع در آن تعریف شده اند را استفاده کرده ایم.
- هر برنامه C باید دارای تابعی به نام main باشد که اجرای برنامه از آن شروع می شود و در حقیقت همان برنامه اصلی است. البته می توان هر تعداد دیگری تابع (زیربرنامه) نیز تعریف کرد،- اما وجود تابع main الزامی است. دقت کنید که گرچه این تابع پارامتر ورودی ندارد،- اما از پرانتز باز و بسته تنها استفاده شده است.
- در زبان C هر بلوک برنامه با علامت { آغاز شده و با } پایان می یابد. این دو معادل دستورات begin و end در زبانهای دیگر ازجمله پاسکال می باشند که برای سادگی زبان انتخاب شده اند.
- دو خط بعدی به تعریف متغیرهای radius و area می پردازد. در زبان C قبل از استفاده از هر متغیری باید آن را اعلان نمایید. اعلان متغیر شامل نام و نوع متغیر است. در مثال فوق،- متغیر radius از نوع عدد صحیح(integer) و متغیر area از نوع عدد اعشاری (float) تعریف شده اند.
- توابع printf و scanf جزو کتابخانه استاندارد C محسوب می گردند و به ترتیب برای چاپ اطلاعات در خروجی استاندارد (نمایشگر) و دریافت اطلاعات از ورودی استاندارد (صفحه کلید) استفاده می شوند. برای چاپ رشته مورد نظر باید آنها را در داخل علامت " قرار داد. درمورد این توابع بعداد توضیح خواهیم داد.
- دقت کنید که در پایان هر دستورالعمل از علامت ; استفاده شده است. در مجموع C یک زبان قالب آزاد است و شما می توانید دستورات را به هر نحوی که دوست دارید قرار دهید (مثلا چند دستور در یک خط از برنامه). تنها چیزی که نشاندهنده پایان یک دستور است،- علامت ; است(و نه انتهای خط).
- از آنجا که C یک زبان قالب آزاد است،- می توان با استفاده از مکان نوشتن دستورات شکل بهتری به برنامه داد. بعنوان مثال دقت کنید که پس از شروع تابع main،- دستورات حدود 3 کاراکتر جلوتر نوشته شده اند. به این نحوه نوشتن دستورات دندانه گذاری می گویند. بطور کلی هربار که بلوک جدیدی آغاز می شود،- باید آن را کمی جلوتر برد. این مسئله باعث جدا شدن بلوکها از یکدیگر و خوانایی بهتر برنامه می شود.
- در پایان برنامه و در داخل مستطیل خاکستری،- یک نمونه از اجرای برنامه که شامل یک ورودی و خروجی نمونه است،- آورده شده است.





حافظه مجازی چیست؟
حافظه مجازی یکی ازبخش های متداول در اکثر سیستم های عامل کامپیوترهای شخصی است . سیستم فوق با توجه به مزایای عمده، بسرعت متداول و با استقبال کاربران کامپیوتر مواجه شده است .
اکثر کامپیوترها در حال حاضر از حافظه های محدود با ظرفیت 64 ، 128 و یا 256 مگابایت استفاده می نمایند. حافظه موجود در اکثر کامپیوترها بمنظور اجرای چندین برنامه بصورت همزمان توسط کاربر ، پاسخگو نبوده و با کمبود حافظه مواجه خواهیم شد. مثلا" در صورتیکه کاربری بطور همزمان ، سیستم عامل ، یک واژه پرداز ، مرورگر وب و یک برنامه برای ارسال نامه الکترونیکی را فعال نماید ، 32 و یا 64 مگابایت حافظه، ظرفیت قابل قبولی نبوده و کاربران قادر به استفاده از خدمات ارائه شده توسط هر یک از نرم افزارهای فوق نخواهند بود. یکی از راهکارهای غلبه بر مشکل فوق افزایش و ارتقای حافظه موجود است . با ارتقای حافظه و افزایش آن ممکن است مشکل فوق در محدوده ای دیگر مجددا" بروز نماید. یکی دیگر از راهکارهای موجود در این زمینه ، استفاده از حافظه مجازی است
در تکنولوژی حافظه مجازی از حافظه های جانبی ارزان قیمت نظیر هارد دیسک استفاده می گردد. در چنین حالتی اطلاعات موجود در حافظه اصلی که کمتر مورد استفاده قرار گرفته اند ، از حافظه خارج و در محلی خاص بر روی هارد دیسک ذخیره می گردند. بدین ترتیب بخش ی از حافظه اصلی آزاد و زمینه استقرار یک برنامه جدید در حافظه فراهم خواهد شد. عملیات ارسال اطلاعات از حافظه اصلی بر روی هارد دیسک بصورت خودکار انجام می گیرد.
سرعت خواندن و نوشتن اطلاعات بر روی هارد دیسک بمراتب کندتر از حافظه اصلی کامپیوتر است . در صورتیکه سیستم مورد نظر دارای عملیاتی حجیم در رابطه با حافظه مجازی باشد ، کارآئی سیستم بشدت تحت تاثیر قرار خواهد گرفت . در چنین مواردی لازم است که نسبت به افزایش حافظه موجود در سیستم ، اقدام گردد. در مواردی که سیستم عامل مجبور به جابجائی اطلاعات موجود بین حافظه اصلی و حافظه مجازی باشد ( هارد دیسک ) ، باتوجه به تفاوت محسوس سرعت بین آنها ، مدت زمان زیادی صرف عملیات جایگزینی می گردد. در چنین حالتی سرعت سیستم بشدت افت کرده و عملا" در برخی حالات غیرقابل استفاده می گردد.
محل نگهداری اطلاعات بر روی هارد دیسک را یک Page file می گویند. در فایل فوق ، صفحات مربوط به حافظه اصلی ذخیره و سیستم عامل در زمان مورد نظر اطلاعات فوق را مجددا" به حافظه اصلی منتقل خواهد کرد. در ماشین هائی که از سیستم عامل ویندوز استفاده می نمایند ، فایل فوق دارای انشعاب swp است .
ویندوز 98 دارای یک برنامه هوشمند برای مدیریت حافظه مجازی است . در زمان نصب ویندوز ، پیکربندی و تنظیمات پیش فرض برای مدیریت حافظه مجازی انجام خواهد شد. تنظیمات انجام شده در اغلب موارد پاسخگو بوده و نیازی به تغییر آنها وجود نخواهد داشت . در برخی موارد لازم است که پیکربندی مدیریت حافظه مجازی بصورت دستی انجام گیرد. برای انجام این کار در ویندوز 98 ، گزینه System را از طریق Control panel انتخاب و در ادامه گزینه Performance را فعال نمائید. در بخش Advanced setting ، گزینه Virtual memory را انتخاب نمائید.
با نمایش پنجره مربوط به Virtual Memory ، گزینه "Let me specify my own virtual memory setting" را انتخاب تا زمینه مشخص نمودن مکان و طرفیت حداقل و حداکثر فایل مربوط به حافظه مجازی فراهم گردد..در فیلد Hard disk محل ذخیره نمودن فایل و درفیلد های دیگر حداقل و حداکثر ظرفیت فایل را بر حسب مگابایت مشخص نمائید. برای مشخص نمودن حداکثر فضای مورد نیاز حافظه مجازی می توان هر اندازه ای را مشخص نمود . تعریف اندازه ائی به میزان دو برابر حافظه اصلی کامپیوتر برای حداکثر میزان حافظه مجازی توصیه می گردد.
میزان حافظه موجود هارد دیسک که برای حافظه مجازی در نظر گرفته خواهد شد بسیار حائر اهمیت است . در صورتیکه فضای فوق بسیار ناچیز انتخاب گردد ، همواره با پیام خطائی مطابق "Out of Memory" ، مواجه خواهیم شد. پیشنهاد می گردد نسبت حافظه مجازی به حافظه اصلی دو به یک باشد. یعنی در صورتیکه حافظه اصلی موجود 16 مگابایت باشد ، حداکثر حافظه مجازی را 32 مگابایت در نظر گرفت .
یکی از روش هائی که بمنظور بهبود کارائی حافظه مجاری پیشنهاد شده است ، ( مخصوصا" در مواردیکه حجم بالائی از حافظه مجازی مورد نیاز باشد ) در نظر گرفتن ظرفیت یکسان برای حداقل و حداکثر انداره حافظه مجازی است . در چنین حالتی در زمان راه اندازی کامپیوتر، سیستم عامل تمام فضای مورد نیاز را اختصاص و در ادامه نیازی با افزایش آن همزمان با اجرای سایر برنامه ها نخواهد بود. در چنین حالتی کارآئی سیستم بهبود پیدا خواهد کرد .
یکی دیگر از فاکتورهای مهم در کارآئی حافظه مجازی ، محل فایل مربوط به حافظه مجازی است . در صورتیکه سیستم کامپیوتری دارای چندین هارد دیسک فیزیکی باشد ، ( منظور چندین درایو منظقی نیست ) می توان حجم عملیات مربوط به حافظه مجازی را بین هر یک از درایوهای فیزیکی موجود توزیع کرد. روش فوق در مواردیکه از حافظه مجازی در مقیاس بالائی استفاده می گردد ، کارآئی مطلوبی را بدنبال خواهد داشت.
این صفحه بخشی از کتاب یا مجموعه مطالبی را تشکیل میدهد. به ردیف آن در زیر عنوان اصلی توجه کنید. اگر به این بخش دسترسی دارید آنرا در اینجا قرار دهید و به گسترش ویکینَسک کمک کنید.

حافظه مجازي يكي ازبخش هاي متداول در اكثر سيستم هاي عامل كامپيوترهاي شخصي است . سيستم فوق با توجه به مزاياي عمده، به سرعت متداول شده و با استقبال كاربران كامپيوتر مواجه شده است .
اكثر كامپيوترها در حال حاضر از حافظه هاي محدود با ظرفيت 64 ، 128 و يا 256 مگابايت استفاده مي نمايند. حافظه موجود در اكثر كامپيوترها به منظور اجراي چندين برنامه بصورت همزمان توسط كاربر ، پاسخگو نبوده و با كمبود حافظه مواجه خواهيم شد. مثلا" در صورتيكه كاربري بطور همزمان ، سيستم عامل ، يك واژه پرداز ، مرورگر وب و يك برنامه براي ارسال نامه الكترونيكي را فعال نمايد ، 32 يا 64 مگابايت حافظه، ظرفيت قابل قبولي نبوده و كاربران قادر به استفاده از خدمات ارائه شده توسط هر يك از نرم افزارهاي فوق نخواهند بود. يكي از راهكارهاي غلبه بر مشكل فوق افزايش و ارتقاي حافظه موجود است . با ارتقاي حافظه و افزايش آن ممكن است مشكل فوق در محدوده اي ديگر مجددا" بروز نمايد. يكي ديگر از راهكارهاي موجود در اين زمينه ، استفاده از حافظه مجازي است .
در تكنولوژي حافظه مجازي از حافظه هاي جانبي ارزان قيمت نظير هارد ديسك استفاده مي گردد. در چنين حالتي اطلاعات موجود در حافظه اصلي كه كمتر مورد استفاده قرار گرفته اند ، از حافظه خارج و در محلي خاص بر روي هارد ديسك ذخيره مي گردند. بدين ترتيب بخشي از حافظه اصلي آزاد و زمينه استقرار يك برنامه جديد در حافظه فراهم خواهد شد. عمليات ارسال اطلاعات از حافظه اصلي بر روي هارد ديسك بصورت خودكار انجام مي گيرد.

مسئله سرعت
سرعت خواندن و نوشتن اطلاعات بر روي هارد ديسك به مراتب كندتر از حافظه اصلي كامپيوتر است . در صورتيكه سيستم مورد نظر داراي عملياتي حجيم در رابطه با حافظه مجازي باشد ، كارآئي سيستم به شدت تحت تاثير قرار خواهد گرفت . در چنين مواردي لازم است كه نسبت به افزايش حافظه موجود در سيستم ، اقدام گردد. در مواردي كه سيستم عامل مجبور به جابجائي اطلاعات موجود بين حافظه اصلي و حافظه مجازي باشد ( هارد ديسك ) ، باتوجه به تفاوت محسوس سرعت بين آنها ، مدت زمان زيادي صرف عمليات جايگزيني مي گردد. در چنين حالتي سرعت سيستم به شدت افت كرده و عملا" در برخي حالات غيرقابل استفاده مي گردد.
محل نگهداري اطلاعات بر روي هارد ديسك را يك Page file مي گويند. در فايل فوق ، صفحات مربوط به حافظه اصلي ذخيره و سيستم عامل در زمان مورد نظر اطلاعات فوق را مجددا" به حافظه اصلي منتقل خواهد كرد. در ماشين هائي كه از سيستم عامل ويندوز استفاده مي نمايند ، فايل فوق داراي انشعاب swp است .

پيكربندي حافظه مجازي
ويندوز 98 و XP داراي برنامه هوشمند مديريت حافظه مجازي هستند . در زمان نصب ويندوز ، پيكربندي و تنظيمات پيش فرض براي مديريت حافظه مجازي انجام خواهد شد. تنظيمات انجام شده در اغلب موارد پاسخگو بوده و نيازي به تغيير آنها وجود نخواهد داشت . در برخي موارد لازم است كه پيكربندي مديريت حافظه مجازي بصورت دستي انجام گيرد. براي انجام اين كار در ويندوز 98 ، گزينه System را از طريق Control panel انتخاب و در ادامه گزينه Performance را فعال نمائيد. در بخش Advanced setting ، گزينه memory Virtual را انتخاب نمائيد.
با نمايش پنجره مربوط به Memory Virtual ، گزينه "Let me specify my own virtual memory setting" را انتخاب تا زمينه مشخص نمودن مكان و ظرفيت حداقل و حداكثر فايل مربوط به حافظه مجازي فراهم گردد. در فيلد disk Hard محل ذخيره نمودن فايل و درفيلد هاي ديگر حداقل و حداكثر ظرفيت فايل را بر حسب مگابايت مشخص نمائيد. براي مشخص نمودن حداكثر فضاي مورد نياز حافظه مجازي مي توان هر اندازه اي را مشخص نمود . تعريف اندازه اي به ميزان دو برابر حافظه اصلي كامپيوتر(RAM) براي حداكثر ميزان حافظه مجازي توصيه مي گردد.
در ويندوز XP شما مي توانيد در ابتدا بر روي My Computer راست كليك كنيد و سپس گزينه Properties را انتخاب كنيد.
شكل xp_right_click_my_computer.jpg
سپس در پنجره Advanced و در قسمت Performance گزينه Setting را انتخاب كنيد.
شكل xp_system_properties.jpg
در پنجره اي كه نمايان مي شود مجدداً گزينه Advanced را انتخاب كرده و در اين صفحه نيز بر روي دكمه change كليك كنيد تا صفحه تنظيمات Virtual memory نمايان شود .
شكل xp_performance_options.jpg

در صورتي كه مي خواهيد درايوي غير از درايو پيش فرض كه معمولاً درايو C كامپيوتر است به عنوان درايو حافظه مجازي انتخاب شود بر روي نام آن كليك كرده و در قسمت پائين پنجره گزينه Custom size را انتخاب كنيد. و مقادير مورد نظر تان را در قسمت هاي Initial size و Maximum size وارد كنيد. سپس گزينه Set را براي ثبت اطلاعات انتخاب كنيد. در صورتي كه مي خواهيد درايو جاري شما كه از آن به عنوان حافظه مجازي استفاده مي كنيد غير فعال شود مي توانيد گزينه no paging file را انتخاب كرده و سپس دكمه Set را انتخاب كنيد.
xp_set_virtual_memory_system_managed.jpg
البته توجه داشته باشيد كه بايد يكي از درايو هاي ديگر را براي استفاده در اين قسمت تعيين كنيد . بهتر است براي دستيابي به سرعت بالاتر از درايوي استفاده كنيد كه فضاي خالي بيشتري در اختيار دارد.
xp_set_virtual_memory_manual.jpg

ميزان حافظه موجود هارد ديسك كه براي حافظه مجازي در نظر گرفته خواهد شد بسيار حائز اهميت است . در صورتيكه فضاي فوق بسيار ناچيز انتخاب گردد ، همواره با پيام خطائي مطابق "Out of Memory" ، مواجه خواهيم شد. پيشنهاد مي گردد نسبت حافظه مجازي به حافظه اصلي دو به يك باشد. يعني در صورتيكه حافظه اصلي موجود 16 مگابايت باشد ، حداكثر حافظه مجازي را 32 مگابايت در نظر گرفت .
يكي از روش هائي كه به منظور بهبود كارآيي حافظه مجازي پيشنهاد شده است ، ( مخصوصا" در موارديكه حجم بالائي از حافظه مجازي مورد نياز باشد ) در نظر گرفتن ظرفيت يكسان براي حداقل و حداكثر اندازه حافظه مجازي است . در چنين حالتي در زمان راه اندازي كامپيوتر، سيستم عامل تمام فضاي مورد نياز را اختصاص و در ادامه نيازي با افزايش آن همزمان با اجراي ساير برنامه ها نخواهد بود. در چنين حالتي كارآئي سيستم بهبود پيدا خواهد كرد .
يكي ديگر از فاكتورهاي مهم در كارآئي حافظه مجازي ، محل فايل مربوط به حافظه مجازي است . در صورتيكه سيستم كامپيوتري داراي چندين هارد ديسك فيزيكي باشد ، ( منظور چندين درايو منظقي نيست ) مي توان حجم عمليات مربوط به حافظه مجازي را بين هر يك از درايوهاي فيزيكي موجود توزيع كرد. روش فوق در موارديكه از حافظه مجازي در مقياس بالائي استفاده مي گردد ، كارآئي مطلوبي را بدنبال خواهد داشت .
دختران را بیحجابی ننگ بود
رنگ چادر بهتر از هر رنگ بود
یک سخن بود و هزاران مشتری![]()
آنهم از لوث قرائت ها بری
هدیه بر رقاصه ها واجب نبود
قدر عالم کمتر از مطب نبود
واه که در یال سیاه دوهزار
کار فرهنگی شده پخش نوار
ذهن اک نوجوانان محل
پر شده از فیلمهای مبتذل![]()
آدمیت کو؟دگر آدم کیست
آدم قرن تمدن برفیست
حرف حق گفتن عقب افتادگیست
پشت پا بر دین زدن آزادگیست
آخر ای پرده نشین فاطمه
تو برس به داد دین فاطمه![]()
در به روی فتنه جویان باز شد
دشمنی با نایبت آغاز شد
چون دل عشاق را در قید کرد خود نمایی کرد و دلها صید کرد
امتحانشان را ز روی سرخوشی پیش گیرد شیوه عاشق کشی
در بیابان جنونشان سردهد ره به کوی عقلشان کمتر دهد
دوست میدارد دل پر دردشان اشکهای سرخ و روی زردشان
چهره و موی غبارآلودشان مغز پر آتش ، دل پر دودشان
دل پریشانشان کند چون زلف خویش زآنکه عاشق را دلی باید پریش
خم کندشان قامت مانند تیر روی چون گلشان کند همچون زریریعنی این قامت