دانلود مقاله-تحقیق-پروژه-کارآموزی

مرجع کامل خرید و دانلود گزارش کار آموزی ، گزارشکار آزمایشگاه ، مقاله ، پروژه و پایان نامه های کلیه رشته های دانشگاهی

دانلود مقاله-تحقیق-پروژه-کارآموزی

مرجع کامل خرید و دانلود گزارش کار آموزی ، گزارشکار آزمایشگاه ، مقاله ، پروژه و پایان نامه های کلیه رشته های دانشگاهی

آشنائی با روتر

استفاده از روترها در شبکه به امری متداول تبدیل شده است یکی از دلایل مهم گسترش استفاده از روتر ، ضرورت اتصال یک شبکه به چندین شبکه دیگر (اینترنت و یا سایر سایت های از راه دور) در عصر حاضر است
دسته بندی کامپیوتر و IT
بازدید ها 23
فرمت فایل doc
حجم فایل 162 کیلو بایت
تعداد صفحات فایل 24
آشنائی با روتر

فروشنده فایل

کد کاربری 1024
کاربر

آشنائی با روتر

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

انواع روترها

روترها را می توان به دو گروه عمده سخت افزاری و نرم افزاری تقسیم نمود:

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

روترهای نرم افزاری: روترهای نرم افزاری دارای عملکردی مشابه با روترهای سخت افزاری بوده و مسئولیت اصلی آنان نیز ارسال داده از یک شبکه به شبکه دیگر است. یک روتر نرم افزاری می تواند یک سرویس دهنده NT، یک سرویس دهنده نت ور و یا یک سرویس دهنده لینوکس باشد. تمامی سیستم های عامل شبکه ای مطرح ،دارای قابلیت های روتینگ از قبل تعبیه شده می باشند.

در اکثر موارد از روترها به عنوان فایروال و یا gateway اینترنت، استفاده می گردد. در این رابطه لازم است به یکی از مهمترین تفاوت های موجود بین روترهای نرم افزاری و سخت افزاری، اشاره گردد: در اکثر موارد نمی توان یک روتر نرم افزاری را جایگزین یک روتر سخت افزاری نمود، چراکه روترهای سخت افزاری دارای سخت افزار لازم و از قبل تعبیه شده ای می باشند که به آنان امکان اتصال به یک لینک خاص WAN (از نوع Frame Relay، ISDN و یا ATM) را خواهد داد. یک روتر نرم افزاری (نظیر سرویس دهنده ویندوز) دارای تعدادی کارت شبکه است که هر یک از آنان به یک شبکه LAN متصل شده و سایر اتصالات به شبکه های WAN از طریق روترهای سخت افزاری، انجام خواهد شد .

مثال 1 : استفاده از روتر به منظور اتصال دو شبکه به یکدیگر و ارتباط به اینترنت
فرض کنید از یک روتر مطابق شکل زیر به منظور اتصال دو شبکه LAN به یکدیگر و اینترنت، استفاده شده است. زمانی که روتر داده ای را از طریق یک شبکه LAN و یا اینترنت دریافت می نماید، پس از بررسی آدرس مبداء و مقصد ، داده دریافتی را برای هر یک از شبکه ها و یا اینترنت ارسال می نماید. روتر استفاده شده در شکل زیر، شبکه را به دو بخش متفاوت تقسیم نموده است. (دو شبکه مجزاء). هر شبکه دارای یک هاب است که تمامی کامپیوترهای موجود در شبکه به آن متصل شده اند. علاوه بر موارد فوق، روتر استفاده شده دارای اینترفیس های لازم به منظور اتصال هر شبکه به آن بوده و از یک اینترفیس دیگر به منظور اتصال به اینترنت، استفاده می نماید. بدین ترتیب، روتر قادر است داده مورد نظر را به مقصد درست، ارسال نماید.


انتقال داده ها، شبکه های کامپیوتری و سیستم های توزیع شده

در دنیای امروز که می­توان آن را عصر اطلاعات نامید، انتقال داده­ها (Data Commonication) و شبکه ­های کامپیوتری (Computer Networks) که حاصل پیوند دو صنعت کامپیوتر و مخابرات است،
دسته بندی کامپیوتر و IT
بازدید ها 53
فرمت فایل doc
حجم فایل 469 کیلو بایت
تعداد صفحات فایل 33
انتقال داده ها، شبکه های کامپیوتری و سیستم های توزیع شده

