Search - SP Page Builder
Easy Profile - Search plugin
جستجو -مجموعه ها
جستجو - تماس ها
جستجو - محتوا
جستجو - خبرخوان ها
جستجو - وب لینک ها
جستجو - برچسب ها
برنامه نویسی

آموزش زبان برنامه نویسی ارلنگ - 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

 

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

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

 

نظرات (8)

  1. ئینا ایرانی

عالیییی بود ممنونن

  پیوست ها
 
  1. اکبر شاهدی

اقا ممنوووووووووووووون بابت سایت خوبتان سایت واقعا عالیههههههه خسته نباشید با اموزش های خوبتان

  پیوست ها
 
  1. nima

mamnoon mohandes ama chera enghadar dir mizari mamnoon misham zordatar bezarid

  پیوست ها
 
  1. Pouriya Jahanbakhsh

{ok,first} ترکیبی از اتم و تاپله نه اتم و لیست.
اینجا باینری رو توضیح ندادی چرا؟ باینری از bitstring خیلی مهم تره، فرقشم این ک باینری تعداد کل بیت هاش ب ۸ بخش پذیره ولی bitstring میتونه ب ۸ بخشپذیر نباشه تعداد بیت هاش. و این ک مقایسه دو تا فایل...

{ok,first} ترکیبی از اتم و تاپله نه اتم و لیست.
اینجا باینری رو توضیح ندادی چرا؟ باینری از bitstring خیلی مهم تره، فرقشم این ک باینری تعداد کل بیت هاش ب ۸ بخش پذیره ولی bitstring میتونه ب ۸ بخشپذیر نباشه تعداد بیت هاش. و این ک مقایسه دو تا فایل رو از کی با bitstring انجام میدن؟ مثال میزنی ؟
توی مثال map یا هر مثال دیگه ای، ۱۶ ک اینتجره، چجوری میگی اتمه ؟

ادامه مطلب
  پیوست ها
 
  1. علیرضا    Pouriya Jahanbakhsh

بله برای {ok,first} درست میگید (خسته بودم دیگه ساعت 1 شب بود! ببخشید) .
ولی برای موضوع دیگه من سایت خود ارلنگ میگه نوع داده Bit Strings and Binaries که از bit syntax ها استفاده میکنه .
و سایت http://www.tutorialspoint.com داده ای Bit Syntax رو...

بله برای {ok,first} درست میگید (خسته بودم دیگه ساعت 1 شب بود! ببخشید) .
ولی برای موضوع دیگه من سایت خود ارلنگ میگه نوع داده Bit Strings and Binaries که از bit syntax ها استفاده میکنه .
و سایت http://www.tutorialspoint.com داده ای Bit Syntax رو به عنوان داده ای اصلی معرفی نکرده .
پس من صلاح دونستم این موضوع رو در مثال هایی که در قسمت رشته ها بگم چون این دو موضوع خیلی باهم مرتبط اند (بهتر بگم bit syntax ها توی توابعی که برای رشته ها به کار میره خیلی کاربرد دارن)
بله حتما برای مقایسه دو فایل مثال میزنم ولی شنبه بعدی (کار دارم دیگه ! بازم ببخشید) ولی میشه همینجا بگم و مثال اش رو هفته بعدی بگم اگه بخوام بگم میشه به باز کردن یک فایل باینری مثل عکس اشاره کرد که اگه اونو به فرم رشته در بیاریم ممکنه برخی از بایت ها برای یک رشته مفهومی نداشته باشه (مثلا یک عکس رو باز میکنی که سایزش n هست بعد عکس رو توی یک رشته ی معمولی میریزی و دوباره اون رشته رو توی یک فایل میریزی در برخی موارد ممکنه سایز عکس شده باشه n-a که خیلی بده) برای همین ماژول base64 از این نوع داده ها استفاده میشه که هرچی بهش دادی رو برات بتونه کد کنه (به دی کد کاری نداریم).
برای مورد بعد هم هم درست میگید ولی یکم هم به من حق بدین دیگه وقت نمیکنم این آموزش رو بنویسم برای همین هر جمه از ساعت 9 تا هر زمانی که تموم بشه مینویسم و خیلی خسته ام ممکنه چند تا مشکل باشه (شما ببخشید) .
امید وارم دفعه بعد این سری از مشکلات ریز به وجود نیاد .
و ممنون از شما که این قدر با دقت ، خوندید حتما درست میکنم (ولی خدایی خیلی کوچولو هست).

ادامه مطلب
  پیوست ها
 
  1. صبا

سلام عالی بود لطفا ادامه بدیددد

  پیوست ها
 
  1. مریم علی دوست

سلام ممنون بابت اموزش خوبتان فقط اموزش شما تمام شد ادامه ندارهه ایا؟؟؟؟؟؟؟؟

  پیوست ها
 
  1. علیرضا    مریم علی دوست

خواهش میکنم .
من چند ماهی درگیر کاری هستم اگه زمان باشه حتما ادامه میدم.

  پیوست ها
 
نظر ارسال شده‌ی جدیدی وجود ندارد

دیدگاه خود را بیان کنید

ارسال دیدگاه بعنوان یک مهمان - ثبت نام کنید و یا وارد حساب خود شوید.
پیوست ها (0 / 3)
اشتراک‌گذاری موقعیت مکانی شما

خبرنامه سلام دیجی

در خبرنامه ایمیلی ما عضو شوید

به جمع همراهان ما بپیوندید و همواره بروز باشید

اطلاعات تماس

در صورت بروزمشکل می توانیدبه ایمیل زیرپیام ارسال کنیدinfo@hellodigi.ir

ساماندهی

logo-samandehi

درباره سلام دیجی

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

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