بایگانی برچسب‌ها : data type

نوع داده شمارشی Enumerated Data Type

نوع داده شمارشی یا Enumerated Data Type چیست؟

نوع داده شمارشی (Enumerated Data Type)، نوع داده‌ای است متشکل از مجموعه‌ای از مقادیر نامگذاری شده (یا شناسه) که به آن‌ها شمارنده (Enumerator) می‌گویند.

نام شمارنده‌ها تقریبا مشابه با ثابت (Constant) هاست. متغیری که از یک نوع شمارشی تعریف شده است می‌تواند صرفا یکی از شمارنده‌های مربوط به آن نوع را به عنوان مقدار خود بپذیرد. در واقع شمارنده‌های تعیین شده برای یک نوع داده شمارشی، تنها مقادیر مجازی هستند که می‌توان به متغیرهای تعریف شده از آن نوع اختصاص داد. به شمارنده‌ها، المان (Element) یا عضو (Member) نیز گفته می‌شود.

به عنوان مثال می‌توان نوع داده‌ای به نام shape_t (به عنوان نوع داده‌ای برای اشکال مختلف هندسی) تعریف کرد که دارای شمارنده‌هایی به نام‌های square (مربع)، triangle (مثلث)، line (خط) و circle (دایره) می‌باشد. در قطعه کد زیر که به زبان C++ نوشته شده است نحوه‌ی تعریف این نوع داده، ایجاد متغیری به نام myshape از این نوع داده جدید و سپس انتساب مقدار به آن نمایش داده شده است. توجه داشته باشید مقادیر مجاز برای متغیرهایی که از نوع shape_t تعریف شده است به شمارنده‌های تعیین شده برای این نوع داده محدود می‌باشد:

enum shape_t {square, triangle, line, circle};
...
shape_t myshape;
myshape = line; 

به عنوان نمونه‌ای دیگر نیز می‌توان نوع داده‌ای به نام week_days تعریف نمود که دارای شمارنده‌هایی با عناوین ایام هفته می‌باشد.

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

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

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

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

آرایه انجمنی 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.";

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

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

نوع داده 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) اشاره نمود. مقادیری نظیر سِمَت شغلی که می‌تواند تنها مقادیر مشخصی از قبیل مدیریت، معاونت، کارمند و … را داشته باشد معمولا از همین نوع هستند. ارجاعات (اشاره‌گرها) نیز نوع داده دیگری هستند که مقدار آن در واقع یک آدرس است و این آدرس به مقدار دیگری اشاره می‌کند که در مکانی روی حافظه قرار دارد.

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

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