فروشنده فایل

کد کاربری 1024
کاربر

انتقال داده ها، شبکه های کامپیوتری و سیستم های توزیع شده

در دنیای امروز که می­توان آن را عصر اطلاعات نامید، انتقال داده­ها (Data Commonication) و شبکه­های کامپیوتری (Computer Networks) که حاصل پیوند دو صنعت کامپیوتر و مخابرات است، از اهمیت ویژه­ای برخوردار می­باشد. هدف از پیدایش شبکه­های کامپیوتری، اتصال کامپیوترهای مستقل از طریق یک فناوری واحد و قوانین مشخص به منظور انتقال داده­ها و اشتراک منابع است. منظور از انتقال داد­ه­ها، ارسال و دریافت داده­ها به صورت پیوسته آنالوگ یا گسسته دیجیتال بر روی رسانه­های مختلف انتقال مانند زوج سیم به هم تابیده، فیبر نوری، هوا و غیره می­باشد.

توجه کنید که اینترنت و وب، هیچکدام یک شبکه کامپیوتری نمی­باشند. اینترنت (Internet)، شبکه شبکه­ها است و از به هم پیوستن هزاران شبکه نامتجانس و گوناگون که هر کدام از آنها فناوری و قوانین مخصوص به خودش را دارد به وجود آمده است. اما وب گسترده جهانی (WWW. World Winde Web) نمونه­ای از یک سیستم توزیع شده است. یک سیستم توزیع شده، مجموعه­ای از چندین کامپیوتر مستقل است که از دید کاربر به صورت یک سیستم نامرئی (Transparent)، متمرکز (Centeralized) و متجانس به نظر می­رسد و کاربر به جای نگرانی در مورد به خاطر سپردن آدرس­ها (مثلا آدرس اینترنتی IP)، هر چیز را از طریق نام آن فراخوانی می­نماید (مثلا در وب همه چیز به صورت سند یا صفحه وب است و از طریق نام URL قابل دستیابی است و این نام­ها به صورت خودکار توسط خدمت­گزارهای نام حوزه به آدرس IP تبدیل می­شوند.) همچنین دقت کنید که وب، میان افزار (Middleware) است و یک لایه نرم­افزاری می­باشد که در یک محیط ناهمگن بر روی سیستم عامل­های متنوع مستقل قرار دارد، اما ایده سیستم­های عامل توزیع شده، وظیفه ایجاد یک تصویر متمرکز از کامپیوترهای مستقل را بر عهده سیستم عامل واحد توزیع شده می­سپارد.

کاربردهای شبکه

امروزه با گسترش اینترنت و جهانی شدن وب، کاربردهای شبکه­های کامپیوتری از تنوع زیادی برخوردار است که برای نمونه، چند مورد از آنها عبارتند از: جستجو و تحقیق و دسترسی به اطلاعات به روز پراکنده در دنیا، تجارت الکترونیکی، خرید، فروش و حراج کالا، آموزش از راه دور و دانشگاه مجازی، دولت الکترونیکی، درمان از راه دور، کنفرانس صوتی و تصویری از راه دور، کنترل، مدیریت و نظارت بر سیستم­های صنعتی از راه دور، پست الکترونیکی، پیام­رسانی فوری، گروه­های خبری، گفتگو و گپ زدن، بازی و سرگرمی تعاملی، پخش فیلم­های درخواستی، کمک به ایجاد واقعیت مجازی و ده­ها کاربرد دیگر.

اجزای شبکه

شبکه­های انتقال داده از سه بخش عمده تشکیل می­شوند:

کامپیوترهای میزبان (Host) که هدف اصلی ایجاد شبکه، اتصال کامپیوترهای میزبان به یکدیگر است.

پردازنده­های واسط مانند هاب­ها (Hub)، تکرار کننده­ها (Repeater)، پل­ها (Bridge)، سوئیچ­ها (Switch) و مسیر­یاب­های (Router) میانی که وظیفه مدیریت شبکه و هدایت ارسال داده­ها از مبدأ و مقصد را بر عهده دارند. مدل ریاضی شبکه­های کامپیوتری یک گراف است که در آن، گره­ها (Nodes) همان پردازنده­های واسط هستند.

