معرفی ۲ سرویس برای ذخیره آنلاین و امن فایل‌ها رایگان free

برای استفاده از SpiderOak ابتدا بایستی به این صفحه رفته و ثبت‌نام کنید. پس از اینکه با موفقیت ثبت‌نام کردید به شما کد فعال‌سازی تعلق می‌گیرد. پس از مرحله‌ی ثبت‌نام، فایل نصب برای ویندوز را از اینجا دانلود کنید. به یاد داشته باشید که از کد فعال‌سازی بایستی به هنگام نصب SpiderOak بر روی سیستم عامل‌تان استفاده کنید.
SpiderOak بر روی سیستم عامل‌های ویندوز، مک و تقریبا تمام انواع لینوکس، و گوشی‌های آیفون و اندروید قابل استفاده است. این سرویس ۲ گیگابایت فضای مجانی در اختیار شما قرار می‌دهد، که البته می‌توانید با دعوت دیگر کاربران فضای ۲ گیگابایتی‌تان را به ۵۰ گیگابایت برسانید.
https://spideroak.com/
دراپ‌باکس
https://www.dropbox.com

مقدمه ای بر فایروال

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

مشخصه های مهم یک فایروال قوی و مناسب جهت ایجاد یک شبکه امن عبارتند از:
۱) توانایی ثبت و اخطار :ثبت وقایع یکی از مشخصه های بسیار مهم یک فایروال به شمار می شود و به مدیران شبکه این امکان را می دهد که انجام حملات را کنترل کنند. همچنین مدیر شبکه می تواند با کمک اطلاعات ثبت شده به کنترل ترافیک ایجاد شده توسط کاربران مجاز بپردازد. در یک روال ثبت مناسب ، مدیر می تواند براحتی به بخشهای مهم از اطلاعات ثبت شده دسترسی پیدا کند. همچنین یک فایروال خوب باید بتواند علاوه بر ثبت وقایع، در شرایط بحرانی، مدیر شبکه را از وقایع مطلع کند و برای وی اخطار بفرستد.
۲) بازدید حجم بالایی از بسته های اطلاعات: یکی از تستهای یک فایروال ، توانایی آن در بازدید حجم بالایی از بسته های اطلاعاتی بدون کاهش چشمگیر کارایی شبکه است. حجم داده ای که یک فایروال می تواند کنترل کند برای شبکه های مختلف متفاوت است اما یک فایروال قطعا نباید به گلوگاه شبکه تحت حفاظتش تبدیل شود.عوامل مختلفی در سرعت پردازش اطلاعات توسط فایروال نقش دارند. بیشترین محدودیتها از طرف سرعت پردازنده و بهینه سازی کد نرم افزار بر کارایی فایروال تحمیل می شوند. عامل محدودکننده دیگر می تواند کارتهای واسطی باشد که بر روی فایروال نصب می شوند. فایروالی که بعضی کارها مانند صدور اخطار ، کنترل دسترسی مبنی بر URL و بررسی وقایع ثبت شده را به نرم افزارهای دیگر می سپارد از سرعت و کارایی بیشتر و بهتری برخوردار است.
۳)سادگی پیکربندی: سادگی پیکربندی شامل امکان راه اندازی سریع فایروال و مشاهده سریع خطاها و مشکلات است.در واقع بسیاری از مشکلات امنیتی که دامنگیر شبکه های می شود به پیکربندی غلط فایروال بر می گردد. لذا پیکربندی سریع و ساده یک فایروال ، امکان بروز خطا را کم می کند. برای مثال امکان نمایش گرافیکی معماری شبکه و یا ابزرای که بتواند سیاستهای امنیتی را به پیکربندی ترجمه کند ، برای یک فایروال بسیار مهم است.
۴) امنیت و افزونگی فایروال: امنیت فایروال خود یکی از نکات مهم در یک شبکه امن است.فایروالی که نتواند امنیت خود را تامین کند ، قطعا اجازه ورود هکرها و مهاجمان را به سایر بخشهای شبکه نیز خواهد داد. امنیت در دو بخش از فایروال ، تامین کننده امنیت فایروال و شبکه است:
الف) امنیت سیستم عامل فایروال : اگر نرم افزار فایروال بر روی سیستم عامل جداگانه ای کار می کند، نقاط ضعف امنیتی سیستم عامل ، می تواند نقاط ضعف فایروال نیز به حساب بیاید. بنابراین امنیت و استحکام سیستم عامل فایروال و بروزرسانی آن از نکات مهم در امنیت فایروال است.
ب) دسترسی امن به فایروال جهت مقاصد مدیریتی : یک فایروال باید مکانیزمهای امنیتی خاصی را برای دسترسی مدیران شبکه در نظر بگیرد. این روشها می تواند رمزنگاری را همراه با روشهای مناسب تعیین هویت بکار گیرد تا بتواند در مقابل نفوذگران تاب بیاورد.
● انواع فایروال
انواع مختلف فایروال کم و بیش کارهایی را که اشاره کردیم ، انجام می دهند، اما روش انجام کار توسط انواع مختلف ، متفاوت است که این امر منجر به تفاوت در کارایی و سطح امنیت پیشنهادی فایروال می شود.بر این اساس فایروالها را به ۵ گروه تقسیم می کنند.
۱) فایروالهای سطح مدار (Circuit-Level): این فایروالها به عنوان یک رله برای ارتباطات TCP عمل می کنند. آنها ارتباط TCP را با رایانه پشتشان قطع می کنند و خود به جای آن رایانه به پاسخگویی اولیه می پردازند.تنها پس از برقراری ارتباط است که اجازه می دهند تا داده به سمت رایانه مقصد جریان پیدا کند و تنها به بسته های داده ای مرتبط اجازه عبور می دهند. این نوع از فایروالها هیچ داده درون بسته های اطلاعات را مورد بررسی قرار نمی دهند و لذا سرعت خوبی دارند. ضمنا امکان ایجاد محدودیت بر روی سایر پروتکلها ( غیر از TCP) را نیز نمی دهند.
۲) فایروالهای پروکسی سرور : فایروالهای پروکسی سرور به بررسی بسته های اطلاعات در لایه کاربرد می پردازد. یک پروکسی سرور درخواست ارائه شده توسط برنامه های کاربردی پشتش را قطع می کند و خود به جای آنها درخواست را ارسال می کند.نتیجه درخواست را نیز ابتدا خود دریافت و سپس برای برنامه های کاربردی ارسال می کند. این روش با جلوگیری از ارتباط مستقیم برنامه با سرورها و برنامه های کاربردی خارجی امنیت بالایی را تامین می کند. از آنجایی که این فایروالها پروتکلهای سطح کاربرد را می شناسند ، لذا می توانند بر مبنای این پروتکلها محدودیتهایی را ایجاد کنند. همچنین آنها می توانند با بررسی محتوای بسته های داده ای به ایجاد محدودیتهای لازم بپردازند. البته این سطح بررسی می تواند به کندی این فایروالها بیانجامد. همچنین از آنجایی که این فایروالها باید ترافیک ورودی و اطلاعات برنامه های کاربردی کاربر انتهایی را پردازش کند، کارایی آنها بیشتر کاهش می یابد. اغلب اوقات پروکسی سرورها از دید کاربر انتهایی شفاف نیستند و کاربر مجبور است تغییراتی را در برنامه خود ایجاد کند تا بتوان داین فایروالها را به کار بگیرد.هر برنامه جدیدی که بخواهد از این نوع فایروال عبور کند ، باید تغییراتی را در پشته پروتکل فایروال ایجاد کرد.
۳) فیلترهای Nosstateful packet : این فیلترها روش کار ساده ای دارند. آنها بر مسیر یک شبکه می نشینند و با استفاده از مجموعه ای از قواعد ، به بعضی بسته ها اجازه عبور می دهند و بعضی دیگر را بلوکه می کنند. این تصمیمها با توجه به اطلاعات آدرس دهی موجود در پروتکلهای لایه شبکه مانند IP و در بعضی موارد با توجه به اطلاعات موجود در پروتکلهای لایه انتقال مانند سرآیندهای TCP و UDP اتخاذ می شود. این فیلترها زمانی می توانند به خوبی عمل کنند که فهم خوبی از کاربرد سرویسهای مورد نیاز شبکه جهت محافظت داشته باشند. همچنین این فیلترها می توانند سریع باشند چون همانند پروکسی ها عمل نمی کنند و اطلاعاتی درباره پروتکلهای لایه کاربرد ندارند.
۴) فیلترهای ٍStateful Packet : این فیلترها بسیار باهوشتر از فیلترهای ساده هستند. آنها تقریبا تمامی ترافیک ورودی را بلوکه می کنند اما می توانند به ماشینهای پشتشان اجازه بدهند تا به پاسخگویی بپردازند. آنها این کار را با نگهداری رکورد اتصالاتی که ماشینهای پشتشان در لایه انتقال ایجاد می کنند، انجام می دهند.این فیلترها ، مکانیزم اصلی مورد استفاده جهت پیاده سازی فایروال در شبکه های مدرن هستند.این فیلترها می توانند رد پای اطلاعات مختلف را از طریق بسته هایی که در حال عبورند ثبت کنند. برای مثال شماره پورت های TCP و UDP مبدا و مقصد، شماره ترتیب TCP و پرچمهای TCP. بسیاری از فیلترهای جدید Stateful می توانند پروتکلهای لایه کاربرد مانند FTP و HTTP را تشخیص دهند و لذا می تواننداعمال کنترل دسترسی را با توجه به نیازها و سرعت این پروتکلها انجام دهند.
۵) فایروالهای شخصی : فایروالهای شخصی ، فایروالهایی هستند که بر روی رایانه های شخصی نصب می شوند.آنها برای مقابله با حملات شبکه ای طراحی شده اند. معمولا از برنامه های در حال اجرا در ماشین آگاهی دارند و تنها به ارتباطات ایجاد شده توسط این برنامه ها اجازه می دهند که به کار بپردازند نصب یک فایروال شخصی بر روی یک PC بسیار مفید است زیرا سطح امنیت پیشنهادی توسط فایروال شبکه را افزایش می دهد. از طرف دیگر از آنجایی که امروزه بسیاری از حملات از درون شبکه حفاظت شده انجام می شوند ، فایروال شبکه نمی تواند کاری برای آنها انجام دهد و لذا یک فایروال شخصی بسیار مفید خواهد بود. معمولا نیازی به تغییر برنامه جهت عبور از فایروال شخصی نصب شده (همانند پروکسی) نیست.
● موقعیت یابی برای فایروال
محل و موقعیت نصب فایروال همانند انتخاب نوع صحیح فایروال و پیکربندی کامل آن ، از اهمیت ویژه ای برخوردار است. نکاتی که باید برای یافتن جای مناسب نصب فایروال در نظر گرفت عبارتند از :
ـ موقعیت و محل نصب از لحاظ توپولوژیکی : معمولا مناسب به نظر می رسد که فایروال را در درگاه ورودی/خروجی شبکه خصوصی نصب کنیم. این امر به ایجاد بهترین پوشش امنیتی برای شبکه خصوصی با کمک فایروال از یک طرف و جداسازی شبکه خصوصی از شبکه عمومی از طرف دیگر کمک می کند.
ـ قابلیت دسترسی و نواحی امنیتی : اگر سرورهایی وجود دارند که باید برای شبکه عمومی در دسترس باشند ، بهتر است آنها را بعد از فایروال و در ناحیه DMZ قرار دهید. قرار دادن این سرورها در شبکه خصوصی وتنظیم فایروال جهت صدور اجازه به کاربران خارجی برای دسترسی به این سرورها برابر خواهد بود با هک شدن شبکه داخلی. چون شما خود مسیر هکرها را در فایروال باز کرده اید. در حالی که با استفاده از ناحیه DMZ ، سرورهای قابل دسترسی برای شبکه عمومی از شبکه خصوصی شما بطور فیزیکی جدا هستند، لذا اگر هکرها بتوانند به نحوی به این سرورها نفوذ کنند بازهم فایروال را پیش روی خود دارند.
ـ مسیریابی نامتقارن : بیشتر فایروالهای مدرن سعی می کنند اطلاعات مربوط به اتصالات مختلفی را که از طریق آنها شبکه داخلی را به شبکه عمومی وصل کرده است، نگهداری کنند. این اطلاعات کمک می کنند تا تنها بسته های اطلاعاتی مجاز به شبکه خصوصی وارد شوند. در نتیجه حائز اهمیت است که نقطه ورود و خروج تمامی اطلاعات به/از شبکه خصوصی از طریق یک فایروال باشد.
ـ فایروالهای لایه ای : در شبکه های با درجه امنیتی بالا بهتر است از دو یا چند فایروال در مسیر قرار گیرند. اگر اولی با مشکلی روبرو شود، دومی به کار ادامه می دهد.معمولا بهتر است دو یا چند فایروال مورد استفاده از شرکتهای مختلفی باشند تا در صورت وجود یک اشکال نرم افزاری یا حفره امنیتی در یکی از آنها ، سایرین بتوانند امنیت شبکه را تامین کنند.

