close
دانلود فیلم
دانشجو
پایان نامه کاربرد مهندسی معکوس نرم افزار در تحلیل ویروسهای کامپیوتری

چکیده :

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

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

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

 تعداد صفحه :76


ادامه مطلب...
پایان نامه چارچوبی جدید برای تشخیصِ مرجعِ‏ مشترک و اسمِ اشاره در متون پارسی

مهندسی فناوریِ اطلاعات،گرایشِ تجارتِ الکترونیک

عنوان

چارچوبی جدید برای تشخیصِ مرجعِ‏ مشترک و اسمِ اشاره در متون پارسی

تعداد صفحات : 146

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

ادامه مطلب...
دانلود پایان نامه استفاده از گراف ها در تشخیص الگوها

چکیده :

pattern recognition علمی است که به توصیف و کلاسه بندی و تشخیص اشیا مختلف می پردازد . یکی از روش های مختلف برای  تشخیص الگو تشخیص الگوی ساختاری است که در آن از تئوری گراف برای توصبف  اجسام موجود استفاده می شود . باز نمایی داده ها و اشیا توسط گراف ها ما را به سمت الگوریتم های تطبیق گراف سوق  می دهند . در این سمینار قصد داریم الگوریتم های شناسایی الگو با گراف ها و دسته بندی های موجود در این رابطه را مورد بررسی قرار دهیم . روش های موجود عبارتند از الگوریتم های بهینه  الگوریتم های تقریب الگوریتم های مقاوم در برابر خطا و جستجوی شاخص دار .

الگوریتم های بهینه همیشه بهترین تطابق را استخراج می کنند ولی پیچیدگی زمانی بسیار  بالایی دارند . در روش های تقریب تضمینی  در مورد بهینه بودن جواب وجود ندارد در عوض زمان محاسبه و رسیدن به تطابق مورد نظر بسیار کوتاهتر می باشد . روش های مقاوم در برابر خطا کاربرد بیشتری در محیط های واقعی و نویزی دارند . الگوریتم های  تطبیق گراف را می توان برای stero vision  تشخیص  داد سازمان دهی مدل های بانک اطلاعاتی و غیره بکار برد .

مقدمه :

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

1. تشخیص الگوی آماری

2. تشخیص ساختاری

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

تعداد صفحه :63

ادامه مطلب...
پایان نامه بررسی مفاهیم سیستم های برنامه ریزی منابع سازمان

چکیده :

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

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

مجموعه ای یکپارچه ای هستند که دارای ماژول های مختلف بوده و هر زمان که نیاز به اضافه کردن ماژول دیگری به آنها باشد این کار به راحتی صورت می پذیرد به ساده ترین بیان erp مجموعه ای  است از بهترین شیوه ها برای  اجرای  وظایف مختلف در بخش های متععد سازمان .

 تعداد صفحه :49

ادامه مطلب...
دانلود پایان نامه پردازش پرس وجوهای چندگانه در شبکه حسگر بیسیم

عنوان :پردازش پرس وجوهای چندگانه در شبکه حسگر بیسیم

تعداد صفحات : 88

چکیده:
شبکه های حسگر بیسیم، شبکه هایی متشکل از ابزار کوچکی هستند که به وسیله باطری تغذیه مـی شـوند .وظیفه این ابزار کوچک، که حسگر نامیده میشوند، اکتساب داده از محیط فیزیکی اطراف است که در مجموع به صورت دیدهایی از محیط توسط شبکه به کاربران تحویل داده  میشوند. کسب و انتقال دادهها توسط حسـگرها، همراه با مصرف انرژی است و به دلیل کوچک بودن این ابزار و در نتیجه ظرفیت محدود انرژی آنها، حفظ هر چه بیشتر این منبع حیاتی در حسگرها و افزایش طول عمر شبکه، یکی از مهمترین معیارها در کارهـای مـرتبط بـا این شبکه ها محسوب می شود.
از آنجایی که اکتساب اطلاعات از محیط با اعلان پرسوجوهایی توسط کاربران به شبکه صورت مـی گیـرد و مبحث پردازش پرسوجوها در شبکههای حسگر بیسیم، به صورت مستقیم با پردازش این پـرس وجوهـا، نحـوه اجرای آنها و تحویل دادههای درخواستی آنها مرتبط است، نقش بسیار مهمی در چگونگی و میزان مصرف انرژی ایفا میکند. از این رو همواره هدف اصلی در کارهای ارائه شده در این زمینه ارائه راهکارهایی برای مصرف بهینه انرژی بوده است .
مقدمه:
پیشرفت روز افزون تکنولوژی و میل انسان برای استفاده راحت تـر از آن باعـث ا یجـاد و اسـتفاده از ابـزار و 2 و جاسازی 1 امکاناتی که هر چه بیشتر در زندگی روزمره محو شده هستند، گردیده است. در مبحث شبکه نیـز، در سالهای اخیر توجه زیادی به شبکههای موردی و حسگر معطوف  شده است، کـه بـه صـورت قابـل تـوجهی میتوانند به صورت محو و جاسازی شده به کار رون . د به همین جهت، پروژههای گوناگونی برای نیل به محاسبات فراگیر که در آن رایانه ها و حسگرها در هر زمینهای از زندگی انسان دخیل هستند و به او یـاری مـی رسـانند، صورت گرفته است که نتیجه آنها استفاده گسترده از شبکههای حسگر بیسـیم در زمینـه هـای مخلتفـی ماننـد صنایع نظامی، زیستی، بهداشتی، شهری، ترافیکی و ساختمان است . شبکههای حسگر بیسیم متشکل از گرههایی میباشند. هر گره متشکل از یک یا چند حسگر است که به وسیله باطری تغذیه میشوند و در محیط فیزیکی پیرامون پراکنده شـده انـد و اطلاعـات مختلفـی از قبیـل نـور، دمـا، رطوبت، صدا و … را از آن کسب و به کاربران شبکه ارائه میدهند. دادههای اکتسابی مـی تواننـد بـه کـاربران در 3 تصویربرداری از دنیای واقعی یاری برسانند. به کمک تصویربرداری از دنیای خارجی می توان رویدادها و حوادث محیط را کنترل و یا پیش بینی نمود. ارتباط میان حسگرها و کاربران به صورت بیسیم و از طریق هوا به عنوان رسانه ارتباطی مشترک میباشد و هدف نهایی جمعآوری اطلاعات کسب شده از محیط در یک نقطه از شبکه به 4 نام ایستگاه اصلی که به رایانه کاربر متصل است، میباشد. از آنجایی که هر حسگر قادر به ارسـال اطلاعـات تـا 5 شعاعی محدود در پیرامون خود میباشد، ارتباط در این شبکهها به صورت چندگامه صورت مـی پـذیرد . بـدین طریق که هر حسگر در شبکه غیر از ارسال اطلاعات خود، مسئول ارسال دادههای دریافتیِ ارسـال  شـده توسـط حسگرهای دیگر به سمت ایستگاه اصلی میباشد.


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

تعداد صفحه : 88

 

ادامه مطلب...
آنچه قبل از تحصیل در خارج از کشور باید بدانید

آنچه قبل از تحصیل در خارج از کشور باید بدانید

کسانی که به کشورهای خارجی سفر می‌کنند یا در آنجا درس می‌خوانند تجربه‌های تلخ و شیرینی را کسب می‌کنند که می‌تواند به کسانی که قصد ادامه تحصیل در آن کشور را دارند کمک کند.ادامه تحصیل در خارج از کشور شاید آرزوی و خواسته‌ی هرکسی باشد. اما تحصیل در کشوری با فرهنگ، قانون و ایدئولوژی متفاوت کار چندان ساده‌ای نیست.

مهدی فارسی، دانشجوی رشته اقتصاد و حمل و نقل دریا در دانشگاه آنتورپ بلژیک، ۱۳ نکته را برای کسانی که قصد ادامه تحصیل در اروپا دارند، متذکر شده است.این نکات برای کسانی که قصد ادامه تحصیل در غرب اروپا را دارند، کاربردی‌تر است؛ اما همه‌ی کسانی که می‌خواهند در کشورهای خارجی درس بخوانند می‌توانند از تجربه‌های او استفاده کنند.