لینک­های ارتباطی (Link) که در واقع رسانه­های انتقال داده هستند و با اتصال گره­های شبکه به یکدیگر انتقال داده­ها را بر عهده دارند.

پردازنده­های واسط و لینک­های ارتباطی زیر شبکه انتقال داده (Communication Subnet) را تشکیل می­دهند.

1-1 طبقه­بندی شبکه­ها

شبکه­های کامپیوتری از نظر اندازه و گستردگی جغرافیایی به 5 دسته تقسیم می­شوند:

شبکه­های شخصی (PAN: Personal Area Networks) که بر روی میز کار یا فاصله چند متری یک شخص هستند. مانند ارتباط بی­سیم اجزای کامپیوتر با کامپیوتر شخصی (PC) و دستیار دیجیتالی (PDA) و یا حتی کامپیوتر پوشیدنی (Wearable Computer) شخص.

شبکه­های محلی (LAN: Local Area Networks) که دارای گستردگی در حد یک ساختمان یا یک کمپ کوچک می­باشند.

شبکه­های شهری (MAN: Metropolitan Area Networks) که دارای گستردگی در حد یک شهر می­باشند.

شبکه­های گسترده (WAN: Wide Area Networks) که دارای گستردگی بیش از حد یک شهر ( در حد استان، کشور یا قاره) می­باشند.

شبکه­های جهانی که همان شبکه شبکه­ها یا اینترنت است.

انواع فناوری انتقال

به طور کلی دو نوع فناوری انتقال داده وجود دارد:

نقطه به نقطه (Point to point) یا همتا به همتا (Peer to peer) یا تک پخشی (Unicast) که داده­های ارتباطی از طریق لینک­ها و گره­های میانی به طور مستقیم بین دو ماشین مبدأ و مقصد مبادله می­شود. (مانند شبکه­های تلفنی)

انتشاری (Broadcast) که به آن داده پراکن یا پخشی نیز می­گویند و در آن همه ماشین­ها به یک کانال مشترک متصل شده و داده­ها بر روی کانال انتقال داده منتشر می­شود و کلیه ماشین­ها به داده­ها روی کانال دسترسی دارند (مانند انتشار رادیویی). این ماشین­ها با توجه به آدرس مقصد بسته­ها آن­ها را برداشته یا دور می­اندازند.

البته در بعضی از شبکه­های انتشاری امکان ارسال داده­ها از مبدأ به گروهی از مقصدها وجود دارد که به آن پخش گروهی یا چند پخشی (Multicast) یا (Point to Mutltipoint) گویند.

همبندی (Topology)

منظور از همبندی یا توپولوژی نحوه اتصال گره­های تشکیل دهنده گراف شبکه از طریق لینک­های ارتباطی است. ساختار و توپولوژی شبکه­های کامپیوتری بر اساس ماهیت کانال­های (Channel) انتقال داده و فناوری انتقال به دو دسته اصلی (نقطه به نقطه و انتشاری) تقسیم می­شود.

انواع توپولوژی Point to point

چندین نوع توپولوژی در شبکه­های نقطه به نقطه مورد استفاده قرار می­گیرد، مانند:

انواع توپولوژی Broadceast

چندین نوع توپولوژی در شبکه­های انتشاری مورد استفاده قرار می­گیرد، مانند:

2-1 روند پیشرفت شبکه­های کامپیوتری

در ابتدا طراحی شبکه­های کامپیوتری به صورت موردی و خاص و با معماری­های گوناگون و ناسازگار با یکدیگر انجام می­شد و هر شرکت معماری و روش غیر استاندارد خودش را داشت. بنابراین قابلیت اتصال به کامپیوترهای شرکت­های دیگر وجود نداشت و به همین دلیل به آن­ها شبکه­های بسته (Closed Networks) گفته می­شد. برای مثال شکل 1 دو کامپیوتر را نشان می­دهد که به طور مستقیم به یکدیگر متصل شده­اند. این­گونه شبکه­ها از نوع شبکه­های خصوصی با وسعت یک شرکت (Enterprise Networks) بودند.


