نسل جديد زبانهاي برنامهنويسي به اين دليل توليد ميشود كه زبانهاي قديميتر داراي امكانات محدود بوده و يا قدرت استفاده از تكنولوژيهاي فعلي را بصورت مطلوب ندارند. ASP.Net نسل جديدي از ASP بوده كه توسط شركت مايكروسافت عرضـه گرديده است. ASP.Net اولين سيستم جامع براي برنامهنويسي تحت وب ( اينترنت ) است كه از مراحل سطح پايين آن يعني زبان ماشين تا بالاترين سطح آن كه برنامهنويسي ويژوال ميباشد براي استفاده در اينترنت و شبكه هاي محلي طراحي شدهاست. بزرگترين مزيت آن در برابر سيستمهاي ديگر، امكانات اينترنت آن است. از ASP.Net ميتوان در طراحي و توليد سايتهاي وب اينترانت كوچك يك شركت و نيز سايتهاي وب تجاري خيلي بزرگ استفاده نمود. مهمترين نكتهاي كه در طراحي اين محصول درنظرگرفتهشدهاست، استفادهي آسان، كارآيي بالا و نيز قابليت فوقالعاده اين نرمافزار است.
مساله هشت وزیر از جمله مسائل پرمخاطب مباحث طراحی الگوریتم است. ۸ مهره وزیر رو روی صفحه شطرنج چنان بچینید که نتونن همدیگه رو تهدید کنن.
برای افرادی که با بازی شطرنج آشنایی ندارن:
وزیر مهره ای از مهره های بازی شطرنجه که می تونه در تمامی 8 جهت هر تعداد خانه – تا زمانی که مهره ای مانع نباشه – حرکت کنه و اگه در یکی از این خانه ها مهره حریف قرار داشته باشه تهدیدش کنه.
مساله هشت وزیر : ما مساله رو در حالت کلی در نظر می گیریم. یعنی زمانی که ابعاد صفحه شطرنج n در n و تعداد مهره ها n هستش. ( n > 3 ) روشهای مختلفی برای پیدا کردن جواب وجود داره. یکی از این روشها چیدن تصادفی مهره ها روی صفحه شطرنجه! به عبارت دیگه n مهره رو به صورت تصادفی در خانه های مختلف صفحه قرار می دیم و بررسی می کنیم که آیا شرط مساله رو برآورده می کنن یا نه؟ این روش بسیار سریع ما رو به جواب می رسونه. اما ایرادی که داره نمی شه مطمئن بود بشه به همه حالتهای چینش دست پیدا کرد. در صفحه 8 در 8 شطرنج این مساله 92 جواب مختلف داره. شما ممکنه روش تصادفی رو هزار بار به کار ببرید، اما نتونید همه 92 حالت ممکنه رو به دست بیارید. این روش زمانی مفیده که پیدا کردن یه جواب برای ما کافی باشه.
در این دسته روشها مهره ها رو یکی یکی و به صورت بازگشتی روی صفحه طوری می چینیم که مطمئن باشیم با مهره های قبلی تداخل نداره و شرط مساله برآورده می شه. معمولا از سطر اول صفحه شروع می کنیم به قرار دادن مهره ها. پر واضحه که هر سطر فقط می تونه یه مهره رو تو خودش جا بده. مهره سطر دوم رو طوری قرار می دیم که توسط مهره سطر اول تهدید نشه. برای این کار خانه های مختلفی از سطر رو می شه انتخاب کرد. برای نظم داشتن کارهامون فرض می کنیم همیشه انتخاب خانه ها از سمت چپ سطر شروع می شه. به عبارت دیگه با شروع از سمت چپ سطر اولین خانه ای که شرط رو برآورده کنه انتخاب می کنیم. به همین ترتیب سطرهای بعدی رو هم می چینیم. اگر به سطری رسیدیم که بر اساس چیدمان سطرهای قبلی هیچ خانه امنی برای مهره وجود نداشت ( یعنی همه خانه ها توسط مهره های قبلی تهدید می شدن ) یه مرحله به عقب بر می گردیم و مهره سطر قبل رو جابجا می کنیم. این کار هم با حرکت مهره به اولین خانه سمت چپ موقعیت فعلی که شرط رو برآورده کنه، انجام می شه. با ادامه دادن این روال و با جابجا کردن مهره ها به صورت منظم و بازگشتی تمامی حالتهای ممکنه به دست می یان.
برای پیاده سازی چنین الگوریتمی و تشخیص اینکه چه خانه هایی از سطر امن هستن روشهای مختلفی وجود داره. ساده ترینشون اینه که هر بار تمامی خانه هایی رو که امکان تهدید شدن از اونها وجود داره بررسی کنیم تا از قرار نداشتن مهره وزیر در اونها مطمئن باشیم. اما این روش اصلا کارا و بهینه نیست.
روش دیگه تعریف کردن صفحه شطرنج به صورت یه آرایه n در n هستش که خونه های امن و غیر امن با علامتگذاری مشخص می شن. هر بار که مهره ای رو صفحه قرار می گیره تمام خونه هایی که توسط این مهره تهدید می شن به صورت غیر امن علامتگذاری می شن. به این ترتیب می شه فهمید که هر خونه با توجه به چینش مهره های قبلی امن هست یا نه؟ اما این روش هم معایبی داره که باعث می شه به روش سوم رجوع کنیم. برای آشنایی با این معایب کافیه سعی کنید کد برنامه رو بنویسید!
در روش سوم که من ازش استفاده کردم، برای علامتگذاری خانه های امن و غیر امن از شیوه دیگه ای بهره می بریم. به این ترتیب که اقطار راست به چپ، چپ به راست و ستونها با شماره هایی مشخص می شن که کار علامتگذاری رو بسیار ساده می کنن. این روش بدون شک از کاراترین روشهای رسیدن به جواب مساله ماست. هم سرعت اجرای بالایی داره و هم حافظه مصرفی بسیار کم!
کدی که به زبان ++C درباره این مساله نوشته شده با استفاده از روش سوم تعداد جوابهای ممکن – و نه خود جوابها – برای مقادیر مختلف n رو مشخص می کنه. به عنوان مثال اگر n رو 8 وارد کنید خروجی برنامه 92 خواهد بود. توصیه می کنم برای nهای بزرگ برنامه رو امتحان نکنید! اگر n رو 16 وارد کنید بعد از گذشتن زمان زیادی عدد 14772512 روی صفحه نمایش چاپ می شه. یعنی در صفحه شطرنج 16 در 16 حدود ۱۵ میلیون حالت مختلف برای چیدمان صحیح وجود داره!!
در ادامه میتونید الگوریتم، تحلیل و سورس کد این مسئله را ( با زبان های مختلف ) از سایت پروژه دانلود کنید
مهندسی نرمافزار به مفهوم توسعه و بازبینی یک سیستم نرمافزاری مربوط میباشد. این رشته علمی با شناسایی، تعریف، فهمیدن و بازبینی خصوصیات مورد نیاز نرمافزار حاصل سر و کار دارد. این خصوصیات نرمافزاری ممکن است شامل: پاسخگویی به نیازها، اطمینانپذیری، قابلیت نگهداری، در دسترس بودن، آزمونپذیری، استفاده آسان، قابلیت حمل و سایر خصوصیات باشد. مهندسی نرمافزار ضمن اشاره به خصوصیات فوق، مشخصات معین طراحی و فنیای را آماده میکند که اگر بدرستی پیادهسازی شود، نرمافزاری را تولید خواهد کرد که میتواند بررسی شود که آیا این نیازمندیها را تامین میکند یا خیر. مهندسی نرمافزار همچنین با خصوصیات پروسه توسعه نرمافزاری در ارتباط است. در این رابطه، با خصوصیاتی مانند هزینه توسعه نرمافزار، طول مدت توسعه نرمافزار و ریسکهای توسعه نرمافزار درگیر است.
سرفصل :
شناخت متمرکز بر سیستم
نیاز های سیستم
مطالعه اولیه
مصاحبه
مشاهده
ارجاع به مستندات
چرخه حیات و فرایند تولید نرم افزار
مدل ارتباطی کلاس ها
دیاگرام های محاوره
اجتماع
تولید مدل بانک اطلاعاتی
کساني که با صنعت IT آشنايي دارند حتما ً نام وب سرويس را شنيده اند . براي مثال ، بيش از 66 درصد کساني که در نظر سنجي مجله InfoWorld شرکت کرده بودند بر اين توافق داشتند که وب سرويس ها مدل تجاري بعدي اينترنت خواهند بود . به علاوه گروه گارتنر پيش بيني کرده است که وب سرويس ها کارآيي پروژه هاي IT را تا 30 در صد بالا مي برد . اما وب سرويس چيست و چگونه شکل تجارت را در اينترنت تغيير خواهد داد ؟ براي ساده کردن پردازش هاي تجاري ، برنامه هاي غير متمرکز (Enterprise) بايد با يکديگر ارتباط داشته باشند و از داده هاي اشتراکي يکديگر استفاده کنند . قبلا ً اين کار بوسيله ابداع استاندارد هاي خصوصي و فرمت داده ها به شکل مورد نياز هر برنامه انجام مي شد . اما دنياي وب و XML – تکنولوژي آزاد براي انتقال ديتا – انتقال اطلاعات بين سيستم ها را افزايش داد . وب سرويس ها نرم افزارهايي هستند که از XML براي انتقال اطلاعات بين نرم افزارهاي ديگر از طريق پروتوکول هاي معمول اينترنتي استفاده مي کنند .
سرفصل :
وب سرويس چيست ؟
نکات تکنولوژي وب سرويس
انواع آلودگي
ويروس هاي مبتني بر پست الکترونيکي
ويروس چيست ؟
کرم چيست ؟
نحوه تکثير به چه صورت است ؟
ويروس هاي پست الکترونيکي
پيشگيري از ويروس
علت ايجاد ويروس هاي کامپيوتري
امنیت شبکه یک موضوع پیچیده است که از نظر تاریخی فقط توسط افراد با تجربه و آنهایی که آموزش کافی دیده اند مورد توجه قرار می گیرد. با اینحال ، همچنان که افراد بیشتری به شبکه متصل میشوند ، تعداد افرادی که بایستی اصول امنیت را در دنیای شبکه شده بدانند ، نیز افزایش می یابد. این مقاله بر اساس ماربری کامپیوتر و مدیریت سیستمهای اطلاعاتی که در خاطرم بوده است نوشته شده است و مفاهیم مورد نیاز برای آشنا شدن با بازار و خطرات و نحوه مواجه شدن با آنها را توضیح می دهد.
سرفصل :
مدیریت ریسک: بازی امنیتی
انواع و منابع تهدیدهای شبکه
دسترسی غیر مجاز
اجرای فرامین غیر قانونی
شکافهای محرمانه
رفتار مخرب
تخریب اطلاعات
آنها از کجا می آیند؟
درسهای یاد گرفته شده
دوری از سیستمهایی با نقاط ضعف مشترک
سیستم عاملهای به روز و مرتبط را داشته باشید.
فایر والها
باستیون هاست
لیست کنترل دسترسی
منطقه بیطرف
سیستمهای ترکیبی
چاپگر از متداولترین دستگاههای خروجی در کامپیوتر است که از آن بمنظور چاپ اطلاعات استفاده می شود . کاربران کامپیوتر صرفنظر از نوع استفاده ، ممکن است در مقاطع زمانی خاصی نیازمند استفاده از چاپگر باشند. چاپگرها دارای انواع متفاوتی می باشند. چاپگرهای جوهر افشان،لیزری تک رنگ و لیزری رنگی ، سه گروه عمده از چاپگرهای موجود می باشند. هر یک از چاپگرها ( از چاپگرهای جوهر افشان تا چاپگرهای لیزری ) طراحی منحصربفرد خود بوده و بمنظور اهداف و کاربردهای خاصی ، طراحی شده اند.
سرفصل :
آشنایی با چاپگر ها و انواع و ویژگی های آنها
چاپگرهای ضربه ای (Impact Printer)
چاپگر حروفی (آفتابگردان)
چاپگرهای غیر ضربه ای (Non Impact Printer)
چاپگر های جوهر افشان
چاپگرهای لیزری
ویژگی ها ی مهم یک چاپگر
SATA II چیست؟
خانواده SATA