+ ۱۳۸۹/۱۱/۱۳

 
نرم افزاری که آزادیهای زیر را برای کاربر قائل شود، نرم افزار آزاد خوانده می‌شود (توجه کنید که کلمه Free به معنای آزاد استفاده می‌شود و نه رایگان!):
آزادی اجرای برنامه برای هر کاری
آزادی مطالعه چگونگی کار برنامه و تغییر آن
آزادی تکثیر و کپی برنامه
آزادی تقویت و بهتر کردن برنامه و توزیع آن برای همگان

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

آزادی نرم‌افزارهای آزاد تا جایی هست که حتی می‌توان بدون پرداخت هزینه‌ای برای مجوز، کپی‌هایی از یک نرم‌افزار آزاد را، با یا بدون تغییرات، رایگان یا در ازای دریافت وجه، برای هرکس و هرجایی آن را توزیع کرد.

نرم‌افزارهای آزاد (به دلیل ابهام در لفظ free) به اشتباه به‌عنوان نرم‌افزارهای رایگان و احتمالاً بی‌ارزش تلقی می‌شدند، به همین دلیل این نرم‌افزارها به متن باز یا متن آزاد (Open Source) معروف شدند. در واقع در نرم افزاهای آزاد قیمت مورد نظر نیست بلکه آزادی مطرح است.

از دیگر ضمانت‌های که نرم‌افزار آزاد تأمین می‌کند، اجازه‌نامه عمومی همگانی (GPL) است. GPL برای هر کس امکان دوباره توزیع‌کردن یا همگردانی (کامپایل) مجدد متن برنامه را فراهم می‌کند. طبق این اجازه‌نامه همچنین باید متن برنامه در دسترس قرار داده شود تا امکان استفاده و یا تغییر آن باشد. برنامه‌های رایانه‌ای اینگونه را معمولاً بازمتن گویند. متن چنین برنامه‌هایی نمی‌تواند به حالت «محدودشده» درآید مگر با نظر تک تک نویسندگان آن متن. بیشتر نویسندگان متن سیستم‌عامل لینوکس تحت این مجوز برنامه‌نویسی می‌کنند.

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

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

شما اجازه ندارید با افزودن محدودیت‌هایی به یک نرم‌افزار تحت حمایت قانون کپی‌لفت، آزادی‌های مرکزی آن را برای دیگران از بین ببرید. این قانون نه تنها با آزادی‌های مرکزی در تضاد نیست بلکه از آنها محافظت نیز می‌کند.
برای این نرم افزارها اجازه‌نامه قابل قبول است که اگر یک نسخهٔ تغییر یافته از برنامه را توزیع کردید و توسعه‌دهندهٔ قبلی یک کپی از آن را درخواست نمود٬ شما باید یک کپی برای او بفرستید.

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

مثالهایی از نرم‌افزارهای آزاد کاربردی
هستهٔ سیستم‌عامل گنو/لینوکس، داروین (سیستم‌عامل) و بی‌اس‌دی
کامپایلر جی‌سی‌سی، کتابخانهٔ زبان برنامه‌نویسی سی
پایگاه‌داده‌های رابطه‌ای مانند: mysql،PostgreSQL
زبان‌های برنامه‌نویسی مانند تی‌سی‌ال، روبی، پایتون، پرل و پی‌اچ‌پی.
مرورگر وب فایرفاکس
اُپن آفیس
میزکار کی‌دی‌ای
میزکار گنوم
برنامه‌های حروف چینی مانند تک، لاتک و فارسی تک
نرم‌افزارهای مدیریت محتوا مانند جوملا (!Joomla)، پی‌اچ‌پی نیوک (phpnuke)، پست نیوک (postnuke) و مامبو (mambo)
نرمافزارهای ساخت انجمن (Forum) مانند پی‌اچ‌پی‌بی‌بی (phpbb)، اس‌ام‌اف (smf)، یاب (YaBB) و فروم (phorum)
 
 

   
+ ۱۳۸۹/۱۱/۱۳

 
سیستم مدیریت محتوا (Content Management System)چیست؟
این سیستم ها كه امروزه در وب بنام CMS شناخته میشوند، مخفف Content Management System میباشند كه یك برنامه نرم افزاری روی سرور هستند و به مدیر سایت اجازه میدهند تا محتوای سایت را تغییر دهد بدون نیاز به طراحی دوباره سایت .

در واقع طراح اولیه سایت یكبار سیستم CMS را طراحی میكند و تعدادی قالب آماده برای صفحات طراحی كرده و آن را روی سایت شما نصب میكند .و حال شما براحتی میتوانید صفحات دیگری را به آن كم یا اضافه یا ویرایش كنید .

چرا شما یك CMS لازم دارید ؟
اگر سایت شما هر چند وقت یكبار (مثلا هر دو هفته) به روز میشود میتوانید بجای اینكه هر بار به یك شركت طراحی وب مراجعه كنید ، خودتان با نصب یكی از این برنامه های مدیریت محتوا ، تغییراتتان را روی سایت اعمال كنید .

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

یك CMS چه امكاناتی دارد ؟
طیف وسیعی از امكانات . اكثر CMS ها در ورژن های مختلف و با قابلیت های مختلف به بازار عرضه میشوند . البته قابلیت بروز كردن اطلاعات در همه مشترك است اما قابلیت های ویژه دیگری دارند كه با قیمت های مختلف بشما پیشنهاد میدهند . از جمله:

1- مدیریت اطلاعات فرستاده شده توسط كاربران و تایید اطلاعات
2- چند زبانه بودن
3- ایجاد نقشه سایت داینامیك
4- امكان ایجاد تجارت الكترونیك یا فروشگاه مجازی
5- ایجاد فرم برای دریافت اطلاعات كاربران
6- بهینه سازی تصاویر آپلود شده
7- ایجاد و بروز كردن متا تگ ها
8- امكان جستجو در مطالب سایت
9- امنیت بیشتر
10- گزارش آمار بازدید از صفحات
و...

CMS های اطلاعاتی
این سیستم ها معمولا كار طراحی صفحات سایت را انجام نمیدهند . بلكه كارشان مدیریت اطلاعات یك سایت است . امكاناتی كه این سیستم ها دارند تقریبا بشرح زیر است :

1- امكان فرستادن اطلاعات به سایت توسط چند كاربر
2- آرشیو بندی اتوماتیك اطلاعات بر اساس تاریخ و موضوع
3- ایجاد امكان جستجو در اطلاعات قبلی
4- ایجاد لینك دائم برای هر مطلب و متا تگ برای آن
5- و امكانات جانبی دیگر مثلا ایجاد یك صفحه بعنوان لینكستان و ...

CMS های معروف
1-مامبو (mambo)(رایگان)
2-جوملا (Joomla)(رایگان)
3-پی اچ پی نیوك (php Nuke)(رایگان)
4-موول تایپ (MovableType)
5-میترا
و...
 

   
+ ۱۳۸۹/۱۱/۱۳

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

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

از منوی Start وارد Run شده و عبارت notepad را وارد نموده و Enter بزنید تا ویرایشگر Notepad ویندوز باز شود.
اکنون دستورات زیر را عینأ داخل Notepad کپی نمایید:

Dim msg, sapi
msg=InputBox("Matneh khod ra vared namaeed! www.Tarfandestan.com","Sokhangoo")
Set sapi=CreateObject("sapi.spvoice")
sapi.Speak msg

سپس از منوی File گزینه Save را انتخاب نمایید.
حال نامی برای فایل خود در نظر گرفته و آن را با فرمت vbs. ذخیره کنید. به عنوان مثال ayaran.vbs.
پس از اینکار بر روی دکمه Save کلیک کرده تا فایل شما در محل مورد نظر ذخیره گردد.
اکنون به محلی که فایل ذخیره شده بروید و فایل ساخته شده را با دوبار کلیک اجرا نمایید.
خواهید دید پنجره ای باز میشود که با تایپ عبارت مورد نظر خود در قسمت مربوطه و فشردن دکمه OK میتوانید منتظر شنیدن عبارت وارد شده خود توسط کامپیوتر شوید.

 


   
+ ۱۳۸۹/۱۱/۱۳

Visual Effects افکت های بصری هستند که در درون ویندوز XP به طور پیش فرض گنجانده شده اند و شامل افکت های منوها ، سایه موس ، سبک های بصری موجود بر روی دکمه ها و سایه های آیکون ها می باشد. این افکت ها با این که کم هستند اما ممکن است بر روی سیستم های قدیمی به خوبی اجرا نشوند و علاوه بر آن از سرعت پردازش اطلاعات ویندوز بکاهند. پس در صورتی که چندان به زیبایی ویندوز خود اهمیت نمیدهید و سرعت ویندوز برای شما مهم تر این ترفندها را اجرا کنید. بدین منظور: ۱- بر روی My Computer راست کلیک کنید. ۲- Properties را انتخاب کنید. ۳- بر روی تب Advanced کلیک کنید. ۴- در زیر Profemance بر روی دکمه Setting کلیک کنید. ۵- در اینجا شما می توانید تمامی این افکت ها را کنترل کنید و به سلیقه خود آنها را غیرفعال کنید.

   
+ ۱۳۸۹/۱۱/۱۳

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

مبانی مودم های کابلی
هر یک از سیگنال های تلویزیون در تلویزیون های کابلی دارای کانالی به اندازه 6 مگاهرتز ( شش میلیون سیکل در ثانیه ) است. کابل های کواکسیال استفاده شده در تلویزیون های کابلی قادر به حمل صدها سیگنال مگاهرتزی می باشند. در سیستم تلویزیون های کابلی ، سیگنال های مربوط به هر کانال، پهنای باندی به اندازه 6 مگاهرتز را اشغال می نمایند. در اغلب سیستم های فوق صرفا" از کابل کواکسیال استفاده می گردد. در سایر سیستم ها از فیبر نوری استفاده می گردد. ارسال سیگنا لها از طریق فیبر تا نزدیکترین ناحیه و یا محل ، انجام و در ادامه سیگنالهای مورد نظر با استفاده از کابل های کواکسیال به منزل مشترکین انتقال داده می شوند.
شرکت هائی که امکان دستیابی به اینترنت را از طریق کابل فراهم می نمایند ، قادر به ارسال اطلاعات و داده های اینترنت ازطریق کابل خواهند بود. علت این امر برخورد مودم های کابلی با داده ها بصورت downsteam است. ( اطلاعات از اینترنت برای هر کامپیوتر و از طریق یک کانال 6 مگاهرتزی ارسال می گردد ) در زمان ارسال اطلاعات توسط کاربران ، هر یک از کاربران به پهنای باند بمراتب کمتری ( دو مگاهرتز) نیاز خواهند داشت. بمنظور ارسال اطلاعات و دریافت اطلاعات کاربران از طریق مودم های کابلی به دو دستگاه خاص نیاز است : یک مودم کابلی( در محل مشترک )و یک "سیستم توقف مودم کابلی" CMTS)Cable Modem termination system) در محل شرکت ارائه دهنده خدمات .

اجزای یک مودم کابلی

مودم های کابلی می توانند از نوع داخلی (Internal) و یا خارجی (External) باشند. مودم های کابلی دارای اجزای اساسی زیر می باشند :