آموزش کار با PHP

PHP یک زبان اسکریپتی سمت سرور (Server Side) می باشد که امروزه بیش از نصفی از وبسایتهای مطرح جهان، از آن برای حفظ و نگهداری داده ها و ایجاد سایتهای دینامیک و به روز استفاده می کنند
دسته بندی برنامه نویسی
بازدید ها 38
فرمت فایل doc
حجم فایل 33 کیلو بایت
تعداد صفحات فایل 41
آموزش کار با PHP

فروشنده فایل

کد کاربری 1024
کاربر

آموزش کار با PHP

مقدمه
PHP یک زبان اسکریپتی سمت سرور (Server Side) می باشد که امروزه بیش از نصفی از وبسایتهای مطرح جهان، از آن برای حفظ و نگهداری داده ها و ایجاد سایتهای دینامیک و به روز استفاده می کنند.
PHP هم همانند تمامی زبانهای برنامه نویسی Server Side، ترجمه شده و در نهایت به صورت کدهای HTML در اختیار کاربر قرار می گیرد. از این رو کد شما، از دید دیگران پنهان می ماند.
اما فرق PHP با دیگر زبانها چیست؟ یکی از مهمترین رقیبهای PHP، توسط مایکروسافت تحت عنوان ASP که در نسخه جدید به ASP.NET تغییر نام داده است، به وجود آمده و هنوز بحث سر آن است که کدامیک از آنها قویتر و مناسب تر است.
در این مقاله نمی خواهم بگویم که کدام یک بهتر است. هر کس عقاید مربوط به خود را دارد. در زیر به مقایسه این دو زبان می پردازم:

  • تقریبا در تمامی مراکز فروش هوست (Host)، سرور لینوکس ارزانتر از سرور ویندوز است و از آنجا که برای اجرای صفحات ASP.NET، نیازمند سرور ویندوز همراه با وب سرور IIS هستیم، می بایست پول بیشتری را پرداخت کنیم. این در حالی است که PHP بر روی تمامی Platformها از قبیل ویندوز و لینوکس نصب و اجرا می گردد.
  • PHP کاملا Open-Source می باشد.
  • به وضوح در اجرای صفحات ASP.NET و PHP دیده می شود که سرعت PHP سریعتر از ASP.NET می باشد.
  • برای ایجاد کردن صفحات PHP، هیچ نرم افزار جامعی به بازار ارائه نشده است که بتواند نیازهای کاربران را بر طرف کند (از Dream Weaver می توان تا حدی استفاده کرد)، اما نرم افزار پر قدرت Visual Studio.NET، نرم افزاری جامع برای ایجاد صفحات دینامیک ASP.NET می باشد.
  • در ASP.NET می توان از ترکیب زبانهای برنامه نویسی مختلف نظیر VB, C#, C++و غیره استفاده کرد ، اما PHP فقط از همان زبان خودش که PHP است پشتیبانی می کند.
  • ASP.NET دارای ویژگی ای تحت عنوان Code Behind می باشد که به برنامه نویس اجازه می دهد کدهای HTML را جدا از کدهای ASP.NET نگهداری کند. این کار سبب آن می شود که در صورت نیاز به رفع مشکل، برنامه نویس مستقیما به فایل مربوط به کدهای ASP.NET برود و با کدهای HTML کاری نداشته باشد. در صورتی که PHP به صورت Default این طور نیست (به وسیله نرم افزارهایی می توان برای PHP هم، این کار را کرد).

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

نصب PHP
نصب PHP بر روی ویندوز و IIS کار بسیار آسانی است. اما از آنجا که در این مقاله، علاوه بر آشنایی با PHP، مروری بر پایگاه داده ی MySQL داریم، نیازمند MySQL نیز هستیم. اگر بخواهید تک تک آنها را از اینترنت دانلود کرده و آنها را جداگانه نصب و پیکربندی کنید، می بایست وقت بسیاری را صرف کنید. دانلود آنها (آن هم با یک مودم و اینترنتی که بیش تر از 4KB/S نمی رود) کار بسیار زمان بری است. همچنین برای پیکربندی آنها نیز، مستلزم انجام کارهای نه چندان خوشایند هستید!
بدین منظور، من به شما یک راه ساده تر را پیشنهاد می کنم. XAMPP!
XAMPP یک مجموعه نرم افزاری بسیار جالب است که علاوه بر حجم کم آن (تنها 13MB)، تمامی پکیجهای مورد نیاز شما را شامل می شود:

  • Apache 2.0.48
  • MySQL 4.0.16
  • PHP 4.3.4 + PEAR
  • MiniPerl 5.8.0
  • mod_php 4.3.4
  • PHPMyAdmin 2.5.3
  • SQLite 2.8.6

