Tag Archives: برنامه نویسی

دستور GOTO

دستور GOTO چیست؟

GOTO (به معنای “برو به …”) عنوان دستوری است که در بسیاری از زبان‌های برنامه‌نویسی به منظور انتقال کنترل به خط دیگری از کد مورد استفاده قرار می‌گیرد. مکان‌هایی که با استفاده از این دستور به آن‌ها پرش می‌شود معمولا توسط برچسب (Label) ها یا شماره خطوط مشخص می‌شود. بسته به زبان‌های برنامه‌نویسی مختلف، این دستور به اشکال گوناگونی از جمله GoTo، goto و … مشاهده می‌شود.

دستور GOTO از جمله دستورات جهش یا انشعاب غیر شرطی به شمار می‌رود. با وجود اینکه در گذشته استفاده از این دستور متداول بوده است اما با ظهور برنامه‌نویسی ساخت یافته (Structured Programming)، این دستور آرام آرام به فراموشی سپرده شده است. به عبارت دیگر در زبان‌های امروزی، استفاده از این دستور برای ایجاد برنامه‌ها ضرورتی ندارد و می‌توان از طریق حلقه‌ها، دستورات انتخاب و … نیز به همان عملکرد دستور GOTO دست پیدا نمود.

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

...
label:
...
goto label;
...

مزایا و معایب استفاده از دستور GOTO

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

پیوندهای پیشنهادی تک دیک

لینک واژه در ویکیپدیا

آرایه انجمنی Associative array

آرایه انجمنی یا Associative array چیست؟

آرایه انجمنی (Associative array) در زبان‌های برنامه‌نویسی یک نوع داده‌ی انتزاعی است متشکل از مجموعه‌ای از دوتایی‌های (کلید، مقدار) یا (Key, Value) به طوری که هر مقدار با یک کلید در تناظر می‌باشد و کلیدهای موجود در مجموعه نیز تکراری نباشند. آرایه‌های انجمنی با نام‌هایی همچون نقشه (Map) و لغت نامه (Dictionary) نیز شناخته می‌شوند.

در آرایه‌های انجمنی تناظر میان کلیدها و مقادیر اصطلاحا اتصال (Binding) نامیده می‌شود. مهم‌ترین و رایج‌ترین اعمالی که روی این نوع داده قابل انجام می‌باشد عبارت است از افزودن (Insert یا Add) یک جفت کلید و مقدار به مجموعه، حذف (Remove یا Delete) یک جفت کلید و مقدار، تغییر مقدار تخصیص یافته به یک کلید و یافتن مقدار متناظر با یک کلید. برای افزودن یک جفت کلید و مقدار یا تغییر مقدار متناظر با یک کلید لازم است هم کلید و هم مقدار متناظر با آن در قالب آرگومان مشخص شود اما حذف یا یافتن مقدار متناظر با یک کلید تنها مبتنی بر کلید انجام می‌شود.

دو روش مهم برای ایجاد آرایه‌های انجمنی، استفاده از جدول درهم سازی (Hash table) و درخت جستجو (Search tree) می‌باشد. بسیاری از زبان‌های برنامه‌نویسی امروزی از آرایه‌های انجمنی تحت عناوین متفاوتی در قالب کتابخانه‌های استاندارد خود پشتیبانی می‌کنند (برای مثال در بسیاری از زبان‌ها از جمله C++، آرایه‌های انجمنی با عنوان map شناخته می‌شوند).

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

در مثال زیر نحوه‌ی ایجاد یک آرایه انجمنی به نام $weight در زبان PHP نمایش داده شده است. در این نمونه، 3 جفت کلید و مقدار در مجموعه مشاهده می‌شود که عبارات Alex و Rory و Paul کلیدهای این آرایه انجمنی هستند و مقادیر 40 و 50 و 45 به ترتیب به آنها تخصیص داده شده است. در این مثال عبارت $weight[‘Paul’] مقدار متناظر با کلید Paul یعنی 45 را خواهد داشت.

$weight = array("Alex"=>"40", "Rory"=>"50", "Paul"=>"45");
echo "Paul weighs" . $weight['Paul'] . " kilograms.";

پیوندهای پیشنهادی تک دیک

لینک واژه در ویکیپدیا

زبان اسمبلی Assembly Language

زبان اسمبلی یا Assembly Language چیست؟