ادامه مطلب...
دانلود جزوه درس مخابرات استاد صافی

این جزوه که به صورت در کلاس درس استاد صافی تدریس شده است دارای ۵ بخش می باشد که در یک فایل PDF برای شما دوستان گرامی آماده شده است ، که  مبتنی بر کتاب سیستم های مخابراتی کارلسون تدریس شده است.

عنوان جزوه :  مخابرات

استاد مربوطه : استاد صافی

فرمت فایل : PDF

کیفیت : دست نویس خوانا

تعداد صفحات : ۱۲۲

حجم فایل : ۲۳.۸ مگابایت

 

 

رئوس مطالب :

۱-      انتقال سیگنال
۲-      مدولاسیون خطی
۳-      مدولاسیون زاویه ای
۴-      سیستم های مخابراتی آنالوگ
۵-      احتمال و متغیر های تصادفی
۶-      فرآیند های تصادفی و نویز
۷-      انتقال سیگنال در حضور نویز
ادامه مطلب...
کتاب مباحثی در حسابداری صنعتی ، نوشته فیروز کردی

موضوع اصلی که در این کتاب به آن پرداخته شده است ، بودجه های انعطاف پذیر و استانداردها می باشد.


عنوان کتاب : مباحثی در حسابداری صنعتی

نویسنده : فیروز کردی

ساختار فایل : PDF

تعداد صفحات : ۳۲

حجم فایل : ۱.۵ مگابایت

ادامه مطلب...

این جزوه شامل سرفصل درس سیستم عامل ۲ به همراه جزوه درس کارگاه سیستم عامل می باشد.

 

عنوان جزوه : سیستم عامل ۲ و کارگاه سیستم عامل

مدرّس : مهندس عبدی

دانشگاه : آزاد اسلامی

ساختار فایل : PDF

کیفیت : تایپی

تعداد صفحات : ۶۵

حجم فایل : ۵۲۷ کیلو بایت

ادامه مطلب...

کتاب زبان ماشین و برنامه سازی سیستم با توجه به نیاز دانشجویان دانشگاه پیام نور در رشته مهندسی کامپیوتر بصورت خود آموز و با مثالهای زیاد و ساده و روان تهیه گردیده است . مطالب ارائه شده با توجه به تجربیات تدریس در درس برنامه نویسی زبان اسمبلی در سالیان متمادی در دانشگاه می باشد . این کتاب در ده فصل آماده شده که هر فصل دارای اهداف فصل ، تمرین و مروری بر مطالب فصل می باشد . در انتهای کتاب سوالات چهار گزینه ای و نهایتاً واژه نامه گنجانیده شده است.

نام کتاب : زبان ماشین و برنامه سازی سیستم

نویسنده : مهندس داریوش نیک مهر

زبان کتاب : پارسی

تعداد صفحات : ۳۹۰

ساختار فایل : PDF

حجم فایل : ۱.۲ مگابایت

ادامه مطلب...

در این بخش ، جزوه زبان ماشین و برنامه سازی سیستم ، به همراه شبه کدهای موجود در جزوه را برای استفاده کاربران محترم سایت دانشجوی ایرانی قرار داده ایم.

عنوان جزوه : زبان ماشین و برنامه سازی سیستم

تهیه کننده : علی چوداری خسروشاهی

دانشگاه : آزاد اسلامی

ساختار فایل : PDF

کیفیت : تایپ شده

مرجع جزوه : کتاب IBM PC Assembly Language and Programming

تعداد صفحات : ۵۱

حجم فایل : ۸۰۵ کیلوبایت

ادامه مطلب...
جزوات مهندسی نرم افزار و فایل های مربوطه

جزوات مهندسی نرم افزار و فایل های مربوطه

مهندسی نرم افزار یک و دو دانشگاه پیام نور، دکتر فراهی و مهندس پورامینی

دانلود رایگان کتاب مهندسی نرم افزار Software Architecture in Practice

فیلم آموزش رسم نمودار Use Case سیستم ATM (دستگاه خودپرداز)

جزوه درس مهندسی نرم افزار پیشرفته – استاد فریدون شمس

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

کتاب مهندسی نرم افزار کلاسیک و شی گرا ، ویرایش هشتم

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

کتاب میانبرهای Scrum (راهنما، ابزار و تاکتیک های Agile)

دانلود رایگان جزوه مهندسی نرم افزار پارسه طرح 90 درصد

کتاب مهندسی نرم افزار راجر اس . پرسمن , ویرایش پنجم

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

مهندسی نرم افزار – دکتر سعید پارسا (جزوه ، اسلاید)

اسلاید های مهندسی نرم افزار ۲ (بهروز نیرومندفام)

اسلایدهای آموزشی معماری سرویس گرا “SOA”

اسلایدهای تجزیه و تحلیل و مدلسازی سیستم

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

دانلود نمونه سوال مهندسی نرم افزار 10 دوره

کتاب JIRA 5.2 Essentials ، نوشته Patrick Li

جزوه درس مهندسی نرم افزار استاد پوروطن

دانلود جزوه مهندسی مدرن توسعه نرم افزار

کتاب اسکرام و اکس پی به زبان فارسی

کتاب تعمیر و نگهداری نرم افزار

آموزش آر یو پی (RUP)

 

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

 

پروژه رایگان ار زبان پاسکال برای شما اماده کردم که پروژه کاربردی هستش که میتونید ازش در درساتون استفاده کنید.پروژه به این صورت هستش دو ماتریس را در هم ضرب میکند.این پروژه به همراه سورس منتشر شده است.امید وارم مفید باشه و ازش استفاده کنید.ازاینکه ما را یاری میکنید متشکریم.موفق پیروز باشید…

 

ادامه مطلب...

هرچقدر هم که محصولات اپل جذاب باشند،هر چقدر هم که برنامه های ویندوز کرش کند و دستمان را توی حنا بگذارد باید اعتراف کنیم که هیچ چیز ویندوز نمی شود! اگر دوست دارید بر روی تبلت iPad خود تجربه کار با ویندوز 8 را داشته باشید، کافی است اپلیکیشن Windows 8 Metro Testbed را بر روی آیپد خود اجرا کرده و ویندوز 8 را نیز روی کامپیوتر خود نصب نمایید و لذت استفاده از ویندوز 8 را بر روی آیپد تجربه کنید.

این برنامه که توسط متخصصان شرکت Splashtop تهیه شده و با قیمت 24.99 دلار در فروشگاه App Store اپل عرضه می‌شود، به کاربران iPad این اجازه را میدهد تا نسخه آزمایشی ویندوز 8 را بدون هیچ کم و کاستی بر روی تبلت خود اجرا نمایند. البته توجه کنید که قیمت اصلی برنامه 49.99 دلار است و فعلا برای فروش ویژه با این قیمت عرضه می‌شود

ادامه مطلب...
تعرفه تبلیغات در سایت و انجمن

شرایط تبلیغات در سایت :

  1. اندازه محلهای درج آگهی تقریبی است و تا 10% ممکن است کم یا زیاد شود.
  2. قراردادهای سالانه به ازای هر سال شامل 15% تخفیف خواهند شد.
  3. تسویه حساب هر قرارداد به صورت کاملا نقدی انجام می شود.
  4. آگهی های مربوط به استخدام شامل 10% تخفیف می گردد.
  5. مدت قرار دادها به صورت یک ماهه - دو ماهه و سه ماهه می باشد
  6. تخفیف ویژه ۱۵٪برای آگهی های آموزشی و ۲۵٪ اعلام نمایشگاه های انفرادی یا گروهی

در این سایت به دو صورت می توانید تبلیغ کنید :

 1.تبلیغات گرافیکی

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

کلاس

محل قرار گیری

یک ماهه

دو ماهه

سه ماهه

 

۶۰*۴۶۸

بالای سایت

90000 تومان

150000 تومان

200000 تومان

 

۶۰*۴۶۸

انتهای پست ها

70000 تومان

120000 تومان

150000 تومان

 

۲۳۰*۱۸۰

سمت راست - بالا

80000 تومان

150000 تومان

180000 تومان

 