این در حالی است که فقط خود MySQL به تنهایی، حجمی بیشتر از 10MB دارد.
من از پکیج XAMPP mini win32 Version 1.2 در کامپیوتر خودم استفاده می کنم. آن را می توانید از آدرس زیر دانلود کنید.

http://www.apachefriends.org/download.php?minixampp-win32-1.2.exe

چگونگی نصب XAMPP
نکته: قبل از انجام این عملیات، وب سرور IIS خود (و یا دیگر وب سرورها) را غیر فعال (Disable, Stop) کنید.
پس از دریافت XAMPP آن را در جای مورد نظر خود نصب (Extract) کنید. فرق نمی کند که کجا باشد.
سپس به پوشه ای که XAMPP را در آنجا Extract نموده اید، بروید. فایل setup_xampp.bat را باز کرده تا صفحه سیاهی نمایان شود. عدد 1 را وارد کرده و کلید Enter را فشار دهید تا مراحل نصب آغاز شود.
پس از آنکه نصب به پایان رسید، می بایست سرور شوید. برای اینکار دو فایل apache_start.bat و mysql_start.bat را اجرا کرده و دیگر کاری به آنها نداشته باشید. آنها را Minimize کرده و مابقی کارها را انجام دهید.
حال مرورگر دلخواه خود را باز کرده و عبارت http://localhost (یا http://127.0.0.1) را تایپ نمایید. با انجام اینکار می بایست صفحه بنفش رنگی نمایان شود.
چگونگی اجرا کردن اسکریپتهای PHP به وسیله XAMPP
اسنادی را که خواهان اجرای آن به وسیله XAMPP هستید، می بایست درون پوشه htdocs کپی نمایید. ولی در نوشتن آدرس آن در مرورگر، نیازی به نوشتن این پوشه نیست. به عنوان مثال فایل %XAMPP%\htdocs\weblog\index.php را در مرورگر می بایست به صورت http://localhost/weblog/index.php اجرا نمود...
شروع کار با PHP
در برنامه نویسی هیچ چیز لذت بخش تر از کد نویسی نیست. همین حالا برنامه Notepad خود را باز کرده و کدهای زیر را در آن بنویسید:



PHP Info




phpinfo();
?>


این فایل را در محل %XAMPP%\htdocs\PHP\phpinfo.php ذخیره کرده و به وسیله مرورگر خود، آدرس http://localhost/PHP/phpinfo.php را اجرا نمایید. با انجام این کار، صفحه ای که مشخصات PHP نصب شده بر روی سیستم را به شما نشان می دهد، نمایان خواهد شد.
آشنایی با PHP
همان طور که در مثال بالا مشاهده کردید، کد زیر با بقیه کدهای HTML فرق داشت:

phpinfo();
?>

این تکه کدی است که به وسیله PHP نوشته شده است. برای نوشتن کدهای PHP، می بایست آنها را در بین تگهای ?> و و به کار می رود. در این مقاله از همان روش ?> و عبارات (Statements)
به طور کلی در PHP، عبارات به دو دسته زیر تقسیم می شوند:

  • تک خطی (Single Line)
  • چندخطی (Multi Line)

در انتهای هر عبارت PHP، یک علامت سمی کالن (;) قرار می گیرد. به وسیله این علامت، PHP متوجه می شود که یک عبارت به اتمام رسیده و عبارت دیگری در حال شروع است. به مثالهای زیر توجه کنید:

echo("Hello World!");
echo("Mojtaba");
?>

echo("Hellow World"); echo("Mojtaba");
?>

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

echo("Hello World!")
echo("Mojtaba")
?>