زبان اسمبلی (Assembly Language) یک زبان برنامه نویسی سطح پایین است که نزدیکی بالایی به دستورالعمل‌های ماشین دارد. این زبان به اختصار با نام ASM نیز شناخته می‌شود.

ویژگی‌های زبان اسمبلی

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

به ازای هر دستورالعمل ماشین، ثبات و … معادل‌هایی سمبولیک در زبان اسمبلی وجود دارد. هر عمل همراه با یک یا چند عملوند در این زبان یک دستور را تشکیل می‌دهند.

اسمبلر

دستورات Assembly به منظور آماده شدن برای اجرا، با کمک برنامه‌ای به نام اسمبلر (Assembler) به کد ماشین تبدیل می‌شوند. این برنامه برای تولید آبجکت کد، نمادهای قابل حفظ کردن و مدهای آدرس دهی و عملیات‌های مختلف را به معادل‌های عددی دودویی آن ترجمه می‌کند. اسمبلرهای سطح بالا (High-level Assembler) ویژگی‌های زبان های سطح بالا نظیر تعریف توابع، ساختارهای کنترلی پیشرفته‌تر (نظیر IF) و شئ گرایی را با ویژگی‌های مرسوم ترکیب می‌کنند.

فرایند تبدیل دستورات Assembly به کد ماشین را اسمبلینگ (Assembling) سورس کد می‌نامند. عکس این عمل (تبدیل از زبان ماشین به Assembly) نیز توسط برنامه‌ای موسوم به Disassembler انجام می‌شود.

مثالی از یک دستور اسمبلی

معمولا در هر دستور Assembly پس از دستورالعمل، لیستی از داده‌ها یا پارامترها قرار می‌گیرد. به عنوان مثال در معماری 8086 از نماد MOV برای لود کردن داده در ثبات‌های پردازنده استفاده می‌شود. دستور زیر مقدار هگزادسیمال 61 (معادل عدد دهدهی 97) را در ثبات AL لود می‌کند:

MOV AL, 61h

این دستور توسط اسمبلر به رشته باینری زیر تبدیل می‌شود. این رشته به یک پردازنده با معماری x86 اعلام می‌کند عدد 97 را در ثبات AL قرار دهد. پنج بیت 10110 کد باینری مربوط به این دستورالعمل است و سه بیت بعدی (یعنی 000) مشخصه ثبات AL است. در نهایت 01100001 نیز معادل باینری عدد 97 است.

10110000 01100001

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

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

اسمبلی Assembly
نمونه ای از برنامه سلام دنیا به زبان اسمبلی

پیوندهای پیشنهادی تک دیک

لینک واژه در ویکیپدیا

نوع داده بولی Boolean Data Type

نوع داده بولی یا Boolean Data Type چیست؟

بولی (بولین یا Boolean) در علوم رایانه نوع داده‌ای است که تنها می‌تواند یکی از دو مقدار ممکن را داشته باشد؛ معمولا مقادیر مجاز برای این نوع داده با True (به معنای درست) و False (به معنای نادرست) نمایش داده می‌شود.

این نوع داده برای تعیین ارزش عبارات منطقی و جبر بولی مورد استفاده قرار می‌گیرد. عنوان این نوع داده از روی نام جورج بول (George Boole) ریاضیدان انگلیسی گرفته شده است که اولین قدم‌ها را در زمینه سیستم جبری منطق برداشت.

کاربرد نوع داده Boolean

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

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

در قطعه کد زیر با کمک یک مثال ساده نحوه تعریف و مقداردهی یک متغیر بولی و استفاده از آن در زبان برنامه نویسی جاوا را مشاهده می‌کنید. در این زبان، مقدار پیشفرض برای متغیر تعریف شده از نوع داده boolean برابر با false است. از آنجایی که متغیر به true مقداردهی شده است با توجه به دستور شرطی، عبارت result is true در خروجی نمایش داده می‌شود.

boolean result;
result = true;
if (result == true) {
     System.out.println("result is true");
}
else {
     System.out.println("result is false");
}

پیوندهای پیشنهادی تک دیک

 لینک واژه در ویکیپدیا

منبع باز Open Source

منبع باز یا Open Source چیست؟