۲۳۰*۱۸۰

سمت چپ - بالا

   

 

۶۰*۴۶۸

هدر

120000 تومان

200000 تومان

250000 تومان

 


2.تبلیغات متنی

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

ردیفمحل قرارگیریحوزه نمایشقیمت (تومان)
۱سمت راست وبسایت بالاهمه صفحات30000
۲   

قیمت های درج شده در جدول بالا هزینه نمایش لینک برای یک ماه  است.

محل قرار گیری تبلیغات متنی زیر تبلیغات گرافیکی و تعداد حداکثر ۱۰ لینک در هر سمت می باشد

با ۲۰۰۰ تومان می توانید ۵ لینک خود را برای یک ماه به نمایش بگذارید


نحوه سفارش آگهی

جهت سفارش آگهی میتوانید با شماره تلفن 09010633413تماس حاصل نمایید.

 

 قوانین و شرایط جذب آگهی

  • از پذیرش آگهی سایتهای  حاوی تصاویر و مطالب غیر اخلاقی و همچنین مغایر با قوانین کشور ایران معذور هستیم.

  • هر آگهی(بنر) تنها میتواند یک لینک به سایت مد نظر سفارش دهنده آگهی داشته باشد.

  • تصاویر یا محتوای آگهی می بایست مطابق با هنجارهای کشور ایران و همچنین آئین نامه های وزارت فرهنگ و ارشاد اسلامی کشور ایران در زمینه انتشار آگهی باشد.

  • طراحی بنر بر عهده سفارش دهنده میباشد و در صورت نیاز تیم وبسایت ما آماده همکاری جهت طراحی بنر می باشد که هزینه آن رایگان است.

  • پذیرش آگهی مربوط به فعالیتها یا شخصیتهای سیاسی تنها پس از هماهنگی با مدیران سایت امکان پذیر خواهد بود.

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

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

 
عناوین هفته نامه فناوری اطلاعات روزنامه جام جم:
- مزاياي پشتيبان‌گيري ابري
- چگونگي شناسايي فيشينگ و پرهيز از آن
- دسترسي به رايانه از هزاران کيلومتر فاصله! کنترل از همه‌جا
- App Store اندازه‌گيري تخصص ماست
- کپي‌برداري از آبي‌ها
- به‌روز رساني «اندرويد‌ها»
- گزارش زنده‌اي از نمايشگر خودتان
- با استفاده از InPrivate Browsing همه چيز را دفن کنيد!
- پاياني بر يك بازي زيبا در نسل هفتم، آخرين سرود شپرد
- يك فلش بك ديگر به آركيد دوبعدي لذت‌بخش، نجات يك دوست
-فناوري‌هاي هولناك
- بررسي آسيب‌پذيري‌هاي گوگل والت، کيف پول گوگل ناامن مي‌شود
- چگونه يك طراح حرفه‌اي شويم؟! بعد سوم در فتوشاپ
- به‌كارگيري ويرايشگرهاي WYSIWYG در برنامه‌هاي ويندوز
- گردش و سفر به همراه لپ‌تاپ‌هاي بازي
- شخصي‌سازي‌هاي انفرادي در اپرا
- عدم دريافت تماس از افراد ناشناس
- فناوري ديجيتال
- و...

دانلود رايگان با لينك مستقيم - 1.62 مگابايت 

فروشگاه ارزان سرای دانشجویی

رو دررو

وقتي صنعت امنيت
IT در مورد عامل زيست‌سنجي صحبت مي‌كند، معمولاً در اغلب اوقات به (اثر انگشت) اشاره مي‌كند. با اين‌كه ديگر معيارهاي سنجش بيومتريك مطابق الزامات قانوني به طور روتين انجام مي‌گيرند، سيستم‌هاي كامپيوتري به دقتي بسيار بالاتر نياز دارند؛ زيرا اين سيستم‌ها بايد قادر باشند بدون نظارت انسان كار خود را انجام بدهند.

براي نمونه، بسياري از مؤسسات شروع به توسعه سيستم‌هايي نموده‌اند كه بر اساس تشخيص خودكار چهره  كار مي‌كنند. از لحاظ نظري، اين ابزار مي‌تواند به شناسايي مجرمان در محل‌هاي شلوغ و در ميان جمعيت كمك  نمايد. در عمل، وجود حجم بالاي نتايج مثبت كاذب به اين معنا است كه اكثر چهره‌هاي انتخاب شده از ميان جمعيت حاضر در خيابان‌ها متعلق به اشخاص بي‌گناه و غيرمجرم است، بنابراين هر مورد اعلام شده به وسيله سيستم بايد نشانه‌دار گردد تا توسط يك افسر پليس مجدداً بررسي شود.

اين افسر بايد درباره اين‌كه آيا فرد مشخص شده به اندازه كافي شبيه مظنون است يا نه، تصميم بگيرد تا قرار تحقيقات بعدي صادر شود. چنين كنترلي نمي‌تواند به صورت خودكار و توسط ماشين انجام شود.

روش تأييد
DNA، براي داستان‌هاي علمي - تخيلي جذاب است و اساساً با الهام‌گيري از همين طريق ابداع گرديده است. اين روش ظاهراً خوب به نظر مي‌رسد. برخلاف ديگر روش‌هاي زيست‌سنجي، روش DNA ساختاري ديجيتال‌مانند دارد و به همين دليل ميزان دقت در مطابقت نمونه با صاحب آن بايد  صددرصد باشد.

اما مشكل اين‌جا است كه آناليز
‌DNA روشي گرانقيمت است و مبناي آن واكنش‌هاي شيميايي‌اي هستند كه ساعت‌ها به طول مي‌انجامند. اين زمان طولاني، استفاده از اين متد را در بسياري از نرم‌افزارهاي كاربردي بي‌فايده و غيرممكن مي‌سازد.

همچنين پياده‌سازي روش‌هاي آناليز
DNA قوانين رعايت حريم شخصي سختگيرانه‌اي را مي‌طلبد؛ زيرا نتايج به دست آمده از اين طريق، علاوه بر هويت فرد، اطلاعات بسيار بيشتري را در مورد او آشكار خواهند ساخت. حداقل اين‌كه، اطلاعات آناليز شده درباره دو فرد مختلف مي‌تواند ميزان قرابت و نزديكي اين دو نفر را با يكديگر ثابت كنند.

بسته به ژن‌هاي انتخاب شده، نمونه‌ها مي‌توانند فاش سازند كه آيا فردي از لحاظ طبي مشكل خاص دارد يا خير، يا اين‌كه مشخص سازند فرد تا چه اندازه در آينده از يك بيماري خاص رنج خواهد كشيد.

صرف‌نظر از اثر انگشت، عامل زيست‌سنجي ديگري كه ممكن است در آينده بيشتر مورد توجه قرار گيرد، اثر صدا يا
Voiceprint است. اثر صداي هر شخص الگوي فركانسي يگانه‌ و منحصر به‌ فردي است كه با صداي وي همراه است و از طريق شكل اثر صداي افراد قابل اندازه‌گيري است.

از جهت اندازه‌گيري‌هاي بيومتريك، اين خصيصه نقطه ضعفي درست مقابل
‌DNA دارد. به اين ترتيب كه تقليد و بازسازي آن بسيار آسان است. يك سيستم ساده شناسايي اثر صوت به سادگي توسط دستگاه ضبط صدا فريب مي‌خورد و بسياري از روش‌هاي تحقيقي كه به توليد كدك‌هاي مؤثر صوتي (جهت استفاده در شبكه‌هاي VoIP و تلفن‌هاي سلولي) كمك نمودند، مي‌توانند مورد سوءاستفاده مهاجمان قرار گيرند تا صداي اشخاص ديگر را جعل كنند.

با اين‌وجود
Voiceprint هنوز هم مي‌تواند به صورت تركيب با ديگر روش‌ها استفاده گردد. يك سيستم تشخيص صداي تعاملي IVR يا Recognition Intractive Voice يا اپراتور مركز تماس مي‌تواند از شخص درخواست نمايد يك كلمه يا جمله تصادفي را تكرار نمايد و پس از آن كلمه عبور را وارد كند.

