زبان برنامه نویسی سی/متغیرها: تفاوت میان نسخه‌ها

محتوای حذف‌شده محتوای افزوده‌شده
بدون خلاصۀ ویرایش
برچسب‌ها: ویرایش همراه ویرایش از وبگاه همراه
بدون خلاصۀ ویرایش
خط ۱:
{{سرص|زبان برنامه نویسی سی/ثابت‌ها|زبان برنامه نویسی سی/ساختمان و اجتماع}}
 
مطابق با دانش برنامه نویسی یک « متغیر » یک یا چند واحد از خانه های حافظه ( موقت ) است که :
'''''<sup>Sobject:majedeh hamidi</sup>'''''
 
1 - دارای یک نام یا همان « '''شناسه''' » است که فقط با همان شناسه و از طریق آن می توان به آن متغیر دسترسی پیدا نمود ( حتی در صورتی که بخواهیم ، غیر مستقیم به محتوای آن توسط اشاره گر دسترسی پیدا کنیم ، باید اشاره گر را به نام یا همان شناسه متغیر اشاره دهیم )
Ostad zahabi
 
2 - دارای محتوایی است که به آن '''مقدار''' یا موجودی آن متغیر می گوئیم
گردآورنده:ماجده حمیدی دانشجوی مهندسی پزشکي
 
3 - در هر جای برنامه می تواینم به صورت دستی مقدار جدیدی به آن بدهیم یا همان مقداری که دارد دستخوش تغییر نمائیم و یا به صورت خودکار ، تغییر آن را واگذار کنیم به یک یا چند تابع ( مقدار آن قابل تغییر است ، مگر آنکه پیش از تعیین نوع داده از کلیدواژه const استفاده نموده باشیم )
 
اما در زبان سی شما موظف به تعیین نوع متغیر نیز می باشید . جهت سهولت در کار با داده ها دو نوع داده '''عددی''' و '''کاراکتری''' وجود دارند که متناسب با نیاز خود از آنها بهره می گیرید . همچنین متغیر های عددی در زبان سی در طیفی قرار می گیرند که با توجه به کوچک یا بزرگ بودن عدد شما ، تعیین باید گردند . ( گرچه امروزه با توجه به وجود حافظه های حجیم این نیاز کم رنگ تر جلوه می نماید ، اما باید یاد بگیرید که همواره به اندازه نیاز خود متغیر را تعریف کنید تا حافظه در همان اندازه اشغال گردد ) شما عموماً باید از متغیر های عددی استفاده نمائید تا بتوانید با رایانه ارتباط برقرار نمائید اما زمانی که صحبت از ارتباط شما با فرد است و میخواهید متنی را بنویسید یا ویرایش کنید و نمایش دهید به راحتی با وجود کاراکتر ها و رشته ها در زبان سی می توانید از اتلاف وقت خود برای تعیین و ایجاد ارتباط بین اعداد و کاراکتر ها جلوی گیری نمائید
 
اگر بخواهیم به زبان ساده تر بیان نمائیم و کمی مبحث داده ها و متغیر ها را تشریح نمائیم باید اینگونه بگوئیم :
 
شما در برنامه نویسی باید متن قابل فهم توسط کامپایلر را بر روی یک فایل متنی بنویسید ، ذخیره کنید و سپس آن را تحویل کامپایلر ( یا مفسر ) بدهید. در این حین شما از قوانین دانش رایانه تبعیت خواهید نمود و دست کم باید تبعیت کنید . در دانش رایانه که بخشی از دانش الکترونیک می باشد ، همان طور که در ابتدای فصل بدان اشاره نمودیم ، باید همواره جریانی ورود یابد و سپس دست خوش پردازش گردیده و در نهایت به خروجی ارسال گردد . طی برنامه نویسی شما باید داده هایی را ایجاد کنید ، داده ها را به یکدیگر یا به داده های سیستم عامل یا سخت افزار مرتبط نمائید و این داده ها را طی یک روال به خروجی برسانید که به آن برنامه می گوئیم . اما شاید بپرسید چرا نام متغیر را روی این داده ها گذارده اند ؟
 