نرم افزار منبع باز یا متن باز (Open Source) به نرم افزارهایی گفته می‌شود که همراه با سورس کد عرضه می‌شوند و صاحب امتیاز نرم افزار مطالعه و بررسی، تغییر و توزیع آن را به صورت رسمی و با هر هدفی مجاز دانسته است. (نحوه خواندن این اصطلاح به صورت “منبعْ باز” می‌باشد.)

در نقطه مقابل این نوع نرم افزارها، نرم افزارهای مالکیتی یا اختصاصی (Proprietary software) قرار می‌گیرند که با عنوان منبع بسته (Closed Source) نیز شناخته می‌شوند.

نرم افزارهایی که منبع آن ها در اختیار عموم قرار گرفته است اما از لحاظ قانونی مجوز تغییر یا توزیع مجدد آن‌ها صادر نشده است به نرم افزارهای “سورس – در دسترس” (Source-Available) موسوم هستند.

از جمله رایج‌ترین محصولات منبع باز می‌توان به سرور اچ تی تی پی آپاچی (Apache HTTP Server)، مرورگر موزیلا فایرفاکس، مجموعه آفیس LibreOffice، ویرایشگرهای تصاویر GIMP و Inkscape و سیستم مدیریت محتوای وردپرس و جوملا اشاره کرد.

فواید و چالش‌های استراتژی منبع باز

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

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

منبع باز - متن باز Open Source
نرم افزارهای Open Source

آرایه Array

آرایه یا Array چیست؟

آرایه (Array) ساختمان داده ای است متشکل از چندین عنصر (اِلِمان) که برای دسترسی به آن‌ها معمولا از یک اندیس استفاده می‌شود. موقعیت هر عنصر در حافظه از روی این اندیس محاسبه می‌شود.

ساده‌ترین نوع آرایه، آرایه‌ی خطی (Linear) یا تک بُعدی است. به عنوان مثال آرایه‌ای از نوع اعداد صحیح (Integer) با تعداد 5 عنصر را در زبان C++ در نظر بگیرید. این عناصر به اندیس‌های 0 تا 4 این آرایه منتسب می‌شوند. در صورتی که آدرس شروع آرایه در مموری برابر 1000 باشد با درنظر گرفتن اینکه هر مقدار Integer، چهار بایت حافظه نیاز دارد بنابراین پنج عنصر فوق آدرس‌های 1000 تا 1019 حافظه رم را اشغال خواهند کرد.

نوع متداول دیگری از آرایه‌ها که دو بعدی هستند با عنوان ماتریس نیز شناخته می‌شوند. معمولا برای دسترسی به هر عنصر در این آرایه‌ها از دو اندیس استفاده می‌شود، یکی برای سطر و دیگری برای ستون. به عنوان مثال اگر A یک آرایه‌ی دوبعدی با 3 سطر و 3 ستون باشد و اندیس شروع برابر 0 باشد A[1][2] به عنصر موجود در سطر دوم و ستون سوم اشاره می‌کند.

با وجود اینکه کاربرد آرایه‌های با ابعاد بالاتر به اندازه‌ی آرایه‌های خطی و دو بعدی نیست اما محدودیتی در ابعاد آرایه‌ها وجود ندارد. در عین حال تمامی عناصر یک Array باید از یک نوع باشند. معادل ریاضی آرایه، چندتایی (Tuple) می‌باشد.

آرایه ها ممکن است پویا (داینامیک یا Dynamic) باشند به این معنا که اندازه (یا ظرفیت) آن‌ها می‌تواند پس از ایجاد، افزایش یا کاهش داده شود درست برخلاف نوع استاتیک (Static) که در هنگام ایجاد شدن، ظرفیتشان به صورت ثابت مشخص می‌شود و غیرقابل تغییر است.

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

در اغلب زبان‌های برنامه نویسی، اندیس پیش فرض اولین عنصر آرایه برابر با 0 (نظیر خانواده زبان ‌های C و بیسیک) یا 1 (نظیر MATLAB و Fortran) می‌باشد و کران بالای اندیس‌ها براساس نیاز تعیین می‌شود.

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

int Length[5] = {16, 20, 27, 40, 45};

به منظور تجسم این Array می‌توان تصویر زیر را در نظر گرفت. اعداد بالای خانه‌های این تصویر نمایانگر اندیس عنصر متناظر هستند.

