مرسی از نظرات خوبتون
من کم آپ میکنم شرمنده.....
man nemikham Shoharet besham....
:)) I won an iPhone. You will never believe it :O http://thecoolpics.com/mylottery.jpg <<
مدتی بود وبلاگمو آپ نکرده بودم
تصمیم گرفتم به وبلاگم برسم البته وقت چندانی ندارم
ولی تمام سعی خودمو میکنم
خوشحال میشم با نظراتتون منو راهنمایی کنید
|
t چرا باید یک وب سایت داشته باشیم ؟ | |||||||||||||||||||||||||||||||
|
با گذشت زمان و افزایش نیاز ها روش ها تغییر کرد تا آنجایی که بعضی از شرکتهای بزرگ برای اطلاع رسانی کافی رو به تهیه فیلمهای تبلیغاتی آوردند و با تکثیر و توزیع آن به اطلاع رسانی پرداختند که البته همانگونه که همه میدانیم سخت افزار حجیم و پارامتر زمان برای مشاهده این فیلمها عدم موفقیت این روش را به دنبال داشت . با پیشرفت تکنولوژی و آمدن کامپیوتر که مانند تلویزیون و سایر رسانه ها از حالت تجملاتی خارج گردیده و به یک نیاز تبدیل شده کار اطلاع رسانی ساده تر شد و اول دیسکتهای 5 1/4 و بعد3.5 رسالت انتقال دیتا و اطلاعات را به عهده گرفتند ولی کار به اینجا ختم نشد وبا به بازار آمدن دیسکهای فشرده (Compact Disk(CD)) و ابداع چند رسانه ایها (Multi Media) انقلابی بزرگ در عرصه IT بوجود آمد تا حدی که به اعتقاد بسیاری از صاحبنظران انقلابی که CD در کامپیوتر بوجود آورد از انقلابی که کامپیوتر در عرصه تکنولوژی کرد به مراتب بزرگتر بود .ضمن اینکه قابلیت فهرست گزاری و امکان دسترسی از فهرست به زیر مجموعه ها خود به تنهایی مزیت بسیار بزرگی برای استفاده از دیسک های فشرده ( و البته در نسل قبل دیسکت ) محسوب میگردد . CDها هنوز از از بهترین ابزار انتقال اطلاعات در هر زمینه ای از دیتا های کاربردی گرفته تا Multi Media ، فیلم ، موسیقی و فایلهای (Hyper Text Markup Language) Html و و و به شمار میآیند که لااقل در بازار ایران به این زودیها رقیبی نخواهد داشت چرا که برای جایگزینی سیستمی جدید به دلیل هزینه بر بودن برای استفاده کننده ها سالها وقت لازم است .( Cool Diskو MO از رقبای جدی این پدیده محسوب میگردند و به دلیل قابلیتهای متفاوت جایگزین خوبی برای CD به نظر میرسند ) . خوب ، در نظر بگیرید که ما برای تبلیغات و اطلاع رسانی نیاز به تهیه یک CD داشته باشیم . قبول کنید که برای جلب مشتری بهتر است از یک مشاورخوب استفاده کنیم و طبیعی است که برای آن هزینه خوبی هم باید پرداخت نمود ولی نباید اینرا از نظر دور داشت که در هر حال میتوانیم برای کار راه اندازی با آموزشی مختصر خودمان هم یک CD تهیه نموده و آنرا توزیع کنیم اما به یاد داشته باشید که هنوز سه عامل وجود دارد که استفاده از این وسیله سودمند را محدود میکند : a 1- هزینه پارامتر توزیع را ازاین جهت وارد بحث کردیم که آنرا نهایتا با سهولت توزیع کارت ویزیت و کاتالوگ و بروشور مقایسه کنیم . اما پیشرفت تکنولوژی راه دیگری را نیز برای اطلاع رسانی کامل و دقیق ایجاد کرده و آن استفاده از اینترنت یا بهتر بگوییم فراگیرترین رسانه است . حالا اگر توانسته باشیم مختصری به اطلاعات شما افزوده باشیم توضیح این مطلب برای ما راحت تر خواهد بود چرا که حالا میخواهیم بدانیم لزوم داشتن یک وب سایت چیست ؟ بیایید برگردیم به اولین روش تبلیغات که در ابتدای مطلب عنوان کردیم : کارت ویزیت ! اما این دفعه این کارت ویزیت را با یک تغییر کوچک در متن آن خدمتتان معرفی میکنیم : نام ، زمینه فعالیت ، سمت دارنده کارت ، تلفن ، فکس ، آدرس ، ایمیل و آدرس وب سایت ! اصلا اجازه بدهید کارت ویزیت خودمان را به شما بدهیم تا قضیه ملموس تر باشد :
به نظر میرسد حالا دیگر وقت نتیجه گیری باشد ! یک تفاوت به ظاهر کوچک ولی عملا بسیار بزرگ و اساسی . گیرنده این کارت حالا به راحتی به دنیایی از اطلاعات شرکت ما دسترسی دارد ، البته ایران 118 یک سایت صرفا تجاری نیست اما اگر بخش های مختلف این سایت از قبیل موتور جستجوی تلفن ، سرویس ایمیل فارسی ، فروش خودرو ، خرید و فروش آنلاین ، فروش اینترنت و خدمات فروش دامنه و میزبانی وب را تولیدات یا بهتر بگوییم خدمات آن بدانیم خواهیم دید که دسترسی به این اطلاعات بسیار ساده است و چون قابلیت برای رسیدن به بخش های مختلف آن از طریق یک صفحه مرجع (Home page) وجود دارد پس وقت زیادی نیز نبایدبرای گرفتن اطلاعات صرف نمود .این قضیه در حقیقت اساس ایجاد وب سایت بوده است . البته به یاد داشته باشید که ایران118 یک وب سایت دینامیک است و تفاوتهای فاحشی با یک سایت استاتیک دارد . اما شما به راحتی میتوانید برای خودتان یک وب سایت داشته باشید . مثل این دو تا کوچولو : امیرحسین و امیرشایان ! میبینید ! به همین سادگی ! یک صفحه با اطلاعات مورد نیاز . حالا میبینید که همان روش ساده نخست یعنی توزیع کارت ویزیت (که مشکل چندانی ندارد ) با توجه به اینکه مخاطب شما را به دنیای شگفت انگیزی هدایت میکند بهترین روش معرفی شما و کار تجاری شماست . در پایان بد نیست مقایسه یک سایت اینترنتی با یک کار چاپی (کاتالوگ یا بروشور) را هم ببینیم :
*توضیح: امکان معرفی به موتور جستجوهای مختلف و تبادل لینک (پیوند) از رایج ترین روشهای تبلیغات و معرفی یک وب سایت اینترنتی است که معمولا رایگان بوده و بسیاری از هزینه های بازار یابی را کاهش میدهد و خود به تنهایی و در صورتی که یک وب سایت حرفه ای طراحی گردد میتواند در رشد یک واحد تجاری یا خدماتی (وحتی شخصی) نقش به سزایی داشته باشد . |
May 19, 2007 ] بين الملل كد هاي هكرها چيست ؟
طبق گزارش هاي بدست آمده از سوي كارشناسان امنيتي دستگاه هاي همراه، به طور كلي كد هاي مخرب هكرها به سه نوع متفاوت تقسيم مي شوند در اين گزارش به انواع آنها اشاره مي كنيم .
به گزارش بخش خبر شبكه فن آوري اطلاعات ايران، از خبرگزاری سلام، به طور كلي سه نوع تهديد براي دستگاه هاي قابل حمل بي سيم وجود دارد. اولين تهديد كدهايي است كه دسترسي به محتويات دستگاه مورد نظر را ممكن مي سازد.
دومين تهديد كدهايي هستند كه با هدف به بار آوردن خرابي ها و از كار انداختن دستگاه هاي مورد نظر ساخته مي شوند.
سومين نوع تهديد نيز كد هايي هستند كه با فريب كاربر مي توانند وارد سيستم قرباني شده و اطلاعات مورد نظر را كسب كنند.نرم افزارهايي كه تلفن ها را از كار مي اندازند خسارت هاي سنگيني را براي قرباني به همراه خواهند داشت.
شركت سيمانتك در اين خصوص اعلام كرد: قربانياني كه گرفتار ويروس CommWarrior مي شوند مجبور به صرف هزينه اي بين 25 تا 50 دلار هستند تا نرم افزارهاي لازم براي گوشي هاي هاي خود را دوباره نصب كنند.
CommWarrior نوعي كرم هاي مخرب هستند كه در گوشي هاي سري 60 نوكيا منتشر مي شوند. اين كرم از طريق فناوري بلوتوث از گوشي به گوشي ديگر منتقل مي شود.
نرم افزارهايي كه كاربران تلفن همراه از طريق آن به اينترنت متصل مي شوند نيز يك نگراني بزرگ براي كاربران به شمار مي رود.در حال حاضر اكثر گوشي هاي همراه مجهز به مرورگر اينترنت اكسپلورر 6 يا اپرا هستند اما شركت موتورولا قصد دارد گوشي هاي جديدي مجهز به سيستم لينوكس را وارد بازار كند.
May 19, 2007 ] عرضهي سرويس ياهوميل ...
ياهو، عرضهي سرويس ياهوميل با ظرفيت نامحدود را آغاز كرد.
به گزارش بخش خبر شبكه فن آوري اطلاعات ايران، از ایسنا، بنا بر اعلام ياهو، تمامي اكانتهاي كاربران ياهوميل در طي ماههاي جاري ارتقا خواهند يافت و به اين ترتيب ياهو ميل اولين سرويس از ميان سه عرضه كننده سرويس ايميل در جهان خواهد بود كه ظرفيت ذخيرهي ايميل نامحدود عرضه ميكند.
بر اساس اين گزارش اغلب عرضه كنندگان اين سرويس تا سه سال پيش ظرفيت ذخيرهسازي بسياري محدودي به كاربران خود عرضه ميكردند كه از دو تا 10 مگابايت متغير بود و كاربران مجبور بودند به جاي نگهداري پيامهاي ايميل خود در سرور عرضه كنندهي سرويس، دائما آنها را حذف يا دانلود كنند. اما عرضهي جيميل از سوي گوگل و ظرفيت يك گيگابايتي صندوق دريافت ايميل آن در آوريل 2004 تحولي در اين عرصه بهوجود آورد و از آن زمان كاربران شاهد رقابت در زمينهي ظرفيت صندوقهاي ايميل در بين ياهو، گوگل و مايكروسافت بودهاست.
May 19, 2007 ] دقيقترين تصاوير موجود از زمين توليد شد
"سازمان فضايي اروپا" اعلام كرد ماهواره "ئنويست" متعلق به اين سازمان دقيقترين و مفصلترين تصاويري را كه تاكنون توسط يك ماهواره از سطح كره زمين گرفته شده، توليد كرده است.
به گزارش بخش خبر شبكه فن آوري اطلاعات ايران، از ایرنا، اين تصاوير ماهوارهاي زيست محيطي اولين محصولاتي هستند كه در چارچوب طرح ابتكاري سازمان فضايي اروپا به نام "گلوب كاور" توليد شده است. از دسامبر ۲۰۰۴و ژوئن ۲۰۰۶تقريبا ۴۰ترابايت، معادل محتواي ۴۰ ميليون جلد كتاب، عكس گرفته شده و براي توليد آميزههاي جهاني پردازش شده است.
از تركيب اين تصاوير براي ساختن الگوي گسترش و تاثيرات تغييرات آب و هوايي و مطالعه اكوسيستمها استفاده ميشود.
اين تصاوير حاصل فعاليت يكي از تجهيزات ئنويست به نام MRISاست كه براي تصويربرداري در يك مدار قطبي در ارتفاع ۸۰۰كيلومتري با حداكثر دقت عمل ميكند كه دقت آن معادل دقت تصاويري است كه از ارتفاع ۳۰۰متري گرفته ميشود.
دانشمندان سازمان فضايي اروپا اعلام كردند اين نقشه جهاني پوشش زمين ده برابر دقيقتر از تمامي نقشههاي ماهوارهاي است كه تاكنون از جهان گرفته شده است.
اولين نشست مشاورهاي كاربران گلوب كاور در روز ۲۰ژوئن در "ايسپرا" در ايتاليا برگزار خواهد شد.
در جريان اين نشست كاربران درباره كيفيت اولين محصولات و چگونگي استفاده از آنها در كارشان بحث و مشورت خواهند كرد.
با افزوده شدن ویژگی نمایش چشمانداز خیابانی در سرویس نقشهی گوگل، كاربران اینترنتی آمریكایی میتوانند از مرورگر وب خود به طور مجازی در اطراف شهر به گردش پرداخته و در خیابانها قدم بزنند.
گوگل اعلام كرد كه امكان مشاهدهی نقشهی خیابانهای شهرهای مختلف آمریكا را فراهم كرده كه به كاربران وب، چشماندازی با تصاویر 360 درجهای از خیابانها را در كنار نمای كلی از بالای شهرها كه پیش از این در Google Maps عرضه كرده بود، میدهد.
بنا بر اعلام گوگل، با عرضهی ویژگی جدید در Google Maps، تصاویر خیابان برای نقشههای منطقهی سانفرانسیسكو، نیویورك، لاس وگاس، دنور و میامی موجود بوده و به زودی در نقشههای مناطق دیگر نیز منظور میشوند.
به این ترتیب كاربران میتوانند در سرویس Google Maps، از مرورگر وب خود به طور مجازی به گردش در خیابانهای شهر پرداخته، رستورانها و مراكز دیگر را چك كرده و حتی در ایستگاه اتوبوس و علامت خیابانها برای تهیهی نقشهی سفر زوم كنند.
گوگل همچنین از طرح خود برای عرضهی ابزار Mapplets خبر داد كه به طراحان نرمافزاری مستقل امكان ساخت برنامههای كوچكی را میدهند كه میتوانند در كنار سرویس Google Maps به نمایش درآیند.
با كمك این ابزار میتوان اطلاعات متنوعی را همچون اندازهگیری مسافت میان دو نقطهی موجود در نقشه را نمایش داد.
برگرفته از : ایسنا
| ترفند های کامپیوتر |
|
سلام دوستان من امروز تصمیم دارم که آموزش پیوند زدن وبلاگ به پسوند .tk به شما آموزش بدم.پسوند . tk یعنی اگه اسم وبلاگ شما مثلاwww.angledevil.blogfa.com باشد وقتی پسوند .tk را به آن متصل کنید اینجوری میشه مثل :www.angledevil.tk تقریبا مثل یک سایت. خوب بریم سر اصل مطلب :
ما برای این کار ابتدا باید وارد سایت http://dot.tk/ شویم.بعد در صفحه ای که باز می شه باید یه اسم انتخاب کنیم. این اسمی که انتخاب می کنید اسم سایت شما هستش پس در انتخاب او ندقت کنید خوب پس از انتخاب کردن اسم بر روی next کلید کنید. خوب در اینجا دو تا احتمال وجود داره 1-این اسمی که شما انتخاب کردید یا قبلا به ثبت رسیده یا اینکه قبلا به ثبت نرسیده. اگه یه صفحه باز شد و بالای اون صفحه داخل یه کادر سبز نوشته بودDot TK Its FREE و زیر کادر سبز هم گزینه ی Free domin علامت خورده باشه یعنی این اسمی که شما انتخاب کردید تکراری نیست و شما قادر به ثبت آن هستید. ولی اگر صفحه ای به غیر از این صفحه ای که من بالا براش توضیح دادم باز شد یعنی این آدرس قبلا توسط یه نفر دیگر ثبت شده و شما قادر به ثبت اون نیستید. و خود اون سایت هم در زیر برای شما چند تا مثال زده که شما اگه هر کدومرا پسند کردید روش کلید کنید و next را بزنید. و اگر هم صفحه ی اول برای شما باز شد وقت کافیه که بر روی next کلید کنید تا وارد مرحله ی بعد شوید. بعد از اینکه دامین شما مشخص شد و شما بر روی next کلید کردید وارد صفحه ای می شین که برای بار اول وارد اون شده بودید. در قسمت وسط صفحه در قسمت Your Website URL آدرس وبلاگتون را بنویسید و در قسمت زیرین در قسمت Yor E-Mail addrees اسم ایمیل خودتون را وارد کنید و دقت کنید که اسم ایمیل را درست وارد کنید چون در ادامه با این ایمیل سرو کار دارید. در قسمت زیر هم کد درون تصویر را وارد کنید و بر روی next کلید کنید. اگه تمامی مراحل کار را درست انجام داده باشید وارد صفحه ای می شید که بالای صفحه در کادر سبز نوشته شده Your rigestration has succeeded! اگه وارد چنین صفحه ای شدید کار اصلی دیگه تمومه . حالا وارد همون ایمیلی که در قسمت بالا وارد کردید و گفتم مهمه یه ایمیل تحت عنوان Dot TK توجه:حتما اگر ایمیلی تحت این عنوان در قسمت Inbox خودتان نبود حتما به Bulk خودتون سر بزنید چون مال خودم رفته بود اونجا. خوب حالا اون ایمیل را باز کنید و محتویات اونو بیارین: حالا باید اون لینکی که از همه طولانی تره را باز کنید . هر کسی یه لینک خاصی داره . در ضمن در قسمت میانی هم یه کد داده شده که باید اونو کپی کنید چون کاریش داریم. خوب وقتی اون لینک طولا نی را باز کردید Type in the cod … همون کدی را که گفتم کپی کنید را در اون قسمت paste کنید و بر روی confirm کلید کنید.
حالا اگه خواستین وارد مدیریت دامین خودتون بشین به این صفحه رجوع کنید و ایمل و پسورد خودتون را وارد کنید و بر روی Login کلید کنید. فکر نکنم کسی بتونه بهتر از این توضیح بده و لی اگه مشکلی بود حتما تو قسمت نظران اعلام کنید تا من به شما پاسخ بدم. امیدوارم خوشتون اومده باشه فقط نظر یادتون نره
سلام دوستان من امروز می خوام طرز تهیه ی یه ویروس خوشمزه را به شما آموزش بدم. بریم سر دستور ساخت این ویروس: اين ويروس ساختنش كاري نداره ولي اگه كسي بازش كنه .............. به سمت بهشت زهرا ارسال مي
شه . حالا طرز كار : يكNotepad باز كرده و درون آن بنويسيد : Format c:/autotest بعد با پسوندbat
ذخيره كنيد . اين ويروس موقع اجزا شدن درايو C رو فرمت مي كنه به طوري كه نه مي شه اطلاعاتي
توش ريخت نه مي شه فرمتش كرد
امیدوارم خوشتون اومده باشه فقط نظر یادتون نره
سلام عزیزان من امروز با یکی دیگر از ترفند های اینترنت در خدمت شما هستم . من امروز می خوام به شما آموزش بدم که چه جوری می شه سرعت دانلود کردن را ۵۰ برابر کنیم؟ خوب بریم سر اصل مطلب: بر روی صفحه ی اصلی کامپیوتر(Desktop) راست کلید کرده و وارد Properties شوید و به قسمتDesktop بروید و بر روی Customize Desktop کلید کنید و به قسمت Web بروید و بر روی Properties کلید کنید و به قسمت Download بروید. و مربع Limit hard-disk usage for this page to را علامت بزنید و عدد ۵۰ را به ۱۰۰۰ تبدیل کنید و ok را بزنید . اگر مراحل کار را درست انجام داده باشید سرعت دانلود کردن شما ۵۰ برابر می شود. امیدوارم خوشتون اومده باشه فقط نظر یادتون نره
این
مورد پایین در مورد کارتهای معروف جواب نمی دهد
سلام عزیزان من امروز می خوام به شما آموزش بدم که چه جوری کارت اینترنت خود را بی نهایت کنید. از منوی start وارد Run شده و این جمله را تایپ کنید system.ini و ok را بزنید اگه مراحل کار را درست طی کرده باشید یه Note pad باز می شه تو این Note pad به دنبال عبارت [386enh] بگردید و زیر اون این کدها را کپی کنید: Com0@00 Irq0000@0 Buffer=1024 وقتی کدها را کپی کردید صفحه را ذخیره کنید . من مطمئن هستم که اگه مراحل کار را درست طی کرده باشید کارت شما هیچ وقت تموم نمی شه. |
|
1:
این قابلیت یکی از جالب ترین قابلیت های ویندوز میباشد به این صورت که شما در صورت فعال کردن ان دیگر لازم نیست کلیدها کنترل آلت و... را همزمان نگه دارین و متوانید با فعال کردن این قابلیت این کلید ها را تک تک زده و بعدی را بگیرید این قابلیت بیشتر برای افرادی که امکان استفاده از دو دست را ندارن طراحی شده
برای فعال کردن این قابلیت کلید شیفت را ۵ بار زده و روی ok کلیک کنید 2: ترفند های کوچک دیسکانکت شدن و خاموش کردن خودکار کامپیوتر بعد از دانلود فایل
برای این کارنیاز به نرم افزار dap دارید بعد از نصب این نرم افزار البته نسخه ۸ دارد منوی auto شده و گزینه disconnect after download را انتخاب میکنید برای خاموش شدن کامپیوتر نیز از همان منو گزینه shut down after downloadرا انتخاب میکنید و با خیال راحت میتواند به بیرون از خانه بروید چون کامپیوتر شما بعد ا دانلود خاموش میشود |