یک Tuner

یک Demodulator

یک Modulator

یک دستگاه MAC)media access control)

یک ریزپردازنده

در ادامه هر یک از اجزای فوق تشریح می گردد.

Tuner
tuner به کابل مربوطه متصل خواهد شد. در برخی حالات از یک Splitter ( تقسیم کننده ) بمنظور نفکیک کانال داده اینترنت از کانال های تلویزیونی استفاده می گردد. tuner سیگنال های مدوله شده دیجیتال را دریافت و آنها را در اختیار demodulator قرار می دهد. در برخی حالات tuner از یک diplexer استفاده می نماید. diplexer ، امکان استفاده tuner از یک مجموعه فرکانس ها ( معمولا" بین 42 و 850 مگا هرتز ) برای ترافیک downstream و مجموعه دیگر از فرکانس ها ( معمولا" 5 و 42 مگاهرتز ) را برای ترافیک upstream فراهم می نماید. در برخی از سیستم ها ( در اغلب سیستم هائی که دارای محدودیت ظرفیت برای کانال می باشند ) ، از tuner مودم کابلی برای داده های Downstream و از یک مودم معمولی (Dial-Up) برای ترافیک upstream استفاده می گردد. در هر یک از موارد فوق ، tuner پس از دریافت سیگنال ، آن را برای یک demodulator ارسال خواهد کرد.

Demodulator
اکثر demodulator ها ، چهار عملیات اساسی را انجام می دهند . یک سیگنال رادیوئی ( حاوی اطلاعات رمز شده با تغییر amplitude و phase) را بعنوان ورودی گرفته و آن را به یک سیگنال ساده قابل پردازش توسط یک "مبدل آنالوگ به دیجیتال " ، تبدیل می نماید. مبدل مربوطه پس از دریافت سیگنال ( ولتاژ آن متغیر است ) ، آن را به مجموعه ای از صفر و یک تبدیل می نماید. در فرآیند فوق از یک ماژول تصحیح کننده خطاء ، بمنظور بررسی صحت اطلاعات دریافت شده استفاده خواهد شد. بدین ترتیب در صورت بروز خطاء در ارسال اطلاعات ، امکان تشخیص و برخورد با آنان وجود خواهد داشت .

Modulator
در مودم های کابلی که از سیستم کابل برای ترافیک upstream استفاده می نمایند،از یک modulator بمنظور تبدیل داده های دیجیتال به سیگنا ل های رادیوئی برای انتقال اطلاعات استفاده می شود. عنصر فوق از سه بخش مجزا تشکیل شده است :

یک بخش بمنظور درج اطلاعات استفاده شده برای تصحیح خطاء

یک QAM modulator

یک مبدل دیجیتال به آنالوگ

MAC
MAC بین بخش های Downstream و Upstream یک مودم کابلی قرار گرفته و بعنوان یک اینترفیس بین بخش های نرم افزاری و سخت افزاری ، پروتکل های متفاوت شبکه ها عمل می نماید. تمام دستگاههای شبکه دارای MAC می باشند. در مودم های کابلی با توجه به پیچیدگی موجود، سعی می گردد که برخی از عملیات مربوط به MAC توسط پردازنده اصلی مودم کابلی صورت پذیرد.

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

