تبليغاتX
.:: لوتوس دنیای موبایل ::.
.:: لوتوس دنیای موبایل ::.
دانلود برنامه موبایل - ترفندهای موبایل - دانلود نرم افزار کامپیوتر)نظر یادتون نره(
قال رسول الله (ص) : ايها الناس ! انه قد اقبل اليكم شهر الله بالبركة و الرحمة و المغفرة
تبديل انواع داده ها ++C

دسته بندی : / لینک ثابت

وقتي كه متغيرهاي با نوع هاي مختلف در يك عبارت با يكديگر تركيب مي شوند
بايد تبديل نوع صورت گيرد . قاعده كلي اين است كه نوع هاي با طول كوچك تر به
نوع هايي با طول بزرگتر تبديل مي شوند . مثلا" اگر دو متغير از نوع كاراكتري و
عددي صحيح با يكديگر تركيب شوند ، نوع كاراكتري به عددي صحيح تبديل مي شود .

مثال 1: char ch;
int i;
float f;
double d;
result =( ch/i )+( f*d( - )f+i)
| | | | | |
int |double | | float
| | | | | |
| | | | | |

ؤؤؤ ؤؤؤ ؤؤؤ | | |
int double float
| | |
| | |
|
ؤؤؤؤؤؤؤؤؤ | |
| |
double |
| |
| |

ؤؤؤؤؤؤؤؤؤؤؤؤؤ |
double

همان طور كه از مثال 1 پيداست ، نوع نتيجه double خواهد بود .
علاوه بر تبديل انواع در عبارات ، در احكام انتساب نيز ممكن است تبديل انواع
صورت گيرد . در تبديل انواع اطلاعاتي از بين مي روند كه بايد در نتيجه حاصل از
احكام انتساب دقت كافي به خرج داد. در ذيل تبديل انواع در احكام انتساب مشاهده
مي شود : int x;
char ch;
float f;
ch= x;
x= f;
f= ch;
f= x;

كليه احكام انتساب فوق قابل انجام بوده و از طرف كامپايلر زبان C هيچ گونه
خطايي گزارش نمي شود . اطلاعاتي كه ممكن است در تبديل انواع از بين بروند . در
جدول (1) آمده است .
ؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ |
نوع منبع | نوع مقصد | اطلاعاتي كه ممكن است از بين برود |
ؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ |
| signed char | char اگر مقدار بزرگتر از127 باشد مقصد منفي خواهد شد |
ؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ |
| short 8 | char بيت با ارزش |
ؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ |
| int 8 | char بيت با ارزش |
ؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ |
| long int | char َ24 بيت با ارزش |
ؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ |
| long int | int َ16 بيت با ارزش |
ؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ |
| float | int قسمت كسري يا بيشتر و نتيجه حاصل گرد مي شود |
ؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ |
| double | float قسمت كسري و يا بيشتر و نتيجه حاصل گرد مي شود |
ؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ
جدول (1) . تبديل انواع

دو نكته را بايد در مورد تبديل انواع ( جدول (1) ) به خاطر داشته باشيم : 1
بعضي از تبديل انواع در جدول فوق وجود ندارد مثل doubleبه int . در اين
موارد مي توان double را به float تبديل كرده و سپس float را به int تبديل نمود. 2
وقتي نوع بزرگتري به نوع كوچكتري انتساب داده مي شود . قسمتي از اطلاعات
از دست مي روند . همان طور كه مي دانيم ، معمولا" اعداد صحيح (int) در 2 بايت و
اطلاعات از نوع char در يك بابت ذخيره مي شوند :
ؤؤؤؤؤؤؤؤؤؤؤ char
ؤؤؤؤؤؤؤؤؤؤؤ
ؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ int
ؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ
بايت كم ارزش بايت باارزش
وقتي يك متغير int به يك متغير char انتساب داده مي شود بايت كم ارزش متغير
از نوع int به متغير char منتقل شده ولي با ارزش متغير int در متغير char جايي ميگوييم در انتساب متغيرintبه char ، 8، بيت با ارزش از دست ميرود.


نویسنده مطلب : لوتوس   \  تاریخ درج : جمعه 30 اردیبهشت1384   22:3 \

Portهای غیر متعارف

دسته بندی : / لینک ثابت

ظاهرا این جور که پیداست بعضی از ISPها پورت های معروف پراکسی ها مثل پورت 80, 8080, 8000,... رو هم فیلتر می کنند و در نتیجه باید برای دور زدن فیلترهاشون از پراکسی هایی که از این پورت ها استفاده نمی کنند استفاده کرد. این جور پراکسی ها خیلی سخت پیدا می شن ولی سعی خواهم کرد که این پراکسی سرورها رو پیدا کنم و این وبلاگ رو به روز نگه دارم. لطفا برای دیدن پراکسی سرورهای جدید آخرین نوشته این وبلاگ رو بخونید


نویسنده مطلب : لوتوس   \  تاریخ درج : جمعه 30 اردیبهشت1384   22:2 \

چرا بدون فیلتر؟

دسته بندی : / لینک ثابت

به نظر شما برای دسترسی به چه اطلاعاتی باید فیلترها رو دور بزنیم؟
به نظر من براي دسترسی به سايت‌های سكسی و اين جور چيزها دنبال دور زدن فيلتر نباشيد! وقتي با نرم‌افزارهايی مثل Kazaa و BearShare و eDonkey و ... به راحتی می‌شه به منابع بيكران اين جور چيزها دسترسی پيدا كرد، كار عاقلانه ای نیست كه بخواهيد كلی خودتون رو تو اينترنت سرگردون سايت‌های سكسی بكنيد و آخرش هم بگه كه Credit Card رو وارد كن! بنابراين به نظر من دور زدن فیلتر را برای مواردی استفاده کنید که ارزش تحمل دردسر دور زدن را داشته باشه.

ضمنا اگه به این لینک بتونيد بريد و فيلتر نشده باشه (اگه هم شده بود كه راهش رو قبلا گفتم كه چه جوری ردش كنيد) كلی Proxy پيدا خواهيد كرد كه البته ممكنه خيلی هاش كار نكنه يا اين كه كند باشه. به هر حال براي انتخاب Proxy نكاتی كه تو نوشته‌های قبليم گفتم رو فراموش نكنيد.


نویسنده مطلب : لوتوس   \  تاریخ درج : جمعه 30 اردیبهشت1384   22:1 \

نكات بيشتری در مورد Public Proxyها!

دسته بندی : / لینک ثابت

اين مطلب در ادامه نوشته قبلی نوشته شده، بنابراين اول نوشته قبلی را بخوانيد.
يكی از نكات مهم در مورد Public Proxyهايی كه برای عبور كردن از فیلترها بكار می‌روند، Port است. معمولا فیلترها تقاضاهايی كه به پورت 80 فرستاده می‌شوند را كنترل می كنند. بنابراين بايد از Proxyهايی استفاده كنيد كه از پورت‌هايی غير از پورت 80 استفاده می‌كنند. بعضي از فيلترهای قوی‌تر ممكن است پورت‌های متعارف Proxyها مثل پورت‌های 8080، 3128 و 8000 را هم كنترل كنند بنابراين اگر Proxyای پيدا كنيد كه از پورت‌های غير متعارف استفاده می‌كنند احتمال اينكه بتوانيد از فیلترهای بيشتری عبور كنيد زيادتر خواهد شد.
خوشبختانه برای عبور از فيلتر مخابرات كافی است كه Proxy پورتی غير از 80 داشته باشد.
يك مساله مهم ديگر در مورد Proxyها سرعت آنها است. بعضی از Proxyها سرعت مناسبی ندارند و تنظيم كردن آنها باعث كندی دسترسی شما خواهد شد، بنابراين بايد از Proxyهايی استفاده كنيد كه سرعت مناسب‌تری دارند.

راستی يادم افتاد كه يك نكته ديگر را هم بنويسم و آن هم اينكه خيلی‌ها فيلتر را با فايروال به يك معنی می‌دانند. ولی اين دو با هم فرق دارند. فايروال برای محافظت از اطلاعات شما و جلوگيری از نفوذ به كامپيوتر و شبكه به كار می‌رود ولی فيلتر برای جلوگيري از دسترسی شما به برخی از اطلاعات به‌كار می‌رود. بنابراين فايروال چيز خوبی است!


نویسنده مطلب : لوتوس   \  تاریخ درج : جمعه 30 اردیبهشت1384   22:1 \

چگونه می‌توانيم فیلترهای اينترنتی از جمله فیلتر مخابرات را دور بزنيم؟

دسته بندی : / لینک ثابت

اين كار براحتی با استفاده از Public Proxy Serverها امكان پذير است. Proxy Serverها روزی به غلط به عنوان فيلتر تلقي می‌شدند ولی كار Proxy با فيلتر فرق دارد و امروز با استفاده از همين Proxyها مي‌توانيد فیلترهای اينترنتی را رد كنيد. برای اين كار كافی است تا در Internet Explorer وارد منوی Tools شويد. به قسمت Connections برويد و Connectionای كه برای اتصال به ISP ساخته‌ايد را انتخاب كنيد. سپس دكمه Settings را كليك كنيد. صفحه‌ای ظاهر مي‌شود كه در وسط آن قسمتی به نام Proxy Server وجود دارد. در اين قسمت گزينه Use a proxy server... را انتخاب كنيد و قسمت Address و Port را با اطلاعاتی که در آخرین نوشته این وبلاگ (بالای صفحه) آورده شده پر کنید. همه صفحه‌ها را OK كنيد. اكنون مي‌توانيد از اينترنت بدون فيلتر استفاده كنيد.

روش فوق يك روش كلی برای انجام تنظيمات Proxy مي‌باشد. معمولا طول عمر اين Proxyها چندان طولانی نيست و معمولا پس از مدتی يا فيلتر مي‌شوند يا از دسترس عموم خارج مي‌شوند و شما بايد يك Proxy جديد پيدا كنيد. من سعی خواهم كرد كه بعدها برخی از اين Proxyها را معرفي كنم. البته تا قبل از اينكه خود اين وبلاگ هم فيلتر شود!


نویسنده مطلب : لوتوس   \  تاریخ درج : جمعه 30 اردیبهشت1384   21:59 \

عملگرها در ++c

دسته بندی : / لینک ثابت

عملگرها نمادهايي هستند كه براي انجام اعمال خاصي مورداستفاده قرارميگيرند.
عملگرها در زبان C از تنوع زيادي برخوردارند . در C چهار دسته عملگر به نامهاي
( محاسباتي ، رابطه اي ، منطقي و دستكاري بيت ها ) وجود دارند كه آنها را بررسي
مي كنيم .

عملگرهاي محاسباتي
عملگرهاي محاسباتي كه در C مورد استفاده قرار مي گيرند در جدول (1) فهرست
شده اند .


رديف | عملگر | نام | مثال |


1 | - | تفريق و منهاي يكاني | |-xx/x-y


2 | + | جمع | | x+y


3 | * | ضرب | | x*y


4 | / | تقسيم | | x/y


5 | % | باقيمانده تقسيم | | x%y


6 | - - | كاهش يك واحد * | - -xيا xا - |-


7 | ++ + | افزايش يك واحد * | x+ + يا | + +xا


* decrement ** increment

جدول (1) . عملگرهاي محاسباتي

عملگرهاي رديف 1تا 4ا در جدول (1) تقريبا" در همه زبانهاي برنامه سازي وجود
دارند. عملگر % كه در بقيه زبانها با علامت ديگري ( مثلا" در بيسيك به صورت MOD)
وجود دارد باقيمانده تقسيم دو عدد را محاسبه مي كند : x= 13;
y= 5;
z= x%y;

اگر سه دستور فوق را توسط ماشين اجرا كنيم مقدار3 كه باقيمانده تقسيم 13 بر 5
است در z قرار مي گيرد .
عملگر كاهش ، يك واحد از عملوند مربوط كم مي كند . x= 10;
- - x;

دستور x - - از x يك واحد كم مي كند و نتيجه را در x قرار مي دهد كه معادل
دستور 1 + َx = x-1 است .
عملگر افزايش ، يك واحد به عملوند مربوطه اضافه مي كند : x= 40;
++x;

دستور ++x معادل دستور x = + 1 است كه موجب افزودن يك واحد به x مي شود .
عملگرهاي افزايش و كاهش يك واحد را مي توان بعداز عملوند مربوطه نيز به كار
برد مثل : x + + و - - x .
اگر در يك عبارت از عملگرهاي افزايش و كاهش يك واحد ، استفاده كنيم به كار
بردن اين عملگرها در قبل و بعد از عملوند مربوطه ، با يكديگر متفاوت است . بدين
معني كه اگر اين عملگرها قبل از عملوند باشند مقدار فعلي عملوند مورد استفاده
قرار گرفته و سپس عملگرها بر روي آن عمل ميكنند، ولي اگر بعد از عملوند مربوطه
باشند پس از انجام عمل افزايش و كاهش يك واحد به آنها مقادير جديد ، در عبارت
مورد استفاده قرار مي گيرند. استفاده ازعملگرهاي افزايش و كاهش يك واحد ، سرعت
محاسباتي را بالا مي برد .
اگر در يك عبارت از چند عملگر محاسباتي استفاده شود ، مساله تقدم عملگرها
مطرح مي شود . ( جدول (2) ) .


بالاترين تقدم - - | + + |
تفريق يكاني - | | * / % |
|
پايين ترين تقدم - | +


جدول (2) . تقدم عملگرهاي محاسباتي

همان طور كه در جدول (2) مشاهده مي شود ، عملگرهاي افزايش و كاهش يك واحد
داراي بالاترين تقدم و عملگرهاي جمع و تفريق داراي كمترين تقدم هستند و منهاي
يكاني ، داراي دومين تقدم است . عملگرهايي كه در يك سطر آمده اند ، مثل - و +
بدين معني است كه داراي تقدم مكاني نسبت به يكديگر هستند. در اين صورت هر كدام
از غملگرها كه اول ظاهر شود ، زودتر انجام خواهد شد .

عملگرهاي رابطه اي
عملگرهاي رابطه اي براي تشخيص ارتباط بين عملوندها يا مقايسه آنها مورد
استفاده قرار مي گيرند ( جدول (3) ) .


عملگر | نام | مثال |


> | بزرگتر | y >x | >


= >|> بزرگتر مساوي | =y >x | >


< | كوچكتر | y


= <|< كوچكتر مساوي | =y


== | = مساوي بودن | | x=x==y


!= | ! نامساوي | | x=x!=y


جدول (3) . عملگرهاي رابطه اي

نكته قابل ذك درمورد عملگرهاي رابطه اي اين است كه عملگر== براي تشخيص مساوي
بودن دو عبارت مورد استفاده قرار مي گيرد. اين عملگر با عملگر= كه براي انتساب
يك عبارت به يك متغير استفاده مي شود متفاوت است .

عملگرهاي منطقي
عملگرهاي منطقي ( جدول (4) ) بر روي عملوندهاي منطقي عمل ميكنند. عملوندهاي
منطقي داراي دو ارزش درستي و نادرستي هستند .


عملگر | نام | مثال |


&& | & و(AND) z || x


|| | | يا (OR) z || x


! | نقيض (NOT) | !x |


جدول (4) . عملگرهاي منطقي

ارزش نادرستي درزبان C با مقدار صفر و ارزش درستي با مقادير غيراز صفر مشخص
ميشود. عملگر منطقي ! داراي بالاترين تقدم و عملگر || داراي كمترين تقدم در بين
عملگرهاي منطقي هستند . چون عملگرهاي منطقي رابطه نزديكي با عملگرهاي رابطه اي
دارند مي توان تقدم آنها را نسبت به يكديگر بيان كرد ( جدول (5) ) .


بالاترين تقدم | ! | > >= < <= |
| == != |
| && |
|
پايين ترين تقدم | ||


جدول (5) . تقدم عملگرهاي منطقي و رابطه اي

عملگرهاي محاسباتي و رابطه اي با يكديگر تركيب شده و عملگرهاي ديگري را بنام
عملگرهاي محاسباتي رابطه اي ايجاد مي كنند ( جدول (6) ) . تقدم اين عملگرها از
ساير عملگرها پايين تر است .


عملگر | نام | مثال |


+= | + انتساب جمع | x+=y |


= | انتساب تفريق | x-=y |


*= | * انتساب ضرب | x*=y |


/= | / انتساب تقسيم | x/=y |


%= | % انتساب باقيمانده تقسيم | x%=y |


جدول (6) . عملگرهاي محاسباتي و رابطه اي

در جدول (6) ، عبارت x + = y معادل با x = x + y است و عبارت x % = y معادل y
x = x % است كه موجب انتساب باقيمانده تقسيم xبر yربه x مي شود : int a=10;
int b=20;
a+= b;

با اجراي دستورات فوق متغير a برابر30 خواهد بود. زيرا دستور a + = b معادل
دستور a = a + b است .

عملگر دستكاري بيت ها
ازآنجايي كه زبان C طوري طراحي شده است كه بتواند دربسياري ازموارد جايگزين
زبان اسمبلي گردد. بايد قادر باشد كليه اعمال ( يا حداقل بسياري از اعمال ) كه
در زبان اسمبلي قابل انجام هستند را انجام دهد . يكي از اعمالي كه در زبان
اسمبلي براحتي انجام پذير است . انجام اعمالي بر روي بيت هاي يك بايت يا يك
كلمه از حافظه است كه در زبان C براي انجام اين منظور از عملگرهايي استفاده
مي شود كه به عملگرهاي بيتي معروفند ( جدول (7) ) . اين عملگرها انجام اعمال
تست ، مقدار دادن و يا انتقال (shift) بيت ها را در يك بايت يا كلمه حافظه
امكان پذير مي نمايند. عملگرهاي بيتي فقط بر روي متغيرهايي از نوع charيا intا
عمل مي كنند و بر روي متغيرهايي از نوع float، double،، long double،، void، و
يا ساير متغيرها قابل اجرا نيستند . عملگرهاي بيتي &، |،و ~و(AND(، OR،و NOTو)
مشابه عملگرهاي منطقي AND، OR،و NOTو عمل مي كنند با اين تفاوت كه عمل آنها بر
روي يك بيت است . با فرض اين كه pو qو دو بيت مختلف باشند ، نحوه عمل عملگر ^
را در ذيل مشاهده مي نماييد .
p | q | p^q |

0 | 0 | 0 |

1 | 0 | 1 |

1 | 1 | 0 |

عملگرهاي بيتي در جدول (7) مشاهده مي شوند .
عملگر | نوع عمل |
& | AND ( و ) |
| | OR ( يا ) |
^ | XOR ( يا انحصاري ) |
~ | NOT ( نقيض يا متمم يك ) |
>> | انتقال به سمت راست (shift right) |
<< | انتقال به سمت چپ (shift left) |
جدول (7) . عملگرهاي بيتي

همان طور كه مشاهده شد ، نتيجه عملگر بيتي ^ وقتي يك (1) است كه يكي از
عملوندهاي آن صفر و ديگري يك باشد . به عبارت ديگر ، نتيجه عملگر بيتي ^ وقتي
صفر است كه هر دو عملوند آن صفر و يا هر دو يك باشند .
عملگرهاي &، |،و ^و و << ، >> بر روي دو عملوند عمل مي كنند اما عملگرهاي ~
به صورت ذيل به كار مي روند: >> و <<بر روي يك عملوند عمل مي كنند . عملگرهاي
متغير >>تعداد انتقال
متغير <<تعداد انتقال
و <<در روش كلي فوق ، متغير ، يك بايت يا كلمه اي از حافظه است كه عملگرهاي
بايد بر روي آن عمل كنند . تعداد انتقال عددي است كه مشخص مي كند بيت هاي >>"
متغير " بايد چند محل به سمت راست و يا چپ انتقال يابند . همان طور كه قبلا"
براي انتقال به چپ مورداستفاده << براي انتقال به راست و عملگر>>گفته شد عملگر
قرار مي گيرد . هر انتقال به چپ ، معادل با تقسيم كردن مقدار متغير به 2 و هر
انتقال به راست ، معادل ضرب كردن در 2 است .

مثال 1 :
تعداد عددي متغير | x مقدار بيتي متغير | x دستورات زبان | C
| char x; | | |

| x=7 ; | 00000111 | 7 |

| x<<1 ; | 00001110 | 14 |

| x<<3 ; | 01110000 | 112 |

| x<<2 ; | 11000000 | 192 |

| x>>1 ; | 01100000 | 96 |

| x>>2 ; | 00011000 | 24 |

همان طور كه مشاهده مي كنيد پس از اجراي دستور 2<< x< اطلاعات واقعي از بين
مي روند و مساله ضرب در 2 شدن ، در اينجا صدق نمي كند .
عملگر ~ در يك بايت يا كلمه حافظه ( يك متغير ) كليه بيت ها را نقيض ميكند.
يعني بيت صفر را به بيت يك و بيت يك را به بيت صفر تبديل مي نمايد . لذا اگر
اين عملگر دو بار بر روي يك متغير عمل كند وضعيت بيت هاي متغير به حالت اول
برمي گردند .

مثال 2 : x :00101100
~x :11010011
~x :00101100

همان طور كه مشاهده مي شود بيت هاي رديف اول و رديف آخر داراي يك وضعيت
ميباشند ( بيت هاي رديف آخر نتيجه دوبار اجراي عملگر نقيض بر روي متغير است ).
نكته اي كه در مورد عملگرهاي بيتي بايد در نظر داشت اين است كه اين عملگرها
معمولا" در مبدل هاي دستگاهها (device drivers) مورد استفاده قرار مي گيرند .
مثل برنامه هايي كه براي كار با modem و با چاپگر نوشته مي شوند . زيرا در اين
گونه موارد معمولا" تست كردن بيت هاي يك متغير مد نظر خواهد بود .

عملگر ?
عملگر ? با تست يك شرط ، مقداري را به يك متغير نسبت مي دهد . اين عملگر به
صورت زير استفاده مي شود : exp3
:= exp1 ? exp2 متغير exp1
، exp2،و exp3و سه عبارت هستند . نحوه عمل ? به اين صورت است كه : ابتدا
عبارت اول (exp1) ارزيابي مي شود چنانچه اين عبارت داراي ارزش true ( ارزش
درستي ) باشد مقدار exp2 پس از ارزيابي ، در متغير ذكر شده قرار مي گيرد وگرنه
عبارت سوم (exp3) ارزيابي شده و نتيجه آن به متغير ذكر شده منتقل مي شود . x= 10;
y= x>9 ? 100 :200;

نحوه عمل در دو دستور فوق به اين صورت است كه عبارت 9> x> ارزيابي مي شود .
چون اين عبارت يك ارزش منطقي true دارد ( 9> x> است ) لذا عدد 100 در متغير y
قرار مي گيرد .

عملگرهاي &و *و
عملگر & يك عملگر يكاني است كه آدرس عملوند خود را مشخص مي كند و به صورت
زير به كار مي رود : ;
نام عملوند &
مثل : int num;
p= &num;

با اجراي دستورات فوق آدرس متغير num در متغير p قرار مي گيرد. لذا عملگر &
به معني " آدرس " است . عملگر * همانند عملگر & يك عملگر يكاني است كه محتويات
يك آدرس حافظه را مشخص مي كند و به صورت زير به كار مي رود . ;
نام عملوند *
مثل : p= &num;
m= *p;

دستور اول ، آدرس متغير num را در p قرار ميدهد و دستور دوم ، محتويات محلي
را كه آدرس آن در p قرار دارد ( محتويات num ) ، را در m قرار ميدهد. بنابراين
مفهوم " * محتويات آدرس " مي باشد . دو دستور فوق معادل دستور m = num; است كه
موجب انتقال محتويات متغير num به متغير m مي شود .

عملگر كاما (/)
عملگر كاما براي انجام چند عمل در يك دستور ، به كار رفته و به صورت زير
استفاده مي شود :
( عبارت 2 و عبارت 1) =) متغير
عملگر كاما موجب مي شود تا " عبارت " 1 ارزيابي شده و سپس نتيجه ارزيابي "
عبارت " 2 با يكديگر ارتباط دارند . x =( y = 3 / y + 5);

ابتدا y باربر با 3 قرار مي گيرد و نتيجه عبارت y + 5 كه برابر 8 است در x
قرار خواهد گرفت .

عملگر sizeof
اين عملگر كه عملگر زمان ترجمه ناميده مي شود، براي محاسبه طول يك نوع و يا
يك متغير به كار رفته و به صورت زير استفاده مي شود . ;
(نوع) sizeof ;
متغير sizeof
اگر بخواهيم با استفاده از اين عملگرها، طول يك نوع مثل int، double و غيره
را محاسبه كنيم بايد آن را در داخل پرانتز قرار دهيم : اما اگر بخواهيم طول يك
متغير را محاسبه كنيم نيازي به استفاده از پرانتز نيست . به عنوان مثال : int a/ b/ c;
a= sizeof( int);
b= sizeof c;

دستور اول سه متغير a، b،ز cز را به صورت int تعريف مي كند . دستور دوم طول
نوع int را محاسبه كرده و در متغير a قرار مي دهد . دستور سوم طول متغير c را
محاسبه كرده و در متغير b قرار مي دهد. اين دستور براي مساله portability زبان C
بسيار مفيد است . بعنوان مثال ممكن است طول نوع int از ماشيني به ماشين ديگر
متفاوت باشد . نكته اي كه در مورد اين عملگر بايد توجه داشت اين است كه معمولا"
روش اول مورد استفاده قرار مي گيرد و روش دوم چندان جالب نيست .

تقدم عملگرها در حالت كلي
وقتي كه در يك عبارت چندين عملگر مورد استفاده قرار مي گيرند تقدم عملگر به
صورت جدول (8) خواهد بود .


بالاترين تقدم () | | ! ~ + + - - * & sizeof |
| * / % |
| + - |
| << >> |
| << = >> = |
| == =! |
| & |
| ^ |
| | |
| && |
| || |
| ? |
| = +=- = *= /= %= |
| / |


جدول (8) . تقدم عملگرها در حالت كلي

اگر در يك عبارت چندين عملگر وجود داشته باشد و درآن از پرانتز نيز استفاده
شود ، تقدم پرانتز از ساير عملگرها بيشتر بوده و عبارت داخل پرانتز زودتر
ارزيابي مي شوند .

مثال 3 : int x=5/ y=10/ k=4;
int s;
s= x*((x+y-)3)/k;

درنتيجه اجراي چند دستور فوق مقداري كه درs قرار مي گيرد برابر با 15 خواهد
بود . سپس عدد 3 از 15 كم مي شود كه 12 حاصل مي گردد و بعداز آن عمل ضرب انجام برابر با 60 ( 5 * 12 ) مي باشد و عملگر تقسيم (/) آخرين


نویسنده مطلب : لوتوس   \  تاریخ درج : جمعه 30 اردیبهشت1384   21:58 \

متغير‌ها در c

دسته بندی : / لینک ثابت

متغير، نامي براي يك محل حافظه است كه محتويات آن در طول اجراي برنامه ممكن
است تغيير كند . اسم هر متغير شامل حروف aتا zا، A،تا Zا ، ارقام 0تا 9ا و خط
ربط است . به طوري كه با يكي از حروف و يا خط ربط شروع شده باشند . طول نام هر
متغير بستگي به نوع كامپايلر دارد كه معمولا"از 1ز تا 31 كاراكتر قابل استفاده
است . بعضي از اسامي مجاز و غير مجاز در زير آمده اند :


اسامي مجاز براي متغيرها | اسامي غيرمجاز براي متغيرها |


| 1count | count |
| high! there | test123 |
| grad.1 | high |


نویسنده مطلب : لوتوس   \  تاریخ درج : سه شنبه 27 اردیبهشت1384   19:54 \

تعريف نوع متغير در ++C

دسته بندی : / لینک ثابت

من می خوام تو این بلاگ آموزش برنامه نویسی بزارم

آموزش C++ -----Pascal----JAVA---VB---VB.net  و غیره برام آرزوی موفقیت کنید.

تعريف نوع متغير در ++C

براي استفاده از متغيرها درC بايد ابتدا آنها را تعريف كنيم . تعريف متغيرها
شامل نامگذاري و تعيين نوع آنها است كه به صورت زير انجام مي شود :
<نوع> <اسامي متغيرها>
يكي از انواع است كه قبلا<نوع>" شامل متغيرهايي <اسامي متغيرها> ذكر كرديم و
است كه مي خواهيم داراي آن نوع باشند . براي تعريف چند متغير در يك دستور بايد
اسامي با كاما از يكديگر جدا گردد : int var1/ var2;

دستور فوق دو متغير به اسامي var2و var1و را از نوع int تعريف مي كند . float flovar1/ flovar2;

دستور فوق ، دو متغير به نام هاي flovar2و flovar1و را از نوع float تعريف
مي كند . double d1;
char ch;

اولين دستور ، d1 را از نوع double و دستور دوم متغير ch را از نوع char
تعريف مي كند .

مقدار دادن به متغيرها
براي مقدار دادن به متغيرها مي توان به دو طريق عمل كرد: 1 به هنگام تعريف
متغير . 2 پس از تعريف متغير . به عنوان مثال : int a=0;
int b/ c/ d/ e=0;
char ch= 'a';
b=0;
c=d=0;

دستور اول ضمن تعريف a از نوع int مقدار آن را برابر با 0 قرار مي دهد .
دستور دوم چهار متغيرb، c،، d،و eو را از نوع int تعريف كرده وفقط مقدار متغير ch
را از نوع كاراكتري تعريف كرده و مقدار آن را برابر با حرف a قرار مي دهد .
دستور چهارم مقدار متغير b را برابر با 0 قرار مي دهد . دستور پنجم مقدار دو
متغير cو dو را برابر صفر قرار مي دهد و اين دستور ، انتساب چندتايي را مشخص
مي كند .
همان طور كه قبلا"گفته شد مقدار متغيرها ممكن است در طول اجراي برنامه تغيير
كند . با استفاده از كلمه كليدي const مي توانيم متغيرهايي را تعريف كنيم كه
مقدار آنها در طول اجراي برنامه ثابت باشد . براي تعريف اين نوع متغيرها بصورت
زير عمل مي شود :
<نوع> <اسامي متغيرها>const
نوع ، يكي از نوع هايي است كه قبلا" ذكر شده و اسامي متغيرها ، مشخص كننده
متغيرهايي است كه بايد به صورت ثابت تعريف شوند : const int a = 10 / b = 20;

دستور فوق دو متغير aو bو را از نوع int تعريف كرده و مقادير آنها را برابر مي دهد . اين مقادير در طول اجراي برنامه قابل تغيير هستند .


نویسنده مطلب : لوتوس   \  تاریخ درج : سه شنبه 27 اردیبهشت1384   19:51 \

اولین مطلب

دسته بندی : / لینک ثابت

نویسنده مطلب : لوتوس   \  تاریخ درج : دوشنبه 26 اردیبهشت1384   22:1 \