آشنايي با برنامه نويسي، آموزش جاوا اسكريپت ابتدايي
1جلسه 12
آرايه
سلام
داخل پرانتز: همگي خسته نباشيد. اجازه بدهيد قبل از اينكه درس جديد را شروع كنم، صحبتي داشته باشم. به دوستان جديدي كه به جمع ما پيوستهاند، خوش آمد ميگويم. اميدوارم چيزهاي كمي كه ميدانم به درد شما بخورد. به دوستان قديمي خسته نباشيد گفته و يك گلايه هم دارم. سوالي كه در جلسه قبل كردم، بيجواب ماند.
بيشتر از يك هفته است كه درباره موضوعي مطالعه ميكردم، به نام كوكي (Cookie). با اينكه از مباحث مهم و كاربردي جاوا اسكريپت است، متاسفانه نه در كتاب آموزشي و نه در سايتهاي معروف و مهم، اثري از آن ديدم. طبق معمول، بدون آموزش، از نمونههاي موجود استفاده كرده و سعي داشتم از آنها بياموزم كه چطور نوشته ميشود. تقريبا از جستجو، نااميد شده بودم؛ تا اينكه به يكي دو تا پايگاه برخوردم، كه منبع بزرگي از كوكي هستند. هرچند آموزشي نيستند، ولي از هيچي بهترند.
خلاصه كلام اينكه اگر خدا بخواهد، اين ضعف و نقصان موجود در كتب و پايگاههاي جاوا را اينجا و با هم جبران ميكنيم. نمونهاي از كاربرد كوكي را ميتوانيد در سمت راست همين وبلاگ، در بخش ثبت نام ببينيد.
تعريف آرايه
آرايه، مجموعهاي از چند داده (ثابت و متغير) است كه به عنوان يك واحد شناخته شده و اعضاي آن، با كد، مشخص شدهاند. به عبارت ديگر، تعدادي از اطلاعات كه در كنار هم قرار گرفتهاند و يك وجه مشترك داشته و به يك نام خوانده ميشوند.
مثال: به اين كلمات دقت كنيد: تهران، اصفهان، شيراز. وجه مشترك اينها چيست؟ شهر بودن وجه اشتراكشان است. وقتي كه ميخواهيد تلفني با يكي از اين شهرها تماس بگيريد چه ميكنيد؟ كد مخصوص آن شهر را حتما فراموش نكنيد. بله، هر يك از شهرها، در شبكه بزرگ مخابرات، داراي كدي است كه معرّف آن است. بهتر است ما هم به جاي اينكه هر كدام از آنها را جداگانه به كار ببريم، براي هركدام، كد، تعريف كرده و آن را صدا بزنيم.
نوشتن آرايه
• نامگذاري آرايه
آرايه يك نوع متغير است كه بر خلاف متغيرهاي ديگر در جاوا، بايد از قبل تعريف شود.
var Name = new Array(3);
var: نشانه متغير Name: نامي كه شما براي آرايه، انتخاب ميكنيد. مناسب است در اينجا City را به عنوان نام، برگزينيد new Array: كلمه كليدي كه بايد به همين صورت، بنويسيد (3): طول آرايه، تعداد اعضاي آرايه
• معرفي اعضاء آرايه
بعد از معرفي و نامگذاري آرايه، بايد اعضايش را معرفي كنيم؛ كه دو روش براي اين كار وجود دارد.
Name: نام آرايه كه مشترك است [0]: كد مخصوص به هر عضو
- روش دوم:
var Name = new Array("تهران","اصفهان","شيراز")
در اين روش، كد اعضا، به صورت فرضي، از صفر شروع ميشود.
• خواندن آرايه
بعد از نوشتن آرايه، نوبت به خواندن و صدا كردن آن است. در اين مثال ميتوانيم از دو دستور alert يا document.write استفاده كنيم.
alert (Name[0])
براي صدا كردن هر شهر، كد آنرا بنويسيد.
تمرين: انتخاب يك گزينه از فهرست.
اين برنامه را در قسمت بدنه صفحه خود، كپي كنيد:
function funChange() // نامگذاري تابع { // نامگذاري آرايه و معرفي اعضاء var a1 = new Array ("تهران","اصفهان","شيراز"); alert (a1 [Menu.value]); // كد اعضا، برابر با مقاديري كه در منوي پايين مشخص شده }
اگر مانند من، به دنبال منبعي درباره كوكيها ميگشتيد، اين دو پايگاه خارجي را مطالعه نماييد.
پرسش و پاسخ
?پرسش: سلام، ممنون از زحماتت. ميخواستم لطف كني در مورد متغيرهاي منطقي بيشتر توضيح بدي. آيا انواع گوناگون دارند و در كجا ها قابل مصرفند؟ متشكرم. هميشه موفق باشي.
• پاسخ: سلام. قبلا گفتيم، بولين (بله-خير)، يك نوع از اطلاعات و داده است. همانطور كه در مكالمات روزمره از بله و نه استفاده ميكنيم، در زبان برنامه نويسي هم، جواب بعضي از سوالات، يك جواب منطقي، يعني بله و خير است. مثلا يك كادر، ظاهر ميشود كه از شما ميپرسد "آيا مايل به ادامه كار هستيد؟" اين كادر، دو دكمه دارد. Ok, Cancel، كه همان بله و خير است. براي نمايش چنين كادري، از اين دستور استفاده كنيد.
confirm ("آيا شما مطمئنيد؟")
?پرسش: سلام. خسته نباشيد. ميخواستم بدونم كه شما چرا اسماي سخت براي كداتون ميزاريد. يعني آيا ميشه اسماي آسون براشون انتخاب كنيم.؟ يا حتي به فارسي اسمي رو بنويسيم؟ بعد اينكه ميخواستم بدونم كه مثلآ پيام (سلام). شايد ما بخواهيم ، در جاهاي مختلف پيامهاي گوناگون داشته باشيم. آيا ميشود،كه تابع شمارهي ۱ و ۲ و ۳ درست كرد؟ يعني قبلش تعريف كنيم و بعد با صدا كردن شماره يك پيام مخصوصش بيايد؟ و غيره ... . ممنون ميشم اگه توضيح بديد. بازم خسته نباشيد و بي نهايت سپاسگزارم.
• پاسخ: سلام. هم در نام گذاري اسامي، آزاد هستيد و هم در استفاده از پيامهاي گوناگون. البته در نام گذاري، بعضي چيزها بايد لحاظ بشه؛ مثلا فارسي نباشه و با عدد شروع نشه؛ اما ميتوانيد مثلا بگوييد: a1, a2, a3. راهي كه گفتيد خيلي خوبه؛ يعني قبلا آنها را تعريف كنيد و بعد صدا بزنيد.
?پرسش: با سلام. متشکریم از این که به ما سر زدید. سوالی داشتم. در مورد alert می خواستم بدانم نوع و شکل آن کادری که به دنبال اجرا کردن اين دستور باز ميشود آيا به نوع سيستم عامل بستگی دارد؟ به عبارتی آن کادر، از سیستم عامل ناشی می شود يا اينکه صرفا متکی بر سيستم جاوا است. با تشکر و خدانگهدار.
• پاسخ: سلام دوست عزيز! اين را به عنوان يك قاعده كلي مد نظر داشته باش. هر كاري كه شما به عنوان برنامهنويس ميخواهيد انجام دهيد، مشروط به استعداد و اجازه سيستم عامل است و بايد از امكانات موجود استفاده كنيد؛ يعني شما فقط فلان امكان موجود در ويندوز را فراخواني ميكنيد. يكي از آن امكانات، پيام است كه به اشكال گوناگون وجود دارد.
?پرسش: با سلام. متشکرم از اینکه جوابی روشن و آشکار به سئوال قبلی ام دادید. سوال دیگری داشتم که اگر جواب دهید ممنون میشوم. چطور میتوان برنامه های جاوا را به هم ربط داد؟ (روشی غیر از فایلهای js.*) زیرا که این روش در واقع استفاده از دو برنامه جدا از هم است اما می خواستم بدانم که اگر در یک صفحه چند برنامه جاوا نوشته باشیم چگونه میتوانیم اینها را به هم ربط دهیم به طور مثال: اگر دو برنامه جاوا (جداگانه) در یک صفحه نوشته شده باشد چطور میتوان از برنامه اولی در برنامه دومی استفاده کرد و آنها را به هم مرتبط کرد. متشکرم. خدا نگهدار
• پاسخ: سلام. اگر منظورتان از ربط دادن، صدا كردن يك تابع در تابع ديگر است، كه مشكلي نيست. كافي است نام تابع مورد نظر را در تابع دوم بنويسيد. يكي از راههاي صدا كردن تابع، همين است. البته اگر خود مثال را ميديدم بهتر بود. در آينده، از اين نوع دستورات، يعني دستورات تركيبي، مثال خواهم زد.
?پرسش: سلام. از آموزش خوبتون خیلی خیلی ممنونم. نظیرش را کمتر روی اینترنت دیدم. دو تا سوال ازتون داشتم: 1- در برنامه انتخاب یک گزینه (که نوشته بودید) چرا وقتی برای اولین بار روی گزینه تهران میریم پیغام نمیده؟ 2- دستور OnChange در اون برنامه کارش چیه؟. من متوجه نشدم. باز هم ممنون. بای بای
• پاسخ: سلام. جواب سوال اول شما، در سوال دوم است. دستور OnChange (كه يك نوع رويدادست و من انتخاب كردهام)، به معناي "هنگام تغيير" است. يعني وقتي گزينه جديد را انتخاب كنيد و قبلي، تغيير كند. چون اولين گزينه، به صورت پيش فرض، تهران است و انتخاب شده، هيچ پيامي داده نميشود. اميدوارم متوجه شده باشيد. اگر جوابم واضح نبود، تذكر بدهيد.
به اميد ديدار خدانگهدار
?
نوشته شده در دوشنبه 26 بهمن1383ساعت 16:59  توسط راهنما |