CMTS)Cable Modem termination system)
عملکرد CMTS در مودم های کابلی ( تجهیزات نصب شده در شرکت ارائه دهنده خدمات فوق ) ، مشابه DSLAM در DSL است . CMTS ، ترافیک مجموعه ای از مشترکین را اخذ و پس از استقرار در یک کانال ، آنها را برای مرکز ارائه دهنده خدمات اینترنت (ISP) ارسال می دارد. اطلاعات ارسال شده توسط ISP برای تمام مشترکین فرستاده خواهد شد. ( نظیر شبکه های اترنت ) . تشخیص اینکه اطلاعات ارسالی مربوط به کدامیک از مشترکین است برعهده تجهیزات استفاده شده در محل مشتری است . اطلاعاتی که توسط مشترکین برای CMTS ارسال می گردد ،توسط سایر مشترکین قابل مشاهده نخواهد بود. پهنای باند مربوطه برای ارسال اطلاعات مشترکین به مجموعه ای از واحدهای زمانی ( بر حسب میلی ثانیه ) تقسیم و هر یک از کاربران قادر به استفاده از پهنای باند فوق در یک مقطع زمانی پیوسته خواهند بود.
یک CMTS قادر به ارسال اطلاعات 1.000 کاربر اینترنت از طریق یک کانال 6 مگاهرتزی است . هر کانال قادر به ارسال 30 تا 40 مگابیت در ثانیه است . بدین ترتیب کاربران دارای سرعت و کارآئی بمراتب بیشتر نسبت به مودم های معمولی می باشند.
در صورتیکه کاربری با استفاده از مودم کابلی به اینترنت متصل گردد ( صرفا" کاربر فوق در لحظه مورد نظر به اینترنت متصل است ) ، تمام پهنای باند موجود به وی اختصاص داده خواهد شد . بموازات ورود سایر کاربران به شبکه و یا انجام عملیات سنگین توسط برخی از کاربران ، سرعت و کارآئی هر یک از کاربران بمنظور دستیابی به اطلاعات افت خواهد کرد ( پهنای باند بصورت مشترک بین تمام کاربران و بر اساس یک الگوریتم زمانبندی خاص اختصاص داده می شود ) در چنین مواردی ، شرکت های ارائه دهنده خدمات مودم کابلی می بایست یک کانال جدید را اضافه و با توزیع مناسب کاربران بر روی هر یک از کانال های موجود ، قادر به برطرف نمودن مشکل سرعت و کارآئی کاربران و مشترکین خود می باشند. کارآئی دستیابی به اینترنت با استفاده از مودم های کابلی بر خلاف خطوط ADSL ، به مسافت موجود بین مشترک و شرکت ارائه دهنده خدمات ، بستگی ندارد.


   
+ ۱۳۸۹/۱۱/۱۳
امروزه از اینترنت در ابعاد گسترده و با اهدافی مختلف استفاده بعمل می آید . یکی از نکات قابل توجه اینترنت ، تنوع استفاده کنندگان آن در رده های سنی مختلف و مشاغل گوناگون است. در سالیان اخیر و به موازات رشد چشمگیر استفاده از اینترنت خصوصا" توسط کاربران خانگی ، مشاهده شده است به محض شیوع یک ویروس و یا کرم جدید ، اغلب قربانیان را کاربرانی تشکیل می دهند که فاقد مهارت های لازم در جهت استفاده ایمن از اینترنت بوده و دارای یک سطح حفاظتی مناسب نمی باشند . کاربران اینترنت همواره در تیررس مهاجمان بوده و همیشه امکان بروز حملات وجود خواهد داشت .
برای استفاده ایمن از اینترنت ، می بایست اقدامات متعددی را انجام داد . قطعا" استفاده از فایروال یکی از اقدامات اولیه و در عین حال بسیار مهم در این زمینه است . استفاده از اینترنت بدون بکارگیری یک فایروال ، نظیر بازنگهداشتن درب ورودی یک ساختمان است که هر لحظه ممکن است افراد غیرمجاز از فرصت ایجاد شده برای ورود به ساختمان استفاده نمایند . با نصب و استفاده از یک فایروال ، ضریب مقاومت و ایمنی کاربران در مقابل انواع حملات افزایش خواهد یافت .
شرکت مایکروسافت اخیرا" Service Pack 2 ویندوز XP را عرضه نموده است ( نسخه های Professional و Home ) . یکی از ویژگی های مهم SP2 ، نصب پیش فرض یک فایروال است.
فایروال ویندوز XP که از آن با نام ( ICF ( Internet Connection Firewall نیز یاد می گردد به صورت پیش فرض ، فعال می گردد. پس از فعال شدن فایروال ، شاهد بروز تغییراتی گسترده در رابطه با عملکرد ویندوز بوده و ممکن است برخی برنامه ها ، ابزارها و یا سرویس ها در زمان اجراء با مشکلاتی مواجه گردند (بلاک شدن برخی از پورت های استفاده شده توسط برنامه ها و یا سایر ابزارهای کاربردی ) .
در این مطلب قصد داریم به بررسی نحوه استفاده از فایروال ویندوز XP پرداخته و به برخی از سوالات متداول در این زمینه پاسخ دهیم . احازه دهید قبل از هر چیز با فایروال ها و جایگاه آنان در استفاده ایمن از شبکه های کامپیوتری ( اینترانت ، اینترنت ) بیشتر آشنا شویم .

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

ضرورت استفاده از فایروال
یک سیستم بدون وجود یک فایروال ، در مقابل مجموعه ای گسترده از برنامه های مخرب آسیپ پذیر است و در برخی موارد صرفا" پس از گذشت چندین دقیقه از اتصال به اینترنت ، آلوده خواهد شد . در صورتی که تدابیر و مراقبت لازم در خصوص حفاظت از سیستم انجام نگردد ، ممکن است کامپیوتر شما توسط برنامه هائی که به صورت تصادفی آدرس های اینترنت را پویش می نمایند ، شناسائی شده و با استفاده از پورت های فعال اقدام به تخریب و یا سوء استفاده از اطلاعات گردد .
بخاطر داشته باشید با این که استفاده از فایروال ها به عنوان یک عنصر حیاتی در ایمن سازی محیط های عملیاتی مطرح می باشند ولی تمامی داستان ایمن سازی به این عنصر ختم نمی شود و می بایست از سایر امکانات و یا سیاست های امنیتی خاصی نیز تبعیت گردد . باز نکردن فایل های ضمیمه همراه یک Email قبل از حصول اطمینان از سالم بودن آنان ، پیشگیری از برنامه های جاسوسی معروف به Spyware و یا نصب برنامه های Plug-ins که با طرح یک پرسش از شما مجوز نصب را دریافت خواهند داشت ، نمونه هائی از سایر اقدامات لازم در این زمینه است .
فایروال ها قادر به غیرفعال نمودن ویروس ها و کرم های موجود بر روی سیستم نبوده و همچنین نمی توانند نامه های الکترونیکی مخرب به همراه ضمائم آلوده را شناسائی و بلاک نمایند . به منظور افزایش ضریب ایمنی و مقاومت در مقابل انواع حملات ، می بایست اقدامات متعدد دیگری صورت پذیرد :

نصب و بهنگام نگهداشتن یک برنامه آنتی ویروس
استفاده از ویندوز Upadate ( برطرف نمودن نقاط آسیب پذیر ویندوز و سرویس های مربوطه )
استفاده از برنامه های تشخیص Spyware
نصب Plug-ins از سایت های تائید شده
نحوه فعال نمودن فایروال در ویندوز XP
در صورت نصب SP2 ویندوز XP ، فایروال به صورت پیش فرض فعال می گردد . برخی از مدیران شبکه و یا افرادی که اقدام به نصب نرم افزار می نمایند ، ممکن است آن را غیرفعال کرده باشند .



برای آگاهی از وضعیت فایروال از پنجره Security Center استفاده می شود . بدین منظور مراحل زیر را دنبال می نمائیم :

Start | Control Panel | Security Center
انتخاب گزینه Recommendations در صورت غیرفعال بودن فایروال
انتخاب گزینه Enable Now به منظور فعال نمودن فایروال


در صورتی که ویندوز XP بر روی سیستم نصب شده است ولی SP2 هنوز نصب نشده باشد ، پیشنهاد می گردد که در اولین فرصت نسبت به نصب SP2 ویندوز XP ، اقدام شود ( استفاده از امکانات گسترده امنیتی و فایروال ارائه شده ) .
نسخه های قبلی ویندوز نظیر ویندوز 2000 و یا 98 به همراه یک فایروال از قبل تعبیه شده ارائه نشده اند . در صورت استفاده از سیستم های عامل فوق، می بایست یک فایروال نرم افزاری دیگر را انتخاب و آن را بر روی سیستم نصب نمود .

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

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

در صورتی که بر روی شبکه از یک فایروال استفاده می گردد ، آیا ضرورتی به استفاده از فایروال ویندوز وجود دارد ؟
در صورت وجود بیش از یک کامپیوتر در شبکه ، پیشنهاد می گردد که حتی در صورتی که از یک فایروال سخت افزاری استفاده می شود ، از فایروال ویندوز XP نیز استفاده بعمل آید . فایروال های سخت افزاری عموما" ترافیک بین شبکه و اینترنت را کنترل نموده و نظارت خاصی بر روی ترافیک بین کامپیوترهای موجود در شبکه را انجام نخواهند داد . در صورت وجود یک برنامه مخرب بر روی یکی از کامپیوترهای موجود در شبکه ، شرایط و یا پتانسیل لارم برای گسترش و آلودگی سایر کامپیوترها فراهم می گردد. فایروال ویندوز XP علاوه بر حفاظت کامپیوتر شما در خصوص دستیابی غیرمجاز از طریق اینترنت ، نظارت و کنترل لازم در رابطه با دستیابی غیرمجاز توسط کامپیوترهای موجود در یک شبکه داخلی را نیز انجام خواهد داد .
فایروال بر روی چه برنامه هائی تاثیر می گذارد ؟
فایروال ویندوز با هر برنامه ای که تصمیم به ارسال داده برای سایر کامپیوترهای موجود در شبکه داخلی و یا اینترنت را داشته باشد ، تعامل خواهد داشت . پس از نصب فایروال ، صرفا" پورت های مورد نیاز برنامه های متداول مبادله اطلاعات نظیر Email و استفاده از وب، فعال می گردند . در این راستا و به منظور حفاظت کاربران ، امکان استفاده از برخی برنامه ها بلاک می گردد . سرویس FTP ( سرویس ارسال و یا دریافت فایل ) ، بازی های چند نفره ، تنظیم از راه دور Desktop و ویژگی های پیشرفته ای نظیر کنفرانس های ویدئویی و ارسال فایل از طریق برنامه های ( IM ( Instant Messaging ، از جمله برنامه هائی می باشند که فعالیت آنان توسط فایروال بلاک می گردد . در صورت ضرورت می توان پیکربندی فایروال را بگونه ای انجام داد که پورت های مورد نیاز یک برنامه فعال تا امکان مبادله اطلاعات برای برنامه متقاضی فراهم گردد .

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

Keep Blocking : با انتخاب این گزینه به برنامه متقاضی اجازه دریافت اطلاعات داده نخواهد شد .

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

Ask Me Later : با انتخاب گزینه فوق در مقطع فعلی تصمیم به بلاک نمودن درخواست برنامه متقاضی می گردد.در صورت اجرای برنامه ، سوال فوق مجددا" مطرح خواهد شد .

در صورتی که یک برنامه بلاک شده است ولی بدلایلی تصمیم به فعال نمودن و ایجاد شرایط لازم ارتباطی برای آن را داشته باشیم ، می توان به صورت دستی آن را به لیست موسوم به Exception اضافه نمود . لیست فوق حاوی نام برنامه هائی است که به آنان مجوز لازم به منظور فعال نمودن ارتباطات شبکه ای اعطاء شده است. برای انجام این کار می توان مراحل زیر را دنبال نمود :

Start | Control Panel | Security Center

کلیک بر روی Windows Firewall از طریق Manage security settings for

انتخاب Add Program از طریق Exceptions

انتخاب برنامه مورد نظر ( از طریق لیست و یا Browse نمودن )

پس از انجام عملیات فوق ، می بایست نام برنامه مورد نظر در لیست Exception مشاهده گردد. در صورتی که قصد بلاک نمودن موقت فعالیت ارتباطی یک برنامه را داشته باشیم،می توان از Cehckbox موجود در مجاورت نام برنامه استفاده نمود . برای حذف دائم یک برنامه موجود در لیست Exception ، می توان از دکمه Delete استفاده نمود .
کاربرانی که دارای اطلاعات مناسب در رابطه با پورت های مورد نیاز یک برنامه می باشند ، می توانند با استفاده از Add Port ، اقدام به معرفی و فعال نمودن پورت های مورد نیاز یک برنامه نمایند . پس از فعال نمودن پورت ها ، وضعیت آنان صرفنظر از فعال بودن و یا غیرفعال بودن برنامه و یا برنامه های متقاضی ، باز باقی خواهند ماند . بنابراین در زمان استفاده از ویژگی فوق می بایست دقت لازم را انجام داد . اغلب از ویژگی فوق در مواردی که پس از اضافه نمودن یک برنامه به لیست Exception همچنان امکان ارتباط آن با سایر کامپیوتر و یا برنامه های موجود در شبکه وجود نداشته باشد، استفاده می گردد .

آیا فایروال با بازی های اینترنتی کار می کند ؟
پاسخ به سوال فوق مثبت است و فایروال ویندوز قادر به باز نمودن پورت های ضروری برای بازی های اینترنت و یا شبکه محلی است . در این رابطه یک حالت خاص وجود دارد که ممکن است برای کاربران ایجاد مشکل نماید. در برخی موارد ممکن است پیام هشداردهنده امنیتی که از شما به منظور ارتباط با سایر برنامه ها تعیین تکلیف می گردد ، بر روی صفحه نمایشگر نشان داده نمی شود . همانگونه که اطلاع دارید اکثر بازی های کامپیوتری به منظور نمایش تصاویر سه بعدی بر روی نمایشگر و استفاده از تمامی ظرفیت های نمایش ، از تکنولوژی DirectX استفاده می نمایند . با توجه به این موضوع که پس از اجرای یک بازی ، کنترل نمایش و خروجی بر روی نمایشگر بر عهده بازی مورد نظر قرار می گیرد ، امکان مشاهده پیام هشداردهنده امنیتی وجود نخواهد داشت . ( در واقع پیام پشت صفحه بازی مخفی شده است ) . بدیهی است با عدم پاسخ مناسب به پیام هشداردهنده ، فایروال ویندوز امکان دستیابی شما به شبکه بازی را بلاک خواهد کرد . در صورت برخورد با چنین شرایطی در اکثر موارد با نگه داشتن کلید ALT و فشردن دکمه TAB می توان به Desktop ویندوز سوئیچ و پیام ارائه شده را مشاهده و پاسخ و یا واکنش مناسب را انجام داد . پس از پاسخ به سوال مربوطه می توان با فشردن کلیدهای ALT+TAB مجددا" به برنامه مورد نظر سوئیچ نمود .
تمامی بازی های کامپیوتری از کلیدهای ALT+TAB حمایت نمی نمایند . در چنین مواردی و به عنوان یک راهکار منطقی دیگر، می توان اقدام به اضافه نمودن دستی بازی مورد نظر به لیست Exception نمود ( قبل از اجرای بازی ) .

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

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

چگونه می توان صفحه مربوط به نمایش پیام های هشداردهنده امنتی فایروال ویندز را غیرفعال نمود ؟
در صورتی که فایروال ویندز را اجراء نکرده باشید و مرکز امنیت ویندوز (WSC ) قادر به تشخیص فایروال استفاده شده بر روی سیستم شما نباشد ، شما همواره یک پیام هشداردهنده امنیتی فایروال را مشاهده خواهید کرد . برای غیرفعال نمودن این چنین پیام هائی می توان مراحل زیر را انجام داد :

Start | Control Panel | Security Center

در بخش Windows Security Center ، بر روی دکمه Recommendation کلیک نمائید . در صورتی که دکمه فوق مشاهده نشود ، فایروال ویندوز فعال است )

انتخاب گزینه I have a firewall solution that I'll monitor myself

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

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


   
+ ۱۳۸۹/۱۱/۱۳
مدیریت شبكه مفهومی است كه از ابزارها و تكنیك های مختلف به منظور مدیریت شبكه ها و سیستم ها استفاده می‌كند. مدیریت شبكه شامل پنج عملكرد اصلی است كه عبارتند از: مدیریت خطا، مدیریت تنظیمات، مدیریت حسابداری، مدیریت اجرا و مدیریت امنیت.
در شبكه های كامپیوتری كه تركیبی از روترها، سوییچ ها و سرورها هستند، به منظور مدیریت همه ابزارها در شبكه باید كاری انجام شود تا از كاركرد بهینه آنها آگاه شد. اینجاست كه SNMP، پروتكل ساده مدیریت شبكه، می تواند كمك كند. این پروتكل در سال 1988 معرفی شد تا احتیاجات رشدیافته ای را در پروتكلی به منظور مدیریت ابزارهایی كه بر پایه پروتكل IP كار می كنند، اعمال كند. هسته اصلی SNMP مجموعه ساده ای از اعمال است كه بهadministrator ها توانایی تغییر در محدوده ابزارهایی كه بر پایه این پروتكل كار می كنند را، فراهم می‌كند. همچنین امكان اداره كردن، بازبینی و پشتیبانی از شبكه های كامپیوتری دور یا محلی كه بر اساس TCP/IP كار می كنند، میسر می شود و در واقع راهی استاندارد به منظور یافتن اطلاعات شبكه ای است. در مقایسه با SGMP كه تنها برای مدیریت روترهای اینترنت ایجاد شد، SNMP برای مدیریت Unix، Windows، پرینتر ها، Modem Rackها و غیره به كار می رود. مانیتور كردن شبكه به منظور درك بهتر چگونگی كاركرد شبكه، از دیگر عملكردهای مدیریت شبكه است كه نه تنها برای ترافیك های محلی به كار نمی رود، بلكه برای interface های شهری نیز استفاده می شود.
در این پروتكل، دو عنصر ارتباطی به نام های عامل ها و مدیران وجود دارندكه عامل ها اطلاعات شبكه ای را برای برنامه مدیر كه روی كامپیوتر دیگر در حال اجراست، تولید می كند. مدیر، یك راه انداز سرور است كه بعضی از انواع نرم افزارهای سیستمی كه وظایف مدیریتی شبكه را بر عهده دارند، اجرا می كنند. مدیران اغلب با عنوان NMS شناخته می شوند. وظیفه یك NMS، سرشماری و دریافت trap از یك عامل در شبكه می باشد. Trap راهی است كه یك عامل از طریق آن وقوع چیزی را به NMS خبر می‌دهد.شكل زیر چگونگی ارتباط NMS و عامل را نمایش می دهد.

مدیران و عامل ها از MIB ها به صورت مشترك استفاده می كنند كه همانند یك پایگاه داده است و متشكل از هر نوع اطلاعات آماری از device های مدیریت شده می باشد و این اطلاعات را به صورت ساختار درختی نمایش می دهد.
گروه IETFSNMP ، پروتكل را به عنوان پروتكل استانداردی برای كنترل ترافیك اینترنت معرفی كرده است. همچنین RFC هایی مخصوص پروتكل های موجود در محدوده‌ی پروتكل IP منتشر كرده است. پروتكل SNMP در سه نسخه ارائه شده است كه اولین نسخه از آن در RFC1157 معرفی شده است. امنیت در این نسخه از پروتكل پایین است و با كلمه عبور می توان با آن ارتباط برقرار كرد. در كل سه نوع ارتباط رشته ای در SNMPv1 وجود داردكه عبارتند از:
Read-only، write-only و trap.
SNMPv2 بر پایه ارتباط رشته ای كار می كند كه از لحاظ فنی SNMPv2c نامیده می شود و در RFC3416، RFC3417، RFC3418 معرفی شده است.
SNMPv3 آخرین نسخه از SNMP است كه مزیت اصلی آن نسبت به نسخ قبلی، در مدیریت شبكه، امنیت است و پشتیبانی هایی به منظور خصوصی كردن ارتباط ها بین موجودیت های مدیریت شده، اضافه می كند. به طور كلی این نسخه از SNMP تحولی از استانداردهای اولیه به استانداردهای نهایی ایجاد كرده است. RFC هایی كه این نسخه را تعریف می كنند، عبارتند از:
RFC3410, RFC3411, RFC3412, RFC3413, RFC3414, RFC3415, RFC3416, RFC3417, RFC3418, RFC2576

با توجه به اینكه SNMPv3 یك استاندارد كامل است، ولی تولیدكنندگان به سختی نسخه جدیدی از یك پروتكل را قبول می كنند و اكثر اعمال تولیدكنندگان SNMP بر طبق SNMPv1 صورت می گیرد.
SNMPv1 و SNMPv2 از مفاهیم ارتباط های رشته ای به منظور برقراری اطمینان بین مدیران و عامل ها استفاده می كنند. ارتباط های رشته ای كه پیشتر نام برده شد، لزومآ كلمه عبور هستند كه هر كدام از آنها فعالیت های مختلفی را كنترل می كنند.
در ارتباط رشته ای read-only، همانطور كه از نام آن مشخص است، امكان خواندن داده را به شما می‌دهد و هر گونه تغییر یا اصلاح در آن غیر ممكن است. به عنوان مثال شما قادر خواهید بود تعداد بسته هایی كه به پورت های روتر شما فرستاده می شود را، بخوانید، اما صفر كردن شمارنده را غیر ممكن می سازد.
ارتباط رشته ای read-write، امكان خواندن و تغییر مقادیر را میدهد. با این ارتباط شما می توانید شمارنده ها را بخوانید، مقادیر آنها را صفر كنید و همچنین واسط ها را صفر كنید یا كارهایی در جهت تغییر تنظیمات روتر انجام دهیم.
سرانجام ارتباط رشته ای trap امكان دریافت رشته ها از جمله اخطارهای غیر همزمان از عامل را فراهم می كند. بیشتر فروشندگان، تجهیزات خود را با ارتباط رشته ای پیش فرض می فرستند. به طور نمونه از public برای ارتباط رشته ای read-only و private برای ارتباط رشته ای read-write استفاده می شود. تغییر این پیش فرض ها پیش از اینكه دستگاه روی شبكه قرار گیرد، مهم است. زمانیكه یك عامل SNMP را نصب می كنید،‌ مقصد رشته ی آن را تنظیم می كنید از آن پس هر رشته ای كه آن عامل تولید می كند، به این آدرس فرستاده می شود.
در این بخش مثالی از كاركرد SNMP در شبكه را به منظور درك بهتر بیان می كنیم. تصور كنید شبكه ای از 100 نوع ماشین داریم كه سیستم عامل های مختلفی روی آن اجرا می شوند. برخی از ماشین ها file server هستند، تعداد كمی print server می باشند. یكی دیگر نرم افزاری اجرا می كند كه به شرح معاملات كارت اعتباری رسیدگی می كند و بقیه كارهای پرسنلی انجام می دهند. علاوه بر این چندین سوئیچ و روتر به كاركرد شبكه كمك می كند. یك مدار T1شركت را به اینترنت وصل می كند و یك ارتباط خصوصی برای سیستم تایید كارت اعتباری اجرا می شود. اگر file server در ساعات غیر كاری خراب شود، مشكلات زیادی را به دنبال خواهد داشت. اگر مشكل سخت افزاری باشد، مشكل به راحتی رفع خواهد شد. اما هزاران دلار از فروش شركت از دست خواهد رفت. همچنین اگر مدارT1 در اینترنت از كار بیفتد، مقدار زیادی از درآمد حاصل از فروش سایت شركت را تحت تاثیر قرار می دهد. اینجاست كه SNMP می‌تواند به ما حتی در ایام تعطیل كمك كند، بدون اینكه نیاز به نیروی انسانی باشد. این پروتكل امكان چك كردن شبكه را فراهم می كند. به طور مثال زمانیكه افزایش تعداد بسته های بد و ناجور كه به یكی از روترها می رود، منجر به از كار افتادن روتر مربوطه شوند، SNMP گزارش می دهد و می توان قبل از، ازكار افتادن روتر مربوطه، نسبت به رفع مشكل اقدام كرد.




   
+ ۱۳۸۹/۱۱/۱۳
اجزاء تشکیل دهنده کامپیوتر عبارتند از :
1.سخت افزار
2.نرم افزار
• سخت افزار
خروجی<============== پردازش<===============ورودی
كامپیوترهای امروزی معمولاً از قطعات زیر تشكیل می‌شوند:
دستگاههای ورودی
حافظه‌های جانبی
حافظه‌های اصلی
واحد پردازشگر مركزی
دستگاههای خروجی

• نرم افزار:
نرم‌افزار یكی از بخش‌های اساسی كامپیوتر به شمار می‌آید، كه در واقع سخت‌افزار را بكار می‌گیرد. بعبارت دیگر رابط بین كاربر و سخت‌افزار را نرم‌افزار می‌نامند. نرم‌افزار در حقیقت روح و جان یك كامپیوتر است، كه به سخت‌افزار هویت می‌بخشد.

زبانهای برنامه‌نویسی :
نرم‌افزارها توسط زبانهای برنامه‌نویسی نوشته می‌شوند. زبانهای برنامه‌نویسی، یك سیستم ارتباطی هستند كه توسط آنها می‌توان دستورات لازم را به ماشین انتقال داد.
هرزبان برنامه‌نویسی به مجموعه‌أی از علایم، قواعد و دستورالعمل‌ها گفته می‌شود كه امكان ارتباط با كامپیوتر را جهت بیان كاری یا حل مسئله‌ای فراهم می‌كند.
در حالت كلی زبانهای برنامه‌نویسی را به سه دسته زیر تقسیم‌بندی می‌كنند:
1.زبانهای سطح بالا
2.زبانهای سطح پایین
3.زبانهای سطح میانی
زبان Pascal
این زبان توسط پروفسور نیكلاس ویژت در انستیتو فنی فدرال سوئیس در در اواخر سال 1960 و اوایل 1970 مطرح گردید و به افتخار بلز پاسكال دانشمند فرانسوی قرن هفدهم میلادی، پاسكال نامگذاری شده است.پاسکال یک زبان سطح بالا است.
اجزای تشکیل‌دهنده یک برنامه:
1.کلمات ذخیره‌شده ( Reserved Words )
2.شناسه‌ها ( identifier )

کلمات ذخیره‌شده ( Reserved Words )
کلمات ذخیره شده، کلماتی هستند که مترجم زبان آنها را می‌شناسد و معنای خاصی برای زبان دارند. مترجم زبان به محض مشاهده این کلمات اعمال خاصی را انجام می‌دهد. هر زبان دارای تعداد مشخصی کلمات ذخیره شده می‌باشد و این تعداد قابل افزایش توسط برنامه‌نویس نیست.
بعضی از کلمات ذخیره شده در پاسکال عبارت است از :
And,file,goto,var, while,unit,until,program,procedure,..
شناسه‌ها ( identifier )
شناسه در پاسکال برای نامگذاری ثابتها، تایپها، پروسیجروها، توابع، میدانهای یک رکورد، برنامه و همچنین یونیت مورد استفاده قرار می‌گیرد.
در حالت کلی دو نوع شناسه وجود دارد :
1.id های استاندارد: این نوع id ها از قبل در زبان پاسکال تعریف شدهاند و در برنامهها، معنای خاصی دارند .

2.Id های غیراستاندارد: این نوع id ها بوسیله کاربر بطور مجزا تعریف میشوند و اصطلاحاً به آنها userdefined گفته میشود.
ساختار برنامه در زبان پاسکال :
اجزاء اصلی یک برنامه به زبان پاسکال بصورت زیر می‌باشد:
1. عنوان برنامه
2.قسمت تعاریف برنامه
3.قسمت دستور العملها

قسمت تعاریف برنامه:
1.اعلان ثابتها Constant Declaration
2.اعلان انواع Type Declaration
3.اعلان متغیرها Declaration Variable
4.اعلان برچسبها Declaration Label

درحالت کلی می‌توان شکل یک برنامه در زبان پاسکال را بصورت زیر بیان کرد:
1.استفاده از کلمه ذخیره شده Program و اسم برنامه ( که می‌تواند بکار برده نشود )
2.قسمت تعاریف شناسه‌ها
3.بلوک اصلی برنامه که با Begin شروع و به End همراه نقطه ( . ) ختم می‌شود.
4.هر دستور در پاسکال به ( ; ) ختم می‌شود.
فرم کلی برنامه در پاسکال:
; نام program
; تعریف ثابت Const
; تعریف متغیرVar
;تعریف نوع Type
BRGIN
; دستورات برنامه
END; متغیرها (Variables)
متغیر، محلی از حافظه است که دارای نوع و اسم می‌باشد. نوع متغیر همان نوع داده بوده و اسم متغیر از قواعد اسم‌گذاری شناسه تبعیت می‌کند.
انواع داده‌ها ( data types ):
1.داده‌های ساده (Simple data type)
.2داده‌های ساخت‌یافته ( ( Structural Data Types
3. داده‌های اشاره‌گر (Pointer Data Types)


داده‌های ساده (Simple data type)
1.انواع صحیح شامل اعداد بدون ممیز است متداولترین انواع صحیح را در شكل زیر ببینید:

2.اعداد اعشاری: شامل اعداد با نقطه ممیز است متداولترین آن در شكل زیر ببینید::


3.:Char این نوع داده که به آن کاراکتری می گویند حداکثر می تواند یک کاراکتر را در خود نگه دارد و اندازه آن یک بایت از حافظه را اشغال می کند.
4.نوع String:
این نوع داده برای ذخیره رشته ها مثل اسامی افراد به کار می رود حداکثر طول آن 255 کاراکتر است در ضمن برای هر رشته باید طول آن را مشخص کنیم در غیر این صورت طول آن را به طور پیش فرض 80 در نظر می گیرد.
5.نوع Boolean:
این نوع داده که داده های بولی خوانده می شود مقادیر این نوع داده های بولی دارای دو ارزش درستی یا نادرستی است که در پاسکال با 0و1 نمایش می دهند 0 به معنای نادرستی و1 به معنای درستی است.

2.انواع داده‌های ساخت‌یافته عبارتند از:
• آرایه‌ها
• رکوردها
• مجموعه‌ها
• فایلها
3. داده‌های اشاره‌گر (Pointer Data Types)
ممکن است در نوشتن برنامه، نوع داده‌های بحث شده در بالا به دلایل مختلف از جمله مشخص نبودن تعداد ورودیهای مسئله و غیره مشخص نباشد لذا نیاز به متغیرهایی هست که بتوانند آدرس متغیرهای دیگر را در خود نگه دارند، این نوع داده‌ها، داده‌های اشاره‌گر نام دارند.
• در پاسکال برای معرفی متغیرها بصورت زیر عمل می‌کنند:
Var
; نوع متغیر: اسم متغیر
• برای تعریف یک ثابت بصورت زیرعمل می‌کنیم :
; مقدار ثابت = اسم متغیر Const

شکل کلی یک دستور جایگزینی در پاسکال بصورت زیر است:
عبارت محاسباتی = : اسم شناسه
عبارت قیاسی یا
عبارت منطقی
افزودن توضیحات به برنامه (Comment):
افزودن مطلب توضیحی در درون خود برنامه عملی پسندیده و مطلوب است بدین ترتیب که بعد از مدتی امکان فراموشی کار با برنامه از بین می‌رود و در کل می‌توان گفت که نوشتن توضیحات در برنامه خوانایی آن را بالا می‌برد.
در پاسکال توضیحات بین دو آکولاد محصور می‌شوند.
{ This is comment }
{ This program written by A. Pascal }

قبل از این که شروع به نوشتن یک برنامه کنیم ابتدا باید دستورات ورودی و خروجی را در پاسکال یاد بگیریم :
خروجی با دستور Write :
این دستور برای نوشتن اطلاعات در خروجی بکار می‌رود. اطلاعات خروجی می‌توانند ثابتهای عددی، مقادیر متغیرها، عبارات و غیره باشند. شکل دستور در حالت کلی بصورت زیر است:
(....... و متغیر2 و متغیر1 )write
یا (....... و' عبارت 2' و'عبارت1 ')
یا (....... و ثابت 2 وثابت 1 )
مثال:
Var
A , B: integer ;
Ch: char ;
R: Real ;
Begin
A: = 10 ; B: = 15 ;
Ch: = ' T ' ;
R: = 12.25
Write ( ' A = ' , A, ' B = ' , B ) ;
Write ( ' ch = ' , ch , ' R= ' , R ) ;
Write ( ' sum of A and B = ' , A + B ) ;
End. { end of program}

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

A = 10 B = 15 ch = TR = 1.2250000000 e + 01 sum of A and
B = 25
خروجی با دستور Writeln :
این دستور همانند دستور Write عمل می‌کند با این تفاوت که بعد از اجرا، کنترل را به ابتدای سطر بعد منتقل می‌کند در نتیجه موجب چاپ داده‌های بعدی در ابتدای سطر بعد می‌شود.
خروجی برنامه بالا بصورت زیر می‌باشد:
A = 10 B = 15
Ch = T R = 1.225000000 e + 01
Sum of A and B = 25
خروجی فرمت‌بندی شده:
اگر بخواهیم اطلاعات با فاصله های مشخص یا در مکان مشخصی در صفحه نمایش قرار گیرند، باید فرمت چاپ را در دستورات بیان شده مشخص کنیم.
طریقه تعیین فرمت چاپ برای اعداد صحیح :
( طول میدان: داده صحیح ) Writeln یا Write
در تعریف طول میدان برای متغیرها یا داده‌هایی از نوع صحیح به نکات زیر توجه کنید:
1.اگر طول میدان از طول ارقام عدد صحیح بیشتر تعریف شود، عدد در منتهی‌الیه سمت راست میدان نوشته می‌شود.
.2اگر طول میدان از طول ارقام عدد صحیح کمتر تعریف شود، طول میدان به اندازه تعداد ارقام در نظر گرفته می‌شود و طول میدان تعریف شده بی‌اثر خواهد بود.

مثال:
X:= 3200 ;
A: = 12 ;
B: = 217 ;
Write ( X:3 , A:5 , B:5 ) ;
خروجی: 217 دوتا فاصله 12 سه تافاصله 3200


طول میدان اعداد اعشاری :
برای نمایش اعداد اعشاری بصورت دلخواه، می توان با تعریف طول میدان و تعداد ارقام اعشاری، عدد مزبور را نمایش داد.
: در حالت کلی طول میدان را می‌توان به صورت زیر تعریف کرد:
( تعداد ارقام بعد از ممیز: طول میدان: متغیر اعشاری) Writeln یا Write
در تعریف فرمت برای اعداد اعشاری به نکات زیر باید توجه کرد:
.1 اگر طول میدان بزرگتر از تعداد ارقام عدد ذکر شود، عدد در منتهی الیه سمت راست میدان چاپ می‌شود.
2.اگر فقط طول میدان ذکر شود، عدد به صورت نماد علمی در طول میدان مشخص شده
چاپ می شود .از آنجائی که برای نمایش اعداد در نماد علمی حداقل 8 محل مورد نیاز است، لذا هنگامی که تنها طول میدان ذکر شده باشد، اگر از 8 رقم کمتر باشد، حداقل 8 رقم در نظر گرفته می‌شود.
3.هنگامی که طول میدان همراه با تعداد ارقام بعد از ممیز ذکر شود، اگر طول میدان کوچکتر از مقدار عدد باشد، پاسکال تنها طول میدان را به اندازه‌ای که مورد نیاز است تصحیح کرده و آنرا برابر اندازه واقعی که عدد در آن قرار می‌گیرد، اصلاح می‌کند.
4.اگر تعداد ارقام بعد از ممیز زیاد باشد و تعداد ارقام بعد از ممیز ذکر شده در طول میدان کمتر از تعداد ارقام اعشاری عدد باشد، تعداد ارقام اعشار مطابق درخواست برنامه‌نویس نشان داده خواهد شد و رقم آخر اعشار آن نسبت به عدد بعدی گرد می‌شود.
طول میدان کاراکترها و رشته‌ها :
برای نمایش رشته‌ها و کاراکترهای با طول میدان بصورت زیر عمل می‌کنیم.
(طول میدان: متغیر یا عبارت رشته‌ای یا کاراکتری) Writeln یا Write
در توربو پاسکال، کلیه موارد گفته شده در مورد اعداد صحیح برای رشته‌ها نیز صادق است.
ورودی با Readln , Read
از این دستورات برای خواندن داده ها و اختصاص آنها به متغیرها استفاده می‌شود. در خواندن داده ها به دو موضوع باید دقت شود:
1- منبع داده‌ها یعنی دستگاه ورودی که از آن داده‌ها خوانده می‌شود.
2- متغیری که داده‌های خوانده شده در آن قرار می‌گیرد.
شکل کلی دستور ورودی Read بصورت زیر می‌باشد:
;( ..... و متغیر 2 و متغیر 1Read (
این دستور عمل خواندن داده‌ها و ذخیره آنها در متغیرها را انجام می‌دهد و پس از اتمام عمل خواندن کنترل را برای خواندن و نوشتن‌های بعدی. در همان خط نگه می‌دارد
شکل کلی دستور ورودی ReadLN بصورت زیر می‌باشد:
;( ..... و متغیر 2 و متغیر 1ReadLN (
این دستور عمل خواندن داده‌ها و ذخیره آنها در متغیرها را انجام می‌دهد و پس از اتمام عمل خواندن کنترل را برای خواندن و نوشتن‌های بعدی به خط بعد می رود.
تا به ما قادر شدیم که یک برنامه کامل را بنویسیم حال چند مثال را حل می کنیم:
1.برنامه ای بنویسید که محتویات دو عدد را عوض کند؟
program Example_1 ( input , output ) ;
Var
first , second , temp: integer Begin
Writeln ;
Writeln ( 'Please Enter two numbers ' ) ;
Readln ( first , second ) ;
Temp: = first ;
First: = second ;
Second: = temp ;
Write ( ' first = ' , first , ' second = ': 10 , second ) ;
End. { end of program }
خروجی برنامه بالا به صورت زیر می‌باشد:
Please Enter two numbers
15 17
First = 17 second = 15

2.برنامه ای بنویسید که حقوق پایه و تعداد فرزندان یک کارگر را از ورودی گرفته و مبلغ حقوق وی را بر اساس فرمول زیر محاسبه کند؟
10* تعداد فرزندان+ حقوق پایه= حقوق کل

program TEST( input , output ) ;
Var
CHILD:BYTE
:LONGINT SALARY
: integer ; KOL
Begin
Writeln ; Writeln ( 'Please Enter salary an number of child);
Readln ( salary, child ) ;
Kol:=salary+child*10;
Writeln ('kol is',kol);
End. { end of program }
در درس بعدی انواع عمگرها ،دستورات شرطی،دستور case ،حلقه ها را خواهم گفت در ضمن این مطالب هر هفته آپدیت می شود.

عملگر ها:

انواع عملگر ها عبارت است از:
1.عملگرهای رابطه ای

2.عملگرهای منطقی

3.عملگر های محاسباتی


عملگرهای رابطه ای:

آن دسته از عبارات منطقی که عمل مقایسه را انجام می دهند یکی از اشکال زیر را دارند:
Variable relational-operator Variable
Variable relational-operator constant

عملگر های رابطه ای به شرح زیرند:
> کوچکتر
< بزرگتر
<= بزرگتر مساوی
= > کوچکتر مساوی
<> نامساوی
= مساوی

نکته: دو عملوند یا داده ای که با هم مقایسه می شوند اغلب یا دو متغیر هستند یا یک متغیر و یک ثابت هستند. نوع داده ی عملوند های یک عملگر رابطه ای باید یکسان باشد.

عملگرهای منطقی:

با استفاده از عملگر های منطقی not , or , and می توان عبارات منطقی پیچیده تری ایجاد نمود .

مثال :
(x < y ) or (y > 5)

متغیر های منطقی در واقع عبارات منطقی هستند . بنابر این از آنها می توان به عنوان عملگر های منطقی استفاده نمود .

مثال
:(X and (not y

جداول درستی :

عملگر Andو OR:

عملوند2 OR عملوند 1 عملوند2 and عملوند 1
عملوند2
عملوند 1

True True
True
true

True false
False
True

False True
true
false

False False
False
False


عملگر Not:

عملوند 1 not
عملوند 1

false
true

True
false


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


عملگر

Not

* / div mod and

+ - or

< <= = <> >= >

دستورات کنترلی:

1.دستور IF:

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

دستور if یک انتخابی:
If condition then
Statement-

دستور if دو انتخابی:
If condition then
Statement1
Else Statement2

مثال: برنامه ای بنویسید که تعداد فرزندان و حقوق پایه و رتبه یک کارگر را از ورودی دریافت کرده و حقوق کلی او را بر اساس فرمول زیر حساب کند؟

کسریها - مزایا + بیمه = حقوق کل
5*رتبه+1000* تعداد فرزندان =مزایا
مالیات+بیمه=کسریها


بیشتر
کمتر یا مساوی 2
تعداد فرزند

تعداد فرزندان
1000
بیمه

هر چیزی دیگر
0تا 20
رتبه

حقوق پایه
حقوق پایه*100/10
مالیات


Program salary_kol;
uses wincrt;
Var
Salary:longint;
kasry,bimeh,mazaya,kol,net:real;
Num,grade:integer;
Begin
Writeln('Enter salary and grade and number of child');
Readln(salary,grade,num);
If num<=2 then
Bimeh:=100
Else
Bimeh:=num*500;
If (grade>0) and (grade<=20) then
begin
Net:=20/100*salary;
Mazaya:=num*1000+grade*50 ;
Kasry:=bimeh+net;
Kol:= salary+mazaya-kasry;
End
Else
If (grade>20)then
begin
Net:=20/100*salary;
Mazaya:=num*1000+grade*50 ;
Kasry:=bimeh+net;
Kol:= salary+mazaya-kasry;
End;
Writeln('salary kol is:',kol);
Readln;
End.
دستور case:

برای انتخاب یک حالت از چندین گزینه ، در پاسکال علاوه بر دستور if ،دستور دیگری به نام case وجود دارد. Case میتواند تعدادی شرط را بگیرد و انتخاب کند.

مقادیری را که دستور case می پذیردORDINAL است .مقادیری که دارای ORDINAL هستند دارای ترکیب نیستند و همچنین قابل شمارش هستند مثل :integer,character,byte,boolean,longint,…پسstring,real,… نمی توانند ORDINAL باشند.دستور case دارای begin نمی باشد.
Case selector of
Label : statement ;
Label : statement ;
.
.
.
.
.
label : statement
end [case]

مثال:
case N of
1,2 : begin
write (‘1,2,’) ;
writeln( ‘buckle my shoe’)
end ; {1,2}
3 , 4 :writeln (‘ 3,4 , shut the door ‘) ;
5 , 6 :writeln (‘ 5 , 6 , oick up sticks’)
end {case}


عبارت otherwise یا else برای دستور :case

چنانچه انتخاب کننده case یک مقدار غیر قابل انتظار داشته باشد می توان از این عبارت برای نمایش پیغام خطا یا عمل تصحیح استفاده نمود.در دستور case بعد، در صورتی که مقدار غیر منتظره ای در DayNumber ذخیره شود، عبارت otherwise پیغام خطای invalid day number را نمایش می دهد.
{compute gross pay for a particular day }
case DayNumber of
1, 7 : Gross := Hours * 1.5 * dailyRate ;
2, 3 , 4 , 5 , 6 : Gross := Hours * DailyRate ;
otherwise
writeln (‘ invalid day number . ‘)
end {case}

مثال:برنامه ای بنویسید که دو عدد را از ورودی دریافت کرده وچنانچه عدد اول در بازه 0 تا 5 بود توان دوم عدد دوم را چاپ کند اگر 68 بود ضرب آن دو عدد را نمایش دهد در غیر اینصورت مقادیر مجاز را چاپ کند؟
Program case_of;
Uses wincrt;
Var a,b:integer;
Begin
Writeln('enter tow number');
Readln(a,b);
Case a of
0..5:Writeln('sqrt(b):',b*b);
68:writeln('a*b:',a*b)
Else
writeln('Enter 0..5 or 68');
End;{case}
Readln;
End.

حلقه ها:
1.حلقه FOR:

حلقه for برای تعداد تکرار 0 یا بیشتر و در ضمن برای تعداد تکرار معین به کار می رود .

شکل کلی دستور for به صورت زیر است:
Do مقدار نهایی To} مقدار شروع =: متغیرfor

Downto

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

مثال:برنامه ای بنویسید که مجموع مضارب 5 بین 0 تا 100 را حساب کند؟
Program zarb;
Uses wincrt;
Var I,sum:integer;
Begin
Sum:=0;
For i:=1 to 20 do
Begin
Sum:=sum+i*5;
End;
Writeln('sum is:',sum);
End.

مثال:برنامه ای بنویسید که تعداد مضارب 5و7 را در بازه [231,846] چاپ کند؟
Program number;
Uses wincrt;
Var I,s,k:integer;
Begin
S:=0;
K:=0;
For i:=846 downto 231 do
Begin
If I mod 7=0 then
S:=s+1;
If I mod 5=0 then
K:=k+1;
End;
Writeln('7=',s);
Writeln('5=',k);
End.

حلقه های for می توانند علاوه بر نوع integer ، از انواع دیگر ترتیبی نیز استفاده کنند . در مثال زیر ، از متغییر char استفاده شده است.

مثال :
For nextch := ‘ A’ to ‘Z’ do Write (nextch );


2.حلقه while:

ساده ترین دستور کنترل حلقه دستور While می باشند. دستوراتی که تکرار می شوند بدنه حلقه نام دارند و بعد از کلمهdo قرار می گیرند. بدنه حلقه یک دستور مرکب است که بین begin و end محصور شده است.

حلقه While یک حلقه با تکرار 0 یا بیشتر و تعداد تکرار در آن نامعین است.

شکل آن بصورت زیر است:
Do شرطWhile
begin

دستورات
End;

مثال:برنامه ای بنویسید که تعدادی از اسامی را از ورودی دریافت کند و سپس بگوید اسم 'ali' چند بار تکرار شده است؟(آخرین اسم end باشد)
Program repeat_ali;
Uses wincrt;
Var s:integer;
Name:string;
Begin
S:=0;
Writeln('Enter names ');
Readln(name);
While name<>'end' do
Begin
Readln(name);
If name='ali' then
S:=s+1;
End;
Writeln('ali repeat:',s);
End.
3.حلقه Repeat:

دستور repeat یک حلقه شرطی را مشخص می کند که تا وقتی که شرط آن درست بشود ، حلقه تکرار می گردد (یعنی این حلقه تا زمانی اجرا می شود که شرط آن نا درست باشد و به محض درست بودن شرط حلقه دیگر اجرا نمی شود ).
Repeat
loop-body
Until termination-condition

حلقه شرطی دستور repeat ، یک حلقه repeat – until نامیده می شود. توجه داشته باشید که چون کلمات repeat و until بدنه حلقه را محصور می کنند نیازی به کلمات begin و end نیست . این نوع حلقه حداقل یکبار تکرار می شود.

مثال:
Repeat
write (‘Enter a digit >’);
read (ch)
Until (‘0’ <= ch) and (ch <= ‘9’)

حلقه های لانه ای:

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

مثال:
Program m_n;
Uses wincrt;
Var
I , j : integer ;
Begin
Writeln (‘I’ :12 , ‘j’ :5);
For I:=1 to 3 do
Begin
Writeln (‘outer’ :5,I :7 );
For j:= 1 to I do
Writeln (‘inner’ :7 , I :5 , j:5)
End;
End.
دستورات break,continue:
Break: این دستور در داخل حلقه ها بکار رفته و باعث خروج از داخلی ترین حلقه شده و دستور بعد از آن حلقه اجرا شود.
Continue: این دستور نیز مانند break در درون حلقه ها بکار رفته و باعث می شود کنترل برنامه به ابتدای حلقه باز گردد.

دستورات halt,exit:
Halt پرس و جویی است که باعث خروج کامل از برنامه و بازگشت به سیستم عامل می گردد.
Exit پرس و جویی است که باعث خروج از زیر برنامه می شود و چنانچه در قسمت اصلی برنامه به کار رود مانند halt عمل می کند.

دستور goto

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

برچسبها نیز می بایست در ابتدای برنامه تعریف شوند .تعریف آن به صورت زیر است.
; نام برچسبLABEL

تعریفی از پارامتر ها:

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

پارامتر های واقعی و صوری:

هر دستور فرا خوانی رویه ، دو قسمت دارد :نام رویه و لیست پا رامترهای واقعی .برای مثال ، رویه Line را در نظر بگیرید که از یک نقطه روی صفحه به نقطه دیگر خطی رسم میکند . دستور فراخوانی آن شامل نام رویه یعنی line و لیست پارامتر های واقعی یا ((x1,y1,x2,y2 می باشد.

Line ( X1 , Y1 , X2 , Y2 )
در هر بار فراخوانی این رویه ،برنامه نویس چهار متغیر یا چهار عدد را که مختصات دو نقطه را نشان می دهند، در آن قرار می دهد. چون با هر بار فراخوانی line، مختصات نقاط می توانند تغییر کنند ، باید آنها را در قسمت تعاریف رویه نشان دهیم . برای اینکار، از نامهای ساختگی که اصطلاحا" به آنها، پارامترهای صوری می گوییم ،استفاده می کنیم.

Procedure Line ( XStart , YStart , XEnd , YEnd : Integer ) ;

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

پارامتر واقعی پارامتر صوری
X1 <-------------------Xstart
Y1 <------------------- Ystart
X2 <---------------------Xend
Y2 <-------------------- Yend

ناحیه داده های رویه:

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

انواع پارامتر های صوری:

پارامتر های صوری به دو دسته تقسیم می شوند:
1.پارامتر های مقدار
2.پارامتر های متغیر

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

مثال: رویه ComputerSumAve چهار پارامتر دارد : دو پارامتر برای ورودی (Num1,Num2) و دو پارامتر برای خروجی (Average,Sum) .رویه ComputerSumAve مجموع و میانگین دو عدد را محاسبه می کند ولی آنها را نمایش نمی دهد.

Procedure computesumave (num1, num 2, {input}: real ;
Var sum , Average {output}: real ) ;
begin { computeSumAve }
sum := num1 + num2 ;
average := sum / 2.0
end ;{ ComputeSumAve }

دستور فراخوانی :
ComputerSumAve( x , y , total , Mean )
قواعد تناظر لیست پارامتر ها:

• تناظر میان پارامتر های واقعی و صوری از روی موقعیت آنها در لیست پارامتر ها تعیین می شود.این لیستها باید هم اندازه باشند ولی اسامی پارامتر ها ی واقعی و صوری متناظر می توانند با هم متفاوت باشند.
• در مورد پارامتر های متغیر ، نوع پارامتر های واقعی و صوری باید با یک دیگر یکسان باشند.در مورد پارامترهای مقدار ، نوع داده پارامتر واقعی باید با نوع پارامتر صوری متناظرش سازگار باشد.
• در مورد پارامتر های متغیر ، پارامتر های واقعی باید یک متغیر باشد ولی برای پارامتر های مقدار یک پارامتر واقعی می تواند ، متغیر ، ثابت یا یک عبارت باشد.

زیر برنامه ها:

1.پروسی جر((Procedure:

یک نوع از زیر برنامه ها در پاسکال پروسی جر است که بصورت پردازه، رویه ، روال و غیره نیز ترجمه شده است.
فرم کلی پرو سی جر بصورت زیر است:
;(پارامتر های پروسی جر)نام پروسی جرP rocedure
[ type
Const
Var
Label ]
Begin

دستورات پروسی جر

End;

با یک مثال نحوه صدا زدن رویه ها را شرح می دهیم.
مثال:برنامه ای با پروسی جر بنویسد که طول و عرض مستطیلی را گرفته و محیط آن را حساب کند؟
Program environment;
Uses wincrt ;
Procedure rectangle ( a,b:integer;var k:integer ) ;
Begin
K:=2*( a+b ) ;
End;
Var
X,y,p:integer ;
Begin
Readln( x,y ) ;
Rectangle( x,y,p ) ;
Writeln( p ) ;
End.

تعریف رویه با کلمه کلیدی procedure آغاز می شود بعد از آن یک نام اختیاری که این نام از قواعد نامگذاری متغییرها پیروی می کند آورده می شود. پارامتر های رویه در درون پرانتز ها نوشته می شوند. در رویه بین آرگومان ها سمی کالن(; ) قرار می گیرد ولی هنگام صدا زدن بین آرگو مان ها کاما (, )قرار می گیرد.
رویه میتواند هیچ، یک یا چند خروجی داشته باشد.
نکته:هنگام صدا زدن رویه نمی توان از عبارات محاسباتی، عبارات مقایسه ای، دستور write و یا مقدار دهی به کار برد.
P:=rectangle( x,y,p ) ;
Write( rectangle(x,y,p ) ) ;
.......If rectangle( x,y,p ) >20 then
P:= rectangle(x,y,p )* 2+6 ;
همه عبارات بالا دارای خطای کامپایلری است.

اعلان forward:
در حالت معمولی قبل از صدا زدن یک زیر برنام،آن روال باید در قسمت بالاتر تعریف شود.اگر در یک برنامه یک زیر برنامه قبل از تعریف شدنش صدا زده شود می بایست از کلمه کلیدی forwad استفاده شود تا خطا گرفته نشود.
Procedure add1( i:integer );forward ;
Procedure add2( m:integer ) ;
Begin
Add1( m ) ;
End ;
Procedure add1 ;
Begin
Writeln( i+10 ) ;
End ;
Begin
Add2( 7 ) ;
End.

2.تابع((Function :

توابع مانند رویه ها ، پیمانه های مستقلی هستند . با این تفاوت که رویه ها می توانند هر تعداد خروجی داشته باشند در حالی که توابع فقط یک خروجی دارد. با نوشتن اسم تابع در یک عبارت می توان یک تابع از پیش تعریف شده را فراخوانی کرد.
توابع استاندارد:
نوع داده خروجی آرگومان تابع
با نوع آرگومان یکسان است real یا integer Abs (x)
Real real یا integer Arctan(x)
Real real یا integer Cos(x)
Real real یا integer Exp(x)
Real real یا integer Ln(x)
integer real Round(x)
با نوع آرگومان یکسان است real یا integer Sin(x)
Real real یا integer Sqr(x)
Real real یا integer Sqrt(x)
integer real Trunc(x)

توابع تعریف شده توسط کاربر:

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

1) عنوان تابع با کلمه رزرو شده Function بجای Procedure شروع می شود:
;نوع خروجی:(پارامتر های ورودی)نام تابعFunction
2) تمام پارامترهای تابع باید از نوع پارامتر مقدار باشند.

3) نوع داده نتیجه تابع در انتهای عنوان تابع و بعد از لیست پارامترهای صوری قرار می گیرد.

4) در بدنه تابع، خروجی تابع با نسبت دادن مقدار به نام تابع مشخص می شود.
آخرین داده ای که به نام تابع نسبت داده می شود به عنوان نتیجه تابع
بر می گردد.
نحوه نوشتن تابع:

;نوع خروجی تابع: (پارامتر های تابع)نام تابع function
[ type
Const
Var
Label ]
Begin

دستورات تابع

End ;

فراخوانی تابع:
;(Z : = Exponent ( X , Y

توابع بازگشتی:

توابع بازگشتی دارای دو ویژگی اصلی می باشند:
1.خودش را صدا می زند.
2.یک شر برای اتمام فراخوانی ها وجود دارد.

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

مثال:برنامه ای بنویسد که یک عدد را از ورودی دریافت کرده و به کمک تابع بازگشتی و غیر بازگشتی فاکتوریل آن را حساب کند؟
Program factorial ;
Uses wincrt ;
Var x:integer ;
Function fact1 ( n:integer ):integer ;
Var I,f:integer ;
Begin
F:=1 ;
For i:=1 to n do
F:=f*I ;
Fact1:=f ;
End;
Function fact2( n:integer ):integer ;
Begin
If n<=1 then
Fact2:=1
Else
=n*fact2( n-1) ;:Fact2
End;
Begin
Readln( x ) ;
Writeln( fact1(x) ) ;
Writeln( fact2(x) ) ;
End .

مثال:تابع بازگشتی بنویسد که a*b را محاسبه کند؟
a+a*(b-1) if b>1
a if b=1
Function multiply( a,b:integer ):integer ;
Begin
If b=1 then
Multiply:=a
Else
Multiply:=a+multiply( a,(b-1) ) ;
End ;

مثال:در برنامه زیر خروجی f(3,6) چند است؟
Function f( m,n:integer ):integer ;
Begin
If (m=1) or(n=0) or(m=n) then
F:=1
Else
F:=f(m-1,n)+f( m-1,n-1 )
End;
خروجی این تابع برابر 4 است.


این هم یک مثال جالب:
برنامه ای بنویسید که رشته ای را به یک تابع فرستاده و معکوس رشته را توسط نام تابع برگرداند.همچنین به کمک پرامتر مرجع حروف کوچک رشته ورودی را تبدیل به حروف بزرگ کرده و رشته معادل را برگرداند؟
Program reverse ;
Uses wincrt ;
Var s,p,t:string ;
Function fstr( s:string;var p:string ):string ;
Var I,len:byte; c:char; t:string ;
Begin
Len:=ord( s[0] ) ;
For i:=1 to len do
Begin
If (s[i]>='a')and(s[i]<='z') then
P[i]:=char(ord( s[i])-32 ) )
Else
P[i]:=s[i] ;
T[i]:=s[len-i+1] ;
End;{if}
T[0]:=s[0] ;
P[0]:=s[0] ;
Fstr:=t ;
End ;
Begin
Readln(s) ;
T:=fstr( s,p ) ;
Writeln( s,' ',p,' ',t ) ;
End.
زیر برنامه های استاندارد رشته ای:

1.تابع concat:

این تابع برای الحاق رشته ها استفاده می شود.
خروجی Concat( 'ali','reza' ) ; ---àalireza

2.پردازه str:

با این پردازه می توان عددی(صحیح یا اعشاری )را به رشته معادل تبدیل کرد. Str( n:integer;var s:string ) ;
Str( n:real;var s:string ) ;
مثال:
Begin
R:=13 ;
Str(r,a) ;
A:=a+'ali' ;
خروجی Writeln(a ) ; -à 13ali
End.
3.پردازه val:

با این پردازه برعکس str ارزش عددی یک رشته حاوی ارقام بدست می آید.
Val( s:string;var x:integer ) ;
Val( s:string;var x:real ) ;
4.تابع pos:

با این تابع می توان دریافت یک حرف یا یک رشته در چه مکانی از رشته دیگر است.
Poc( sub,s:string ):byte ;

3 <---- Writeln( pos('jid','majid') ) ;
5.تابع copy:

برای بدست آوردن قسمتی از یک رشته از تابع copy استفاده می شود.

Copy( s:string;start,len:integer ):string ;

Writeln( copy('alireza';4,3) ) ; ---à rez

6.تابع upcase:

این تابع یک کاراکتر را از ورودی گرفته و آن را تبدیل به حرف بزرگ می کند.
Upcase (c:char ):char ;

Writeln( upcase('a') ) ;---àA
7.پردازه insert:

این پردازه برای درج رشته ای در داخل رشته دیگر استفاده می شود:
Insert( s1:string;s2:string;index:integer ) ;

S:='hello reza' ;
Insert( 'ali',s,7 ) ;
Writeln( s ) ;
خروجی hello alireza:

Index شماره مکان درج در رشته s2 را مشخص می کند.

8.پردازه delete:

با این پردازه می توان بخشی از یک رشته را حذف کرد.
Delete( var s:string;start,len:integer ) ;
پارامتر len تعداد کاراکتر حذف شده از رشته s و پارامتر start موقعیت حذف را تعیین می کند.
S:='alireza' ;
Delete( s,4,3 ) ; ----àalia


حال یک سری نکات مهم را بیان می کنیم:
نکته 1:هنگام تعریف توابع بین پارامترهای (; ) قرار می گیرد ولی هنگام صدا زدن تابع بین آرگومان ها (, ) قرار می گیرد.

2.تابع ممکن است ورودی نداشته باشد بنابراین از گذاشتن پرانتز باید خودداری کرد. Function example:integer ;

3.نوع برگشتی تابع می تواند از نوع های ساده( real,integer,char ... ) ،رشته و شمارشی باشد. ولی از نوع آرایه،مجموعه وفایل نمی توانند باشد.

4.درون عبارات محاسباتی،دستور write و مقایسه ای می توان آن را صدا زد.

5.رویه ممکن است ورودی و خروجی نداشته باشد در این صورت از پرانتز نباید استفاده کرد.procedure example ;
6.دستورات readln و writeln در واقع رویه های از پیش تعریف شده اند.

7. دستورات INC و DEC در واقع رویه های از پیش تعریف شده،با فرم کلی زیر می باشند:
Procedure inc( var x[;n:logint] ) ;
Procedure dec( var x[;n:logint] ) ;

8. دستورات halt و exit در واقع رویه های از پیش تعریف شده،با فرم کلی زیر می باشند:
:word) ] ; کد خروجیProcedure halt[ (
Procedure exit ;
9.تعداد آرگو مان های فرستاده شده به تابع یا رویه باید برابر باشد، همچنین نوع آرگو مان های متناظر نیز باید یکسان باشد.

10.نام پارامترها کاملا اختیاری است و می تواند همنام آرگو مان ها باشد.

11.درون یک زیر برنامه نمی توان متغیری محلی همنام با پارامتر ها تعریف کرد.در این حالت خطای کامپایلری رخ می دهد.

12.ترکیب const و var غیر مجاز بوده و خطا دارد.

حوزه عمل شناسه ها:

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


قانون شماره 1 حوزه عمل : حوزه های محلی یا سراسری

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

آرایه:

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

تعریف نوع آرایه ها:

شکل استفاده:


Type
Array type = array [ subscirpt type] of element type ;


مثال:


Type
SmallArray = array [1. . 5] of char ;

85 67 33 95 88



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

مثال:

اگر متغیر X از نوع RealArray باشد :
Type
RealArray = array [1 . . 8] of Real ; { array type declaration }

Var
X : RealArray ; { Allocate storage for array X . }


برای مراجعه به اولین عضو آرایه ، از X[1] (بصورت X اندیس 1 خوانده شود)، برای مراجعه به دومین عنصر از از X[2] و برای مراجعه به هشتمین عنصر از X[8] استفاده می کنیم.

خواندن و نمایش دادن یک آرایه:

داده ها باید بصورت عنصر در داخل آرایه قرار گیرند و در موقع نمایش دادن نیز باید آنها را بصورت عنصر به عنصر چاپ کرد. با توجه به تعاریف :
Const
Maxitems = 8 ;
Type
IndexRange = 1 . . MaxItems ;
RealArray = array [ IndexRange ] of Real ;
Var
X : RealArray ; { array of data }
I : IndexRange ; { loop-control variable }


For I : = 1 to MaxItems do
Read ( X[I] ) ;

مثال:برنامه جدولی از تفاضل ها

Program table;
Uses wincrt;
Const
MaxItems = 8 ; { number of data items }
Type
IndexRange = 1 . . MaxItems ;
RwalArray = array [IndexRange] of Real ;
Var
X : RealArray ; { array of data }
I : IndexRange ; { loop-control variable }
Average , { average value of data }
Sum : Real ; { sum of the data }
Begin { ShowDiff }
{ Enter the data . }
Write ( ‘Enter’ , MaxItems : 1, ‘ numbers> ‘ ) ;
For I : =1 to MaxItems do
Read ( X[I] ) ;
{ Compute the average value . }
Sum : = 0.0 ;
For I := 1 to MaxItems do
Sum := Sum + X[1]; { Add each element to sum. }
Average := Sum / MaxItems ; { Get average value . }
Writeln ( ‘The average value is ‘ , Average : 3 : 1 ) ; Writeln ;
{ Display the difference between each item and the average . }
WriteLn ( ‘ Table of difference between X[I] and average’ ) ;
WriteLn ( ‘I’ :4 , ‘X[I]’ :8 , ‘Difference’ : 14 ) ;
For I := 1 to MaxItems do
WritLn ( I :4, X[I] :8:1, X[I] _ Average :14:1 )
End . { ShowDiff }

اجرای برنامه جدولی از تفاضل ها:
Enter 8 numbers > 16.0 12.0 6.0 8.0 2.5 12.0 14.0 -54.5
The average value is 2.0
Table
I X[I] Difference
1 16.0 14.0
2 12.0 10.0
3 6.0 4.0
4 8.0 6.0
5 2.5 0.5
6 12.0 10.0
7 14.0 12.0
8 -54.5 -56.5

پارامترهای آرایه مقدار یا متغیر:

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

مقایسه دو آرایه:

Function SameArray (A , B : TestArray ) : Boolean ;
Var
I : Integer ; { array subscirpt }
Begin
I := 1 ; { Start with first pair . }
{ Test corresponding elements of arrays A and B . }
while (I < MaxSize) and (A[I] = B[I]) do
{ invariant :
1 <= I <= MaxSize and
A[I] = B[I] for all prior values of I
}
I := I + 1 ; { Advance to next pair . }
SamArray := (A[I]) = B[I]) { Define result . }
End ; { SameArray }

رویه برای مرتب کردن عناصر آرایه:
Procedure SelectSort (var Scores {input / output} : ScoreArray ;
ClassLength { input } : Integer) ;
Ver
Fill , { index of element to contaion next smallest score }
IndexofMin: Integer ;
Begin {SelectSort}
For fill := 1 to ClassLength-1 do
Begin
IndexOfMin := FindMin( Scores, Fill, ClassLength ) ;
{ Exchange elements at Fill and IndexofMin . }
if IndexOfMin <> Fill then
Switch ( Scores[IndexOfMin], Scores[Fill] )
End { for Fill }
End ; { SelectSort }

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

تعریف آرایه های فشرده:
شکل استفاده :
type string type = packed array [1 . . size] of char ;


مثال:

type string10 = packed array [1 . . 10] of char ;

تذکر :
نوع اندیس برای string type باید از1 شروع شود.

تذکر:
هنگام نمایش یک متغیر رشته ای ، می توان از یک قالب مشخص استفاده کرد.
دستورات :
Write ( ‘Hello’ , FirstName :4 ) ;
writeLn ( ‘ ! Good to see you .’ )
Hello A.C. ! Good to see you .

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

مثال 1 :
در صورتی که FirstName حاوی رشته ‘A.C. Jones’ باشد،
دستورات
FirstName [1] := ‘D’ ;
FirstName [6] := ‘B ;’

محتویاتFirstName را به ‘D.C. Bones’ تغییر می دهند.

تذکر:
یک عنصر رشته ای برای یک پارامتر متغیر از نوع Char نمی تواند ارسال شود. ولی یک کاراکتر مستقیما می تواند به عنوان عنصری ازیک متغیر رشته ای خوانده شود.

دستور :
Read ( FirstName [1] )

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

مثال :
برنامه نوشتن نامه فرم :

Const
StringLength = 40
Type
StringType = packed array [1 . . StringLength] of Char ;
Var
BodyFile , { input – body of letter }
Letter : Text ; { output – completed letter file }
begin { FormLetter }
Reset ( BodyFile ) ;
Rewrite ( Letter ) ;
WriteLn (Output , ‘writing job application letter .’ ) ;
Preamble ( Letter ) ;
WriteBody ( BodyFile, Letter ) ;
WriteLn ( Output, ‘Letter copied to output file .’ )
End . { FormLetter }

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

آرایه های چند بعدی:
شکل استفاده :

Type
Multidim = array [ subscirpt1 , subscirpt2 , . . . , subscirptn ]
Of element type ;
Type
Multidim = array [subscrip1] of array [ subscirpt2 ] . . .
Of array [subscirpt n] of element type ;

پردازش آرایه ها:

دو روش برای دستیابی به عناصر یک آرایه یک بعدی داریم:

1.دستیابی تصادفی
2.دستیابی ترتیبی

برای هر یک از آرایه دو بعدی یا یک جدول، سه روش دستیابی داریم:

1.دستیابی تصادفی
2.دستیابی سطر یه سطر
3.دستیابی ستون به ستون

روش دستیابی سطر به سطر یک آرایه:

For row_subscirpt . . . do . } { Specify the row

For column_subscirpt . } . . . do { Access each column of row

Process Table { row_subscirpt , column_subscirpt }

روش دستیابی ستون به ستون یک آرایه:

For column_subscirpt . . . do [Specify the column]

.] For row_subscirpt . . . Do [Access each row of column

Process Table [ row_subscirpt , column_subscrip]

مقدار اولیه دادن به یک آرایه:
رویه، Initialize به هر عضو از پارامتر آرایه خود یعنی Sales مقدار اولیه Invalue را می دهد. این رویه به عناصر آرایه به روش سطر به سطر دستیابی می کند.

Procedure Initialize (var Sales { output } : SalesArray ;
InValue { input } : Real ; )
var
NextPerson : Pepole ; { Row subscirpt }
NextQuarter : Quarter ; { Column subscirpt }
Begin { Initialize }
For NextPerson : = 1 to NumberSalesPeopel do
For NextQuarter := Fall to Summer do
Sales[NextPerson, NextQuarter] := InValue
End ; { Initialize }
آرایه سه بعدی:

پاسکال تعداد ابعاد ممکن برای یک آرایه را محدود نمی کند، ولی بیشتر آرایه های با ابعاد دو و سه متداولتر هستند.

حال چند مثال جالب را حل می کنیم:

مثال1:
برنامه ای بنویسید که نمره ریاضی تعدادی از دانشجو را در آرایه ای ذخیره کند.سپس بیشترین و کمترین نمره و محل آن را در آرایه چاپ کند؟

Progam min_max ;
Uses wincrt ;
Var a:array [1..100] of real ;
Max,min:real ;
I, locmax,locmin,n:integer ;
Begin
Write ( 'please enter number of students:' ) ;
Readln ( n ) ;
For i:= 1 to n do
Readln ( a[i] ) ;
Max:= a[0] ; min:= a[0] ;
Locmax:=1 ; locmin:=1 ;
For i:=2 to n do
Begin
If ( a[i]>max ) then
Begin
Max:=a[i] ; locmax:=I ;
End ;
If a[i]
Begin
Min:=a[i] ; locmin:=I ;
End ;
End ;
Writeln ( 'max=',max,'position=' , locmax ) ;
Writeln ( 'min=',min,'position=' , locmin ) ;
End .

مثال2: هشت عدد را خوانده و در آرایه ای ذخیره کنید.سپس به روش حبابی آن را به صورت صعودی مرتب کرده و چاپ کنید؟
Program bubble_sort ;
Uses wincrt ;
Const n:=8 ;
Var
A:array [1..n] of integer ;
I,j,temp:integer ;
Begin


   
+ ۱۳۸۹/۱۱/۱۳

مایكروسافت برای رونمایی سرویس آنتی‌ویروس رایگانی برای رایانه‌های شخصی آماده می‌شود كه با محصولات سیمانتك و مكافی به رقابت خواهد پرداخت.

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

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

این سرویس رایگان كه برگرفته از ساحل موروی سائوپولوی برزیل، مورو نام گرفته، نگرانی‌هایی را در مورد لطمه دیدن فروش محصولات سیمانتك و مكافی برانگیخته است. محصولات این شركت‌ها با حفاظت از رایانه‌های ویندوز در برابر هكرها سالانه میلیاردها دلار نصیب سازندگانشان می‌كنند.

محصولات پرفروش این دو شركت امنیتی مجموعه‌های امنیتی هستند كه با ویژگی‌هایی از جمله رمزنگاری، فایروال، محافظت كلمه عبور و پشتیبانی داده عرضه می‌شوند.

مایكروسافت سه سال قبل با محصول تجاری Live OneCare وارد بازار محصولات امنیتی شد اما در ماه نوامبر اعلام كرد این مجموعه نرم‌افزاری را جمع كرده و سرویس‌ رایگان مورو را در پایان سال 2009 راه‌اندازی می‌كند.
 

   
+ ۱۳۸۹/۱۱/۱۳

اگر پس از انجام كارتان متوجه شدید كه باید تمامی اعداد یك ستون و یا یك محدوده را 3 درصد افزایش دهید و یا از همه اعداد ارزش ثابتی را كم كنید، دو راه خواهید داشت:


بیشتر كاربران اكسل از یك ستون كمكی با فرمول حدودی AA*1,03= استفاده می‌كنند كه بعد از آوردن ستون به اندازه مورد نیاز آن را به طرف پایین خواهند كشید. برای جایگزینی ارزش‌های كاملا عددی در فرمول باید ستون گفته شده پس از آوردنش كپی شده و توسط گزینه‌های Edit->Paste Special->Values بنا به ارزش عددی مورد نظر كمتر شود. پس از انجام كار اجازه دارید كه ستون خروجی را پاك كنید و اما راهی ساده‌تر:


در یك سلول خالی ارزش 1,03 را وارد كنید، با دكمه‌های - آن را كپی كنید، ستون مورد نظر را علامتگذاری كرده و سپس گزینه‌های Edit->Paste Special->Multiply را برگزینید.


سلول كمكی با ارزش 1,03 را می‌توانید پس از انجام كار پاك كنید.
 
 

   

درباره وبلاگ

کافه فان / Cafefun.ir
سایت اطلاعات عمومی و دانستنی ها

موضوعات

تبليغات

.:: This Template By : web93.ir ::.

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