اجرای این کد سبب خطا می شود. چرا که عبارت در آن از هم جدا نشده است و عبارتی همانند عبارت echo("Hello World") echo("Mojtaba") برای PHP ناآشناست.
تا به اینجای کار، عبارت تک خطی مورد بررسی قرار گرفتند و اما عبارات چند خطی. عبارات چندخطی که به کد بلاک (Code Block) معروف است، در PHP توسط آکولادها { } احاطه می شوند. این عبارات با همدیگر اجرا می شوند. به عنوان مثال در یک عبارت شرطی (عبارات شرطی در جلوتر مورد بررسی قرار می گیرند)، برای PHP تعیین می کنیم که اگر شرط درست بود، این سری عبارات و در غیر این صورت، سری دیگری عبارات را اجرا نماید:


آموزش پیاده سازی گرافیکی هشت وزیر با C#

این مقاله در راستای نوشتار کتابچه ای به نام پیاده سازی بازی های تخته ای نوشته شده است و در صورت آشنایی با این برنامه،شما می توانید با انواع بازی های تخته ای مانند reverse chess dooz tictactoe checkers آشنا شوید
دسته بندی برنامه نویسی
بازدید ها 34
فرمت فایل doc
حجم فایل 144 کیلو بایت
تعداد صفحات فایل 18
آموزش پیاده سازی گرافیکی هشت وزیر با C#

فروشنده فایل

کد کاربری 1024
کاربر

آموزش پیاده سازی گرافیکی هشت وزیر با C#


مقدمه

معرفی نویسنده اثر

محمد امین شریفی تحصیلات مقدماتی خود را در دبیرستان همیشه ماندگار البرز گذراند و هم اینک دانشجوی سال اول کارشناسی تکنولوژی نرم افزار در دانشگاه آزاد واحد دماوند می باشد.علاقه مند به گسترش برنامه های دات نت و حل کردن مسائل برنامه نویسی با C++ است.

درباره این مقاله

این مقاله در راستای نوشتار کتابچه ای به نام 'پیاده سازی بازی های تخته ای' نوشته شده است و در صورت آشنایی با این برنامه،شما می توانید با انواع بازی های تخته ای مانند reverse, chess, dooz, tic-tac-toe, checkers آشنا شوید،هم اینک بازی reverse و dooz کامل شده است و باقی بازی ها هم در آینده نزدیک نوشته خواهد شد و بطور رایگان در اختیار دانش جویان نرم افزار قرار خواهد گرفت.

مخاطبان این مقاله

این مقاله برای آن دسته از افرادی می باشد که پیشین با C# کار کرده اند و یا قصد آشنایی و برنامه نویسی با این قالب برنامه نویسی را دارند.در این مقاله کوشش شده است که هر بخش مستقل از بخش های دیگر باشد و دوستانی که با C# و یا پیاده سازی گرافیکی تخته بازی آشنایی دارند می توانند با سرعت از این بخش ها عبور کنند و به سراغ الگوریتم بازی بروند.ولی توصیه میکنم که سلسله مراتب بخش ها را هر چند گذرا مرور کنید.

هدف از نوشتن این مقاله

هدف از نوشتن این مقاله آشنا کردن خواننده با الگوریتم هشت وزیر به صورت گرافیکی می باشد. در این بازی ما باید هشت وزیر را بگونه ای در صحه شطرنج بچینیم که هیچ یک از وزیرها، 7 وزیر دیگر را تحدید نکند.در این مقاله، هر 2 نوع پیاده سازی بازگشتی و غیر بازگشتی نوشته شده است.

پس از خواندن این مقاله از دانشجویان انتظار می رود که بتوانند الگوریتم هشت وزیر را تحلیل کرده و مطابق با نیاز خود در محیط های مختلف طراحی و پیاده سازی کنند.


فصل اول : طراحی

گام نخست : پیاده سازی مهره و کاشی بازی


مهره نشان دهنده وزیر




را ایجاد کنید.eight_queen ای به نام Windows Application برنامه Visual C# را اجرا کنید و از قسمت Visual Studio

SquareControl.cs به نام User Control یک Add new item بر روی پروژه یتان کلیک راست کنید و از قسمت

کاشی صفحه شطرنج ما را می سازدUser control را ایجاد کنید.در واقع این