غول كارت‌هاي اعتباري دنيا، يعني
Visa International، از يك سيستم IVR متعلق به شركت Vocent Solutions به منظور تأييد هويت و شناسايي كاركنان خويش استفاده مي‌كند. البته اين سيستم تنها بخشي از يك مجموعه چندعاملي است. همانند بسياري از فروشندگان سيستم‌هاي بيومتريك، Vocent نيز متذكر مي‌شود كه نرم‌افزارش به اندازه‌اي قابل اطمينان نيست كه به تنهايي مورد استفاده قرار گيرد.

 

ادامه مطلب...
بیومتریک فناوری و علم اندازه‌گیری و تحلیل خصوصیات بدن انسان مانند اثر انگشت، شبکیه چشم، الگوی رگ‌ها، عنبیه، الگوهای صوتی، الگوهای چهره و اندازه‌گیری‌های تناسبات دست و انگشت است که به منظور تشخیص هویت و صدور مجوز دسترسی‌ها انجام می‌پذیرد. تشخیص هویت از طریق بررسی‌های بیومتریک به سرعت در حال همه‌گیر شدن است و ظاهر شدن فناوری‌های مرتبط با بیومتریک در بسیاری از جنبه‌های زندگی روزمره ما آغاز شده است.اين مطلب يكي از مقالات بخش ويژه نشريه ماهنامه شبكه در شماره 116 با عنوان امنيت بيومتريك مي‌باشد. جهت دريافت اين بخش ويژه به بخش پرونده‌هاي ويژه سايت مراجعه نمائيد.

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


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

  •   چه به همراه دارید؟

بسیاری از سیستم‌های کنونی و قدیمی بر‌اساس پاسخی که به این پرسش می‌دهید، هویت و سطح دسترسی شما را تعیین می‌کنند. دسته کلیدی که همواره در جیب خود حمل می‌کنید، یکی از پرکاربردترین ابزارهای مرتبط با این سیستم‌ها است. در دنیای کنونی، کارت‌های مغناطیسی، Tokenها و کلیدهای دیجیتال در واقع معادل‌های کلیدهای فلزی معمول هستند.

  •   چه می‌دانید؟

استفاده از اسم شب در عملیات‌های نظامی، رمز عبور کامپیوترها و کارت‌های بانکی و... از طریق آزمودن دانسته‌های شما هویت و سطح دسترسی شما را تعیین می‌کنند.

  •   که هستید؟

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

 

ادامه مطلب...

مهندسی مکانیک

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

ادامه مطلب...
دانلود جزوه آمار و احتمال مهندسی در ۱۰ فصل

برای عزیزانی که این ترم آمار و احتمالات دارند یا نیاز به یاداوری برخی از توابع آمار دارند یک جزوه بسیار خوب آماده دانلود کرده ایم که در ۱۰ فصل آمده است و در ادامه سرفصل ها و لینک دانلود محیا است

 

فصل ۱- تاریخچه و مفهوم احتمال
فصل ۲- مفاهیم اساسی احتمال
فصل ۳- آزمایشهای تکراری
فصل ۴- متغیر تصادفی – میانگین- واریانس – امید ریاضی – گشتاور و …
فصل ۵- دو متغیر تصادفی
فصل ۶- توزیع های شرطی
فصل ۷- دنباله ی متغیر های تصادفی
فصل ۸- تولید اعداد تصادفی و شبیه سازی کامپیوتری
فصل ۹ – تخمین (برآورد)

ادامه مطلب...
اگر برروي درايو ويندوز خود دچار کمبود جا هستيد، مي‌توانيد سري به فولدر Temp ويندوز بزنيد و محتويات درون آن را حذف كنيد؛ اين شاخه براي نگه‌داري فايل‌هاي موقت ويندوز و برنامه مورد استفاده قرار مي‌گيرد. 
قبل از رفتن به سراغ اين فولدر بهتر است برنامه‌هاي در حال اجرا را ببنديد.  پس از آن بايد در قسمت run از منوي شروع در قسمت را تايپ کنيد %temp% و فولدر Temp را باز کنيد، در اين فولدر مي‌توانيد فايل‌ها را مشاهده و يا حذف كنيد

ياهو

Yahoo!Mail دومين فراهم کننده سرويس پست الکترونيک جهان بعد از گوگل و يکی از قابل اعتماد ترين آنها در وب است. اين سرويس رايگان است و براحتی می توانيد آنرا ساخته و استفاده کنيد. در اين صفحه با نحوه ساخت حساب کاربری، کار و نکاتی درباره Y!Mail آشنا می شويد.

Yahoo! توسط Jerry Yang و David Filo دانشجويان مهندسی الکترونيک دانشگاه Stanford در ژانويه 1994 برپا شد. سايتی که طراحی کرده بودند يک دايرکتوری سلسله مراتبی به سايت های ديگر بود. در آوريل همان سال سايت خود را Yahoo! نام نهادند. ياهو به سرعت رشد کرد و مشابه موتورهای جستجو و دايرکتوری های ديگر به يک پورتال وب تبديل شد. ياهو ابتدا از گوگل برای ليست نتايج جستجو استفاده کرد تا سال 2004 تکنولوژی جستجوی خود را پياده کرد.

پورتال وب ياهو با آدرس www.yahoo.com آخرين اخبار، سرگرمی ها و اطلاعات ورزشی را فراهم می کند. پورتال سرويس های ديگری مانند Yahoo!Mail، Yahoo!Map و Yahoo!Messenger را هم به کاربران می دهد.

Yahoo!Mail

نحوه ساخت حساب کاربری

کار با Y!Mail

اعمال ديگر در Y!Mail

phishing چيست؟


 


بانظرات خودما را یاری کنید

ارسال مقدار به تابع

وقتی مقداری به تابع ارسال می شود یک کپی از محتویات آرگومان به پارامتر نسبت داده می شود یعنی در اصل پارامتر یک کپی از متغیری است که به تابع ارسال می شود و مقدار آن خارج از تابع تغییر نمی کند. این روش ارسال یک متغیر با مقدار (passing variable by value) نامیده می شود. که روش معمول است. روش دیگر ارسال یک متغیر به تابع به صورت مرجع (called by reference) است. در این حالت به جای یک کپی از مقدار متغیر آدرس آن به تابع داده می شود بنابراين نام متغیر و نام پارامتربه یک مکان حافظه ارجاع می کنند. یعنی پارامتر متغیر جدیدی نیست بلکه همان متغیر قبلی با نام جدید است. در این حالت وقتی متغیر درون تابع تغییر می کند متغیر خارج از تابع هم تغییر می کند.

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


مثال. متغير m به صورت مقداری به تابع ارسال شده است. خروجی تابع عدد 1 است.

#include <iostream.h>
void f(int n) {
   n = 4;
}
int main() {
   int m = 1;
   cout << m << "n";
   f(m);
   cout << m << "n";
}

مثال. پارامتر number مرجع است.

#include <iostream.h>
void demo(float &number);
int main () {
   float num1;
   cout << "Please enter a number. n";
   cin >> num1;
   cout << "Before the demo function your number is " << num1 << "n";
   demo(num1);
   cout << "After the demo function your number is still " << num1 << "n";
   return 0;
}
void demo(float &number) {
   number = number * 3;
   cout << "Inside the demo function the number is now " << number << "n";
}

آرایه

يک آرايه (array) مجموعه ای از محل های پشت سرهم حافظه است که همگی دارای يک نام می باشند . یک آرایه نوعی متغیر است که بجای ذخیره یک مقدار یکسری از مقادیر هم نوع را ذخیره می کند. هر محل ذخيره سازی در آرا‍يه را يک عنصر آرايه می نامند.

شکل کلی تعريف آرايه به صورت زير است:

DataType array_name[size];

Size تعداد عناصر آرایه است که در کروشه ذکر می شود. DataType نوع عناصر آرايه است که از هر نوع داده ای می تواند باشد.

اندازه آرايه بايد در زمان کامپايل مشخص باشد و در طول زمان اجرا ثابت است و تغيير نمی کند. وقتی آرايه ای اعلان می شود کامپايلر يک بلاک از حافظه که برای نگهداری کل آرايه کفايت می کند را کنار می گذارد. به اين ترتيب عناصر آرايه پشت سرهم ذخيره می شوند.

