اتولیسپ – قسمت 3
در زبان اتولیسپ کار با متغیرها نسبتا ساده است. لیستی از انواع متغیرهایی که می توانید در این زبان مورد استفاده قرار دهید به همراه مثال هر کدام در زیر مشاهده می کنید.

متغیرها برای ذخیره سازی اطلاعات به صورت موقت استفاده میشوند. هدف از ذخیره سازی اطلاعات این است که بعدا از آنها استفاده کنید. به این ترتیب که مثلا شما طول یک خط یا مختصات یک نقطه را درون یک متغیر (مانند LineLength یا ToolKhat) دخیره می کنید تا بعدا به یک ترتیبی از آن استفاده کنید.
برای نسبت دادن یک مقدار به یک متغیر از دستور setq به شکل زیر استفاده می شود:
(setq lineLength 25)
در اینجا ما مقدار 25 را به متغیری با نام LineLength نسبت داده ایم. انتخاب نام متغیرها اختیاری است. میتوانید فینگلیش هم بنویسید.
(setq toolKhat 25)
دقت کنید در هنگام نسبت دادن مقدار به یک متغیر، اتولیسپ به صورت خودکار نوع آن را تعیین می کند. در اینجا چون 25 اعشار ندارد متغیر toolKhat از نوع Integer ساخته می شود. و در هیچ جا لازم نیست نوع متغیر را به صورت دستی تعیین کنید. (اصولا امکان اینکار نیز وجود ندارد!)
اینکه متغیرها را به انواع مختلف تقسیم می کنند و می گویند که اعداد صحیح در نوع Integer ذخیره شوند و اعداد اعشاری را در متغیر از نوع Real دخیره کنید علت اصلیش بالا بردن سرعت پردازش اطلاعات در هنگام اجراست. هر متغیری بخشی از حافظه رایانه (RAM) را اشغال میکند. هر نوع متغیر مقدار متفاوتی برای ذخیره سازی نیاز دارد. اگر ما از قبل به رایانه بگوییم که چه نوع متغیری داریم اختصاص فضا و بعدا بازیابی آن برای رایانه راحت تر میشود و در نهایت سرعت کل برنامه بهینه تر میشود. هرچه یک زبان برنامه نویسی نسبت به نوع متغیرها کمتر حساسیت نشان دهد دردسر های برنامه نویس در نوشتن کد کمتر میشود. اما خطایابی و رفع عیب کد مشکلتر میشود. این نکته از نقاط قوت و البته ضعف برنامه نویسی اتولیسپ است.
تابع setq دو مقدار ورودی (آرگومان) دریافت میکند که اولی نام متغیر و دومی مقدار نسبت داده شده به آن است. کاری که این تابع انجام میدهد این است که آرگومان دوم را درون آرگومان اولی (نام متغیر) میریزد و آن را در حافظه رایانه ذخیره میکند . از این پس هرجا از toolKhat در برنامه نویسی استفاده کنید عدد 25 نمایش داده می شود.
سپس شما می توانید عملیاتهای مختلفی روی این متغیر اجرا کنید.
Command: (+ toolkhat 5)
30
Command: (/ toolkhat 6)
4
Command: (* toolkhat 2)
50
در مورد تابع تقسیم دقت کنید که هر چند 25 بر 6 بخش پذیر نیست اما در خروجی رقم اعشاری مشاهده نمی شود. علتش هم بر میگردد به اینکه هنگام تعریف عدد ورودی 25 بود که Integer در نظر گرفته شد. برای اعشاری کردن آن به شکل زیر عمل می کنیم :
ابتدا باید به تعریف برگردیم !
Command: (setq toolKhat 25.0)
25.0
Command: (/ toolkhat 6)
4.16667
می بینید که این بار خروجی تا 5 رقم اعشار نمایش داده شده است.
متغیرهایی که از نوع string تعریف می شوند در مواردی به کار می روند که شما با عبارتهای نوشتاری کار دارید. مثلا به عنوان ورودی تابع ترسیمی text می توان از این نوع متغیر استفاده کرد.
Command: (setq name "p30ton")
"p30ton"
Command: (strcat "www." name)
"www.p30ton"
Command: (strcat "www." name ".blogfa.com")
"www.p30ton.blogfa.com"
توابع کار با متغیرهای رشته ای (string) زیاد هستند و به روشهای گوناگونی کار می کنند. بیشتر آنها هنگامی که میخواهید از یک فایل نوشتاری اطلاعاتی را استخراج کنید به کار می آیند. دستور strcat چند تکه رشته را پشت سر هم قرار میدهد تا یک رشته ی واحد بسازد.
بهترین راه یادگیری کار با متغیرها استفاده از آنهاست. بیش از حد در شناخت آنها و کار با انواع آنها غرق نشوید. هرجا که لازم باشد با آنها درگیر شوید خواهید شد و این را به آینده ی کاری خود بسپارید!
(پایان قسمت سوم)
من مهندس مکانیک هستم و در زمینه ی طراحی نرم افزارهای فنی و مهندسی مشغول به کار می باشم.