درباره هارددیسک بیشتر بدانیم!

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

hard-disk

در این نشست سعی داریم درباره انواع و اقسام هارددیسک‌ها صحبت کنیم. راستش را بخواهید پرداختن به این موضوع از زمانی در ذهن حقیر جای گرفت که شیوه خرید هارددیسک در بازارهای داخلی را از نزدیک مشاهده کردم و تصمیم گرفتم تا وضعیت هارددیسک‌ها را تشریح کنم.
● دور در دقیقه (RPM)
اساس کار هارددیسک‌ها برای ذخیره‌سازی و بازیابی اطلاعات بر رفتار قطعات مکانیکی پلاتر و هد استوار است. ناگفته نماند که مشکلات اصلی هارددیسک‌ها که هم‌اکنون ضعف بزرگ این قطعات شمرده می‌شوند با این دو بخش در ارتباط است. پلاتر قطعه‌ای دایره‌ای شکل است که سطوح بالا و پایین آن محل قرارگیری داده‌ها هستند. هر هارددیسک به ‌طور معمول دو برابر تعداد پلاترهای خود، هد خواندن و نوشتن یکی برای رو و یکی برای زیر پلاتر دارد. شیوه کار این‌چنین است که جناب پلاتر با سرعتی مشخص می‌چرخد و هد خواندن و نوشتن نیز سطح دیسک را همانند برف پاک‌کن جارو می‌کند. این را نیز می‌دانید که سطح هر دیسک به‌ صورت فرضی به دایره‌های متحدالمرکز تقسیم می‌شود. این دایره‌ها توسط شعاع‌های منظمی که به‌ صورت فرضی از مرکز پلاتر رسم می‌شوند به ‌بخش‌های منظم تقسیم و در واقع داده‌ها در این بخش‌ها ذخیره می‌شوند. این جناب هد برای دسترسی به بخش‌هایی که در لبه پلاتر (دایره بیرونی) قرار دارند باید زمان بیشتری را منتظر بماند، ‌از این‌رو محور مرکزی هارددیسک با سرعتی بیشتر می‌چرخد تا زمان دسترسی به داده‌ها افزایش یابد. مشهود است که هرچه سرعت گردش پلاتر یا محور مرکزی بیشتر باشد، زمان دسترسی به داده‌ها توسط هد خواندن و نوشتن کاهش خواهد یافت. هارددیسک‌ها از منظر سرعت گردش محور مرکزی در پنج گروه ۴۲۰۰، ۵۴۰۰، ۷۲۰۰، ۱۰ و ۱۵ هزار دور در دقیقه قرار می‌گیرند. هارددیسک‌های کوچک‌اندام ۸/۱ و ۵/۲ اینچی که بیشتر در دستگاه‌های قابل‌حمل مانند دستگاه‌های پخش موسیقی و لپ‌تاپ‌ها استفاده می‌شوند از سرعت ۴۲۰۰ و ۵۴۰۰ دور در دقیقه پشتیبانی می‌کنند و برخی نمونه‌های جدید از سرعت ۷۲۰۰ دور در دقیقه بهره می‌برند. هارددیسک‌هایی که شما با آن آشنا هستید با سرعت ۷۲۰۰ دور در دقیقه می‌چرخند و هارددیسک‌های حرفه‌ای نیز با سرعت‌های ۱۰ و ۱۵ هزار دور در دقیقه گردش می‌کنند.
● بافر به‌عنوان حافظه موقت
حتم دارم می‌دانید که برخی اوقات هارددیسک قادر به انجام سریع تمامی دستورات و داده‌هایی که از سوی مادربرد صادر و ارسال می‌شود نیست. از این‌رو حافظه سریعی از جنس RAM روی برد کنترلی هارددیسک نصب می‌کنند تا فرصتی در اختیار هارددیسک برای انجام دستورالعمل‌های مختلف قرار دهد. هرچه اندازه این حافظه که بافر خوانده می‌شود بیشتر باشد کارایی کلی هارددیسک افزایش خواهد یافت. اندازه بافر رابطه مستقیمی با ظرفیت و کاربری هارددیسک دارد، برای مثال، میزان بافر هارددیسک‌های بندانگشتی ۸/۱ و ۵/۲ اینچی با ظرفیت‌های ۸۰ تا ۱۶۰ گیگابایت، ۲ مگابایت است. بافر مدل‌های ۵/۳ اینچی کنونی بین ۸ تا ۳۲ مگابایت با توجه به ظرفیت هارددیسک متغیر است. به‌ طور حتم استفاده از بافر حجیم‌تر در ظرفیت‌های برابر هارددیسک توصیه می‌شود.
● رابط PATA، SATA و غیره!
این هارددیسک‌ها بالاخره یک‌جوری باید به مادربرد وصل شوند و داده‌ها را مبادله کنند. هارددیسک‌های معمولی از رابط‌های Parallel ATA یا همان IDE قدیمی و رابط جدید Serial ATA استفاده می‌کنند. نسل رابط‌های PATA چند وقتی است که سرآمده و تمامی مدل‌های جدید از رابط SATA پشتیبانی می‌کنند. رابط‌های مورد استفاده توسط هارددیسک‌های حرفه‌ای قدری متفاوت است. این مدل‌ها از سه نوع رابط SCSI، Fiber Channel و SAS استفاده می‌کنند. رابط SAS جدیدترین و مقرون به‌صرفه‌ترین رابط کنونی است!
این را نیز گفته باشم که هر کدام از رابط‌های ذکر شده، شامل گونه‌های مختلفی هستند. برای مثال، رابط SATA خود شامل دو گونه SATA ۱۵۰ MB و SATA ۳۰۰ MB است که به SATA و SATA۲ معروف شده‌اند. این را نیز گفته باشم که مادربردهای عام فقط از رابط‌های SATA و PATA پشتیبانی می‌کنند و رابط‌های SAS، SCSI و Fiber Channel فقط روی مادربردهای حرفه‌ای عرضه می‌شوند!
این را هم بیافزایم که ارتباط مستقیمی بین نوع رابط‌ها و ظرفیت هارددیسک وجود دارد. هارددیسک‌های عام در ظرفیت‌های ۱۶۰، ۲۵۰، ۳۲۰، ۵۰۰، ۶۴۰، ۷۵۰ و ۱۰۰۰ گیگابایت تولید می‌شوند. این در حالی است که هارددیسک‌های حرفه‌ای در ظرفیت‌های ۳۶، ۷۴ و ۱۶۰ عرضه می‌شوند. در هارددیسک‌های عام، ظرفیت اهمیت دارد و در هارددیسک‌های حرفه‌ای، سرعت مورد توجه است.
● تعداد پلاتر
یک نکته خیلی ظریف در وادی هارددیسک‌ها وجود دارد که کمتر مورد توجه قرار گرفته است. هر هارددیسک از تعدادی پلاتر تشکیل می‌شود. در حال حاضر ظرفیت پلاترها بین ۲۰۰ تا ۲۵۰ گیگابایت متغیر است. از این‌رو برای تولید هارددیسک یک ترابایتی لازم است از ۴ پلاتر ۲۵۰ گیگابایتی یا ۵ پلاتر ۲۰۰ گیگابایتی استفاده شود. هرچه تعداد پلاترهای هارددیسک به‌ عنوان یکی از اجزای مهم مکانیکی افزایش یابد، احتمال بروز مشکل نیز افزایش خواهد یافت. از این‌رو سازندگان هارددیسک تلاش می‌کنند تراکم ذخیره‌سازی داده‌ها را افزایش دهند تا از تعداد پلاترهای کمتری در ساخت هارددیسک استفاده شود. تا همین یک ماه پیش شرکت Samsung با تولید پلاترهای ۳۳۴ گیگابایتی رکوددار حجیم‌ترین پلاتر بود، اما Western Digital با تولید پلاتر ۵۰۰ گیگابایتی رکورددار کنونی بازار است. به ‌همین دلیل تولید هارددیسک‌های پرظرفیت با پلاترهای متراکم امکان‌پذیر خواهد شد. شما نیز به‌ عنوان خریدار باید دقت داشته باشید که از هارددیسک‌هایی استفاده کنید که از تعداد کمتری پلاتر استفاده می‌کنند!
● و اما بعد…
علاوه بر مواردی که در بالا به آن‌ها اشاره شد،‌ هارددیسک‌ها مشخصات فنی دیگری مانند تکنولوژی محافظت از پلاتر در برابر ضربات، تکنولوژی ثبت صحیح داده‌ها، الگوریتم مرتب‌سازی کارآمد داده‌ها (NCQ) و غیره را دارند که در فرصتی دیگر درباره آن‌ها صحبت خواهیم کرد. شرکت‌های سازنده، خانواده‌های مختلفی را روانه بازار می‌کنند که خریدارجماعت باید با مشخصات آن‌ها آشنا شود تا انتخابی صحیح داشته باشد. در این نوشتار بیشتر به کلیات پرداختیم و در نوبت‌های آتی بحث‌ها را به شکلی جدی‌تر دنبال خواهیم کرد.