فرض کنید میخواهید یک مرورگر وب را بنویسید . حتماً در مرورگرهای خود دیده اید که عنوان یک صفحه وب بر روی جایگاه عنوان برنامه مرورگر شما نمایش داده می شود ( در گذشته بر روی نوار عنوان پنجره یا همان Title Bar نمایش داده میشد و امروزه در داخل Tab ) این عنوان را شما نمی توانید پیش بینی کنید که چه خواهد بود ! یعنی اگر یک متن ثابت را قرار بدهید ، طبعاً کاربر برنامه شما نمی تواند عنوان صفحه وب را مشاهده نماید و اگر بخواهید در آن تغییری ایجاد کنید از کجا می دانید که باید چه بنویسید ؟ پاسخ اینست که شما نباید از یک متن ثابت استفاده کنید . بلکه باید درون یک رشته به واسطه نشانه های فرمت کردن ، امکان ایجاد متنی را بدهید که به دستور شما ، متن داخل برچسب عنصر title در زبان html ( زبان عمده صفحات وب ) که همان عنوان صفحه وب می باشد را به جای متن رشته قرار دهد و در نهایت آن را به نمایش بگذارد . اگر مثال ساده تری بخواهیم بزنیم که مثال ما خارج از زبان سی نیز می باشد این مثال را در نظر بگیرید :
 
شاید تا به حال به صفحاتی برخورده اید که در بدو ورود شما به واسطه مرورگر یک کادر باز نموده و از شما نام شما و مشخصات شما را می پرسد و هر آنچه که نوشتید را بر روی صفحه وب نمایش می دهد . در واقع تحت زبان javascript که زبان پویا نمودن صفحات وب می باشد ، یک یا چند متغیر را تعریف می نماید ( به تعدادی که از شما اطلاعات بخواهد : نام ، سن ، شهر و ... ) هر کدام را داخل یک متغیر ذخیره می نماید و در نهایت با توجه به دستور درج آن در صفحه نام و مشخصات شما داخل صفحه وبی که مشاهده می نمائید درج خواهد گردید . حال اگر وجود داده متغیر در برنامه نویسی نمی بود ، آنگاه طراح صفحه مجبور می شد تا بنویسد : بازدیده کننده محترم !
 
پس شما باید بدانید که متغیر ها علاوه بر اینکه این قابلیت را دارند که در هر جای برنامه با توجه به دستور مستقیم شما که به صورتی نوشتاری داخل متن منبع شما وجود دارد تغییر کنند ، بلکه این قابلیت چشم گیر و موثر که التزام آن حتمی می باشد را دارند که : با توجه به ارتباطی که شما طی برنامه برای متغیر خود تعریف می نمائید ( که بیشتر از طریق تابع امکان پذیر است که بعدها در این کتاب به مفهوم آن خواهیم پرداخت ) و تعریف پویای آن ، تغییر کنند
 
اما این تغییر تنها در محتوای متغیر که همان مقدار و موجودی آن می باشد امکان پذیر است و تغییر نام آن باید توسط خود شما و در داخل متن منبع انجام پذیرد . تغییر نوع داده نیز امکان پذیر نمی باشد ، مگر به واسطه خود شما که نوع آن را تغییر دهید . شما زمانی که از یک کلیدواژه ایجادد کننده متغیر استفاده می نمائید مجاز و مجبور به تعیین یک نام برای ایجاد متغیر می باشید . سپس مختارید در همان جا یا در ادامه برنامه به آن متغیر مقدار اولیه بدهید ، این مقدار می تواند به دستور برنامه شما تغییر کند ، اما دقت کنید که کامپایلر نمی تواند مقدار به آن بدهد و این شما هستید که باید با دادن یک مقدار به متغییر پیش از استفاده از آن ، تعریفش نمائید .
 
اگر مقداری به یک متغیر ندهید و آن را بدون وجود مقدار در مرتبه اول نوشتن آن داخل متن منبع وارد کنید آن متغیر را '''اعلان''' نموده اید . در ادامه برنامه اگر قصد استفاده از آن متغیر را داشته باشید باید حتماً آن متغیر در بدو کار مقدار و موجودی داشته باشد و اگر نداشته باشد یا کامپایلر خطا خواهد گرفت و یا یک عدد تصادفی در آن قرار خواهد گرفت که برنامه شما را بر هم می زند . به دادن محتوا به متغیر جهت ایجاد آن '''مقدار دهی اولیه''' می گوئیم . پس از مقدار دهی اولیه برای متغیر ، آن متغیر '''تعریف''' شده است و شما مجاز به استفاده از آن خواهید بود .
 
=== کار با متغیر ها ===
 
