انواع داده ها در برنامه نویسی – توضیح Data Types به زبان ساده
در دنیای برنامه نویسی نوع داده به برچسبی میگویند که با تکهای از دادهها همراه شده و به کامپیوتر روش تفسیر مقدار درون این داده را اعلام میکند. بنابراین، داشتن اطلاعات درباره انواع داده ها در برنامه نویسی برای هر دو قشر افراد مبتدی و حرفهای مهم است. در این مطلب با نشان دادن کاربردهای عملی انواع داده ها در برنامه نویسی روش استفاده از این انواع داده را در دنیای واقعی نمایش دادهایم. استفاده از نوع دادههای صحیح، کدهای برنامه نویسان را کارآمدتر و خواناتر میکند. تا انتهای این مطلب، متوجه میشویم که چرا وجود دادههای متنوع در برنامهنویسی ضروری است و چگونه استفاده از انواع داده باعث موفقیت در توسعه نرمافزار میشود.
در این مطلب از مجله فرادرس توضیح میدهیم که چه نوع دادههای وجود دارند و موارد رایج مورد استفاده در زبانهای مختلف برنامه نویسی را فهرست کردهایم. در ابتدا با انواع داده ها در برنامه نویسی به صورت کلی آشنا میشویم و سپس با کمک چند جدول اطلاعات مربوط به این انواع داده را با یکدیگر مقایسه کرده و ویژگیهای هر کدام را بیان میکنیم. بعد از آن فرایند تبدیل نوع را در زبانهای برنامهنویسی گوناگون با کمک مثال سادهای نمایش داده وکدنویسی میکنیم. در نهایت هم چند نکته مهم را درباره نوع داده و اهمیت استفاده از آن بیان کردهایم.
انواع داده ها در برنامه نویسی چه هستند؟
به عنوان چند نمونه از مهمترین انواع داده قابل استفاده در زبانهای مختلف برنامهنویسی، میتواند از موارد زیر نام برد.
- عدد صحیح
- عدد اعشار
- بولین
- کاراکتر
- رشته
- آرایه
- ساختارهای ذخیره داده
- و غیره
نوع داده به ویژگی میگویند که همراه با متغیر یا دادهای ظاهر میشود. این ویژگی به سامانه کامپیوتری میگوید که مقدار این متغیر یا داده را باید چگونه تفسیر کند. همچنین عملیات قابل انجام بر روی این داده را نیز مشخص میکند.
به عبارت دیگر، ویژگی «نوع داده» هر متغیر در برنامهنویسی نرمافزار نوع مقدار درون آن را تعریف میکند. همچنین انواع عملیات ریاضی، رابطهای و منطقی را مشخص میکند که بدون روبهرو شدن با خطا میتوان بر روی مقدار این متغیر انجام داد. برای نمونه، تعداد بسیار زیادی از زبانهای برنامهنویسی از نوع دادههای استرینگ، Integer و Float به ترتیب برای نمایش دادههای متنی، عدد صحیح و عدد اعشاری استفاده میکنند. مفسر یا کامپایلر زبانهای برنامهنویسی میتواند روش استفاده از مجموعهای از دادهها را با نگاه کردن به دادههای درون آن مجموعه تعیین کند.
دادههای دنیای واقعی به طور معمول در اشکال مختلفی به وجود میآیند. چند نمونه از این دادهها را در ادامه فهرست کردهایم.
- نام اشخاص: رشتهای که شامل کاراکترهای الفبایی میشود.
- سن اشخاص: به طور معمول از نوع داده Integer است.
- مقدار پول درون جیب افراد: معمولا از نوع عدد صحیح است.
- تاریخ امروز: این نوع داده را به شکل Date Time مینویسند.
یادگیری برنامه نویسی با فرادرس
همزمان با شناخت انواع داده ها در برنامه نویسی باید بدانیم که برای شروع مراحل آموزش برنامهنویسی روشهای مختلفی وجود دارند. در ابتدا لازم است که بهترین زبان ممکن را با توجه به اهداف ذهنی خود انتخاب کنیم. زبانهای برنامهنویسی متنوعی وجود دارند که هر کدام کاربردها مزایا و ویژگیهای خاصی را شامل میشوند. بهمنظور آشنایی با زبانهای مختلف، پیشنهاد میکنیم که از فیلمهای آموزشی فرادرس استفاده کنید. فرادرس به عنوان یکی از بزرگترین تولیدکنندگان محتوی آموزشی در کشور، بهترین فیلمهای آموزشی را از سطوح اولیه تا سطوح پیشرفته آماده کرده است. بنابراین، تمام جویندگان علم میتوانند نیازهای خود را از این طریق تأمین کنند.
لازم به اشاره است که بیشتر فیلمهای مربوط به دورههای مقدماتی و آشنایی با برنامهنویسی به صورت رایگان در اختیار مخاطبان فرادرس قرار گرفتهاند. با هدف آشنایی شما، چند مورد از این فیلمها آموزشی را در پایین معرفی میکنیم. در صورت نیاز با کلیک بر روی تصویر بالا میتوانید وارد صفحه اصلی این مجموعه آموزشی شده و فیلمهای بیشتر با سطوح علمی پیشرفتهتری را مشاهده کنید.
- فیلم آموزش رایگان پایتون، برنامه نویسی سریع و آسان در ۱۴۰ دقیقه با فرادرس
- فیلم آموزش رایگان اصول و مبانی برنامه نویسی با فرادرس
- فیلم آموزش رایگان برنامه نویسی سی پلاس پلاس به صورت سریع و آسان در ۱۵۰ دقیقه در فرادرس
- فیلم آموزش رایگان برنامه نویسی اندروید به صورت سریع و آسان در ۱۵۰ دقیقه با فرادرس
انواع داده رایج در برنامه نویسی
در حالت کلی انواع داده ها در برنامه نویسی را میتوان به سه دسته مهم تقسیم کرد. تقریبا بقیه انواع داده از این سه دسته منشعب میشوند.
- «نوع داده اصلی یا اولیه» (Primitive Data Type)
- «نوع داده مرکب» (Composite Data Type)
- «نوع داده تعریف شده توسط کاربر» (User Defined Data Type)
برنامهنویسی کامپیوتر یکی از مهمترین مباحث اساسی مطرح شده در علوم کامپیوتر و از جمله مباحث کاربردی مورد استفاده در حوزههای مختلف مهندسی و علوم پایه است. یکی از بهترین روشها برای کسب آشنایی اولیه با برنامه نویسی تماشای فیلم رایگان آموزش اصول و مبانی برنامه نویسی از فرادرس است. به منظور کمک به مخاطبان فرادرس، لینک مربوط به این فیلم را در پایین نیز قرار دادهایم.
در ادامه مطلب& سه نوع داده مهم و کلی را تعریف کردهایم.
نوع داده اصلی یا اولیه
نوع داده اولیه به نوع دادههای گفته میشود که از پیش تعریف شدهاند. این انواع داده از سایر انواع داده، مستقل هستند و شامل موارد خاصی مانند مقادیر متنی یا عددی میشوند. انواع داده اولیه از اساسیترین موارد در دسته خود هستند و به عنوان زیربنایی برای ساخت نوع دادههای پیچیدهتر بهکار برده میشوند. احتمالا همه زبانهای برنامهنویسی از بیشتر موارد انواع داده اصلی استفاده میکنند.
رایج ترین موارد نوع داده اولیه در برنامه نویسی
در این بخش، برای نمایش اطلاعات مربوط به چند مورد از رایجترین انواع داده اولیه در برنامهنویسی جدول زیر را رسم کردهایم.
نوع داده | تعریف | مثال |
«عدد صحیح» (Integer | Int) | نوع داده عددی که فاقد بخش اعشار است. | |
«نوع داده اعشار» (Floating PoInt | Float) | نوع داده عددی را با بخش اعشار آن نمایش میدهد. | |
کاراکتر | Char | حروف الفبا، ارقام به صورت تکی، علائم نگارشی، سمبلها یا فضای خالی | |
بولین | Bool | مقادیر «صحیح» (True) یا «غلط» (false) را نشان میدهد. | true برابر با مقدار 1، false برابر با مقدار 0 |
تاریخ | Date | نوع داده تاریخ را با فرمت «YYYY-MM-DD» نمایش میدهد. | 2024-01-01 |
زمان | Time | برای نمایش ساعت در طول روز از فرمت «hh:mm:ss» استفاده میکند. | 12:34:20 |
تاریخ و زمان | Datetime | زمان و تاریخ را با هم با فرمت «YYYY-MM-DD hh:mm:ss» نمایش میدهد. | 2024 -01-01 12:34:20 |
نوع داده مرکب
نوع دادههای مرکب از چندین نوع اولیه مختلف ایجاد شدهاند که معمولا توسط کاربر ارائه میشوند. به این نوع از دادهها نوع تعریف شده توسط کاربر یا انواع غیر ابتدایی هم گفته میشود. خود نوع داده مرکب را میتوان به سه دستهبندی اصلی تقسیم کرد.
- «نیمه ساختاریافته» (Semi-Structured): در این نوع، دادهها به صورت مجموعهای از روابط ذخیره میشوند. به عنوان مثال میتوان از JSON یا XML نام برد.
- «رسانهای» (Multimedia): از این نوع دادهها برای ذخیره اطلاعاتی مانند تصاویر، موسیقی و ویدئو استفاده میشود.
- «جدولی» (Tabular): دادهها را به شکل جدول ذخیره میکند، چیزی شبیه به جدول در پایگاه داده.
نوع داده های مرکب رایج در برنامه نویسی
در این قسمت نیز برای نمایش اطلاعات مربوط به چند مورد از رایجترین انواع داده مرکب در برنامهنویسی جدول پایین را رسم کردهایم. اطلاعات جدول زیر شامل انواع داده مرکب نیمه ساختاریافته است.
نوع داده | تعریف | مثال |
رشته | string | صفی که از کاراترها، ارقام و سمبلها تشکیل و به عنوان متن یا رشته نامیده میشود. | hello , ram , i am a girl |
آرایه | array | لیستی از عناصر که به صورت منظم در کنار یکدیگر قرار دارند. معمولا عناصر از نوع یکسان هستند. | arr[4]= [0 , 1 , 2 , 3 ] |
نشانگر | poInters | بلوکهای حافظه که به صورت پویا تخصیص، مدیریت و ذخیره میشوند. | *ptr=9 |
نوع داده تعریف شده توسط کاربر
«نوع داده تعریف شده توسط کاربر» (User-defined Data Type | UDT) به نوع دادههایی میگویند که از نوع داده از قبل تعریف شدهای مشتق شوند. به عنوان مثال میتوانیم از سایر نوع دادههای از پیش تعریف شده و در دسترس برای ایجاد نوع داده سفارشی خود استفاده کنیم.
چند مورد از نوع داده تعریف شده توسط کاربر
در این بخش جدولی برای نمایش اطلاعات مربوط به چند مورد از رایجترین انواع داده تعریف شده توسط کاربر در برنامه نویسی رسم کردهایم.
نوع داده | تعریف | مثال |
انواع شمارش شده | enum | مجموعههای کوچکی از مقادیر از پیش شمرده شده که میتواند بر اساس نوع دادههای متنی یا عددی تشکیل شود. | Sunday -0, Monday -1 |
ساختار | Structure | امکان ترکیب دادههایی با نوع داده مختلف را فراهم میکند. | {…} struct s |
مجموعه | Union | شامل گروهی از اشیا دادهای با نوع دادههای متنوع میشود. | {…} union u |
نوع داده پویا و استاتیک
نوع دادههای موجود در متغیرها را میتوان به دو روش پویا و استاتیک معین کرد. برای درک بهتر مطلب به جدول نمایش داده شده در پایین توجه کنید.
ویژگی | «تعیین نوع ایستا» (Static Typing) | «تعیین نوع پویا» (Dynamic Typing) |
تعریف انواع داده | نیاز به تعریف صریح انواع داده دارد. | انواع داده در زمان اجرا تعیین میشوند. |
اعلام نوع داده | برنامهنویس به صورت صریح نوع داده متغیر را اعلام میکند. | نیازی به اعلام نوع داده وجود ندارد. |
کشف خطا | تشخیص زودهنگام خطا در زمان کامپایل | خطاها شاید در زمان اجرا ظاهر شوند. |
خوانایی کد | انواع صریح میتوانند باعث ارتقای خوانایی کد شوند. | کدها کوتاهتر میشوند اما میزان صراحت هم کمتر میشود. |
انعطافپذیری | به دلیل مشخص شدن نوع در زمان کامپایل انعطافپذیری کمتری دارد. | به دلیل اجازه به متغیرها برای تغییر نوع، انعطافپذیری بیشتری دارد. |
فرایند کامپایل | به مرحله جدایی برای اجرای عملیات کامپایل نیاز دارد. | نیاز به مرحله جدا برای اجرای فرایند کامپایل ندارد. |
چند مورد زبان به عنوان مثال | C و Java و Swift | Python و JavaScript و Ruby |
تغییر نوع متغیرها در برنامه نویسی
تبدیل مقدار انواع دادهای، مانند Integer و Float یا Double به انواع دیگر داده، به عنوان «تغییر نوع» (Type Casting) نامیده میشود. برنامهنویسان این امتیاز را دارند که میتوانند این عملیات را به صورت دستی یا خودکار انجام دهد. یعنی در واقع، عملیات تغییر نوع میتواند به دو صورت دستی توسط شخص برنامهنویس یا خودکار توسط کامپایلر انجام گیرد.
عملیات Type Casting بعضی وقتها به عنوان عملیات تبدیل نوع هم شناخته میشود. به عنوان مثال اگر لازم داشته باشیم که دادههایی را به صورت عدد صحیح در برنامه ذخیره کنیم، برنامهنویس میتواند مقدار متغیر بلندی را به مقدار Int تغییر نوع دهد. بنابراین، Type Casting تکینیکی است که به توسعهدهندگان اجازه میدهد، از علمگر مخصوص تغییر استفاده کرده و مقداری دادهای را از نوعی به نوع دیگر تبدیل کنند.
تصور کنید که مقداری را در اختیار داریم. به عنوان مثال، برنامه، مقدار عدد ۳۰ را به عنوان سن از ورودی گرفته و ذخیره کرده است. الان میخواهیم که پیغامی را به صورت «Your age is: 30 years» در وبسایت یا اپلیکیشن خود به کاربر نمایش دهیم. برای نشان دادن عدد ۳۰ به عنوان قسمتی از پیام، باید نوع داده متغیر سن را از عدد صحیح به رشته در برنامه نویسی تغییر دهیم.
مثالی بسیار ساده برای توضیح Type Casting
فرض کنیم که دو نوع ظرف برای نگهداری دادهها در اختیار داریم. یکی برای نگهداری دادههای عددی و دیگری برای نگهداری کلمات استفاده میشوند. از طرفی هم بر روی تکه کاغذی، عددی مانند «۴۲» نوشته شده است. میخواهیم که عدد را در ظرف در نظر گرفته شده برای کلمات ذخیره کنیم. عملیات Type Casting یعنی اینکه عدد را دریافت و نوع داده آن را به کلمه - چهل و دو - تبدیل کنیم. سپس کلمه بدست آمده را در ظرف مخصوص کلمات قرار دهیم. به همین صورت در برنامهنویسی هم ممکن است که عددی مانند ۴۲ داشته باشیم. این عدد با نوع خاصی در حافظه ذخیره شده است. اما در زمان استفاده باید به نوع دیگری مانند کلمه یا متن تبدیل شود. بنابراین برای انجام این عملیات تبدیل نوع باید از تکنیک Type Casting کمک بگیریم.
انواع Type Casting
فرایند Type Casting در زبان برنامهنویسی C با دو روش اصلی انجام میگیرد.
- Implicit: به صورت درونی توسط کامپایلر انجام میشود.
- Explicit: به صورت دستی توسط برنامهنویس انجام میشود.
سینتکس مورد استفاده در زبان C برای تبدیل نوع به صورت زیر است.
1<datatype> variableName = (<datatype>) value;
در سینتکس بالا مقداری را با نوع داده مخصوص به آن از سمت راست datatype در متغیری با نوع داده مخصوص به آن در سمت چپ datatype وارد میکنیم.
در ادامه عملیات تبدیل نوع را در زبانهای مختلف با تکنیکهای گوناگون نمایش دادهایم.
تبدیل نوع داده Int به Double
تبدیل نوع Int به Double فرایند بسیار سادهای دارد. البته در زبانهای مختلف با روشهای متفاوتی انجام میشود. این عملیات را در ۵ زبان برنامهنویسی نمایش دادهایم.
Int به Double با زبان ++C
در کد زیر، روش تبدیل دادهای از نوع Int را به Double با استفاده از زبان برنامه نویسی ++C نمایش دادهایم.
1#include <iostream>
2using namespace std;
3
4int main() {
5int intValue = 54;
6double doubleValue;
7doubleValue = intValue;
8cout << "int value: " << intValue << endl;
9cout << "double value: " << doubleValue << endl;
10return 0;
11}
خروجی حاصل از اجرای کد بالا به صورت زیر به کاربر نمایش داده میشود.
int value: 54 double value: 54
Int به Double با زبان جاوا
در کد زیر، روش تبدیل دادهای از نوع Int را به Double با استفاده از زبان برنامه نویسی جاوا نمایش دادهایم.
1import java.util.Scanner;
2
3public class Main {
4 public static void main(String[] args) {
5 int intValue = 54; // Declaring and initializing an integer variable
6 double doubleValue; // Declaring a double variable
7 doubleValue = intValue; // Implicit conversion from int to double
8 System.out.println("int value: " + intValue); // Printing the integer value
9 System.out.println("double value: " + doubleValue); // Printing the double value
10 }
11}
خروجی حاصل از اجرای کد بالا به صورت زیر به کاربر نمایش داده میشود.
int value: 54 double value: 54
Int به Double با زبان پایتون
در زبان برنامه نویسی پایتون عملیات تبدیل نوع به صورت خودکار انجام میشود. از آنجا که در این مثال از عدد ۵۴ استفاده کردهایم. نیازی به تبدیل این نوع از Int به Double نداریم. در زمان اجرای برنامه در صورتی که محاسبات به شکلی پیش بروند که در نهایت این عدد به نوع Double تبدیل شود، خود مفسر پایتون، عملیات تبدیل نوع را به صورت خودکار انجام میدهد.
Int به Double با زبان #C
در کد زیر، روش تبدیل دادهای از نوع Int را به Double با استفاده از زبان برنامه نویسی #C نمایش دادهایم.
1using System;
2
3class MainClass {
4 public static void Main (string[] args) {
5 int intValue = 54; // Declaring and initializing an integer variable
6 double doubleValue; // Declaring a double variable
7 doubleValue = intValue; // Implicit conversion from int to double
8 Console.WriteLine ("int value: " + intValue); // Printing the integer value
9 Console.WriteLine ("double value: " + doubleValue); // Printing the double value
10 }
11}
خروجی حاصل از اجرای کد بالا به صورت زیر به کاربر نمایش داده میشود.
int value: 54 double value: 54
Int به Double با زبان جاوا اسکریپت
در کد زیر، روش تبدیل دادهای از نوع Int را به Double با استفاده از زبان برنامه نویسی جاوا اسکریپت نمایش دادهایم.
1let intValue = 54;
2
3// Declaring a double variable
4let doubleValue;
5
6// Implicit conversion from int to double
7doubleValue = intValue;
8
9// Printing the integer value
10console.log("int value: " + intValue);
11
12// Printing the double value
13console.log("double value: " + doubleValue);
خروجی حاصل از اجرای کد بالا به صورت زیر به کاربر نمایش داده میشود.
int value: 54 double value: 54
جاوا اسکریپت امروزه به یکی از رایجترین زبانهای برنامه نویسی تبدیل شده است. از این رو درک و یادگیری دستورات جاوا اسکریپت برای علاقهمندان و برنامهنویسانی که از این زبان استفاده میکنند، امری ضروری به حساب میآید. در صورتی که با زبان جاوا اسکریپت کار میکنید و بهدنبال ارتقای مهارت خود هستید، پیشنهاد میکنیم که مطلب ۵۰ دستور کلیدی از دستورات جاوا اسکریپت که باید بدانید را از مجله فرادرس مطالعه کنید.
تبدیل نوع داده Double به Int
تبدیل نوع Double به Int فرایند تقریبا مشابهی با عملیات بالا دارد. البته این عملیات هم در زبانهای مختلف با توابع، روشها و سینتکسهای متفاوتی انجام میشود. در قسمت پایین، این عملیات را در ۵ زبان برنامهنویسی نمایش دادهایم.
Double به Int با زبان ++C
در کد زیر، روش تبدیل دادهای از نوع Double به Int را با استفاده از زبان برنامهنویسی ++C نمایش دادهایم.
1#include <iostream>
2using namespace std;
3
4int main() {
5double doubleValue = 54.7;
6int intValue;
7intValue = doubleValue;
8cout << "double value: " << doubleValue << endl;
9cout << "int value: " << intValue << endl;
10return 0;
11}
بعد از اجرای کد بالا، خروجی زیر به کاربر نمایش داده میشود.
double value: 54.7 int value: 54
Double به Int با زبان جاوا
در کد زیر، روش تبدیل دادهای از نوع Double به Int را با استفاده از زبان برنامهنویسی جاوا نمایش دادهایم.
1public class Main {
2 public static void main(String[] args) {
3 // Declaring a double variable
4 double doubleValue = 54.7;
5
6 // Converting the double to an integer
7 int intValue = (int) doubleValue;
8
9 // Printing the double value
10 System.out.println("double value: " + doubleValue);
11
12 // Printing the integer value
13 System.out.println("int value: " + intValue);
14 }
15}
بعد از اجرای کد بالا، خروجی زیر به کاربر نمایش داده میشود.
double value: 54.7 int value: 54
Double به Int را با زبان پایتون
در کد زیر، روش تبدیل دادهای از نوع Double به Int را با استفاده از زبان برنامهنویسی پایتون نمایش دادهایم. در این کد متغیری را با نوع Double معرفی کرده و مقداری را به آن اختصاص دادهایم. البته توجه دارید که در زبان پایتون تعیین نوع ظرف یا متغیر، بسته به دادهای است که به آن اختصاص میدهیم. خود پایتون به صورت پیشفرض تمام اعداد دارای مقداری اعشار را از نوع Float به حساب میآورد. سپس در صورت نیاز در محاسبات خود میتواند نوع دادهها را به یکدیگر تبدیل کند.
اما یکی از روشهای تبدیل سایر نوعها به عدد صحیح استفاده از تابع Int در پایتون است.
1# Declaring a double variable
2double_value = 54.7
3
4# Converting the double to an integer
5int_value = int(double_value)
6
7# Printing the double value
8print("double value:", double_value)
9
10# Printing the integer value
11print("int value:", int_value)
بعد از اجرای کد بالا، خروجی زیر به کاربر نمایش داده میشود.
double value: 54.7 int value: 54
Double به Int با زبان #C
در کد زیر، روش تبدیل دادهای از نوع Double به Int را با استفاده از زبان برنامهنویسی #C نمایش دادهایم.
1using System;
2
3class MainClass {
4 public static void Main (string[] args) {
5 double doubleValue = 54.7; // Declaring and initializing a double variable
6 int intValue; // Declaring an integer variable
7 intValue = (int)doubleValue; // Explicitly casting the double value to an int
8 Console.WriteLine ("double value: " + doubleValue); // Printing the double value
9 Console.WriteLine ("int value: " + intValue); // Printing the integer value
10 }
11}
بعد از اجرای کد بالا، خروجی زیر به کاربر نمایش داده میشود.
double value: 54.7 int value: 54
Double به Int با زبان جاوا اسکریپت
در کد زیر، روش تبدیل دادهای از نوع Double به Int را با استفاده از زبان برنامهنویسی جاوا اسکریپت نمایش دادهایم.
1// Declaring a double variable
2const doubleValue = 54.7;
3
4// Converting the double to an integer
5const intValue = Math.floor(doubleValue);
6
7// Printing the double value
8console.log("double value: " + doubleValue);
9
10// Printing the integer value
11console.log("int value: " + intValue);
بعد از اجرای کد بالا، خروجی زیر به کاربر نمایش داده میشود.
double value: 54.7 int value: 54
متغیرها و انواع داده ها در برنامه نویسی
به قسمتی از حافظه که برای ذخیره دادهها اختصاص داده شده، متغیر میگویند. متغیرها در برنامه نویسی برای نگهداری اطلاعات استفاده میشوند. هر متغیر دارای ۳ ویژگی اصلی است:
- نام
- مقدار
- نوع
در زمان اجرای برنامه، مقدار متغیر میتواند دائما در حال تغییر باشد.
نوع داده ویژگیهای متغیر و همچنین رفتارهای وابسته به نوع دادهها را مشخص میکند. یعنی مشخص میکند که این متغیر در چه نوع عملیاتی قابل استفاده است. همینطور، دادههای ذخیره شده در متغیرها وابسته به نوع دادهای هستند که برای متغیر تعیین شده. در واقع نوع داده است که نوع اطلاعات ذخیره شده در متغیر را تعیین میکند. انواع داده درونی بسیار زیادی مانند اعداد صحیح، اعداد اعشار، نوع داده Double، کاراکتر و بولین توسط زبان برنامهنویسی C پشتیبانی میشوند. هر نوع دادهای محدوده مشخصی از مقادیر را شامل میشود. به همین ترتیب هم مقدار حافظه مورد استفاده مشخص و قابل محاسبهای دارد.
مثال
جعبهای را تصور کنید که با برچسب «سن» علامتگذاری شده است. در ابتدای کار میتوانید عدد دلخواهی مانند ۲۵ را در آن قرار دهید و بعد از آن میتوانید مقدار آن عدد را با عدد دیگری مانند ۳۰ تعویض کنید. جعبهای هم با برچسب «عدد» طراحی شده تا مقادیر عددی مانند ۴۲ را در خود نگهداری کند. جعبه دیگری که با کلمه «نام» برچسبگذاری شده، نیز برای نگهداری مقادیر متنی یا کلمات مانند «John» طراحی شده است. بنابراین به عبارت ساده میتوانیم این چنین بیان کنیم که متغیر مانند جعبهای است که برای نگهداری چیزها قابل استفاده است. اما نوع داده مانند برچسب روی آن جعبه است. این برچسب تعیین میکند که چه نوع چیزی را میتوان در جعبه نگهداری کرد. این دو با یکدیگر به کامپیوتر کمک میکنند که اطلاعات مورد استفاده در برنامه را درک و مدیریت کند.
امنیت نوع در برنامه نویسی
عبارت «امنیت نوع» (Type Safety) مربوط به انواع داده ها در برنامه نویسی، به ساختار انتزاعی خاصی اشاره میکند. این ساختار انتزاعی به برنامه برای دوری کردن از «خطاهای مربوط به نوع» (Type Errors) کمک میکند. امنیت نوع، ویژگی الزامی و پشت پرده در تمام زبانهای برنامهنویسی است. به این معنا که کامپایلر نوع متغیرها را در زمان کامپایل کردن برنامه بررسی میکند. اگر تلاش کنید که نوع داده اشتباهی را به متغیری تخصیص دهید، کامپایلر با پیغام خطا پاسخ میدهد. در کنار عملیات کامپایل، امنیت نوع در طول زمان اجرای برنامهها نیز تایید میشود.
ویژگی امنیت نوع، تضمین میکند که هیچ عملیات نابهجایی در لایههای زیرین کد نیز انجام نشوند.
برای نمونه، سختافزار کامپیوتری ۳۲ بیتی را در نظر بگیرید. این سیستم را میتوان برای ارائه کاراکترهای ASCII، اعداد صحیح یا اعشار بهکار برد. با توجه به موقعیت پیشامده این تفسیرها میتوانند دقیق باشند. برای مثال، وقتی که از زبان اسمبلی استفاده میکنیم، برنامه به تنهایی مسئولیت کامل ردگیری نوع دادهها را بر عهده دارد. اگر در سیستم ۳۲ بیتی که در واقع اعداد صحیح را نمایش میدهد، عملیات جمع کردن را بر روی اعداد اعشار انجام دهیم، نتیجه نامشخص خواهد بود. به این معنا که نتایج خروجی میتوانند از کامپیوتری به کامپیوتر دیگر فرق کنند.
روش های موثر برای آموزش اصولی برنامه نویسی
شناخت انواع داده ها در برنامه نویسی و دانستن روش کار با آنها برای افراد مبتدی و حرفهای لازم است. اما برای حل کردن بعضی از مسائل به آموزشهای پیشرفتهتری نیاز داریم. به همین ترتیب، حرفهایترین آموزشهای برنامهنویسی نیازمند صرف هزینه و زمان زیادی هستند. وبسایت فرادرس، به عنوان یکی از بزرگترین و بهترین تولیدکنندگان محتوای آموزشی فارسی، همیشه به دنبال راهی بوده که بتواند با کیفیتترین آموزشها را تولید کرده و در اختیار جویندگان علم قرار دهد. فیلمهای آموزشی فرادرس از جهات مختلف مانند هزینه، زمان و غیره نسبت به کلاسهای حضوری، بسیار مقرون به صرفهتر هستند. علاوه براین همیشه قابلیت بازبینی مجدد و مرور را هم دارند.
بخش مربوط به دورههای آموزشی کامپیوتری فرادرس، فیلمهای آموزشی متنوعی را درباره زبانهای برنامهنویسی، متناسب با انواع سطوح علمی مخاطبان و با بهترین کیفیت فراهم کرده است. در قسمت پایین، چند مورد از فیلمهای سطح بالا و تخصصی مربوط به چند زبان برنامهنویسی مختلف را معرفی کردهایم.
- فیلم آموزش برنامه نویسی پیشرفته و شی گرایی در C++ با فرادرس
- فیلم آموزش الگوهای طراحی یا دیزاین پترن در پایتون با فرادرس
- فیلم آموزش برنامه نویسی شی گرا در Python با فرادرس
- فیلم آموزش کاربردی برنامه نویسی سی شارپ با فرادرس
- فیلم آموزش برنامه نویسی متلب برای علوم و مهندسی با فرادرس
- فیلم آموزش کدنویسی تمیز برای بهینه سازی و خواناتر شدن کد در فرادرس
اگر نیاز به آموزش زبان دیگر یا مبحث دیگری دارید با کلیک بر روی تصویر بالا وارد صفحه اصلی مجموعه آموزش شوید و گزینه مورد نظر خود را بیابید.
اهمیت وجود انواع داده ها در برنامه نویسی
شاید برای برنامهنویسان مبتدی جای تعجب باشد که چرا باید نسبت به همه انواع داده اطلاعات داشته باشند. در حالی که فقط به درک چگونگی استفاده از دادههای مشتری نیاز دارند. دلیل اصلی این است که باید دادههای تمیز و منسجمی جمعآوری کنند. بدون درک درباره ماهیت انواع داده انجام اینکار غیر ممکن میشود.
دانش موجود درباره انواع داده ها در برنامه نویسی، در دو مرحله از تلاشهای مربوط به جمع آوری داده به کمک برنامهنویس میآیند. این دو مرحله مهم را در ادامه توضیح دادهایم.
Instrumentation
فرایند ردگیری «دادههای رفتاری» (Behavioral Data) از منابع داده اولیه و همگامسازی آنها با سیستم ذخیرهسازی درونی یا بیرونی به عنوان Instrumentation شناخته میشود. به بیان بهتر، عملیات Data instrumentation اشاره به دو مسئله پردازش جمعآوری دادهها و ابزار مورد استفاده برای این کار دارد. این عملیات شامل انتخاب کردن، ساختن، طراحی و پیادهسازی روش یا دستورالعملی برای جمعآوری داده میشود.
اولین قدم در فرایند Instrumentation، ساخت نقشهای برای ردیابی دادهها است. وقتی که تصمیم گرفتیم چه اتفاقاتی باید ردگیری و چه صفاتی باید جمعآوری شوند، یعنی ویژگیهای مربوط به تمام موجودیتها و اتفاقات. مشخص کردن نوع داده مربوط به هر ویژگی در نقشه ردیابی باعث میشود که فرایند Instrumentation به صورت کارآمدتر و با خطای کمتری اجرا شود.
این مسئله به طور خاص برای مهندسینی که در حال پیادهسازی سامانههای مختلف، کارآمد است. تضمین اینکه هر ویژگی با نوع داده صحیح مربوط به آن ارسال شده، به دوری کردن از ایجاد تناقضات در دادهها کمک میکند.
تجزیه و تحلیل
به عنوان متخصص داده، احتمالا به جمعآوری داده از کاربران با کمک نظرسنجی اقدام خواهید کرد. انتهای سوالات نظرسنجی میتوانند باز باشند تا مشتری یا کاربر اطلاعاتی از جنس عدد یا متن وارد کند. یا شامل انتخابهای از پیشتعریف شدهای مانند لیستهای آبشاری با نوع داده enum، چک باکسها با نوع داده آرایه، دکمههای رادیویی با نوع داده بولین و غیره شوند.
برای اینکه دادههای بدست آمده از نظرسنجی را در پایگاه داده یا سیستم طرف سومی ذخیره کنیم، نیاز به تعریف نام خاصی برای هر ویژگی - نام، فامیل، شماره ملی، تاریخ تولد و غیره - و نوع داده متناظر با آن مانند رشته، عدد صحیح، تاریخ و غیره داریم. برای مثال ویژگی نام، مقدار وارد شده را ذخیره میکند و نوع داده تایید میکند که این مقدار از همان نوعی است - رشته - که باید باشد.
در نتیجه این رویکرد، انسجام دادهها تضمین میشود و بنابراین، فرایند تجزیه و تحلیل و انجام انواع عملیات در نظر گرفته شده بر روی دادهها بهسادگی و بدون مشکل ممکن میشود. البته تجزیه و تحلیل پاسخ سوالاتی با اتنهای باز به فرایند سختتری نیاز دارد. زیرا جمعآوری داده از این دسته پاسخها، بدون تجزیه و منطبق کردن متن پاسخ با جوابهای احتمالی و مورد نظر ممکن نیست.
انتخابهای از پیشتعریف شده فرایند تحلیل دادهها را سادهتر میکنند و بعدا در صورت تغییر انتخابها نیز بهسادگی میتوان جواب را تحلیل کرد. این کار به کمک نوع دادههای آرایه و enum به راحتی ممکن میشود.
جمع بندی
مهندسین نرمافزار با استفاده از انواع داده ها در برنامه نویسی میتوانند کدهای قابل اعتماد و کارآمدی را ایجاد کنند. انواع داده علاوه بر کمک برای نوشتن کدهای بهینهتر به برنامهنویسان، به سازمانها هم کمک میکنند که دادههای خود را از مرحله جمعآوری تا مرحله یکپارچهسازی به روش پربازدهتری مدیریت کنند.
- انواع داده ها در برنامه نویسی، پایههای اصلی زبانهای برنامه نویسی را تشکیل میدهند.
- با توجه به دادههای گوناگونی که در دسترس هستند، انواع داده متنوعی هم تعریف شده و در دسترس برنامهنویسان قرار دارند.
- انواع داده را به صورت کلی میتوان در سه دسته تقسیم کرد:
- «نوع داده اصلی یا اولیه» (Primitive Data Type): مثال Int و Float و Char و Bool
- «نوع داده مرکب» (Composite Data Type): مثال String و Array و Pointers
- «نوع داده تعریف شده توسط کاربر» (User Defined Data Type): برای مثال میتوان به کلاسهای تعریف شده توسط کاربر در زبانهای شیءگرایانه اشاره کرد.
در این مطلب از مجله فرادرس درباره انواع داده ها در برنامه نویسی و مشخصات آنها صحبت کردهایم. روش تبدیل نوع، دلایل و اهمیت امنیت نوع» (Type Safety) و وجود انواع دادهها را نیز در نهایت مورد بررسی قرار دادیم.