برنامه نویسی

آموزش زبان برنامه نویسی ارلنگ - Datatype (قسمت سوم)

امتیاز کاربران

ستاره فعالستاره فعالستاره فعالستاره غیر فعالستاره غیر فعال
 

به نام خدا
سلام منو برای تاخیر ببخشید ، کار داشتم دیگه !

خوب بریم سراغ آموزش این قسمت میخوایم درباره نواع داده (Datatype) صحبت کنیم .

اول بریم سراغ کلمات از پیش تعیین شده زبان Erlang .
این ها :

after

and

andalso

band

begin

bnot

bor

bsl

bsr

bxor

case

catch

cond

div

end

fun

if

let

not

of

or

orelse

receive

rem

try

when

xor

 

 

 

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

 

میرم سراغ داده ها :

 

Integer


یا همون مقدار عددی ، توی ارلنگ دو نوع ازInteger ها رو داریم یکی float ها و دیگری خود Integer ها .

 

Atom


اتم ها به صورت ok ویا ali ویا هر شکلی تو همین حدود نوشته میشن که میشه گفت بیان گر حالی هست و چند تا قاعده داره مثلا حرف اول اتم باید کوچک نوشته بشه و یا نام اتم نباید با نام های از پیش تعین شده یکی باشه ، اگه بخوام یک نمونه مثال بزنم میتونم به آخر بخش اول اشاره کنم که گفتیم اگه برنامه کامپایل شد میگه {ok,first} که ترکیبی از لیست و اتم ها هست .

 

Boolean


یا همون درست و غلط که یک نوع داده هست که توش دو داده از نوع Atom هست که یا true است یا false .

 

Bit String


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

 

Tuple 


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

 

Map 


نوعی از داده هست که میتونه چند نوع از داده هارو تو خودش نگه داره . که هر عنصر به صورت کلید-متعیر هست به مثال زیر نگاه کنید :

2017-09-22_14-57-44

در این مثال name و age همون key ها هستند و Alireza و 16 همون متغیرها هستند . دقت کنید که Alireza  و 16 از نوع atom هستند چون با حرف بزرگ انگلیسی شروع نشده اند .
نکته : طول یک Map رو عنصر های اون تایین میکنند طول این Map دو هست .

 

List 


یا همون فهرست ، یک نوع داده با چند عنصر که طول list رو عنصر هاش تعیین میکنند .

 

پیشنهاد میکنم مثال ها رو با دقت بخونید تا بتونید همه چیز رو به خوبی درک کنید چون خیلی چیز ها رو نمیشه شرح داد .

مثال برای :

 

عددها


توی این مثال عدد 4 و 8 رو باهم جمع کردیم و بعد اون هارو توی فرم (w~) چاپ کردین و سپس با (n~) رفتیم به خط بعدی تا ok که مقادر بازگشتی تابع fwrite از ماژول io هست توی کار ما تداخل ایجاد نکنه .

 

2017-09-22_15-21-17

 

اتم ها


توی این مثال یک اتم رو چاپ کردیم و بعد رفتیم به خط بعدی (بعدا میگم چطور همه این کار رو توی یک خط انجام بدین)

 

2017-09-22_15-24-51

 

منطقی ها


فکر نکنم توضیح لازم باشه !

 

2017-09-22_15-27-01

رشته های بیتی


توی این مثال اومدیم یک رشته بیتی درست کردیم و اون رو توی متغری به نام Bin1 قرار دادیم (توی آموز بعدی حسابی برای متغیر ها میگم الان تنها میتونم بگم که متغیر با حرف بزرگ شروع میشه) و تا تابع binary_to_list نوع باینری رو به list تبدیل کردیم و اونو توی متغری به نام X ریختیم و سپس متغیر X رو چاپ کردیم (شما میتونید تابع start رو که سه خط داره توی یک خط بنوسید (مثام برای تمرین) ).

 

2017-09-22_15-29-33

 

چند تایی ها


توی این مثال یک چندتایی ساختیم و اون رو توی متغیر P قرار دادیم و با کمک تابع tuple_size اندازه (تعداد عناصر) رو گرفتیم و چاپ کردیم .
اگه میگید این که 4 تا عضو داره پش چرا می نویسه 3 تا بهتون پیشنهاد میکنم که به مجموعه های ریاضی یک نگاه کوچیک بکنید.

 

2017-09-22_15-33-09

 

نقشه ها 


توی این مثال یک نقشه با کلید هایی به نام های name و age درست کردیم که به ترتیب مقدار های alireza و 16 رو بهشون دادیم و این نقشه رو توی متغیری به نام M1 ذخیره کردیم .
بعد با تابع map_size اندازه (تعداد کلید ها) ی M1 رو درپافت کردیم و سپس با تابع get از ماژول maps که به صورت (maps:get(Key,Mapp هستش گفتیم برو از M1 مقدار Key ی که اسمش name هست رو بیار ، اونم مثل پسر خوب به حرف ما گوش میکنه ! و بعد ما همه این ها رو چاپ کردیم .

 

2017-09-22_15-37-16

 

فهرست ها


توی این مثال فهرستی از مضارب 2 از 2 تا 10 رو درست کردیم و  و توی متغیری به نام L ریختیم و بغد با تابع length طول اون لیست رو چاپ کردیم .

 

2017-09-22_15-39-31

 

این هم فایل ها (دانلود کنید ، اجرا کنید ، بفهمید ، توسعشون بدید)

و در آخر شروع ماه محرم و شهادت مظلومانه امام حسین (ع) و یاران ایشون رو به شما تسلیت میگم.

 

تمام حقوق سایت برای سلام دیجی و نويسندگان آن محفوظ می باشد