گردآوري:ماجده حمیدی دانشجوی مهندسی پزشکی
کلیدواژه های زبان سی را در مبخث آغازین کتاب نوشتیم . از این بین کلید واژه های :
 
سطر ۳۰ ⟵ ۴۹:
 
=== متغیر های عددی ===
 
گردآوري:ماجده حمیدی دانشجوی مهندسی پزشکی
از ابتدای کتاب یادآور گشتیم که بارها استاندارد سی تعریف شده است ، اما علاوه بر آن کامپایلر ها هر کدام اندازه مختص خود را برای متغیر ها اختصاص می دهند . مثلاً متغیری از نوع صحیح یعنی int در اولین استاندارد تنها یک بایت باید در حافظه جا اشغال می نمود ، بعد ها به دو بایت افزایش یافت . با این حال برخی کامپایلر ها اندازه های دیگری را اختصاص می دهند ، مثلاً چهار بایت . ابتدا کامپایلر خود را تست کنید تا ببینید که چه قدر برای هر نوع متغیر اختصاص می دهد :
 
سطر ۹۱ ⟵ ۱۱۰:
int a, b, c, d = 5, 8, 16, 73;
 
</source>

{{پایان چپ‌چین}}
 
<big>تذکر :</big>
سطر ۱۲۳ ⟵ ۱۴۴:
|}
{{پایان چپ‌چین}}
ماجده حمیدی دانشجوی مهندسی پزشکی/استاد ذهابي
 
 
متغیر هایی که از نوع اعشاری هستند ، همانطور که از اسمشان پیداست ؛ جهت ذخیره اعداد اعشاری به کار می روند . بنابراین اگر قصد ایجاد یک عدد اعشاری را ندارید ، بیهوده از آنها استفاده ننمائید و تنها زمانی دست به ایجاد متغیر هایی از نوع عدد اعشاری بزنید که به آنها نیاز داشته باشید ، آن هم دقیقاً متناسب با مقدار مورد نیاز خود . متغیر های float دقت کم تری نسب به double و در نهایت نسبت به long double دارند .
سطر ۱۳۶ ⟵ ۱۵۵:
 
=== متغیر های کاراکتری ===
گردآوری توسط ماجده حمیدی دانشجوی مهندسی پزشکی
 
به واسطه استفاده از کلیدواژه char شما مجاز و مجبور به استفاده از یک داده کاراکتری در متن برنامه سی خود هستید . همانند متغیر های عددی ، متغیر کاراکتری نیز باید یک نام داشته باشد و شما می توانید اول آن را اعلان کرده و سپس تعریف نمائید . ولی در داخل هر داده کاراکتر تنها یک کاراکتر که می تواند هر کدام از کاراکتر های ANSI مطابق با استاندارد 98/99 باشد و مطابق با آخرین استاندارد زبان سی یعنی C11 شما می توانید هر کدام از کاراکتر های Unicode را ذخیره نمائید . اما اکثر کامپایلر ها ، هنوز با آخرین استاندارد سی ، به روز رسانی نشده اند . هر کاراکتری را که میخواهید در متغیر خود ذخیره نمائید باید داخل دو علامت سینگل کوت قرار دهید . مانند : '0' یا 'A' یا '*' که هر کدام یک کاراکتر از کاراکتر های کاراکترست ANSI هستند . کاراکترست های بسیاری موجود هستند که در ابتدای کتاب نیز بدین مبحت اشاره نمودیم . اما شما برای کار با زبان سی باید تا به صورت مطلوبی به کاراکترست ANSI مسلط باشید . ANSI نام مستعار کاراکترست اسکی موسسه استاندارد سازی آمریکاست ، بنابراین نام اصلی آن ASCII می باشد که دارای 128 کاراکتر می باشد .
سطر ۱۷۹ ⟵ ۱۹۷:
 
کلیدواژه const را پیش از کلیدواژه int نوشته و سپس به آن مقدار دهی اولیه نمودیم ، اما نکته اصلی اینجاست که پس از تعیین مقدار برای آن نمی توانیم در جای دیگری از برنامه مجدداً به آن مقدار بدهیم یا متغیر a را در یک تابع قرار دهیم که بخواهد مقدار آن را تغییر دهد . در این صورت کامپایلر خطا خواهد گرفت
ماجده حمیدی دانشجوی مهندسی پزشکی/استاد ذهابي
 
=== نکته مهم ===