آرایه Array
تجسم تصویری یک Array با 5 عنصر – اعداد 16 و 20 و 27 و 40 و 45 عناصر آرایه هستند و اعداد 0 تا 4 که بالای سلول های عناصر قرار گرفته‌اند نمایانگر اندیس ها هستند.

پیوندهای پیشنهادی تک دیک

لینک واژه در ویکیپدیا

متغیر Variable

متغیر یا Variable چیست؟

متغیر (Variable) در برنامه نویسی معادل با بخشی از حافظه است که جهت دسترسی آسان‌تر به محتوای مشخصی که در آن بخش نگه‌داری می‌شود با یک نام نمادین (یا مشخصه منحصربفرد) مرتبط شده است. این محتوا، مقدار (یا Value) نامیده می‌شود. معمولا در سورس کد از نام متغیر برای دسترسی به مقدار منتسب به آن استفاده می‌شود و این مقدار برخلاف مقدار ثوابت (Constant) می‌تواند در طول اجرای برنامه تغییر داده شود.

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

در ساختار اکثر زبان‌های برنامه نویسی قراردادهایی که برای نامگذاری متغیرها درنظر گرفته شده است تقریبا مشابه یکدیگر است. به عنوان مثال عموما نام یک متغیر نمی‌تواند با رقم شروع شود، هم‌چنین استفاده از فاصله و برخی کاراکترهای خاص در اکثر زبان‌ها ممنوع است. با اینحال استفاده از علامت _ برای ایجاد نام‌های چندکلمه‌ای امکان‌پذیر است. همچنین اغلب زبان‌های برنامه نویسی مدرن در مورد نام متغیرها به بزرگی و کوچکی حروف حساس (Case-Sensitive) هستند. به عنوان مثال اگر متغیری با نام xVar تعریف شده باشد باید برای دسترسی به آن دقیقا از همین نام (با حرف V بزرگ) استفاده شود.

بسته به زبان برنامه نویسی، برای هر Variable ممکن است یک نوع (Type) نیز تعریف شود که نشان‌دهنده‌ی نوع مقادیری است که به آن متغیر می‌توان تخصیص داد. متغیرها متناسب با نوع خود می‌توانند مقادیر مختلفی از جمله اعداد صحیح، رشته‌ها، کاراکترها، مقادیر بولی و … را در خود نگه‌داری کنند. بخش‌هایی از سورس کد که در آن می‌توان از متغیر استفاده نمود را قلمرو متغیر (Variable Scope) می‌نامند. کامپایلرها و مفسرها به جای نام متغیر از محل داده‌ی متناظر با آن روی حافظه برای انتساب یا خواندن مقدار استفاده می‌کنند.

نحوه‌ی تعریف متغیرها بسته به زبان برنامه نویسی مورد استفاده می‌تواند متفاوت باشد. به عنوان مثال در زبان C++ دستور int result=0; متغیری به نام result از نوع int (عدد صحیح) با مقدار اولیه 0 ایجاد می‌کند.

پیوندهای پیشنهادی تک دیک

لینک واژه در ویکیپدیا

بایت Byte

بایت یا Byte چیست؟

بایت (Byte) یکی از واحدهای اندازه‌گیری اطلاعات دیجیتال است که معمولا از 8 بیت (bit) تشکیل شده است. در گذشته تعداد بیت‌های لازم برای کدگذاری یک کاراکتر در رایانه را بایت می‌نامیدند.

استاندارد رایج 8 بیتی برای بایت، امکان نمایش باینری اعداد صفر تا 255 را در یک بایت فراهم می‌آورد. البته در گذشته اندازه بایت متغیر و وابسته به سخت افزار بوده است. به همین دلیل در برخی مواقع برای از بین بردن ابهام Byte، از واژه‌ی اختصاصی‌تر Octet (اکتت) با نماد o به عنوان واحدی متشکل از 8 بیت استفاده می‌شود.

لازم به ذکر است نماد Byte، حرف B بزرگ می‌باشد. این در حالی است که معمولا از حرف b کوچک به عنوان نماد بیت استفاده می‌شود. اما به منظور جلوگیری از بروز تداخل میان این دو نماد، استفاده از نماد bit برای واحد بیت توصیه می‌شود.

پیشوندهای بایت

