02 - مقدمه اي بر سي شارپ

02 - مقدمه اي بر سي شارپ
نوشته شده توسط مدیریت سایت   
طي سلسله مقالاتي مي خواهيم با C# بيشتر آشنا شويم. فرض اين مقالات بر اين است كه آشنايي مختصري با زبانهاي برنامه نويسي داريد ، هر چند كار ما تقريبا از صفر شروع مي شود و هدف آن سادگي هر چه بيشتر است.

C# از دو زبان C++ و Java متولد شده است! حاوي بسياري از جنبه هاي C++ مي باشد اما ويژگي هاي شيء گرايي خودش را از جاوا به ارث برده است.

C# اگرچه از C++ گرفته شده است اما يك زبان "خالص" شيء گرا (Object oriented) مي باشد. هر دو زبان ياد شده جزو زبانهاي هيبريد محسوب مي شوند اما طراحان C# اين مورد را به اندازه ي C++ مهم تلقي نكرده اند. يك زبان هيبريد اجازه ي برنامه نويسي با شيوه هاي مختلف را ميسر مي كند. دليل اينكه C++ هيبريد است ، اين است كه قرار بوده تا با زبان C سازگار باشد و همين امر سبب گرديده تا بعضي از جنبه هاي C++ بسيار پيچيده شوند.

زبان سي شارپ فرض اش بر اين است كه شما مي خواهيد تنها برنامه نويسي شيء گرا انجام دهيد و همانند C++ مخلوطي از برنامه نويسي رويه ايي (Procedural) و شيء گرا را نمي خواهيد به پايان برسانيد. بنابراين بايد طرز فكر خودتان را با دنياي شيء گرايي تطبيق دهيد. در ادامه خواهيد ديد كه در سي شارپ هر چيزي شيء است حتي يك برنامه ي سي شارپ.

برنامه ي اول :

Visual studio.net را اجرا كنيد و سپس در صفحه ي ظاهر شده New Project را برگزينيد. حالا از گزينه ي Visual C# projects قسمت Console applications را انتخاب نماييد. نامي دلخواه همانند ex01 را وارد نموده و سپس Ok نماييد. كد زير به صورت خودكار براي شما توليد خواهد شد:

using System;

namespace ex01
{
///
/// Summary description for Class1.
///
class Class1
{
///
/// The main entry point for the application.
///
[STAThread]
static void Main(string[] args)
{
//
// TODO: Add code to start application here
//
}
}
}
اگر يك سري از مفاهيم آنرا متوجه نمي شويد اصلا مهم نيست! در مقالات آتي تمام اين موارد مفصل توضيح داده خواهند شد.
متد استاندارد Main در اينجا قسمتي است كه عمليات اصلي برنامه در حالت Console ( شبيه به برنامه هاي تحت داس اما 32 بيتي ) در آن انجام مي شود.
بدون متد Main برنامه هاي سي شارپ قادر به اجرا نخواهند بود. نوع آن در اينجا void تعريف شده است يعني اين متد خروجي ندارد. حتي اگر برنامه هاي استاندارد ويندوز را هم بخواهيد با C# بنويسيد بازهم متد Main حضور خواهد داشت ، هر چند به صورت خودكار ويژوال استوديو آنرا توليد مي كند.

طريقه ي نوشتن توضيحات (Comments) در سي شارپ همانند C++ مي باشد يعني :

/* any comments */

ويا
// any comments
و تنها برنامه نويس براي نوشتن توضيحاتي در مورد كدهاي خود از آنها استفاده مي كند و در خروجي برنامه ظاهر نمي شوند.

فعلا براي پايان قسمت اول از شيء Console و متد WriteLine آن براي نمايش يك جمله ي ساده استفاده مي كنيم. راجع به متدها ، متغيرها و غيره در آينده بيشتر صحبت مي كنيم.
در آخر برنامه ي ما چيزي شبيه به عبارت زير مي باشد:

using System;

namespace ex01
{
class Class1
{
[STAThread]
static void Main(string[] args)
{
Console.WriteLine("Hello C#!");
}
}
}
دكمه ي F5 را فشار دهيد تا برنامه اجرا شود.

تعريف متغيرها در سي شارپ:

سي شارپ عناصري را كه بكار مي گيرد همانند اعداد و كاراكترها ، به صورت نوع ها (Types) طبقه بندي مي كند. اين انواع شامل موارد زير مي شوند :
نوع هاي پايه ايي از پيش تعريف شده مانند اعداد و غيره.
نوع هاي تعريف شده توسط كاربر كه شامل STRUCT ها و ENUM ها مي شوند.

نحوه ي تعريف متغيرها از نوع هاي پايه ايي از پيش تعريف شده :
همانطور كه مي دانيد از متغيرها براي نگهداري اطلاعات استفاده مي شود. در سي شارپ ابتدا نوع متغير و سپس نام متغير و در آخر يك سمي كولون بكار برده مي شود. براي مثال :
int a;
كه در اينجا متغير a بعنوان يك متغير حاوي اعداد صحيح تعريف شده است.
نكته ي مهمي كه در اينجا حائز اهميت است ، مقدار دهي اوليه ي متغيرها مي باشد. در غير اينصورت كامپايلر سي شارپ برنامه را بايك خطا متوقف مي كند. دليل اين امر هم اين است كه از استفاده از متغيرهاي بدون مقدار در طول برنامه جلوگيري شود تا ميزان خطاهاي در حين اجرا كاهش يابد.

نوع هاي داده اي پايه ي زير در در سي شارپ به صورت پيش فرض مهيا هستند:

object : نوعي است نامحدود كه مي تواند تمام انواع ديگر را نيز شامل شود. مثال :
object = null;
string : رشته ؛ در اينجا يك رشته توالي كاراكترهاي يونيكد مي باشد. مثال :
string s= "hello";
sbyte : نوع داده ايي صحيح 8 بيتي علامت دار.
byte : نوع داده ايي صحيح 8 بيتي بدون علامت. مثال :
sbyte val = 12;
short : نوع داده ايي صحيح 16 بيتي علامت دار.
ushort : نوع داده ايي صحيح 16 بيتي بدون علامت. مثال :
short val = 12;

int : نوع داده ايي صحيح 32 بيتي علامت دار.
unit : نوع داده ايي صحيح 32 بيتي بدون علامت. مثال :
int val = 12;
long : نوع داده ايي صحيح 64 بيتي علامت دار.
ulong : نوع داده ايي صحيح 64 بيتي بدون علامت. مثال :
Long val1 = 12; long val2 = 34L;
كلا در اينجا u به معناي unsigned است.

float : نوع اعشاري با single precision .
double : نوع اعشاري با double precision . مثال :
float val = 1.23f;
bool : نوع داده ايي Boolean كه مي تواند true و يا false باشد. مثال :
Bool val = true;
char : كاراكتر، دراينجا char يك كاراكتر يونيكد است.
char val = 'h';
به نحوه ي تعريف كاراكتر ها و همچنين رشته ها در سي شارپ دقت كنيد.

decimal : نوع داده ايي دسيمال با 28 رقم معني دار.
decimal val = 1.23M;
يك نكته :

- بهتر است هنگام تعريف يك متغير ، نامي با مسما براي آن انتخاب شود تا در هنگام كار خواندن كد ساده تر گردد. همچنين رسم شده است كه نوع متغير را به صورت خلاصه به نام متغير اضافه مي كنند. براي مثال بجاي FirstName بهتر است بنويسيم strFirstName . به اين نوع نگارش Hungarian notation مي گويند.
- تمام نوع هاي پيش فرض تعريف شده در سي شارپ شيء هستند. در آينده بيشتر در اين مورد صحبت خواهيم كرد.

مثال اين قسمت :

يك برنامه ي console جديد در را VS.NET باز كنيد. نام آنرا در ابتدا ex02 انتخاب نماييد. در اينجا مي خواهيم دو متغير رشته ايي و صحيح را تعريف و سپس در خروجي نمايش دهيم.

كد نهايي به صورت زير مي باشد:
using System;

namespace ex02
{
///
/// Summary description for Class1.
///
class Class1
{
///
/// The main entry point for the application.
///
[STAThread]
static void Main(string[] args)
{
int intVar1 = 0;

int intVar2;
intVar2=1;

int intV3=15 , intV4 = 12;

string strText1 = "abcd";

Console.WriteLine(
"The value for variables are : intVar1="+intVar1 +
" intVar2="+ intVar2 +
" intV3=" + intV3 +
" intV4=" + intV4 +
" strText1=" + strText1);

Console.WriteLine(" Press any key to terminate");
Console.ReadLine(); // pause screen!

}
}
}
نكاتي در مورد كد فوق:

- بك اسلش ان ، در زبانهاي مشتق شده از سي به معناي new line مي باشد.
- در كد فوق نحوه ي تعريف چند متغير در يك خط و حالتهاي مقدار دهي مختلف را ملاحظه مي كنيد.
- از متد ReadLine براي نگه داشتن خروجي و مشاهده ي آن در اينجا استفاده كرديم.
- عادت كنيد به صورت دندانه دار كد بنويسيد. اينكار خوانايي كد را صد برابر مي كند. در اينجا كدهاي داخل متد main ، كاملا چند دندانه از آكولادهاي باز و بسته كردن آن جلو تر هستند.
- در كد بالا در متد WriteLine اعداد و رشته ها با هم جمع شده اند! اين مورد بدليل وجود overload هاي زياد اين تابع و ... ميسر گشته است. اصلا به آن دل نبنديد! چون در آينده كامپايلر سي شارپ اگر چنين اعمالي را در جاهاي ديگري مرتكب شويد به شدت با شما برخورد خواهد كرد!! براي جمع كردن اعداد با رشته ها حتما بايد عدد به رشته تبديل گردد و بعد ... . در اين مورد در مقالات بعدي بحث خواهد گرديد.
 

ميلادحضرت فاطمه (س)مبارك باد

حضرت فاطمه(س) 

ميلاددخت نبي اكرم(ص)رابرشمابازديدكننده عزيز

وبرتمامي مسلمانان جهان

وبرمادران عزيز

تبريك ميگويم.

باآرزوي سلامتي وطول عمربابركت براي همه مادران جهان

ارادتمندتان

مديرت وبلاگ

روح الله

بوي ياس


یاس بوی مهربانی می دهد
عطر دوران جوانی می دهد
یاس ها یادآور پروانه اند
یاس ها پیغمبران خانه اند
یاس ما را رو به پاكی می برد
رو به عشقی اشتراكی می برد
یاس در هر جا نوید آشتی ست
یاس دامان سپید آشتی ست

                                    ......................

                                                               یاس یك شب را گل ایوان ماست
                                                               یاس تنها یك سحر مهمان ماست
                                                               بعد روی صبح، پرپر می شود
                                                               راهی شب های دیگر می شود
                                                               یاس مثل عطر پاك نیّـت است
                                                               یاس استنشاق معصومیّـت است
                                                               یاس را آیینه ها رو كرده اند
                                                               یاس را پیغمبران بو كرده اند
                                                               یاس بوی حوض كوثر می دهد
                                                               عطر اخلاق پیمبر می دهد
                                                               حضرت زهرا دلش از یاس بود                              
                                                               دانه های اشكش از الماس بود

آشنائی با زبان #C

01 - آشنائی با زبان #C
نوشته شده توسط مدیریت سایت   
مايكروسافت در مصاف با جاوا، بدنبال ارائه يك زبان كامل بود كه سايه جاوا را در ميادين برنامه نويسی كم رنگ تر نمايد. شايد بهمين دليل باشد كه #C را ايجاد كرد. شباهت های بين دو زبان بسيار چشمگير است. مايكروسافت در رابطه با ميزان استفاده و گسترش زبان فوق بسيار خوشبين بوده و اميدوار است بسرعت زبان فوق گستردگی و مقبوليتی به مراتب بيشتر از جاوا را نزد پياده كنندگان نرم افزار پيدا كند.با توجه به نقش محوری اين زبان، از آن بعنوان مادر زبانهای برنامه نويسی در دات نت نام برده می شود. مورد فوق به تنهائی، می تواند دليل قانع كننده ای برای يادگيری اين زبان باشد، ولی دلايل متعدد ديگری نيز وجود دارد كه در ادامه به برخی از آنها اشاره می گردد.
مطرح شدن بعنوان يك استاندارد صنعتی
انجمن توليدكنندگان كامپيوتر اروپا (
ECMA) زبان #C را در سوم اكتبر سال 2001 بعنوان يك استاندارد پذيرفته (ECMA-334) و بدنبال آن تلاش های وسيعی برای كسب گواهی ISO نيز انجام شده است. زبان فوق در ابتدا توسط شركت مايكروسافت و بعنوان بخشی از دات نت پياده سازی و بلافاصله پس از آن توسط شركت های اينتل، هيوليت پاكارد و مايكروسافت مشتركا، جهت استاندارسازی پيشنهاد گرديد.زبان #C بگونه ای طراحی شده است كه نه تنها وابستگی به يك Platform خاص را ندارد، بلكه در اغلب موارد وابستگی RunTime نيز ندارد. كامپايلر #C می تواند بر روی هر نوع معماری سخت افزاری طراحی و اجرا گردد. در برخی از نسخه های اوليه كامپايلر زبان فوق كه توسط برخی از شركت های جانبی ارائه شده است، كدهای #C را به بايت كدهای جاوا كمپايل می كنند. يكی از چنين كامپايلرهائی را می توان در سايت Halcyonsoft.com مشاهده نمود. بنابراين كدهای #C براحتی قابليت حمل بر روی محيط های متفاوت را دارا خواهند بود.مشخصات تعريف شده زبان #C با ساير استاندارهای تعريف شده ECMA نظير (ECMA-335) CLI (Common Language Infrastructure) بخوبی مطابقت می نمايند. CLI قلب و روح دات نت و CLR(Common Language Runtime) است. اولين نسخه از كامپايلر زبان #C كه از CLI استفاده می كند، NET Framwork. مايكروسافت است.با توجه به موارد گفته شده، مشخص می گردد كه اين زبان بسرعت بسمت استاندارد شدن حركت و با تاييد استانداردهای مربوطه از طرف انجمن های معتبر بين المللی و حمايت فراگير شركت های معتبر كامپيوتری در دنيا مسير خود را بسمت جهانی شدن بخوبی طی می نمايد.
#C چيست ؟
طراحان زبان #
C با تاكيد و الگوبرداری مناسب از مزايای زبانهائی نظير ++C، C و جاوا و ناديده گرفتن برخی از امكانات تامل برانگيز و كم استفاده شده در هر يك از زبانهای فوق، يك زبان برنامه نويسی مدرن شی گراء را طراحی كرده اند. در مواردی، برخی از ويژگی های استفاده نشده و درست درك نشده در هر يك از زبانهای گفته شده، حذف و يا با اعمال كنترل های لازم بر روی آنها، زمينه ايجاد يك زبان آسان و ايمن برای اغلب پياده كنندگان نرم افزار بوجود آمده است. مثلا C و ++C می توانند مستقيما با استفاده از اشاره گرها عمليات دلخواه خود را در حافظه انجام دهند. وجود توانائی فوق برای نوشتن برنامه های كامپيوتری با كارائی بالا ضرورت اساسی دارد. اما در صورتيكه عملياتی اينچنين بدرستی كنترل و هدايت نگردند، خود می تواند باعث بروز مسائل (Bugs) بيشماری گردد.طراحان زبان #C، با درك اهميت موضوع فوق، اين ويژگی را كماكان در آن گنجانده ولی بمنظور ممانعت از استفاده نادرست و ايجاد اطمينان های لازم مسئله حفاظت نيز مورد توجه قرار گرفته است. جهت استفاده از ويژگی فوق، برنامه نويسان می بايست با صراحت و به روشنی خواسته خود را از طريق استفاده از Keyword های مربوطه اعلان نمايند( فراخوانی يك توانائی و استفاده از آن).#C بعنوان يك زبان شی گراء عالی است. اين زبان First-Class را برای مفهوم Property (Data Member) بهمراه ساير خصائص عمومی برنامه نويسی شی گراء حمايت می كند. در C و ++C و جاوا يك متد get/set اغلب برای دستيابی به ويژگی های هر Property استفاده می گردد. CLI همچنان تعريف Property را به متدهای get/ser ترجمه كرده تا بدين طريق بتواند دارای حداكثر ارتباط متقابل با ساير زبانهای برنامه نويسی باشد. #C بصورت فطری Events ، Declared Value، Reference Type ، Operator Overloading را نيز حمايت می كند.كد مديريت يافته
با استفاده از نسخه پياده سازی شده #
C توسط مايكروسافت، می توان همواره كد مديريت يافته ای را توليد كرد. يك برنامه #C پس از كامپايل، بصورت برنامه ای در خواهد آمد كه شامل دستورالعمل های تلفيق شده ( CIL (Common Intermediate Language است (درست بر خلاف دستورالعمل های مختص يك ماشين خاص). CIL (گاها با نام MSIL(Microsoft Intermediate Language) با به اختصار IL نيز ناميده می شود ) ، در مفهوم مشابه بايت كدهای جاوا بوده و شامل مجموعه ای از دستورالعمل های سطح پايين قابل فهم توسط تكنولوژی مبتنی بر CLI نظير CLR مايكروسافت خواهد بود. اين برنامه ها بدين دليل كد مديريت يافته، ناميده می شوند كه CLR مسئوليت تبديل اين دستورالعمل ها به كدهای قابل اجرا برروی ماشين و ارائه اغلب سرويس های اساسی برای كدينگ نظير : Garbage Collection، مديريت Heap و عمر مفيد يك Object و يا Type Verification را فراهم می كند.
روش يادگيری #C
يادگيری اين زبان برای افراديكه دارای سابقه آشنائی با يكی از زبانهای برنامه نويسی ++
C، C و يا جاوا باشند كار مشكلی نخواهد بود، حتی افراديكه دارای آشنائی اوليه با جاوااسكريپت و يا ديگر زبانهای برنامه نويسی نظير ويژوال بيسك می باشند، امكان پذير و راحت خواهد بود. برخی از برنامه نويسان حرفه ای بر اين باور هستند كه #C نسبت به VB.NET با اقبال بيشتر و سريعتری مواجه خواهد شد، چراكه #C نسبت به ويژوال بيسك خلاصه تر است. حتی برنامه های بزرگ و پيچيده ای كه توسط #C نوشته می گردند خواناتر، كوتاه و زيبا خواهند بود. برخی از ويژگی های ارائه شده در #C نظير Unsigned Integer، Operator OverLoading و امنيت بيشتر Type ها، در VB.NET وجود نداشته و اين امر می تواند دليلی بر فراگيرتر شدن #C نسبت به VB.NET نزد برنامه نويسان با تجربه باشد.برای يادگيری هر يك از زبانهای حمايت شده در دات نت، می بايست از BCL (Basic Class Library) مربوط به NET Framework. شروع كرد. #C خود صرفا دارای ۷۷ کلمه کليدی يا Keyword بوده كه برای اكثر برنامه نويسان غريب نخواهند بود. در مقابل BCL، دارای ۴۵۰۰ كلاس و تعداد بيشماری متد و Property است كه برنامه نويسان #C، می توانند از آنها برای انجام عمليات دلخواه خود استفاده نمايند. شايد يكی از مسائل قابل توجه جهت يادگيری اين زبان برای برخی از برنامه نويسان حرفه ای عدم وجود برخی از ويژگی ها و امكاناتی باشد كه در گذشته و از طريق ساير زبانهای استفاده شده، بخدمت گرفته می شدند. مثلا عدم وجود امكاناتی جهت توارث چندگانه (MI) سلسله مراتبی يك شئ.

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

 داده ها در ++C :

 

