ثابت و متغير
سلام
• جلسه امروز ما، درباره دو مفهوم مهم و پركاربرد در برنامه نويسي است؛ يعني ثابت و متغير؛ اما قبل از آنكه وارد بحث شويم، بايد كمي به حرفاي "من درآوردي" گوش كنيد. از اين جهت من درآوردي كه شايد در كتابي نشود به اين صورت، ساده و دسته بندي شده پيدا كرد.
عمليات برنامه نويسي
• يك عمليات برنامه نويسي، داراي سه بخش، است.
1. دريافت داده. در اين قسمت، اسكريپت، اطلاعاتي را كه نياز دارد، ميگيرد.
2. پردازش داده. در اين قسمت، اطلاعاتي كه تهيه كرده، تجزيه و تحليل ميكند.
3. نمايش داده. در اين قسمت، اطلاعات پردازش شده را، ارائه ميكند.
داخل پرانتز: بعضي از عمليات، آنقدر ساده و بسيط هستند كه نيازي به پردازش ندارند؛ بنابرين، اسكريپت، به محض دريافت اطلاعات لازم، آنرا ارائه ميكند؛ بر خلاف بعضي از عمليات، كه بسيار پيچيده هستند.
مثال: يك ماشين حساب را تصور كنيد. طرز كارش چگونه است؟ شما دو عدد را به او ميدهد، نوع عمليات را برايش مشخص ميكنيد، مثلا جمع؛ ماشين حساب آن عدد و عمليات را پردازش ميكند، و نتيجه را در صفحه نمايش به شما نشان ميدهد. به اميد خدا در چند جلسه آينده ميتوانيد به راحتي يك ماشين حساب بنويسيد.
راه دريافت داده
به نظر شما، يك اسكريپت، از چه راهي اطلاعات خود را به دست ميآورد؟ به تصور من كه از 3 روش.
1. برنامه نويس. معمولا شما به عنوان برنامه نويس، اطلاعاتي را به او ميدهيد. مثلا يك كلمه عبور و پسورد را ذخيره ميكنيد، كه اگر كلمهاي كه كاربر وارد كرده با آن، يكي بود، اجازه ورود به او ميدهد؛ وگرنه با يك پيام خطا، مانع ورود او ميشود.
2. كاربر. بعضي از اوقات، كاربر، اطلاعاتي را به برنامه شما ميدهد؛ مانند مثال قبلي، كه كلمهاي را به عنوان كلمه عبور، وارد كرده.
3. سيستم. در بسياري از مواقع، اين سيستم و رايانه شماست كه منبع اطلاعاتي برنامه است. مثلا براي نمايش زمان و تاريخ، با يك متد ساده، تاريخ مورد نظر را از رايانه، به دست آورده و نمايش ميدهيد.
انواع داده (ثابت و متغير)
بعضي از اطلاعاتي كه يك برنامه، به دست ميآورد، ثابت (Constant) است، و بعضي، متغير (Variable). متغير به اين معني كه يك چيز ثابت، مشخص و از پيش تعريف شده نيست. آنچه كه برنامه نويس، بيشتر با او سر و كار دارد، متغير است.
مثال:
به مثال قبلي دقت كنيد. به نظر شما كدام قسمت از دادهها، ثابت و مشخص است، و كدام، متغير و تعريف نشده؟ كلمهاي كه برنامه نويس نوشته، مشخص و ثابت است، و كلمهاي كه كاربر، ممكن است وارد كند، نامشخص و متغير. زمان و تاريخي كه از رايانه دريافت ميشود، چطور؟ ثابت است يا متغير؟
اميدوارم مطلب، براي شما واضح و ملموس شده باشد.
معرفي متغير و ثابت
بعد از اين مقدمه، بايد ياد بگيريد كه چگونه ميشود يك متغير، به زبان برنامه نويسي نوشت. تا اينجاي درس، ميان تمام زبانهاي برنامه نويسي مشترك بوده؛ ولي نوشتن و مشخص كردن ثابت و متغير، در زبانها، مختلف است. مثلا در زبان ويژوال بيسيك و VB Script با Dim، يك متغير را معرفي ميكنند و با Const، يك ثابت را. در حالي كه در زبان دلفي، PHP و جاوا اسكريپت با Var، متغير معرفي ميشود.
پاورقي: خوشبختانه جاوا اسكريپت در اين زمينه بسيار راحت و ساده برخورد كرده و لازم نيست مانند زبانهاي ديگر، تشريفات خاصي را رعايت كرد.
متغير در جاوا اسكريپت
1. نام گذاري متغير
به اين جمله دقت كنيد و هميشه به خاطر داشته باشيد: " ميتوانيم براي هرچيزي نامي انتخاب كنيم - مثلا براي اطلاعات، يا متدهاي جاوا - و به جاي آنكه مرتبا اسم بلند و طويل، و گاهي مشكل آن متد را بنويسيم، نامي كه خودمان برايش انتخاب كرديم را صدا ميكنيم. "
- يك متغير را در جاوا، بعد از كلمه كليدي var و به اين صورت مينويسند: var name.
- به جاي name، هر اسمي كه دوست داريد بنويسيد. البته بهتر است اسم انتخابي شما، مناسب با نوع متغير باشد.
- هر كجا كه var نوشته شده، مشخص است كه متغيري را ميخواهند تعريف كنند.
2. مقدار دهي متغير
- مقدار دهي يعني مشخص كنيم كه اين متغير، برابر با چه داده و اطلاعاتي است.
- اين كار را با علامت = انجام ميدهيم. اول، نام متغير را نوشته، و بعد از آن مساوي، و سپس داده يا متد مورد نظر را يادداشت ميكنيم. به اين صورت:
var name = new Date ();
مثال: قرار است - با توجه به مطالب اين درس و درس قبل - برنامهاي بنويسيم كه زمان را به ما نمايش دهد.
وسايل مورد نياز:
| كد اسكريپت |
<script></script> |
| متد زمان |
new Date (), toLocaleString() |
| متد نوشتن |
document.write ( ) |
با استفاده از اين وسايل و از روشي كه گفته شد - دريافت داده - پيش ميرويم.
<script>
var D = new Date (); // اولين متغير - متد زمان
var L = D.getHours (); // دومين متغير - متد ساعت - دريافت زمان از سيستم
document.write (L); // متغير خود را درون پرانتز مينويسيم - نمايش داده
</script>
واژه نامه
new Date: متدِ زمان به صورت كلي و مطلق است. بعد از آن بايد نوع زمان خود را مشخص كنيد؛ يعني چه قسمتي از زمان را ميخواهيد بدانيد؛ سال، ماه، هفته، روز و ... . به تنهايي چيزي را نشان نميدهد.
toLocaleString: متدي براي به دست آوردن زمان كامل (تاريخ و ساعت) است كه به عنوان خصوصيت، براي زمان كلي استفاده ميشود.
document.write: متدي كه براي نوشتن متن در صفحه استفاده ميشود.
document.writeln: مانند دستور قبلي عمل ميكند؛ با اين تفاوت كه يك فاصله تا رشته قبلي، ايجاد ميكند.
; : به اين علامت، سِمي كالـِن گفته ميشود كه در پايان هر دستور، ميآيد؛ هر چند در جاوا، اجباري نيست.
// : به اين علامت، كامنت (Comment) گفته ميشود كه براي نوشتن توضيح، در ميان كدهاي برنامه نويسي است. هر عبارتي كه بعد از اين علامت بيايد، توسط برنامه، خوانده و اجرا نميشود و صرفا ً توضيحي است كه برنامه نويس، يادداشت كرده.
• اين هم يك هديه، براي شما دوستان. دستور و متدهاي زمان. در آينده با آنها بيشتر آشنا ميشويد.
|
متدهاي زمان |
| new Date () |
زمان |
|
| toLocaleString () |
زمان كامل |
| toLocaleDateString () |
فقط تاريخ |
| toLocaleTimeString () |
فقط ساعت |
| toGMTString() |
زمان بين المللي |
| getYear() |
سال |
| getMonth() |
ماه |
| getDay() |
روز هفته |
| getDate() |
روز ماه |
| getHours() |
ساعت |
| getMinutes() |
دقيقه |
| getSeconds() |
ثانيه |
جدول شماره 4
پاورقي: زمان، داراي اجزا مختلف است؛ يعني انسان، آنرا به بخشهاي مختلف تقسيم كرده تا قابل استفاده باشد. قسمتي از آن، تاريخ (سال، ماه، هفته و روز) نام دارد، و قسمتي از آن، به اجزا كوچكتر (ساعت، دقيقه و ثانيه) تقسيم شده، و ساعت، ناميده ميشود. البته معيار تاريخ در برنامه نويسي، ميلادي است. براي تبديل به شمسي يا قمري، بايد از برنامه نويسي استفاده كنيد.
تمرين
در مثال قبل، ميتوانيد به جاي getHours، از متدهاي ديگر استفاده كنيد. پيشنهاد ميكنم هر كدام از آنها را به صورت جداگانه در document.write، قرار داده و نتيجهاش را ببينيد.
<script>
var Time = new Date (); // اولين متغير، متد زمان كلي
document.write (D + "<p>");
document.write (D.toLocaleString() + "<p>");
document.write (D.toLocaleDateString() + "<p>");
document.write (D.toLocaleTimeString() + "<p>");
document.write (D.toGMTString() + "<p>");
document.write (D.getYear() + "<p>");
document.write (D.getMonth() + "<p>");
document.write (D.getDay() + "<p>");
document.write (D.getDate() + "<p>");
document.write (D.getHours() + "<p>");
document.write (D.getMinutes() + "<p>");
document.write (D.getSeconds());
</script>
به اميد ديدار
خدانگهدار