آشنایی با عناصر شبکه محلی

در برخی موارد لازم است که یک شبکه بزرگ محلی به سگمنت های کوچکتر و قابل مدیریتی تقسیم گردد. هدف از انجام این کار کاهش ترافیک و افزایش حوزه جغرافیائی یک شبکه است.
lan
در برخی موارد لازم است که یک شبکه بزرگ محلی به سگمنت های کوچکتر و قابل مدیریتی تقسیم گردد. هدف از انجام این کار کاهش ترافیک و افزایش حوزه جغرافیائی یک شبکه است. از دستگاه های شبکه ای متفاوتی به منظور اتصال سگمنت های متفاوت یک شبکه به یکدیگر استفاده می گردد. Bridge، سوئیچ، روتر و gateway نمونه هائی در این زمینه هستند. سوئیچ و Bridge در لایه Data Link مدل مرجع OSI کار می کنند. وظیفه Bridge، اتخاذ تصمیم هوشمندانه در خصوص ارسال یک سیگنال به سگمنت بعدی شبکه است. پس از دریافت یک فریم توسط Bridge، آدرس MAC مقصد فریم در جدول Bridge بررسی تا مشخص گردد که آیا ضرورتی به فیلترینگ فریم وجود دارد و یا باید فریم به سمت یک سگمنت دیگر هدایت گردد.
فرآیند تصمیم گیری با توجه به مجموعه قوانین زیر انجام می شود: - در صورتی که دستگاه مقصد بر روی سگمنت مشابه باشد، Bridge فریم دریافتی را بلاک و آن را برای سایر سگمنت ها ارسال نمی نماید. به فرآیند فوق، فیلترینگ می گویند. - در صورتی که دستگاه مقصد بر روی یک سگمنت دیگر باشد، Bridge آن را به سگمنت مورد نظر فوروارد می نماید. - در صورتی که آدرس مقصد برای Bridge ناشناخته باشد، Bridge فریم را برای تمامی سگمنت های موجود در شبکه بجزء سگمنتی که فریم را از آن دریافت نموده است، فوروارد می نماید. به فرآیند فوق flooding می گویند. استفاده مناسب از Bridge، افزایش کارآئی یک شبکه را به دنبال خواهد داشت. از سوئیچ در برخی موارد به عنوان یک bridge چند پورته نام برده می شود. با این که یک Bridge معمولی ممکن است دارای صرفا« دو پورت باشد که دو سگمنت شبکه را به یکدیگر متصل می نماید، سوئیچ می تواند دارای چندین پورت باشد. همانند bridge، سوئیچ ها دارای دانش و آگاهی لازم در خصوص بسته های اطلاعاتی دریافتی از دستگاه های متفاوت موجود در شبکه هستند و دانش خود را نیز متناسب با شرایط موجود ارتقاء می دهند.
سوئیچ ها از اطلاعات فوق به منظور ایجاد جداول موسوم به جداول فورواردینگ استفاده نموده تا در ادامه قادر به تعیین مقصد داده ارسالی توسط یک کامپیوتر برای کامپیوتر دیگر موجود بر روی شبکه باشند. با این که سوئیچ و Bridge دارای شباهت هائی با یکدیگر می باشند، ولی سوئیچ ها دستگاه هائی بمراتب پیشرفته تر و حرفه ای تر نسبت به Bridgeهستند. همانگونه که اشاره گردید، معیار اتخاذ تصمیم Bridge برای فورواردینگ یک فریم، آدرس MAC یک فریم است. سوئیچ دارای چندین پورت است که سگمنت های متفاوت شبکه به آنان متصل می گردند. سوئیچ ها با توجه به تاثیر محسوس آنان در افزایش کارآئی شبکه از طریق بهبود سرعت و پهنای باند، به یکی از متداولترین دستگاه های ارتباطی شبکه تبدیل شده اند. سوئیچینگ، یک فناوری است که کاهش ترافیک و افزایش پهنای باند در شبکه های محلی اترنت را به دنبال خواهد داشت.
سوئیچ ها را بسادگی می توان جایگزین هاب نمود، چراکه آنان از زیرساخت سیستم کابل موجود می توانند استفاده نمایند. سوئیچ ها دارای سرعتی بمراتب بیشتر از Bridge بوده و قادر به حمایت از پتانسیل های جدیدی نظیر شبکه های VLAN هستند. یک سوئیچ اترنت دارای مزایای متعددی است، مثلاً به کاربران متعددی اجازه داده می شود که به صورت موازی از طریق مدارات مجازی و سگمنت های اختصاصی شبکه در یک محیط عاری از تصادم، با یکدیگر ارتباط برقرار نمایند.
بدین ترتیب از پهنای باند موجود به صورت بهینه استفاده می گردد. روتر مسئولیت روتینگ بسته های اطلاعاتی از مبداء به مقصد را در شبکه های محلی برعهده دارد و امکان ارتباطی را برای شبکه های WAN فراهم می نماید. در شبکه های محلی روتر شامل broadcast بوده و سرویس های ترجمه آدرس محلی نظیر ARP و RARP را ارائه می نماید و می تواند با استفاده از یک ساختار Subnetwork، شبکه را سگمنت نماید. به منظور ارائه سرویس های فوق، روتر می بایست به LAN و WAN متصل باشد. وظیفه کارت شبکه (NIC)، اتصال یک دستگاه میزبان به محیط انتقال شبکه است. کارت شبکه یک برد مدار چاپی است که درون یکی از اسلات های موجود بر روی برداصلی کامپیوتر و یا دستگاه جانبی یک کامپیوتر نصب می گردد. اندازه کارت شبکه بر روی کامپیوترهای Laptop و یا notebook به اندازه یک کارت اعتباری است.
کارت های شبکه به منزله دستگاه های لایه دوم مدل مرجع OSI می باشند، چراکه هر کارت شبکه به همراه خود یک کد منحصربفرد را که به آن آدرس MAC می گویند، ارائه می نماید. از آدرس فوق به منظور کنترل مبادله اطلاعات در شبکه استفاده می گردد. هر کارت شبکه دارای کانکتورهائی است که امکان اتصال آن را به محیط انتقال فراهم می نماید. در برخی موارد ممکن است نوع کانکتور موجود بر روی یک کارت شبکه با نوع رسانه انتقال داده مطابقت ننماید. مثلاً در روترهای سیسکو مدل ۲۵۰۰ از یک کانکتور AUI استفاده شده است و برای اتصال به یک کابل اترنت۵ UTP cat می بایست از یک transmitter/receiver که به آنان transceiver گفته می شود، استفاده گردد. transceiver، مسئولیت تبدیل یک نوع سیگنال و یا کانکتور به نوع دیگری را برعهده دارد. به عنوان نمونه، یک transceiver می تواند یک اینترفیس AUI پانزده پین را به یک RJ-۴۵ jack متصل نماید. transceiver، به عنوان یک دستگاه لایه یک شبکه ایفای وظیفه می نماید چراکه صرفاً با بیت ها کار می نماید و دارای اطلاعات آدرس دهی خاصی و یا پروتکل های لایه بالاتر نیست.