مقاله16:


داده ها در ++C :

 

همانند همه زبان های برنامه نویسی در زبان ++C هم انواع مختلف داده ای را داریم.تعداد این داده ها و نوع آنها در زبان های مختلف فرق می کند.مثلا در زبان VBScript فقط یک نوع داده به نام Variant داریم.اما در زبان ++C هفت نوع داده وجود دارد.wchar_t , bool , void , double , float , char , int این هفت نوع داده هستند.در ضمن چهار کلمه کلیدی signed (با علامت) و unsigned (بدون علامت) و short (کوتاه) و long (بلند) نیز وجود دارند که با ترکیب آن با انواع داده ای می توان انواع جدیدی را ایجاد کرد.جدول زیر انواع داده ها در ++C و مقادیر قابل قبول آنها را به همراه اندازه آنها به بیت نشان می دهد.

نکته مهم : در نوشتن انواع داده توجه داشته باشید که این کلمات همانطور که اینجا ذکر شده اند نوشته شوند ، چون همانطور که گفتیم در ++C حروف کوچک و بزرگ با هم تفاوت دارند.مثلا ما در ++C نوع داده ای char داریم نه Char یا chaR و ...

در جدول زیر انواع متغییر ها و اندازه به بیت و بازه قابل قبول انواع داده ای در ++C را مشاهده می کنید.

 

نوع

اندازه به بیت

بازه قابل قبول

 char

 unsigned char

 signed char

 int

 unsigned int

 signed int

 short int

 unsigned short int

 signed short int

 long int

 signed long int

 unsigned int

 float

 double

 long double

 

8

8

8

16 or 32

16 or 32

16 or 32

16

16

16

32

32

32

32

64

80

 

127-  تا 127

0 تا 255

127-  تا 127

32767- تا 32767

0 تا 65535

32767- تا 32767

32767- تا 32767

0 تا 65535

32767- تا 32767

2147483647- تا 2147483647

2147483647- تا 2147483647

0 تا 4294967295

7 رقم دقت (ارقام بعد از اعشار) ( تقریبا 10 بتوان 38- تا 10 بتوان 38)

15 رقم دقت ( تقریبا 10 بتوان 308- تا 10 بتوان 308)

19 رقم دقت ( تقریبا 10 بتوان 4932- تا 10 بتوان 4932)

توابع ریاضی

توابع ریاضی

16 04 2008

با بررسی یک برنامه با توابع ریاضی آشنا می شویم؛

# include

# include

int main ()