|
آذرخش از نگاه عکاسان بريتانيايی | |
| توضیح: |
تغييرات ناگهانی آب و هوايی در چند روز گذشته در بريتانيا به خصوص در جنوب انگلستان رعد و برق، بارش شديد باران و طوفانهای غير منتظره ای در پی داشت. عکسهای اين مجموعه ثبت لحظات وقوع رعد و برق در جنوب انگلستان است که از روز پنجشنبه آغاز شد.
|
|
جزيره بورا بورا | |
| توضیح: |
بورا بورا يکي از جزيره هاي مجمع الجزاير ليوارد در اقيانوس آرام است که متعلق به فرانسه مي باشد.
|
1920: نمایش نامه نویس چک اسلواکی Karl capek، کلمه ربات را در نمایش«رباتهای جهانی روسیه» استفاده کرد این جمله از کلمه چکی « Robota» به معنی« کوشش ملال آور» آمده است.
1938: نخستین الگوی قابل برنامهریزی که یک دستگاه سمپاشی بود، توسط دو آمریکایی به نامهای Willard pollard و Harold Roselund برای شرکت devilbiss طراحی شد.
1942: ایزاک آسیموفRunaround را منتشر کرد و در آن قوانین سهگانه رباتیک را تعریف کرد.
1946: ظهور کامپیوتر: George Devol، با استفاده از ضبط مغناطیسی، یک دستگاه playback همه منظوره، برای کنترل ماشین به ثبت رساند. John Mauchly اولین کامپیوتر الکترونیکی (ENIAC) را در دانشگاه پنسیلوانیا ساخت. در MIT، اولین کامپیوتر دیجیتالی همه منظوره (Whirl wind) اولین مسئله خود را حل کرد.
1951: در فرانسه Reymond Goertz اولین بازوی مفصلی کنترل از راه دور را برای انجام مأموریت هستهای طراحی کرد. طراحی آن مبتنی بر کلیه روابط متقابل مکانیکی بین بازوی اصلی و فرعی با استفاده از روش متداول تسمه و قرقره بود که نمونههایی برگرفته از این طرح هنوز هم در مواردی که نیاز به لمس نمونههای کوچک هستهای است، دیده میشود.
1954: George Devol اولین ربات قابل برنامهریزی را طراحی و عبارت جهانی اتوماسیون را ابداع کرد. این امر زمینهای برای نامگذاری این شرکت به Unimation در آینده شد.
1959: Marvin Minsky و John McCarthy آزمایشگاه هوش مصنوعی را در MIT بنا نهادند.
1960: Unimation توسط شرکت Coudoc خریداری شد و توسعه سیستم رباتهای آن آغاز گردید. کارخانجات ساخت تراشه مانند AMF پس از آن شناخته شدند و اولین ربات استوانه ای شکل به نام Versatran که توسط Harry Johnson&Veljkomilen kovic طراحی شده بود، فروش رفت.
1962: جنرال موتورز اولین ربات صنعتی را از Unimation خریداری کرد و آن را در خط تولید خود قرار داد.
1963: John Mccarthy آزمایشگاه هوش مصنوعی دیگری از دانشگاه استنفورد بنا کرد.
1964: آزمایشگاههای تحقیقاتی هوش مصنوعی در M.I.T ،مؤسسات تحقیقاتی استنفورد (SRI)، دانشگاه استنفورد و دانشگاه ادین برگ گشایش یافت.
1964: رباتیک C&D پایه گذاری شد.
1965: دانشگاه Carnegie Mellon مؤسسه رباتیک خود را تأسیس کرد.
1965: حرکت یکنواخت ( Homogeneous Trans formation) در شناخت نحوه حرکات ربات به کار رفت. این روش امروزه به عنوان نظریه اسامی رباتیک وجود دارد.
1965: ژاپن ربات Verstran ( نخستین رباتی که به ژاپن وارد شد) را از AMF خریداری کرد.
1968: کاوازاکی مجوز طراحی رباتهای هیدرولیک را از Unimation گرفت و تولید آن را در ژاپن آغاز کرد.
1968: SRI،Shakey (یک ربات سیار با قابلیت بینایی و کنترل با یک کامپیوتر به اندازه یک اتاق) را ساخت.
1970: پروفسور victor sheinman از دانشگاه استنفورد بازوی استاندارد را طراحی کرد. ساختار ترکیب حرکتی او هنوز هم به بازوی استاندارد معروف است.
1973: Cincinnate Milacron اولین مینی کامپیوتر قابل استفاده تجاری که با رباتهای صنعتی کنترل می شد(T3) را عرضه کرد. ( طراحی توسطRichard Hohn )
1974: پروفسور Victor Scheinman، سازنده بازوی استاندارد، Inc Vicarm را جهت فروش یک نسخه برای کاربردهای صنعتی ساخت. بازوی جدید با یک مینی کامپیوتر کنترل میشد.
1976: Vicarm Inc در کاوشگر فضایی وایکینگ 1و2 استفاده شد. یک میکرو کامپیوتر هم در طراحی vicarm به کار رفت.
1977: یک شرکت ربات اروپایی (ASEA)، دو اندازه از رباتهای قدرتمند الکتریکی صنعتی را عرضه کرد که هر دو ربات از یک کنترلر میکرو کامپیوتر برای برنامه ریزی عملکرد خود استفاده میکردند.
1977: Inc, Unimation vicarm را فروخت.
1978: unimation با استفاده از تکنولوژی Vicarm ( puma) ماشین قابل برنامهریزی برای مونتاژ( puma) را توسعه داد . امروزه همچنان میتوان puma را در بسیاری از آزمایشگاههای تحقیقاتی یافت.
1978: ماشین خودکار Brooks تولید شد.
1978: IBM و SANKYO ربات با بازوی انتخاب کننده، جمع کننده و مفصلی (SCARA) که در دانشگاه Yamanashi ژاپن برنامهریزی و تولید شده بود، را فروختند.
1980: Cognex تولید شد.
1981: گروه رباتهای CRS عرضه شد.
1982: Fanuc از ژاپن و جنرال موتورز درGM Fanuc برای فروش ربات در شمال آمریکا قرار داد بستند.
1983: تکنولوژی Adept عرضه شد.
1984: Joseph Engelberger ایجاد تغییرات در رباتیک را آغاز کرد و پس از آن نام رباتهای کمکی (Helpmate) به رباتهای خدماتی توسعه یافته (developed service Robots) تغییر یافت.
1986: با خاتمه یافتن مجوز ساخت Unimation، کاوازاکی خط تولید رباتهای الکتریکی خود را توسعه داد.
1988: گروه Staubli، Unimation را از Westing house خرید.
1989: تکنولوژی Sensable عرضه شد.
1994: یک ربات متحرک شش پا از مؤسسه رباتیک CMUیک آتشفشان در آلاسکا را برای نمونهبرداری از گازهای آتشفشانی کاوش کرد.
1997: ربات راهیاب مریخ ناسا از زمانیکه ربات وارد مریخ شد تصاویری از جهان را ضبط و ربات سیار Sojourner تصاویری از سفرهایش به سیارههای دور را ارسال کرد.
1998: Honda نمونه ای از p3 (هشتمین نمونه در پروژه طراحی شبیه انسان ) که در 1986 آغاز شده بود را عرضه کرد.
2000: Honda نمونه آسیمو نسل بعدی از سری رباتهای شبیه انسان را عرضه کرد.
2000: Sony از ربات شبیه انسان خود که لقب SDR ( Sony Dream Robots) را گرفت، پرده برداری کرد.
2001: Sony دومین نسل از رباتهای سگ Aibo را عرضه کرد.
2001: سیستم کنترل از راه دور ایستگاه فضایی(SSRMS ) توسط مؤسسه رباتیک MD در کانادا ساخته و با موفقیت به مدار پرتاب شد و عملیات تکمیل ایستگاه فضایی بینالمللی را آغاز کرد.
اعتياد به اينترنت
اعتياد به مواد مخدر و سيگار محدود نمى شود. در جهان انسان هاى بسيارى وجود دارند كه به تلويزيون و اينترنت معتادند، عده اى به قمار و عده اى به بازى هاى كامپيوترى. عده اى به كتاب خواندن معتاد شده اند وعده اى ديگر به كارشان. اعتياد به اين پديده ها، معمولاً ريشه در فرار از زندگى اجتماعى دارد. اين هفته نگاهى به مسأله «اعتياد اينترنتى» مى اندازيم و هفته هاى بعد انواع ديگر اعتيادهاى اجتماعى را مورد بررسى قرار مى دهيم.
آيا تا به حال خانواده تان به شما گفته اند كه زياد پشت كامپيوتر مى نشينيد؟ آيا دوستانتان به شما تذكر داده اند كه غير اجتماعى و حساس شده ايد؟ آيا تا به حال تا ساعت سه صبح بيدار مانده ايد تا در سايت هاى اينترنت بچرخيد و موسيقى و پس زمينه دانلود كنيد؟ آيا غذايتان را پشت كامپيوتر مى خوريد و فقط وقتى از اينترنت بيرون مى آييد كه اعتبار كارت تان تمام شده باشد؟ اگر جوابتان مثبت است بايد بگويم شما هم يكى از ميليون ها نفرى هستيد كه در جهان به صفحه كامپيوتر و اينترنت معتادند.
«اعتياد به اينترنت» (IAD) پديده بسيار جديدى است كه هنوز بسيارى با آن كنار نيامده اند. عده اى معتقدند نمى توان علاقه عده اى به وبگردى را با اعتياد به مواد مخدر، الكل و ياحتى سيگار مقايسه كرد. اصطلاح «اعتياد به اينترنت» كمتر از ده سال است كه ميان روانشناس ها و كلينيك هاى درمانى رايج شده و بسيارى از متخصصان اعتياد هنوز بر سر آن اختلاف نظر دارند. در جامعه هم اين تصور عمومى وجود دارد كه مردم، خود خواسته پاى كامپيوتر يا اينترنت مى نشينند، در حاليكه اعتياد به مواد مخدر يا امثال آن، چندان به اراده و خواست مربوط نمى شود.
با اين همه تحقيقات گسترده اى كه روى كاربران اينترنتى صورت گرفت، به روشنى نشان داد بسيارى از آنها به اينترنت معتادند. در تحقيقى كه دانشگاه پيتسبورگ بر روى ۳۶۰ كاربر اينترنتى انجام داد، معلوم شد كسانى كه به چت روم ها، وبگردى و ايميل وابسته شده اند به علايمى شبيه الكلى ها يا معتادان به مواد مخدر دچارند. بسيارى از آنها از بى خوابى رنج مى برند. اما نمى توانند از كامپيوتر خود دل بكنند، آن ها هميشه خسته هستند. روابط شان با اطرافيان و جامعه به حداقل رسيده و هنگامى كه از اينترنت بيرون مى آيند حالتى عصبى دارند. مهمترين ويژگى معتادان به اينترنت دروغگويى آنها است. آنها مدام به اطرافيان خود اينگونه وانمود مى كنند كه در اينترنت، كار مهمى دارند.
در واقع اينترنت نيز مانند الكل و قمار، فضايى است براى گريختن از دنياى واقعى. معتادان به اينترنت حداقل ۶۰ ساعت در هفته در چت روم ها و سايت هاى بازى وقت مى گذرانند. بعد از اين دو، ايميل و سايت هاى خبرى بيشترين كاربران را به خود جلب مى كند. اما زمان معيار درستى براى سنجش اعتياد به اينترنت نيست. بسيارى از آدم ها بيشتر از ۶۰ ساعت در هفته پاى اينترنت مى نشينند چرا كه كار آنها به نوعى به اين دنيا وابسته است.
مسلماً نمى شود آنها را جزو معتادان به اينترنت به حساب آورد. براى تشخيص معتادان اينترنتى از ديگران بايد رفتار آنها را مورد ارزيابى قرار داد و ديد آنها در اينترنت چه كار مى كنند. مثلاً معتادان اينترنتى هميشه كنترل زمان را از دست مى دهند و وقتى پا به دنياى وب مى گذارند، كاملاً با دنياى بيرون قطع رابطه مى كنند. بيشترين معتادان به اينترنت پسران جوان و زنان ميانسال هستند. بسيارى از جوان ها تا صبح در اينترنت وقت مى گذرانند بى آنكه متوجه باشند تكاليف درسى آنها نانوشته باقى مانده. زنان بسيارى هم وقتى براى وقت كشى وارد اينترنت مى شوند ، ديگر فراموش مى كنند براى بچه هايشان غذا بپزند يا براى همسرشان وقت دكتر بگيرند. معمولاً كاربران معتاد خود متوجه نتايج مخرب وبگردى هاى طولانى خود نمى شوند. آنها نه تنها اطرافيان، بلكه خودشان را هم ناديده مى گيرند. دوسال پيش بود كه خبر مرگ يك جوان چينى بعد از نشستن سه روز بى وقفه پشت كامپيوتر همه را تكان داد. يا سال گذشته ماجراى پدرى كه بچه خود را در وان حمام گذاشت و تا پر شدن وان به سراغ ايميل هايش رفت و بچه خود را فراموش كرد. ماجراى مرگ اين پسر كوچك يا آن جوان چينى روانشناس ها و بسيارى از مردم جهان را متوجه اين مسأله كرد كه در آستانه قرن بيست و يكم، نا بهنجارى جديدى در جوامع سر بر آورده كه بايد به دقت آن را مورد بررسى قرار داد.
در تحقيقى كه سال ۲۰۰۰ بر روى هجده هزار كاربر اينترنتى در آمريكا و كانادا صورت گرفت معلوم شد تنها ۵.7 درصد مردم براى استفاده معين و از پيش تعيين شده وارد اينترنت مى شوند. علاوه بر اين در اين تحقيق معلوم شد كه بيشترين درگيرى جوانان و خانواده هايشان، بر سر هزينه تلفن و اتصال به اينترنت است. بسيارى از جوان ها مى گفتند هيچ وقت نتوانسته اند با دل سير از پاى كامپيوتر بلند شوند. هميشه يا خانواده شان به تلفن احتياج داشته اند يا اعتبار كارت شان تمام شده. نكته مهم اينجاست كه معتادان اينترنتى، حتى هنگامى كه از اينترنت بيرون مى آيند هم تبديل به شهروندانى عادى نمى شوند. آنها مدام در فكر سايت هايى هستند كه به تازگى ديده اند و هزاران سايتى كه بايد ببينند.
نيكولاس مى گويد: «من هر وقت از مدرسه به خانه مى آمدم بايد بلافاصله به اينترنت متصل مى شدم... مى ترسيدم از چيزى عقب بمانم... در تابستان، خوابم به هم ريخته بود و حسابى لاغر شده بودم.» خانواده نيكولاس او را پيش يك روانپزشك بردند و نيكولاس پس از مصرف قرص هاى ضد افسردگى و مسافرتى دو هفته اى به تركيه، توانست تمايل كشنده خود به اينترنت را كنترل كند.
اما دكتر فريس در كتاب خود با عنوان «اعتياد به اينترنت و راه هاى مقابله با آن» از دخترى ۱۷ ساله حرف مى زند كه از علايم اعتياد به اينترنت رنج مى برد. فريس مى گويد وقتى او را به مركز ترك اعتياد آوردند، آن قدر عصبى بود كه صندلى ها را به اين سو و آن سو پرتاب مى كرد.
اعتياد به اينترنت، مانند هر اعتياد ديگرى مى تواند به نابودى زندگى اجتماعى، تحصيلى و حتى مالى انسان ها بينجامد. بسيارى براى مبارزه با اين كشش مقاومت ناپذير، مودم هاى خود را خرد كرده اند و چند ماهى با دنياى جذاب اينترنت خداحافظى كرده اند. با اين حال چه كسى مى تواند بيشتر از يك هفته در برابر جذبه سايت هاى رنگ رنگ اينترنت ، مقاومت كند.
چند نكته براي حفاظت از ويندوز
*
ايميلهاي قديمي را پاك كنيد، ايميلهايي كه به خصوص با فايلها پيوست شده (عكس، فيلم و فايلهاي موسيقي) ارسال شدهاند، سرعت و قدرت كامپيوتر را كاهش ميدهند. به همين دليل، تمام ايميلهاي خود را به طور كامل بررسي كنيد و آنهايي را كه ديگر احتياج نداريد، پاك كنيد.آشنايي با زبان برنامه نويسي Visual Basic
Visual Basicيك زبان برنامه نويسي قوي و ابزاري است كه ضمن سادگي و سهولت فراگيري داراي توانائيهاي فوقالعادهاي ميباشد كه به برنامه نويسان امكان نوشتن هر سيستمي را خواهد داد.
اين زبان يكي از سريعترين و سهلترين ابزارهاي موجود جهت ايجاد برنامههاي كاربردي تحت اين سيستم عامل WINDOWS ميباشد كه توسط شركت MICROSOFT تهيه شده است.
فراگيري اين زبان فقط محدود به استفاده در زبان برنامه نويسي Visual Basic نبوده بلكه بسياري از برنامههاي كاربردي موجود تحت سيستم عامل WINDOWS از قبيل Microsoft Excel و Microsoft Access نيز از همين زبان استفاده مينمايند. همچنين برنامه نويسي در محيط WEB نيز براي كساني كه با اين زبان آشنايي داشته باشند بسيار ساده ميباشد زيرا دستورات اين زبان جهت نوشتن برنامههاي مذكور تحت عنوان VB script كه كاملاًمشابه دستورالعملهاي VB است بكار گرفته است.
محيط و ابزارهاي برنامه نويسي زبان Visual Basic
محيط كاري و فضايي كه توسط V.B براي برنامه نويسان بوجود ميآيد محيط توسعهاي مجتمع شده يا Integrated Development Environment نام دارد كه به اختصار IDE گفته ميشود زيرا اين محيط به طور يكپارچه در بر گيرنده توابع مختلف زيادي است كه هر يك جهت كاربرد در موارد گوناگوني نظير طراحي، كد كردن، ترجمه برنامه و رفع اشكال احتمالي استفاده ميشوند.
براي اجراي برنامه V.B و بهره گيري از آن ميتوانيد مراحل زير را انجام دهيد:
1ـ دكمه Start را در برنامه Windows انتخاب نماييد.
2ـ در منوي نمايش داده شده Program را انتخاب كنيد.
3ـ در منوي جديد برنامه Windows Basic راانتخاب كرده وبا فعال شدن آن فايل اجرايي (Executable) مربوط به Visual Basic را انتخاب نماييد و سپس بر روي آن دوبار پياپي كليد سمت چپ موس را فشار دهيد.
پس از مدت كوتاهي شما برنامه رابط تشريح شده فوق را ملاحظه ميكنيد.
صفحه ارتباط كاربران IDE و ايجاد پروژه جديد
ايجاد يك برنامه كاربردي
اولين قدم براي بوجود آوردن يك برنامه كاربردي توسط زبان V.B ايجاد يك فرم رابط جهت برقراري ارتباط بين كاربر و كامپيوتر ميباشد كه توسط آن كاربران نيازها و عمليات دلخواه خود را انتخاب و دستور اجراي آن را به كامپيوتر ميدهند. اين فرم رابط كه با اجراي برنامه نمايان ميشود، اساسيترين و اولين بخش از برنامه است كه مربوط به قسمت Visual part سيستم ميباشد.
فرمها (Format) و كنترلها (Controls) اساسيترين بخش بوجود آورنده اين ارتباط بوده و شما با استفاده از آنها قادر به ساختن برنامه كاربردي خود ميباشيد.توسط فرمها در برنامههاي كاربردي چگونگي نمايش صفحات رابط و ويژگيهاي آنها بر روي كامپيوتر تعريف ميگردد. اين ويژگي شامل پاسخ گويي مناسب eventهاي ايجاد شده توسط كاربران درهنگام ورود اطلاعات و يا انتخاب عمليات توسط آنها ميباشد.
بدين ترتيب با استفاده از دستورالعملهاي زبان V.B ميتوان ويژگيهاي فرمهاي رابط را به صورت مناسب تنظيم نمود و كليه نيازمنديهاي مربوط به سيستم را بر روي صفحات رابط در قالب فرمهاي مناسب نمايش داد. يكي از مهمترين ابزاري كه در فرمها وجود دارد كنترلها (Controls) ميباشند كه داراي انواع مختلف بوده و بر يك داراي ويژگيهاي مختص به خود ميباشند. توسط كنترلها ميتوان پاسخ مناسب براي وقايع (events) خاصي را كه بوجود ميآيند فراهم نمود.
به عنوان مثال توسط آنها ميتوان شرايط لازم به منظور دريافت اطلاعات از كاربران، نمايش اطلاعات و متنهاي لازم بر روي فرمها و يا امكان دسترسي و اجراي برنامههاي ديگر را كه بايد براي پردازش اطلاعات فعال شوند را مهيا نمود. بنابراين هر يك از فرمها و كنترلها شامل يكسري ويژگي (Property)، روش (method) و كنترل وقايع (events) ميباشند.
با توجه به مطالب فوق ميتوان دريافت كه مهمترين عامل در ايجاد فرمها عبارتند از:(خصايص)، Methods روشها)و Events وقايع.
طراحي فرم
به منظور ايجاد يك فرم ابتدا برنامه V.B را در شاخهآي كه قبلاً آن را نصب كردهايد اجرا نماييد. با اجراي آن به طور اتوماتيك يك پروژه جديد براي تهيه برنامه كاربردي مورد نظر باز ميشود (توجه داشته باشيد كه هر برنامه كاربردي تحت عنوان يك پروژه قراردارد) .سپس Icon مربوط به Standard.EXE را انتخاب نماييد. بدين ترتيب به طور اتوماتيك يك پروژه به نام Project براي شما ايجاد و رابط طراحي فرم آماده دريافت اطلاعات از شما ميباشد. (
در هر پروژه اولين فرم ايجاد شده به طور اتوماتيك fram1 نامگذاري ميشود و فرمهاي بعدي به ترتيب fram2 و .... نامگذاري ميشوند. البته شما قادر خواهيد بود كه اسامي فرمهاي ايجاد شده را به دلخواه خود تعيين و از اسامي پيش فرض سيستم استفاده نكنيد.
هر فرم داراي Property، Method و Eventهاي خود ميباشد و توسط آنها شما ميتوانيد چگونگي ظهور و نوع رفتار آن را در قبال عملياتي كه توسط كاربر انجام ميشود را كنترل و هدايت نمايد.
اولين قدم در طراحي و ايجاد يك فرم تنظيم ويژگيهاي (property) آن ميباشد. شما ميتوانيد با استفاده از ابزارهاي طراحي مانند آنچه در قبل گفته شد هنگام طراحي (Designtime) و يا با دستورات برنامه نويسي در هنگام اجرا (Run time) آنها را تنظيم نماييد.
پنجره ايجاد فرم جديد
تنظيم ويژگي Property در فرمها
بسياري از Property هاي موجود در فرم، اثر مستقيم در نحوه نمايش در زمان اجرا دارند. يكسري از مهمترين Propertyها و نحوه عملكرد آنها بشرح ذيل ميباشد:
Captain:
نام فرم توسط آن تعيين شده و در هنگام اجراي برنامه و نمايش فرم در خط اول بالاي آن (Titlebar) نشان داده ميشود.
Icon:
تعيين كننده اين است كه درهنگام حداقل نمودن اندازه فرم نشان داده ميشود.
Max Button – Min Button:
تعيين كننده اين است كه آيا امكان كوچك و بزرگ كردن فرم وجود داشته باشد يا نه.
Boarder Style:
تعيين كننده رفتار فرم هنگام تغيير اندازه آن زمان نمايش فرم ميباشد.
Height-Width:
مشخص كننده اندازه اوليه فرم در هنگام نمايش آن است.
Left-Top:
مشخص كننده محل شروع نمايش فرم بر روي صفحه نمايش كامپيوتر نسبت به گوشه سمت چپ و بالاي آن است.
Windows State:
مشخص كننده اينكه در هنگام شروع نمايش فرم اندازه آن طبيعي، حداقل و يا حداكثر باشد.
Name:
براي تخصيص نام به فرم بكار مي رود تا با استفاده از آن بتوان هنگام نوشتن برنامه (Coding) به فرم مراجعه نمود.
اگر هنگام طراحي نياز به اطلاعات بيشتري در ارتباط با Propertyها داشته باشيد ميتوانيد با انتخاب آن و زدن كليد F1 اطلاعات مورد نياز را مشاهده نماييد. به منظور مشاهده پنجره Property، هنگامي كه در مرحله طراحي هستيد و فرم شما بر روي صفحه است ميتوانيد با زدن كليد F4 و يا انتخاب View از منوي بالاي پنجره نمايش داده و انتخاب Properties Window آن را فعال نماييد.
Method
و Eventها در فرمفرمها ميتوانند به Eventها پاسخ داده و بدين منظور يكي از Method هاي مجاز خود را اجرا نماييد. يك فرم در زمان اجرا هنگامي كه اندازهاش توسط موس تغيير يابد و با اينكه با سؤال و جواب از كاربر اندازههاي آن تعيين شود ميتواند به Event مربوط تغيير اندازه پاسخ دهد. همچنين هر گاه يكي از فرمهاي برنامه فعال گردد يعني در اصل Activate Event رخ داده كه در اين هنگام دستورات تعيين شده براي آن حالت اجرا ميگردد. ديگر اينكه اگر در زمان نمايش يك فرم،فرم ديگري انتخاب و نمايش داده شود فرم قبلي غير فعال ميگردد و در اين صورت يعني يك Deactive Event رخ ميدهد،
كه اگر براي آن دستوراتي مشخص كرده باشيم آن دستورات اجرا ميگردند و به Event مربوطه پاسخ ميدهد.
در اصل Eventها آسانترين روش براي كنترل رفتار فرمها براي پاسخ به وقايع مختلفي هستند كه توسط برنامه و يا كاربر بوجود ميآيند.
Clicking Buttons
يا كليدهاي اجرايي عمليات خاصبعد از اينكه فرم دلخواه خود را طراحي نموديد اكنون موقع آن است كه بتوانيد با استفاده از آن عمليات مورد نياز را انجام دهيد. بدين منظور يكي از ساده ترين راه استفاده از دكمههاي Button عملياتي است كه در روي فرمها ايجاد ميكنيد. اين دكمهها را Command Button گويند. شما ميتوانيد از Command Button هاي موجود در V.B استفاده كرده و يا اينكه دكمه مورد نظر خود را طراحي كنيد. بدين ترتيب كه پس از ايجاد آن، شكل مورد نظر خود را بر روي آن قرار دهيد. بعد از قرار دادن Command Button شما قادر خواهيد بود تا كليه دستوراتي را كه ميخواهيد با انتخاب آن كليد انجام شود را در Event مربوط به Click بنويسيد.
زيرا Command Button يك Object است و داراي Property و Event ميباشد.
پس از نوشتن دستورالعملهاي مربوطه با اجراي برنامه به محض انتخاب آن كليد، دستورات اجرا ميگردند. به منظور فعال كردن Command Button ميتوانيد به يكي از روشهاي زير عمل نماييد:
1 نشانگر موس را بر روي آن برده و يكبار فشار دهيد.
2 با زدن كليد TAB مكان نما را بر روي آن برده و كليد Space bar را فشرده و يا كليد Enter را بزنيد.
3 كليد ALT را نگه داشته و حرفي را كه به صورت Underline بر روي آن كليد نوشته شده است بزنيد.
4 توسط دستورات برنامه مقدار Value مربوط به Property آن را را True كنيد.
5 به عنوان مثال اگر نام آن كليد را Cmdclose در نظر گرفته باشيد به صورت زير عمل نماييد:
Cmdclose Value = True
5 توسط فعال كردن Click Event مربوط به Button در برنامه به وسيله صدا زدن آن به شكل زير:
Cmdclose_Click
امكان نمايش و ورود متن
به منظور نمايش و يا ورود اطلاعات دو Object به نامهاي Lable و Text box در زبان V.B وجود دارد. Labelها براي نمايش اطلاعات بر روي فرم استفاده شده و مقاديري كه توسط آنها نمايان ميگردند غير قابل تغيير توسط كاربران ميباشد.
Text box به منظور امكان ورود اطلاعات توسط كاربران بوده و اطلاعات آنها قابل تغيير ميباشد.
از جمله موارد كاربرد اين Object مواقعي است كه كاربران بخواهند اطلاعاتي نظير نام و نام خانوادگي، اسم رمز و ... را وارد نمايند.
از Label زماني استفاده ميشود كه بخواهند كاربران را در هنگام ورود اطلاعات راهنمايي كنند. مثلاً قبل از هر Text box يك Label كه تعيين كننده نوع اطلاعاتي كه بايد در آن وارد شود را قرار ميدهند.
Label داراي Property هاي مهم مختلفي مانند Backcolor براي تعيين رنگ زمينه، Forcolor براي تعيين رنگ نوشته، Font به منظور تعيين نوع و شكل حروف نمايش دهنده اطلاعا ت آن و ...
همچنين دو ويژگي مهم به نام Autosize و Wordwrap ميباشد. اين دو Property براي تنظيم اندازه Label بر حسب مقدار اطلاعات نوشته شده در آن ميباشد كه در اولي هر چه متن تعيين شده بيشتر باشد Label به صورت افقي بزرگ شده و كليه اطلاعات در يك خط نمايش داده ميشود.
Property دوم براي زماني است كه اگر اطلاعات تعيين شده براي نمايش در Label بيش از اندازه آن در هنگام طراحي باشد، به صورت عمودي بزرگ شده و اطلاعات در چندين خط نمايان ميگردند.
در Text box نيز دو Property مهم به نامهاي ScrollBars و MultiLine وجود دارد كه وقتي هر دو را تنظيم كنيد قادر خواهيد بود بيش از يك خط را در Text box وارد نموده و به مقدار دلخواه خطوط قبلي و بعدي را مشاهده نماييد.
اجزاي تشكيل دهنده صفحه طراحي
Title Bar
Project1-Microsoft Visual Basic [design]
را مشاهده ميكنيد اولين قسمت اين عبارت نام پروژه يعني Project1ميباشد.بخش دوم آن نام زبان برنامهنويسي كه در اينجا Microsoft Visual Basic است قرار دارد و در آخرين قسمت آن واژه [design] كه نشاندهنده حالت طراحي است قرار دارد
Menu bar
در زير خط Title Bar يعني خط دوم Menu bar شامل يك منو كه داراي يكسري واژه ميباشد قرار دارد. با استفاده از اين قسمت كاربران قادر به انتخاب منوي مورد نظر و انجام فعاليت دلخواه خود ميباشند.
Tool Bar
در خط سوم يك Tool Bar كه شامل يكسري Icon قرار دارد و با انتخاب هر يك از آنها توسط موس عمل بخصوصي انجام ميگيرد. با نگه داشتن نشانگر موس بر روي هر يك از Iconها بدون فشردن كليد سمت چپ آن شرحي در رابطه با عملياتي كه توسط آن Icon در صورت انتخاب انجام ميگيرد آورده ميشود.
پنجره Project Explorer
اين پنجره كه معمولاً در سمت راست صفحه نمايشگر كامپيوتر قرار دارد شامل واژه Project و در مقابل آن نام پروژه كاربر ميباشد. مثلاً(Project1) Project، اين پنجره بطور ساخت يافته اجزاي اصلي تشكيل دهنده يك پروژه را نشان ميدهد. در بالاترين نام پروژه و تحت آن يك فهرست به نام Forms وجود دارد كه در زير آن اسامي كليه فرمهاي موجود در اين پروژه نمايش داده ميشود.
پنجره
Propertiesبا اين پنجره شما قادر خواهيد بود Property كليه Objectهايي كه در برنامه كاربردي خود استفاده كردهايد را نشاهده و يا تغيير دهيد.
نحوه نمايش اطلاعات به دو صورت ترتيب حروف الفبايي (Alphabetic) و يا دسته بندي هر يك از آنها تحت گروههاي خاص و طبقه بندي شده (Categorized) ميسر ميباشد.
پنجره
Formsدر اين پنجره برنامه نويس قادر به طراحي و ايجاد فرمهاي مورد نظر و قرار دادن Objectهاي لازم در آن خواهد بود.
پنجره
Form layoutيا اين پنجره شما قادر به مشاهده و مقايسه اندازه فرمي كه طراحي كردهايد نسبت به صفحه نمايش كامپيوتر و نيز محل قرار گرفتن آن پس از اجراي برنامه خواهيد بود. همچنين با استفاده از موس در اين پنجره قادر به جابجايي فرم در روي آن ميباشيد و بدين ترتيب محل دلخواه قرار گرفتن فرم را در هنگام اجراي برنامه تعيين مينماييد.
پنجره
Tool Boxاين پنجره شامل مجموعهاي از كنترلهايي است كه امكان استفاده از آنها در روي فرم طراحي شده وجود دارد. با انتخاب هر يك از اين Controlها توسط موس شما به سادگي قادر به قرار دادن ان در روي فرم خود ميباشيد. به عنوان مثال ميتوانيد كنترل مربوط به Text Box را كه كاربران توسط آن قادر به ورود اطلاعات ميباشند را در فرم قرار دهيد و يا يك Command button را انتخاب و آن را در روي فرم خود قرار دهيد.
پنجره
Codeتوسط اين پنجره شما قادر به نوشتن دستورات برنامه خود كه خواهان اجراي آن هستيد ميباشيد. اين پنجره به روشهاي مختلفي فعال ميگردد. اولين روش در هنگامي كه فرم باز است Object مورد نظر را انتخاب كرده و كليد سمت چپ موس را دوبار پياپي فشار دهيد بدين ترتيب پنجره مربوطه باز ميشود.
روش دوم اينكه در Menu bar واژه View را انتخاب كرده و سپس واژه Code را انتخاب كنبد.
روش سوم اينكه فرم يا قسمت مورد نظر را در پنچره Project Explorer انتخاب نماييد و سپس كليد سمت راست موس را فشرده آنگاه از روي موس ظاهر شده View code را انتخاب كنيد.
با نمايان شدن پنجره Code شما قادر به ورود دستورالعملهاي لازم خواهيد بود. بالاي اين پنجره دو List box وجود دارد كه در پنجره سمت چپ نام Object ي كه ميخواهيد دستورات لازم را براي آن بنويسيد را قرار ميدهيد (بطور پيش فرض نام Object انتخاب شده در فرم قرار دارد) و در دومي نام Eventي كه ميخواهيد در هنگام وقوع آن دستورات نوشته شده شما اجرا شوند را قرار ميدهيد.
ذخيره پروژه
همانطور كه ميدانيد يكي از كارهاي اساسي هنگام تهيه يك پروژه ذخيره كارهايي است كه تاكنون انجام دادهايد با انجام اين كار شما برنامه خود را در مقابل خاموش شدن ناگهاني كامپيوتر ايمن ميسازيد.
در V.B اگر بخواهيد بدون ذخيره كردن برنامه از آن خارج شويد از شما سؤال ميشود كه ايا اطلاعات ذخيره شود يا نه. همچنين شما قادر خواهيد بود تا با انتخاب واژه File از Menu bar و سپس انتخاب Save project اطلاعات خود را ذخيره نماييد.
پس از انتخاب Save project برنامه به صورت پيش فرض نام ديسك و فهرستي كه پروژه شما را ميخواهد در آن ذخيره سازد نمايش ميدهد. در اين حالت شما در صورت تمايل قادر به تغيير هر يك از آنها بوده و پس از اعمال تغييرات با زدن كليد Save پروژه خود را در محل تعيين شده ذخيره خواهيد كرد.
در اين قسمت معرفي يكسري از اجزاي اساسي و پايهاي است كه در برنامه نويسي با زبان V.B استفاده ميشوند. برخي از اين اجزاء عبارتند از متغيرها (Variables)، انواع دادهها (Data types) ، زيرروالها (Subroutines) و توابع (Function).
متغيرها
پس از شروع به نوشتن برنامه فارغ از اينكه چه زباني را انتخاب كردهايد، نيازمند به ذخيره يكسري از اطلاعات جهت استفاده مجدد و دستيابي آنها در بخش ديگري از برنامه خواهيد شد. به عنوان مثال در يك برنامه ميخواهيد نام يك كاربر را گرفته و در يك گزارش آن را نمايش دهيد. براي اين كار ميبايست از متغيرها (Variables) استفاده نماييد.
يك متغير (Variable) مكاني از حافظه كامپيوتر است كه شما قادر به ذخيره دادههاي خود در طول اجراي برنامه در آن ميباشيد. متغيرها ميتوانند انواع مختلفي از اطلاعات را در خود ذخيره نمايند مانند اطلاعات عدي يا حرفي.
به منظور تعريف متغير در برنامه ميبايست از واژه كليدي Dim استفاده نمود. به عنوان مثال جهت تعريف يك متغير به نام name كه اطلاعات حرفي را در خود نگه ميدارد از دستور زير استفاده ميكنيم.
Dim name As String
براي انتخاب نام يك متغير ميبايست موارد زير را رعايت كرد:
• نام آن ميبايست با يك حرف شروع شود.
• نام ميتواند فقط شامل تركيبي از حروف A-Z يا a-z و اعداد 0-9 و علامت Underscor باشد.
• تعداد حروف بكار رفته در آن نبايست از 255 عدد تجاوز نمايد.
همانگونه كه در مثال بالا مشاهده ميكنيد بعد از نام متغير كلمه كليدي As و بعد از آن نوع متغير (datatypes) آن آورده شده است.
در اين مثال متغير name ميتواند شامل اطلاعات حرفي مانند "ALIREZA" باشد.
انواع متغيرهايي (datatypes) كه شما در يك برنامه كاربردي با استفاده از زبان B V.ميتوانيد تعريف كنيد بشرح جدول زير ميباشد.
|
مقادير |
نوع متغير |
|
يك متغير 16 بيتي (2 بايت) كه فقط ميتواند مقادير منطقي True با False را داشته باشد يعني فقط اعداد يك ياصفر |
Boolean |
|
يك متغير به طول 8 بيت (يك بايت) كه ميتواند اعداد بين 0 تا 255 را شامل باشد. |
Byte |
|
يك متغير بطول 64 بيت (8 بايت) ازنوع عددي كه ميتواند اعداد 05808 477 685 203 337 922ـ ، الي 05807 477 685 203 337 922 را ذخيره كند. |
Currency |
|
يك متغير به طول 64 بيت (8 بايت) از نوع عدد مميز شناور (floating point) كه ذخيره كننده تاريخ در بازه اول ژانويه 100 تا 31 دسامبر 9999 و ساعت 0:00:00 تا 59:23:59 ميباشد. |
Data |
|
يك متغير عددي به طول 64 بيت (8 بايت) از نوع مميز شناور كه ذخيره كننده اعداد منفي بين 308 E 1079769313486232ـ تا 324ـE409406564584124ـ و اعداد مثبت بين 324ـE94065645841247. 4 الي 079769313486232 1 ميباشد. |
Double |
|
يك متغير عددي به طول 16 بيت (2 بايت) جهت ذخيره اعداد بين 32768ـ الي 32767 ميباشد. |
Integer |
|
يك متغير عددي به طول 32 بيت (4 بايت) كه ذخيره كننده اعداد بين 648/483/147/2ـ تا 647/483/147/2 ميباشد. |
Long |
|
يك ادرس حافظه به طول 32 بيت (4 بايت) كه اشاره به يك Object دارد. |
Object |
|
يك متغير عددي به طول 32 بيت (4 بايت) از نوع مميز شناور جهت ذخيره اعداد منفي بين 38E401298.1 تا 38E |
|
|
يك متغير حرفي كه اگر طول آن متغير باشد ميتواند حدوداً شامل دو ميليارد حرف و اگر طول آن ثابت باشد رشتهاي به اندازه تقريبي يك الي 64 كيلوبايت باشد. |
String |
|
اين نوع متغيرها ميتوانند هر مقداري بجز نوع User defined types و رشتههاي به طول ثابت باشند. به طور كلي اين متغيرها هنگامي كاربرد دارند كه برنامه نويسان نميدانند در مقاطع مختلف چه نوع اطلاعاتي در آنها قرار ميگيرد اين متغيرها ميتوانند شامل اطلاعات نوع data، String، Object، Currency و ... باشند. |
Variant |
همچنين نوعي از datatype ها هستند كه متنند موارد فوق به طور از پيش ساخته نبوده و وضعيت آنها توسط برنامه نويسان تعيين ميشود. چگونه ميتوان datatype دلخواه خود را كه غير از موارد فوق ميباشند تعريف نمود؟
براي تعريف datatype مورد نظر ميبايست از عبارت
Public Type ... End Type
استفاده نمود. بطور كلي اين قبيل datatypeها به User defined (UDT) يا تعريف شده توسط كاربر مشهور ميباشد. فرض كنيد كه ميخواهيد يك datatype به منظور ذخيره نام كامل افراد كه مركب از دو بخش نام و نام خانوادگي ميباشد تعريف نماييد. براي اين منظور نام آن را FullName گذاشته و به صورت زير عمل كنيد:
Public Type Fullname
FirstName As String
LastName As Atring
End Type
سپس جهت دستيابي به هر يك از اجزاء آن به منظور مقدار دهي و يا استفاده از مقادير ذخيره شده در آن بايست يك متغير از نوع datatype فوق تعريف نمود. فرض كنيد نام اين متغير Name باشد. پس خواهيم داشت.
Dim Name As FullName
حال جهت انتساب مقدار و يا استفاده از مقادير موجود در هر يك از اجزاي آن datatype بايد از روشي كه به نام Dot notation مشهور است استفاده كرد. در اين روش شما بايد نام متغير را همراه با "." و سپس آن بخش از datatype كه مورد نظر ميباشد را بياوريد. مثلاً اگر بخواهيد در بخش اول Name مقدار AMIR و در بخش دوم آن مقدار AKBARI را قرار دهيد دستورات بدين ترتيب ميباشد:
Name.firstName = "AMIR"
Name.lastName= "AKBARI"
و براي نمايش مقادير دو بخش Name با استفاده از دستور PRINT داريم:
Print Name.firstname , Name.lastname
بنابراين شما قادر خواهيد بود تا انواع و اقسام datatypeهاي مورد نظر خود را كه ميتوانند شامل تركيبات مختلفي باشند تعريف نماييد.
آرايهها
(Arrays)براي نامگذاري تعدادي از خانههاي متوالي حافظه كه اطلاعات را نگهداري ميكنند از آرايهها استفاده ميشود. در اصل با اين روش به چندين خانه متوالي از حافظه يك نام را اختصاص ميدهيم. براي دستيابي به مقادير موجود در هر يك از خانههاي حافظه و يا مقدار دهي آنها كافيست كه نام آن و شماره خانه مورد نظر راذكر كنيم. به عددي كه با نام آرايه آورده ميشود انديس (Index) گويند.
آرايهها داراي ابعاد مختلف ميباشند مانند آرايههاي يك بعدي، دو بعدي، سه بعدي و ...
براي مثال يك آرايه يك بعدي كه جهت نگهداري ليست سه تايي از اسامي افراد باشد را در نظر بگيريد در اين حالت وضعيت حافظه به صورت شكل نمايش داده شده زير ميباشد.
|
ALIREZA |
Names (0) |
|
AMIRREZA |
Names (1) |
|
MAHMOD |
Names (2) |
شكل فوق نمايش دهنده يك آرايه يك بعدي به نام names ميباشد. اين آرايه از يك ستون و سه سطر تشكيل شده است و نوع اطلاعاتي كه در آن نگهداري ميشود كاركتري ميباشد.
براي تعريف چنين آرايهاي در زبان V.B از كلمه كليدي Dim استفاده ميكنيم.
پس از آن نام آرايه و داخل پرانتز طول آرايه (منظور تعداد خانههايي كه از حافظه اشغال ميكند) و سپس نوع آن را تعيين ميكنيم. بدين ترتيب براي تعريف آرايه فوق خواهيم داشت:
Dim names(2) As String
نام آرايه names و طول آن برابر سه خانه كه نوع و يا datatype هر يك از خانههاي آن String ميباشد. علت اينكه عدد تعيين كننده طول آرايه 2 نوشته شده اين است كه در زبان V.B به صورت پيش فرض اولين خانه آرايه از صفر شروع ميشود. ولي اين امكان وجود دارد كه اولين خانه يك در نظر گرفته شود، بدين منظور ميبايست در هنگام نوشتن برنامه، قبل از تعريف آرايه عبارت:
Option Base 1
را قرار داد. گاهي اوقات برنامه نويس ميخواهد بطور سريح محدوده حد پايين و بالاي انديس آرايه را مشخص نمايد بدين منظور با استفاده از واژه كليدي to به صورت زير آرايه را تعريف ميكند.
Dim names (o to 2) As String
بدين ترتيب اولين خانه names(0) و آخرين خانه حتماً names(2) ميباشد.بمنظور تعريف آرايههاي دوبعدي بصورت زيرعمل ميكنيم:
Dim names (3 to 3) As String
در اين مثال آرايهاي كه داراي چهار سطر و چهارستون از نوع كاركتري به نام names تعريف شده كه شماي آن در شكل زير نشان داده شده است.
|
names(0,3) |
ALIREZA |
names(0,0) | |
|
names(1,3) |
names(1,0) | ||
|
names(2,3) |
names(2,0) | ||
|
names(3.3) |
AMIRREZA |
names(3,0) |
به منظور مقدار دادن به خانههاي اين آرايه بايد دقيقاً سطر و ستون خانه مورد نظر را مشخص كنيم:
names(0,0) = "ALIREZA"
names(3,0) = "ALIREZA"
تاكنون آرايههايي كه تعريف شدند طولشان دقيقاً مشخص بود اما گاهي اوقات برنامه نويس ميخواهد آرايهاي را تعريف كند كه اندازه آن از قبل برايش معلوم نيست و در هنگام اجراي برنامه اندازه آن تعيين ميشود و يا گاهي اوقات نياز به تغيير
اندازه آرايه و افزايش آن در هنگام اجراي برنامه ميباشد. اين نوع آرايهها پويا و يا dynamic و نوع اول آرايهها، ثابت و يا Static ميباشند.
براي تعريف آرايههاي پويا مانند آرايههاي ثابت عمل ميشود با اين تفاوت كه طول آنها را مشخص نميكنند به عنوان مثال
Dim names () As String
دستور فوق به V.B ميگويد كه آرايه dynamic است و در هنگام اجرا اندازه آن تعيين ميشود در اين حالت آرايه names داراي هيچ اندازهاي نبوده و قابل استفاده نميباشد. سپس در هر جاي برنامه كه اندازه آن مشخص شد و برنامه نويس خواست از آرايه استفاده كند بايد با كلمه كليدي ReDim مجدداً اندازه آن را تعيين كند به عنوان مثال:
ReDim names(2)
دراين حالت اندازه آرايه names از سه به هفت خانه افزايش يافته و اطلاعات قبلي آن نيز همچنان باقي و قابل استفاده در برنامه ميباشد.
ثابتها
Constantsثابتها متغيرهايي هستند كه براي يكبار در برنامه تعريف ميشوند و مقاديري كه به آنها نسبت داده ميشود مجدداً قابل تغيير نميباشند و هر گاه نياز به تغيير مقادير آنها بود ميبايست اصل (Source) برنامه تغيير يابد.
بعنوان مثال ميخواهيداز عدد (14/3)π در برنامه استفاده كنيد و اين مقدار نبايست در هيچ جا قابل تغيير باشد به صورت زير عمل كنيد:
Const Pi= 3.14
همانطور كه ملاحظه ميكنيد براي تعريف ثابتها از كلمه كليدي Const استفاده ميشود و بعد از آن نام متغير به همراه مقداري كه بايد به آن تعلق گيرد آورده ميشود.
حال اگر در هر جاي برنامه نيازي به مقدار مذكور باشد كافي است از متغير Pi استفاده گردد.
مزاياي استفاده از ثابتها يكي استفاده از حافظه كامپيوتر به دليل تعريف متغير در يك حافظه بوده و ديگر اينكه در صورت نياز به تغيير مقدار آن فقط بايد به يك نقطه از برنامه كه ثابت در آن تعريف شده است دست زد.
عملگرها Operators
عملگرها دستوراتي هستند كه بر روي مقادير ثابت يا متغيرهاي موجود در يك عبارت عمل ميكنند. به عنوان مثال فرض كنيد ميخواهيد دو رشته حرفي را به هم متصل و حاصل آن را در يك متغير قرار دهيد. دستورات مربوط به اين مثال عبارتند از:
Dim S As String
S = "Visual" & "Basic"
عملگر & باعث ميشود تا دو واژه Visual و Basic به يكديگر متصل شده و كلمه VisualBasic در متغير S قرار گيرد.
زبان V.B عملگرهاي زيادي را پشتيباني ميكند كه در جدول زير اين عملگرها و كاري را كه انجام ميدهند آورده شده است.
|
شــــــــــــــــــــــــرح |
عملگر |
|
اتصال دو رشته به يگديگر |
& |
|
ضرب دو عدد |
* |
|
جمع دو عدد |
+ |
|
تفاضل دو عدد |
- |
|
تقسيم دو عدد بر يكديگر و برگرداندن حاصل به صورت مميز شناور (floating point) |
/ |
|
تقسيم دو عدد بر يكديگر و برگرداندن خارج قسمت صحيح تقسيم |
| |
|
توان رساندن عدد اول به اندازه عدد دوم |
|
|
بدست آوردن آدرس يك روال (Procedure) |
Address of |
|
ارزيابي True در صورتي كه دو عبارت صحيح باشند |
AND |
|
جهت مقايسه دو عبارت با يكديگر استفاده ميشود(<,<=,>,>,=,=,<>,IS,Like) |
Comparison |
|
در صورتي كه هر دو عبارت يكسان باشند مقدار True و در غير اين صورت False برميگرداند |
Eqv |
|
مفهوم منطقي دو عبارت را اجرا ميكند |
Imp |
|
جهت مقايسه دو اشاره گر به Object |
Is |
|
به منظور يافتن الگويي تعيين شده در يك رشته |
Link |
|
باقيمانده تقسيم دو عدد را برميگرداند |
Mod |
|
منفي مقدار يك عبارت را ميدهد |
Not |
|
اگر حداقل يكي از چندين عبارت موجود صحيح باشد مقدار True را برميگرداند |
Or |
|
اگرفقط يكي از عبارات صحيح باشدمقدار Trueرا برميگرداند و درغير اين صورت مقدار False را بر ميگرداند |
Xor |
زيرروالها
Subroutinesزير روال عبارتست از گروهي از دستورات برنامه كه تحت يك نام خاص نوشته شدهاند و در زمان مناسب با استفاده از نامشان فراخوانده و اجرا ميشوند.مثال:
Public Sub Test-Message()
MsgBox "This is for test"
End sub
در مثال فوق يك زيرروال به نام Test-Message تعريف شده كه با فراخواني آن پيغام This is for test بر روي صفحه نمايان ميگردد. اكنون به تشريح چگونگي نوشتن يك زيرروال ميپردازيم.
اگر بخواهيد زيرروال نوشته شده درهمه قسمتهاي مختلف برنامه شناخته شده وقابل فراخواني باشد واژه كليدي Public را در ابتداي آن قرار دهيد. واژه كليدي بعدي Sub است كه مشخص كننده تعريف زيرروال ميباشد وبعد از آن نام زيرروال آورده ميشود. درصورتي كه زيرروال هيچ پارامتري نداشته باشدمانندمثال فوق يك جفت پرانتز به صورت () درمقابل نام آن ميگذاريد و سپس دستورات مربوط به آن را مينويسيد.
در مثال فوق يكي از Objectهاي موجود در V.B به نام MsgBox استفاده شده است كه توسط آن پيام نوشته بر روي صفحه ظاهر شده و سيستم منتظر فشردن كليد OK براي ادامه ساير دستورالعملها در زير روال خواهد بود.
سرانجام كلمه كليدي End Sub نشان دهنده خاتمه زيرروال ميباشد
كليه دستوراتي كه بين خطوط Public Sub و End Sub قرار دارند بدنه (body) زيرروال ميباشند.
حال در هر جاي برنامه كه بخواهيد زيرروال فوق را اجرا كنيد فقط كافي است نام آن را قرار دهيد.
Test-Message
در صورتي كه زيرروالي كه تعريف ميشود داراي پارامتر باشد بايد داخل پرانتز به تعداد پارامترهايي كه دريافت ميكند. متغيرهايي از نوع پارامترها تعريف كرد.
مثال:
Public Sub Area (L As Integer, W As Ineger)
S = L*W
End Sub
و در برنامه اصلي زيرروال فوق را به صورت زير صدا ميزنيم.
Area (2,3)
كه در اين صورت مقدار S برابر عدد 6 خواهد شد.
Functions
توابع بسيارشبيه زيرروالها ميباشند با اين تفاوت كه در اثر اجراي آنها يك مقدار برگردانده ميشود. توابع اكثراً اطلاعات ورودي خود را به عنوان پارامتر دريافت و نتيجه عمليات برروي آنهارا برميگردانند.اجازه دهيد به منظور درك بهتر موضوع ادامه مطلب را با ذكر يك مثال ادامه دهيم.
در اين مثال تابعي را تعريف ميكنيم كه دو عدد را به عنوان پارامتر دريافت كرده و حاصل جمع آنها را برميگرداند.
Public Function Test-Add(a As Integer,b As Integer) As Integer
Test-Add = a+b
End Function
واژه كليدي Public بيانگر اين است كه تابع فوق توسط تمامي قسمتهاي گوناگون برنامه شناخته شده بوده و ميتواند فراخوانده شود. كلمه كليدي Function نشانه تعريف تابع و به دنبال آن نام تابع كه در اين مثال Test-Add است آورده شده است. داخل پرانتز مقابل نام، دو متغير از نوع Integer به عنوان پارامترهاي ورودي تعريف شدهاند.
Integer As آخر بيان كننده اين مطلب است كه خروجي اين تابع از نوع Integer ميباشد. عبارت End Function نيز نشانه خاتمه دستورات تابع است.
اگر به بدنه تابع دقت كنيد ملاحظه خواهيد كرد كه حاصل جمع دو پارامتر آن به نام تابع منتسب شدهاند. بدين ترتيب مقداري را كه ميخواهيم تابع برگرداند مشخص شده يعني هر گاه مقداري را كه بايد تابع برگرداند ميبايست به نامش نسبت داده شود.
Test-Add= a+b
اگر دستورات زير را در برنامه داشته باشيم:
Dim Value As Integer
Value = Test-Add (1,2)
مقدار سه به متغير Value تخصيص مييابد.
Modules
Modulesها مكانهايي هستند كه شما ميتوانيد زيرروالها، توابع، datatype و ثابتهايي كه عمومي ميباشند، در آنجا تعريف كرده و با اضافه كردن آنها به پروژههاي جديد از آن ويژگيها استفاده كنيد.
ابزار برنامهنويسي موجود در Menu Bar
اولين خط قابل استفاده در اين فرم شكل 1-2 Menu Bar نام دارد كه اجزاءتشكيل دهنده و قابليتهاي هر يك از اين اجزاء بشرح ذيل ميباشند:
File:
اولين عنصر موجود در Menu Bar بوده و كاربران توسط آن ميتوانند به فايلهايي كه پروژههاي خود را با آن بوجود آوردهاند دسترسي داشته باشند. به طور كلي اين عنصر به منظور ذخيره، به حافظه آوردن، چاپ فايلها و همچنين خاتمه كار با V.B استفاده ميشود.
New Project:
با استفاده از اين ويژگي كاربر قادر خواهيد بود تا يك پروژه جديد را آغاز نمايد. همچنين در هنگام استفاده از اين قابليت اگر پروژهاي از قبل باز باشد كه هنوز ذخيره نشده است در رابطه با ذخيره آن سؤال ميشود.
Open Project: توسط اين ويژگي كاربر قادر خواهد بود تا يكي از پروژههايي را كه قبلاً ذخيره كرده است انتخاب و جهت ادامه كار آن را باز نمايد.
Add/Remove Project:
اين دو ويژگي به منظور اضافه و يا حذف پروژه بكار ميروند.
Save Project:
به وسيله اين ويژگي كليه فايلها و اطلاعاتي كه توسط كاربر در پروژه جاري استفاده شده است ذخيره ميگردد. همچنين اگر فايل مربوط به ذخيره پروژه وجود نداشته باشد توسط اين قسمت ايجاد ميگردد.
Save Project As:
با اين ويژگي كاربر قادر به ايجاد يك فايل پروژه جديد به منظور ذخيره اطلاعات پروژه جاري ميباشد. معمولاً اين امكان براي تهيه Back up يا فايل پشتيبان از پروژه بر روي ديسك ديگري استفاده ميشود.
توجه داشته باشيد كه با بكار بردن اين ويژگي كليه اطلاعات پروژه ذخيره نميگردد و فقط اطلاعات مربوط به فايل پروژه (.Vbp) ثبت ميگردد. به منظور اينكه بتوان كليه اطلاعات پروژه را ذخيره كرد بايد قبل از اين امكان با استفاده از ويژگي Form As Save (در ادامه توضيحات مربوط به آن آورده ميشود.) ساير اطلاعات را ذخيره كرده و سپس Save Project As را بكار برد.
Save From:
توسط اين ويژگي قادر به ذخيره اطلاعات مربوط به From در روي فايل ميباشيد.
As Save From:
اين ويژگي شبيه Save From است با اين تفاوت كه اجازه ميدهد تا كاربر اطلاعات فرم جاري خود را در فايل مجزاي ديگري ذخيره كند. بدين ترتيب امكان تهيه Back up يا پشتيبان ديگري از فرم به منظور استفاده در آينده و يا بهره گيري از آن در پروژههاي ديگر ميسر ميگردد.
Print:
توسط اين ويژگي قادر خواهيد بود تا فرم جاري، برنامههاي نوشته شده (Coding) در فرم جاري، Module جاري و يا كليه اطلاعات فرمها و Moduleهاي موجود در پروژه خود را ژاپ نمايد.
Print Setup:
توسط اين ويژگي امكانات استاندارد موجود در سيستمهاي Windows جهت تنظيم كاغذ چاپ، نوع نوشتن و ... در اختيار كاربر قرار ميگيرد.
Make .exe File:
توسط اين ويژگي كاربر قادر خواهد بود نسخهاي اجرايي از برنامه كاربردي خود در محيط سيستم عامل Windows ايجاد نمايد كه اجراي آن نيازي به برنامه V.B ندارد.
Exit:
با اين ويژگي برنامه V.B خاتمه مييابد.
Edit:
عنصر دوم كه در Menu Bar برنامه V.B وجود دارد Edit ميباشد. V.B داراي يك ويراستار (Editor) قوي است كه توسط آن كاربران ميتوانند كليه دستورات برنامه نويسي خود را با آن بنويسند. از جمله ويژگيهاي اين ويراستار نمايش گروه دستورات مختلف V.B به رنگهاي گوناگون ميباشد. مثلاً توضيحات (Comment) به يك رنگ و دستورات (Command) به رنگ ديگر، همچنين در هنگام نوشتن دستورات برنامه نويسي همگي آنها از لحاظ گرامري (Syntax) كنترل ميگردند. اين عنصر داراي ويژگيهاي زيادي ميباشد كه در اينجا به تشريح آن دسته كه معمولاً بيشتر مورد استفاده قرار ميگيرند ميپردازيم.
Undo, Redo:
با Undo آخرين كاري كه انجام شده پاك گشته و كار قبل ازآن ظاهر ميشود. Redo آخرين كار برگردانده شده توسط Undo مجدداً به حالت انجام شده تغيير مييابد.
Cut, Copy, Paste :
اين ويژگيها پس از انتخاب Object بر روي فرم قابل استفاده ميباشند. بدين ترتيب با Cut موضوع انتخابي از روي فرم حذف و در داخل Windows Clipboard قرار ميگيرد.
Copy يك نسخه از Object انتخابي را بدون حذف آن از روي فرم در داخل Windows Clipboard قرار ميدهد.
Paste آنچه را كه در Windows Clipboard قرار دارد در محل مشخص شده بر روي فرم قرار ميدهد.
Delete:
به وسيله اين ويژگي اطلاعاتانتخابشده حذف ميگردد و به هيچ گونه كپي از آنها در داخل Windows Clipboard قرار نميگيرد.
Select All:
توسط اين ويژگي قادر خواهد بود تا كليه متنها (يا عناصر) موجود بر روي بخش را كه كار ميكند انتخاب نمايد.
Find, Find Next:
با انتخاب اين ويژگي يك dialog box بر روي صفحه نمايان و كاربر توسط آن متني را كه خواهان يافتنش ميباشد را وارد مينمايد. با زدن كليد F3 و Find Next از موقعيتي كه مكان نما قرار دارد به بعد براي متن مشخص شده جستجو آغاز ميگردد و با زدن كليد Shift+F3 جستجو از محل مكان نما به عقب انجام ميشود. اگر جستجو موفقيتآميز باشد مكان نما بر روي اولين مورد منطبق قرار گرفته و dialog box حذف شده و متن يافت شده به صورت روشن نمايان ميگردد.
اما اگر جستجو نتيجهاي نداشته باشد يك پيام متني مبني بر عدم يافتن متن مورد نظر بر روي صفحه نمايش ظاهر ميگردد.
براي يافتن متن مورد نياز توسط dialog box نمايش داده شده امكان چندين انتخاب كه چگونگي جستجو را مشخص ميكند وجود دارد، مانند انجام جستجو فقط در روال جاري يا تمام پروژه، دخالت بزرگي و كوچكي حروف در جستجو و ...
Replace:
با اين ويژگي ميتوان يك متن را به متن ديگري تغيير داد و نحوه عمل آن براي يافتن متني كه بايد تغيير يابد كاملاً شبيه Find ميباشد. با انتخاب اين قابليت يك dialog box نمايان شده كه دو متن را به عنوان ورودي دريافت ميكند. متن اول متني است كه بايد در صورت يافتن تغيير كند و متن دوم بايد جايگزين متن اول گردد.
Indent, Out dent:
با اين قابليت متن برنامه نويسي شده به حالتي كه خوانايي آن آسانتر باشد تبديل ميگردد يعني دستورات به صورت مرتب و tabular شده قرار ميگيرند. به عنوان مثال دستورات داخل حلقه درون آن و دستورات خارج از حلقه با فاصلهاي متفاوت از شروع خط نسبت به دستورات درون حلقه قرار ميگيرند.
Insert File:
اين ويژگي به كاربر اجازه ميدهد تا محتويات يك فايل را در محلي كه مكان نما قرار دارد اضافه نمايد. كاربرد اين ويژگي بيشتر در هنگام استفاده از پنجره برنامه نويسي (Code Window) ميباشد.
View :عنصر بعدي كه توسط آن كاربر قادر به تعيين نحوه نمايش و يا عدم نمايش يكسري از ويژگيها و امكانات برنامه V.B بوده View ميباشد. اين عنصر داراي قابليتها و ويژگيهايي بشرح ذيل ميباشد
Code:
با استفاده از اين ويژگي كاربر ميتواند دستورات برنامه نويسي (Code) مربوط به Module يا فرمي را كه بر روي آن متمركز شده است را مشاهده كند. اين ويژگي با كليد F7 نيز فعال ميگردد.
Object:
با استفاده از اين ويژگي كاربر قادر خواهد بود تا كليه Objectهاي مربوط به دستورات برنامه نويسي (Code) بخشي را كه در حال كار بر روي آن است مشاهده نمايد. مانند فرم و يا ديگر Objectهاي وابسته به آن.اين ويژگي با كليد Shift+F7 نيز فعال ميگردد.
Definition:
با اين ويژگي دستورات برنامه نويسي شده (Code) براي روالي (Procedure) كه مكان نما بر روي آن قرار دارد نمايش داده ميشود. اين ويژگي با كليد Shift+f2 نيز فعال ميگردد.
Last Position:
توسط اين ويژگي كاربر قادر خواهد بود تا در پنجره برنامه نويسي از موقعيت جاري به سرعت در موقعيت قبلي كه بوده قرار گيرد. اين ويژگي با كليد Ctrl+ Shift+f2 نيز فعال ميگردد.
Object Browser:
توسط اين ويژگي پنجره مربوط به Object Browser نمايش داده شده و برنامه نويس قادر خواهد بود تا اطلاعات مربوط به پروژه خود و يا بخشهايي از V.B را مشاهده نمايد.
Watch Window, Call Stake, Local Window, Immediate Window:
اين ويژگيها هنگام Debug كردن برنامه استفاده ميشوند و توسط آنها ميتوان مقادير متغيرها، دستورالعملهايي كه درحال اجرا هستند، آخرين وضعيت اجراي دستورات و ... را مشاهده كرد.
Project Explorer:
با اين ويژگي كاربر قادر خواهد بود تا كليه فايلهاي تشكيل دهنده پروژه و سيستم كاربردي خود را مشاهده نمايد.
اين ويژگي با كليد Ctrl+R نيز فعال ميگردد.
Properties Window:
بااستفاده ازاين ويژگي Propertyهاي مربوط به هرObject كه انتخاب شدهباشدباكليدF4 نيزفعال ميگردد.
From layout Window:
توسط اين ويژگي كاربر قادر خواهد بود تا موقعيت from خود را نسبت به صفحه نمايش مشاهده كرده و محل آنرا نيز تغيير دهد.
Properties Pages:
بعضي از اين Objectها داراي يكسري Property ميباشند كه توسط dialog box ميتوان آنها را تغيير داد. اين ويژگي فقط براي آن گروه از Objectها استفاده شده و توسط كليد Shift+F4 فعال ميگردد.
Tool box:
توسط اين ويژگي پنجره Toll box جلو آورده شده و نمايش داده ميشود.
Color Palette:
با اين ويژگي پنجره Color Palette نمايش داده شده و توسط آن كاربر قادر خواهد بود تا رنگ مربوط به Objectهاي V.B را تغيير دهد.
Tool bars:
با استفاده از اين ويژگي كاربر ميتواند Tool bar هايي را كه ميخواهد نمايش داده شوند تعيين كرده، يك Tool bar جديد ايجاد كرده و يا Tool bar موجود را تغيير دهد.
Project:
عنصر ديگري كه در Menu bar قرا ردارد Project ميباشد. با كمك اين عنصر كاربر قادر خواهد بود كه روالها (Procedures)، پنجرهها (Windows)، برنامهها (Codes)، ماژولها (Modules) و ساير موارد مورد نياز را به پروژه خود اضافه نمايد. اين عنصر داراي ويژگيهاي است كه بشرح پركاربردترين آنها ميپردازيم.
Add From: توسط اين ويژگي كاربر قادر خواهد بود تا Formها و پنجرههاي مورد نياز را به برنامه كاربردي خود اضافه نمايد.
Add MDI Form:
توسط اين ويژگي يعني MDI (Multiple Document Interface) كاربر قادر خواهد بود تا ساير پنجرهها را به گونهاي تنظيم كند كه آنها به عنوان فرزند (Child) پنجره اصلي عمل نمايند.
Add Module:
با اين ويژگي كاربر آن گروه از دستورالعملهايي را كه نوشته است و ميخواهد آنها توسط تمام قسمتهاي پروژه شناخته شده و قابل استفاده باشند را معرفي مينمايد. در V.B هر بخش از دستورالعملها (Code) كه نوشته ميشود به يك Form هستند و در ساير قسمتها و فرمهاي ديگر قابل استفاده و شناخته شده نميباشد مگر اينكه آن دستورالعملها توسط اين ويژگي عمومي گردند.
ميتوان يك Module جديد با انتخاب New اضافه و ياي يكي از Moduleهاي موجود را با انتخاب Existing فراخواني نمود.
Add Class Module:
اين ويژگي جهت عمومي كردن آن گروه از Moduleهايي استفاده ميشود كه توسط آنها كلاسها تعريف شدهاند. بدين ترتيب در تمام بخشهاي برنامه شناخته شده و قابل استفاده ميباشند.
Add User Control:
اين ويژگي براي تعريف كنترل Codeهايي است كه توسط كاربر نوشته شده است و با استفاده از آن ميتوان نحوه عمل كنترلها را تغيير داد.
Add File:
توسط اين ويژگي كاربر قادر خواهد بود تا دستورالعملهاي نوشته شده (Code) در يك فايل را از محلي كه مكان نما قرار دارد به Module جاري خود اضافه كند.
References:
با اين ويژگي قادر خواهيد بود تا توابعي (function) را كه در يك كتابخانه كامپايل شده (Library of Compiled codes) قرار دارند را به V.B اضافه نمايد.
Debug:
ديگر عنصر اين مجموعه Debug است كه معمولاَ در هنگام رفع اشكال برنامه مورد استفاده قرار ميگيرد عمدهترين ويژگيهايي كه معمولاً در اين عنصر استفاده ميشوند بشرح ذيل ميباشند.
Run/Restart:
توسط اين ويژگي ميتوان اجراي جديد يا مجدداً ادامه بخشي از برنامه را باعث شد.
كليدي كه معادل اين ويژگي عمل ميكند F5 است.
Break:
باعث توقف اجراي برنامه ميشود و كليد معادل آن Ctrl+Break ميباشد.
End:
اين ويژگي اجراي يك برنامه را خاتمه ميدهد.
Toggle Break Point:
توسط اين ويژگي ميتوان خط يا خطوطي از برنامه را كه كاربر خواهان توقف اجراي برنامه به محض رسيدن به آنها است مشخص نمود. كليد معادل اين عملكرد F9 است.
Single step (step into):
در اين حالت اجراي برنامه خط به خط صورت ميگيرد.
Procedure step (step over):
اين ويژگي همانند Single step بوده با اين تفاوت كه فراخواني و اجراي توابع (function) و روالها (Procedure) به عنوان يك خط دستور تلقي ميگردد.كليد معادل اين ويژگي Shift+F8 ميباشد.
Procedure Step Out:
با انتخاب اين ويژگي كليه خطوط باقيمانده در روال جاري بدون توقف تا آخر اجرا ميگردند.
كليد معادل اين ويژگي Ctrl+Shift+F8 ميباشد.
Immediate Window:
با اين ويژگي پنجرهاي باز ميشود كه ميتوان در آن دستورات V.B را وارد كرده و نتايج آن را مشاهده كرد. معمولاً اين پنجره به منظور انجام محاسبات سريع يا مشاهده نتيجه اجراي برخي دستورالعملها بكار ميرود. به عنوان مثال اگر در آن دستور Print 2+2 را نوشته و كليد Enter زده شود، عدد 4 نمايش داده ميشود.
Quick Watch:
توسط اين ويژگي هنگامي كه برنامه در حالت Debug است ميتوان مقادير هر متغير را مشاهده كرد و نتيجه اجراي دستورالعملها را كنترل نمود. كليد معادل اين ويژگي Shift+F9 ميباشد.
Calls:
توسط اين ويژگي ميتوان ترتيب فراخواني تمام روالهايي را كه منجر به فعال شدن روال جاري است، مشاهده نمود.
كليد معادل اين ويژگي Ctrl+L ميباشد.
Run:
عنصر بعدي RUN ميباشد كه ميتوان توسط آن اجراي برنامه در هنگام طراحي را آغاز نمود عمده ويژگيهاي موجود دراين عنصر عبارتند از:
Start:
اين ويژگي فقط در حالت طراحي سيستم فعال است و با انتخاب آن اجراي برنامه آغاز ميگردد. اين ويژگي پس از شروع اجراي برنامه غير فعال شده و بجاي آن ويژگي Break كه توسط آن ميتوان اجراي برنامه را متوقف كرد، فعال ميشود.
Star With Full Compile:
به منظور جلوگيري از اتلاف زمان و صرفه جويي در وقت V.B جهت شروع اجراي يك برنامه فقط آن بخشهايي از آن را كه نياز باشد تا مانع اجرا نگردد ترجمه (Compile) مينمايد. با استفاده از اين ويژگي تمامي قسمتهاي مختلف برنامه ترجمه خواهند شد.
End:
توسط اين ويژگي اجراي يك برنامه V.B خاتمه يافته و تمامي منابعي كه توسط آن استفاده ميشد آزاد ميگردند.
در خط مربوط به Tool Bar ملاحظه خواهيد كرد كه در رابطه با هر يك از عناصر موجود در Menu Bar كه شرح آنها گذشت يك Icon وجود دارد كه با انتخاب آن عنصر مربوطه فعال ميگردد. اگر نشانگر موس را بر روي هر يك از آن Icon
ها قرار دهيد و مدتي آن را بدون حركت نگه داريد، عنوان مربوط به آن بر روي صفحه نمايان خواهد شد و بدين ترتيب قادر خواهيد بود تا Icon مربوط به كار مورد نظر خود را انتخاب نموده و با فشردن كليد سمت چپ موس آن عنصر را فعال نماييد.
با استفاده از اين توابع كاربران به سادگي قادر به تهيه برنامههاي كاربردي پيچيده ميباشند. زيرا براي بدست آوردن يكسري اطلاعات فقط كافيست در برنامه نام تابع به همراه پارامتر مناسب آن آورده شود، بدين ترتيب كليه عمليات مورد نياز توسط V.B انجام شده و نتيجه به برنامه برگردانده ميشود و ديگر نيازي به نوشتن دستورات طولاني و خسته كننده جهت بدست آوردن نتايج مورد نظر نيست.
واژه كليدي
StaticCommand Button جديدي كه به نام Conter ايجاد كردهايد را انتخاب و دوبار پياپي بر روي آن كليد سمت چپ موس را فشار دهيد. با اين كار پنجره مربوط به ورود دستورات كنترل واقعه Click باز ميشود.
در اين حالت اطلاعات زير بر روي صفحه نمايش مشاهده ميشود:
Private Sub Command 2-Click( )
End Sub
اكنون مكان نما بين دو خط فوق قرار داشته و سيستم آماده دريافت دستورات شما ميباشد. دستورات زير را وارد كنيد.
Dim Conter As Integer
Counter = Counter + 1
Label 1.Caption = Conter
پس از ورود دستورات فوق كليد F5 را به منظور اجراي برنامه بزنيد و پس از نمايان شدن فرم چندين بار كليد Counter را فشار دهيد. چه اتفاقي ميافتد؟ هر باركه اين كليد را فشار ميدهيد فقط عدد يك نمايش داده ميشود! چرا؟ مگر نميخواستيد با هر بار فشردن كليد Counter مرتبه استفادهازآن نمايش داده شود. يعني درمحل Label 1 بترتيب اعداد 1، 2، 3، 4و ... نمايش داده شوند؟چرا چنين نشد؟
علت اين است كه با هر بار فشردن كليد Counter زير روال مربوط به واقعه Click اجرا شده و مقدار متغير Counter در ابتداي اجرا برابر صفر ميگردد (Initialization) به منظور جلوگيري از اين كار در زير روال فوق واژه كليدي Dim را به Static تغيير داده و مجدداً برنامه را اجرا كنيد. چه اتفاقي ميافتد؟ بله اين بار منظور حاصل ميگردد زيرا واژه كليدي Static مانع از تغيير مقدار قبلي متغير Counter ميشود. بدين ترتيب شما قادر خواهيد بود تا متغيرهايي را كه نياز داريد فقط يكبار در شروع اجراي برنامه مقدار اوليه بگيرند و در دفعات مختلف اجراي زير روال مربوطه آخرين مقدار دفعه قبل را از دست ندهند تعريف نماييد.
روش ديگري كه ميتوان اين كار را انجام داد بدين صورت است كه كليه متغيرهايي را كه ميخواهيد داراي ويژگي فوق باشند با واژه كليدي Dim مانند گذشته تعريف كنيد ولي ابتداي معرفي زير روال Static را قرار دهيد.يعني خط اول زير روال به صورت زير تغيير يابد:
Static Private Sub Commands2-Click ( )
بدين ترتيب كليه متغيرهايي كه در اين زير روال تعريف ميشوند همگي از نوع Static خواهند بود.
توابع پيش ساخته رشتهاي
تابع Space
حاصل اجراي اين تابع رشتهاي به تعداد مشخص شده از Space ميباشد. شكل اين دستور به صورت زير است:
Space (n)
N تعداد Space هاي موجود در رشته را مشخص ميكند.به عنوان مثال:
Dim Mystring
Mystring = Space (10)
در اين حالت متغير Mystring شامل رشتهاي به طول 10 تا Space ميباشد.
تابع String
اين تابع باتكرارحروفي كه بعنوان پارامتر به آن داده شده است رشتهاي بطول مورد نظر ميسازد شكل اين دستور به صورت زير ميباشد:
String (n,str)
N طول رشته و str حرفي است كه بايد تكرار شود.به عنوان مثال:
Dim St As String
St = String (10, "Z")
متغير St شامل رشتهاي بطول 10 كاركتر از حرف Z خواهد بود. دستور فوق معادل: St = "ZZZZZZZZZZ" ميباشد.
اگر Str بجاي يك حرف شامل كي رشته باشد آنگاه فقط اولين حرف آن در متغير St قرار خواهد گرفت.
تابع Len
اين تابع به منظور مشخص كردن طول يك رشته يا يك متغير رشتهاي بكار ميرود و شكل آن به صورت زير ميباشد:
Len (String \ Varname)
در تابع فوق فقط بايد يكي از دو ارگومان Varname و يا String را استفاده كرد. String يعني يك رشته كاركتري و Varname نام يك متغير رشتهاي ميباشد.
Dim St As String
St = "abcd"
Print Len (St)
خروجي دستور Print عدد 4 ميباشد كه بر روي صفحه نمايان ميگردد.
تابع Left
توسط تابع فوق بخشي از ابتداي سمت چپ يك رشته برگردانده ميشود. شكل اين تابع به صورت زير است:
Left (String, Length)
String ميتواند يك رشته و يا نام يك متغير از نوع رشتهاي باشد Length تعداد حرفهاي تشكيل دهنده بخش مورد نياز از رشته را مشخص مينمايد.مثال:
Dim At As String
Dim R As String
St = "THIS IS A TEST"
R = Left(St,1)
R = Left(St,4)
مقدار R برابر "THIS IS A TEST" ميشود.
تابع Right
اين تابع مشابه تابع Left است با اين تفاوت كه از سمت راست رشته عمل ميكند و شكل آن به صورت زير ميباشد.
Right(String,Length)
مثال:
Dim St, R As String
St = "THIS IS A TEST"
مقدار R ميشود "EST"
توجه: پارامتر Length در هر يك از توابع Left يا Right ميتواند عدد و يا يك متغير صحيح عددي باشد.
تابع Mid
اين تابع بخشي از يك رشته به طول و از موقعيت تعيين دشه در داخل آن را جدا و به عنوان خروجي برميگرداند شكل اين تابع به صورت زير است:
Mid (String,Start[,Length])
آرگومان String شامل رشته حرفي و يا نام يك متغير از نوع رشتهاي ميباشد.
آرگومان Start مشخص كننده نقطه شروع اولين حرف انتخابي از داخل رشته اصلي ميباشد. نقطه تعيين شده توسط پارامتر Start را مشخص مينمايد. همچنين اگر اين آرگومان مشخص نشده باشد رشته حاصل از نقطه تعيين شده توسط Start تا انتهاي رشته اصلي خواهد بود.مثال:
Dim test As String
Dim r As String
Test = "ABCDEFGH"
R = Mid(test,2,4)
محتويات رشته "BCDE" ميباشد.
R = Mid(test,5)
محتويات رشته "EFGH" ميباشد.
اگر از اين تابع به صورت زير استفاده شود
Mid(test,2,4) = "WXYZ"
آنگاه محتويات متغير test از محل دومين حرف به طول حرف با رشته "WXYZ" عوض ميشود يعني محتويات test خواهد شد.
"AWZYZFGH"
تابع Instr
اين تابع يافتن يك رشته در داخل رشتهاي ديگر بكار ميرود و شكل استفاده از آن به صورت زير ميباشد.
Instr([Star,]String1,String2[,Compare])
حاصل اجراي اين تابع يك عدد است كه موقعيت شروع كلمه يا رشتهاي كه ميخواهيم در رشته اصلي پيدا كنيم را نشان ميدهد و اگر رشته مورد نظر در رشته اصلي وجود نداشته باشد مقدار صفر توسط آن برميگردد.
پارامتر اول يعني Start عددي است كه موقعيت و محلي را كه جستجو بايد در رشته اصلي آغاز گردد را تعيين ميكند و اگر از آن استفاده نكنيم سيستم بطور اتوماتيك آن را برابر يك فرض كرده و جستجو را از ابتداي رشته آغاز ميكند.
پارامتر دوم String1 است و مشخص كننده رشته اصلي و يا نام متغييري است كه بايد محتويات آن جستجو گردد.
پارامتر سوم String2 تعيين كننده عبارت و يا رشتهاي است كه ميبايست در داخل String1 به دنبال آن گشت.
پارامتر چهارم اين تابع تعيين كننده اين است كه آيا تفاوتي بين حروف كوچك و بزرگ در نظر گرفته ميشود يا نه بدين ترتيب كه اگر مقدار آن صفر باشد يعني بزرگ و كوچكي حروف در مقايسه مهم است و اگر مقدار آن برابر يك باشد يعني اين امر اهميتي ندارد.
Dim main-text As String
Dim res As Integer
Main-text = "This is for test"
Res = InDte(1,main-text, "TEST",0)
در اين حالت مقدار res برابر صفر ميگردد زيرا تابع در محتويات متغير main-text دنبال واژه "TEST" (با حروف بزرگ) ميگردد و آن را پيدا نميكند. اما اگر دستور را به صورت زير بنويسيم:
Res= InStr(1,main-text, "TEST",1)
آنگاه مقدار res برابر 13 ميگردد زيرا واژه "TEST" از سيزدهمين حرف رشته (فضاهاي خالي بين كلمات هم شمرده ميشوند) شروع ميگردد و در اين جستجو بزرگ و يا كوچك بودن حروف در نظر گرفته نميشود.
اگر داشته باشيم
Res= InStr(main-text, "TEST")
آنگاه مقدار res برابر صفر ميباشد زيرا با حذف پارامتر اول، جستجو از ابتداي رشته مورد نظر براي واژه "TEST" آغاز و با حذف پارامتر چهارم پيش فرض سيستم براي آن صفر (يعني حساسيت به بزرگي و كوچكي حروف)است و در نتيجه واژه "TEST" در عبارت "This is for test" پيدا نميشود و حاصل صفر برميگردد.
تابع InstrRev
اين تابع مشابه Instr براي يافتن يك رشته در داخل رشتهاي ديگر به كار ميرود با اين تفاوت كه جستجو از انتهاي رشته آغاز ميگردد. شكل اين تابع به صورت زير ميباشد.
InStrRev(String1,Srting2[,Start[,Compare]])
در اين تابع چهار پارامتر بشرح زير وجود دارد:
String1: نام متغير رشتهاي يا رشته اصلي كه ميخواهيم در آن جستجو كنيم.
Srting2: نام متغير و يا رشتهاي كه ميخواهيم در String1 دنبال آن بگرديم.
Start: موقعيتي كه ميخواهيم از آن نقطه جستجو (نسبت به انتهاي رشته) آغاز گردد و اگر حذف شود سيستم بجاي آن عدد 1ـ را كه به معني آغاز جستجو از انتهاي رشته است در نظر خواهد گرفت.
Compare:نوع جستجو را مشخص ميكند و عملكرد آن مانند Start ميباشد.مثال:
Dim main-text As String
Dim re As Integer
Main-text = "This is for test"
Res = InStrRev(main-text, "TEST" 1)
در اين حالت مقدار res برابر 13 ميگردد.
اگر داشته باشيم:
Res = InStrRev(main-text, "TEST" 4)
آنگاه مقدار res برابر صفر ميگردد چرا؟
تابع Replace
اين تابع براي جستجوي يك واژه و يا يك رشته در داخل رشتهاي ديگر به كار رفته و با يافتن آن، رشته مذكور را به آنچه كه مشخص شده است تغيير ميدهد. شكل اين دستورات به صورت زير ميباشد:
Replace(expression,find,replace with[,start[,count[,compare]]])
هر يك از پارامترهاي اين تابع عملكردي بشرح ذيل دارند:
Expression:
شامل رشته و يا نام متغير رشتهاي است كه بايد برخي از واژهها و يا حروف آن عوض شود.
Find:
شامل رشته و يا نام متغير رشتهاي است كه محتويات آن بايد در expression يافته شود.
replace with:
شامل رشته و يا نام متغير رشتهاي است كه بايد جايگزين رشته يافته شده در expression گردد.
Start:
اگر مشخص شده باشد تعيين كننده موقعيت آغاز جستجو در expression نسبت به ابتداي آن ميباشد و در صورت حذف جستجو از ابتداي رشته انجام خواهد شد.
Count:
اگر تعيين شده باشد مشخص كننده تعداد تعويضهايي است كه بايد انجام شود و در صورت حذف كل مواردي كه يافته شوند جايگزين خواهند شد.
Compare:
نوع مقايسه در هنگام جستجو را مشخص ميكند و عملكرد آن مانند آنچه كه در تابع InStr شرح داده شد ميباشد.
مثال: فرض كنيد كه ميخواهيم در عبارت زير كليه حروف visualbasic به VISUALBASIC تبديل گردند:
There are some visualbasic example that show visualbasic ability.
حل:
Dim Str,find,repl As String
Dim resstr As String
Sre1 = "There are some visualbasic example that show visualbasic ability"
Find = " visualbasic"
Repl = " VISUALBASIC"
Resstr = Replace(Str1,find,repl)
Print Str1
Print resstr
در نتيجه اجراي دستورات فوق نتيجه زير بدست خواهد آمد:
There are some visualbasic example that show visualbasic ability.
There are some VisualBasic example that show VisualBasic ability.
اگر دستور مربوط به تابع Replace را به صورت زير تغيير دهيم:
Resstr = replace(str1,find,repl,1,1)
و مجدداً برنامه را اجرا كنيم نتيجه خواهد شد:
There are some visualbasic example that show visualbasic ability.
There are some VisualBasic example that show visualbasic ability.
تابع StrComp
اين تابع به منظور مقايسه دو رشته با يكديگر به كار ميرود و به وسيله آن مشخص ميشود كه دو رشته يكسان هستند و يا متفاوت ميباشند. شكل اين تابع به صورت زير است:
Strcomp(string1,string2[,compare])
اين تابع داراي سه پارامتر به شرح زير ميباشد:
string1:
شامل يك رشته كاركتري و يا نام يك متغير از نوع رشتهاي است.
string2:
شامل يك رشته كاركتري و يا نام يك متغير از نوع رشتهاي است.
Compare:
در صورت استفاده نوع مقايسه را مشخص ميكند و عملكرد آن مانند آنچه در تابع InStr شرح داده شد ميباشد.
اگر دو رشتهاي كه در اين تابع مشخص ميگردند كاملاً مانند يكديگر باشند آنگاه تابع عدد صفر را برميگرداند، اگر رشته اول بزرگتر از رشته دوم باشد تابع مقدار يك را برميگرداند ولي اگرازرشته دوم كوچكتر باشد آنگاه تابع مقدار 1ـ را برميگرداند.
Dim Atr1,Str2,Cmp As String
Str1 = "ABCD"
Str2 = "abcd"
Cmp = StrComp(Str1,Str2,1)
در اين حالت مقدار cmp برابر صفر ميگردد.
Cmp = StrComp(Str1,Str2,0)
در اين حالت مقدار cmp برابر منفي يك ميگردد.
اگر مقدار Str2 برابر Z گردد يعني
Str2 = "Z"
Cmp = StrComp(Str1,Str2)
آنگاه مقدار cmp برابر 1ـ ميگردد.
همانطوركه ازمثال پيداست طول رشته ملاكي براي بزرگي و يا كوچكي آن نبوده بلكه كد حروف است كه در اين مقايسه كنترل ميگردد.
تابع Like
توسط اين تابع ميتوان يك رشته را با يك Pattern خاصي مقايسه نمود. شكل اين تابع (كه حتي ميتوان از آن به عنوان عملگر (Operator) نام برد به صورت زير ميباشد:
Res = String Like Pattern
در دستور فوق res يك متغير عددي است كه حاصل Like در آن قرار ميگيرد.
String يك رشته كاركتري و يا نام يك متغير از نوع كاركتري است كه بايد مقدار آن كنترل گردد.
Pattern شامل الگويي است كه ميخواهيم وجود آن در String را كنترل نماييم.
حاصل اين تابع 1ـ (true) و يا صفر (False) ميباشد.
اگر String مطابق Pattern مشخص شده باشد مقدار 1ـ و در صورت تفاوت مقدار صفر برگشت داده ميشود.مثال:
Dim Str1, Pattern As String
Dim res As Integer
Str1 = "abcd"
Res = Str1 Like Pattern
در اين حالت مقدار متغير res برابر 1ـ است.
اگر مقدار Pattern را تغيير دهيم مثلاً
Pattern = "abcd"
آنگاه با اجراي برنامه فوق مقدار res برابر صفر خواهد شد.
از ديگر موارد مهم كاربرد اين تابع امكان مقايسه يك رشته با گروهي از الگوها ميباشد. به عنوان مثال فرض كنيد داشته باشيم:
Pattern = "?abcd"
بدين معناست كه حرف شروع كننده در Str1 هر كاركتري باشد قابل قبول است و چهار كاركتر بعدي آن حتماً بايد abcd باشد. بنابراين با اجراي مثال فوق با شرايط جديد مقدار res صفر خواهد شد ولي اگر داشته باشيم:
Str1 = "kabcd"
آنگاه پس از اجراي برنامه مقدار res برابر 1ـ خواهد شد.
همچنين بجاي علامت ? ميتوان از * استفاده كرد يعني
Pattern = "*abcd"
بدين معناست كه رشته Str به abcd ختم گردد.
همچنين ميتوان ليستي از موارد مورد نياز را تعيين كرده و در مقايسه از آن استفاده نمود مثلاً
Res = Str1 Like "[abcd] "
يعني حتماً Str1 از حروف abcd تشكيل شده باشد.
يا اگر داشته باشيم
Pattern = "[a-d][e-g][h-k][l-n] "
يعني حرف اول رشته Str1 نبايد هيچ يك از حروف a تا d باشد.
بطور كلي اگر بخواهيم Patternهايي را كه توسط دستور Like ميتوان استفاده كرد در يك جدول خلاصه كنيم خواهيم داشت.
|
معناي Pattern |
Pattern |
|
يك كاركتر هر كاركتري قابل قبول است |
? |
|
هيچ يا هر چند كاركتر |
* |
|
فقط يك عدد |
# |
|
يعني فقط يك كاركتر از حروف مشخص شده است |
]ليست كاركترها[ |
|
يعني فقط يك حرف از غير از حرف مشخص شده |
]ليست كاركترها![ |
جدول
Patternهايي كه در دستور Like ميتوان استفاده كردتوابع پيش ساخته عددي
آنچه كه در اين قسمت به معرفي و تشريح آن خواهيم پرداخت، پركاربردترين توابع پيش ساختهاي است كه در محاسبات رياضي و براي كار بر روي اعداد استفاده ميشود.
توابع Int و Fix
اين دو تابع هر كدام يك عدد را دريافت و در صورت داشتن اعشار قسمت صحيح آن را برميكردانند. تفاوت Int و Fix در اعداد منفي است و در اعداد مثبت كاملاً يكسان عمل ميكنند.
بدين ترتيب اگر عددي كه به عنوان ورودي توسط اين توابع دريافت ميشود يك عدد مثبت باشد نزديكترين عدد صحيح كوچكتر از آن به عنوان جواب برگشت داده خواهد شد، مثال:
Print Int (3,4)
Print Fix (3,4)
اما در اعداد منفي تابع Fix فقط بخش اعشاري عدد را حذف ميكند ولي Int عدد صحيح كوچكتر را كه نزديك به عدد ورودي است برميگرداند يعني حاصل
Print Int (-99.2)
عدد 100ـ و
Print Fix (-99.2)
عدد 99ـ خواهد شد.
پس اعداد حاصل از Int همواره كوچكتر و يا مساوي عدد ورودي است ولي در تابع Fix براي اعداد منفي امكان بزرگتر بودن عدد خروجي از عدد ورودي وجود دارد.
همچنين هر دو تابع اگر عدد صحيحي را به عنوان ورودي دريافت كنند همان را به عنوان خروجي برميگردانند.
به طور كلي شكل استفاده از اين تابع به صورت زير است:
Int(number)
Fix(number)
آرگومان number يك عدد صحيح، اعشاري و يا يك متغير عددي ميباشد.
تابع Round
اين تابع يك عدد را به عنوان ورودي دريافت كرده و گرد شده آن را با تعداد اعداد اعشاري كه مشخص شده برميگرداند.
شكل اين تابع به صورت زير ميباشد:
Round(expession[,numdecimal place)
Expession:
يك عدد، نام متغير عددي و يا يك عبارت محاسباتي عددي است كه بايد گرد شود.
numdecimal place:
تعداد اعدادي كه بايد بعد از مميز قرار گيرند را نشخص مينمايد. اگر اين پارامتر حذف شود تابع يك عدد صحيح را برميگرداند.مثال:
Print Round(3.55)
خروجي اين دستور عدد 4 خواهد بود.
Print Round(3.46,1)
خروجي دستور فوق عدد 5/3 خواهد بود.
Print Round (3.45,2)
خروجي دستور فوق عدد 45/3 ميباشد.
تابع Sgn
اين تابع بمنظور تعيين مثبت، منفي و يا صفر بودن يك عدد و يا حاصل يك عبارت محاسباتي بكار ميرود و شكل آن بصورت زير ميباشد:
Sgn(number)
Number:
يك عدد، نام يك متغير عددي و يا يك عبارت محاسباتي است.
در صورتي كه number مثبت باشد عدد يك، اگر برابر صفر باشد عدد صفر و سرانجام اگر يك عدد منفي باشد آنگاه منفي يك به عنوان خروجي توسط اين تابع برگشت داده ميشود.مثال:
Print Sgn(12)
خروجي اين دستور عدد 1
Print Sgn(-2,4)
خروجي دستور فوق عدد منفي يك
Print Sgn(0)
و خروجي آن عدد صفر ميباشد.
تابع Abs
اين تابع براي بدست آوردن قدر مطلق يك عدد، محتويات يك متغير عددي و يا يك عبارت محاسباتي يه كار ميرود و شكل آن به صورت زير ميباشد:
Abc(number)
Number: اين آرگومان ميتواند يك عدد، متغير عددي و يا يك عبارت محاسباتي باشد.
Print Abs(45.8)
Print Abs(-45.8)
حاصل اجراي هر دو دستور فوق عدد 8/45 ميباشد.
تابع Sqr
اين تابع به منظور محاسبه جذر يك عدد به كار ميرود و شكل آن به صورت زير ميباشد:
Sqr(number)
Number:
اين پارامتر ميتواند يك عدد، متغير عددي و يا يك عبارت محاسباتي باشد. توجه داشته باشيد كه مقدار number حتماًبايد مثبت و گر نه سيستم خطاي run-time error را ميدهد و اجراي برنامه متوقف ميشود.مثال:
Print Sqr(64)
حاصل اجراي دستور فوق عدد 8 ميباشد.
نتيجه اجراي دستور فوق عدد صفر خواهد بود.
Print Sqr(0)
تابع Exp
اين تابع جهت محاسبه توانهاي مختلف عدد e(e تقريباً برابر 2.718282) به كار ميرود.
مبناي محاسبات عدد e و مقداري كه به عنوان پارامتر به اين تابع داده ميشود تواني از e است كه بايد محاسبه گردد. شكل اين دستور به صورت زير است:
Exp(number)
Number:
اين آرگومان يك عدد، نام يك متغير عدد و يا يك عبارت محاسباتي ميباشد:
توجه: اگر مقدار number بيش از 709.782712893 باشد سيستم خطا ميدهد و اجراي برنامه متوقف ميشود.مثال:
Print Exp(5)
حاصل عدد 148.413159102577 است.
تابع Log
اين تابع به منظور محاسبه لگاريتم اعداد در مبناي e به كار ميرود و شكل آن به صورت زير ميباشد:
Log(number)
Number:
اين آرگومان يك عدد، نام يك متغير عدد و يا يك عبارت محاسباتي كه حاصل آن بزرگتر از صفر است ميباشد. براي محاسبه لگاريتم اعداد در هر مبنايي ميتوان از فرمول زير استفاده نمود:
Logx = Log(x)/Log(n)
كه n مبناي مورد نظر و x عددي است كه ميخواهيم لگاريتم ان را در مبناي n محاسبه كنيم.
بدين ترتيب بمنظوربدست آوردن تابعي كه يك عدد را بعنوان ورودي دريافت ولگاريتم آن را محاسبه كند، ميتوان دستورات زير را نوشت:
Static Function Logx(n,x)
Logx = Log(x)l Log(n)
End Function
و براي استفاده از آن تابع به صورت زير عمل كرد.
X = Logx(5,10)
تابع Rnd
اين تابع براي توليد اعداد تصادفي به كار ميرود و شكل آن به صورت زير ميباشد:
Rnd[(number)]
عدد تصادفي توليد شده بين صفر و يك است.
Number:
اين پارامتر يك عدد، متغير عددي و يا يك عبارت محاسباتي ميباشد.
اگر number يك عدد منفي باشد آنگاه به عنوان مبناي محاسبات توليد عدد تصادفي استفاده خواهد شد.
اگر number يك عدد مثبت باشد آنگاه عدد تصادفي جديدي كه توسط الگوريتم تابع Rnd ايجاد ميشود به عنوان خروجي برگردانده خواهد شد.
اگر number برابر صفر باشد اخرين عدد تصادفي توليد شده مجدداً برگردانده خواهد شد.
مثال: با اجراي دستورات زير به طور متوالي آنگاه خواهيم داشت:
Print Rnd(1)
خروجي 0.7055475 خواهد بود.
Print Rnd(0)
خروجي 0.7055475 خواهد بود.
Print Rnd(-1)
خروجي 0.224007 خواهد بود.
Print Rnd(0)
خروجي 0.224007 خواهد بود.
اگر بخواهيم اعداد توليد شده بيش از بازه صفر و يك و به صورت صحيح باشند، به عنوان مثال بين يك تا ده بايد به صورت زير عمل كرد:
Dim Rndval As Integer
Rndval = Int((10*Rnd)+1)
اما اگر دستورات فوق هر بار از ابتدا اجرا گردند، اعداد توليد شده مجدداً مانند سري قبل خواهد بود. جهت جلوگيري از تكرار اعداد با هر بار اجراي مجدد دستورات فوق بايد كاري كرد كه تابع Rnd از اعداد مختلفي جهت توليد تصادفي استفاده نمايد. براي اين كار با اضافه كردن دستور Randomize در ابتداي برنامه، تابع Rnd از زمان سيستم براي توليد اعداد استفاده كرده و مشكل فوق برطرف ميگردد.
تابع Str
اين تابع براي تبديل اعداد به رشتههاي كاركتري استفاده ميشود و شكل آن به صورت زير است:
Str(number)
Number:
اين پارامتر ميتواند يك عدد، متغير عددي و يا يك عبارت محاسباتي باشد.
اگر عدد ورودي اين تابع مثبت باشد سمت چپ آن يك فضاي خالي (blank) بجاي علامت در خروجي قرار داده ميشود. اما اگر عدد ورودي منفي باشد علامت عدد نيز از اجزاء رشته خواهد بود.مثال:
Print Str(495)
خروجي آن رشته "495" ميباشد.
Print Str(-495.65)
خروجي آن رشته "495.65" ميباشد.
تابع Val
اين تابع عكس تابع Str عمل كرده و يك رشته را به عنوان ورودي دريافت و مقدار عددي آن را برميگرداند. كار تبديل رشته به عدد در اين تابع تا زماني كه به اولين كاركتر غير قابل تبديل برخورد نمايد ادامه خواهد داشت.
شكل اين تابع به صورت زير است:
Val(String)
String: اين پارامتر شامل رشتهاي از كاركترها و يا نام يك متغير رشتهاي است.مثال:
Print Val("2457")
خروجي آن عدد 2457 ميباشد.
Print Val("7 89 10")
خروجي آن عدد 78910 است يعني فاصلههاي خالي حذف ميگردند.
Print Val("29H781")
خروجي آن عدد 29 ميباشد.
تابع Asc
اين تابع يك كاركتر و يا رشته را به عنوان ورودي دريافت كرده و كد كاركتر يا اولين حرف رشته را به عنوان خروجي برميگرداند. شكل اين دستور به صورت زير است:
Asc(String)
String:
اين پارامتر ميتواند يك كاركتر و يا نام يك متغير رشتهاي است.
اگر String داراي مقدار نباشد (يعني null باشد) سيستم خطاي run-time error ميدهد.مثال:
Print Asc("A")
خروجي آن عدد كه معادل كد حرف A است ميباشد
Print Asc("a")
خروجي آن عدد 97 است.
Print Asc("Apple")
خروجي آن عدد 65 معادل كد A حرف است ميباشد.
تابع Chr
اين تابع برعكس تابع Val بوده و عددي كه به عنوان ورودي دريافت ميكند، معادل كد كاركتري كه بايد برگرداند در نظر گرفته و آن را برميگرداند.
شكل اين دستور به صورت زير است:
Chr(charcode)
Charcode:
اين پارامتر يك عدد و يا نام يك متغير عددي است.مثال:
Dim Str1 As String
Str1= chr(65)
مقدار Str1 حرف A خواهد بود.
Str1 = chr(62)
مقدار Str1 علامت > خواهد بود.
مقدار مجاز charcode بين صفر تا 255 ميباشد.
4ـ توابع تاريخ و زمان
توسط اين گروه از توابع ميتوان به اطلاعات مربوط به تاريخ و زمان سيستم دست يافت.
تابع Date
خروجي اين تابع از نوع Date كه نشان دهنده تاريخ سيستم است ميباشد. شكل اين تابع به صورت زير ميباشد.
Date
مثال:
Dim MD As Date
بدين ترتيب متغير MD مقدار تاريخ سيستم را خواهد داشت.
جهت تغيير تاريخ سيستم بايد به صورت زير عمل كرد.
Date = # 06-03-02000#
اين تابع اطلاعات را به صورت mm-dd-yy نمايش ميدهد و سيستم به طور اتوماتيك تاريخهاي صحيح ماه و روز را كنترل مينمايد و از ورود اشتباه آنها جلوگيري مينمايد.
تابع Day
اين تابع يك تاريخ را به عنوان ورودي دريافت (اين تاريخ ميتواند به صورت هر يك از صورتهاي مجاز سيستم باشد) و عدد روز مربوطه را كه بين 1 و 31 ميباشد برميگرداند. شكل تابع به صورت زير است:
Day(date)
Date:
اين پارامتر ميتواند تاريخ، يك رشته نشان دهنده تاريخ و يا نام يك متغير از نوع تاريخ باشد. اگر مقدار اين پارامتر Null باشد آنگاه توسط آن مقدار Null برگشت داده ميشود.
Dim S As Date
S = #06/03/2000#
Print Day(S)
خروجي اين برنامه عدد 3 ميباشد.
تابع Month
اين تابع همانند تابع Day يك تاريخ را دريافت كرده و يك عدد بين 1 و 12 را كه نشان دهنده شماره ماه است برميگرداند. شكل اين تابع به صورت زير ميباشد.
Month(date)
Date:
مشابه آنچه در مورد Day گفته شد ميباشد.
مثال:
Dim S As Date
S = #06/03/2000#
Print Month(S)
خروجي اين برنامه عدد 6 ميباشد.
تابع Year
اين تابع يك تاريخ را به عنوان ورودي دريافت و عدد مربوط به سال آن را برميگرداند. شكل اين تابع به صورت زير است:
Yaer(date)
Date:
مشابه آنچه در مورد Day گفته شد ميباشد.
مثال:
Dim S As Date
S = #06/03/2000#
Print Year(S)
خروجي اين برنامه عدد 2000 ميباشد.
تابع Now
اين تابع داراي پارامترنبودهوباصدا زدن آن مقدارتاريخ وساعت سيستم ازنوع date برگردانده ميشود.شكل اين دستور بصورت زير ميباشد.
Now
مثال:
Dim S As Date
S = Now
Print S
خروجي تاريخ و ساعت سيستم ميباشد.
تابع Weekday
توسط اين تابع كه تاريخ را به عنوان ورودي دريافت ميكند يك عدد كه نشان دهنده روز هفته است برگردانده ميشود. شكل اين تابع به صورت زير است:
Weekday(date[,firstdayofweek])
Date:
اين آرگومان مشابه آنچه در تابع Date گفته شد، ميباشد.
Firstdayofweek:
عددي است كه مشخص كننده اولين روز يا شروع هفته ميباشد و مقادير مطابق جدول2-5 مي باشد.
خروجي اين تابع يك عدد بين 1 تا 7 بوده كه مطابق روزهاي مشخص شده در جدول فوق ميباشد:مثال:
Dim S,r As Date
S = #06/03/2000#
r = Weekday(S)
Print r
خروجي حاصل از اجراي برنامه فوق عدد 7 يعني Saturday ميباشد.
|
firstdayofweek |
مقدار |
|
Sunday (defult) |
1 |
|
Monday |
2 |
|
Tuesday |
3 |
|
Wednesday |
4 |
|
Thursday |
5 |
|
Friday |
6 |
|
Saturday |
7 |
جدول مقادير Firstdayofweekدر تابع Weekday
تابع DateAdd
توسط اين تابع ميتوان مدت زيادي دلخواه را به يك تاريخ اضافه و يا كم كرد. شكل اين تابع به صورت زير است.
DateAdd(interval,number,date)
Intervalاين پارامتر مشخص كننده واحد زماني است كه ميخواهيم به يك تاريخ اضافه و يا كم كنيم. مثلاً ماه، هفته، روز و ...
Number:
زماني كه ميخواهيم به تاريخ اضافه و يا كم كنيم (واحد اين زمان توسط interval مشخص شده است.
اگر اين مقدار عدد مثبت باشد به تاريخ اضافه و اگر منفي باشد از آن كم ميگردد.
Date: تاريخ مبنايي كه ميخواهيم محاسبات را بر روي آن انجام دهيم.
مقاديري كه interval بر حسب آنها قابل تنظيم ميباشد به شرح جدول 3-5 ميباشند.
مثال: فرض كنيد ميخواهيم برنامهاي بنويسيم كه 6 ماه به تاريخ سيستم اضافه كند.
Dim St-date As Date
St-date = Date
Print Date Add("M",6,t-date)
|
شــــــرح |
مقدار |
|
سال (year) |
Yyyy |
|
يك چهارم سال (سه ماهه) |
q |
|
ماه (month) |
m |
|
روز از سال (Day of year) |
y |
|
روز (day) |
d |
|
روز هفته (weekday) |
w |
|
هفته (week) |
ww |
|
ساعت (hour) |
h |
|
دقيقه (minute) |
n |
|
ثانيه (secound) |
s |
جدول مقاديري كه interval بر حسب آنها قابل تنظيم ميباشد
تابع DateDiff
اين تابع اختلاف بين دو تاريخ را كه به عنوان پارامترهاي ورودي دريافت ميكند نشان ميدهد و شكل آن به صورت زير است:
DateDiff(interval,date1,date2[,first dayofweek][,firstweekofyear])
Interval:
اين پارامتر مانند آنچه در DateAdd گفته شد ميباشد.
date1,date2 :
اين دوپارامتر ازنوع date هستند و بترتيب تاريخهايي رامشخص ميكنند كه ميخواهيم اختلاف بين آنها را بدست آوريم.
first day of week :
اين پارامتر در صورت استفاده اولين روز هفته را تعيين كرده و بر اساس جدولي است كه در تابع Weekday گفته شد. اگر اين پارامتر حذف شود مقدار پيش فرض براي آن 1 يعني Sunday ميباشد.
Firstweekofyear :
اين پارامتر در صورت استفاده اولين هفته سال را مشخص ميكند و اگر حذف شود اولين هفته روزي است كه اول ژانويه در آن قرار دارد.
مثال: فرض كنيد ميخواهيم برنامهاي بنويسيم كه اختلاف دو تاريخ را بر حسب ماه محاسبه كند:
Dim Date,Date2 As Date
Date1 = #06/03/2000#
Date2 = 12/03/2000#
Print Date Diff("m",Date1,Date2) "
در اين بخش به معرفي دو گروه از دستورالعملهاي موجود در زبان V.B ميپردازيم. يك گروه دربرگيرنده دستورالعملهايي است كه ميتوان توسط آنها بخشهايي از برنامه را به دفعات مورد نظر تكرار كرد.
دسته دوم گروهي از دستورالعملها ميباشند كه توسط آنها ميتوان شرايط حاكم بر برنامه را كنترل و بر حسب آن مسير مناسب ادامه دستورات را تعيين نمود
It must have been a rainy day when you were born, but it wasn't really rain, the sky was crying because it lost his most beautifull angel...!
I would like to be a tear, born in your eyes, alive passing your cheeks and dieing on your lips.
Flowers will die,e sun will set.
But u r ma love dat i wont 4get..Q , nb
Ur name is so precious,it will nvr grow old..
Its engraved in my HEART wit letters of Gold!
i've written you on the page of my heart,reflected your face on the mirrors of my soul,displayed you in the gallaries of my eyes,this show how much i care...wow you are loved!
i know
i accept
i believe
i admit
i m " 0 " zero
but this is not end. i want HIM becoz without HIM i m incomplete.
HER + 0 = HEROi know
Never leave the one you like for the one you love cuz the one u like will leave you for the one they love!!!!
When time comes for u to give ur heart to someone, make sure u select someone who will never break ur heart, cuz broken hearts has never spare parts.By sending this message not to offend you,but with a heart of caring.One last thing your gorgeous,and i think i can love you.Please respond, and have a wonderful day...
Someone asked what makes people happy. Some said wealth and some said fame. I was thinking about this when my cell phone beeped and received a text from you. Then, I smiled and said: "This makes me happy."...
I love to see you smile. In the lone summer of light. And hold you oh so closeUnderneath the stars at nightBut there is just one thingDarling through and throughForever I will cherishEvery moment with you.
REMEMBERthat there willalways be somone who remember u everydaywithor without messages!or calls!THATS ME!!LV U
Don't find love, let love find you. That's why it'scalled falling in love, because you don't forceyourself to fall, you just fall
life is a book we all read.Love is a blessing we all need.
Always be happy always wear a smile,remember in this world v r
just 4 a while so keep in tuch
یاهو سرویس پیغام رسان مبتنی بر وب را رائه کرد : یاهو نسخه تحت وب از سرویس پیغام رسان خود را ارئه کرد که به کاربران این سرویس اجازه استفاده از آن را به هنگام بهرخ گیری از کامپیوتر های فاقد نرم افزار یاهو مسنجر را فراهم می کند . شعار یاهو در این سایت ارسال پیغام از هر مرورگر هر جا است که دلیل آن پشتیبانی از مرورگر های اینترنت اکسپلورر و فایرفکس و مرورگر های اپرا و سافاری می باشد . گزارشات مختلف حاکی از آن است که یک چهارم کاربران اینترنت در آمریکا از محلی به جز خانه و محل کار خود آنلاین می شوند . نسخه تحت وب سرویس پیغام رسان لایو ماکروسافت را نیز فراهم می کند . لازم به ذکر است این سرویس ابتدا برای کاربران در برزیل و هند و مالزی و فیلیپین ویتنام و آمریکا ارائه می شود و به مرور تا پایان سال در سایر نقاط جهان قابل استفاده می باشد.
تصاویر پنهانی در اینترنت، ممنوع : سنای آمریکا، لایحهای را تصویب میکند که به موجب آن قرار دادن هرگونه تصاویری که پنهانی از اشخاص گرفته شده، بر روی اینترنت، غیرقانونی خواهد بود.
«جامجم» نوشت، بر این اساس گرفتن تصاویر از افرادی که در سواحل مشغول استراحت بوده و قرار دادن آنها روی اینترنت، بدون اجازه اشخاص، جرم به شمار میرود.
گرفتن عکس از مکانهای نظامی، کشتیها، صنایع حساس و قرار دادن روی اینترنت نیز غیرقانونی است.
حداکثر مجازات در نظر گرفته شده، نیز یک سال زندان و جریمه نقدی است و حتی متخلفان تحت تعقیب «اف.بی.آی» نیز قرار خواهند گرفت.
گفتنی است، بسیاری از کشورها برای حفظ حریم خصوصی افراد، چنین قوانینی را تصویب میکنند تا آسایش عمومی حفظ شود
.مایکروسافت 500 میلیون دلار جریمه شد خبرگزاری فارس :- شرکت بزرگ نرم افزاری مایکروسافت 500 میلیون دلار جریمه شد.
به گزارش آسوشیتدپرس، یک دادگاه مرکزی در شیکاگو، شرکت مایکروسافت را به جرم استفاده غیرمجاز از اختراع انحصاری شرکت نرم افزاری ایولاس به پرداخت 520 میلیون دلار جریمه محکوم کرد.
مسئولان شرکت مایکروسافت به این حکم اعتراض کردند و آن را قابل تجدید نظر دانستند.
سخنگوی مایکروسافت در عکس العمل به این حکم گفت: این اختراع از سوی کارشناسان مایکروسافت به ثبت رسید و حقایق این حکم را به نفع ما تغییر خواهد داد.
وکیل مدافع شرکت نرم افزاری ایولاس گفت: حق ثبت اختراعات باید از سوی تمامی شرکتها مورد احترام قرار گیرد و حتی شرکتهای بزرگی همچون مایکروسافت نیز اجازه سوءاستفاده از آن را به نفع خود و به نام خود ندارند.
بنابر این گزارش، این اختراع موردنظر، توسط میشل دایلی رئیس ایولاس و دو نفر دیگر از کارشناسان فنی شرکت در سال 1994 صورت گرفته و به ثبت رسید.
برخی از کارشناسان قضایی معتقدند که مایکروسافت تا 2/1 میلیارد دلار میتوانست به خاطر این تخلف جریمه شود
.
لیندوز , رایانه های ارزان تحت لینوکس عرضه میکند
تهران -خبرگزاری کار ایران
شرکت لیندوز , یکی از بزرگترین تولیدکنندگان نرم افزار های رایانه ای تحت
سیستم عامل لینولس, اعلام کرد رایانه های شخصی ارزانقیمت تحت لینوکس خود را
از این
هفته روانه بازار خواهد کرد
به گزارش سرویس ICT خبرگزاری کارایران , ایلنا , به نقل از PCWORLD , لیندوز
هدف از این اقدام را ارائه انتخاب بیشتر به استفاده کنندگان از محصولات
رایانه ای اعلام کرد.
این رایانه ها که KOOBOX نامیده شده اند, دارایی مانیتور کریستال مایع ( LCD
) چهارده اینچ ,CD درایو , کارت صدا , کارت شبکه , صفحه کلید , اسپیکر
, پردازشگر 2/1 گیگاهرتزی , بیست گیگا بایت دیسک سخت و حافظه SDRAM به
میزان 256 مگابایت هستند و به قیمت 499 دلار عرضه شده اند.
همچنین این شرکت اعلام کرده است برای کاربرانی که به امکانات بیشتری احتیاج
دارند , نوع دیگری از رایانه ها را با امکانات قدرتمندتر فراهم آورده است که
به قیمت 699 دلار به فروش خواهد رساند.
این سیستم ها مجهز به سیستم عامل لیندوز نسخه 4 و مجموعه نرم افزاری آفیس تحت
لیندوز هستند و مشتریان این سیستم ها می توانند تا سقف 1500 برنامه کاربردی
از سایت این شرکت دریافت کنند .
یادآور می شود , شرکت لیندوز در حال حاضر ازسوی مایکروسافت متهم شده است که
قوانین مربوط به نامهای تجاری را زیر پا گذشته است و به همین سبب از سوی
دادگاههای آمریکا موضوع تشابه نام لیندوز و ویندوز مورد بررسی قانونی قرار
دارد
.طراحی نوع جدیدی از پردازشگر برای رایانه های کیفی : تهران -خبرگزاری کار ایران
شرکت TRANSMETA پردازشگر جدید خود را با نام تجاری EFFICEON به بازار عرضه کرد.
به گزارش خبرگزاری کار ایران , ایلنا, به نقل از رویترز , این پردازشگر برای رایانه های کیفی و سایر ابزارهایی که به مدت طولانی از باتری استفاده می کنند , طراحی شده است .
قبلا شرکت TRANSMETA که در سانتا کلارای کالیفرنیا واقع شده است, نام TM8000 را به این تراشه داده بود .
به گفته مسئولین این شرکت , پردازشگر جدید به کار بران اجازه می دهد تا نرم افزارهای عادی را تا 50 درصد و نرم افزارهای چند رسانه ای را تا 80 درصد سریعتر از تراشه TM5800 اجرا کنند.
به نظر می رسد رایانه های جدید مجهز به این تراشه , تا پاییز امسال به بازار عرضه شوند.
این گزارش حاکی است بسیاری از شرکت های بزرگ تولید کننده رایانه در جهان در جستجوی راهی برای دستیابی به این فناوری جدید هستند. .
تعریف مهندسی نرم افزار
تولید سیستم های نرم افزاری بصورت گروهی با استفاده از قواعد مهندسی در تولید و استفاده از جنبه های تکنیکی و غیر تکنیکی.علاوه بر داشتن اطلاعات تکنیکی محاسباتی باید روش مذاکره و دریافت اطلاعات را نیز بدانند.
وجود مستندات برای نرم افزارها در زمینه نصب و نگهداری آنها. ( مخصوصا در سیستم های بزرگ).
پیشرفت در متدهای تولید نرم افزار: با گسترش سیستم های نرم افزاری متدهای قدیمی جوابگو نبودند. متدهای جدید برای کنترل پیچیدگی نرم افزار ضروری هستند. ایجاد محیطهای جدید توسعه نرم افزار کمک عمده ای در تولید نرم افزار می باشد.
1-1-نرم افزار مبتنی بر علم مهندسی
تاکید روی تولید نرم افزار نمی باشد بلکه تولید موثر. همه مسائل نرم افزاری قابل حل هستند. ولی هدف استفاده از منابع کم و زمانبندی کم و هزینه کم می باشد.
صفت نرم افزار مبتنی بر علم مهندسی:
بهینه سازی همواره مشکل می باشد. اعمال بهبودها سود را کاهش می دهد. ( بهبود و سود خطی نیستند). تصمیم گیری بهینه سازی بر روی کارایی یا قابلیت نگهداری به عهده مهندس نیست بلکه در نیازهای سیستم باید مشخص شود.
1-2-فرایند نرم افزار software process
برای توسعه سیستم های نرم افزاری مدلهای مختلفی ارائه گردید. این مدلها براساس سایر مهندسی ها بوده است. که اولین مدل، مدل آبشاری می باشد. ولی بدلیل محدودیت استفاده از آن بزودی از دور خارج شد. مدلهای فرایند نرم افزار هنوز بحث داغ مهندسی نرم افزار می باشد.
بعضی از مدلهای توسعه عبارتند از:
1- روش آبشاری 2- برنامه نویسی اکتشافی 3- الگو سازی 4- تبدیل رسمی 5- اسمبل کردن با اجزای موجود
سه روش اول بطور عملی استفاده شده اند.
روش آّبشاری
دوران زندگی نرم افزار بر اساس مدل آبشاری بصورت زیر است.
تعریف نیازمندیها
طراحی سیستم و نرم افزار
پیاده سازی و تست
ترکیب و تست سیستم
عملکرد و نگهاری
جدا کردن مراحل مختلف از هم بهتر است ولی ارتباط حتما وجود دارد.
یافتن مشکلات نیازمندی در مرحله طراحی، یافتن مشکلات طراحی در مرحله پیاده سازی و غیره انجام می شود. تکرار این عمل نباید از حدی بیشتر باشد. بعد از رفع بعضی از مشکلات به مراحل بعدی رفته و رفع خطاها را به مراحل بعدی موکول می کنند.
فاز تست مرحله نهایی تحویل سیستم به مشتری می باشد. که همان عمل رسیدگی و ارزیابی می باشد.
رسیدگی: بر آورد کردن نیازهای تعریف شده کاربر
ارزیابی: بررسی نحوه عملکرد و نرم افزار
فاز نهایی نگهداری سیستم می باشد. شامل اعمال تغییرات در نیازمندیها، طراحی و پیاده سازی می باشد.
هدف مهندسی: کاهش هزینه های کلی نرم افزار است. با برآورد دقیق نیازمندیها، طراحی و رسیدگی و ارزیابی هزینه کل کاهش می یابد.
برنامه نویسی اکتشافی
توسعه و پیاده سازی سیستم اولیه، ارئه به کاربر، ترفیع و تصحیح آنها تا رسیدن به یک سیتم مطلوب
در سیستم هایی که مشخصه آنها دقیق نیست و یا مشکل است. بهتر می باشد. ( سیستم های هوش مصنوعی ) . چون نحوه عملکرد یک انسان مشخص نیست. خصوصیت اصلی: تغییرات سریع در سیستم. تغییرات در زمان کم اعمال و بررسی می گردند. رسیدگی معنی ندارد چون مشخصه اولیه سیستم بطور کامل در دست نیست.
سه دلیل عمده استفاده از برنامه سازی اکتشافی:
1-تهیه مستندات بطور کامل ضروری نیست چون سیستم مداوما تغییر می کند.
2-ساختار سیستم بطور کامل تعریف نشده است. تغییرات مدام باعث خرابی مستندات می شود و نگهداری آن مشکل و پر هزینه می باشد.
3- در این روش تیم های کوچک و ماهر کار می کنند.
1-3-مدلهای فرایند مدیریت
مدیر، مدل فرایند نرم افزاری را که باعث مدیریت ناصحیح گردد نمی پذیرد. مدیریت فرایندی را می پذیرد که فرایند توسعه را به کمک مستندات و گزارشات ملموس تر کند. به همین خاطر مدل مبتنب بر مستندات ایجاد شد که فرایند نرم افزار به چند مرحله تقسیم شد و در آخر هر مرحله یک سری گزارشات ارائه می گردد.( مدل آبشاری).
مدل آبشاری : بسیار مناسب
الگو سازی : تولید مستندات در فاز اول. اقتصادی نیست. فازهای بعدی با استفاده از مدل آبشاری بهتر می شوند.
اکتشافی: مناسب نیست. تغییرات سریع و زیاد است.
تبدیلات رسمی: بسیار مناسب ولی افراد باید تکنیکی باشند.
مدل مبتنی بر اسمبل: مناسب نیست. مستندات توصیف کننده سیستم شاید استفاده مجدد را محدود کند.
مشکلات مدل مبتنی بر مستندات:
1-مستندات تولید شده در فاصله های زمانی منظم امکان پذیر نیست پس ممکن اس غیر واقعی باشند.
2-تست مستندات لازم است. ولی باعث بالا رفتن هزینه می شود که مقرون به صرفه نیست.
3- استفاده از مستندات هر مرحله برای ورود به مرحله بعدی باطل شده است. چون این روش باعث پنهان سازی اطلاعات از توسعه دهندگان می شود.
4-مطالعه مستندات ارزشمن است. ولی بعضی مواقع بدون مطالعه مستندات یک مرحله وارد مرحله بعدی می شویم.
2-تعریف نیازمندیهای نرم افزار
2-1-تشخیص و تحلیل نیازمندیها:
فرایند ایجاد سرویسهایی که سیستم باید ایجاد کند و محدود یتهای سیستم را گویند. خروجی آن مشخصه نیازمندیها ست که اولین مستندات رسمی تولید شده در فرایند نرم افزار است.
به دلایل زیر درک کامل نیازمندیهای یک سیستم مشکل است.
مشخصه های یک نرم افزار در سطوح مختلف تولید می گردند. این سطوح عبارتند از:
در یک مدل فرایند غیر از الگو سازی، استخراج نیازمندیها شامل مراحل زیر است:
2-2-مستندات نیازمندیهای نرم افزار
این مستندات سیستمی را که باید ایجاد شود تعریف می کند. و مبنای قرار داد تولید کننده و مشتری است. خصوصیات مستندات نیازمندیها
1- فقط رفتار خارجی سیستم را مشخص می کند. 2- محدودیتهای پیاده سازی را مشخص می کند. 3- سادگی انجام تغییرات 4- مرجع افراد پشتیبان سیستم
5-برنامه ریزی دقیق دوران زندگی نرم افزار 6- پاسخ دهی به وقایع نامطلوب
سازمان دهی مستندات
1-مقدمه: دلیل نیاز به سیستم، شرایط کاری سیستم
2- مدل سیستم : مدل سیستم را با ارتباط مابین اجزای سیستم و محیط بیرون نشان دهد.
3-مسیر تکاملی: یک مسیر برای تکامل این نرم افزار مشخص کند. ( با پیشرفت سخت افزار و نرم افزار)
4-نیازمندیهای عملیاتی: ( سرویس های تهیه شده برای کاربر با زبان طبیعی)
5-نیازهای غیر عملیاتی: محدودیتهای اعمال شده به سیستم
6- خلاصه: تشریح اصطلاحات بکار رفته در مستندات
ضمیمه ها
این مستندات، مستندات طراحی نیستند باید طوری تنظیم شوند که عملکرد سیستم را بدون مشخص کردن چگونگی آن مشخص کند.
تعریف نیازمندیها: توصیف انتزاعی سرویسهای قابل ارائه توسط یک سیستم و محدودیتهای موجود در یک سیستم. رفتار خارجی سیستم را مشخص می کند.
نیازمندیهای عملیاتی یک سیستم باید کامل و سازگار باشند. منظور از سازگار بودن متناقض نبودن نیازمندیها است.
تعریف نیازمندیها معمولا با ترکیبی از زبان طبیعی، جدولها، نمودارها نوشته می شود. تا توسط کاربران معمولی قابل فهم باشند. زبان طبیعی دقیق نبوده و مبهم می باشد. به همین خاطر روشهایی که در آن زبان طبیعی حضور دارد زیاد خوب نیستند.
مشکلات استفاده از زبان طبیعی :
ایراد گرفتن ساده است ولی نوشتن تعریف نیازمندیها بسیار مشکل است. اولین نسخه از تعریف نیازمندیها سازمان خوبی ندارد. چون نویسنده آن همچون سایر نویسندگان تمایل دارد آنچه در ذهن داردبنویسد. مدیر پروژه وظیفه سازمان دهی این نیازمندیها را به عهده دارد. بهتر است قالب استانداردی برای بیان نیازمندیها باشد.
2-3-تکامل نیازمندیها:
هنگام توسعه تعریف نیازمندیها، نیازهای کاربر بیشتر درک می شود. پس نیازهای تهیه شده قبلی تغییر می کند. مستندات باید طوری باشد که اعمال تغییرات در آن مستلزم بازنویسی آن نباشد. اگر چه نیازمندیهای عملیاتی و غیر عملیاتی هر دو در معرض تغییر هستند ولی نیازمندیهای غیر عملیاتی متاثر از تغییر در سخت افزار می باشد.
تکامل نیازمندیها در طول توسعه سیستم
نیازمندیهای اولیه
طراحی اولیه
نیازمندیهای تغییر یافته
طراحی تغییر یافته
محیط کاربر
محیط تغییر یافته
با کم کردن ارجاعات و بخش بخش کردن مستندات، قابلیت تغییر پذیری مستندات افزایش می یابد. مستندات بصورت یک کتاب تهیه می شوند و ممکن است توسط ماشین قابل خواندن نباشند.
برای حل این مشکل می توان از مستند سازی الکترونیکی و ابزارهای مستندسازی استفاده کرد. برای حل این مشکل باید یک معماری استاندارد الکترونیکی برای مستندات ایجاد کرد.
3-مدل سازی
در تعریف نیازمندیها مدلهای انتزاعی استفاده می شود. ولی برای سازمان دهی مشخصه نیازمندیها یک مدل مشروح از سیستم ضروری است.
انواع مدل سازی
3-1-تحلیل دیدگاه
منابع اطلاعاتی سیستم را به روش بالا به پایین توضیح نمی دهند. دیدگاه های مختلفی برای تشریح سیستم وجود دارد. در اصل دیدگاه راهی برای بررسی سیستم است. دیدگاه ها رایجع به کاربران، سنسورهای وابسته به سیستم، سیستم های کامپیوتری متصل به این سیستم، پردازش عملیاتی و محدودیتهای غیر عملیاتی است.
اولین قدم در تحلیل دیدگاه، تعیین دیدگاه های ممکن است. نمدار حبابی دیدگاه روش ساده ای است که شامل مجموعه ای از اسامی دیدگاه ها ست. نمودار حبابی از طریق مذاکره با افراد درگیر در سیستم تولید می شوند.
مثال: ATM
تحویل پول
ارزیابی کارت
تقاضای حساب مشتری
رابط کاربر
اشکال و پیام
چاپگر
سعی می شود فعلا هیچ سازمان دهی در مورد این دیدگاه ها انجام نشود تا همه افراد ایده ها خود را ارائه دهند. تشخیص درستی یا نادرستی دیدگا ها امکان پذیر نیست ولی
مرحله دوم دسته بندی دیدگاه هاست. که دیدگاههای مرتبط بهم در یک دسته قرار می گیرند.
دیدگاه های عملیاتی
مرحله بعدی سازمان دهی به دسته های دیدگاه های مشخص شده است. هیچ دیدگاهی نباید بیش از 5 دیدگاه فرعی داشته باشد.
دنیای تحویلدار اتوماتیک
مشتری
نگهداری ماشین
تحویلدار اتوماتیک
اعمال ماشین
چاپگر
ارزیابی کارت
اعمال کاربر
برگشت کارت
برخورد مابین نیازمندیها ممکن است :
3-2-توصیف مدل
تعریف نیازمندیها توصیف ارتباط سیستم با دنیای خارج است. و انتزاعی بوده و فاقد اطلاعات کافی است. پس باید بطور مشروحتر توصیف گردند. هر توصیفی باید شامل موارد زیر باشد.
1- جزئیات ورودیهای سیستم 2- جزئیات خروجیهای سیستم
3-جزئیات پردازش داده های سیستم 4- جزئیات کنترل در سیستم
به ازای هر دیدگاه می توان یک نمودار جدولی ایجاد کرد که ارتباط با جریان داده ها را نشان می دهد. هر نمودار جدول دارای 5 ستون است که شامل منبع اطلاعات، اطلاعاتی که باید پردازش شوند، پردازشی که باید انجام شود. فعالیت تولید شده و مقصد اطلاعات است.
ATM از دیدگاه کاربر
| مقصد | خروجی | عمل | ورودی | منبع |
| ATM | کارت | ورود کارت | درخواست ورود کارت | ATM |
| ATM | Pin مشتری | تایپ pin | درخواست ورودی pin | ATM |
| مشتری | پول | جمع آوری پول | پیام جمع آوری پول | ATM |
| ATM | اطمینان از جمع آوری |
دیدگاه ATM
| مقصد | خروجی | عمل | ورودی | منبع |
| مشتری | کارت | ارزیابی کارت | کارت | مشتری |
| ATM | پیام خطا | |||
| ATM | درخواست pin | |||
| DBشماره حساب | دریافت شماره حساب | |||
| مشتری | کارت | ارزیابی pin | Pin | مشتری |
| ATM | پیام خطا | اطلاعات شماره حساب | DB شماره حساب |
گره های یادداشت
اطلاعات موجود در نمودار که برای هر نهاد بطور کامل بیان می شود.
داده ها و فعالیت های روی پردازش
کارت: کارت شناسایی بانک است که دارای علائم مغناطیسی است.
PIN: یک عدد 4 رقمی است. که رمز ورود می باشد.
ارزیابی کارت: این عمل چک می کند که آیا عدد وارد شده معتبر است یا نه
نمودارهای فعالیت:
ترتیب عملیاتی مربوط به یک عمل را نشان می دهد که از چپ به راست در جهت پیکان است. به ازای بعضی از عملیات نمودار فعالیت وجود ندارد مانند ورود کارت.
نمودار فعالیت ارزیابی کارت
اطلاعات شماره حساب نامعتبر
ok
مشتری
خواندن اطلاعات شماره حساب
ارزیابی کارت
درخواست pin
درخواست اطلاعات شماره حساب
اتمام تراکنش
کارت
ok
درخواست pin از ATM
اطلاعات شماره حساب از DB
نمدارهای فعالیت باید نسبتا ساده باشند. پس از تهیه نمدارهای فعالیت مستقل، قدم بعدی ترکیب آنهاست.
3-3-مدل سازی داده ها
4-مشخصه نیازمندیها
تعریف نیازمندیها متمایز از مشخصه نیازمندیهاست. تعریف با زبان طبیعی و جداول انجام می شود که قابل فهم همه باشد و ممکن است مبهم باشد. ولی در مشخصه نیازمندیها نباید ابهام وجود داشته باشد. یعنی نحوه بیان باید طوری باشد که ابهام در آن نباشد.
چون مشکلات در مرحله نیازمندیها، هزینه نگهداری و خطایابی سیستم را به مراتب افزایش می دهد.
4-1-نشانه های مشخصه نیازمندیها
بدلیل مشکلات زیادی که زبان طبیعی دارد پیشنهاد می شود که از زبانهای مشخصه رسمی ریاضی استفاده کرد. مشکل این زبانها عدم فهم از طرف افراد مختلف است. روش دیگر ایجاد مشخصه رسمی و تبدیل آن به شکل قابل فهم برای کاربر.
زبانهای زیادی برای نیازمندیها طراحی شده است. Psl/psa ، sadt، RSL
مناسبترین تکنیک برای تفکیک نیازمندیها، بکارگیری عناصر مشخصی از مدل سیستم و توصیف عملیات آنها با جزئیات بیشتر است.
4-2-مشخصه های زبان ساخت یافته:
بیشتر مشخصه ها بر پایه زبان طبیعی هستند و بصورت فرم های استاندارد مشخص می شوند. ساختارهای کنترلی در برنامه سازی و نشانه های گرافیکی.
فرم های خروجی، ورودی و عملیات سیستم برای تشریح نیازمندیها استفاده میشوند.
عمل : ارزیابی کارت
توصیف: این عمل باید اطمینان حاصل کندکه کارت وارد شده توسط کاربر توسط بانک معتبر صادر شده و حاوی اطلاعات مناسب از شماره حساب و جزئیات مبلغ قبلی گرفته شده باشد.
ورودیها: شماره شناسایی بانک، شماره حساب، تاریخ انقضاء، تاریخ آخرین تراکنش، اخرین تراکنش
منبع: داده ها از کارت خوانده می شوند.
خروجیها: وضعیت کارت
مقصد: تحویلدار خود کار، وضعیت کارت به قسمت دیگری از نرم افزار ارسال می شود.
نیازها: لیست بانک در قالب شماره حساب، تاریخ روز
پیش شرط: کارت باید وارد شده و اطلاعات خوانده شود
پس شرط:
تاریخ روز =< تاریخ انقضاء تاریخ روز=> تاریخ آخرین تراکنش
خوب = وضعیت کارت یا نامعتبر=وضعیت کارت
4-3-روش مبتنی بر فرم
بر اساس اشیاء سیستم سازمان دهی می شوند. همچون عملیات سیستم، وقایع موجود در سیستم. این روش به راحتی با مشخصه رسمی ریاضی تطابق دارد. در این مشخصه ها از زبان طبیعی نیز استفاده می شود و ممکن است ابهاماتی داشته باشد.
4-4-مشخصه نیازمندیها به کمک programming description language PDL
جهت جلوگیری از ابهامات از یک زبان توصیف PDL استفاده می شود.
PDL: مشتق شده از زبانی همچون Ada است که دارای ساختارهای انتزاعی تر است.
مزیت: تست آنها توسط ابزار خاصی از نظر معنایی و نحوی
مشکل: اجبار خواننده به داشتن دید عملیاتی از سیستم، چون بصورت مجموعه ای از اعمال ارائه می شوند و انواع کمتر است.
خطرات:
هر چه قدر انتزاع بیشتر باشد فهم سیستم برای کاربر بهتر است. مشکل دیگر بالا رفتن هزینه آموزش و شروع کار است.
امتیازات PDL مبتنی بر Ada
Procedure request_pin ( pin in out pin_string)
''the pin is represented as a string of 4 character
d:character;
begin
user_request("please type your personal number");
for I in 1..4 loop
get-character_from keypad(d);
put_onto_screen('*');
pin(i)=d;
end loop;
end request_pin
4-5-نیازهای غیر عملیاتی
سه نوع هستند.
نیازمندیهای غیر عملیاتی باید قابل تست باشند.
نیازمندیهای غیر قابل تست: سیستم باید توسط کنترل کنندگان باتجربه به آسانی بکار رود و باید طوری سازماندهی شود که خطاهای آن کمینه شود.
می توان نیازها را طوری بیان کرد که قابل تست باشد.
مانند: کنترل کنندگان باتجربه باید پس از 2 ساعت آموزش از سیستم استفاده کنند. و پس از این آموزش تعداد متوسط خطاهای کاربران مجرب نباید بیشتر از 2 خطا در روز باشد.
بعضی از نیازهای غیر عملیاتی در ارتباط با نیازهای عملیاتی هستند که با هم تناقض دارند.
مانند: حداکثر حافظه مورد نیاز سیستم باید 256 کیلو بایت باشد چون باید در یک Rom باشد.
نیازمندی دیگر: سیستم باید در Ada نوشته شود ولی برنامه ای که عملیات سیستم را انجام می دهد در کتر از 256کیلو بایت قابل اجرا نیست.
+نیازمندیهای غیر عملیاتی بسیار متنوع و پیچیده هستند و برای بیان آنها از زبان طبیعی استفاده می شود.
+نیازمندیهای باید طوری بیان شوند که قابل تست باشند.
4-6-ارزیابی نیازمندیها:
برای کنترل احتیاجات کاربر باید این عمل انجام شود. در غیر اینصورت خطاهای موجود در نیازمندیها به مراحل بعدی منتقل می شوند.
شامل جهار مرحله است.
1-معتبر بودن احتیاجات کاربر: بعضی از اعمال به فکر کاربر می رسد و بعضی دریگر بعدا مشخص می شود. و احتیاجات توسط افراد مختلف عنوان می شوند.
2- سازگاری نیازمندیها
3-کامل بودن نیازمندیها—حاوی کلیه اعمال و محدودیتهای مورد نظر کاربر باشد.
4-واقعی بودن نیازمندیها: قابل درک بودن نیازمندیهای نرم افزار
اگر از روش انتزاعی استفاده شود ارزیابی مشکل است. لذا بعد از تحویل سیستم مشکلات نمایان می شود. ولی الگوسازی یک روش بهتر در ارزیابی نیازمندیهاست. ارزیابی از مرحله اول تا آخر در توسعه سیستم وجود دارد.
با مرور نیازمندیهای توسط پیمانکاران و مشتری بعضی از خطاهای کشف می شوند. ولی بهترین روش برای چک کردن سازگاری نیازمندیها استفاده از ابزار خودکار است. و با شرط وجود یک زبان رسمی امکان پذیر است.
بیان نیازمندیها در زبان Ada/PDL ناسازگاریها را تشخیص می دهد. روش دیگر کنترل صحت نیازمندیها شبیه سازی است.
مشکل:هزینه بالای تولید شبیه ساز و صرف وقت زیاد. تغییر شبیه ساز مشکل است و در سیستم های بزرگ استفاده نمی شود.
5-الگو سازی:
الگوسازی یک تکنیک مهم در ارزیابی نرم افزار است. تصور تولید سیستم از روی مشخصه برای بعضی از کاربران مشکل است. حل مشکل با الگوسازی امکان پذیر است که در مراحل اولیه فرایند نرم افزار الگویی ایجاد می شود و کاربران می توانند خطاها را کشف کرده و رفع نمایند.
الگوسازی نرم افزار مجزا از سخت افزار است که در سخت افزار با قطعات موجود با هزینه کم قابل انجام است. ولی در نرم افزار الگو برای طراحی وجود ندارد بلکه برای ارزیابی نیازهای وجود دارد.
مزایای الگوسازی
الگوسازی
تکنیک کاهش ریسک
آموزش قبل از تحویل
تست را مطمئن تر می کند. ( اگر الگو و سیستم اصلی عیب نداشته باشند یعنی سیستم درست کار می کند).
مراحل الگوسازی
1-تعیین اهداف الگو
2- انتخاب اعمال عملیات و غیر عملیاتی که در الگوسازی باید در نظر گرفته شود.
3-توسعه الگو
4-ارزیابی سیستم الگو
هدف
1-الگوسازی رابط
2-ایجاد سیستم ارزیابی نیازمندیهای عملیاتی سیستم
3-تشریح امکانات نرم افزار
معمولا در الگوسازی به نیازمندیهای غیر عملیاتی حافظه، سرعت توجهی نمی شود.
ارزیابی الگو: مهمترین مرحله که برای آمادگی برای آموزش کاربر است.
مشکل اساسی الگوسازی در سرعت توسعه سیستم است که با سرعت کم انجام می شود. ایراد اساسی هزینه های بالای الگوسازی است.
مزیت: افزایش کیفیت نرم افزار، حس رقابت در توسعه دهندگان نرم افزار
5-1-الگوسازی در فرایند نرم افزار:
مهمترین مشکل کاربران تشخیص سخت تاثیر این سیستم بر کار خود هستند.
راه حل:
فرایند نرم افزار مبتنی بر الگوسازی
مشکلات این روش
1-در نظر گرفتن قسمتهای مهمی از سیستم ( همچون امکانات امنیتی)
2-نیازمندیهای غیرعملیاتی بطور کامل در پیاده سازی الگو بیان نمی شوند.
3-کاربر آن را بصورت یک سیستم عملیاتی در نظر نمی گیرد. چون سرعت آن کند است و کار واقعی فرق دارد.
کارهای انجام شده در طول توسعه الگو ممکن است بعضی از قسمتها را مجددا تکرار کند. به خاطر تغییراتی که ممکن است در طول توسعه الگو ایجاد شود.
فرایند دیگر توسعه تدریجی می باشد که بر مبنای برنامه نویسی اکتشافی است. قطعات به تدریج توسعه داده شده و تحویل داده می شوند و کاربر از طریق کار با قسمت کنونی اطلاعاتی را برای قسمت بعدی پیدا می کند.
قطعات ارزیابی شده و تحویل داده شده تغییر پیدا نمی کنند مگر اینکه خطایی پیدا شود. به ازای هر قطعه مستندات مشخص می شوند که این کار خطاهای سیستم را در مراحل بعدی کمتر می سازد.
5-2-تکنیک های الگوسازی:
انواع تکنیک
5-2-1-زبانهای مشخصه قابل اجرا:
بیشتر از یک مدل سیستم ریاضی استفاده می شود که قابل اجرا هستند. ( Z و VDM)
مزیت: هزینه تولید مشخصه از الگو ناچیز است. که الگو مشخصه سیستم است.
مشکلات
1-الگوسازی رابطهای گرافیکی امکان پذیر نیست.
2-کند بودن توسعه الگو
3-کند بودن سیستم قابل اجرا و کارآمد نبودن آن (خاطره بد کاربر از سیستم )
با زبان تابعی قابل حل هستند. ML و میرندا، با توابع ریاضی سیستم مشخص می شود.، اجرای برنامه متشکل از چند زیر برنامه است.
+ زبانهای تابعی همانند زبانهای بسیار سطح بالا هستند. بیان مختصری از مسئله ای که باید حل شود را ارائه می دهد. سرعت اجرای برنامه های تابعی کمتر است پس کمتر در الگو سازی استفاده می شود.
5-2-2-زبانهای بسیار سطح بالا:
ساختمان داده های پویا دارند.
خصوصیات بهتری دارند ( قابلیتهای بهتر)
برای توسعه سیستم های بزرگ مناسب نیستند چون زمان اجرای بالایی دارند.
تعدادی از زبانها و موارد کاربرد آنها
Small talk شیء گرا رابطهای کاربر
Prolog منطقی پردازش نمادی
Lisp تابعی پردازش نمادی
4GL بانک اطلاعاتی پردازش داده های تجاری
دلایل استفاده از small talk:
5-2-3-زبانهای چند شکلی:
زبانهایی هستند که هم در زمینه برنامه نویسی و هم در زمینه زبانهای مشخصه استفاده می شوند. به جای استفاده از زبانهای چند شکلی می توان از ترکیب چند زبان برنامه نویسی استفاده کرد. که هر قسمتی از یک سیستم را با یک زبان متناسب الگوسازی کرد.
مزیت این کار:
1-هر قسمت با مناسب ترین زبان انجام می شود.
2-سرعت الگوسازی افزایش می یابد.
عیب: برقراری ارتباط مابین زبانهای مختلف است.
5-2-4-زبانهای نسل چهارم (4GL)
در پردازش داده های اقتصادی از این روش الگوسازی استفاده می کنند. که فرایند توسعه را افزایش می دهند. 4GLها امکانات حول بانک اطلاعاتی را دارا هستند.
4GL به استفاده مجدد از نرم افزار تاکید دارد.و زیر برنامه های اخذ اطلاعات و گزارشگیری می توانند مجددا استفاده شوند. نگهداری این سیستم ها راحت تر است. به جای تغییرات، بازنویسی کامل سیستم انجام می شود.
4GLها هزینه توسعه را کاهش می دهند.ولی تاثیر آن بر هزینه سیکل زندگی سیستم های بزرگ مشخص نیست. به دلیل عدم وجود استانداردها ممکن است منجر به مشکلاتی در نگهداری سیستم در مدت طولانی گردد. یک سری ابزارها برای این زبانها وجود دارد
سیستم rapid/use از ترکیب 4GL و ابزار کیس ایجاد شده است.
5-2-5-ترکیب قطعات قابل استفاده مجدد
زمان توسعه کاهش می یابد. بهترین مثال زبان برنامه نویسی پوسته (shell) تحت لینوکس است که یک زبان دستوری است. چون unix همه چیز را به عنوان فایل می بیند امکان ارتباط مابین دستورات مختلف به راحتی قابل انجام است. ورودی یک دستور می تواند خروجی دستور دیگری باشد.
این روش با ترکیب زبانهای بسیار سطح بالا و 4GL استفاده می شود. الگوسازی رابط کاربر با کمک پوسته محدودیت دارد. زیرا مدل ساده ای از ورودی و خروجی در unix وجود دارد.
5-3-الگوسازی رابط کاربر
قسمت عمده توسعه سیستم های کاربردی است. کاربر در طراحی رابط نقش دارد. که یک الگوسازی رابط کاربر در حضور کاربر انجام می شود. در اینجا تنها رابط مشهاهده و احساس می شود طراحی کامل نیست که از برنامه نویسی اکتشافی استفاده می شود.
زبانهای small talk و lisp برای الگوسازی رابط بهتر هستند که هر کدام دارای قطعات مربوط به خود هستند که در طراحی رابط ها می توانند استفاده شوند. 4GL ها دارای امکاناتی برای طراحی صفحه نمایش هستند.
سیستم مدیریت رابط کاربر
برای بعضی از کاربردها یا قسمتی از کاربردها مثل رابط کاربر، استفاده از الگوسازی برای تشخیص نیازمندیها بصورت یک تحلیل انتزاعی ضروری است زیرا به احتمال قریب به یقین نتایج قابل قبولی را ارائه می کند.
مدیریت باید بداند تنها راه موثر برای ایجاد رابط کاربر الگوسازی است و نباید به نوشته ها اکتفا کرد.
6-مشخصه رسمی
مشخصه مشروح سیستم قبلا با PDL یا روشهای دیگری نوشته می شدند که انتزاعی نیستندو به دلیل انتزاعی بودن زبانهای برنامه سازی دیگر از این روشها استفاده نمی شود.
استفاده متدهای رسمی : کاهش هزینه و بالا بردن کیفیت سیستم.
با استفاده از مشخص رسمی می توان خطاهای موجود در مشخصه غیر رسمی را پیدا کرد.
دلایل وجود مشخصه رسمی
در این زبانها دایره لغات، نحو و معنای آنها رسما تعریف نشده است.
امتیازات استفاده از این زبانها:
1-مشخصه ایجاد شده دقیق بوده و مبنای طراحی است. (خطاها کاهش می یابد)
2-به دلیل وجو نهاد های ریاضی، اثبات سازگاری و کامل بودن مشخصه امکان پذیر است.
3-پردازش خودکار مشخصه های نرم افزار، انیمیشن مشخصه رسمی جهت تهیه یک الگو امکان پذیر است.
دلایل عدم بکار گیری مشخصه رسمی
1-ترس مدیر از صحت عملکرد متد جدید
2-آشنا نبودن مهندسین با مشخصه رسمی
3-سرمایه گذاری نکردن خریداران به دلیل نا آشنایی با مشخصه رسمی
4-بعضی از سیستم ها با تکنیک های موجود قابل تشخیص نیستند. ( ایجاد رابط محاوره ای کاربر)
5-عدم آگاهی نسبت به تکنیک های مشخصه رسمی و کاربرد آنها
6-در مورد ابزار پشتیبانی کار کمتری شده است.
7-درک نادرست از مهندسی نرم افزار (مهندسی نرم افزار همان پذیرش متدهای رسمی توسعه نرم افزار است.).
هزینه های توسعه نرم افزار
7-فرایند طراحی
طراحی کلید اصلی مهندسی نرم افزار کارآمد است ولی بیان آن با اصول مهندسی امکان پذیر نیست.
مراحل طراحی
این عمل برای هر انتزاع موجود در مرحله اول تکرار می شود و بازسازی ادامه دارد تا زمانی ادامه دارد تا زمانی مشخصه طراحی از هر انتزاع تولید گردد.
7-1-فرایند طراحی
مدل عمومی طراحی نرم افزار گراف جهت دار است. گره ها نهادها را مشخص می کنند.( فرایندها و توابع) پیوندها ارتباط مابین نهادها را نشان می دهند.
گراف باید سازگار باشد و گراف به تدریج ساخته می شود.
طراحی و مشخصه ارتباط تنگاتنگی با هم دارند. مشخصه نرم افزار مربوط به نیازمندیها بوده و کار مستقلی است. ولی رسمی کردن مشخصه، جزئی از فرایند طراحی است.
فعالیتهای طراحی و محصولات آنها:
در طول تجزیه سیستم، خطاها و نقایص مراحل قبلی پیدا می شوند. این کار موجب اصلاح مراحل قبلی می شود.
شروع کردن یک مرحله قبل از پایان مرحله قبلی معمول است.
در شکل قبلی مراحل ترتیبی هستند. ولی در واقع فرایندها به موازات هم انجام می شوند.محصولات تولید شده در مراحل مختلف متفتوت بوده و میزان جزئی بودن آنها در طول فرایند طراحی متفاوت است.
فعالیتهای طراحی سیستم های نرم افزاری بزرگ:
به ازای هر زیر سیستم این کار تکرار می شود تا مستقیما به اجزای برنامه نویسی نقش شوند.
روش پیشنهادی طراحی بالا به پایین است. مسئله را بصورت بازگشتی به مسائل کوچکتر تقسیم می کنند تا ساده تر شوند. ( روش سلسله مراتبی) استفاده مجدد دارد.
طراحی بالا به پایین در تجزیه تابعی روش معتبری است. در روش شیء گرایی روش بالا به پایین مفید نیست.
7-2-متدهای طراحی:
در حالت عادی طراحی نرم افزار مجموعه ای از نیازمندیها به زبان طبیعی بیان می شوند وشروع به برنامه نویسی می کردند و در حین برنامه نویسی تغییراتی را در سیستم اولیه اعمال می کردند که طراحی سیستم نهایی با مستندات اولیه یکسان نبودند.
بعض از متدها:
متدهای ساخت یافته در پروژه های بزرگ با موفقیت عمل کرده اند. هزینه های طراحی کاهش می یابد چون دارای علائم استاندارد هستند و طراحی بصورت استاندارد انجام می شود.
متدها از جهاتی با هم مشترک هستند
1-دید نمودار جریان داده که در آن سیستم ها به کمک تبدیلات داده ها مدلسازی می شوند.
2-دید نهاد رابطه ای برای توصیف ساختمان داده های منطقی
3- دید ساختاری که اجزای سیستم مستند سازی می شوند.
روشهای دیگر همچون انتقال حالت وجود دارد که مراحلی را که یک نهاد در آن فعالیت دارد نشان می دهد.
همه متدها یک دیکشنری داده ها نیاز دارند.
در متدهای ساخت یافته، طراحان باید از یک مشخصه، طراحی های مشابهی را بدست آورند.
7-3-توصیف طراحی
طراحی نرم افزار حاوی نهاد ها و رابطه ها است.
در مستندسازی طراحی می توان از سه نوع نشانه گذاری استفاده کرد.
7-4-استراتژی های طراحی:
دو استراتژی وجود دارد:
دید تابعی از کامپایلر:
طراحی شی گرا مبتنی بر پنهان سازی اطلاعات است. تحزیه تابعی بالا به پایین در پروژه های کوچک و بزرگ استفاده شده است.
روشهای تابعی و شی گرایی کاملا مجرا از هم استفاده نمی شوند. مکمل هم بوده و در هر مرحله ای از فرایند طراحی مورد استفاده قرار می گیرند.
دید سطح بالا به سیستم دید شی گرایی است. پس در طراحی انتزاعی دید شی گرایی بهتر است. هنگام بیان دقیق سیستم،باید بصورت مجموعه ای از توابع بیان شود نه اشیاء. و هر چه قدر سیستم بیشتر تجزیه گردد، دید شی گرا به سیستم بهتر است. در سطوح بالا و پایین شی گرایی بهتر است و در سطوح میانی دید تابعی بهتر است.
8-کیفیت طراحی
از کجا بدانیم یک طراحی خوب است یا نه: ممکن است منظور، طراحی که کارآمد باشد خوب است. طراحی که قابلیت نگهداری آن بهتر است خوب است. ( قابل فهم بوده و تغییرات راحت تر و بدون تاثیر بر سیستم های دیگر ممکن است.)
ویژگیهای کیفیت، هم در طراحی شی گرا و هم در طراحی تابعی قابل اجرا است. البته در طراحی های شی گرا، معمولا قابلیت نگهداری طراحی ها راحت تر است.
پیوستگی: تطابق یک قطعه با قطعات دیگر را نشان می دهد. قطعه باید تابع منطقی یا نهاد منطقی را پیاده سازی کند. هر قسمتی از این قطعه باید در این پیاده سازی شرکت کند. اگر این قطعه شامل قسمتهایی باشد که مستقیما با عمل منطقی آن ارتباط ندارد درجه پیوستگی کم است.
پیوستگی براساس تابع یا شیء قابل بیان است. در حالت تابعی پیوسته ترین چیز، یک تابع است در حالت شی گرایی اسیاء تشکیل دهنده سیستم ذاتا پیوسته هستند. با ارث بری پیوستگی کاهش پیدا می کند.
اتصال: ارتباط داخلی مابین واحد های برنامه. هر چه قدر واحد ها مستقل باشند اتصال ضعیف است. اگر از متغیرهای مشترک ما بین ماژولها استفاده شود اتصال وجود دارد.اتصال زمانی ضعیف است که ارتباط مابین ماژولها از طریق ارسال پارامتر باشد. ارث بری نیز یک اتصال مابین کلاسها ایجاد می کند.
8-1-قابلیت فهم طراحی:
وابسته به نحوه طراحی قطعه هاست. و دارای ویژگیهای زیر است.
1-پیوستگی: آیا می توان قطعه ای را بدون مراجعه به قطعات دیگر درک کرد؟
2-نامگذاری: اسامی قطعه ها با معنی هستند.
3-مستندسازی: آیا نقش کردن نهاد های دنیای واقعی و قطعه ها درست مستندسازی شده است.
4-پیچیدگی: الگوریتم های استفاده شده چقدر پیچیدگی دارند. ( ساختار دستورات نه سرعت)
معیارهای مختلفی برای اندازه گیری میزان پیچیدگی وجود دارد. که بعدا بحث خواهد شد. پیچیدگی در قابلیت فهم قطعات موثر است ولی عوامل دیگری همچون سازمان دهی داده ها و سبکی که طراحی با آن توصیف شده است.
وراثت قابلیت فهم را بالا می برد. ولی اگر باعث شود که هنگام مطالعه سلسله مراتب جستجو شوند فهم کاهش می یابد.
8-2-قابلیت تطبیق:
ارتباط روشنی مابین سطوح مختلف قطعات طراحی باید وجود داشته باشد.
در سیستم های شیءگرا قابلیت تطبیق راحت تر است. به همین دلیل در الگوسازی از زبانهای شیء گرا استفاده می کنند.
9-توسعه برنامه های قابل اعتماد:
با گسترش کاربرد کامپیوتر نیاز به سیستم های قابل اعتماد بیشتر می شود. برنامه نویسی هنر است ولی در نظر گرفتن قابلیت اعتماد و ...به تکنیک های برنامه نویسی بر می گردد.
9-1-پرهیز از عیب
سیستم های تولید شده باید عاری از عیب باشند. منظور نرم افزاری که با مشخصه خود سازگار باشد نه نرم افزاری که بر اساس انتظار کاربر عمل کند. هرچقدر تعداد خطاهای باقیمانده کمتر باشد یافتن و رفع کردن آنها هزینه برتر است.
در یک سیستم کامل، امکانات تحمل خطا نیز در نظر می گیرند تا قابلیت اعتماد افزایش یابد.
برای توسعه سیستم استفاده از یک زبان سطح بالا با تعیین نوع دقیق، ضروری است.
برنامه نویسی ساخت یافته
موارد مشکل ساز دیگر
البته همه تکنیکها و ساختمان داده ها مفید هستند ولی در استفاده از آنها باید بیشتر مواظب بود.
9-2-تعیین نوع داده ها
هر قطعه از برنامه باید فقط به اطلاعات مجاز دسترسی داشته باشد. پنهان سازی اطلاعات در این زمینه بهتر هستند چون تغییر یک قطعه بدون تغییر در قطعات دیگر امکان پذیر است که باید از زبانهای برنامه نویسی با تعیین نوع قوی در پنهان سازی استفاده کرد مانند پاسکال.
سیستم تعیین نوع باید امکان مدل سلزی همه انواع داده های مورد نیاز سیستم را داشته باشد. در نام گذاری متغیرها باید از اسامی با معنی استفاده شود. به ازای هر نوع، اعما آنها و نحوه نمایش داده ها باید بصورت انتزاعی گروه بندی شود. چون در این حالت نوع داده مستقل از برنامه می تواند ارزیابی شود.
9-3-تحمل عیب
حتی اگر سیستمب دون عیب باشد بهتر است یک سری امکانات تحمل خطا در نظر گرفته شود. چون ممکن است یک سری مطالب بر مبنای فرضهای نادرست باشد.
برای تحمل خطا 4 عمل باید انجام شود.
1-کشف خرابی 2- تعیین خسارت:قسمتهایی که تحت تاثیر خطا قرار می گیرند باید مشخص باشد. 3- ترمیم عیب: سیستم باید به حالت امن برگردانده شود. 4-اصلاح خطا: اگر پس از ترمیم سیستم بتواند به کار عادی خود ادامه دهد نیاز به اصلاح خطا نیست.
در سخت افزار برای تحمل پذیری خطا از تکرار قطعات سخت افزاری استفاده می کردند. (mirroring) دو روش مشابه در نرم افزار بصورت زیر وجود دارد.
9-4-پردازش استثناء
خطای رخ داده در حین اجرا را استثناء گویند.( خطای سخت افزاری یا نرم افزاری). اگر استثنایی قبلا پیش بینی نشده باشد کنترل به سیستم مکانیزم پردازش استثنا منتقل می گردد. اغلب زبانها امکانات کنترل استثناء ندارند بیشتر از دستورهای تصمیم گیری برای این عمل استفاده می شود.
استثناها معمولا با متغیر مشترک مشخص می شوند. مقدار این متغیر حالتهای مختلف و نوع استثناء را نشان می دهد که بعد از فراخوانی هر زیر برنامه باید کنترل شود.
9-5-برنامه نویسی تدافعی
برنامه نویس با فرض وجود برخی ناسازگاریها عمل می کند. برنامه باید حالت سیستم را کنترل کرده و در حالت امن نگه دارد. این روش یک روش تحمل خطا است که شامل فعالیتهای زیر است. کشف خطا و برآورد خسارت و ترمیم عیب
کشف خطا و برآورد خسارت:
خرابی در سیستم باعث می شود متغیرها، مقادیری نامعتبر داشته باشند در بیشتر زبانها یک متغیر عمومی وجود خطا را نشان می دهد.
روش دیگر این است که از عبارات منطقی بر اساس متغیرهای حالت استفاده شود. بررسی می شود که آیا بعد از انتساب، مقدار متغیر غیر طبیعی است یا نه؟
برآورد خسارت مشکل بوده و گران تمام می شود. خسارت باید با یک استراتژی کشف عیب، که وقوع عیب را قبل از تغییر در سیستم بررسی می کند، کمینه شود. اگر عیبی پیدا شود باید از تغییرات صرف نظر کرد تا خسارت وارده منتر شود. برآورد خسارت برای ترمیم عیب نیست بلکه قسمتهایی که تحت تاثیر این عیب هستند را تعیین می کند.
تکنیک های دیگری همچون checksum و ... وجود دارد.
ترمیم عیب: فرایند اصلاح فضای حالت سیستم است. بطوری که اثرات خرابی کمینه شده و سیستم بتواند به کار خود ادامه دهد.
ترمیم پیشاپیش: تصحیح حالت خسارت دیده سیستم
ترمیم تاخیری: انتقال سیستم به یک حالت امن
ترمیم پیشاپیش: مختص سیستم هایی است که اطلاعاتی راجع به محاسبه حالتهای صحیح در آن فراهم شده است.
ترمیم تاخیری: مستلزم نگهداری جزئیاتی از حالت امن و برگشت به این حالت پس از کشف خطا است.
روش دیگر: ایجاد نقاط کنترلی دوره ای است که حاوی کپی های مختلفی از حالت سیستم است و پس از کشف خطا به آخرین نقطه کنترلی بر می گردد.
10-استفاده مجدد نرم افزار
با استفاده از قطعات قابل استفاده مجدد هزینه تولید نرم افزار و کیفیت آن بالا می رود. در نظام مهندسی طراحی سیستم براساس قطعات قابل استفاده مجدد در نظر گرفته شده است. ولی در اغلب نرم افزارهای پیاده سازی شده این خاصیت در نظر گرفته نشده است.
سطوح قابل استفاده مجدد:
1- سیستم کاربردی 2-زیر سیستم ها 3- ماژولها و اشیاء 4- توابع
استفاده مجدد از قطعات فقط به معنای استفاده از کد نیست. بلکه شامل طراحیها و مشخصه ها نیز هست. نگرش دیگر ایجاد یک مولد است. در این روش اطلاعات قابل استفاده مجدد در سیستم مولد برنامه گنجانده می شود. این مولد را می توان در زبانهای خاصی برنامه نویسی کرد. مولد مشخص می کند که قطعات قابل استفاده مجددی که باید مورد استفاده قرار گیرند، چگونه باید با هم ترکیب شده و چگونه باید پارامتریک شوند.
سه جنبه مختلف:
1-توسعه نرم افزار برای استفاده مجدد
2-توسعه نرم افزار با قطعات قابل استفاده مجدد
3-استفاده مجدد سیستم کاربردی
10-1-توسعه نرم افزار برای استفاده مجدد
برای این منظور باید کاتالوگ و مستندات مناسبی برای قطعات در نظر گرفته شود. قطعات تولید شده در آن واحد قابل استفاده مجدد نیستند و بر اساس نیازهای در نظر گرفته شده که بعدا تعمیم داده شده و استفاده می شوند. به خاطر بالا بودن هزینه تعمیم استفاده از آن زیاد خوب نیست.
برای برآورد کردن قابلیت استفاده مجدد به دو سوال پاسخ داده شود.
1-چگونه این قطعه،تجرید دامنه کاربرد را نشان می دهد
در یک تشکیلات که از اینترنت استفاده میکند، یک پراکسی سرور ترکیبی از سختافزار و نرمافزار است که بعنوان یک واسطه بین کاربر داخلی و اینترنت عمل میکند بطوری که امنیت، نظارت مدیریتی و سرویسهای caching تامین میشود. یک سرور پراکسی دارای پروتکل مشخصی است، بنابراین برای هرنوع پروتکلی (HTTP، FTP و غیره) باید تنظیم شود. پراکسی سرور بعنوان بخشی از یک سرور gateway (نقطهای در یک شبکه که ورودی به شبکهای دیگر است) رفتار میکند و میتواند برای انجام یک یا چند فانکشن که در بخش بعد به آن اشاره میشود، تنظیم شود.
عملکردهایی که پراکسی سرور میتواند داشته باشد
با تعریفی که از یک پراکسی ارائه شد، میتوان از پراکسی برای بهبود عملکرد یک شبکه استفادههایی کرد که در اینجا به چند مورد آن به اختصار اشاره میکنیم:
· Firewall (دیواره آتش)
برای سازمانی که فایروال دارد، پراکسی سرور تقاضاهای کاربران را به فایروال میدهد که با آنها اجازه ورود یا خروج شبکه داخلی را میدهد.
· Caching (ذخیره سازی)
سرور پراکسی که عمل caching را انجام میدهد، منابعی مانند صفحات وب و فایلها را ذخیره میکند. هنگامی که یک منبع مورد دسترسی قرار گرفت، در سرور دخیره میشود و تقاضاهای بعدی برای همین منبع مشخص با محتویات cache پاسخ داده میشود. این عمل، دسترسی به آن منبع را برای کاربرانی که از طریق پراکسی به اینترنت متصل هستند، سرعت میبخشد و از طرفی از ترافیک اینترنت میکاهد و اجازه استفاده بهتر از پهنای باند را به کاربران داده میشود.
· Filtering (فیلتر کردن)
سرور پراکسی میتواند ترافیک وارد شونده و خارج شونده از شبکه را بررسی کند و به آنچه که با معیارهای امنیتی یا سیاست سازمان مغایرت دارد، اجازه عبور ندهد.
· Authentication (تصدیق هویت)
بسیاری منابع الکترونیکی سازمانی توسط ورود با کلمه رمز یا قرار داشتن در دامنه مشخصی از IP محدود شدهاند. کاربران دور معمولاً از یک سرویسدهنده اینترنت ثالث استفاده میکنند که در این صورت این کاربر یا IP کامپیوتر آن برای سازمان معتبر تشخیص داده نمیشود. برای کاربرانی که بصورت فیزیکی به شبکه داخلی سازمان متصل نشدهاند، پراکسی طوری عمل میکند که به کاربران دور اجازه ورود موقت داده شود یا به آنها بطور موقت یک IP سازمان تخصیص داده شود که بتوانند به منابع محدود شده دسترسی پیدا کنند.
· Anonymization (تغییر هویت)
برای محافظت شبکه داخلی یک سازمان از کاربران موجود در اینترنت، سرور پراکسی میتواند هویت سیستمهای متقاضی داخلی را تغییر دهد. اگر منبع (مثلاً صفحه وب یا فایل) تقاضا شده توسط کاربر داخلی سازمان، در cache موجود نباشد، سرور پراکسی برای آن کاربر، بعنوان کلاینت عمل میکند و از یکی از آدرسهای IP خودش برای تقاضای آن منبع از سرور موجود در اینترنت استفاده میکند. این آدرس IP «موقت»، آدرسی نیست که واقعاً در شبکه داخلی سازمان استفاده گردد و در نتیجه از بعضی از حملههای نفوذگران جلوگیری میشود. هنگامی که صفحه تقاضا شده، از طرف سرور روی اینترنت به پراکسی سرور میرسد، پراکسی سرور آن را به تقاضای اولیه مرتبط میکند و برای کاربر میفرستد. این پروسه تغییر دادن IP باعث میشود که تقاضا دهنده اولیه قابل ردیابی نباشد و همچنین معماری شبکه سازمان از دید بیرونی مخفی بماند.
· Logging (ثبت کردن)
پراکسی سرور میتواند تقاضاها را بهمراه اطلاعات لازم در جایی ثبت کند تا بعداً امکان پیگیری اعمال کاربران داخل سازمان فراهم شود.
پیکربندی مرورگر
· تعامل کاربر: کاربر باید از ابتدا مرورگر خود را پیکربندی کند که بدین ترتیب نیاز است که اطلاعات را از پشتیبانی فنی سازمان بدست آورد.
· پیکربندی دستی: در این پیکربندی کاربر باید سروری را که نرمافزار پراکسی را اجرا میکند، مشخص کند. کاربر باید استثنائات هر دامنهای را که میتواند بطور مستقیم به آن وصل شود، مشخص کند و به این ترتیب در اتصال به این دامنههای مشخصشده، پراکسی در مسیر قرار نمیگیرد.
· پیکربندی خودکار: یک فایل تنظیم پیکربندی توسط سازمان که منطق استفاده از پراکسی توسط مرورگر در آن قرار دارد. URL فایل باید در پیکربندی مرورگر وارد گردد. اینکه یک تقاضا از طریق پراکسی مسیریابی شود یا خیر، بستگی به شروط موجود در آن فایل دارد.
کاربرد پراکسی در امنیت شبکه
بعد از آشنایی با پراکسی سرور در بخش قبل حال به این مطلب می پردازیم که از دیدگاه امنیتی پراکسی چه هست و چه نیست ، از چه نوع حملاتی جلوگیری می کند و به مشخصات بعضی انواع پراکسی پرداخته می شود. البته قبل از پرداختن به پراکسی بعنوان ابزار امنیتی، بیشتر با فیلترها آشنا خواهیم شد.
پراکسی چیست؟
در دنیای امنیت شبکه، افراد از عبارت «پراکسی» برای خیلی چیزها استفاده می کنند. اما عموماً، پراکسی ابزاری است که بسته های دیتای اینترنتی را در مسیر دریافت می کند، آن دیتا را می سنجد و عملیاتی برای سیستم مقصد آن دیتا انجام می دهد. در اینجا از پراکسی به معنی پروسه ای یاد می شود که در راه ترافیک شبکه ای قبل از اینکه به شبکه وارد یا از آن خارج شود، قرار می گیرد و آن را می سنجد تا ببیند با سیاست های امنیتی شما مطابقت دارد و سپس مشخص می کند که آیا به آن اجازه عبور از فایروال را بدهد یا خیر. بسته های مورد قبول به سرور مورد نظر ارسال و بسته های ردشده دور ریخته می شوند
پراکسی چه چیزی نیست؟
پراکسی ها بعضی اوقات با دو نوع فایروال اشتباه می شوند «Packet filter و Stateful packet filter» که البته هر کدام از روش ها مزایا و معایبی دارد، زیرا همیشه یک مصالحه بین کارایی و امنیت وجود دارد.
پراکسی با Packet filter تفاوت دارد
ابتدایی ترین روش صدور اجازه عبور به ترافیک بر اساس TCP/IP این نوع فیلتر بود. این نوع فیلتر بین دو یا بیشتر رابط شبکه قرار می گیرد و اطلاعات آدرس را در header IP ترافیک دیتایی که بین آنها عبور می کند، پیمایش می کند. اطلاعاتی که این نوع فیلتر ارزیابی می کند عموماً شامل آدرس و پورت منبع و مقصد می شود. این فیلتر بسته به پورت و منبع و مقصد دیتا و بر اساس قوانین ایجاد شده توسط مدیر شبکه بسته را می پذیرد یا نمی پذیرد. مزیت اصلی این نوع فیلتر سریع بودن آن است چرا که header، تمام آن چیزی است که سنجیده می شود. و عیب اصلی ان این است که هرگز آنچه را که در بسته وجود دارد نمی بیند و به محتوای آسیب رسان اجازه عبور از فایروال را می دهد. بعلاوه، این نوع فیلتر با هر بسته بعنوان یک واحد مستقل رفتار می کند و وضعیت (State) ارتباط را دنبال نمی کند.
پراکسی با Stateful packet filter تفاوت دارد
این فیلتر اعمال فیلتر نوع قبل را انجام می دهد، بعلاوه اینکه بررسی می کند کدام کامپیوتر در حال ارسال چه دیتایی است و چه نوع دیتایی باید بیاید. این اطلاعات بعنوان وضعیت (State) شناخته می شود.
پروتکل ارتباطی TCP/IP به ترتیبی از ارتباط برای برقراری یک مکالمه بین کامپیوترها نیاز دارد. در آغاز یک ارتباط TCP/IP عادی، کامپیوتر A سعی می کند با ارسال یک بسته SYN (synchronize) به کامپیوتر B ارتباط را برقرار کند. کامپیوتر B در جواب یک بسته SYN/ACK (Acknowledgement) برمی گرداند، و کامپیوتر A یک ACK به کامپیوتر B می فرستد و به این ترتیب ارتباط برقرار می شود. TCP اجازه وضعیتهای دیگر، مثلاً FIN (finish) برای نشان دادن آخرین بسته در یک ارتباط را نیز می دهد.
هکرها در مرحله آماده سازی برای حمله، به جمع آوری اطلاعات در مورد سیستم شما می پردازند. یک روش معمول ارسال یک بسته در یک وضعیت غلط به منظوری خاص است. برای مثال، یک بسته با عنوان پاسخ (Reply) به سیستمی که تقاضایی نکرده، می فرستند. معمولاً، کامپیوتر دریافت کننده باید پیامی بفرستد و بگوید “I don’t understand” . به این ترتیب، به هکر نشان می دهد که وجود دارد، و آمادگی برقراری ارتباط دارد. بعلاوه، قالب پاسخ می تواند سیستم عامل مورد استفاده را نیز مشخص کند ، و برای یک هکر گامی به جلو می باشد . یک فیلتر Stateful packet منطق یک ارتباط TCP/IP را می فهمد و می تواند یک “Reply” را که پاسخ به یک تقاضا نیست، مسدود کند ـــ آنچه که یک فیلتر packet ردگیری نمی کند و نمی تواند انجام دهد. فیلترهای Stateful packet می توانند در همان لحظه قواعدی را مبنی بر اینکه بسته مورد انتظار در یک ارتباط عادی چگونه باید بنظر رسد، برای پذیرش یا رد بسته بعدی تعیین کنند. فایده این کار امنیت محکم تر است. این امنیت محکم تر، بهرحال، تا حدی باعث کاستن از کارایی می شود. نگاهداری لیست قواعد ارتباط بصورت پویا برای هر ارتباط و فیلترکردن دیتای بیشتر، حجم پردازشی بیشتری به این نوع فیلتر اضافه می کند.
پراکسی ها یا Application Gateways
Application Gateways که عموماً پراکسی نامیده می شود، پیشرفته ترین روش استفاده شده برای کنترل ترافیک عبوری از فایروال ها هستند. پراکسی بین کلاینت و سرور قرار می گیرد و تمام جوانب گفتگوی بین آنها را برای تایید تبعیت از قوانین برقرار شده، می سنجد. پراکسی بار واقعی تمام بسته های عبوری بین سرور و کلاینت را می سنجد، و می تواند چیزهایی را که سیاستهای امنیتی را نقض می کنند ، تغییر دهد یا محروم کند. توجه کنید که فیلترهای بسته ها فقط headerها را می سنجند ، در حالیکه پراکسی ها محتوای بسته را با مسدود کردن کدهای آسیب رسان همچون فایلهای اجرایی، اپلت های جاوا، ActiveX و ... غربال می کنند.
پراکسی ها همچنین محتوا را برای اطمینان از اینکه با استانداردهای پروتکل مطابقت دارند، می سنجند. برای مثال، بعضی اشکال حمله کامپیوتری شامل ارسال متاکاراکترها برای فریفتن سیستم قربانی است؛ حمله های دیگر شامل تحت تاثیر قراردادن سیستم با دیتای بسیار زیاد است. پراکسی ها می توانند کاراکترهای غیرقانونی یا رشته های خیلی طولانی را مشخص و مسدود کنند. بعلاوه، پراکسی ها تمام اعمال فیلترهای ذکرشده را انجام می دهند. بدلیل تمام این مزیتها، پراکسی ها بعنوان یکی از امن ترین روشهای عبور ترافیک شناخته می شوند. آنها در پردازش ترافیک از فایروالها کندتر هستند زیرا کل بسته ها را پیمایش می کنند. بهرحال «کندتر» بودن یک عبارت نسبی است.
آیا واقعاً کند است؟ کارایی پراکسی بمراتب سریعتر از کارایی اتصال اینترنت کاربران خانگی و سازمانهاست. معمولاً خود اتصال اینترنت گلوگاه سرعت هر شبکه ای است. پراکسی ها باعث کندی سرعت ترافیک در تست های آزمایشگاهی می شوند اما باعث کندی سرعت دریافت کاربران نمی شوند
در مقایسه فایروالها، ما مفهومی از پراکسی ارائه میدهیم و پراکسی را از فیلترکننده بستهها متمایز میکنیم. میتوانیم در اینجا مزایای پراکسیها بعنوان ابزاری برای امنیت را لیست کنیم:
بطور مختصر میتوان این مزایا را اینگونه بیان کرد؛ پراکسیها به شما کمک میکنند که شبکهتان را با امنیت بیشتر، موثرتر و اقتصادیتر مورد استفاده قرار دهید. بهرحال در ارزیابی یک فایروال، این مزایا به فواید اساسی تبدیل میشوند که توجه جدی را میطلبند.
برخی انواع پراکسی
تا کنون به پراکسی بصورت یک کلاس عمومی تکنولوژی پرداختیم. در واقع، انواع مختلف پراکسی وجود دارد که هرکدام با نوع متفاوتی از ترافیک اینترنت سروکار دارند. در بخش بعد به چند نوع آن اشاره میکنیم و شرح میدهیم که هرکدام در مقابل چه نوع حملهای مقاومت میکند.
البته پراکسیها تنظیمات و ویژگیهای زیادی دارند. ترکیب پراکسیها و سایر ابزار مدیریت فایروالها به مدیران شبکه شما قدرت کنترل امنیت شبکه تا بیشترین جزئیات را میدهد. در ادامه به پراکسیهای زیر اشاره خواهیم کرد:
· SMTP Proxy
· HTTP Proxy
· FTP Proxy
· DNS Proxy
SMTP Proxy
پراکسی SMTP (Simple Mail Transport Protocol) محتویات ایمیلهای وارد شونده و خارجشونده را برای محافظت از شبکه شما در مقابل خطر بررسی میکند. بعضی از تواناییهای آن اینها هستند:
HTTP Proxy
این پراکسی بر ترافیک داخل شونده و خارج شونده از شبکه شما که توسط کاربرانتان برای دسترسی به World Wide Web ایجاد شده، نظارت می کند. این پراکسی برای مراقبت از کلاینت های وب شما و سایر برنامه ها که به دسترسی به وب از طریق اینترنت متکی هستند و نیز حملات برپایه HTML، محتوا را فیلتر می کند. بعضی از قابلیتهای آن اینها هستند:
FTP Proxy
بسیاری از سازمان ها از اینترنت برای انتقال فایل های دیتای بزرگ از جایی به جایی دیگر استفاده می کنند. در حالیکه فایل های کوچک تر می توانند بعنوان پیوست های ایمیل منتقل شوند، فایل های بزرگ تر توسط FTP (File Transfer Protocol) فرستاده می شوند. بدلیل اینکه سرورهای FTP فضایی را برای ذخیره فایل ها آماده می کنند، هکرها علاقه زیادی به دسترسی به این سرورها دارند. پراکسی FTP معمولاً این امکانات را دارد:
DNS Proxy
DNS (Domain Name Server) شاید به اندازه HTTP یا SMTP شناخته شده نیست، اما چیزی است که به شما این امکان را می دهد که نامی را مانند http://www.tcsh.ir در مرورگر وب خود تایپ کنید و وارد این سایت شوید – بدون توجه به اینکه از کجای دنیا به اینترنت متصل شده اید. بمنظور تعیین موقعیت و نمایش منابعی که شما از اینترنت درخواست می کنید، DNS نام های دامنه هایی را که می توانیم براحتی بخاطر بسپاریم به آدرس IP هایی که کامپیوترها قادر به درک آن هستند، تبدیل می کند. در اصل این یک پایگاه داده است که در تمام اینترنت توزیع شده است و توسط نام دامنه ها فهرست شده است.
بهرحال، این حقیقت که این سرورها در تمام دنیا با مشغولیت زیاد در حال پاسخ دادن به تقاضاها برای صفحات وب هستند، به هکرها امکان تعامل و ارسال دیتا به این سرورها را برای درگیرکردن آنها می دهد. حمله های برپایه DNS هنوز خیلی شناخته شده نیستند، زیرا به سطحی از پیچیدگی فنی نیاز دارند که بیشتر هکرها نمی توانند به آن برسند. بهرحال، بعضی تکنیک های هک که میشناسیم باعث می شوند هکرها کنترل کامل را بدست گیرند. بعضی قابلیت های پراکسی DNS می تواند موارد زیر باشد:
| بازیهای رایانهیی به کاهش مهارتهای اجتماعی نوجوانان منجر میشوند | |
| خبرگزاری دانشجویان ایران - تهران سرویس پایان نامه نتایج یک پایاننامه نشان داد که انتخاب منزل به عنوان محل بازی رایانهیی و یا ترجیح تنها بودن در محل بازی با مهارتهای اجتماعی رابطهای معکوس و پرداختن به بازی رایانهیی در محلهایی که امکان حضور دیگران وجود دارد، با متغیر مهارتهای اجتماعی رابطهای مستقیم دارد. به گزارش خبرنگار سرویس پایان نامهی خبرگزاری دانشجویان ایران(ایسنا)، «بهناز دوران» در پایاننامهی کارشناسی ارشد روانشناسی خود با عنوان «بررسی رابطه بازیهای کامپیوتری و مهارتهای اجتماعی نوجوانان» آورده است: افرادی که مکانی غیر از منزل را که در آن امکان حضور دیگران و تعامل با آنها وجود دارد انتخاب میکنند نسبت به افرادی که منزل را جهت بازی انتخاب کردهاند، مهارتهای اجتماعی بیشتری دارند و افرادی که تنها بودن در حین انجام بازی را ترجیح دادهاند، نسبت به کسانی که حضور دیگران را برگزیدهاند، مهارت اجتماعی کمتری دارند. در این پایاننامه اضافه شده است: افرادی که محل بازی را منزل و کلوپ معرفی کردهاند در بین بازیکنان قهار بازیهای رایانهیی قرار دارند. بازیهای رایانهیی نمونهای از فعالیت انفرادی میباشد که افراد را از تعامل و ایجاد ارتباط با دیگران بازداشته، میتواند باعث نقصان تدریجی مهارتهای اجتماعی آنان شود. نکته دیگری که باید مدنظر گرفت این است که محتوای اغلب بازیهای رایانهیی که توسط نوجوانان مورد استفاده قرار میگیرد ماجراجویانه، پر تحرک و در بسیاری مواد خشونتآمیز است. در ادامهی این پایاننامه که درسال 1380 با راهنمایی دکتر پرویز آزاد فلاح در دانشکدهی علوم انسانی دانشگاه تربیت معلم تدوین شده، آمده است: این فرض به ذهن میرسد که افرادی که به طور جدی با بازیهای رایانهیی سرگرم و مشغول هستند - که افرادی که نظارهگر بودن دیگران را ترجیح دادهاند، در آن میان قرار دارند- افزایش تنش و هیجان حاصل از پرداختن به بازی را به سمت دیگرانی که در دسترس قرار دارند، افراد ناظر بر بازی آنها نشانه رفته و به ابراز رفتارهای منفی که حاکی از نقص در مهارتهای اجتماعی است میپردازند. مولف در ادامه این پایاننامه آورده است: افزایش میزان مشغولیت با با زی، کاهش تماس و تعامل با دیگران را به همراه دارد که این امر ضمن آن که فرصت آموختن مهارتهای اجتماعی موثر و کارا را از فرد سلب میکند، آموختههای قبلی وی را نیز رو به نقصان میبرد، چرا که مهارتهای اجتماعی به طور معمول آموخته میشوند. (هارجی، 1377) و برای تصحیح و تداوم نیاز به دریافت پسخوراند دارند ( ارگایل، 1983). در خاتمهی این پایاننامه نیز آمده است: در مقولهی بازیهای رایانهیی -ویدیویی ، آنچه بیشتر در پیشبینی مهارت اجتماعی فرد تعیین کننده است، چگونگی پرداختن به بازی است (برای مثال ، محیطی که شخص جهت بازی انتخاب میکند و تا حدی منعکس کننده میزان تعامل فرد با دیگران نیز میباشد) تا پرداختن به آن. گفتنی است جامعه آماری پژوهش حاضر در پسران مقطع اول دبیرستانهای شهر تهران تشکیل میدهند که از آن میان، دانشآموزان پسر سال اول دبیرستان در منطقه شش تهران، به عنوان جامعه در دسترس انتخاب شدهاند. همچنین گروه نمونه عبارت از 258 نفر دانشآموز پسر بود که در سال تحصیلی 80-79 در منطقه شش تهران، در مقطع اول دبیرستان، مشغول به تحصیل بودهاند. |
دیگر امروز رایانه به یکی از ابزارهای فعالیت و بازی کودکان و گشت و گذار نوجوانان در اینترنت در سرتاسر دنیا مبدل گشته و کمتر خانه مجهز به کامپیوتریست که کودکان آن همپای بزرگسالانش ساعت هایی را در روز پشت سیستم سپری نکنند. این امر از جهات بسیاری می تواند برای کودکان و پیشرفت های علمی آنان مفید باشد و از سویی می تواند خطراتی را نیز در بر داشته باشد. متاسفانه در دنیای رایانه و اینترنت اعمال کنترل بسیار دشوار است. اکثر والدین مایلند بدانند که فرزنداشان ساعتهای بساری در شبانه روز را که در دنیای مجازی رایانه سیر می کند مشغول چه کاریست، در از چه نوع وب سایتهایی دیدن می کند؟ با چه افرادی معاشرت می کند؟ چه تصاویر و فیلم هایی مشاهده می کند؟ و ابهاماتی این چنینی که برای اکثر والدین بسیار مهم می باشد .
بنابراین وجود نرم افزار قدرتمند که به والدین امکان کنترل و مدیریت فعالیت های فرزنداشنان در کار با رایانه را بدهد نیازی ضروری برای اکثر خانواده هاست .
Child Control یکی از قدیمی ترین و محبوب ترین نرم افزار های کنترل والدین یا به اصطلاح Parental Control در سیستم عامل ویندوز است که سالهاست با عرضه نسخه های مختلف از نرم افزار خود همواره امکانات خوبی را برای مدیریت هرچه بهتر و اعمال محدودیت برای سیستم و کار فرزندان موفق بوده است .
Child Control 2007 آخرین ویرایش عرضه شده از این محصول و مختص سال 2007 است که به خوبی به کاربر امکان ثبت تمامی وقایع و رخدادهای درون رایانه، ثبت کاوش های اینترنتی، اعمال فیلترینگ و محدودیت برای سیستم و بسیاری عملیات مدیریتی این چنینی را تنها با چند کلیک ساده می دهد.
10 ویژگی برتر و نقاط قوت نرم افزار Child Control 2007
- محدود کردن استفاده از کامپیوتر و اینترنت به مقدار زمان مشخصی در هر روز و یا هفته ( برای مثال روزی 3 ساعت )!
- محدود کردن استفاده از رایانه و اینترنت به ساعات مشخصی از روز ( برای مثال تنها از ساعت 2-5 بعد از ظهر )
- اعمال فیلترینگ صفحات وب بر اساس Keyword هایی که شما مشخص می کنید. برای مثال هر صفحه ای که محتویاتی شامل محتویات تعیین شده شما را در بر داشته باشد با پیغام فیلترینگ شما روبرو می شود.
- اختصاص زمان مشخص برای استفاده از نرم افزار های مشخص ! ( برای مثال بازی فوتبال در روز تنها 1 ساعت اجرا شود! )
- ثبت تمامی وقایع و اتفاقات رایانه بر روی یک فایل و نمایش آن فایل به شما یا ارسال آن به صورت خودکار به ایمیل از پیش تعیین شده تان.
- محافظت از فایلها و پوشه های محرمانه با رمز عبور .
- محدود کردن دسترسی به نرم افزارهای خاص در ویندوز( برای مثال هیچ کس جز شما قادر به اجرای نرم افزار Photoshop CS3 نخواهد بود ! )
- بر پایی یک دیتابیس و سیستم مدیریت مرکزی در صورت اجرا و نصب در محیط شبکه !
- محاظت از بخش های اصلی سیستم همچون Registry یا Control Panel و ممانعت از دسترسی افراد نامعتبر به آنها !
سازگاری کامل با تمامی نسخه های سیستم عامل ویندوز از 95 تا ویندوز Vista !