آموزش Pascal

اجزاء تشکیل دهنده کامپیوتر عبارتند از :
۱/سخت افزار
۲/نرم افزار
• سخت افزار
خروجی<============== پردازش<===============ورودی
کامپیوترهای امروزی معمولاً از قطعات زیر تشکیل می‌شوند:
دستگاههای ورودی
حافظه‌های جانبی
حافظه‌های اصلی
واحد پردازشگر مرکزی
دستگاههای خروجی

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

زبانهای برنامه‌نویسی :
نرم‌افزارها توسط زبانهای برنامه‌نویسی نوشته می‌شوند. زبانهای برنامه‌نویسی، یک سیستم ارتباطی هستند که توسط آنها می‌توان دستورات لازم را به ماشین انتقال داد.
هرزبان برنامه‌نویسی به مجموعه‌أی از علایم، قواعد و دستورالعمل‌ها گفته می‌شود که امکان ارتباط با کامپیوتر را جهت بیان کاری یا حل مسئله‌ای فراهم می‌کند.
در حالت کلی زبانهای برنامه‌نویسی را به سه دسته زیر تقسیم‌بندی می‌کنند:
۱/زبانهای سطح بالا
۲/زبانهای سطح پایین
۳/زبانهای سطح میانی
زبان Pascal
این زبان توسط پروفسور نیکلاس ویژت در انستیتو فنی فدرال سوئیس در در اواخر سال ۱۹۶۰ و اوایل ۱۹۷۰ مطرح گردید و به افتخار بلز پاسکال دانشمند فرانسوی قرن هفدهم میلادی، پاسکال نامگذاری شده است.پاسکال یک زبان سطح بالا است.
اجزای تشکیل‌دهنده یک برنامه:
۱/کلمات ذخیره‌شده ( Reserved Words )
2.شناسه‌ها ( identifier )

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

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

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

درحالت کلی می‌توان شکل یک برنامه در زبان پاسکال را بصورت زیر بیان کرد:
۱/استفاده از کلمه ذخیره شده Program و اسم برنامه ( که می‌تواند بکار برده نشود )
۲/قسمت تعاریف شناسه‌ها
۳/بلوک اصلی برنامه که با Begin شروع و به End همراه نقطه ( . ) ختم می‌شود.
۴/هر دستور در پاسکال به ( ; ) ختم می‌شود.
فرم کلی برنامه در پاسکال:
; نام 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.انواع صحیح شامل اعداد بدون ممیز است متداولترین انواع صحیح را در شکل زیر ببینید:

۲/اعداد اعشاری: شامل اعداد با نقطه ممیز است متداولترین آن در شکل زیر ببینید::

۳/:Char این نوع داده که به آن کاراکتری می گویند حداکثر می تواند یک کاراکتر را در خود نگه دارد و اندازه آن یک بایت از حافظه را اشغال می کند.
۴/نوع String:
این نوع داده برای ذخیره رشته ها مثل اسامی افراد به کار می رود حداکثر طول آن ۲۵۵ کاراکتر است در ضمن برای هر رشته باید طول آن را مشخص کنیم در غیر این صورت طول آن را به طور پیش فرض ۸۰ در نظر می گیرد.
۵/نوع Boolean:
این نوع داده که داده های بولی خوانده می شود مقادیر این نوع داده های بولی دارای دو ارزش درستی یا نادرستی است که در پاسکال با ۰و۱ نمایش می دهند ۰ به معنای نادرستی و۱ به معنای درستی است.

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

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

قبل از این که شروع به نوشتن یک برنامه کنیم ابتدا باید دستورات ورودی و خروجی را در پاسکال یاد بگیریم :
خروجی با دستور Write :
این دستور برای نوشتن اطلاعات در خروجی بکار می‌رود. اطلاعات خروجی می‌توانند ثابتهای عددی، مقادیر متغیرها، عبارات و غیره باشند. شکل دستور در حالت کلی بصورت زیر است:
(……. و متغیر۲ و متغیر۱ )write
یا (……. و’ عبارت ۲′ و’عبارت۱ ‘)
یا (……. و ثابت ۲ وثابت ۱ )
مثال:
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
در تعریف طول میدان برای متغیرها یا داده‌هایی از نوع صحیح به نکات زیر توجه کنید:
۱/اگر طول میدان از طول ارقام عدد صحیح بیشتر تعریف شود، عدد در منتهی‌الیه سمت راست میدان نوشته می‌شود.
.۲اگر طول میدان از طول ارقام عدد صحیح کمتر تعریف شود، طول میدان به اندازه تعداد ارقام در نظر گرفته می‌شود و طول میدان تعریف شده بی‌اثر خواهد بود.

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