این کنترل را به 32, 32 تغییر می دهیم.حالا کاشی تخته یمان آماده شد!size

تخته یمان که به شکل دایره است می رسد(Discs)نوبت به طراحی مهره های

این مهره ها را می توان به 2 صورت پیاده سازی کرد:

با قرار دادن عکس وزیر درون کاشی های شطرنج .1

با کشیدن دایره درون کاشی های شطرنج. .2

که در این مقاله راه دوم را برگزیدیم.یعنی با کد زیر دایره ای با رنگ سفید یا سیاه درون کاشی هایمان رسم می کنیم.


e.Graphics.DrawEllipse(SquareControl.pen, left, top, width, height);

را حذف کردیم و آنرا به گام های بعدی محول کرده ایم.shadow و animationدر این گام ما قسمت



گام دوم : تعریف پارامترها و نام دامنه برای User Control ها



نام دامنه

پارامتر


اضافه می کنیم:User controlدر ابتدای کار نام دامنه زیر را

using System.Drawing.Drawing2D;

سپس رنگ کاشی خود را تعیین می کنیم:

public static Color NormalBackColor= Color.Green;

باید متغیری برای ذخیره کردن ردیف و ستون مهره ها ایجاد کنیم.به این دلیل که کدمان حرفه ای تر بشود ، آنها را تعریف کرده ایم:propertyمستقیمان به صورت

// These reflect the position of the square on the board.

Public int col{get;set;}

public int row{get;set;}

در انتها هم رنگ و قلم موی خود را انتخاب می کنیم:

// Drawing tools.

Private static Pen pen = new Pen(Color.Black);

private static SolidBrush solidBrush = new SolidBrush(Color.Black);


گام سوم : تابع تنظیم ردیف و ستون


فهرست

مقدمه. 3

معرفی نویسنده اثر. 3

درباره این مقاله. 3

مخاطبان این مقاله. 3

هدف از نوشتن این مقاله. 3

فصل اول : طراحی. 4

گام نخست : پیاده سازی مهره و کاشی بازی.. 4

گام دوم : تعریف پارامترها و نام دامنه برای User Control ها 5

گام سوم : تابع تنظیم ردیف و ستون. 6

گام چهارم : ایجاد و نابود سازی User Control ها 7

گام پنجم : چیدن مهره ها در صفحه شطرنج. 8

گام ششم : کشیدن حاشیه بین کاشی ها 10

گام هفتم : نگاه کلی بر کلاس SquareControl 11

فصل دوم : پیاده سازی محیط بازی.. 12

گام هشتم : تعریف متغییر های تخته بازی.. 12

گام نهم : پیاده سازی تابع سازنده تخته بازی.. 13

گام دهم : ذخیره 92 حالت مختلف.. 14

فصل سوم : الگوریتم هشت وزیر به روش غیر بازگشتی. 15

گام یازدهم : معرفی الگوریتم 15

گام دوازدهم : روش بررسی صحّت قرار گیری مهره 16

فصل چهارم : الگوریتم هشت وزیر به روش بازگشتی. 17

گام سیزدهم : معرفی الگوریتم 17

گام چهاردهم : روش بررسی صحّت قرارگیری مهره 17


پورت موازی

در زمان اتصال یک چاپگر به کامپیوتر از پورت موازی استفاده می گردد با اینکه اخیرا استفاده از پورت های USB رایج شده است ولی همچنان استفاده از پورت موازی برای اتصال چاپگر به کامپیوتر بسیار متداول است
دسته بندی کامپیوتر و IT
بازدید ها 17
فرمت فایل doc
حجم فایل 200 کیلو بایت
تعداد صفحات فایل 23
پورت موازی

فروشنده فایل

کد کاربری 1024
کاربر

پورت موازی

در زمان اتصال یک چاپگر به کامپیوتر از پورت موازی استفاده می گردد. با اینکه اخیرا" استفاده از پورت های USB رایج شده است ولی همچنان استفاده از پورت موازی برای اتصال چاپگر به کامپیوتر بسیار متداول است .

از پورت های موازی می توان برای اتصال تجهیزات جانبی زیر استفاده کرد

  • چاپگر
  • اسکنر
  • هارد درایوهای خارجی
  • کارت های شبکه
  • Tape
  • درایوهای Removable
  • CD burners