اسم آرايه اشاره گری به اولين عنصر آن است. به عناصر می توان به طور منفرد با اضافه کردن اندیس به اسم آرايه مراجعه کرد. انديس (index) باعث متمايز شدن عناصر آرايه از يکديگر می شود و تعيين می کند عنصر آرايه چندمين محل ذخيره سازی در آرايه است. در ++C انديس آرایه يک عدد صحيح است که از صفر شروع می شود.


مثال. آرايه A که به صورت زير تعريف شده است يک آرايه يک بعدی با 5 عنصر از نوع صحيح است. عناصر آن شامل A[3] , A[2] , A[1] , A[0] و A[4] است.

int A[5];


هنگام دسترسی به عناصر آرايه بعد از اسم آرايه بايد درون کروشه شماره انديس عنصر مورد نظر ذکر شود. عناصر آرايه را می توان توسط دستور انتساب مقداردهی کرد يا مقدار آن را از ورودی درياقت کرد.

A[0] = 10;

cout << "Enter a number:";
cin >> A[1];

با توجه به اينکه تعداد عناصر آرايه معين است برای کارکردن روی کليه عناصر آرايه حلقه های for روش مناسبی هستند.


مثال. در برنامه زير کليه عناصر يک آرايه از ورودی دريافت و سپس نمايش داده می شود.

#include
int main() {
   int A[10];
   for (int k = 0; k < 10; k++) {
      cout << "Enter an integer: ";
      cin >> A[k];
      }
   for (int k = 0; k < 10; k++)
      cout << A[k] << endl;
   return 0;
}


بخاطر داشته باشيد انديس عناصر آرايه با n عنصر از 0 تا n-1 است. اگر به عنصری خارج از اين محدوده دسترسی پیدا کنید کامپایلر خطائی نمی گيرد ولی این می تواند به مشکلات جدی منجر بشود چون ممکن است روی داده برنامه های دیگر درون حافظه تاثير بگذارد.

اگر اندیس آرایه اعشاری باشد کامپايلر آن را به يک عدد صحيح گرد می کند.


مثال. در برنامه زير سعی شده به عنصری خارج از اندازه آرايه دسترسی شود. دستور myarray[10] باعث می شود مقدار 99 در محلی ذخيره شود که 6 خانه بعد از آرایه myarray است این حافظه ممکن است شامل داده لازم برای برنامه دیگر باشد.

#include
int main() {
   int myarray[5];
   myarray[10] = 99;
   cout << myarray[10] << endl;
   return 0;
}


آرایه های یک بعدی

آرايه يک بعدی (1-dimensional array) برای نگهداری ليستی از مقادير استفاده می شود. هر عنصر آرايه يک بعدی از طريق يک انديس مشخص می شود.


مثال. آرايه زير 20 مکان پشت سرهم حافظه را برای مقادير ممیز شناور اختصاص می دهد. اولین مکان با tempreture[0] بعدی با tempreture[1] و.... . آخرین عنصر tempreture[19] است.

float tempreture[20];


آرایه های چند بعدی

می توان بعدهای بیشتری به آرایه داد. در يک آرايه چند بعدی (multidimensional) به بيش از يک عدد برای دسترسی به هر عنصر آرايه نياز است. يک آرايه دو بعدی به 2 انديس و يک آرايه سه بعدی به 3 انديس نياز دارد. محدوديتی برای تعداد ابعاد آرايه در ++C وجود ندارد اما بندرت آرایه بیشتر از دو يا سه بعد دیده شده است.


مثال. آرايه زير دارای دو بعد است که اندازه هر بعد آن 4 است. بنابراين آرايه 16=4×4 عدد صحيح را نگه می دارد. به هر عدد از طریق دو اندیس دسترسی می شود. مثلا عنصر اول myarray[0][0] است.

int myarray[4][4];

آرايه های دو بعدی دارای ساختار جدولی هستند و به صورت مجموعه ای از سطرها و ستون ها ديده می شوند. جدول زیر موقعیت عناصر مثال قبل که دارای 4 سطر و 4 ستون است را نشان می دهد.

0,00,10,20,3
1,01,11,21,3
2,02,12,22,3
3,03,13,23,3

عناصر آرايه صرفنظر از تعداد بعدهای آن سطر به سطر در خانه های پشت سرهم حافظه ذخيره می شوند. برای مطالعه بيشتر درباره روش سطری می توان‍يد به بخش نمايش آرايه در درس ساختمان داده مراجعه نماييد.


 

مشارکت اجباری و اختياری

يک موجوديت در يک ارتباط می تواند به صورت اجباری (mandatory) يا اختياری (optional) شرکت کند.

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

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


مثال. هر پروژه بايد توسط يک شعبه مديريت شود. ممکن است شعبه ای باشد که پروژه ای را انجام نمی دهد.

يک جمله (statement) يک خط منفرد از کد است که عملي را انجام مي دهد. در ++C معمولا هر جمله در يک خط نوشته می شود، البته بعضی از جملات به چند خط تقسیم می شوند.