طول میدان اعداد اعشاری :
برای نمایش اعداد اعشاری بصورت دلخواه، می توان با تعریف طول میدان و تعداد ارقام اعشاری، عدد مزبور را نمایش داد.
: در حالت کلی طول میدان را می‌توان به صورت زیر تعریف کرد:
( تعداد ارقام بعد از ممیز: طول میدان: متغیر اعشاری) Writeln یا Write
در تعریف فرمت برای اعداد اعشاری به نکات زیر باید توجه کرد:
.۱ اگر طول میدان بزرگتر از تعداد ارقام عدد ذکر شود، عدد در منتهی الیه سمت راست میدان چاپ می‌شود.
۲/اگر فقط طول میدان ذکر شود، عدد به صورت نماد علمی در طول میدان مشخص شده
چاپ می شود .از آنجائی که برای نمایش اعداد در نماد علمی حداقل ۸ محل مورد نیاز است، لذا هنگامی که تنها طول میدان ذکر شده باشد، اگر از ۸ رقم کمتر باشد، حداقل ۸ رقم در نظر گرفته می‌شود.
۳/هنگامی که طول میدان همراه با تعداد ارقام بعد از ممیز ذکر شود، اگر طول میدان کوچکتر از مقدار عدد باشد، پاسکال تنها طول میدان را به اندازه‌ای که مورد نیاز است تصحیح کرده و آنرا برابر اندازه واقعی که عدد در آن قرار می‌گیرد، اصلاح می‌کند.
۴/اگر تعداد ارقام بعد از ممیز زیاد باشد و تعداد ارقام بعد از ممیز ذکر شده در طول میدان کمتر از تعداد ارقام اعشاری عدد باشد، تعداد ارقام اعشار مطابق درخواست برنامه‌نویس نشان داده خواهد شد و رقم آخر اعشار آن نسبت به عدد بعدی گرد می‌شود.
طول میدان کاراکترها و رشته‌ها :
برای نمایش رشته‌ها و کاراکترهای با طول میدان بصورت زیر عمل می‌کنیم.
(طول میدان: متغیر یا عبارت رشته‌ای یا کاراکتری) Writeln یا Write
در توربو پاسکال، کلیه موارد گفته شده در مورد اعداد صحیح برای رشته‌ها نیز صادق است.
ورودی با Readln , Read
از این دستورات برای خواندن داده ها و اختصاص آنها به متغیرها استفاده می‌شود. در خواندن داده ها به دو موضوع باید دقت شود:
۱- منبع داده‌ها یعنی دستگاه ورودی که از آن داده‌ها خوانده می‌شود.
۲- متغیری که داده‌های خوانده شده در آن قرار می‌گیرد.
شکل کلی دستور ورودی Read بصورت زیر می‌باشد:
;( ….. و متغیر ۲ و متغیر ۱Read (
این دستور عمل خواندن داده‌ها و ذخیره آنها در متغیرها را انجام می‌دهد و پس از اتمام عمل خواندن کنترل را برای خواندن و نوشتن‌های بعدی. در همان خط نگه می‌دارد
شکل کلی دستور ورودی ReadLN بصورت زیر می‌باشد:
;( ….. و متغیر ۲ و متغیر ۱ReadLN (
این دستور عمل خواندن داده‌ها و ذخیره آنها در متغیرها را انجام می‌دهد و پس از اتمام عمل خواندن کنترل را برای خواندن و نوشتن‌های بعدی به خط بعد می رود.
تا به ما قادر شدیم که یک برنامه کامل را بنویسیم حال چند مثال را حل می کنیم:
۱/برنامه ای بنویسید که محتویات دو عدد را عوض کند؟
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.برنامه ای بنویسید که حقوق پایه و تعداد فرزندان یک کارگر را از ورودی گرفته و مبلغ حقوق وی را بر اساس فرمول زیر محاسبه کند؟
۱۰* تعداد فرزندان+ حقوق پایه= حقوق کل

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 ،حلقه ها را خواهم گفت در ضمن این مطالب هر هفته آپدیت می شود.

عملگر ها:

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

۲/عملگرهای منطقی

۳/عملگر های محاسباتی

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

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

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

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

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

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

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

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

مثال
:(X and (not y

جداول درستی :

عملگر Andو OR:

عملوند۲ OR عملوند ۱ عملوند۲ and عملوند ۱
عملوند۲
عملوند ۱

True True
True
true

True false
False
True

False True
true
false

False False
False
False

عملگر Not:

عملوند ۱ not
عملوند ۱

false
true

True
false

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

عملگر

Not

* / div mod and

+ - or

< <= = <> >= >

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

۱/دستور IF:

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

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

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

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

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

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

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

هر چیزی دیگر
۰تا ۲۰
رتبه

حقوق پایه
حقوق پایه*۱۰۰/۱۰
مالیات

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 (‘۱,۲,’) ;
writeln( ‘buckle my shoe’)
end ; {1,2}
3 , 4 :writeln (‘ ۳,۴ , shut the door ‘) ;
۵ , ۶ :writeln (‘ ۵ , ۶ , 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}

مثال:برنامه ای بنویسید که دو عدد را از ورودی دریافت کرده وچنانچه عدد اول در بازه ۰ تا ۵ بود توان دوم عدد دوم را چاپ کند اگر ۶۸ بود ضرب آن دو عدد را نمایش دهد در غیر اینصورت مقادیر مجاز را چاپ کند؟
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.

حلقه ها:
۱/حلقه FOR:

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

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

Downto

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

مثال:برنامه ای بنویسید که مجموع مضارب ۵ بین ۰ تا ۱۰۰ را حساب کند؟
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.

مثال:برنامه ای بنویسید که تعداد مضارب ۵و۷ را در بازه [۲۳۱,۸۴۶] چاپ کند؟
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 یک حلقه با تکرار ۰ یا بیشتر و تعداد تکرار در آن نامعین است.

شکل آن بصورت زیر است:
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 (‘۰’ <= ch) and (ch <= ‘۹’)

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

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

مثال:
Program m_n;
Uses wincrt;
Var
I , j : integer ;
Begin
Writeln (‘I’ :۱۲ , ‘j’ :۵);
For I:=1 to 3 do
Begin
Writeln (‘outer’ :۵,I :7 );
For j:= 1 to I do
Writeln (‘inner’ :۷ , 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

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

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

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

پارامتر های صوری به دو دسته تقسیم می شوند:
۱/پارامتر های مقدار
۲/پارامتر های متغیر

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

مثال: رویه 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 )
قواعد تناظر لیست پارامتر ها:

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

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

۱/پروسی جر((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)

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

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

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

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

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

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

دستورات تابع

End ;

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

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

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

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

مثال:برنامه ای بنویسد که یک عدد را از ورودی دریافت کرده و به کمک تابع بازگشتی و غیر بازگشتی فاکتوریل آن را حساب کند؟
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;
خروجی این تابع برابر ۴ است.

این هم یک مثال جالب:
برنامه ای بنویسید که رشته ای را به یک تابع فرستاده و معکوس رشته را توسط نام تابع برگرداند.همچنین به کمک پرامتر مرجع حروف کوچک رشته ورودی را تبدیل به حروف بزرگ کرده و رشته معادل را برگرداند؟
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>=’a')and(s<=’z') then
P:=char(ord( s)-32 ) )
Else
P:=s ;
T:=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.
زیر برنامه های استاندارد رشته ای:

۱/تابع 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 ) ; -à ۱۳ali
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 را مشخص می کند.

۸/پردازه delete:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

آرایه:

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

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

شکل استفاده:

Type
Array type = array [ subscript 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 اندیس ۱ خوانده شود)، برای مراجعه به دومین عنصر از از 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 ) ;

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

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 ) ;
{ 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 and average’ ) ;
WriteLn ( ‘I’ :۴ , ‘X’ :۸ , ‘Difference’ : ۱۴ ) ;
For I := 1 to MaxItems do
WritLn ( I :4, X :8:1, X _ 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 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 subscript }
Begin
I := 1 ; { Start with first pair . }
{ Test corresponding elements of arrays A and B . }
while (I < MaxSize) and (A = B) do
{ invariant :
1 <= I <= MaxSize and
A = B for all prior values of I
}
I := I + 1 ; { Advance to next pair . }
SamArray := (A) = B) { 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 باید از۱ شروع شود.

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

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

مثال ۱ :
در صورتی که 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 [ subscript1 , subscript2 , . . . , subscriptn ]
Of element type ;
Type
Multidim = array [subscrip1] of array [ subscript2 ] . . .
Of array [subscript n] of element type ;

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

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

۱/دستیابی تصادفی
۲/دستیابی ترتیبی

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

۱/دستیابی تصادفی
۲/دستیابی سطر یه سطر
۳/دستیابی ستون به ستون

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

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

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

Process Table { row_subscript , column_subscript }

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

For column_subscript . . . do [Specify the column]

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

Process Table [ row_subscript , column_subscrip]

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

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

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

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

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

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 ) ;
Max:= a[0] ; min:= a[0] ;
Locmax:=1 ; locmin:=1 ;
For i:=2 to n do
Begin
If ( a>max ) then
Begin
Max:=a ; locmax:=I ;
End ;
If a
Begin
Min:=a ; locmin:=I ;
End ;
End ;
Writeln ( ‘max=’,max,’position=’ , locmax ) ;
Writeln ( ‘min=’,min,’position=’ , locmin ) ;
End .

مثال۲: هشت عدد را خوانده و در آرایه ای ذخیره کنید.سپس به روش حبابی آن را به صورت صعودی مرتب کرده و چاپ کنید؟
Program bubble_sort ;
Uses wincrt ;
Const n:=8 ;
Var
A:array [1..n] of integer ;
I,j,temp:integer ;
Begin
Write ( ‘please enter 8 integer numbers:’ ) ;
For i:=1 to n do
Readln ( a ) ;
For j:=1 to n-1 do
For i:=1 to n-j do
If a>a[i+1] then
Begin
Temp:=a ;
A:=a[i+1] ;
A[i+1]:=temp ;
End ;
Writeln ( ’sorted numbers:’ ) ;
For i:= 1 to n do
Writeln ( ‘a[',I,']=’,a ) ;
End .
مثال۳: هشت عدد را خوانده و در آرایه ای ذخیره کنید.سپس به روش انتخابی آن را به صورت صعودی مرتب کرده و چاپ کنید؟
Program selection_sort ;
Uses wincrt ;
Const n:=8 ;
Var
x:array [1..n] of integer ;
I,j,min,index :integer ;
Begin
Write ( ‘please enter 8 integer numbers:’ ) ;
For i:=1 to n do
Readln ( a ) ;
For j:=1 to n-1 do
Begin
Min:=x ; index:=I ;
For j:=i+1 to n do
If x[j]
Begin
Min:=x[j] ;
Index:=j ;
End ;
X[index]:=x ;
X:=min ;
End;
Writeln ( ’sorted numbers:’ ) ;
For i:= 1 to n do
Writeln ( ‘a[',I,']=’,a ) ;
End .

مثال ۴ :فرض کنید آرایه x با n خانه از قبل مرتب باشد. متغیر k حاوی کلیدی است که می خواهیم دنبال آن بگردیم. متغیر های low,high,mid از نوع صحیح می باشند. تکه برنامه زیر آرایه x را جهت یافتن k جستجو می کند . (جستجوی دودویی)
Low:=1 ; high:=n ;
While low<=high do
Begin
Mid:=( low+high ) div 2 ;
If k
High:=mid-1
Else
If k>x[mid] then
Low:=mid+1
Else
Begin
Write( ‘the number’,k,’exist in array ‘ ) ;
Halt ;
End ;
End ;
Write( ‘the number’,k,’not exist in array ‘ ) ;

نکته:در روش ججستجوی دودویی ، در بدترین حالت با [ logn ]+1عمل مقایسه می توانیم کلید را پیدا کنیم.

فایل های متن ، فایل های داده و فایل های خروجی:

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

فایل داده:
یک فایل داده (یا فایل ورودی ) فایلی است که شامل اطلاعات ورودی برنامه است یک فایل داده می تواند از نوع متن دودویی باشد .

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

ساختار اطلاعات در یک فایل متن:

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

ساختار منطقی یک فایل متن:

از نظر منطقی فایل متن شامل خطوطی از کاراکتر ها است که این خطوط توسط کاراکتر< eoln> از یکدیگر جدا می شوند . با استفاده از یک ویراستار یا یک فرمان سیستم عامل (نظیر فرمان زیر ) می توان یک فایل متن را روی صفحه نمایش مشاهده کرد.

> type filename

خواندن اطلاعات از فایل متن:

می توان از رویه readln برای خواندن داده از یک فایل متن استفاده کرد. برنامه ای در نظر بگیرید که شامل تعریف متغیرهای زیر است :

Var
Salary : real ; { input – a salary }
First . last ; char; { input – initials }
Separator : char ; { input – blank between salary and first }
Mydata :Text ; { a text file used as data file }

عبارت :
Readln ( mydata, Salary, Separator, First, last )

رویه :read

رویه ورودی دیگر ، رویه read است که کار آن نیز خواندن اطلاعات از صفحه کلید یا فایل است . بر خلاف readln ، رویه read تنها کاراکتر های داده ای که در لیست ورودی اش مشخص شده را می خواند.
مثال :
دستورات :
Read ( mydata , salary ); { read salary from mydata. }
Read ( mydata , separator ) { read the balank character }
Read ( mydata , first , last ) { read initials from mydata }
Readln ( mydata ) { skip past < eoln > character in mydata. }

نتیجه یکسانی با دستور زیر دارند.

Readln ( mydata , salary , separator , first , last )

نوشتن نتایج در فایل متن :

برای نوشتن نتایج در فایل های متن از رویه های write و writeln استفاده می کنیم .این رویه ها درست مانند همان رویه های چاپ نتایج روی صفحه نمایش هستند اگر اولین پارامتر در فراخوانی write یا writeln ، متغیری از نوع text باشد خروجی به جای صفحه نمایش به فایل فرستاده می شود .

رویه های write , writeln:

شکل استفاده :

Write ( outfile , output list )
Writeln ( outfile , output list )

مثال :

Write ( myresult , salary )
Writeln ( myresult , hours : 3 :1 , ‘ s’ , salary :4 :2 )

نامهای داخلی و خارجی فایل:

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

رویه Reset:

شکل استفاده :

Reset ( infile )

مثال :

Reset ( mydata )

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

نکته :

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

رویه rewrite:

شکل استفاده :
Rewrite ( outfile )

مثال :

Rewrite( outdata )

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

تست انتهای فایل : تابع EOF:

شکل استفاده :
EOF( filename )

مثال :
EOF( infile )

تمام فایل ها به طور اتوماتیک با کاراکتر< eof > خاتمه می یابند.و تابع از پیش ساخته شده EOF در پاسکال (مخفف ENDOF FILE ׂ( تست می کند که آیا کاراکتر بعدی فایل eof است یا خیر؟

نکته :

در صورتی که کلیه کاراکتر های فایل infile پردازش شده باشند (یعنی کاراکتر بعدی ، کاراکتر < eof > باشد)، true را بر می گرداند و اگر هنوز کاراکتر هایی برای خواندن وجود داشته باشند false را بر می گرداند .

تست انتهای خط : تابع EOLN :

شکل استفاده :
EOLN( filename )

مثال :
EOLN ( infile )

پاسکال تابعی به نام EOLN ( END OF LINE )دارد که قادر به تشخیص کاراکتر < eoln > است. در صورتی که کاراکتر بعدی < eoln > باشد , تابع EOLN مقدار true و در غیر این صورت false را بر می گرداند.
نکته :
۱/اگر کاراکتر بعدی فایل , < eoln > باشد ,نتیجه تابع true و در غیر این صورت false خواهد بود .

۲/اگر file name حذف شود ,فایل سیستم input (صفحه کلید ) ، فایل ورودی است. در پاسکال استاندارد , فراخوانی تابع EOLN در صورتی که EOF( filename ) ، True باشد ،خطا است.

استفاده از فایل های متن:

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

Assign( ):

این تابع شناسه فایل را به فایل خارجی منسوب می کند در اگر فایل وجود نداشته باشد آن را می سازد.
نحوه کاربرد:
Assign( my_file,external_name ) ;
بستن فایل=close ( )
این تابع برای بستن فایل می باشد.
نکته:
۱/اگر قبل از خاتمه برنامه تمامی فایل ها را نبندید ،هیچ کدام از اعمالی که بر فایل اعمال نموده اید ،اجرا نخواهد شد.
۲/قبل از این که بتوانید بین عملیات ها سوئیچ کنید، باید فایل را ببندید، به عنوان نمونه ،بعد از نوشتن اقلامی در فایل، باید آن را ببندید و مجددا قبل
ازخواندن اقلام دوباره آن را باز کنید.

نحوه کاربرد:
Close( file_name ) ;
دستیابی تصادفی به فایل ها-seek( ):

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

نحوه کاربرد:
Seek( file_name,position_number ) ;

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

مثال۱/برنامه ای بنویسید که نام،تاریخ تولد، شماره تلفن فردی را گرفته و در فایلی ذخیره کند؟
Program file_ex ;
Uses wincrt ;
Type rec_type=record
Name:string ;
Date_of_brith:string ;
Telephone_number:string ;
End ;
Var
My_file:file of rec_type ;
Rec_var: rec_type ;
Ch:char ;
Begin
Clrscr ;
Assign( my_file,’file_1.dat’ ) ;
Rewrite ( my_file ) ;
Repeat
Write( ‘enter a name:’ ) ;
Readln( rec_var.name ) ;
Write( ‘enter a date of brith:’ );
Readln( rec_var.date_of_brith ) ;
Write( ‘enter a telephone number:’ ) ;
Readln( rec_var.telephone_number ) ;
Write( my_file,rec_var ) ;
Write( ‘continue? Reply y/n: ‘ ) ;
Readln( ch ) ;
Until ( ch=’n') or(ch=’N') ;
Close( my_file ) ;
End .

مثال ۲/ برنامه بالا را برای افزودن رکورد جدید تغییر دهید؟

Program file_ex ;
Uses wincrt ;
Type rec_type=record
Name:string ;
Date_of_brith:string ;
Telephone_number:string ;
End ;
Var
My_file:file of rec_type ;
Rec_var: rec_type ;
Ch:char ;
Begin
Clrscr ;
Assign( my_file,’file_1.dat’ ) ;
Reset ( my_file ) ;
Seek( my_file,filesize( my_file) ) ;
Write( ‘enter a name:’ ) ;
Readln( rec_var.name ) ;
Write( ‘enter a date of brith:’ );
Readln( rec_var.date_of_brith ) ;
Write( ‘enter a telephone number:’ ) ;
Readln( rec_var.telephone_number ) ;
Write( my_file,rec_var ) ;
Close( my_file ) ;
End .

مثال۳/ برنامه ای کامل برای جستجوی قلم داده ای خاص در درون فایل بنویسید؟

Program file_ex ;
Uses wincrt ;
Type rec_type=record
Name:string ;
Date_of_brith:string ;
Telephone_number:string ;
End ;
Var
My_file:file of rec_type ;
Rec_var: rec_type ;
Sought_name: string ;
Found:Boolean ;
Found_ind, counter:integer ;
Begin
Clrscr ;
Assign( my_file,’file_1.dat’ ) ;
Reset ( my_file ) ;
Counter:=0 ;
Write( ‘enter a name to be Found :’ ) ;
Readln (Sought_name ) ;
Repeat
Seek( my_file,counter) ;
Read(my_file,rec_var ) ;
Found:=rec_var.name= Sought_name ;
If Found then

نحوه استفاده از فایروال ویندوز XP

امروزه از اینترنت در ابعاد گسترده و با اهدافی مختلف استفاده بعمل می آید . یکی از نکات قابل توجه اینترنت ، تنوع استفاده کنندگان آن در رده های سنی مختلف و مشاغل گوناگون است. در سالیان اخیر و به موازات رشد چشمگیر استفاده از اینترنت خصوصا” توسط کاربران خانگی ، مشاهده شده است به محض شیوع یک ویروس و یا کرم جدید ، اغلب قربانیان را کاربرانی تشکیل می دهند که فاقد مهارت های لازم در جهت استفاده ایمن از اینترنت بوده و دارای یک سطح حفاظتی مناسب نمی باشند . کاربران اینترنت همواره در تیررس مهاجمان بوده و همیشه امکان بروز حملات وجود خواهد داشت .
برای استفاده ایمن از اینترنت ، می بایست اقدامات متعددی را انجام داد . قطعا” استفاده از فایروال یکی از اقدامات اولیه و در عین حال بسیار مهم در این زمینه است . استفاده از اینترنت بدون بکارگیری یک فایروال ، نظیر بازنگهداشتن درب ورودی یک ساختمان است که هر لحظه ممکن است افراد غیرمجاز از فرصت ایجاد شده برای ورود به ساختمان استفاده نمایند . با نصب و استفاده از یک فایروال ، ضریب مقاومت و ایمنی کاربران در مقابل انواع حملات افزایش خواهد یافت .
شرکت مایکروسافت اخیرا” 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 ، اقدام شود ( استفاده از امکانات گسترده امنیتی و فایروال ارائه شده ) .
نسخه های قبلی ویندوز نظیر ویندوز ۲۰۰۰ و یا ۹۸ به همراه یک فایروال از قبل تعبیه شده ارائه نشده اند . در صورت استفاده از سیستم های عامل فوق، می بایست یک فایروال نرم افزاری دیگر را انتخاب و آن را بر روی سیستم نصب نمود .

ضرورت توجه به امکانات سایر فایروال های نرم افزاری
فایروال ویندوز ، امکانات حفاظتی لازم به منظور بلاک نمودن دستیابی غیرمجاز به سیستم شما را ارائه می نماید . در این رابطه دستیابی به سیستم از طریق کاربران و یا برنامه های موجود در خارج از شبکه محلی ، کنترل خواهد شد . برخی از فایروال های نرم افزاری یک لایه حفاظتی اضافه را نیز ارائه داده و امکان ارسال اطلاعات و یا داده توسط کامپیوتر شما به سایر کامپیوترهای موجود در شبکه توسط برنامه های غیر مجاز را نیز بلاک می نمایند ( سازماندهی و مدیریت یک فایروال دوطرفه ) . با استفاده از این نوع فایروال ها ، برنامه ها قادر به ارسال داده از کامپیوتر شما برای سایر کامپیوترها بدون اخذ مجوز نخواهند بود . در صورت نصب یک برنامه مخرب بر روی کامپیوتر شما ( سهوا” و یا تعمدا” ) برنامه فوق می تواند در ادامه اطلاعات شخصی شما را برای سایر کامپیوترها ارسال و یا آنان را سرقت نماید . پس از نصب فایروال های دوطرفه ، علاوه بر تمرکز بر روی پورت های ورودی ( 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
پس از انجام عملیات فوق ، ویندوز وضعیت فایروال را اعلام نخواهد کرد . رویکرد فوق در مواردی که از یک فایروال سخت افزاری و یا نرم افزاری خاص استفاه می شود ، پیشنهاد می گردد . بدین ترتیب مرکز امنیت ویندوز ، وضعیت فایروال را مانیتور نخواهد کرد .
و اما نکته آخر و شاید هم تکراری !
برای استفاده ایمن از اینترنت ، می بایست اقدامات متعددی را انجام داد . قطعا” استفاده از فایروال یکی از اقدامات اولیه و در عین حال بسیار مهم در این زمینه است . یک سیستم بدون وجود یک فایروال ، در مقابل مجموعه ای گسترده از برنامه های مخرب آسیپ پذیر است و در برخی موارد صرفا” پس از گذشت چندین دقیقه از اتصال به اینترنت ، آلوده خواهد شد . با استفاده از یک فایروال ، ضریب مقاومت و ایمنی کاربران در مقابل انواع حملات افزایش می یابد.

راهنمای خرید پرینتر

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

Easy Ways to Improve Your Website’s Legibility

Websites that make their customers work to read them are not the best way to get business. Miniscule fonts, text in colors that make it hard to see against the background color, and lines that are piled on top of each other are problems, but they’re easy to correct. Let’s jump right in and look at five easy fixes:
1. Format your text using CSS.
Cascading Style Sheets (CSS) are the way to go - use one style sheet and control how text looks on your entire site. Make a change to the style sheet and your whole site is updated. It makes life a lot simpler.
2. Make the font size big enough to read.
Consider your target audience. Even if they are a group of teenage girls looking for new shoes, it’s never a good idea to use tiny type. It doesn’t have to be enormous, but up to a point, larger type is better. 12-pt Verdana is better than 8-pt Verdana.
3. Make the text contrast with its background.
The more contrast, the better. Black-on-white or white-on-black are examples of the highest contrast you can get. Use colors if you like, but if you squint at the page and your text basically vanishes, there’s not enough contrast.
4. Give the lines room to breathe.
Don’t stack lines on top of each other. Use the line-spacing directive in CSS and give it some space; I’ll often set line-spacing to 140% of the height of a typical line.
5. Break text up into chunks.
No matter how good a writer you are, people don’t want to read endless pages of text. Break it up by using headlines that reflect the subject of the paragraph(s) to follow so people can scan down to the parts that really interest them, or use bulleted lists to change the pace of the writing and slow down the scanning.

And finally (not one of the 5 Easy Ways to Improve Legibility but still quite important) check your spelling. Nothing irritates me more on a web page than spelling errors - it simply makes you look like you don’t care enough to get it right. Use that ubiquitous spellcheck tool.

Making your website’s content more legible is easy. It doesn’t take a lot of time, mainly common sense. The payoff will be text that’s more readable, customers that stick around long enough to get your message, and improved credibility with your visitors.

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

تالیف: مهندس سیامک گودرزی

همه کسانی که دستی در تجارت الکترونیک دارند به دنبال راهی برای افزایش ترافیک وب سایت خود و در واقع افزایش تعداد بازدیدکنندگان وب سایت خود هستند. برای این منظور راههای متعددی وجود دارد که برخی از آنها نیازمند صرف هزینه های هنگفت هستند و برخی نیز رایگان هستند. در زیر به همه این موارد اشاره خواهیم کرد و شرحی در و صف هر یک از آنها آورده می شود، اما محورمفاله ما شناساندن و به کار بردن راهکارهای رایگان برای افزایش ترافیک وب سایت شما است.
برای اینکه بتوانید یک تجارت موثر داشته باشید باید بتوانید ترافیک بیشتری را از آن خود کنید، و این امکان پذیر نیست مگر این که ترافیک آزاد موترهای جستجو را جذب کنید. برای خبره شدن شما در این زمینه مفاهیم پایه ای وجود دارند که شما باید با آنها آشنا شوید. این مفاهیم کمی پیچیده هستند اما برای افزایش ترافیک وب سایت خود باید آن را درک کرده و به کار ببرید.
ابتدا، چه کارهایی را نباید انجام دهیم؟ خیلی از افراد، بازدیدکنندگان را به سمت صفحات مالی سوق می دهند، و در بیشتر مواقع این استراتژی راهکار مناسبی نیست.
چه کاری را باید انجام دهیم؟ اما کاری که برای همه وب سایت ها، برای سال های متمادی موفق خواهد بود، تولید محتواست.
برای افزایش ترافیک وب سایت خود، شما سه کار اساسی را باید انجام دهید:
۱- ساختن وب سایتی که بازدید کنندگان بتوانند از آن به راحتی استفاده کنند.
۲- به کار بردن تکنیک های مختلف برای ترقی وب سایت خود.
۳- مانیتورینگ کردن پیشرفت و تنظیم کردن نتایجی که مد نظرمان است.

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

 محتوا (content)
سایت شما بدون محتوا هیچ چیزی ندارد. در واقع شاید بهترین راه برگشت سرمایه (ROI: return on investment) بالا بردن کیفیت محتوای سایت است . به عبارت دیگر راه نهایی برای بالا بردن ترافیک سایت است.
محتوای وب سایت شامل چیزهایی است که اطلاعاتی را برای بینندگان فراهم می کنند. زمانی که از محتوای سایت صحبت می شود،‌ افکار افراد بر روی متن متمرکز می شود در حالی که محتوای سایت می تواند عکس،‌ صدا،‌ ویدئو و … باشد. تعداد کلمات زیاد در سایت ،‌کلمات کلیدی (keywords) زیادی را برای موتورهای جستجو فراهم می کند، ‌همچنین تعداد صفحات زیاد باعث بالا رفتن page rank وب سایت شما می شود. کار، بر روی محتوا یکی از استراتژی های مفید برای افزایش ترافیک سایت است.

 لینک های درونی (inbound links)
لینک های درونی برای افزایش ترافیک سایت بسیار ضروری هستند. وب سایت شما بدون لینک ها برای بازدیدکنندگان و موتورهای جستجو فاقد اعتبار هستند. موتورهای جستجوگر تاکید خاصی برروی لینکهای ورودی دارند زیرا نشانگر اینست که ، اگر سایتهای دیگر به سایت شما لینک می باشند، یعنی شما سایت قابل قبول و با ارزشی را ارائه می دهید. همچنین لینک ورودی برای اسپایدرهای موتورهای جستجوگر به عنوان یک گواهی نامه از حضور آنلاین سایت تلقی می شود. بازدید کننده گان و موتورهای جستجو با گردش بر روی لینک های موجود در سمت چپ و راست صفحه وب سایت شما موجب افزایش اعتبار و page rank وب سایت شما می شوند.
برای مطالعه بیشتر در رابطه با نحوه کار لینک ها می توانید مطالب‌ مربوط به آن را از لینک www.trafficlegancy.com دانلود کنید.

 Blogging
Blogging امتیازاتی به همراه دارد ، البته اشکالاتی نیز دارد ،‌اما شگفت آنکه ترافیک وب سایت شما را افزایش می دهد. به خاطر دارید که محتوا یک راه مفید برای افزایش ترافیک وب سایت شما بود و وبلاگ یک راه مفید برای افزایش محتوا است. توسط blogging محتویات وب سایت شما به سرعت افزوده می شود، همچنین به دلیل وجود لینک های بسیار در آن بر روی ترافیک سایت شما اثر گذار است. همچنین این مساله باعث دلگرمی بازدیدکنندگان برای تعامل با سایت شما می گردد. ‌ اشکال blogging‌ در این است که، پس از مدتی با گستردگی زیاد متون اضافه شده به وب سایت و عدم تمرکز در به کارگیری کلمات کلیدی انتخاب شده باعث می شود که خیلی از صاحبان بلاگ ها seo‌ را رعایت نکنند.
 وبلاگ نویسی مهمان (Guest Blogging)
یکی دیگر از راه های افزایش ترافیک وب سایت وبلاگ نویسی مهمان است. این ویژه گی در واقع، قرار دادن امکانی برای بازدیدکنندگان است که بتوانند نوشته هایشان را به وب سایت شما ارسال کنند. البته وب سایت باید پتانسیل هایی داشته باشد تا بتواند بازدیدکنندگان را به خود جذب کند.

 Social bookmarking
این روش یک راه خوب برای ایجاد لینک های فعال برای برگشت به وب سایت شما و افزایش ترافیک وب سایت شما ست. Social bookmarking‌ به این معنی است که با مشارکت و استفاده از نیروی همه کاربران اینترنت ، ‌صفحات اینترنتی را “برچسپ گذاری ”(tag) کنیم. در واقع، اساسا به جای اینکه شما برچسپ هایتان را برای خودتان حفظ کنید با قرار دادن آنها در سایت های social bookmarking آنها را با همه کاربران اینترنتی به اشتراک می گذارید. سایت های بسیار زیادی برای social bookmarking به راه افتاده اند ، که از میان آنها نمونه های خارجی del.icio.us و dig.com‌ هستند و از نمونه های داخلی balatarin.com و mohand.es را می توان نام برد.

 Article Marketing
این روش یکی از راه های مطلوب برای افزایش ترافیک وب سایت شما است. به این صورت که شما با قرار دادن مقالات در سایت خود و یا واسط شدن بین تقاضا دهنده مقاله و سایت هایی که ارائه دهنده مقاله مورد نظر هستند، می توانید تعداد بازدیدکنندگان سایت خود را افزایش دهید. از مشکلات رایج در این زمینه، کامل نبودن مقالات و یا درست نبودن لینک ها می باشد ،‌که به این موارد باید توجه شود.
Article marketing مزایایی دارد که در زیر لیست شده است:
۱- افزایش ترافیک از طریق موتورهای جستجو
۲- افزایش ترافیک از طریق لینک های مستقیم
۳- بهبود وضعیت موتور جستجو
۴- افزایش تعداد کلمات کلیدی
۵- افزایش تعداد ارجاعات
۶- افزایش تعداد وب سایت های زیرمجموعه

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

روش های پرداختی برای افزایش ترافیک وب سایت (Paid methods to increase website traffic)
روش های پرداختی در وب سایت دارای ریسک و هزینه بر می باشند. فعالیت های تجاری که دارای بازگشت سرمایه (ROI) می باشند، می توانند از این روش ها بهره ببرند. اگر مدل تجاری شما دارای بازدهی مناسب باشد، شما می توانید از انواع روش های مطرح شده در ذیل استفاده نمایید. و یا با کمی هوشمندی شما می توانید به وسیله outsourcing ترافیک مجازی را برای خود ایجاد نمایید. در زیر برخی از متدهای پرداختی لیست شده اند:
• پرداخت به وسیله کلیک (ppc)
• پرداخت به ازای لینک
• پرداخت به ازای Article Marketing
• محتویات ارجاعی
در روشهای مطرح شده ، پرداخت به وسیله کلیک (ppc) بهترین روش برای معرفی وب سایت شما به موتور جستجو است ،‌که باعث ارزشمندتر شدن یا بالاتر رفتن اولویت برخی از محتویات وب سایت شما می شود. شما با فعالیت های پرداختی برای بالا بردن ترافیک وب سایت خود ، هزینه گزافی را پرداخت خواهید کرد ، در حالی که با روش های رایگان نیز می توانید جذابیت سایت خود را بالا ببرید و فروش خود را افزایش دهید.

منابع: websitetrafficexposed.com
Trafficlegacy.com

Home Security – Night Vision Cameras

Night Vision Cameras are a great way to monitor and secure exterior building entrances and rural perimeters, or to keep an eye on a sleeping infant in a dark room. Infrared Light provides detailed imagery in complete darkness situations.

Night vision security cameras allow you to see intruders trying to enter your home both by day and by night. If you’ve been thinking about adding security cameras as part of your home security system, it’s not a bad idea to get cameras capable of seeing in the dark since that’s when many would-be burglars ply their trade. As with regular security cameras, night vision cameras send their images to a VCR or PC where they are displayed on a monitor and can be recorded to a tape or hard drive. The difference is in how the cameras see.
How Night Vision Security Cameras Work
Night vision technology basically works in two different ways, depending on what kind of camera you buy.
Image Enhancement
This technology works by gathering small amounts of light that exist even at night (the lower portion of the infrared spectrum) but are imperceptible to the human eye. This light is then amplified to display an image we can easily see. The display on a monitor hooking up by an image enhancing camera usually appears greenish. (If you’ve ever peered through night vision goggles, that is the look.)
Thermal Imaging
Thermal imaging technology makes use of the upper portion of the infrared spectrum which shows the heat emitted by things rather than just their reflected light. Warmer things (i.e. human bodies) give off more heat than cooler things like trees or houses. The display on a monitor hooking up by an image enhancing camera usually appears in black and white.
How to Install a Night-Vision Security Camera

1. Decide what room you will be installing the camera and pick an angle from which the camera can operate unobstructed.

2. Decide how high off the floor you want the camera. Stand on a ladder and look over the room. From what height do you get the most coverage including the floor?

3. Hold the mounting bracket that came with the camera in place with one hand and use a pencil to mark the screw holes with the other hand.

4. Determine if the screw holes will be in a stud. Use a stud finder from a home improvement store if necessary.

5. If you will not be inserting the screws into a stud, you will need a drywall anchor bolt. Use a drill bit that is slightly smaller that the screw you will use to mount the bracket.

6. Predrill a hole into the stud or insert the drywall anchor bolt into the drywall.
7. Hold the mounting bracket in place and insert the screws into the predrilled holes or the drywall anchor bolt
8. Place the camera onto the mounting bracket and plug in the device.

9. Sync the camera to the base station and activate night vision. Check the images to make sure you have the coverage you require.