{ double x,y,a,b;

x = 2.536;

y = sin (x);

cout <<”y=”<

y = cos (x);

cout <<”cos (“<

a = 5.5;

b = log (a);

cout<<”b=”<

b = log 10 (a);

cout<<”b=”<

return 0;

}

نکات:

یک – نوع متغیر double مانند float برای معرفی متغیرهای اعشاری به کار می رود با این تفاوت که نسبت به float دارای دقت بیشتری می باشد و عدد را با تعداد رقم اعشاری بیشتری نشان می دهد .

دو – لگاریتم عدد a در مبنای 10 به صورت (log 10 (a در برنامه نوشته می شود و همچنین لگاریتم در مبنای نپر به صورت   (log (a نوشته می شود.

سه – بعضی توابع ریاضی تعریف شده برای کامپایلر عبارتند از:

y = floor (x) (بزرگترین عدد صحیح کوچکتر از عدد)

y = floor (x) (بزرگترین عدد صحیح کوچکتر از عدد)

Sin (x), cos (x), log 10 (x), log (x که درین برنامه مورد استفاده قرار گرفت و

y = e^x –> y = exp (X)

( ^ به معنای توان است که در برنامه به صورت (exp (x در برنامه نوشته می شود.)

y = tan (x)

y = sinh (X)

y = arc sin (x) –> y = a sin (x)

y = arc tan (x) –> y = a tan (x)

y = arc sinh (x) –> y = a sinh (x)

y = x ^ 0.5 (رادیکال) –> y = sqrt (x)

y = |x| (قدر مطلق) –> y = abs (x)

y = a^b (توان) –> y = pow (a,b)

y = ceil (x)(کوچکترین عدد صحیح بزرگتر از عدد)

y = floor (x) (بزرگترین عدد صحیح کوچکتر از عدد)

چهار - برای استفاده از توابع ریاضی شناخته شده برای کامپایلر لازم است در ابتدای برنامه هدِر فایلی را معرفی کنیم که این توابع مثل کتاب های کتابخانه در آنجا قرار دارند و آن هدر فایل است.

ساختار کلی ++c

ساختار کلی ++c

امروز میخوام با نوشتن برنامه ای ساده کار رو شروع کنم؛


برای نوشتن هر برنامه ای نیاز به نوشتن تابعی موسوم به
main هست، فرمت این تابع به یکی از صورت های زیر نوشته میشه؛ش


صورت اول:

int main ( )

{

return (0);

}

صورت دوم:

int main ( ) {

return main (0);
}


چند نکته:

نکته اول: میان پرانتز باز-بسته جلوی main هم میتواند فاصله وجود داشته باشد و هم میتواند وجود نداشته باشد، یعنی نوشتن آن به دو صورت زیر امکان پذیر است:

1. int main()
2. int main( )


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

1. return(0);

2. return 0;

نکته سوم: دستورات و وظایف در بین دو آکلاد، بعد از main و قبل از return نوشته میشوند.

مرحله ی دوم نوشتن برنامه را با معرفی متغیرها ادامه میدهیم؛

int main ()

{
int a=4, b, c, count=0;
float s, sum, average, v=2.5;
b=6;
c=10;
s=8;
float d=3.5;

.
.
.
return 0;
}

درین پنج خط دستور ما متغیرهایی را تعریف و یعضی را مقداردهی کرده ایم؛

در خط اول بعد از main متغیرها از نوع integer یا int یعنی عدد صحیح تعریف شده اند و ما مقدار این متغیرها را باید اعدادی صحیح بدهیم ولی اگر احیاناً اشتباه کنیم و مقدارشان را اعشاری بدهیم ممکن است کامپایلر (مترجم برنامه نویسی به زبان ماشین) به صورت اتوماتیک اعشار را حذف کند، اما ما نباید اشتباه کنیم!

نکته: متغیرها میتوانند در ابتدای برنامه که تعریف میشوند مقداردهی شوند مثل متغیرهای a وv و count یا در ابتدای برنامه تعریف شده و در اثنای برنامه مقداردهی شوند مثل b و c و s . حالت سومی هم وجود دارد آن هم اینکه متغیرها هر جا احتیاج شد تعریف شده و مقداردهی شوند مثل d .

نکته: عباراتی مانند int و float برای کامپایلر شناخته شده هستند لذا لازم است آنها را همانطور که برای کامپایلر شناخته شده است و با همان حروف کوچک بنویسیم اما اسامی که میخواهیم برای متغیرها انتخاب کنیم به دلخواه میتوانیم با حروف کوچک و یا حروف بزرگ بنویسیم!

دوباره برنامه را کامل تر میکنیم؛

1. int main ()
2. {
3. int a=4, b, c, count=0;
4. float s, sum, average, v=2.5;
5. b=6;
6. c=10;
7. s=8;
8. float d=3.5;
9. sum=a+v*s-s/v+a*v-b/s+d;
10. v=6.5;
11. sum=sum+v;
12. average=v/(c+b)+(s*a)/v-(a+b)/(s-v);
.
.
.
return 0;
}

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

نکته: ترتیب انجام این عملیات و به عبارتی اولویت آنها از بالا به پایین به صورت زیر است ( اعمالی که در یک سطر نوشته شده اند اولویت یکسانی دارند )

پرانتز ( )

* / %
+ -

در خط دهم متغیر v دوباره مقداردهی شده است؛ با این کار در ادامه ی برنامه هر گاه از این متغیر استفاده شود مقدار جدید آن منظور میشود.
در خط یازدهم متغیر مقدار
sum+v در متغیر sum ریخته میشود، در کامپیوتر به این عمل assignment گفته میشود.
در خط دوازدهم نیز مجموعه ای از عملیات ریاضی انجام شده و در متغیر
average ریخته میشود.

برنامه را ادامه میدهیم؛

1. int main ()

2. {
3. int a=4, b, c, count=0;
4. float s, sum, average, v=2.5;
5. b=6;
6. c=10;
7. s=8;
8. float d=3.5;
9. sum=a+v*s-s/v+a*v-b/s+d;
10. v=6.5;
11. sum=sum+v;
12. average=v/(c+b)+(s*a)/v-(a+b)/(s-v);
13. cout <<”FIRST PROGRAM”<
14. cout<<”s u m =”<<
15. cout<<”v=”<<<”s=”<<
return 0;

}

خروجی برنامه بعد از نوشتن آن در نرم افزار ویژوال سی به صورت زیر خواهد شد:

FIRST PROGRAM
s u m =123.456
v=2.5 s=8

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

آخرین نکته ای که ازین برنامه هنوز ناگفته مونده اینه که؛

هر برنامه ای شامل تعدادی هدر فایل (header file) در خطوط ابتدایی خودش هست که اصطلاحاً مثل کتابخانه ای میمونه که توابع استفاده شده در برنامه ازون جا فراخوانی می شوند، درین برنامه نیاز به هدرفایلی هست که به هدرفایل iostream.h مشهور می باشد؛ که به معنی جریان ورودی و خروجی است و از چند بخش با مفاهیم زیر تشکیل شده است؛

i=input

o=output

stream به معنی جریان

h=header file

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

# include

int main ()
{

int a=4, b, c, count=0;
float s, sum, average, v=2.5;
b=6;
c=10;
s=8;
float d=3.5;
sum=a+v*s-s/v+a*v-b/s+d;
v=6.5;
sum=sum+v;
average=v/(c+b)+(s*a)/v-(a+b)/(s-v);
cout <<”FIRST PROGRAM”<
cout<<”s u m =”<<
cout<<”v=”<<<”s=”<<

return 0;
}

در حقیقت چیزی که لازم هست بدونیم اینه که تابع main ازین کتابخانه فراخوانی میشود؛ پس در هر برنامه ای که از تابع main استفاده کردیم این هدرفایل رو باید در ابتدای اون به کار ببریم ، یعنی تقریباً همه ی برنامه ها!

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

باتشكرازسايت http://www.blogcatalog.com/blogs/c-3.html

آموزش زبان Visual C++.Net

مقاله15:

آدرس يك سايت براي دريافت ودانلودكتاب:

عنوان اثرآموزش زبان Visual C++.Net

موضوعبرنامه نويسي

نويسنده  :  هادی محمدپور

مترجم     :  

فرمت      :  Adobe Acrobat Reader .PDF

معرف      :  هادی محمدپور

تاريخ درج   :  3/01/1389

توضيحات : 

براي دانلود به آدرس زيرمراجعه كنيد:

http://www.farsiebook.com/ebook/6916.htm


راهنمای ++C  

مقاله14:

يك ساختمان داده‌اي ساده در C و C++


با مقايسه‌اي بين پياده‌سازي يك پشته در C و C++ كار را آغاز مي‌كنيم. دقت كنيد كه به چه ميزان اين دو به يكديگر شباهت دارند!

ساختمان داده پشته در C

كلاس پشته در C++

در اينجامقايسه‌اي در رابطه با چگونگي استفاده از اين پشته‌ها در يك برنامه وجود دارد :

main() در C و در C++

جايگزين‌ها (Variations):

توابع غضو، يا روش‌هاي، يك كلاس نبايستي حتما" در درون كلاس تعريف شوند. در حقيقت، آنها معمولا" در پرونده‌اي جداگانه وجود دارند. در اينجا مثال پشته با معرفي(declared) توابع در درون كلاس، و تعريف(defined) آنها در بيرون آورده شده است :

جداسازي رابط و پياده‌سازي

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

اعضاي عمومي/حفاظت شده/خصوصي كلاس

تخصيص پوياي حافظه:

C++ بجاي malloc() و free() از new و delete استفاده مي‌كند. در اينجا مقايسه‌اي از تخصيص و آزادسازي حافظه در ‍C و C++ وجود دارد :

Malloc()وfree() در مقايسه new و delete

اختياري:

آخرين اسلايد به دو نكته اشاره مي‌كند. اول انكه، استفاده از يك اشاره‌گر به يك كلاس در C++ همانند استفاده از يك اشاره‌گر به يك ساختار در C مي‌باشد. دوم آنكه، شما مجبور نيستيد كه متغيرهاي خود را در ابتداي تابع خود معرفي نمائيد. در حقيقت، شما مي‌توانيد متغير درون حلقه for را در درون حلقه معرفي نمائيد.

اشاره گرها به كلاس‌ها و معرفي متغيرها

سی++

مقاله13:

سی++:

از ویکی‌پدیا، دانشنامهٔ آزاد

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

زبان ++c یک زبان سطح میانی در نظر گرفته می‌شود. این زبان دارای قابلیت زبان‌های سطح بالا و پایین بصورت هم‌زمان است.

زبان ++C توسط بی‌یارنه استراس‌تروپ دانمارکی در سال ۱۹۷۹ در آزمایشگاه‌های بل (Bell Labs)، برای بهبود زبان سی و بر مبنای آن ساخته شد و آن را "C با کلاس" (C With Classes) نام‌گذاری نمودند. در سال ۱۹۸۳کلاس‌ها و ویژگی‌های دیگری مانند توابع مجازی، سربارگزاری عملگرها، وراثت چندگانه، قالب توابع، و پردازش استثنا انجام شد. این زبان برنامه‌نویسی در سال ۱۹۹۸ تحت نام ISO/IEC 14882:1998 استاندارد شد. نسخه فعلی استاندارد این زبان ISO/IEC 14882:2003 است. نسخه جدیدی از استاندارد (که به صورت غیررسمی C++0x نامیده می‌شود) در دست تهیه‌است. به ++c تغییر نام داد. توسعه با اضافه نمودن

تاریخچه زبان:

استراس‌تروپ کار بر روی زبان «c با کلاس» را در سال ۱۹۷۹ آغاز کرد.ایده ساخت این زبان جدید در زمان کار بر روی تز دکترای خود به ذهن استراس‌تروپ خطور نمود. او متوجه شد که سیمولا دارای ویژگی‌های مناسب برای ساخت برنامه‌های بسیار بزرگ است اما برای استفاده عملی بسیار کند است اما BCPL با وجود سرعت بسیار زیاد برای ساخت برنامه‌های بزرگ بسیار سطح پایین است. زمانی که استراس‌تروپ کار خود را در آزمایشگاه‌های بل (Bell Labs) آغاز نمود با مشکل تحلیل هسته unix با توجه به محاسبات توزیع شده روبرو شده بود. با یادآوری تجربیات خود در دوران دکترا، او زبان C را با استفاده از ویژگی‌های سیمولا گسترش داد. C به این دلیل انتخاب شد که C یک زبان عمومی، سریع، قابل حمل، و بصورت گسترده در حال استفاده بود. علاوه بر C و سیمولا زبان‌های دیگری مانند ALGOL 68، ADA، CLU، ML نیز بر ساختار این زبان جدید اثر گذاشت. در ابتداویژگی‌های کلاس، کلاس‌های مشتق شده، کنترل نوع قوی، توابع درون خطی، و آرگومان پیش‌فرض از طریق Cfront به C اضافه شد. اولین نسخه تجاری در سال ۱۹۸۵ ارائه شد.

در سال ۱۹۸۳ نام زبان از «C با کلاس» به ++C تغییر یافت. ویژگی‌های دیگر شامل توابع مجازی، سربارگزاری عملگر و نام تابع، ارجاعات، ثوابت، کنترل حافظه توسط کاربر بصورت آزاد، کنترل نوع بهتر، و توضیحات یک خطی به صورت BCPL با استفاده از «//» نیز به آن اضافه شد. در سال ۱۹۸۵ اولین نسخه زبان برنامه‌نویسی ++Cاعضای ثابت تابع، و اعضای حفاظت شده به آن اضافه شد. در سال ۱۹۹۰ «راهنمای مرجع ++C » منتشر شد. این کار بنیان استانداردهای بعدی شد. آخرین ویژگی‌های اضافه شده شامل موارد زیر بودند: قالب توابع، استثناها، فضاهای نام، تبدیلات جدید، و یک نوع داده منطقی. انتشار یافت و مرجع مهمی برای این زبان فراهم شد در حالی که هیچ استاندارد رسمی وجود نداشت. در سال ۱۹۸۹ ویرایش 2.0 از زبان ++C ارائه شد. ویژگی‌های جدیدی مانند ارث‌بری چندگانه، کلاس‌های انتزاعی، اعضای ایستای توایع،

در حین تکامل ++C کتابخانه استاندارد نیز بوجود آمد. اولین نسخه کتاب استاندارد شامل کتابخانه جریانات I/O بود که جایگزین printf و scanf شد. در ادامه مهم‌ترین ویژگی اضافه شده Standard Template Library بوده‌است.

[ویرایش] استاندارد زبان:

بعد از سال‌ها کار کمیته مشترک ANSIISO در سال ۱۹۹۸ ++C را استاندارد نمودند (ISO/IEC 14882:1998). به مدت چند سال پس از انتشار استاندارد این کمیته گزارشات معایب را مورد بررسی قرار داده نسخه اصلاح شده استاندارد ++C منتشر شد. در سال ۲۰۰۵ گزارشی فنی بنام «گزارش فنی کتابخانه ۱» (که معمولاً بصورت اختصار TR1 خوانده می‌شود) انتشار یافت. با وجود این که گزارش بخشی رسمی از استاندارد نیست ولی بخش‌هایی را به آن اضافه نموده که انتظار می‌رود در نسخه‌های بعدی استاندارد در نظر گرفته شود. پشتیبانی از این گزارش در حال افزایش بین تمام کامپایلرهای فعلی است.

در حالی که ++C به هیچ موسسه‌ای وابسته نیست این مستندات بصورت آزادانه در دسترس نیستند.

[ویرایش] نام ++C

این نام منسوب به ریک ماسکیتی (اواسط ۱۹۸۳) است و برای اولین بار در دسامبر سال ۱۹۸۳ به کار برده شد. در طول مدت تحقیق این زبان بنام «C جدید» و بعدها «C با کلاس» خوانده شد. در علوم کامپیوتر هنوز هم ++C به عنوان ابرساختار C شناخته می‌شود. آخرین نام از عملگر ++ در زبان C (که برای افزایش مقدار متغیر به اندازه یک واحد بکار می‌رود) و یک عرف معمول برای نشان دادن افزایش قابلیت‌ها توسط + ناشی گشته‌است. با توجه به نقل قولی از استراس‌تروپ: «این نام ویژگی‌ها تکاملی زبان در C را نشان می‌دهد.» +C نام زبانی غیرمرتبط به این زبان است.

استراس‌تروپ مبدا این نام را در فصل اول کتاب خود «زبان برنامه‌نویسی ++C» اشاره می‌نماید که معنی دیگر ++C را می‌توان در ضمائم کتاب جرج ارول بنام ۱۹۸۴ یافت. در سه قسمت از زبان تخیلی Newspeak «کلمات C» برای اشاره به لغات فنی و حرفه‌ای بکار می‌رود. «دو علامت +» برای ایجاد صفات عالی از صفات Newspeak به کار می‌رفت بنابراین ++C به معنای زبانی با بیشترین شباهت به C است.

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

[ویرایش] توسعه آینده:

++C همچنان در حال تکامل است تا نیازهای آینده را پاسخگو باشد. نسخه جدید استاندارد ++C در حال بررسی است و تحت عنوان C++0x است که انتظار می‌رود در سال ۲۰۱۰ منتشر گردد. تغییرات کنونی نشان می‌دهد که که همچنان به صورت چندمدلی ++C تاکید می‌گردد. توسعه‌های مهم پشتیبانی از چندرشته‌ای و مفاهیمی برای راحت نمودن کار با قالب‌هاست. اضافه نمودن ویژگی جمع‌آوری زباله به آن به شدت مورد بحث است. Boost.org گروهی برای بیشترین استفاده از ویژگی‌های فعلی ++C می‌باشد. آنها ویژگی‌های تابعی و فرابرنامه‌نویسی آن را گسترش می‌دهند و در مورد ++C به کمیته استاندارد نصیحت‌هایی نموده‌است که کدام ویژگی‌ها خوب عمل نمی‌کنند و کدام‌ها نیاز به توسعه دارند.

[ویرایش] فلسفه:

در کتاب «طراحی و تکامل ++C» استراستروپ قوانین مورد استفاده در طراحی ++C را بیان می‌نماید. دانستن این قوانین به فهمیدن نحوه عملکرد ++C و چرایی آن کمک می‌کند. جزئیات بیشتر در کتاب قابل دسترسی است:

  • ++C طراحی شده‌است تا یک زبان عمومی با کنترل نوع ایستا و همانند C قابل حمل و پربازده باشد.
  • ++C طراحی شده‌است تا مستقیما و بصورت جامع از چندین شیوه برنامه‌نویسی (برنامه‌نویسی ساخت‌یافته، برنامه‌نویسی شی‌گرا، انتزاع داده، و برنامه‌نویسی جنریک)
  • ++C طراحی شده‌است تا به برنامه‌نویس امکان انتخاب دهد حتی اگر این انتخاب اشتباه باشد.
  • ++C طراحی شده‌است تا حداکثر تطابق با C وجود داشته باشد و یک انتقال راحت از C را ممکن سازد.
  • ++C از بکاربردن ویژگی‌های خاص که مانع از عمومی شدن است خودداری می‌نماید.
  • ++C از ویژگی‌هایی که بکار برده نمی‌شوند استفاده نمی‌کند.
  • ++C طراحی شده‌است تا بدون یک محیط پیچیده عمل نماید.

[ویرایش] کتابخانه استاندارد

در سال ۱۹۹۸ استاندارد ++C شامل دو بخش هسته زبان و کتابخانه استاندارد ++C است. این کتابخانه شامل بیشتر بخش‌های STL و کتابخانه استاندارد C است. بیشتر کتابخانه‌های ++C در استاندارد وجود ندارند و یا استفاده از تعریف قابلیت پیوند کتابخانه‌ها را می‌توان در زبان‌هایی مانند فرترن، C، پاسکال، بیسیک نوشته شوند. البته با توجه به ویژگی‌های کامپایلر مشخص خواهد شد که کدام زبان را می‌توان استفاده نمود.

کتابخانه استاندارد ++C شامل کتابخانه استاندارد C با یک سری تغییرات برای بهبود عملکرد است. بخش بزرگ بعدی این کتابخانه STL است. STL شامل ابزار بسیار قدرتمندی مانند نگه‌دارنده‌ها (مانند vector و list)، تکرارکننده‌ها (اشاره‌گرهای عمومی شده) برای شبیه‌سازی دسترسی مانند آرایه الگوریتم‌هایی برای جستجو و مرتب‌سازی در آنها وجود دارند. نقشه‌ها (نقشه‌های چندگانه) (آرایه شرکت‌پذیر) و مجموعه‌ها (مجموعه‌های چندگانه) واسط‌های عمومی فراهم می‌سازند. در نتیجه با استفاده از قالب تابع، الگوریتم‌های جنریک با هر نگه‌دارنده و دارای تکرارکننده عمل نماید. همانند C ویژگی‌های کتابخانه را می‌توان با استفاده از شبه دستور include# شامل یک سرآیند استاندارد اضافه نمود. c دارای ۶۹ کتابخانه استاندارد است که ۱۹ تا از آنها نامناسب تشخیص داده شده‌اند.

استفاده از کتابخانه استاندارد - مانند std::vector یا std::string به جای آرایه‌های C- موجب ایجاد برنامه‌های مطمئن‌تر شده‌است.

STL در آغاز محصولی جداگانه از HP و سپس SGL پیش از ادغام در کتابخانه استاندارد ++C بوده‌است. استاندارد عبارت STL را بکار نمی‌برد بلکه آن را بخشی از کتابخانه می‌داند اما مردم هنوز هم آن را برای جداسازی بخش‌های مختلف کتابخانه با این نام بکار می‌برند.(جریان‌های ورودی/خروجی، جهانی‌سازی، تشخیص، زیرمجموعه کتابخانه C)

بیشتر کامپایلرها کتابخانه استاندارد و STL را پیاده‌سازی می‌نماید. پیاده‌سازی‌های مستقلی نیز همانند STLport نیر وجود دارند. پروژه‌های دیگر نیز پیاده‌سازی‌های خود را از STL با توجه به اهداف خود بوجود می‌آورند.

[ویرایش] ویژگی‌های معرفی شده در ++C

در مقایسه با C زبان ++C ویژگی‌های جدیدی را معرفی نموده‌است مانند تعریف متغیر به عنوان عبارت، تغییر نوع‌های همانند تابع، new/delete، نوع داده bool، توابع درون‌خطی، آرگومان پیشفرض، گرانبارسازی عملگر و تابع، فضای نام و عملگر تعیین حوزه ::، کلاس‌ها (شامل تمام ویژگی‌های مربوط به کلاس‌ها همانند وراثت، اعضای تابع، توابع مجازی، کلاس‌های انتزاعی، و سازنده‌ها)، قالب‌ها، پردازش استثنا، کنترل نوع زمان اجرا، عملگرهای سربار شده ورودی (<<) و خروجی (>>).

برخلاف باور عموم ++C نوع داده ثابت را معرفی ننموده‌است. کلمه const کمی پیش از استفاده از این کلمه در ++C توسط زبان C بصورت رسمی بکار گرفته شد.

در بعضی حالات ++C تعداد کنترل نوع بیشتری نسبت به زبان C انجام می‌دهد. (برای اطلاعات بیشتر بخش «ناهماهنگی با C» را در پایین ببینید)

توضیحات با استفاده از // قبل از زبان C در زبان BCPL معرفی شده بود که مجدداً در زبان ++C به کار گرفته شد.

بعضی ویژگی‌های ++C بعدا توسط C به کار گرفته شد مانند نحوه تعریف for، توضیحات به شکل ++C (با استفاده از //)، و کلمه inline با وجود اینکه تعریف این کلمه در C با تعریف آن در زبان ++C هماهنگی ندارد. همچنین در C ویژگی‌هایی معرفی شده‌است که در ++C وجود ندارند مانند ماکروهای قابل تغییر و استفااده بهتر از آرایه‌ها به عنوان آرگومان. بعضی کامپایلرها این ویژگی‌ها را پیاده نموده‌اند اما در بقیه این ویژگی‌ها موجب ناهماهنگی می‌گردد.

[ویرایش] برنامه Hello World

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

#include  // provides std::cout
using namespace std;

int main()
{
cout << "Hello, world!\n"; // prints "Hello, world!"
}

[ویرایش] ویژگی‌های زبان:

[ویرایش] عملگرها:

به بخش عملگرهای سی و سی++ مراجعه نمایید

[ویرایش] پیش پردازنده:

++C بطور عمومی در سه فاز ترجمه می‌گردد: پیش‌پردازنده، ترجمه به کد object، پیوند (که دو مرحله آخر به عنوان عمل کامپایل شناخته می‌شود.) در اولین مرحله در پیش‌پردازنده، شبه‌دستورات پیش‌پردازنده تغییرات لغوی بر روی کد منبع ایجاد می‌نمایند و آن را به به مراحل دیگر تحویل می‌دهند.

شبه دستورات پیش‌پردازنده با استفاده از کاراکتر # قبل از هر گونه فضای خالی آغاز گشته و رشته‌هایی را در کد منبع با فایل یا رشته‌های دیگر با توجه به قوانین تعریف گشته توسط برنامه‌نویس جایگزین می‌نماید. این دستورات معمولاً اعمال زیر را انجام می‌دهند: جایگزینی ماکروها، شمول فایل‌های دیگر (برخلاف ویژگی سطح بالاتر مانند شمول ماجول‌ها/پکیج‌ها/یونیت‌ها/کامپوننت‌ها)، کامپایل شرطی و/یا شمول شرطی. به عنوان مثال:

#include 

که این دستور تمام سمبل‌ها در فایل سرایند کتابخانه استاندارد iostream را در فایل منبع وارد می‌سازد.

کاربرد معمول دیگر به عنوان ماکرو خوانده می‌شود:

#define MY_ASSERT(x) assert(x)

که کد (MY_ASSERT(x را با (assert(x در فایل منبع جایگزین می‌نماید. که این جایگزینی امکان کنترل استفاده از این تابع را در اختیار برنامه‌نویس قرار می‌دهد.

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

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

دستورات پیش‌پردازنده برای کاربردهای عددی نیز به کار می‌رود که هم‌اکنون استفاده از const به جای #define ترجیح داده می‌شود. این کار علاوه بر ایجاد کنترل نوع قوی مانع از گمراهی در فضاهای نام می‌گردد.

هدف کمیته استانداردسازی از بین بردن پیش‌پردازنده‌است اما با توجه به خصوصیت مدولار ++C بعید به نظر می‌آید که این حذف امکان‌پذیر باشد.

[ویرایش] قالب‌ها:

قالب‌ها متفاوت با ماکروها هستند. در حالی که هر دوی این ویژگی‌های زمان کام پایل برای ایجاد کامپایل شرطی استفاده می‌شوند قالب‌ها محدود هب تغییرات لغوی و متنی نیستند. قالب‌ها با آگاهی از معنا و سیستم نوع در زبان استفاده شده و سایر ویژگی‌های زمان کامپایل می‌توانند از عملیات سطح بالا برای کنترل ترتیب اجرا براساس نوع پارامترها استفاده نمایند. ماکروها کنترل خود را بر کامپایل از طریق ویژگی‌های از پیش تعیین شهد انجام می‌دهند ولی قادر به ایجاد انواع جدید و کنترل نوع نیستند و فقط محدود به تغییرات متنی پیش از کامپایل هستند. به زبان دیگر ماکروها کنترل خود را با استفاده از نشانه‌های از پیش تعیین شده انجام می‌دهند اما همانند قالب‌ها نمی‌توانند نشانه‌ها را خود ایجاد نمایند. قالب‌ها ابزاری برای چندریختی ایستا و برنامه‌نویسی جنریک است. مثلاً جایگزین معادل با استفاده از قالب‌ها برای عبارت خطرناک #define max(x,y) ((x)>(y)?(x):(y)) در پایین نشان داده شده‌است.

template <typename T>
const T& max(const T& x, const T& y)
{
return x > y ? x : y;
}

این قالب در سرآیند algorithm تحت عنوان std::max() قابل دسترسی است. معمولاً می‌توان از کلمه کلیدی class بجای typename استفاده کرد.

علاوه بر این قالب‌ها یک ویژگی تورینگ-کامل هستند که به این معناست که هر برنامه قابل محاسبه توسط کامپیوتر را می‌توان با استفاده از فرابرنامه‌نویسی قالب‌ها نوشت.

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

[ویرایش] اشیا

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

[ویرایش] بسته‌بندی:

بسته‌بندی به معنای جمع‌آوری عملیات و داده در یک محل می‌باشد. سی++ بسته‌بندی را با ایجاد امکان تعریف هر کلاس به صورت public، private، protected پیاده‌سازی نموده‌است. اعضای private فقط توسط اعضای کلاس و یا کلاس‌ها دقیقا بیان شده (friend) قابل دسترسی هستند. اعضای protected توسط کلاس‌های ارث برده شده و اعضای کلاس و کلاس‌های friend قابل دسترسی هستند.

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

عموماً توصیه بر این است که تمام اعضا به صورت خصوصی یا حفاظت شده تبدیل گردند و فقط توابعی که باید توسط دیگر کلاس‌ها به عنوان واسط استفاده شوند عمومی باقی بمانند.

[ویرایش] وراثت:

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

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

[ویرایش] چندریختی

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

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

[ویرایش] چندریختی ایستا:

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

[ویرایش] گرانبارسازی تابع

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

[ویرایش] گرانبارسازی عملگر

بطور مشابه گرانبارسازی عملگر امکان استفاده از یک عملگر مشخص می‌شود که عملکرد متفاوتی با توجه به عملوندهای خود دارد. این عملگرهای گرانبار شده موجب فراخوانی تابع مشخصی متناسب با آن موقعیت می‌گردند. گرانبارسازی عملگر ترتیب اجرا یا تعداد عملوندهای یک عملگر را تغییر نمی‌دهد. عملگرهای . :: .* ? نمی‌توانند گرانبار شوند.

[ویرایش] آرگومان پیش‌فرض:

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

// function with default argument but also an overloaded function
int strcpy(char *str1, char *str2, short unsigned n=65535);
// second overloaded function
int strcpy(char *str1, char *str2);

کد بالا در صورت استفاده از یک آرگومان n برای strcpy درست کامپایل می‌گردد اما اگر آرگومانی تعیین نگردد درست عمل نخواهد کرد. چرا که کامپایلر نخواهد دانست که باید از مقدار پیش‌فرض استفاده نماید یا از تابع بدون آرگومان.

[ویرایش] چندریختی:

چندریختی پویا شامل وراثت و توابع مجازی عضو است.

[ویرایش] ساختار برنامه‌ها:

ساختار برنامه‌ها در این زبان بدین صورت است که همانند زبان سی، هر برنامه بایستی یک تابع اصلی (main) به عنوان بدنه برنامه داشته باشد. هر برنامه معمولاً از تعداد زیادی فایل تشکیل می‌شود که به هم الحاق می‌گردند (با دستور include) و به این فایل‌های الحاقی سرآیند (Header) می‌گوییم. فایل‌های الحاقی حاوی کد‌ها یا نسخه‌های اجرایی کلاس‌ها (مجموعه متغیر‌ها و توابع) می‌باشند که در بدنه اصلی برنامه از آنها استفاده می‌شود. معمولاً هر کلاس (که تعریف یک نوع داده‌ای با متد‌های مربوط به آن است) را در یک سرآیند می‌نویسند. هر سرآیند که معمولاً تنها تعاریف (معرفی) کلاس را در خود دارد به همراه فایل‌های پیاده سازی به زبان ++C یا پیاده سازی‌های کامپایل شده (به صورت فایل اشیا مانند dll یا so یا ... ) می‌تواند به کار برده شود. به مجموعه‌های یکپارچه‌ای از کلاس‌های پیاده سازی شده (به صورت فایل‌های سرآیند با پیاده سازی‌های کد یا اشیای زبان ماشین) که برای برنامه نویسی به کار می‌روند، یک کتابخانه ++C گفته می‌شود و قدرت اصلی این زبان در امکان به کارگیری کتابخانه‌های آماده می‌باشد. کتابخانه‌های بزرگ ++C مانند STL، MFC، QT و ... مجموعه قدرتمندی برای تولید برنامه در این زبان ایجاد کرده‌اند.

[ویرایش] محیط‌های برنامه نویسی:

یک برنامه به زبان ++C می‌تواند در محیط‌های ++Turbo C++ ,Borland C++ ,Dev C در ویندوز و GCC در لینوکس نوشته شود. این محیط‌های برنامه‌نویسی، همراه با یک کمپایلر عرضه می‌شوند که کار تبدیل برنامه به فایل اجرایی را راحت می‌کند.

مثال++c

برنامه اي ساده كه با استفاده از كلاسها و توابع In Line و توابع سازنده و مخرب نوشته شده و پس از اجرا دو عدد از وردي گرفته مي شوند و سپس توان آنها محاسبه و در خروجي نمايش داده مي شود.

//programming by A. Najafzadeh
#include
#include
class pow{
double c;
public:
pow(int a , int b)
{ int dd; dd = b; c = 1;
while(dd != 0)
{
c *= a;
dd--;
}
cout< }
~pow(){}
tawan(){}
};
main()
{
int k , l;
cin>>k>>l;
pow pp(k , l);
pp.tawan();
getch();
{

/*مشاهده مي شود كه تابع سازنده pow داراي ورودي است كه آن را از متن برنامه درسافت نموده. اين برنامه با استفاده از تابع In line اتوماتيك نوشته شده.
در توابع in line از حلقه for و همچنين دستور Switch نبايد استفاده نمود. در صورتي كه از دستور goto استفاده شود برنامه ديگر ساخت يافته و يا شي گرا نخواهد بود. */


موضوعات پروژه درس سخت افزار 2 .درخواستي دانشجويان

مقاله12:

موضوعات پروژه درس سخت افزار2

۱-تحليل انواع خانواده هاي  IC ها (RTL و TTL و MOS و CMOS )

۲-بررسي سرعت و توان مصرفي و سطح ولتاژ و FANIN و FANOUT در IC ها

۳-معرفي ميكرو پروسسورها (ريز پردازنده ها) و تاريخچه آنها و بررسي ساختمان داخلي يك ريزپردازنده نمونه

۴-معرفي انواع مختلف CPU و بررسي ويژگي هاي نمونه هاي مختلف CPU و نصب آن

۵-معرفي Mainboard (بورد اصلي) و بررسي ويژگي هاي نمونه هاي مختلف آن و نصب بورد اصلي

 

۶-معرفي حافظه اصلي (RAM,ROM) و بررسي ويژگي هاي نمونه هاي مختلف آن و نصب آنها

 

۷-معرفي كارت گرافيك و بررسي ويژگي هاي نمونه هاي مختلف آن ونصبGraphic Card

 

۸-چگونگي افزايش فضاي حافظه و نحوه آدرس دهي به آن-معرفي Expanded Memory معرفي Cache Memory

 

۹- معرفي منبع تغذيه (Power Suply) و بررسي ويژگي هاي آن و نصب منبع تغذيه -- معرفي Co-Processor ها و نصب آن

 

۱۰- معرفي چاپگر و انواع آن (Matrix , Dot , Thermal , Laser) و بررسي ويژگي هاي نمونه هاي مختلف Printer و نصب آن

 

 ۱۱-معرفي Scanner و بررسي ويژگي هاي نمونه هاي مختلف آن و نصب آن - معرفي Modem و بررسي ويژگي هاي نمونه هاي مختلف آن و نصب آن

 

۱۲- معرفي Monitor و بررسي ويژگي هاي نمونه هاي مختلف آن و نصب آن - معرفي ماوس و بررسي ويژگي هاي نمونه هاي مختلف آن و نصب آن    معرفي Keyboard و بررسي ويژگي هاي نمونه هاي مختلف آن و نصب آن

 

 ۱۳-نصب كارتهاي صوتي و درايور CD --   تعريف پورت (سري و موازي)   --  ديسك گردان ( نرم و سخت و نوري ) و نصب 

 

برنامه اي ساده جهت ايجاد يك فايل در ++C

برنامه اي ساده جهت ايجاد يك فايل در ++C كه نام فايلي كه قرار است ايجاد شود نيز در ابتدا پرسيده مي شود.


//programming by a. najafzadeh    2005/03/30, 07:46:00 ب.ظ
#include
#include
#include
int main()
{
char asd[21] , ddd[21];
cout<<"enter your filename and your file extention.\n";
cin>>asd;
ofstream as(asd , ios::app);
cout<<"enter your comment that you want save in file.\n"; 
cin>>ddd;
as<as.close();
getch();
return 0;
}
پس از اجرا در محلي كه فايل برنامه وجود دارد ، يك فايل با نام وارد شده ايجاد مي گردد كه محتوي آنرا مي توان با استفاده از برنامه NOTE PAD مشاهده كرد.

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

مقاله11:

نحوه تبدیل ویندوز کامپیوتر به یک ویندوز سخنگو:

ابتدا به control panel می رویم و گزینه sound and audio devices را انتخاب می کنیم سپس از میان گزینه های موجود گزینه sound را انتخاب می کنیم درپایین این پنجره گزینه هایی وجود دارند که درمیان آنها گزینه ای با نام program events به چشم می خورد این گزینه شامل صداهای پیشفرض ویندوز است که هنگام رخ دادن انواع اتفاقات در ویندوز شنیده می شوند مثلا صدای خالی شدن سطل آشغال یا صدای بازوبسته شدن پنجره ها یا شروع یا خروج از ویندوز شما می توانید صدای مورد علاقه خود را به جای صداهای پیشفرض ویندوز قرار دهید برای انجام این کار از گزینه browse استفاده کنید و صدای مورد علاقه خود را جایگزین کنید پیشنهاد می کنیم از صدای خودتان استفاده کنید.
توسط یک
headphone صدای خود را ضبط کنید و به جای گزینه های پیشفرض قرار دهید وسپس آن را save نمایید.

توسط: یوسف صحرایی از کردستان

ممنون ازمطلب مفيدتان

مثال++c

چند مثال ساده در زمینه کاربرد توابع در

C++
مثال 1: برنامه ای که دو عدد از ورودی دریافت نموده و با استفاده از یک تابع 
حاصل ضرب را محاسبه و در خروجی نمایش می دهد.
(در این مثال مقداری توسط تابع برگردانده نمی شود)
//programming by a. najafzadeh    2007/08/29, 07:46:00 ب.ظ
//Example 1
#include 
#include

void f1(int a , int b);
main()
{
register int c , p;
cin>>c>>p;
f1(c,p); //function called by value
getch();
}
/*===================================*/
void f1(int a , int b)
{
cout<<(a*b);
}
مثال 2: برنامه ای که سه عدد از ورودی دریافت نموده و با استفاده از یک تابع
بزرگترین عدد را یافته و در خروجی نمایش می دهد.
(در این مثال مقداری توسط تابع برگردانده نمی شود)
//programming by a. najafzadeh    2007/08/29, 07:46:00 ب.ظ
//Example 2
#include 
#include

void mxf(int a, int b, int c);
main()
{
register int d , e , f;
cout<<"please enter 3 numbers";
cin>>d>>e>>f;
mxf(d,e,f);//function called by value
getch();
}
/*===================================*/
void mxf(int a , int b , int c)
{
if(a
a = b;
if(a
a = c;
cout<
}
مثال 3: برنامه ای که با استفاده از یک تابع حروف انگلیسی را از راست به چپ
تایپ می نماید.
(این تابع از نوع بدون ورودی و خروجی می باشد.)
//programming by a. najafzadeh    2007/08/30, 12:07:00 ب.ظ
//Example 2
#include 
#include
#include

void LToR();
int main()
{
LToR();//function called
getch();
return 0;
}
//==================
void LToR()
{
int x=80;
char a;
gotoxy(x,1);
while((a = getch())!= '\r'){
gotoxy(x,1);
putch(a);
x--;
}
}

اهميت فناوري اطلاعات(IT)براي انتقال تكنولوژي وارتباط آن باخلاقيت وتوسعه علم

مقاله10:

اهميت فناوري اطلاعات(IT)براي انتقال تكنولوژي وارتباط آن باخلاقيت وتوسعه علم

چكيده :

تكنولوژي اطلاعات و ارتباطات مجموعه ابزارهاي ،ماشين ها، دانش فني ،روشها و مهارتهاي استفاده از آنها در توليد ،داد ستد ،پردازش ،انباشت ،بازيافت ،جابجايي ،انتقال و مصرف اطلاعات است كه از ساده ترين تا پيچيده ترين و ابتدايي ترين تا پيشرفته ترين مراحل اطلاعاتي را در بر ميگيرد.در واقع تكنولوژي اطلاعات و ارتباطات مي توان نقطه همگرايي الكترونيك ،پردازش داده ها و ارتباطات دور بردانست . اين همگرايي دو جنبه دارد :نخسين از ميان رفتن فاصله ها در نتيجه قرار گرفتن رايانه هاي سابقاّ منزوي از هم در يك شبكه گسترده جهاني و دوم :رايانمند شدن سيستم هاي ارتباطات دوربرد كه موجب ايجاد ظرفيت هاي جديدي براي انتقال صدا و تصوير مي شود . به عبارت ديگر فناوري اطلاعات و ارتباطات شامل مجموعه گوناگون از ابزار هاي تكنولوژيكي و منابع براي ايجاد ، نشر،ذخيره و مديريت داده ها و اطلاعات مي باشد . ابزار سنتي ICT مثل تلويزيون ،راديو وتلفن سودمند يشان را در توسعه مناطق حاشيه اثبات نموده اند . ظهور كامپيوتر ، اينترنت ،تكنولوژي ارتباطات بي سيم در كنار نرم افزار نيرومند براي پردازش و يكپارچه كردن متن ،صدا و تصوير در رسانه الكترونيكي،ICT مدرن را تشكيل مي دهد .به خصوص اينترنت ، اين فرصت را در اختيار پژوهشگران ،كارشناسان آموزش ،هنرمندان . كارگزاران در سراسر جهان گذاشته است كه پرورش يافته ترين ،تخصصي ترين ،كارآمدترين و فعالترين عناصر جامعه روشنفكر ي را كه تا به حال دنيا به خود ديده است پديد آورد و نوعي دانشگاه جهاني است.ظهور فناوريهاي و روشهاي تفكر ،زندگي مارا در خلال سالهاي اخير دگرگون كرده است دور نماي روشني براي ايجاد ارتباط جهاني بين دانشگاهها ،نهاد هاي آموزش عالي و تحقيقاتي ،كتابخانه ها ،آزمايشگاهها و بيمارستان در برابر آدمي گشوده است . اين امر به گسترش آموزش فردي ،يعني آموزش متناسب با نيازهاي فردي و گروهي تبادل آرا و اطلاعات و اجراي طرحهاي مشاركتي ياري رسانده است . چنين فناوريهاي  در عين حال كه اشتغال زا هستند وقوه خلاقيت را در فرد تقويت مي كنند،متاسفانه آثار نامطلوب و ويرانگر هم دارند .بهره گيري از فناوريهاي جديد ،و بهرمند شدن از مزايا و خدمات ارتباط جهاني (اينترنت ،شبكه هاي اطلاع رساني و...)در محيطهاي آموزشي ،مستلزم صرف هزينه هاي با لاي بابت زير بنا، سخت افزار وكارآموزي اينگونه خدمات است .

كليد واژه :

تكنولوژي ،فناوري اطلاعات ، توسعه ، خلاقيت          

 مقدمه:

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

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

انفجار اطلاعات ،عصر فناوري و انقلاب نوين اطلاعاتي تعابيري هستند كه براي توصيف قرن بيستم به خصوص دو دهه اخير به كار مي روند.

 مفهوم فناوري (IT):

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

 تاثير فناوري اطلاعات:

در پي رشد روز افزون و گسترش فناور ي اطلاعات مجموعه اين فناوري ها بر فعاليتهاي نظام اطلاعاتي تاثير زيادي نهاده است . گروهي ،و سيستمهاي پستي و پيام دهنده الكتريكي،از مهمترين جلوه هاي فناوري پيشرفته اطلاعاتي بي شمار مي ايند .تمام فعاليتهاي اطلاعاتي(IT)وابسته دامنه داري پيدا خواهد كرد. در واقع "نظام اطلاعاتي مديران اجراي"عبارتست از كاربرد فناوري اطلاعات (IT)براي تامين نيازهاي اطلاعاتي مديران عالي سازمان . چند نفر به مدد فناوري ارتباطات در نقاط مختلف دنياتشكيل جلسه دادن و به صورت گروهي تصميم گيري ميكنند . مديران مي توتنند بدون صرف وقت وهزينه زيادي براي شركت در گردهمايي هايي از طريق رايانه هاي شخصي در محل كار خود با يكديگر به تبادل نظرات پردازند،اختلاف نظرها را از ميان بردارندو در نتيجه مشارك در تصميم گيري بسيار آسان مي شود .بنابراين نقش فناوري اطلاعات (IT)در فعاليت مديريتي ،آن هم بيشتر در زمينه تصميم گيري نمايان است:

_ مشاركت بيشتر گروههاي ذي نفع در امر تصميم گيري

_ افزايش سرعت و كاهش زمان و جلوگيري از تكرار پيامها

_بهبود در شناساي مسائل و افزايش سرعت در تشخيص آنها.

دليل استفاده از فناوري اطلاعات (IT)براي كشور هاي در حال توسعه:

_ مشاركت در تجارت و توليد جهاني

_ كاهش فقر اطلاعاتي

_ توليد فرهنگ گرايشهاي فناوري اطلاعاتي

 انقلاب تكنولوژي:

بعنوان بخشي از يك انقلاب تكنولوژي وسيع در عرصه اطلاعات و نقش (بالقوه)پتانسيل ICTs   ها    مي توان بهتر درك كرد .

درزير برخي وقايع مهم مرتبط با بحث هستند :

سال 1947: اختراع ترانزيستور و متعاقب آن ساخت كامپيوتر

سال 1959:اختراع مدارهاي مجتمع كه ترانزيستورهاي مختلف را تركيب كرده و تعداد ترانزيستورهايي كه مي توانستند در يك تراشه قرار گيرند افزايش يافت و در عين حال هزينه اين امر كاهش مي يافت .

سال 1972: اولين ريزه پردازنده توليد شد.

و تا كنون :قدرت پردازش به ازاي هر دلار سرمايه گذاري 10000 برابر شده است . هزينه مدارهاي انتقالي نيز با اختراع فيبر نوري و تكنولوژي بي سيم حدود 10000 برابر كاهش يافت .

 بررسي روند توسعه  ارتباطات و قدرت پردازش اطلاعات ممكن است به نظر چندان با بحث هاي مربوط به استراتژي هاي آينده توسعه روستاي مرتبط نباشد . اما درك تغييرات وسيع تكنولوژيكي مي تواند در تدوين استراتژي هاي    آتي مرتبط با موضوع كمك كند . اينترنت نمونه بارزي از تلفيق تكنولوژيهاي ديجيتالي است . در اين تكنولوژي ،قدرت پردازش و ارتباطات تلفيق شده و پذيرش گسترده آن نمايانگر مطلوبيت آن است . با اينحال همچنين در اين مورد كمي اغراق نيز شده است (بزرگنمايي). براي بسياري از مردم ICTs  ها با اينترنت يكي هستند و خطر فرسودگي و خستگي (تكراري شدن )آن وجود دارد . اين بدان معني نسيت كه مردم از كابرد آن دست بر مي دارند بلكه مي بايست به افزايش بيش از حد تجارت و مبادلات بر مبناي دات كام و ريسك هاي آن توجه كرد . از سوي ديگر اينترنت به هيچ عنوان آخرين نقطه و يا مهمترين دستاوردهاي تكنولوژي اطلاعات نيست ،بر اساس قانون موور،قدرت پردازش در هر 18 تا 24 ماه دوبرابر مي شود

 (پروسسورهاي به بازار مي آيند كه قدرت پردازش آنها در طي اين مدت دوبرابر است و اين به معني پيشرفت تكنولوژي توليد ريز پردازنده و نيز كاهش هزينه هاي ناشي از اين پيشرفتها است)و بر اساس قانون گيلدر،در هر شش ماه توان ارتباطي(انتقال داده ها )دو برابر مي شود. بنا براين تحولات و تغييرات در20 سال آينده بيش از هر زمان ديگر بوده و سرعت و حجم اطلاعات قابل مبادله در عين كاهش هزينه ها برطرز غير قابل تصوري افزايش خواهد يافت .

واكنش به اين تغييرات به دو شكل خواهد بود ، اول:پذيرش انفعالي  كاربرد تكنولوژي هاي نوين در شرايطي كه آنها دسترس  قرار گرفته و اين پذيرش از طريق استراتژي هاي كم ريسك صورت گيرد . دوم : پذيرش تكنولوژي ها براي دستيابي به اهداف توسعه و اطمينان از اينكه اين تكنولوژي ها در جهت غير عمومي بكار  مي روند از طريق استراتژي هاي مبتكرانه و فعالانه.البته آسان است كه از يك رهيافت پرواكتيو كه عملا پتانسيل ICTs ها براي توسعه روستاي ارائه نمايد ،دفاع نمايم اما همچنين ضروري است كه موانع موجود بررسي شده و اين مسئله مشخص شود كه اين رهيافت در عمل چگونه كار خواهد كرد .

برخي رهيافتهادر تلاشند كه در زمينه موانع موجود فعاليت كرده و بيشتر در زمينه پتانسيل ICTs  براي توسعه كسب اطلاعات نمايند .

 عوامل تعيين كننده اثر بخشي سيستم هاي اطلاعاتي:

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

كما بيش هر يك از اين عوامل ،مي توانند پيامدهاي منفي به همراه داشته باشند :

الف) عوامل مربوط به سيستم اطلاعاتي:

1- ساختار پيام:

برخي از سوالات مرتبط در اين زمينه عبارتند از :

_ آيا اطلاعات يا محتواي پيام براي مخاطبين آن مفهوم دارد؟

_ آيا درك آنها توسط آنها ممكن است ؟

_ آيا پيام براي آنها جذاب يا مفيد است ؟

در صورتيكه محتواي پيام پيچده باشد و يا كاربرد علمي براي مخاطبين نداشته باشد ،بديهي است كه مشكلاتي بروز خواهد كرد.

ب)عوامل مربوط به تكنولوژي:

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

· تكنولوژي منتقل شده به دلايلي چون دشواري و پيچيدگي كاربرد نياز به آموزشهاي ويژه دارد .

· كاربرد آن تكنولوژي مستلزم ريسك با لا است .

· تكنولوژي توصيه شده گران است و اين امر بويژه در شرايطي كه امكانات اعتباري به راحتي در دسترس نباشد مصداق دارد .

· ساير امكانات مورد نياز در مكان و زمان خاص خود در دسترس نيستند .

· فقدان تسهيلات و امكاناتي چون ترابري و ... پذيرش را محدود مي نمايد .

 رهبران سيستم:

 سوالات مربوط بااين موضوع عبارتند از :

_ آيا اشخاص مسئول آماده سازي مجموعه هاي اطلاعاتي با جنبه هاي فرهنگي و اجتماعي جمعيت هدف آشنا يي دارند؟

_ آيا آنها نياز هاي اولويت دار گروهاي هدف را مي شناسند؟

_ آيا آنها در زمينه ابعاد سخت افزاري رسانه هاي ارتباطي مورد كاربرد به خوبي آموزش ديده اند ؟

_ آيا آنهامناسب ترين رسانه ارتباطي را انتخاب كرده اند؟

_ آيا آنها آموزشهاي لازم براي پيگيري اثرات فعاليتها مانند ملاقات مخاطبين در مكانهاي هدف را گذرانده اند ؟

 ميزان دخالت عوامل انساني:

عامل مهم ديگر،ميزان دخالت عامل انساني در فرايند دريافت و ارسال اطلاعات است.

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

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

 انواع رهيافتها در استفاده از تكنولوژي هاي انعطاف پذير (قابليت كاربرد چند جانبه ):

در اين زمينه برخي رهيافتهاي اخير مبتكرانه و موفق بوده اند . چهارنوع رهيافت گوناگون در اين زمينه براي درگ گوناگون آنها و نيز چگونه در آينده مي توانند مورد استفاده قرار گيرند شامل مارد زير باشد:

1- منفعت بخشي به فقيران:

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

2-  توسعه بازار

3- كاتاليست اطلاعات (تسريع كننده اطلاع رساني ):

بنياد MSSRF در ايالت تاميل نادوي هند ،تجربياتي در زمينه كاربرد ICTs به عنوان تسهيل كننده توسعه در جوامع روتاي فقير دارد . روستاهاي الكترونيكي اين بنياد ، رهايافتي نوين براي توانمندي سازي افراد از طريق افزايش دسترسي به اطلاعات  ارائه نمود . پايانه هاي كامپيوتر (بيش از تلفن همراه) به همراه بانك و مجموعه هاي اطلاعاتي مفيد در زمينه سرويس دهي به روستائيان مجهز باشند. از ده روستا خواسته شد تا ساختماني براي دسترسي عمومي به كامپيوتر در اختيار گذاشته و نيز  تعدادي داوطلب براي اداره مراكز روستايي مزبور انتخاب شدن در هر مورد از زنان خواسته شد تا نحوه كاربر از مراكز مزبور را فراگرفته و به ديگر زنان آموزش دهند . از طريق يك هاپ مركزي كه در نزديك ترين شهر ((Vilanur )) قرار دارد . اطلاعات و نشريات روزانه به اين مراكز انتقال داده مي شود اين هاپ به وسيله كارشناسان  اي تي مديريت شده و مسئول پاسخگويي به نيازهايي اطلاعاتي و آموزشي روستائان مزبور نيز مي باشد . دوره هاي آموزشي براي حدود 25 نفر در محل اين هاپ وبراي تعداد بيشتر... بولتن اخبارهاي روزانه از طريق ايمل براي روستائيان مزبور ارسال مي شد كه در آنها خلاصه اي از اخبار مهم از روزنامه هاي محلي گزارش هاي قيمت ها (كه بطور روزانه از بازار محلي جمع آوري مي شود) و وضعيت اب و هوا ي آمده است .همزمان با توسعه روستاي الكترونيكي مزبور روشها و تكنولوژي هاي جديد ي مانند استفاده از انرژي خورشيدي (براي همزمان برق ) و شبكه هاي گسترده براي حداقل كردن هزينه هاي براي روستا بكار گرفته شده است . در حاضر اين طرح ها از طريق بنياد مزبور حمايت مالي مي شوند ولي انتظار مي رود كه روستهاي مزبور بزودي خود اتكا شوند . بنابراي اگر روستاهاي بيشتري به هاپ متصل شوند سهم هزينه اي هر كدام كاهش مي يابد. با اينحال اين امر به طور نسبي رهايافت كم هزينه اي براي بهبود دسترسي به اطلاعات براي جوامعي است كه نه تنها به لحاظ جغرافيايي بلكه به لحاظ اجتماعي جدا افتاده محسوب مي شوند . در مقايسه به مدلها و روشهاي مبتني بر مراكز تلفن ، نقاط دسترسي كامپيوتر و روستاهاي الكترونيكي سروسيهاي متناسب تر و كم هزينه تري  ارائه مي نمايند . توجه و نكته اصلي در رهيافت يا مفهوم روستا ي الكترونيكي ،توان سازي روستائيان در دسترسي به اطلاعاتي است كه براي زندگي روزمره آنها مفيد بوده و يا كمك به يافتن  فرصتهاي در آمد زايي بيشتر براي آنها است .

بانكهاي اطلاعاتي پايه و بولتن هاي روزانه بعنوان تسريع كننده كاهش وضعيت جدا افتادگي و گسترش اطلاعات عمومي به آنهايي كه به آن نياز بيشتر دارندعمل مي كنند. نحوه كاربرد بعدي اطلاعات و منافع حاصل از آن بين روستائيان و افراد مختلف تفاوت داشته و درخواست و اعلام نياز به اطلاعات بيشتر از هاپ و يا از طريق كانالها و مكانيزمهاي ديگري قابل انجام است . بنابراين بانك اطلاعات روستائيان با قابليت دريافت و ارائه دامنه وسيعي از اطلاعات مورد استفاده در جوامع روستايي طراحي شده است . مراكز روستايي شايد دو تلفيق ICTs با منابع خارجي اطلاعات نقش و اهميت بيشري داشته باشند.

بنياد MSSRF بر اين باور است كه در حالي كه ضمن اينكه شكاف اطلاعاتي آشكار ي وجود دارد كه مي تواند پر شود (مانند اخباز روزانه و قيمت باز ارها )استفاده از پتانسيل هاي بيشتر و كامل ICTs در جوامع روستايي مستلزم پذيرش بيشتر و همخواني آن با خود جوامع است . اين فرآيند همخواني و پذيرش (تلفيق )نبايستي بصورت  تاخير در كاربردي سازي و انتفاع از انقلاب اطلاعاتي باشد بلكه مي بايست به صورت مانعي در نظر گرفته شود كه مي بايد رفع شود و نيز بيش از آن بعنوان فرايند توسعه مثبتي است كه بازتاب نوعي كنترل از سوي جامعه مي باشد.

روستائيان اغلب كاربردي  بيش از مقاصد اوليه را براي اطلاعات كشف مي كنند بعنوان مثال ،قيمتهاي محصولات كشاورزي جمع آوري شده و به روستا ها ارسال مي شود با اين فرض كه كشاورزان با اطلاع از آنها معامله بهتري با واسطه هايي كه در فصل برداشت به روستا مي آيند خواهند داشت .اين اطلاعات همچنين برا ي كارگران با اطلاع از قيمتها بهتر مي توانند ميزان محصولات (برنج)دريافتي خود را ارزش گذاري نمايند . بنابراين دسترسي به اطلاعات در اينجا به عنوان تسهيل كننده اي براي توانمندشدن افراد است . فرايند توانمند سازي و ميزان تحققان بستگي به اين دارد كه افراد چگونه از اطلاعات در دسترس خود استفاده كنند .ICTs  مي تواند اطلاعات بيشتري در دسترس افراد دهند اما اين برعهده افراد است كه اطلاعات مربوط و مفيد براي خود را انتخاب نمايند و يا براي اطلاعات مفيد در خواست كنند .

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

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

پتانسيلICTs در استراتژي هاي توسعه روستايي آينده بنابراين تنها ارائه اطلاعات مرتبط با جوامع روستايي نيست بلكه همچنين توانا سازي آنها در انتخاب و تقاضا  براي اطلاعات مورد نظرشان نيز مي باشد.

4- دسترسي به نواحي دور افتاده:

شركت Worldspace يك سرويس راديويي ديجيتالي ماهواره اي ايجاد كرده است كه قادر است بيش ار 4 ميليارد نفر مردم در آسيا ،افريقا ، خاورميانه و اروپا را تحت پوشش قرار دهد . اين سرويس شامل تعدادي كانال هاي انحصاري Worldspace براي مخاطبين محلي و منطقه اي است اين سرويس ها براي نواحي روستايي امكان انتخاب  كانالهاي بسياري بيشتر نسبت به وضعيت موجود ايجاد مي نمايند و نيز انواع رسيورهاي مختلف نيز در اين زمينه عرضه شده است. اين شركت همچنين برخي سرويسهاي ديگردر راستاي اهداف توسعه در نواحي تحت پوشش خود ارائه مي نمايد. يك برنامه آموزشي از راه دور، برنامه هاي آموزشي پخش خواهد كرده و نيز كيوسك هاي سيار ارتباطات تلفني در سراسر آفريقا بطور سيار قرار مي گيرد و انواع سرويسهاي مرتبط با تكنولوژي هاي اطلاعاتي و ارتباطي مانند راديو Worldspace تلفن ، اينترنت ، تلفن ماهواره اي ، جستجو در وب و پخش محلي برنامه هاي راديويي را ارائه مي نمايد . گيرنده هاي (رسيورهاي)Worldspace همچنين مي توانند به كامپيو ترهاي شخصي متصل شده و محتواي ديجيتالي از اينترنت مستقيما بدون نياز به خط تلفن دريافت شود. در اين زمينه امكان دريافت اطلاعات متنوعي بصورت روزانه از منابع مختلف وجود دارد . آموزش از راه دور نيز مي توانند از اين امكانات براي دريافت مواد آموزش و اسلايدها براي نمايش در كلاسها استفاده نمايند . استفاده از پتانسيل اين تكنولوژي هاي براي كاربردي آموزشي در مقايس وسيع و در نواحي دور افتاده سراسر جهان چيزي است از Worldspace به طور جدي دنبال مي نمايد. مهمترين مشكل فعلي در اين زمينه دسترسي به رسيورهاي ديجيتالي Worldspaceدر مناطق مختلف است كه البته اين مشكل در زمينه تمامي تكنولوژي هاي اطلاعاتي و ارتباط وجود دارد كه اغلب هزينه هاي بالاتري نيز دارند  . مهمترين تفاوت اين است كه Worldspace مي تواند اين سرويسها را با هزينه بسيار پائين و در هر زمان در دور افتاده ترين مناطق نيز ارائه نمايد. در حالي كه بحث و چانه زني هاي فراواني در سطح جهان در زمينه سياستهاي كلان ارتباطات تلفني و مسائل مالي آن وجود دارد ،راديوي ديجيتالي مي تواند بسياري از سرويسهاي مورد نياز براي توسعه روستايي را فراهم نمايد.

 چالشهاي عمده سيستم هاي اطلاعاتي(انتقال تكنولوژي):

چالشهاي درون بخشي:

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

1- گسترش و حجم وظايف

2-  وابستگي به سياستهاي كلان وكاركرد نهاد هاي ديگر

3- وابستگي مستقيم به مراكز توليد دانش و اطلاعات

4- عدم پايداري مالي برنامه هاي توسعه

5- سازماندهي اطلاعات ودانش

نهاد ها و سياستهاي ترويجي مي بايست پويايي لازم براي بهبود مداوم توانايي خود در جهت مواجهه با مسائل ذكر شده را براي دستيابي به آن فناوري اطلاعات را داشته باشند كه بتواند پاسخگوي الگوهاي جديد تقاضا ،كاهش فقر ،حفاظت وبهبود منافع اكولوژيك و مسائل مرتبط با آنها باشد .

 چالشهاي برون بخشي:

پديده جهاني شدن:

1- جهاني شدن سيستم ها و روش هاي توليد

2-  جهاني شدن بازارهاي نهاده ها و محصولات (جهاني شدن اقتصاد)

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

 فناوري اطلاعات (IT)در بازده يادگيري:

با بهره گيري از فناوري اطلاعات(IT)آموزش گيران قادر خواهند شدتا اطلاعات بيشتري را در مدت زمان كوتاهتري جذب كنند. پروژه هاي مطالعاتي در زمينه تاثير تكنولوژي اطلاعات بر يادگيري بيانگر اين واقعيت است كه از زمان ورود  اين فناوري به حوزه آموزش ،انگيزه افراد در فراگيري افزايش يافته است . در برخي زمينه ها و براي افرادي كه قبلا به طور مستمر ،در زمينه يادگيري شكست خورده و ناكام بوده اند ،اين معنا مي تواند باب جديدي را بگشايد.تحقيقات نشان مي دهد كه با ورد IT در مجموع آموزش گيران مي توانند مولد تر ،پر جرات تر ،چالش پذير تر و مطمئنتر از قبل باشد .

 راهكارهاي توسعه:

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

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

 راهكارهاي علمي در زمينه پيشرفت علم فناوري:

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

1)جذابيت كشور هاي پيشرفته براي افراد بسياري آموزش ديده و متخصص.

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

علم و فناوري را يك ضرورت دانست و به مشابه سرمايه گذاري تلقي كرد كه نياز به تجارب فني و حرفه اي بسيار زيادي براي تنظيم و به اجراي سياست هايي دارند كه هدفشان توسعه استعداد هاي علم و فناوري است .

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

 نتيجه گيري و پيشنهاد:

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

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

به اين ترتيب اميد مي رود كه در عصر انفلاب اطلاعات ،شاهد تكرار تاريخ و فاصله گرفتن بيشتر كشور هاي غني و فقير نباشيم .

 منابع :

1- مشبكي ،اصغر . تميموري نژاد،كاوه .(1378) رويكرد راهبردي و عملياتي به مديريت تحول سازمان،مديريت نوآوري و طراحي،ناشر :هيئت تهران

2- مهدوي ،محمد تقي . عوامل موثر در توسعه تكنولوژي ،تهران :پژوهشكده مطالعات و تحقيقات فناوري 1373

3-  شهرياري،زهرا جولابادي،زهرا . فن آوري هاي اطلاعات 1383

4- جبيبي فرد پور،الهام _پاكدامن ،مونا . اهميت فناوري در توسعه علم 1383

7-www.enrarta.msn.com

8-www.iicd.org/stories

9- www.peoplink.org

++C

به نام نور

باعرض سلام خدمت دوست ورفيق بسيارخوبم آقاي فريدغلامي

فريدجان آدرس يك وبلاگ درزمينه آموزش++Cرادرقسمت

پيوندهاي روزانه برايتان لينك كردم

مطالب خوبي دارد

بازهم جزوه هاي آموزشي ومطالب آموزشي برايتان مي گذارم.

اردتمندتان روح الله

معرفی اوليه   VB.NET ومراحل نصب برنامه:

مقاله9 :

VB.NET ومراحل نصب برنامه:

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

VB.NET يکی از زبان های  حمايت شده در دات نت می باشد . با استفاده از زبان فوق علاوه بر اينکه می توان برنامه های مبتنی بر ويندوز را پياده سازی نمود ، امکان استفاده از آن بعنوان زبان مورد نظر در زمان ايجاد برنامه های مبتنی بر وب که از تکنولوژی ASP.NET استفاده می نمايند ، نيز وجود خواهد داشت .. در اولين بخش از اين مقاله به معرفی اوليه VB.NET خواهيم پرداخت . در ابتدا لازم است با  ويژگی های منحصر بفرد برنامه های مبتنی بر ويندوز در قياس با برنامه های مبتنی بر DOS ، آشنا شده و پس از مروری مختصر به روند شکل گيری نسخه های متعدد ويژوال بيسيک ، با نحوه نصب آن نيز آشنا شويم .

برنامه نويسی مبتنی بر DOS در مقابل ويندوز

برنامه نويسی مبتنی بر  ويندوز دارای تفاوت های عمده ای نسبت به برنامه نويسی سنتی در محيط DOS است.برنامه های  DOS ،  مسيری دقيق و مشخص  را ازابتدا تا پايان دنبال می نمايند . رويکرد فوق ، باعث بروز محدوديت هائی در رابطه با عملکرد برنامه ها  از يکطرف و تحميل محدوديت هائی به کاربران در طی نمودن مسير مشخص شده ، می گردد. از زاويه ای خاص می توان عملکرد  يک برنامه مبتنی بر  DOS را  مشابه قدم زدن در يک راهرو ( سالن )، در نظر گرفت . بمنظور رسيدن به نقطه انتهائی سالن ،  می بايست طول سالن  طی تا به انتهای آن رسيد . در اين راستا از موانع متعدد موجود در مسير ، می بايست عبور تا سرانجام به مقصد مورد نظر رسيد . در زمان پيمودن مسير ، صرفا"   امکان بازنمودن درب های خاصی  ، وجود خواهد داشت . ويندوز ، دنيای جديدی از برنامه نويسی مبتنی بر "رويداد"  را ايجاد نموده است . کليک نمودن موس ، تغيير اندازه پنجره ، تغيير محتويات يک  Textbox ، نمونه هائی از يک "رويداد" می باشند. کدهای  نوشته شده ، نحوه برخورد با يک رويداد را مشخص می نمايد.  برای رسيدن به انتهای يک سالن کافی است بر روی "انتهای سالن " ، کليک نمود و ديگر ضرورتی به پيمودن تمامی مسير تا رسيدن به انتهای سالن نخواهد بود . درصورتيکه به انتهای سالن رسيده باشيم و متوجه گرديم که اين مکان ، محلی نيست که انتظار آن را داشته ايم ، بسادگی می توان مقصد جديدی را برای خود انتخاب ، بدون اينکه ضرورتی به برگشت در نقطه آغازين مسير وجود داشته باشد. برنامه نوشته شده عکس العمل های لازم در ارتباط با حرکت شما  را بهمراه عمليات مربوطه بمنظور تکميل فعاليت ها ی مورد نظر انجام خواهد داد .  با استفاده از VB.NET ، می توان کدهای لازم بمنظور ارائه عکس العمل لازم در زمان تحقق يک رويداد را نوشت .در اين راستا ، برنامه نويسان می توانند  کدهای لازم  در رابطه با رويدادهائی که امکان  تحقق آنها وجود دارد را نوشته تا در زمان بروز رويداد مورد نظر ، عکس العمل لازم از طرف برنامه صورت پذيرد.در اين زمينه می توان از نوشتن کدهای ديگر بمنظور برخورد با رويدادهای غيرضروری ، صرفنظر کرد. مثلا" ويندوز قادر به تشخيص رويداد"کليک " از "کليک مضاعف " است . اين بدان معنی است که اگر می خواهيد برنامه مورد نظر شما ،عکس العمل لازم در ارتباط با رويداد  "کليک" را داشته باشد ، می بايست صرفا" کد مربوط به رويداد " کليک"،  نوشته گردد و الزامی به نوشتن کدهای  لازم بمنظور برخورد با رويداد  "کليک مضاعف" ، وجود نخواهد داشت . در دنيای برنامه نويسی DOS ، کاربر عکس العمل لازم را نسبت به برنامه انجام می دهد در صورتيکه در ويندوز ، برنامه ها عکس العمل لازم را با توجه به رفتار کاربران ، انجام خواهند داد .

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

روتين های عمومی اصطلاحا" Windows (API ) Application Programming Interface ناميده می شوند .

 تاريخچه ويژوال بيسيک

قبل از معرفی ويژوال بيسيک در سال 1991 ، پياده کنندگان نرم افزار مجبور به تسلط و مهارت در زمينه  استفاده از   ++C   بهمراه  موارد پيچيده ای در اين خصوص  بودند . بدين  ترتيب ، صرفا" افراد خاص آموزش ديده،  قادر به خلق نرم افزارهای قدرتمند  بمنظور اجراء در محيط ويندوز بودند. ويژوال بيسيک ، محدوديت فوق را تغيير و می توان اين ادعا را داشت که امروزه خطوط زيادی از برنامه های نوشته شده  با استفاده از ويژوال بيسيک کد شده است . ويژوال بيسيک ، ظاهر برنامه نويسی تحت ويندوز را با حذف عمليات اضافی برای نوشتن کدهای لازم جهت طراحی بخش رابط کاربر (UI) ، تغيير داده است . در اين راستا ،  زمانيکه بخش رابط کاربر ، ترسيم می گردد ، برنامه نويس می تواند کدهای لازم بمنظور انجام عکس العمل مناسب در رابطه با رويداد ها را به آن اضافه نمايد . زمانيکه ماکروسافت نسخه شماره سه ويژوال بيسيک را ارائه نمود ، مجددا" دنيای برنامه نويسی با تغيير مهمی مواجه گرديد. در اين راستا امکانات مناسبی برای نوشتن برنامه های مبتنی بر بانک های  اطلاعاتی ، در اختيار برنامه نويسان قرار گرفت. ماکروسافت بدين منظور محصول جديدی با نام( DAO )Data Access Objects را ارائه نمود . برنامه نويسان با استفاده از DAO ، امکان انجام عمليات متفاوت در رابطه با داده ها را ، بدست آوردند . نسخه های شماره چهار و پنج ، قابليت های نسخه سه را افزايش و اين امکان را  برای  پياده کنندگان نرم افزار فراهم نمود  تا برنامه های خود را جهت اجراء در محيط ويندوز 95 ، طراحی و پياده سازی نمايند . در اين زمينه ، برنامه نويسان قادر به نوشتن  کدهائی گرديدند که امکان استفاده از آنان  توسط ساير پياده کنندگان نرم افزار که از زبانی ديگر استفاده می کردند، فراهم گرديد. نسخه شماره شش ويژوال بيسيک ، روش جديدی بمنظور دستيابی به بانک های اطلاعاتی را ارائه نمود: ADO)ActiveX Data Objects )  . يکی از اهداف اوليه  طراحی  ADO ، امکان دستيابی به بانک های اطلاعاتی برای پياده کنندگان برنامه های مبتنی بر وب است که از تکنولوژی ASP ، استفاده می نمايند.

همزمان با ارائه جديدترين نسخه ويژوال بيسيک که VB.NET ناميده می شود ، بسياری از محدوديت های مرتبط با ويژوال بيسيک برطرف گرديد . در گذشته  ويژوال بيسيک با انتفادات  فراوان مواجه ( عدم وجود امکانات مناسب در مقايسه با جاوا و يا ++C ) و بسياری آن را نظير يک اسباب بازی در دنيای وسيع زبان های برنامه نويسی می پنداشتند. VB.NET با  غلبه بر مشکلات نسخه های پيشين ، توانسته است در مدت زمان کوتاهی ، بعنوان يک ابزار پياده سازی بسيار قدرتمند مطرح و گزينه ای مناسب برای برنامه نويسان در تمامی سطوح باشد .

نصب VB.NET

برای نصب VB.NET ، از دو رويکرد متفاوت می توان استفاده کرد :

·         نصب بهمراه  ويژوال استوديو دات نت

·         نصب نسخه استاندارد

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

·         مرحله اول : برنامه Setup.exe را از روی CD مربوطه فعال نمائيد.

·         مرحله دوم : جعبه محاوره ای ، مراحل و اولويت های عمليات  نصب را نشان خواهد داد. بمنظور صحت عملکرد  VB.NET ، چندين Component نصب و يا بهنگام خواهند شد . اولين مرحله نصب، بهنگام سازی عناصر (Components) است . بر روی گزينه Windows Component Update ، کليک نمائيد.

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

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

·         مرحله پنجم : در اين مرحله با فشردن دکمه ! Install Now  ، بهنگام سازی عناصر (Components) آغاز می گردد . با اتمام هر يک از آيتم ها يک Check mark بمنزله اتمام مرحله مربوطه نشان داده می شود  . در مقابل عنصر جاری برای بهنگام سازی نيز يک فلش قرمز رنگ نسان داده می شود.

·         مرحله ششم : پس از بهنگام سازی عناصر ، مجددا" به صفحه اصلی Setup مراجعت و امکان نصب ويژوال استوديو دات نت فراهم می گردد.( کليک نمودن برروی گزينه Visiual Studio.NET )

نکته : در صورتيکه قصد داريد که از طريق ماشين فوق ، يک برنامه تحت وب پياده سازی نمائيد ، لازم است IIS و FrontPage Extensions  قبلا" نصب شده باشد( بصورت پيش فرض در زمان نصب ويندوز 2000 نصب خواهد شد ) در صورتيکه ويژوال استوديو دات نت ، بر روی کامپيوتری نصب می گردد که دارای سيستم عامل ويندوز 2000 نسخه Professional  است ، با يک پيام خطاء مواجه خواهيم شد( عدم وجود عناصر لازم ) با فشردن دکمه Install Component ، عمليات نصب IIS و Frontpage Extensions انجام خواهد شد . در صورتيکه دکمه Continue ، انتخاب گردد ، در آينده نمی توانيد برنامه های تحت وب را بصورت محلی بر روی کامپيوتر خود پياده سازی نمائيد .

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

بخش Feature Properties . فايل ها ی مورد نظر برای نصب و ميزان فضای مورد نياز را نشان می دهد .

بخش Feature description . هر Feature چيست و چه عملياتی را انجام می دهد .

بخش Space Allocation ، وضعيت  فضای ذخيره سازی هارد را  با توجه به گزينه های انتخاب شده ، نشان خواهد داد .

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

·         مرحله هشتم : ويژوال استوديو دات نت ، شامل مجموعه ای گسترده از فايل های مستندات ( راهنما )  است . در اين مرحله می توان تنظيمات لازم در خصوص اجرای مستندات از طريق CD و يا دايرکتوری نصب شده بر روی هارد را انجام داد . در اين زمينه می توان يک مسير بر روی هارد را مشخص تا مستندات نصب و يا گزينه Run From Source را انتخاب تا بر اساس آن مستندات همچنان بر روی CD باقی بمانند .

·         مرحله نهم : پس از انتخاب عناصر مورد نظر برای  نصب  ، با فشردن دکمه ! Install Now ، عمليات نصب آغاز می گردد . مدت زمان نصب ، بستگی به موارد انتخابی  و نوع سيستم دارد . مثلا"  نصب تمام ويژوال استوديو دات نت بهمراه تمامی مستندات بر روی يک ماشين با دارا بودن 256 مگابايت حافظه اصلی، سرعت  650 مگاهرتز و دوازده گيگابايـت هارد ديسک  ،  حدود يک ساعت طول خواهد کشيد .

·         مرحله دهم : پس از اتمام مرحله قبل ، با انتخاب گزينه Service Release ، بررسی لازم در خصوص بهنگام سازی  انجام می گيرد . اين عمليات از طريق اينترنت انجام خواهد شد . در اين زمينه به يک خط پرسرعت و مطمئن نياز خواهد بود .

عيد

                         عـــطـــرنرگـــس، رقــص باد

                                                                                نغمه شوق پرستوهاي شاد

                         خلوت گرم كبوترهاي مست

                                                                                  نرم،نرمك ميرسداينك بهار

خوش به حال روزگار

عيدبرعاشقان مبارك.

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

شهادت حضرت علي (ع)

شهادت حضرت علي (ع)

شهادت حضرت علي

به نام نور

كوفه امشب التهاب محشر است

كوفه امشب كربلايي ديگر است

جبرئيل آواي غم سرداده است

درفلك شوري دگر افتاده است

تيرغصه بردل زارم نشست

تيغ دشمن فرق مولايم شكست

قلب مجنون سوي صحرا ميرود

حيدر امشب سوي زهرا ميرود.

شهادت مولل موحدين حضرت علي (ع)رابه تمام مسلمين جهان

وشمابازديد كننده عزيز وخانواده محترمتان تسليت

عرض ميكنم.

                                             باتشكر

                                            مديريت وبلاگ

ميلادامام علي

ميلاد امام علي(ع) وروز پدربرهمه شيعيان وپدران بزرگ وزحمت كشمان

مخصوصا ً پدرخودم مبارك باد

ميلادامام علي

شهادت حضرت فاطمه (س) برشمابازديد كننده عزيز تسليت باد

باتشكر

مديريت وبلاگ 

ميلاد حضرت زينب (س) برتمام مسلمين جهان مبارك باد

مقاله۸:

طراحی VLAN : مفاهيم اوليه

 Virtual Local Area Networks)  VLAN) ، يکی از فن آوری های پيشرفته در شبکه های کامپيوتری است که اخيرا" با توجه به ويژگی های منحصربفرد خود توانسته است در کانون توجه طراحان و پياده کنندگان شبکه های کامپيوتری قرار بگيرد ( منبع  : VLAN چيست ؟  ) .
طراحی و پياده سازی  يک شبکه کامپيوتری کار ساده ای نمی باشد و  شبکه های VLAN نيز از اين قاعده مستثنی نخواهند بود ، چراکه در اين نوع شبکه ها مجموعه ای متنوع از پروتکل ها به منظور نگهداری و مديريت شبکه بکار گرفته می شود .
در اين مطلب قصد نداريم به نحوه پيکربندی يک شبکه VLAN  اشاره نمائيم ( در مطالب جداگانه ای به اين موضوع خواهيم پرداخت ) . در ابتدا لازم است به طرح های فيزيکی متفاوت VLAN و مفاهيم اوليه آن اشاره ای داشته باشيم تا از اين رهگذر با مزايا و دستاوردهای اين نوع شبکه ها بيشتر آشنا شويم .
بخاطر داشته باشيد که برای طراحی و پياده سازی شبکه های کامپيوتری که هر يک دارای منابع و ملزومات مختص به خود می باشند ، فنآوری های متفاوتی در دسترس می باشد  و مهم اين است که بتوان با بررسی کارشناسی بهترين گزينه در اين رابطه را  استفاده نمود .

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

·         سازمان فرضی دارای چهل دستگاه ايستگاه کاری و پنج سرويس دهنده است .

·         در سازمان فرضی دپارتمان های متفاوتی با وظايف تعريف شده ، وجود دارد : دپارتمان مديريت ، دپارتمان حسابداری ، دپارتمان فنآوری اطلاعات 

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

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

ويژگی های سناريوی اول :

·         به هر دپارتمان يک شبکه خاص نسبت داده شده است .

·         در هر طبقه از يک سوئيچ اختصاصی برای هر يک از شبکه های موجود ، استفاده شده است .

·         مهمترين دستاورد مدل فوق ، افزايش امنيت شبکه است چراکه شبکه های فيزيکی عملا" از يکديگر جدا شده اند .

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

·         روتر مسئوليت پيچيده کنترل دستيابی و روتينگ بين شبکه ها و سرويس دهنده ها را با استفاده از ليست های دستيابی بر عهده خواهد داشت.

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

سناريوی دوم : استفاده از VLAN
در اين مدل ، طراحی شبکه با در نظر گرفتن فنآوری VLAN به صورت زير ارائه شده است : 

ويژگی های سناريوی دوم :

·         در هر طبقه  از يک سوئيچ استفاده شده است که مستقيما" به ستون فقرات شبکه متصل می گردد.

·         سوئيچ های استفاده شده در اين سناريو دارای ويژگی VLAN بوده و بگونه ای پيکربندی می گردند که سه شبکه فيزيکی و منطقی جداگانه را حمايت نمايند .

·         در مقابل روتر در سناريوی قبل از يک سوئيچ لايه سوم ، استفاده شده است . سوئيچ های فوق بسيار هوشنمند بوده و  نسبت به ترافيک لايه سوم ( لايه IP ) آگاهی لازم را دارند .

·         با استفاده از يک سوئيچ ، می توان ليست های دستيابی را به منظور محدوديت دستيابی بين شبکه ها تعريف نمود . دقيقا" مشابه عملياتی که با استفاده از روتر در سناريوی قبلی انجام می گردد ( روتينگ بسته های اطلاعاتی از يک شبکه منطقی به شبکه منطقی ديگر ) . سوئيچ های لايه سوم ، ترکيبی از يک سوئيچ قدرتمند و يک روتر از قبل تعبيه شده می باشند .

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

 VLAN چيست ؟
 Virtual Local Area Networks)  VLAN) ، يکی از جديدترين و  جالبترين تکنولوژی های شبکه است که اخيرا" مورد توجه بيشتری قرار گرفته است . رشد بدون وقفه شبکه های LAN و ضرورت کاهش هزينه ها برای تجهيزات گرانقيمت بدون از دست دادن کارآئی و امنيت ، اهميت و ضرورت توجه بيشتر به VLAN را مضاعف نموده است .

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

همانگونه که در شکل فوق مشاهده می نمائيد ، به يک سوئيچ ، سه ايستگاه متصل شده است . ايستگاههای فوق قادر به ارتباط با يکديگر بوده و هر يک به عنوان عضوی از يک  Broadcast domain مشابه می باشند. بدين ترتيب ، در صورتی که ايستگاهی يک پيام broadcast را ارسال نمايد ، ساير ايستگاههای متصل شده به سوئيچ نيز آن را دريافت خواهند داشت.
در يک شبکه کوچک ، وجود پيام های Broadcast نمی تواند مشکل و يا مسئله قابل توجهی را ايجاد نمايد، ولی در صورت رشد شبکه ، وجود پيام های braodcast می تواند به يک مشکل اساسی و مهم تبديل گردد . در چنين مواردی و در اغلب مواقع ، سيلابی از اطلاعات بی ارزش بر روی شبکه در حال جابجائی بوده و عملا" از پهنای باند شبکه،استفاده مطلوب نخواهد شد. تمامی ايستگاههای متصل شده به يک سوئيچ ، پيام های Braodcast را دريافت می نمايند . چراکه تمامی آنان بخشی از يک Broadcast doamin مشابه می باشند .
در صورت افزايش تعداد سوئيچ ها و ايستگاهها در يک شبکه ، مشکل اشاره شده ملموس تر خواهد بود .همواره احتمال وجود پيام های Braodcast  در يک شبکه وجود خواهد داشت .
يکی ديگر از مسائل مهم ، موضوع امنيت است . در شبکه هائی که با استفاده از سوئيچ ايجاد می گردند ، هر يک از کاربران شبکه قادر به مشاهده تمامی دستگاههای موجود در شبکه خواهند بود . در شبکه ای بزرگ که دارای سرويس دهندگان فايل ، بانک های اطلاعاتی و ساير اطلاعات حساس و حياتی است ، اين موضوع می تواند امکان مشاهده تمامی دستگاههای موجود در شبکه را برای هر شخص فراهم نمايد . بدين ترتيب منابع فوق در معرض تهديد و حملات بيشتری قرار خواهند گرفت . به منظور حفاظت اينچنين سيستم هائی می بايست محدوديت دستيابی را در سطح شبکه و با ايجاد سگمنت های متعدد و يا استقرار يک فايروال در جلوی هر يک از سيستم های حياتی ، انجام داد .

معرفی VLAN
تمامی مسائل اشاره شده در بخش قبل را و تعداد بيشتری را  که به آنان اشاره نشده است را می توان با ايجاد يک VLAN به فراموشی سپرد . به منظور ايجاد VLAN ، به يک سوئيچ لايه دوم که اين تکنولوژی را حمايت نمايد ، نياز می باشد . تعدادی زيادی از افراديکه جديدا" با دنيای شبکه آشنا شده اند ، اغلب دارای برداشت مناسبی در اين خصوص نمی باشند و اينگونه استنباط نموده اند  که صرفا" می بايست به منظور فعال نمودن VLAN ،  يک نرم افزار اضافه  را بر روی سرويس گيرندگان و يا سوئيچ نصب نمايند . ( برداشتی کاملا" اشتباه ! ) . با توجه به اين که در  شبکه های VLAN ، ميليون ها محاسبات رياضی انجام می شود ، می بايست از سخت افزار خاصی که درون سوئيچ تعبيه شده است ، استفاده گردد (دقت در زمان تهيه يک سوئيچ)،در غير اينصورت امکان ايجاد يک VLAN با استفاده از سوئيچ تهيه شده ، وجود نخواهد داشت . 
هر VLAN که بر روی سوئيچ ايجاد می گردد ، به منزله يک شبکه مجزا می باشد . بدين ترتيب برای هر VLAN موجود يک broadcast domain جداگانه ايجاد می گردد . پيام های broadcast ، به صورت پيش فرض ، از روی تمامی پورت هائی از شبکه که عضوی از يک  VLAN مشابه نمی باشند، فيلتر می گردند . ويژگی فوق ، يکی از مهمترين دلايل متداول شدن VALN در شبکه های بزرگ امروزی است ( تمايز بين سگمنت های شبکه ) . شکل زير يک نمونه شبکه با دو VLAN را نشان می دهد : 

در شکل فوق ، يک شبکه کوچک با شش ايستگاه را که به يک سوئيچ ( با قابليت حمايت از VLAN ) متصل شده اند ، مشاهده می نمائيم . با استفاده از پتانسيل VLAN سوئيچ ، دو  VLAN  ايجاد شده است که به هر يک سه ايستگاه متصل شده است (VLAN1  و VLAN2) . زمانی که ايستگاه شماره يک متعلق به VLAN1 ، يک پيام  Braodcast را ارسال می نمايد ( نظير : FF:FF:FF:FF:FF:FF  ) ، سوئيچ موجود آن را صرفا" برای ايستگاههای شماره دو وسه فوروارد می نمايد . در چنين مواردی  ساير ايستگاههای متعلق به VLAN2 ، آگاهی لازم در خصوص پيام های broadcast ارسالی بر روی VLAN1 را پيدا نکرده  و درگير اين موضوع نخواهند شد .
در حقيقت ، سوئيچی که قادر به حمايت از VLAN می باشد ، امکان پياده سازی چندين شبکه مجزا را فراهم می نمايد ( مشابه داشتن دو سوئيچ جداگانه و اتصال سه ايستگاه به هر يک از آنان در مقابل استفاده از VLAN ) . بدين ترتيب شاهد کاهش چشمگير هزينه های برپاسازی يک شبکه خواهيم بود .
فرض کنيد قصد داشته باشيم زير ساخت شبکه موجود در يک سازمان بزرگ را به دوازده شبکه جداگانه تقسيم نمائيم . بدين منظور می توان با تهيه دوازده سوئيچ و اتصال ايستگاههای مورد نظر به هر يک از آنان ، دوازده شبکه مجزا که امکان ارتباط بين آنان وجود ندارد را ايجاد نمائيم . يکی ديگر از روش های تامين خواسته فوق ، استفاده از VLAN است . بدين منظور می توان از يک و يا چندين سوئيچ که VLAN را حمايت می نمايند ، استفاده و دوازده VLAN را ايجاد نمود . بديهی است ، هزينه برپاسازی چنين شبکه هایی به مراتب کمتر از حالتی است که  از دوازده سوئيچ جداگانه ، استفاده شده باشد .
در زمان ايجاد VALN ، می بايست تمامی ايستگاهها را به سوئيچ متصل و در ادامه ، ايستگاههای مرتبط با هر VLAN را مشخص نمود. هر سوئيچ در صورت حمايت از VLAN ، قادر به پشتيبانی از تعداد مشخصی VLAN است . مثلا" يک سوئيچ ممکن است 64 و يا  266  VLAN را حمايت نمايد.

 

مقاله۷:

شبکه های بی سیم (Wireless Lan)

مقدمه :

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

مفاهيم و تعاريف

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

WLANها  )يا LANهاي بي‌سيم) از امواج الكترومغناطيسي (راديويي يا مادون قرمز) براي انتقال اطلاعات از يك نقطه به نقطه ديگر استفاده مي‌كنند. امواج راديويي اغلب به عنوان يك حامل راديويي تلقي مي‌گردند، چرا كه اين امواج وظيفه انتقال انرژي الكترومغناطيسي از فرستنده را به گيرنده دورتر از خود بعهده دارند. داده هنگام ارسال برروي موج حامل راديويي سوار مي‌شود و در گيرنده نيز به راحتي از موج حامل تفكيك مي‌گردد. به اين عمل مدولاسيون اطلاعات به موج حامل گفته مي‌شود. هنگاميكه داده با موج راديويي حامل مدوله مي‌شود، سيگنال راديويي داراي فركانس‌هاي مختلفي علاوه بر فركانس اصلي موج حامل مي‌گردد. به عبارت ديگر فركانس اطلاعات داده به فركانس موج حامل اضافه مي‌شود. در گيرنده راديويي براي استخراج اطلاعات، گيرنده روي فركانس خاصي تنظيم مي‌گردد و ساير فركانس‌هاي اضافي فیلتر مي‌شوند.

 فصل اول:

 استاندارد شبکه های محلی بی سیم:

در ماه ژوئن سال 1997 انجمن مهندسان برق و الكترونيك (IEEE) استاندارد IEEE 802.11-1997 را به عنوان اولين استانداردِ شبكه‌های محلی بی‌سيم منتشر ساخت. اين استاندارد در سال 1999 مجدداً بازنگری شد و نگارش روز آمد شده آن تحت عنوان IEEE 802.11-1999 منتشر شد. استاندارد جاری شبكه‌های محلی بی‌سيم يا همانIEEE 802.11 تحت عنوان ISO/IEC 8802-11:1999، توسط سازمان استاندارد سازی بين‌المللی (ISO) و مؤسسه استانداردهای ملی آمريكا (ANSI) پذيرفته شده است. تكميل اين استاندارد در سال 1997، شكل گيری و پيدايش شبكه سازی محلی بی‌سيم و مبتنی بر استاندارد را به دنبال داشت. استاندارد 1997، پهنای باند 2Mbps را تعريف می‌كند با اين ويژگی كه در شرايط نامساعد و محيط‌های دارای اغتشاش (نويز) اين پهنای باند می‌تواند به مقدار 1Mbps كاهش يابد. روش تلفيق يا مدولاسيون در اين پهنای باند روش DSSS است. بر اساس اين استاندارد پهنای باند 1 Mbps با استفاده از روش مدولاسيون FHSS نيز قابل دستيابی است و در محيط‌های عاری از اغتشاش (نويز) پهنای باند 2  Mbps  نيز قابل استفاده است. هر دو روش مدولاسيون در محدوده باند راديويی 2.4 GHz عمل می‌كنند. يكی از نكات جالب توجه در خصوص اين استاندارد استفاده از رسانه مادون قرمز علاوه بر مدولاسيون‌های راديويی DSSS و FHSS به عنوان رسانه انتقال است. ولی كاربرد اين رسانه با توجه به محدوديت حوزه عملياتی آن نسبتاً محدود و نادر است. گروه كاری 802.11 به زير گروه‌های متعددی تقسيم می‌شود. برخی از مهم‌ترين زير گروه‌ها به قرار زير است:

 كميته  802.11Eكميته‌ای است كه سعی دارد قابليت QoS اِتـِرنت را در محيط شبكه‌های بی‌سيم ارائه كند. توجه داشته باشيد كه فعاليت‌های اين گروه تمام گونه‌های 802.11 شامل a، b، و g را در بر دارد. اين كميته در نظر دارد كه ارتباط كيفيت سرويس سيمی يا Ethernet QoS را به دنيای بی‌سيم بياورد.

كميته G802.11 كميته‌ای است كه با عنوان 802.11 توسعه يافته نيز شناخته می‌شود. اين كميته در نظر دارد نرخ ارسال داده‌ها در باند فركانسی ISM را افزايش دهد. باند فركانسی ISM يا باند فركانسی صنعتی، پژوهشی، و پزشكی، يك باند فركانسی بدون مجوز است. استفاده از اين باند فركانسی كه در محدوده 2400 مگاهرتز تا 2483.5 مگاهرتز قرار دارد، بر اساس مقررات FCC در كاربردهای تشعشع راديويی نيازی به مجوز ندارد. استاندارد  802.11Gتا كنون نهايی نشده است و مهم‌ترين علت آن رقابت شديد ميان تكنيك‌های مدولاسيون است. اعضاء اين كميته و سازندگان تراشه توافق كرده‌اند كه از تكنيك تسهيم OFDM استفاده نمايند ولی با اين وجود روش PBCC نيز می‌تواند به عنوان يك روش جايگزين و رقيب مطرح باشد.

كميته  802.11Hمسئول تهيه استانداردهای يكنواخت و يكپارچه برای توان مصرفی و نيز توان امواج ارسالی توسط فرستنده‌های مبتنی بر 802.11 است.

فعاليت دو كميته  802.11iو  802.11xدر ابتدا برروی سيستم‌های مبتنی بر  802.11bتمركز داشت. اين دو كميته مسئول تهيه پروتكل‌های جديد امنيت هستند. استاندارد اوليه از الگوريتمی موسوم به WEP استفاده می‌كند كه در آن دو ساختار كليد رمز نگاری به طول 40 و 128 بيت وجود دارد. WEP مشخصاً يك روش رمزنگاری است كه از الگوريتم RC4 برای رمزنگاری فريم‌ها استفاده می‌كند. فعاليت اين كميته در راستای بهبود مسائل امنيتی شبكه‌های محلی بی‌سيم است.

 اين استاندارد لايه‌های كنترل دسترسی به رسانه (MAC) و لايه فيزيكی (PHY) در يك شبكه محلی با اتصال بی‌سيم را دربردارد

 شبکه‌های بی‌سیم و انواع WWAN , WLAN , WPAN :

تکنولوژی شبکه‌های بی‌سیم، با استفاده از انتقال داده‌ها توسط اموج رادیویی، در ساده ‌ترین صورت، به تجهیزات سخت‌افزاری امکان می‌دهد تا بدون‌استفاده از بسترهای فیزیکی همچون سیم و کابل، با یکدیگر ارتباط برقرار کنند. شبکه‌های بی‌سیم بازه‌ی وسیعی از کاربردها، از ساختارهای پیچیده‌یی چون شبکه‌های بی‌سیم سلولی - که اغلب برای تلفن‌های همراه استفاده می‌شود- و شبکه‌های محلی بی‌سیم (WLAN – Wireless LAN) گرفته تا انوع ساده‌یی چون هدفون‌های بی‌سیم، را شامل می‌شوند. از سوی دیگر با احتساب امواجی همچون مادون قرمز، تمامی تجهیزاتی که از امواج مادون قرمز نیز استفاده می‌کنند، مانند صفحه کلید‌ها، ماوس‌ها و برخی از گوشی‌های همراه، در این دسته‌بندی جای می‌گیرند. طبیعی‌ترین مزیت استفاده از این شبکه‌ها عدم نیاز به ساختار فیزیکی و امکان نقل و انتقال تجهیزات متصل به این‌گونه شبکه‌ها و هم‌چنین امکان ایجاد تغییر در ساختار مجازی آن‌هاست. از نظر ابعاد ساختاری، شبکه‌های بی‌سیم به سه دسته تقسیم می‌گردند : WWAN، WLAN و WPAN.

مقصود از WWAN، که مخفف Wireless WAN است، شبکه‌هایی با پوشش بی‌سیم بالاست. نمونه‌یی از این شبکه‌ها، ساختار بی‌سیم سلولی مورد استفاده در شبکه‌های تلفن همراه است. WLAN پوششی محدودتر، در حد یک ساختمان یا سازمان، و در ابعاد کوچک یک سالن یا تعدادی اتاق، را فراهم می‌کند. کاربرد شبکه‌های WPAN یا Wireless Personal Area Network برای موارد خانگی است. ارتباطاتی چون Bluetooth و مادون قرمز در این دسته قرار می‌گیرند.

شبکه‌های WPAN از سوی دیگر در دسته‌ی شبکه‌های Ad Hoc نیز قرار می‌گیرند. در شبکه‌های Ad hoc، یک سخت‌افزار، به‌محض ورود به فضای تحت پوشش آن، به‌صورت پویا به شبکه اضافه می‌شود. مثالی از این نوع شبکه‌ها، Bluetooth است. در این نوع، تجهیزات مختلفی از جمله صفحه کلید، ماوس، چاپگر، کامپیوتر کیفی یا جیبی و حتی گوشی تلفن همراه، در صورت قرارگرفتن در محیط تحت پوشش، وارد شبکه شده و امکان رد و بدل داده‌ها با دیگر تجهیزات متصل به شبکه را می‌یابند. تفاوت میان شبکه‌های Ad hoc با شبکه‌های محلی بی‌سیم (WLAN) در ساختار مجازی آن‌هاست. به‌عبارت دیگر، ساختار مجازی شبکه‌های محلی بی‌سیم بر پایه‌ی طرحی ایستاست درحالی‌که شبکه‌های Ad hoc از هر نظر پویا هستند. طبیعی‌ست که در کنار مزایایی که این پویایی برای استفاده کننده‌گان فراهم می‌کند، حفظ امنیت چنین شبکه‌هایی نیز با مشکلات بسیاری همراه است. با این وجود، عملاً یکی از راه حل‌های موجود برای افزایش امنیت در این شبکه‌ها، خصوصاً در انواعی همچون Bluetooth، کاستن از شعاع پوشش سیگنال‌های شبکه است. در واقع مستقل از این حقیقت که عمل‌کرد Bluetooth بر اساس فرستنده و گیرنده‌های کم‌توان استوار است و این مزیت در کامپیوترهای جیبی برتری قابل‌توجه‌یی محسوب می‌گردد، همین کمی توان سخت‌افزار مربوطه، موجب وجود منطقه‌ی محدود تحت پوشش است که در بررسی امنیتی نیز مزیت محسوب می‌گردد. به‌عبارت دیگر این مزیت به‌همراه استفاده از کدهای رمز نه‌چندان پیچیده، تنها حربه‌های امنیتی این دسته از شبکه‌ها به‌حساب می‌آیند.

 پارامترهاي مؤثر در انتخاب و پياده‌سازي يك سيستم WLAN:

 (1برد محدوده پوشش: اثر متقابل اشياء موجود در ساختمان (نظير ديوارها، فلزات و افراد) مي‌تواند بر روي انرژي انتشار اثر بگذارد و در نتيجه برد و محدوده پوشش سيستم را تحت تأثير قرار دهد. براي سيگنالهاي مادون قرمز، اشياي موجود در ساختمان مانعي ديگر بشمار مي‌رود و در نتيجه محدوديتهاي خاصي را در شبكه بوجود مي‌آورد. بيشتر سيستمهاي WLAN از امواج راديويي RF استفاده مي‌كنند، زيرا مي‌تواند از ديوارها و موانع عبور كند. برد (شعاع پوشش) براي سيستمهاي WLAN بين 10 تا 30 متر متغير است.

 (2 سرعت انتقال داده: همانند شبكه‌هاي كابلي، سرعت انتقال داده واقعي در شبكه‌هاي بي‌سيم، به نوع محصولات و توپولوژي شبكه بستگي دارد. تعداد كاربران، فاكتورهاي انتشار مانند برد، مسيرهاي ارتباطي، نوع سيستم WLAN استفاده شده، نقاط كور و گلوگاههاي شبكه، از پارامترهاي مهم و تأثيرگذار در سرعت انتقال داده بحساب مي‌آيند. بعنوان يك مقايسه با مودمهاي امروزي (با سرعت 56 كيلو بيت در ثانيه) سرعت عملكرد WLANها در حدود 30 برابر سريعتر از اين مودمهاست.

(3 سازگاري با شبكه‌هاي موجود: بيشتر سيستمهاي WLAN با استانداردهاي صنعتي متداول شبكه‌هاي كابلي نظير Ethernet و Token Ring سازگار است. با نصب درايورهاي مناسب در ايستگاههاي WLAN، سيستمهاي عامل آن ايستگاهها دقيقا مانند ساير ايستگاههاي موجود در شبكه   LAN كابلي بكار گرفته مي‌شود.

(4سازگاري با ديگر محصولات :WLAN به سه دليل مشتريان هنگام خريد محصولات WLAN بايد مراقب باشند كه سيستم موردنظر بتواند با ساير محصولات WLAN توليدكنندگان ديگر سازگاري داشته باشد:

 1) ممكن است هر محصول از تكنولوژي خاصي استفاده كرده باشد، براي مثال سيستمي كه از فناوري FHSS استفاده كند نمي‌تواند با سيستمي با فناوري DSSS كار كند.

2)  اگر فركانس كار دو سيستم با يكديگر يكسان نباشد،‌حتي در صورت استفاده از فناوري مشابه، امكان كاركردن با يكديگر فراهم نخواهد شد.

3) حتي توليدكنندگان مختلف اگر از يك فناوري و يك فركانس استفاده كنند، بدليل روشهاي مختلف طراحي ممكن است با ساير محصولات ديگر سازگاري نداشته باشد.

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

 (6 ملاحظات مجوز فركانسي: در اغلب كشورها ارگانهاي ناظر بر تخصيص فركانس راديويي، محدوده فركانس شبكه‌هاي WLAN را مشخص كرده‌اند. اين محدوده ممكن است در همه كشورها يكسان نباشد. معمولا سازندگان تجهيزات WLAN فركانس سيستم را در محدوده مجاز قرار مي‌دهند. در نتيجه كاربر نياز به اخذ مجوز فركانسي ندارد. اين محدوده فركانس به ISM معروف است. محدوده بين‌المللي اين فركانسها 928-902 مگاهرتز،483/2-4/2 گيگاهرتز، 535-15/5 گيگاهرتز و 875/5-725/5 گيگاهرتز است. بنابراين توليدكنندگان تجهيزات WLAN بايد اين محدوده مجوز فركانسي را در سيستمهاي خود رعايت كنند.

 (7 سادگي و سهولت استفاده: اغلب كاربران در مورد مزيتهاي WLANها اطلاعات كمي دارند. مي‌دانيم كه سيستم عامل اصولاً به نحوه اتصال سيمي و يا بي‌سيم شبكه وابستگي ندارند. بنابراين برنامه‌هاي كاربردي بر روي شبكه بطور يكسان عمل مي‌نمايند. توليدكنندگان WLAN ابزار مفيدي را براي سنجش وضعيت سيستم و تنظيمات مورد در اختيار كاربران قرار مي‌دهند. مديران شبكه به سادگي مي‌توانند نصب و راه‌اندازي سيستم را با توجه به توپولوژي شبكه موردنظر انجام دهند. در WLAN  كليه كاربران بدون نياز به كابل‌كشي مي‌توانند با يكديگر ارتباط برقرار كنند. عدم نياز به كابل‌كشي موجب مي‌شود كه تغييرات، جابجايي و اضافه كردن در شبكه به آساني انجام شود. در نهايت به موجب قابليت جابجايي آسان تجهيزات WLANمدير شبكه مي‌تواند قبل از اينكه تجهيزات شبكه را در مكان اصلي خود نصب كند، ابتدا آنها را راه‌اندازي كند و تمامي مشكلات احتمالي شبكه را برطرف سازد و پس از تاييد نهايي در محل اصلي جايگذاري نمايد و پس از پيكر‌بندي، هرگونه جابجايي از يك نقطه به نقطه ديگر را بدون كمترين تغييرات اصلاح نمايد.

(8 امنيت: از آنجايي كه سرمنشأ فناوري بي‌سيم در كاربردهاي نظامي بوده است، امنيت از جمله مقولات مهم در طراحي سيستمهاي بي‌سيم بشمار مي‌رود. بحث امنيت هم در ساختار تجهيزات    WLAN  به نحو مطلوبي پيش‌بيني شده است و اين امر شبكه‌هاي بي‌سيم را بسيار امن‌تر از شبكه‌هاي سيمي كرده است. براي گيرنده‌هايي كه دستيابي مجاز به سيگنالهاي دريافتي ندارند، دسترسي به اطلاعات موجود در WLAN بسيار مشكل است. به دليل تكنيكهاي پيشرفته رمزنگاري براي اغلب گيرنده‌هاي غيرمجاز دسترسي به ترافيك شبكه غيرممكن است. عموما گيرنده‌هاي مجاز بايد قبل از ورود به شبكه و دسترسي به اطلاعات آن، از نظر امنيتي مجوز لازم را دارا باشند.

(9  هزينه: براي پياده‌سازي يك WLAN هزينه اصلي شامل دو بخش است: هزينه‌هاي زيرساختار شبكه مانند APهاي شبكه و نيز هزينه كارتهاي شبكه جهت دسترسي كاربران به WLAN.

هزينه‌هاي زيرساختار شبكه به تعداد APهاي موردنياز شبكه بستگي دارد. قيمت يك AP بين 1000 تا2000 دلار مي‌باشد. تعداد APهاي شبكه به شعاع عملكرد شبكه، تعداد كاربران و نوع سرويسهاي موجود در شبكه بستگي دارد و هزينه كارتهاي شبكه با توجه به يك شبكه رايانه‌اي استاندارد حدود 300 تا 500 دلار براي هر كاربر مي‌باشد. هزينه نصب و راه‌اندازي يك شبكه بي‌سيم به دو دليل كمتر از نصب و راه‌اندازي يك شبكه سيمي مي‌باشد:

1)هزينه كابل‌كشي و پيدا كردن مسير مناسب بين كاربران و ساير هزينه‌هاي مربوط به نصب تجهيزات در ساختمان، بخصوص در فواصل طولاني كه استفاده از فيبر نوري يا ساير خطوط گرانقيمت ضروري است، بسيار زياد است.

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

(10 قابليت گسترش سيستم: با يك شبكه بي‌سيم مي‌توان شبكه‌اي با توپولوژي بسيار ساده تا بسيار پيچيده را طراحي كرد. در شبكه‌هاي بي‌سيم با افزايش تعداد APها يا WBها مي‌توان محدوده فيزيكي تحت پوشش و تعداد كاربران موجود در شبكه را تا حد بسيار زيادي گسترش داد. شعاع عملكرد اين شبكه تا حدود 20 كيلومتر مي‌باشد.

(11 اثرات جانبي: توان خروجي يك سيستم بي‌سيم بسيار پايين است. از آنجايي كه امواج راديويي با افزايش فاصله به سرعت مستهلك مي‌گردند و در عين حال، افرادي را كه در محدوده تشعشع انرژي RF هستند، تحت تاثير قرار مي‌دهند، بايد ملاحظات حفظ سلامت با توجه به مقررات دولتي رعايت گردد. با اين وجود اثرات مخرب اين سيستمها زياد نمي‌باشد.

 

منشأ ضعف امنیتی در شبکه‌های بی‌سیم و خطرات معمول

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

در مجموع، در تمامی دسته‌های شبکه‌های بی‌سیم، از دید امنیتی حقایقی مشترک صادق است :

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

- نفوذگران، با گذر از تدابیر امنیتی موجود، می‌توانند به‌راحتی به منابع اطلاعاتی موجود بر روی سیستم‌های رایانه‌یی دست یابند.

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

- حمله‌های DoS به تجهیزات و سیستم‌های بی‌سیم بسیار متداول است.

 - نفوذگران با سرقت کدهای عبور و دیگر عناصر امنیتی مشابه کاربران مجاز در شبکه‌های بی‌سیم، می‌توانند به شبکه‌ی مورد نظر بدون هیچ مانعی متصل گردند.

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

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

- یک نفوذگر می‌تواند از نقاط مشترک میان یک شبکه‌ی بی‌سیم در یک سازمان و شبکه‌ی سیمی آن (که در اغلب موارد شبکه‌ی اصلی و حساس‌تری محسوب می‌گردد) استفاده کرده و با نفوذ به شبکه‌ی بی‌سیم عملاً راهی برای دست‌یابی به منابع شبکه‌ی سیمی نیز بیابد.

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

 فصل دوم:

مشخصات و خصوصیات WLAN:

تکنولوژی و صنعت WLAN به اوایل دهه‌ی ۸۰ میلادی باز می‌گردد. مانند هر تکنولوژی دیگری، پیشرفت شبکه‌های محلی‌ بی‌سیم به کندی صورت می‌پذیرفت. با ارایه‌ی استاندارد IEEE 802.11b، که پهنای باند نسبتاً بالایی را برای شبکه‌های محلی امکان‌پذیر می‌ساخت، استفاده از این تکنولوژی وسعت بیشتری یافت. در حال حاضر، مقصود از WLAN تمامی پروتکل‌ها و استانداردهای خانواده‌ی IEEE 802.11 است. جدول زیر اختصاصات این دسته از استانداردها را به صورت کلی نشان می‌دهد .

 اولین شبکه‌ی محلی بی‌سیم تجاری توسط Motorola پیاده‌سازی شد. این شبکه، به عنوان یک نمونه از این شبکه‌ها، هزینه‌یی بالا و پهنای باندی پایین را تحمیل می‌کرد که ابداً مقرون به‌صرفه نبود. از همان زمان به بعد، در اوایل دهه‌ی ۹۰ میلادی، پروژه‌ی استاندارد 802.11 در IEEE شروع شد. پس از نزدیک به ۹ سال کار، در سال ۱۹۹۹ استانداردهای 802.11a و 802.11b توسط IEEE نهایی شده و تولید محصولات بسیاری بر پایه‌ی این استانداردها آغاز شد. نوع a، با استفاده از فرکانس حامل 5GHz، پهنای باندی تا 54Mbps را فراهم می‌کند. در حالی‌که نوع b با استفاده از فرکانس حامل 2.4GHz، تا 11Mbps پهنای باند را پشتیبانی می‌کند. با این وجود تعداد کانال‌های قابل استفاده در نوع b در مقایسه با نوع a، بیش‌تر است. تعداد این کانال‌ها، با توجه به کشور مورد نظر، تفاوت می‌کند. در حالت معمول، مقصود از WLAN استاندارد 802.11b است.

استاندارد دیگری نیز به‌تاز‌ه‌گی توسط IEEE معرفی شده است که به 802.11g شناخته می‌شود. این استاندارد بر اساس فرکانس حامل 2.4GHz عمل می‌کند ولی با استفاده از روش‌های نوینی می‌تواند پهنای باند قابل استفاده را تا 54Mbps بالا ببرد. تولید محصولات بر اساس این استاندارد، که مدت زیادی از نهایی‌شدن و معرفی آن نمی‌گذرد، بیش از یک‌سال است که آغاز شده و با توجه سازگاری‌ آن با استاندارد 802.11b، استفاده از آن در شبکه‌های بی‌سیم آرام آرام در حال گسترش است.

 

 برخي مزيتهاي شبكه‌هاي بي‌سيم:

  نرخ سرعت بالا در حد شبکه های کابلی:

 امروزه کاربران با سرعت 11 مگابیت در ثانیه به اطلاعات می توانند دسترسی داشته باشند که همانند سرعت اترنت معمولی است.

  نگهداری آسان و ارزان :

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

در اين نوع از شبكه‌ها كاربران بدون نياز به اتصال فيزيكي به شبكه مي‌توانند به اطلاعات دست پيدا ‌كنند. مديران اين نوع از شبكه‌ها مي‌توانند شبكه‌هاي بزرگي بدون نياز به سيم‌كشي برپا كنند.

قابليت تحرك :

در اين نوع شبكه كاربران قابليت حركت در عين متصل بودن به شبكه را دارند. اين قابليت مزايائي داردكه در شبكه‌هاي سيمي امكان پذير نيست.

انعطاف پذيري به هنگام نصب:

فن‌آوري بي‌سيم به ما امكان ميدهد به سادگي شبكه را گسترش دهيم و شبكه در جاهائي كه امكان سيم‌كشي وجود ندارد، قابل دسترس باشد.

 مقياس پذيري:

تغيير پيكربندي شبكه‌هاي WLAN به سادگي قابل تغيير است و WLAN ها با توپولوژي هاي مختلف مي‌توانند به يكديگر متصل شوند. از شبكه‌هاي نظير به نظير تا شبكه                       Full Infrastructure كه هزاران كاربر مي‌توانند به شبكه متصل شوند.

 برخي كاربردهاي شبكه‌هاي محلي بي‌سيم در جامعه:

• برپائي شبكه كامپيوتري در محلهائي كه امكان عبور سيم در آنها به دليل مسائل محيطي وجود ندارد مانند اماكن تاريخي و باستاني

• هر سازماني كه به دلايلي نمي‌خواهد شبكه سيمي داشته باشد مانند داشتن فضاي استيجاري يا سايتهاي موقتي

• كاربراني كه دائما در حال حركت مي‌باشند مانند پزشكان و كادر درماني

• شبكه‌هاي كامپيوتري بيمارستانها براي ارتباط با نقاط حساس و بيماران در حال حركت

• فرودگاهها ، بنادر و ايستگاههاي راه‌آهن براي نظارت كامپيوتري بر تردد بار و مسافر

• انبارها به منظور كنترل و خدمات انبارداري و بازرسي كالا

• كارخانجات جهت ارتباطات پيشرفته‌تر و انعطاف پذيرتر

• ايستگاههاي موقت جهت خريد و فروش ، پيش‌بيني وضعيت آب و هوا و آلودگي، كنترل و

 

هك

مقاله6:

هک  شدن وبلاگ ها:

مقدمه:

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

به طوری که هر هکر یا گروه هکری کار هک خود را با هک وبلاگ ها آغاز میکند.

وبلاگ نیز میتوان گفت یک سایت رایگان است ولی آیا امنیت این وبلاگها بر عهده کیست؟

میتوان به اطمینان گفت 99%امنیت وبلاگها در دست صاحبان وبلاگ است.

ولی هکر ها چگونه وبلاگهای ما رو هک میکنند ؟

1- هک کردن ایمیل صاحب وبلاگ:

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

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

2- ایمیل جعلی:

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

3- استفاده از صفحه های تقلبی:

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

4- استفاده از باگهای :

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

ولی این امر خیلی کم دیده میشود و میتوان گفت امکان چنین اتفاقی خیلی به ندرت دیده میشود.

ولی راههای جلوگیری از هک شدن وبلاگ هایمان :

1-در مرحله اول سعی کنید وبلاگ خود را از یک سرویس دهنده مطمئن و مناسب انتخاب نمایید

2-در نگه داشتن ایمیل خود توجه داشته باشید.(مقالات قبلی به این مبحث اشاره شده است)

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

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

5-سعی کنید از یک پسورد مناسب استفاده کنید(اشاره شده در مقالات قبلی)

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

 

نقش کامپیوتر در آموزش

مقاله 5:

نقش کامپیوتر در آموزش:

كامپيوتر چيست؟

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

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

تعريفات:

داده(data):

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

اطلاعات(information):

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

پردازش (process):

به مجموعه عملياتي که بر روي داده ها صورت می‌گيرد پردازش می‌گويند.

مثل مرتب سازي داده ها و جستجو در بين آنها و يا محاسبات انجام گرفته بر روي آنها

انواع پردازش بر روي داده ها هستند.

كاربردهاي كامپيوتر:

الف:كاربرد كامپيوتر در آموزش:

كامپيوترها به علت انعطاف پذيري زياد،در بالا بردن میزان هوش و توانييهاي كاري بسيار مؤثرند و استفاده از آنها بسيار ساده شده است.به اين دليل در كشورهاي پيشرفته،آزمايشگاههاي كامپيوتر از سطح دبستان به بالا جود دارد و فراگيري كامپيوتر اجباري است. در اين روش هزينه ها کم شده و در هر جا و هر زمان می‌توان به مطالب درسي دسترسي داشت. آموزشهاي مجازي و راه دور و الکترونيکي نيز وجود دارد كه در اين روش هزينه چاپ کتاب از بين رفته و دهها کتاب را می‌توان بر روي يک cd جا داد.

ب:كاربرد كامپيوتر درهنر و سينما و تلويزيون:

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

ج: کاربرد در صنعت:

در طراحي و توليد محصولات صنعتي امروزه عمدتا توسط کامپيوتر انجام می‌شود.

طراحي اوليه قطعات را CAD و توليد بوسيله کامپيوتر را CAM می‌نامند.

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

د:كاربرد كامپيوتر در امور علمی‌و تحقيقاتي:

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

از کاربردهاي ديگر کامپيوتر می‌توان به کاربرد کامپيوتر در تجارت، در پزشكي، در وسايل ارتباط جمعي، و... نام برد.

ف:ساير كاربردها:

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

جدول نسل كامپيوترها:

 نسل

اول

دوم

سوم

چهارم

سال توليد

1955-1946

1963-1956

1977-1964

تا كنون - 1978

پايه تكنولوژي

لامپ خلا

ترانزيستور

مدارات مجتمع در مقياس كوچك

مدارات مجتمع در مقياس بزرگ

سرعت اجراي‌دستورالعمل در هر ثانيه

40 هزار

200 هزار

يك تا 10 می‌ليون

10 تا 300 می‌ليون

اندازه‌ حافظه‌هاي اصلي

2 تا 4 كيلو بايت

32 كيلو بايت

256 كيلو بايت تا 2 مگا بايت

16 تا 516 مگا بايت

 

تاثیر رایانه در آموزش:

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

اين فن آوري نقش مهمي در زندگي کودکان ايفا» مي کند که به سرعت در حال افزيش است و علي رغم جنبه هاي مثبت از قبيل جنبه هاي آموزشي و ارائه خدمات ارتباطي و ... رايانه و اينترنت جنبه هاي منفي نيز دارد.

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

آموزش رايانه و اينتر نت براي کودکان پيش دبستاني:  

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

مک بک با هدف آموزش مهارت هاي استفاده از رايانه در قالب 10 بازي مختلف و مرتبط طراحي شده است که در اولين قدم کار با ماوس يعني حرکت دادن ، کليک کردن و کارهاي پيچيده تر مثل Drop  Drag را به کودکان در قالب يک بازي که در محيط يک باغ با حضور شخصيت هايي از جانوران موجود در يک باغ سبز آموزش     مي دهد .
عمده کودکاني که از چنين نرم افزاري استفاده مي کنند طي مدت کوتاهي مهارت هاي کار با برخي از اجزا» مهم رايانه را به خوبي يک فرد با تجربه مي آموزند. اين نرم افزار براي سنين 3 تا 9 سال طراحي شده که بازدهي آن در بسياري از مهدهاي تهران آزموده شده است .

آموزش الکترونيکی چيست ؟                                           

آموزش الکترونيکی امکان فراگيری مستقل از زمان و مکان را برای دانـش پژوهان فراهم می آورد. جايگاه کامپيوتر در آموزش های الکترونيکی بسيار حائز اهميت است . با پيکربندی مناسب کامپيوتر ( سخت افزار، نرم افزار و شبکه ) امکان استفاده از آموزش های الکترونيکی برای علاقه مندان فراهم می گردد. عملکرد کامپيوتر در آموزش های الکترونيکی نظير عملکرد موبايل در ارتباطات است . با استفاده و پيکربندی مناسب موبايل امکان برقراری ارتباط مستقل از زمان و مکان خاص برای افراد بوجود می آيد.
CD-ROM  آموزش الکترونيکی می تواند مبتنی  بر ، شبکه ، اينترانت و يا اينترنت باشد. آموزش الکترونيکی برای ارائه محتوی از عناصر اطلاعاتی با فرمت های متفاوت نظير: متن ، ويدئو ، صدا، انيميشن ، گرافيک و محيط های مجازی و يا شبيه سازی شده استفاده می نمايد. تجارب بدست آمده از آموزش های الکترونيکی بمراتب گسترده تر از تجارب آموزشی بدست آمده در يک کلاس درس سنتی است . آهنگ فراگيری در سيستم های آموزشی الکترونيکی از يک روند مشخص و سيستماتيک تبعيت کرده و مخاطبان خود را با هر نوع سليقه و گرايش بسرعت جذب می نمايد. 
آمـوزش های الکـترونيکی رمز موفقيـت خود را در شـيوه ارائه ، نوع محتـويات و توزيع ( عرضه ) مناسـب  می دانند. در آموزش های الکترونيکی از اغلب مسائل موجود در آموزش های سنتی نظير : سخنرانی های يکطرفه ، تعامل و ارتباط ضعيف با فراگيران ، اجتناب می گردد. با استفاده از نرم افزارهای مربوط به سيستم های آموزش الکترونيکی می توان بسرعت محيط های آموزشی موثر و کارآ را با بهره گيری از عناصر متفاوت آموزشی ايجاد کرد.

 

منابع:

روزنامه آفرینش – شماره 2530

روزنامه ایران – شماره 2912 

شبکه فن آوری اطلاعات ایران   

 باتشکرازدوست بسیار عزیزم فریدغلامی

که باراسال این مطلب بسیار مفید مارادررساندن به اهدافمان یاری کردند.