جملات هميشه به يک سميکولن (;) ختم می شوند. (به استثنای راهنماهای کامپايلر مانند define# و include#).


مثال. چند جمله در C++.

int i_accnum;
i_accnum=55555;
i_accnum=i_accnum+5;


White space

خطوط خالی و فاصله ها در برنامه white space نام دارند. کامپايلرهای C++ نسبت به خطوط خالی حساس نيستند و وقتی کد برنامه را می خوانند در جستجوی کاراکترهای جمله و ختم شدن به سميکولن هستند و فاصله ها را نديده می گيرند (ثابت های رشته ای مستثنا هستند). White space امکان فرمت بندی کد برنامه با يک طرح استاندارد برای فاصله گذاری را می دهد که باعث می شود کد برنامه خواناتر شود بدون اينکه روی اجرای آن تاثير بگذارد. هر برنامه نويسی استيل خود را ممکن است داشته باشد مهم اين است که کد برنامه خوانا باشد.

White space ها در ثابت های رشته ای که بين علامت گيومه (") قرار می گيرند مجاز نيستند. اگر می خواهيد يک رشته را به دو خط بشکنيد بايد از کاراکتر () استفاده کنيد.


مثال. جملات زير با هم معادل هستند.

x=2+3;

x = 2 + 3;

x   =
2
+
3;

مثال. جمله زير زير درست است.

cout<<"Hello
world!";


جملات پوچ

يک سميکولن تنها در يک خط خالی يک جمله پوچ (null statement) را می سازد که عملی انجام نمی دهد. گاهی جملات پوچ می توانند مفيد باشند.

جملات ترکيبی

جمله ترکيبی (compound statement) که بلاک (block) هم ناميده می شود از يک يا چند جمله که بين آکولاد محصور شده اند تشيل شده است.

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


مثال. يک بلاک از کد.

{
   cout<<"Hello, ";
   cout<<"world!";
}

 

مدل حافظه برنامه توسط راهنمای .model مشخص می شود. عملوند مقابل آن می تواند يکی از انتخاب های زير باشد:

تعداد سگمنت کدتعداد سگمنت دادهمدل حافظه
1-Tiny
11Small
بيشتر از يکی1Medium
1بيشتر از يکیCampact
بيشتر از يکیبيشتر از يکیLarge
آرايه های بزرگتر از 64KHuge
بدون سگمنت، تنها در مد محافظت شدهFlat

STC
CLC
CMC
STI
CLI
NOP


STC

دستورالعمل (set carry) stc باعث يک شدن فلگ Carry می شود. فرم کلی آن به صورت زير است:

stc

دستورالعمل stc روی فلگ های ديگر تاثير ندارد.


CLC

دستورالعمل (clear carry) clc باعث صفر شدن فلگ Carry می شود. فرم کلی آن به صورت زير است:

clc

دستورالعمل clc روی فلگ های ديگر تاثير ندارد.


CMC

دستورالعمل (compliment carry) cmc باعث عکس شدن فلگ Carry می شود. يعنی اگر صفر باشد آنرا يک و اگر يک باشد آنرا صفر می کند. فرم کلی آن به صورت زير است:

cmc

دستورالعمل cmc روی فلگ های ديگر تاثير ندارد.


STI

دستورالعمل (set interrupt) sti باعث يک شدن فلگ Interrupt می شود. فرم کلی آن به صورت زير است:

sti

دستورالعمل sti روی فلگ های ديگر تاثير ندارد.


CLI

دستورالعمل (clear interrupt) cli باعث صفر شدن فلگ Interrupt می شود. فرم کلی آن به صورت زير است:

cli

دستورالعمل cli روی فلگ های ديگر تاثير ندارد.


NOP

دستورالعمل (no operation) nop هيچ عملی انجام نمی دهد.

ساختارهای کنترلی نظير عبارات شرطی و حلقه های تکرار توسط دستورات پرش ساخته می شود. 8086 چند نوع دستورالعمل پرش را در اختيار می گذارد.

دستور پرش بدون شرط
دستورات پرش شرطی
ساختار شرط


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

دستورات پرش اجرای برنامه را به نقطه دلخواهی منتقل می کنند. دو نوع دستورالعمل پرش وجود دارد:

• دستورات پرش بدون شرط
• دستورات پرش شرطی

گونه های مختلفی از دستورات پرش وجود دارند:

• کوتاه (short). اين نوع پرش بسيار محدود است و تنها می تواند 128 بايت بالا يا پايين بپرد. مزيت آن در مصرف کمتر حافظه است. ميزان جابجائی تنها توسط يک بايت مشخص می شود که تعيين می کند چند بايت جلوتر يا عقب تر برود. اين فاصله به ثبات IP اضافه می شود.
• نزديک (near). اين نوع پرش می تواند به هر موقعيت درون يک سگمنت پرش کند.
• دور (far). اين نوع پرش اجازه حرکت به سگمنت های ديگر را می دهد.

دستور پرش بدون شرط

دستورالعمل (jump) jmp بدون هيچ شرطی کنترل را به نقطه ديگری در برنامه منتقل می کند و مشابه دستور goto در زبان های سطح بالا عمل می کند. فرم کلی آن به صورت زير است:

jmp target

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

دستورالعمل بعد از jmp هيچوقت اجرا نمی شود مگر اين که از دستور ديگری به آن پرش شده باشد.

دستور jmp به تنهائی در برنامه موثر نيست و برای ساختن ساختارهای کنترلی همراه با دستورات پرش شرطی استفاده می شود.


مثال. حلقه زير مرتب از پورت موازی داده را می خواند و بيت صفر آنرا عکس می کند. اين باعث توليد يک سيگنال مربعی روی يکی از خطوط پورت پرينتر شود.

               mov DX, 378h   ;Parallel printer port address.
Forever: in AL, DX           ;Read character from input port.
               xor AL, 1           ;Invert the L.O. bit.
               out DX, AL        ;Output data back to port.
               jmp Forever      ;Repeat forever.


دستورات پرش شرطی

دستورات پرش شرطی برای ساختن حلقه ها و عبارات شرطی مانند if بکار می روند. پرش های شرطی يک يا چند فلگ را بررسی می کنند و با توجه به وضعيت آنها کنترل را به آدرس معينی منتقل می کنند. اگر پرش انجام نشود اجرا از دستورالعمل بعد از ادامه پيدا می کند.

با توجه به اينکه دستورات پرش شرطی فلگ ها را بررسی می کنند قبل از دستور پرش بايد دستوری وجود داشته باشد که روی فلگ ها تاثير بگذارد. برای مثال بعد از اجرای دستور shl می توانيد فلگ Carry را تست کنيد تا ببينيد بيت 1 از سمت چپ عدد خارج شده است يا خير. يا بعد از دستورالعمل test می توانيد فلگ Zero را بررسی کنيد تا ببينيد بيت های مشخصی در يک عدد 1 بوده اند يا خير. البته در اکثر موارد ساختارهای کنترلی بر اساس مقايسه مقادير و توسط cmp پياده سازی می شوند. دستورالعمل cmp با توجه به حاصل تفريق دو عملوند خود فلگ ها را تنظيم می کند بنابراين می تواند برای بررسی بزرگتر، کوچکتر يا مساوی بودن مقادير استفاده شود. برای مقدارهای بدون علامت دو فلگ Carry و Zero از ثبات پرچم مهم هستند و برای اعداد علامتدار فلگ های Sign و Zero اهميت دارند. فلگ Zero در صورتی که مساوی بودن عملوند را نشان می دهد.

دستورات پرش تنها فلگ ها را بررسی می کنند و روی آنها تاثيری ندارند.

دستورالعمل های پرش شرطی انواع مختلفی دارند که همگی با حرف J شروع می شوند و بعد از آن حروف ديگر قرار می گيرند. بدنبال دستور يک آدرس يا برچسب ذکر می شود. اين دستورات را به سه دسته کلی می توان تقسيم کرد:

• دستورات پرش بر اساس فلگ ها
• دستورات پرش بعد از مقايسه عملوندهای بدون علامت
• دستورات پرش بعد از مقايسه عملوندهای علامتدار

توجه داشته باشيد که پرش های شرطی از نوع کوتاه هستند و طول پرش محدود به 128 بايت است برای غلبه براين محدوديت می توانيد ساختار شرط را توسط پرش متضاد بسازيد.

در 8086 دستورات مترادفی برای تعدادی از دستورات پرش شرطی وجود دارد. جداول زير مترادف های هر دستور را ليست می کنند. در اين جداول همچنين دستورات متضاد هر دستور شرطی نيز بيان شده است.

دستورات پرش بر اساس فلگ ها

دستورالعمل
شرط
شرح
مترادف
متضاد
jcCarry = 1پرش در صورتی که رقم نقلی وجود داردjb, jnaejnc
jncCarry = 0پرش در صورتی که رقم نقلی وجود نداردjnb, jaejc
jzZero = 1پرش در صورتی که صفر استjejnz
jnzZero = 0پرش در صورتی که صفر نيستjnejz
jsSign = 1پرش در صورتی که مثبت است-jns
jnsSign = 0پرش در صورتی که منفی است-js
joOverflow=1پرش در صورتی که سرريزی وجود دارد-jno
jnoOverflew=0پرش در صورتی که سرريزی وجود ندارد-jo
jpParity = 1پرش در صورتی که پريتی زوج استjpejnp
jnpParity = 0پرش در صورتی که پريتی فرد استjpojp

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

دستورالعمل
شرط
شرح
مترادف
متضاد
jaCarry=0, Zero=0پرش در صورتی که بالاتر استjnbejna
jnbeCarry=0, Zero=0پرش در صورتی که پايين تر يا مساوی نيستjajbe
jaeCarry = 0پرش در صورتی که بالاتر يا مساوی استjnc, jnbjnae
jnbCarry = 0پرش در صورتی که پايين تر نيستjnc, jaejb
jbCarry = 1پرش در صورتی که پايين تر استjc, jnaejnb
jnaeCarry = 1پرش در صورتی که بالاتر يا مساوی نيستjc, jbjae
jbeCarry = 1 يا Zero = 1پرش در صورتی که پايين تر يا مساوی استjnajnbe
jnaCarry = 1 يا Zero = 1پرش در صورتی که بالاتر نيستjbeja
jeZero = 1پرش در صورتی که مساوی استjzjne
jneZero = 0پرش در صورتی که نامساوی استjnzje

دستورات پرش بعد از مقايسه علامتدار

دستورالعمل
شرط
شرح
مترادف
متضاد
jgSign = Overflow يا Zero=0پرش در صورتی که بزرگتر استjnlejng
jnleSign = Overflow يا Zero=0پرش در صورتی که کوچکتر يا مساوی نيستjgjle
jgeSign = Overflowپرش در صورتی که بزرگتر يا مساوی استjnljge
jnlSign = Overflowپرش در صورتی که کوچکتر نيستjgejl
jlSign Overflowپرش در صورتی که کوچکتر استjngejnl
jngeSign Overflowپرش در صورتی که بزرگتر يا مساوی نيستjljge
jleSign Overflow يا Zero=1پرش در صورتی که کوچکتر يا مساوی استjngjnle
jngSign Overflow يا Zero=1پرش در صورتی که بزرگتر نيستjlejg
jeZero = 1پرش در صورتی که مساوی استjzjne
jneZero = 0پرش در صورتی که نامساوی استjnzje

ساختار شرط

از دستورات پرش شرطی می توان برای ساختن عبارات if استفاده کرد. به مثال های زير دقت کنيد.

مثال. در دستورات زير اگر Sum>0 باشد به AH مقدار يک را اختصاص می دهد درغير اينصورت BH را يک می کند.

          cmp Sum, 0
          jg Then
          jmp Else
Then: mov AH,1
          jmp EndIf
Else:   mov BH,1
EndIf:

مثال. در دستورات زير اگر Total>=100 and Count =0 باشد مقدار Value را با AX جمع می کند.

          cmp total, 100
          jge C2
          jmp EndIf
C2:     cmp Count, 10
          je Then
          jmp EndIf
Then: add AX, Value
EndIf:


دستورات شیفت يک رشته بیتی را به سمت راست يا چپ حرکت می دهند. توسط اين دستورات می توان روی بيت های داده کار کرد؛ داده را ادغام يا جدا کرد و عمليات محاسباتی را انجام داد. ريزپردازنده 8086 سه دستورالعمل شيفت (shl/sal، shr و sar) دارد. بخش زير هر يک از اين دستورالعمل ها را شرح می دهد.

SHL/SAL
SHR
SAR
کاربردهای شيفت


عمل شيفت بيت های داده را حرکت می دهد. حرکت بيت ها می تواند به سمت چپ (به سمت بيت های با ارزش) يا راست (به سمت بيت های کم ارزش) باشد. فلگ Carry معمولا آخرین بيت شیفت داده شده که از عملوند خارج می شود را می گيرد.

دو نوع شيفت وجود دارد: شيفت منطقی و شيفت رياضی. شيفت منطقی ساده ترين شيفت است که به طريق ساده ای بيت ها را شيفت می دهد. در شيفت رياضی علامت عدد حفظ می شود.


مثال. يک عدد شيفت داده شده يک بايتی نشان داده شده است.

Shift Example

توجه کنيد که بيت های جديدی که وارد می شوند هميشه صفر هستند.


SHL/SAL

دستورالعمل (shift left) shl يا (shift arithmetic left) sal بيت های داده را به سمت چپ حرکت می دهد. فرم کلی آنها به صورت زير است:

shl dest, count
sal dest, count

shl و sal معادل هستند و يک دستورالعمل را نشان می دهند يعنی کد يکسانی دارند. اين دستورالعمل ها هر بيت عملوند مقصد را به سمت چپ عدد به تعداد عملوند count حرکت می دهند. از سمت راست عدد 0 وارد عدد می شود و آخرين بيتی که از سمت چپ خارج می شود وارد فلگ carry می شود.

عملوند اول مقداری است که شيفت داده می شود و عملوند مقصد است. count تعداد شيفت ها را مشخص می کند و می تواند عدد 1 يا برای تعداد شيفت های بالاتر ثبات CL باشد. نوشتن تعداد شيفت بيشتر از 1 مستقيما در دستور غير مجاز است.

دستورالعمل shl/sal می تواند به صورت های زير بکار رود:

shl register, 1
shl memory, 1
shl register, CL
shl memory, CL

دستورالعمل shl/sal به صورت زير روی فلگ تاثير می گذارد:

• اگر تعداد شيفت صفر باشد فلگ ها تغييری نمی کنند.
• فلگ carry آخرين بيت خارج شده از سمت چپ عملوند را نگه می دارد.
• فلگ overflow در يک بيت شيفت يک می شود اگر دو بيت آخرعملوند متفاوت باشند. به عبارت ديگر بعد از عمل شيفت بيت علامت عدد تغيير کند. برای شيفت های بيشتر از يکبار نامعين است.
• فلگ zero، sign و parity با توجه به نتيجه تغيير می کنند.
• فلگ Auxilury Carry نامعين است.


مثال.

mov AX, 4123h
shl AX, 1    ; shift 1 bit to left, ax = 8246H, CF = 0


SHR

دستورالعمل (shift right) shr بيت های داده را به سمت راست حرکت می دهد. فرم کلی آنها به صورت زير است:

shr dest, count

دستورالعمل shr کليه بيت های عملوند مقصد را به تعداد count به سمت راست شيفت منطقی می دهد. از سمت چپ صفر وارد عملوند می شود و آخرين بيتی که از سمت راست خارج می شود وارد فلگ Carry می شود.

دستورالعمل shr مانند shl استفاده می شود؛ عملوند آن می تواند ثبات يا مکانی از حافظه باشد و تعداد شيفت ها می تواند عدد 1 يا ثبات CL باشد.

دستورالعمل shr فلگ ها را به صورت زير تنظيم می کند:

• اگر تعداد شيفت صفر باشد فلگ ها تغييری نمی کنند.
• فلگ carry آخرين بيت خارج شده از سمت راست عملوند را نگه می دارد.
• در يک بيت شيفت فلگ overflow يک می شود اگر دو بيت آخرعملوند متفاوت باشند. به عبارت ديگر اگر بعد از عمل شيفت بيت علامت عدد تغيير کند. برای شيفت های بيشتر از يکبار نامعين است.
• فلگ zero، sign و parity با توجه به نتيجه تغيير می کنند.
• فلگ Auxilury Carry نامعين است.


مثال.

mov AX, C1A5h
mov CL,3
shr AX, CL    ; shift 3 bit to right, ax = 1834h, CF = 1


SAR

دستورالعمل (shift arithmetic right) sar مانند دستورالعمل shr است با اين تفاوت که علامت عملوند تغيير را نمی دهد. فرم کلی آن به صورت زير است:

sar dest, count

اين شيفت برای اعداد علامتدار طراحی شده است و بيت های عملوند مقصد را به سمت راست شيفت رياضی می دهد و بيت علامت را در خودش کپی می کند.

دستورالعمل sar مشابه دستورالعمل shr بکار می رود و به همان صورت روی فلگ ها تاثير می گذارد.


مثال.

mov AX, C1A5h
sar AX, 1    ; shift 1 bit to right, ax = E0D2h, CF = 1


کاربردهای شيفت

مثال. فرض کنيد می خواهيد دو نيبل پائينی ثبات های AL و AH را با هم به صورت زير ترکيب کنيد. کد زير اين کار را انجام می دهد.

mov CL, 4
shl AH, CL
and AL, 0Fh
or AL, AH

مثال. فرض کنيد می خواهيد دو نيبل ثبات AL را از هم جدا کرده و نيمه سمت چپ را در ثبات AH و نيمه سمت راست را در ثبات AL به صورت زير قرار دهيد. کدهای زير اين عمل را انجام می دهد.

mov AH, AL
mov CL, 4
shr AH, CL
and AL, 0Fh

مثال. هر شيفت به چپ باعث دو برابر شدن عملوند می شود که سرعت بيشتری نسبت به عمل mul دارد. دستورالعمل های shl/sal برای ضرب مقادير علامت دار يا بدون علامت در توان های 2 استفاده می شود. دستور زير مقدار ثبات AX را در عدد 4 ضرب می کند.

mov CL,2
shl AX, CL

مثال. برای محاسبه 10×AX می توانيد به روش زير از دستورشيفت چپ استفاده کنيد (با توجه به اينکه 10×AX=8×AX + 2×AX).

shl AX, 1
mov BX, AX
shl AX, 1
shl AX, 1
add AX, BX

مثال. کدهای زير حاصلضرب AX×7 را محاسبه می کنند (با توجه به اينکه ax×7 = (ax×8)-ax ).

mov BX, AX
shl AX, 1
shl AX, 1
shl AX, 1
sub AX, BX

مثال. چون يک شيفت منطقی به سمت راست مقدار يک عدد صحيح بدون علامت را نصف می کند می توان برای تقسيم بر توان های 2 از آن استفاده کرد. دستورات زير خارج قسمت مقدار ثبات AX بر 8 را محاسبه می کنند.

mov CL,3
shr AX, CL

مثال. برای انجام تقسيم علامتدار بر توان های 2 از شيفت رياضی راست استفاده می شود. دستور زير مقدار ثبات AX را بر عدد 32 تقسيم می کند.

mov CL,5
sar AX, CL

مثال. توجه کنيد اگر عملوند منفی باشد نتيجه دو دستور sar و idiv متفاوت می شود. به دستورات زير دقت کنيد.

mov ax, -15
cwd
mov bx, 2
idiv            ;خارج قسمت 7- مي شود

mov ax, -15
sar ax, 1    ;خارج قسمت 8- مي شود

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

; CBW معادل دستور:
mov AH, AL
mov CL, 7
sar AH, CL

; CWD معادل دستور:
mov DX, AX
mov CL, 15
sar DX, CL

البته وقتی يک دستور cbw يا cwd برای گسترش وجود دارد کسی از دو دستور استفاده نمی کند، ولی دستور شيفت اجازه می دهد که مقدار يک ثبات را در هر ثبات ديگرهم اندازه ای به طور رياضی گسترش دهيد:

; DX:BX به BX گسترش رياضی:
mov DX, BX
mov CL, 15
sar DX, CL

 

آماده سازی منطق برنامه

قبل از نوشتن برنامه بايد مراحل حل مسئله را تعيين کنيد. ابتدا مشکل را شناخته، راه حل مربوط به آن را پيدا کنيد. سپس اقدام به نوشتن برنامه نمائيد.

تهيه کد برنامه

کد برنامه (source code) مجموعه عبارات يا دستوراتی است کامپيوتر را هدايت می کند تا عمل موردنظر شما انجام بپذيرد. از يک ويرايشگر متن برای وارد کردن کد برنامه استفاده کنيد. اغلب کامپايلرهای نظير Borland's Turbo C++ و Visual C/C++ همراه با يک محيط مجتمع (IDE) می آيند که اجازه تايپ، کامپايل و لينک برنامه را در يک محيط مناسب می دهند. در غيراينصورت از ويرايشگرهای متن ديگر مانند Edit، Notepad و Microsoft Windows می توانيد استفاده کنيد و برنامه خود را با فرمت ASCII روی ديسک ذخيره نمائيد.

کد برنامه را با پسوند cpp. ذخيره کنيد.

ترجمه کد برنامه

برای ترجمه يک برنامه C/C++ کامپايلرهای مختلفی وجود دارد. نسخه رايگان کامپايلر Borland C++ محيط مجتمع پياده سازی ندارد و يک کامپايلر خط فرمانی است يعنی بايد در محيط سيستم عامل DOS فرمان ترجمه برنامه صادر شود.

مثال. اگر Borland's Turbo C++ را استفاده می کنيد، برای ترجمه برنامه Hello.cpp فرمان زير را در خط فرمان سيستم عامل بايد وارد نمائيد:

bcc Hello.cpp

ترجمه برنامه در کامپايلرهای با محيط مجتمع (مانند Borland C++ 3.1) يا محيط گرافيکی (مانند Microsoft Visual C++) راحت تر صورت می گيرد. کافی است ازمنو گزينه Compile يا Run را انتخاب کنيد.

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

تهيه برنامه اجرائی

وقتی از توابع کتابخانه ای استفاده می کنيد، فايل مقصد توليد شده بايد با کد مقصد تابع کتابخانه ترکيب شود تا فايل اجرائی نهائی شکل بگيرد. اين فرآيند linking نام دارد که توسط برنامه لينکر (linker) انجام می گيرد. اگر لينکر در اين فرآيند با مشکلی مواجه نشود، يک برنامه اجرائی روی ديسک هم نام برنامه و با پسوند exe. ايجاد می شود.

اجرای برنامه

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

در اکثر کامپايلرها امکان انجام مراحل ترجمه، لينک و اجرا در يک مرحله وجود دارد، گرچه در اينجا به عنوان مراحل جداگانه مطرح شد.


مثال. اگر برنامه Hello.cpp موفق ترجمه و لينک شود فايل های Hello.obj که شامل کد زبان ماشين برنامه و Hello.exe که برنامه اجرائی توليد شده است روی ديسک ايجاد می شود. با اجرای برنامه جمله Hello, World! روی صفحه مشاهده می شود.

حافظه

حافظه مکان ذخيره برنامه ها و داده ها با امکان دسترسی مجدد به آنها است. حافظه اصلی از ديد برنامه نويس از تعدادی بيت تشکيل شده است که قادر به نگهداری صفر يا يک است. مکانيسم دسترسی به اطلاعات درون حافظه آدرس دهی است. بيت هائی که دارای آدرس يکسان هستند را سلول حافظه (cell) می نامند. هر سلول تنها می تواند شامل يک مقدارعددی باشد. طول سلول(Lc) توسط تعداد بيت های سلول مشخص می شود. در ريز کامپيوترها طول سلول هشت بيت است که به آن بايت نيز گفته می شود. خاصيت مهم سلول آدرس پذيری است، يعنی هر سلول دارای يک آدرس منحصر بفرد است. بنابراين هر بايت درحافظه نيز دارای يک آدرس منحصر بفرد است.

اغلب حافظه ها در اندازه های بزرگتراز بايت نظير کيلوبايت (1KB=210=1,024 bytes)، مگابايت (1MB=220= 1,048,576 bytes) و گيگابايت (1GB=230=1,073,741,824 bytes) بيان می شوند. يک کامپيوتر با 32 مگابايت حافظه قادر است تقريبا 32 ميليون بايت از اطلاعات را نگهداری کند.


نکته. تعداد بيت های يک کلمه بستگی به سخت افزار دارد و با Lw نشان داده می شود. همواره رابطه Lw≥Lc برقرار است. آدرس هر کلمه آدرس اولين سلول آن است.


فضای آدرسی

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

اگر آدرسی m بيت طول داشته باشد بيشترين تعداد سلول های قابل آدرس دهی 2m خواهد بود.

عناصر اصلي سيستم پايگاه داده

اجزاء اصلي سيستم بانك اطلاعاتي عبارتند از:

1. داده ها
     • شامل داده هائي درباره موجوديت هاي مختلف محيط و ارتباط بين موجوديت ها.
2. سخت افزار
     • شامل عناصر پردازشی، رسانه های ذخيره سازی داده، دستگاه هاي جانبي، سخت افزارهای ارتباطی و غيره.
3. نرم افزار
     • شامل سيستم عامل و نرم افزارهاي ارتباطي شبکه، نرم افزار سيستم مديريت پايگاه داده و برنامه هاي كاربردي.
4. رويه های عملياتی
     • شامل کليه عملياتی که روی پايگاه داده انجام می شود، نظير تهيه پشتيبان، آمارگيری و ...
5. کاربر
     • شامل كاربران يا كساني كه به نحوي با سيستم در ارتباط هستند نظير مديرپايگاه داده(DBA)، طراحان پايگاه داده (DBD)، برنامه نويسان پايگاه داده (DBP) و کاربران نهائي(end users).

ادامه مطلب...

سيستم پايگاه داده (database system)

در اين روش كليه داده ها به صورت مجتمع در پايگاه داده ذخيره می شود، ولي هر كاربر ديد خاص خود را نسبت به داده ها دارد. كاربران مختلف مي توانند به طور مشترك با پايگاه داده كار كنند. به دليل تجمع داده افزونگي به حداقل ممكن كاهش مي يابد.

نرم افزاری به نام سيستم مديريت پايگاه داده ( DBMS ) به عنوان واسطه بين برنامه هاي كاربردي و پايگاه داده ايفاي نقش مي كند لذا امنيت داده ها در اين روش بيشتر است.

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

• انجام کليه تراکنش های بانکداري
• رزرواسيون و زمانبندي خطوط هوائي
• ثبت نام دانشجويان، واحدگيری و ثبت نمرات در مراکز آموزشی
• ثبت اطلاعات مشتريان، محصولات و فاکتورهای خريد و فروش
• پيگيري سفارشات و پيشنهادات در فروش online
• ثبت رکوردهاي کارمندان و محاسبات حقوق، کسورات مالياتي در سازمان

به کانال تلگرام سایت ما بپیوندید