همانند بیت، برای Byte نیز از پیشوندهای کیلو (یا Kilo با نماد K معادل هزار)، مگا (یا Mega با نماد M معادل میلیون)، گیگا (یا Giga با نماد G معادل میلیارد)، ترا (یا Tera با نماد T معادل 10 به توان 12) و … استفاده می‌شود. بر این اساس 1KB معادل 1000 بایت، 1MB معادل یک میلیون بایت و … خواهد بود. به طور مشابه پیشوندهای باینری نظیر کیلوباینری (Ki معادل 1024 یا 2 به توان 10)، مگاباینری (Mi معادل 2 به توان 20) و … برای بایت نیز قابل استفاده هستند. در جدول زیر می‌توانید نماد تعدادی از واحدهای رایج و ضریبی که به آن‌ها منتسب شده است را مشاهده کنید.

ضریبنمادنام نمادضریبنمادنام نماد
103KBkilobyte210KiBkibibyte
106MBmegabyte220MiBmebibyte
109GBgigabyte230GiBgibibyte
1012TBterabyte240TiBtebibyte
1015PBpetabyte250PiBpebibyte
1018EBexabyte260EiBexbibyte
1021ZBzettabyte270ZiBzebibyte
1024YByottabyte280YiByobibyte

نوع داده بایت

در بسیاری از زبان‌های برنامه نویسی (از جمله جاوا، ویژوال بیسیک و سی شارپ) نیز نوع داده‌ای به نام Byte وجود دارد که 8 بیت فضا را اشغال می‌کند و معمولا برای نگه‌داری اعداد صحیح بدون علامت از 0 تا 255 یا اعداد صحیح علامتدار از -128 تا 127 استفاده می‌شود.

پیوندهای پیشنهادی تک دیک

لینک واژه در ویکیپدیا

کلاس Class

کلاس یا Class چیست؟

کلاس (Class) در برنامه نویسی شئ گرا، نوعی قالب برنامه نویسی قابل گسترش است که برای ایجاد اشیاء، تعیین مقادیر اولیه‌ی وضعیت و مشخص نمودن رفتار آن‌ها مورد استفاده قرار می‌گیرد.

شئ (یا آبجکت Object) هایی که از روی کلاس ساخته می‌شوند را یک نمونه (Instance) از آن کلاس می‌نامند. به عنوان مثالی ساده می‌توان کلاسی تحت عنوان Circle را در نظر گرفت که خصوصیات و اعمال (یا رفتار) اشیائی به نام دایره را تعریف می‌کند. با کمک این کلاس، برنامه‌نویس می‌تواند اشیاء (دایره‌های) مختلفی با خصوصیات (مرکز و شعاع) متفاوت ایجاد کند و اعمالی نظیر محاسبه شعاع و مساحت یا ترسیم دایره را روی هرکدام انجام دهد در حالی که تعریف و پیاده‌سازی تمامی این خصوصیات و اعمال یک بار حین تعریف کلاس صورت گرفته است.

آبجکت‌ها معمولا با کمک زیرروال خاصی به نام تابع سازنده‌ (Constructor) ایجاد می‌شوند. این تابع در بسیاری از زبان‌های برنامه نویسی هم نام خود کلاس بوده و وظیفه آماده‌سازی اولیه آبجکت و تعیین مقادیر اولیه متغیرها را برعهده دارد.

متغیرهایی که برای هر آبجکت متمایز و متفاوت هستند متغیرهای نمونه (Instance Variable) نامیده می‌شوند و وضعیت و خواص آن آبجکت را مشخص می‌کنند. متغیرهای دیگری نیز در Class ها تعریف می‌شوند که برای تمام اشیاء به اشتراک گذاشته می‌شود و به آن‌ها متغیرهای کلاس (Class Variable) می‌گویند (طبیعتا با تغییر مقدار این متغیرها توسط یک آبجکت مقدار آن در تمام آبجکت‌ها به همان صورت تغییریافته مشاهده می‌شود).

رفتار یک Class یا نمونه‌های آن توسط متدها (Method) یا توابع عضو (Member Function) مشخص می‌شود. متدها را نیز می‌توان به دو گروه متدهای نمونه و متدهای کلاس دسته‌بندی نمود. در واقع متدها عملی را روی آبجکت یا کلاس انجام می‌دهند.

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

نمونه‌ای از تعریف یک Class ساده با دو متغیر عضو و تابع سازنده آن به زبان Visual Basic .Net:

Public Class Employee
    Public FirstName As String
    Public LastName As String
       
    Public Sub New(ByVal f_name As String, ByVal l_name As String)
        FirstName = f_name
        LastName = l_name
    End Sub
End Class   

تغییردهنده‌های سطح دسترسی امکان کنترل سطح دسترسی به کلاس‌ها، متدها و اعضای آن‌ها را فراهم می آورد. به عنوان مثال تنها متدهای یک کلاس می‌توانند به اعضای خصوصی (Private) آن کلاس دسترسی داشته باشند.

بسته به زبان‌های برنامه نویسی مختلف، ممکن است یک کلاس، کلاس دیگری را در بربگیرد یا با مشتق شدن (به ارث بردن رفتارها و متغیرها) از یک کلاس دیگر، رابطه‌ای سلسله مراتبی با کلاس‌های والد برقرار کند. برای مثال کلاس Employee می‌تواند از کلاسی به نام People (با عناصر و متدهای مرتبط با افراد) مشتق شود چرا که از نظر منطقی هر Employee یک People نیز به شمار می‌رود.

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

پیوندهای پیشنهادی تک دیک

لینک واژه در ویکیپدیا

نوع داده Data Type

نوع داده یا Data Type چیست؟

نوع داده (Data Type) در برنامه‌نویسی، یک دسته‌بندی برای داده‌هاست که به کامپایلر یا مفسر اعلام می‌کند داده موردنظر به چه شکلی مورد استفاده قرار خواهد گرفت. در واقع این دسته‌بندی مشخص‌کننده‌ی گونه داده‌ها از قبیل اعداد صحیح (Integer)، اعداد ممیز شناور (Floating Point)، بولی (Boolean)، کاراکترها (Character)، رشته‌ها (String) و … است و برای هریک مقادیر ممکن، اعمالی که روی مقادیر داده‌های آن قابل انجام است و حتی نحوه‌ی نگه‌داری مقادیر آن نوع را معین می‌کند.

در زبان‌های برنامه‌نویسی، هنگام تعریف هر متغیر (Variable) می‌توان نوع داده‌ی آن را نیز مشخص نمود. انواع داده‌ای که پیشتر به تعدادی از آن‌ها اشاره شد از رایج‌ترین انواع داده‌ای هستند که در اغلب زبان‌ها با عناوین مختلف و البته شبیه به یکدیگر شناخته شده هستند. هر داده بسته به نوع خود و بازه‌ی مقادیر قابل استفاده، فضای متفاوتی را روی حافظه اشغال می‌کند. بنابراین یکی از وظایف برنامه نویس، تشخیص مناسب نوع داده‌ای است که باید برای یک متغیر تعریف کند تا ضمن عملکرد صحیح برنامه، بیش از اندازه‌ی مورد نیاز فضا اشغال نکند. به عنوان مثال، نوع int در زبان برنامه نویسی جاوا (Java)، بیانگر اعداد صحیح 32 بیتی با بازه‌ی منفی 2,147,483,648 تا مثبت 2,147,483,647 است و اعمال قابل انجام روی مقادیر متغیرهای تعریف شده از این نوع داده شامل جمع، تفریق، ضرب و … می‌باشد.

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

در کنار نوع داده‌های اصلی (از قبیل اعداد صحیح، ممیز شناور و بولی)، برخی از انواع داده‌ها از ترکیب انواع اصلی به وجود می‌آیند. آرایه‌ها و مجموعه‌ها از انواع ترکیبی به شمار می‌روند. از جمله دیتا تایپ‌های رایج دیگری که در بسیاری از زبان‌های برنامه نویسی قابل استفاده و ایجاد می‌باشد می‌توان به نوع داده‌های شمارشی (Enumerated) اشاره نمود. مقادیری نظیر سِمَت شغلی که می‌تواند تنها مقادیر مشخصی از قبیل مدیریت، معاونت، کارمند و … را داشته باشد معمولا از همین نوع هستند. ارجاعات (اشاره‌گرها) نیز نوع داده دیگری هستند که مقدار آن در واقع یک آدرس است و این آدرس به مقدار دیگری اشاره می‌کند که در مکانی روی حافظه قرار دارد.

پیوندهای پیشنهادی تک دیک

لینک واژه در ویکیپدیا