مبانی پورت های موازی

پورت موازی ، توسط شرکت IBM و بمنظور اتصال یک چاپگر به کامپیوتر طراحی گردید. زمانیکه شرکت IBM در اندیشه طراحی و ارائه کامپیوترهای شخصی بود، ضرورت استفاده از چاپگرهای شرکت" سنترونیکس" نیز احساس گردید.شرکت IBM تصمیم نداشت که از همان پورتی که توسط چاپگرهای سنترونیک استفاده می گردید، در طراحی خود استفاده نماید.

مهندسین شرکت IBM از یک کانکتور 25 پین (DB-25) بهمراه یک کانکتور 36 پین برای ایجاد یک کابل خاص بمنظور اتصال چاپگر به کامپیوتر استفاده کردند. سایر تولید کنندگان چاپگر نیز در ادامه از استاندارد سنترونیک تبعیت و به مرور زمان استاندارد فوق در سطح جهان مطرح و مورد استفاده قرار گرفت .

زمانیکه کامپیوترهای شخصی اطلاعاتی را برای چاپگر و یا هر وسیله دیگری که به پورت موازی متصل است، ارسال می نمایند ، در هر لحظه هشت بیت ارسال خواهد شد.. هشت بیت فوق بصورت موازی برای دستگاه ارسال خواهند شد. پورت موازی استاندارد، قادر به ارسال 50 تا 100 کیلوبایت در هر ثانیه است .نحوه عملکرد چاپگر به شرح زیر است :

- پین یک، حامل سیگنال Strobe بوده و دارای ولتاژی بین 2/8 و پنج است . زمانیکه کامپیوتر اطلاعاتی ( یک بایت داده ) ارسال می دارد ولتاژ به نیم ولت افت پیدا خواهد کرد.افت ولتاژ فوق به چاپگر اعلام می نماید که داده هائی ارسال شده است .

- پین دوتا نه حامل داده است .بمنظور مشخص نمودن اینکه یک بیت دارای مقدار یک است ولتاژ پنج ارسال از طریق پین مربوطه ارسال ( شارژ) خواهد شد.بر روی پینی که شامل مقدار ( داده ) صفر است شارژی ( ولتاژ) قرار نخواهد گرفت .

- پین ده ، اطلاعات لازم در خصوص نحوه عملکرد چاپگر را برای کامپیوتر، ارسال می نماید . نحوه پیاده سازی پین فوق نظیر پین "یک" است .زمانیکه ولتاژ موجود بر روی پین فوق به نیم ولت تنزل پیدا نماید، کامپیوتر اطلاعات لازم در خحصوص فرآیند چاپ را از چاپگر اخذ خواهد کرد .( کامپیوتر به این اطمینان خواهد رسید که چاپگر اطلاعات را دریافت نموده است )

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

- در صورتیکه چاپگر دارای کاغذ نباشد ، از طریق پین شماره دوازده به کامپیوتر آگاهی لازم داده خواهد شد.

- زمانیکه بر روی پین شماره سیزده شارژی وجود داشته باشد، آماده بودن چاپگر به کامپیوتر اعلام می گردد.

- کامپیوتر از طریق پین شماره چهارده و با استفاده از یک ولتاژ پنچ ولت سیگنال Auto Feed را برای چاپگر ارسال می دارد.

- در صورتیکه چاپگر دارای مشکلی باشد ولتاژ پین شماره پانزده به نیم ولت کاهش و کامپیوتر از بروز اشکال در چاپگر آگاهی پیدا می نماید.

- زمانیکه یک کار آماده چاپ باشد، کامپیوتر از پین شماره شانزده برای مقداردهی اولیه چاپگر ( کاهش ولتاژ) استفاده می نماید.

- کامپیوتر از پین شماره هیفده برای Offline نمودن از راه دور چاپگر استفاده می نماید، بدین منظور برای چاپگر یک شارژ ارسال خواهد شد.

- پین های شماره هیجده تا بیست و پنج Ground بوده و از آنها بعنوان یک سیگنال مرجع برای شارژ های پایین تر از نیم ولت استفاده می گردد.