صفحه 1:
برنامه نویسی مقدماتی
مفاهیم اولیه و الفبای زبان )++
مدرس : ناهید پورسلیمان Ghpoursoleiman@ 6
صفحه 2:
7 انواع زبانهای برنامه نویسی
زبانهای برنامه سازی به چهار دسته کلی تقسیم میگردند :
:amachine language),,.2b 4b -)
زبان مستقیما با صفر و یک نوشته میشود و بدون هیچ واسطهای برروی کامپیوتر قابل اجرا |
؟ هر برنامهای که به زبان ماشین نوشته شود. فقط بر روی همان ماشین خاص کار میکند. بهمین دلیل
بزنامههای نوشته شده به زبان ماشين را غير قابل حمل مئنامند.
* یادگیری این زبان بسیار مشکل بوده. برنامهنوبسی با آن بسیار سخت است و همچنین احتمال بروز خطا نيز
در آن زیاد می باشد.
صفحه 3:
MOV AL,ADDRES-2
SUB AL,30H
ee ADD AL,BL
لمعلل
۱۱۱ HLT
صفحه 4:
انواع زبانهای برنامه نویسی
۲- زبان های سطح پایین :(Low Level Language:LLL
؟ این زبان شکل ساده تر زبان ماشین است.
© بدین صورت که برای هر دستورالعمل زبان ماشین؛ یک اسم نمادین انتخاب شده است (ماندد دستور ۸910
بجای کد دودویی دستورالعمل جمع) که بخاطر سپردن و برنامهنویسی با آنها برای انسانها ساده تر است.
® اما لین برنامهها برای ماشین قلبل فهم نیست و بلید قبل از اجرا شدن, برنامه توسط مترجمی بنام اسمبلر به
زبان ماشین تبدیل شود.
* مانند زبان اسمبلی
برنامه به زبان ماشین 7-۶ -- برنامه به زبان سطح پایین
صفحه 5:
نمونه برنامه اسمبلی
52 برملمعنه مه دهاز
sread second initial
jload and display msg3
jadd num1 and num2
smoves value into ans
sload and display msg3
sreturns control to dos
mov dx,offset msg2
mov ah,9
int 21h
mov ah, 1h
int 21h
sub al,30h
mov num2,al
mov dx,offset msg3
mov ah,9
int 21h
mov al, num
add al, num2
add al,3¢h
mov ans,al
mov dx,offset ans
mov ah,9
int 21h
mov ah, 4ch
int 21h
main endp
end main
Sample Code
model small
-stack 100h
data
msgi db “Enter First Decimal Number : $"
msg?
دوم
num db 2;
num? db ?.:
ans db ?,"5"
-code
main proc
mov ax,@date jinitiaize ds
mov ds,ax
nov dx,offset msg1
mov ah,09
int 21h
mov ah, 1h sread first initial
int 21h
sub al,3¢h
nov numl,al
sload and display msg1
صفحه 6:
انواع زبانهای برنامه نویسی
۳- زبانهای سطح بالاد آ۵:۲11 ودره :(High Level
* دستورالعملهای این زبانها بسیار نزدیک به زبان محاوره ای انسانها (بطور مشخص زبان انگلیسی) میباشد .
* بهمين دليل برنامهنويسى با آنها بسیار ساده تر بوده و میتوان الگوریتمها رابه راحتی به این زبانها تبدیل کرد.
۴ بیسیک (38510): برای کاربردهای آموزشی
ati lls و مهندسی ale cleo uly: Fortran) 53,3 *
— برای کاربردهای آموزشی و علمی : (Pascal) Jisul &
اذا ©
* ماجولا
؟ کوبول
6 برنامه به زبان ماشین < — dali yy به زبان سطح بالا
صفحه 7:
برنامه جمع دو عدد در برخی زبانهای سطح WE
‘Spclude etdio.h>
| 2 #inctude <conio.f> int rain()
3
4 void mainOt {
د ۵: ft und, 2, 505
6 ۰ وا اه ام مامت گام
7 int a,b,c; 9
8 cout<<"number 1 2": اس
9 cin os a peinet(enter second nunber: إل
10 cout<<"number 2 :"; scont("%e", bum);
11 Cin >> b;
2 © = arb; ۲
13 coutec"Sum ="; oe
14 cout<<c; printf(‘Sun ofthe entered runbers: 94°, sun):
35 retum a:
16 getchO; |
17
++ c
a = int (input ("Numl-->") )
b = input (input ("Num2-->")) gps,
c= atb
print (c) 7
صفحه 8:
انواع زبانهای برنامه نویسی
(Middle Level Language:MLL), sto caw lil; -F
تقیما به حافظه دسترسی داشته باشند وبا مفاهیم
* لین زبانها از طرفی مانند زبان اسمبلی قادر هستند که
بیت. بایت و حافظه کار کنند و از طرف دیگر برنامه های این زبان ها همچون زبانهای سطح بالا از قابلیت
خوانایی بالایی برخوردارند و دستورالعملهای آنها به زبان محاوره ای انسان نزدیک است.
* ابد
ce
© جاوا
صفحه 9:
ویژگیهای زبان ۵++ (چرا ++3)
٩ : 6+ ی کزیبا رپس طح م پانیاست
؟ 67+ ی کزبانهمه منظویم (۳1۲0056 2616781)). بسیار قدوتمند و لنعطافپ نیر لستلیرزبان ی رلی
لربرد خاصیساخته و طولحین شدم در لینزبانهیج یتیب رلیبرنامه نویسوجود ندارد و هر آنچه را
ه ف نید میتولنید با آنپیلا ایک نید (در مقابلزبانهایخاصمنظوره مانند - Lisp
1 - ۳۳0۵10 و ... که برلیک یبرد و ونم خاصیساخته شده لند
* /6++ زبانسرنامه نویسیسیستملستبرنامه هایسیستم برنامه هاییهستند که لمکانبهره بردارعاز
سخفزار و ساير نرم لفزارها را فرلهم میک ohiss (Operating Systembbe pins siils si
(Editors )aj.l,, (nterpreter),.i.. (word processoryasls— 255
© )++ يبازقابلحملاستيعنىبرنامه هايىكه به زبان)++ در يكفوع كامييوتر (مثل181/1) نوشته شدم
ندب دورنجام ت-فییراتی اب النجام 7-فیبراتلندکدر کامپیوترهایدیگر منل 1101/87 قاب إستفاهه لند
صفحه 10:
: ویژگیهای زبان 0++ )>15 0++?(
++C * ی کزبانشیگپلست
* (6++ نسبتسه حروفک وچکو ب زرگحساسلس نت6 56۳5111۷ 0856). یعنیدر لیرنبانسینحروفک وچک
و بزرگت فلوتهستو تمام لماتک لیدیدر لینزبان(ک لماناز پسیشتعریف شده مورد لستفادم خود بانب رنامه
Ga با حروفک وچکنوشته مىشوهند مثلا 101316 ب لمه کلیدءلستولی" ,۷۷1111 کلمه کلیدی
یستتوصیه میشود تسمام برنامه هاین)++ با حروفک وچکن وشته شوند
* هر برنلمه /6++ از قطعلتیبه نام کلاس و تلبع تشکیل عی شود. یک برنامه نویس می تولند خودش کلاس یا تابع
بنویسد یا می تواند از توابع و کلاسهای موجود در کامپایلر 62++ استفاده کند.
* :6+ زبانک وچکیلستو تسعداد کسلماتکلیدودر آرلند کلستتعناد ک لماک لیدیدلیلسر قلرتمند بسومنآن
* زبازنیستم ثلاتعداد کلماتک لب يسيكبيشتر از )++ لستولىقديتم)++ از بيسيكبيشتر 1[
صفحه 11:
union
unsigned
using
virtual
void
volatile
reinterpret_ca
st
false
float
for
frien
4
goto
if
inlin
e
try
typedef
enum
extern
class
const
explicit
typenam
e
namespac
e
new
operator
dynamic_ca
st
typeid
continu
e
default
delete
do
double
else
const_ca
st
throw
static_ca
st
ده اند.
صفحه 12:
7 ویژگیهای دستورات زبان 70۵+
؟ دستورالعملهای برنامه به زبان :+ دارای ویژگیهای زیر هستند:
* هر دستور زیان 0++ به : (سمی کالن) ختم می شود.
* حداکثر طول یک دستور ۲۵۵ کاراکتر است.
® در هر سطر می توان چند دستور را تایپ کرد.(این کار توصیه نمی شود.)
مثلا به جای سه دستور داخل کادر فوق می توان نوشت:
int sum; float average; long int a,b,c;
»
Ses
int sum;
float ۵۱
long int a,
صفحه 13:
ویژگیهای دستورات زبان 40+
© هر دستور می تواند در یک یا چند سطر ادامه داشته باشد. While(a>10) { b=a+5; cout<<b;}
While(a>10)
1
b=at5
scout<<b
{
مثلا می توان دستور فوق را در چند سطر نوشت:
Gaby I jl sy sls. (Comments) skis © ** و */ قرار بگیرند.
this is a comment */ */
.this is a comment //
صفحه 14:
++C > (DataTypes)ools els!
1۳121- انواع داده اولیه یا ابتدایی يا درون ساخته یا
PEF | seit) yg Lag ait Ce as Ss el
primitive DataTypes) bj يا موجود در User Defined DataTypes)
> ——_char structure) jlcsl.
سم int
سم (Class) كلاس
1 : 01 سس
نع با 2 لع
| سس (Enumeration)...
;———. double
یونیون (طمنصنآ) با بیس
مزهت لم
برنامه نوبس. در طول توسعه یک برنامه. با اطلاعات و داده ها از انواع مختلف سرو کار دارد. wehar t
string 3
صفحه 15:
در )++ شش نوع داده اصلى وجود دارد كه عبارتند )3 : char, int, float, double, void, bool
نوع 0085 برای ذخیره داده های کاراکتری مانند : ۳ ۷۷" , "2" , 27 بکار می رود.
از نوع 110 برای ذخیره اعداد صحیح مانند ۰۱۲۸ ۰۵ ۴۵۰۸ استفاده می شود.
نوع :1101 براى ذخيره اعداد اعشاری مثل ۰۱۲.۵ ۷۸۰۵.۱۱ بکار می رود.
نوع 011016 برای اعداد اعشاری بزرگتر از 11081 استفاده می شود.
از 0001 برای ذخیره مقادیر منطقی استفاده می شود ( درستی يا نادرستی )
نوع ۷۵10 (بدون نوع یا 11061655) هیچ مقداری را نمی گیرد و در مبحث تولبع مفصل راجع به آن صحبت خواهد
شد.
صفحه 16:
انواع دادهها در ++
* نوع دیگری از داده به نام 511170 برای ذخیره رشته ها وجود دارد که در برخی از نسخه های کامپایلر زبان م)جب
مانند بورلند پشتیبانی نمی شود.
۴ رشته به دنباله ای از کاراکترها در کنار یکدیگرگفته می شود.
© بعنوان مثال "۲65 2 16 015" یک رشته است.
۴ مهمچنین نوع (ا 7عط6) ۲عنامعت0۳ ۲106 که برای ذخیره کاراکترهای با سایز بزرگتر از اسکی
(بزرگتر از یک بایت) یعنی یونیکد طراحی شده است و یک نمونه کاربرد آن برای ذخیره کاراکترهای زبانهای دیگر
غیر از انگلیسی هست .
صفحه 17:
ویرایشگرهای انواع داده در ++
۴ برنامه نییس می تولند بر حسب نیاز و با استفاده از ویرایشگرهای نوع ( 10001865 زیر برخی انواع داده ای
اصلی را اصلاح کرده و 11706 های متفاوتی خلق نماید:
۶ 510760 علامت دار
unsigned ۶ ببوزعلامت
* 511071 که حافظه ی کسمترولشفا [هیکند
* 10196 که حافظه ی بیشتری نسبت به 51001 اشغال می کند.
© تمام این اصلاح کنندههای نوع میتوانند به نوع داده 111 اعمال شوند و اثر آنها بستگی به محیط دارد.
* برروی نوع داده 0107 فقط اصلاح کنندههای signed و unsigned میتوان اعمال کرد.
برروى نوع داده ©0111 تنها اصلاح کننده ©1011 قابل اعمال است .
صفحه 18:
ee
مقدار قابل تخصیص age ats اوع متفیر
Char tye 1280 127 or 10 255
unsigned char syle 010265
‘signed char ‘byte 128 to 127
03 214718368 ما 7183617
unsigned in Ayes 0 o 4794007205
sigpd int typos 2047489648 to 247489647
shert in ۳ 32768 to 32167
signed shor int eves 01065635
‘signed short int bytes: 32768 to 32767,
Fong int Boyles -91223,372,006 854,775,908 lo 9 223:372,096 854,775,807
صفحه 19:
-9,223,372,036 854,775,808 to 9,223,372,036 854,775,807
(to 18,446,744,073,709,551,615
H-B4e #38 (-7 digits)
double bytes #1 1.70 41-308 (15 digs)
wehar_t 2or 4 byles ‘wide character
لازمبه ذکر است میزان فضلیی که انواع داده ای قید شده در جدول بالا در حافظه اشغال می کنند. ممکن است بر اساس
نوع کامپایلر و سیستم مورد استفاده. کمی متفاوت باشد.
صفحه 20:
sizeof (char) << endl;
of int : " << sizeof(int) << endl;
< sizeof(short int) << endl
" <¢ sizeof(long int) << endl;
sizeof(float) << andl;
sizeof (double) << endl;
> sizeof(uchar_t) << endl;
57 کد تعیین حافظه تخصیص يافته به انواع داده در کامپایلر مور داستفاده شما:
include <iostream>
using nemespace std;
int main() ¢
oF char
of short int
of long int
oF Float
of double
oF wehart
صفحه 21:
متغییها (عططبس) در 40+
برنامه نویس, در طول توسعه یک برنامه. طبیعتا می بایست انواع اطلاعات و داده ها (از نوع مختلف) را در
متغیرهایی از نوع متفاوت ذخیره کند.
در این درس برای فهم بهتر یک متغیر را به صورت شماتیک با مستطیل نمایش می دهم.
متغیر محلی است از حافظه برای ذخیره سازی داده ها. در واقع متغیرها خلنه هلیی از حافظه ]۷[ کامپیوتر
هستند که داده ها را در خود ذخیره می کنند.
محتویات متفیرها در طول اجرای برنامه تغییر می کند.به همین علت به آنها متغیر گفته می شود.
سيستم عامل بر اساس نوع داده متغير. حافظه تخصیص داده و تصمیم می گیرد که چه مقداری قابلیت ذخیره در
آن میزان فضای درنظر گرفته شده را دارد.
صفحه 22:
* برای مراجعه و دستیابی به متغیرها از نامشان استفاده می شود. در ولقع نام متغیر امکان نامگذاری مکانهای حافظه
۲ ۸
را فراهم می کند.
© قواعد نامگذاری متغیرها از قواعد حاکم بر انتخاب شناسه ها تبعیت می کند.
صفحه 23:
شناسهها در ++
Cool oti identifier) ais © که به یک قسمت از برنامه مانند متفیر تابع» ثابت و یا ... داده میشود.
* در زبان ++ن) برای انتخاب شناسهها از ترکیبی از حروف انگلیسی کوچک و بزرگ (8...2 ...۵ ارقام (۰۰..) و
علامت خط پایین يا _ استفاده می شود ay شرط انکه اولین کاراکتر رقم نباشد.
2name sum
student average Ave56_range
High-there name23
pe. student_average
Grade&1 abc_
if If
صفحه 24:
* در )+ قبل از بکارگیری و استفاده از متغیرها باید آنها را اعلان کرد.
* اعلان متغير يعنى تعريف متغير يا به عبارتی تعیین نوع متغير
* نوع متغیر سه مطلب را در مورد آن متغیر مشخص مى كند:١- مقاديرى كه متغير مى تواند بيذيرد 7- ميزان
حافظه اى كه متغير در حافظه اشغال می کند.۳- اعمالی که بر روی متغیر قابل انجام است.
* برای اعلان متغیرها به شکل زير عمل میکنیم:
ز<نوع دادم متغیر> <نام متغیر>
long int sum; avetage
1 باشد. ١ يا ٠ بيت كوجكترين واحد حافظه است كه داراى مقدار
float average; هریت معادل ۸ نیت انتته.
5 جه
byt bits 1 bytes
صفحه 25:
(Variable Declaration)& pi» «el
" * رای |علان چند متغیر در يك دستور بايد متغيرها را با علامت کاما از هم جدا کرد.
long int a,b; a b i 0 1
unsigned long int i, j,k;
جسه جه چاه مهم
bool av; bytes, bytes bytes, bytesa bytes a
hl
char ch1; =. ف
جسه مه
byte \ byte \
* تعریف متغیرها طبق اصول زبان 7)++ می تواند درهرجایی از برنامه صورت پذیرد. و متغیرهای تعریف شده از همان
خط به بعد قلبل استفاده خواهند بود. اما معمولا توصیه میگردد که تعریف متفیرها در همان خط ابتدلیی تابع و
بلافاصله پس از [ صورت پذیرد.
صفحه 26:
مقداردهی به متغیرها
* مقداردهی به متغیرها به سه روش قابل انجام است:
۱- مقداردهی به متغیر هنگام اعلان متغیر در خط تعربفلبه این حالت مقداردهی اولیه یا
101111210 هم كفته مى شود.) 0
0 020 غصار
ا x جه
jint x,y=4 bytes e
جح =
ychar ch1=‘a’,ch2=‘m bytes+ bytes r
ch1 ch2
a w
مه متسه
byte, byte)
صفحه 27:
مقداردهی به متغیرها
۲- مقداردهی به متغیر بعد از اعلان متغیر و با دستور انتساب
jint xym
۲ ch
001 1,2 x fal
sfloat £112 0 5 =
ichar chi,ch2 “GY 0
ِ 9 سود لك 5
ac. مم هه
4 3£2=20.25
x=y=m=0;// multiple assignment 2 1
ine ef 02ح لطع
;b1=false
5
4
صفحه 28:
۶ مقداردهی به متغیرها
۳- مقداردهی به متغیر توسط کاربر وبا استفاده از دستورات ورودی مانند 010 (که مقدار متغیر را از
طریق صفحه کلید دریافت می کند) 1
0 اط1:
;cin>>d
صفحه سیاه خروجی
صفحه 29:
* ثلبت فضلیی از حافظه است ک یک مقدار ثلبت یا لیترال در آن قرار می گیرد و در طول اجرای برنامه نمی توان
مقدار آن را تغيير داد.
؟ به مقادیر ثابت لیترال نیز مى گویند.
® ابت ها می توانند از هر نوع داده اولیه ای (مانند ثابت عددی, ثابت رشته, ثابت کاراکتر و غیره)؛ باشند.
* عملکرد ثولبت درست مانند متفیرهای عادی می باشد با لین تفاوت که مقدارتولیت بعد از تعریف شدن قلبل
صفحه 30:
لیترال های عددی (teyer Licrus)
* براى نمايش لين دسته از ثولبتء از دنبالهای از ارقام بعلاوه علامت + یا - استفاده میکنیم. بعنوان مثال ۴۵- و یا
۹ توابت صحیح هستند.
)+ به شم لجاه میههد درصورتل زوم ثولبتصحیح خود را بالستفاده از یکپيشوند در مبنای۸ یا
۶ نیز که از مبناهایم تداولدر برنامهن ویسیهستنده تعریفف مایید
* برای نوشتن عدد در مبنای ۸ ([0012) یاید آن را با ۰ آغاز کنید. مثلا ۰۳۴۲ یک عدد در مبنای ۸
محسوب می گردد.
* برای نوشتن یک عدد در مبنای 62680601۳061۱۶ بايد آن را با 0 آغاز نمایید. مانند
Ox27A4
~WMecimal,. مل . sel ار
11
صفحه 31:
(Ploutcerpotat Lierus) 5 biel ole JI id
برای نمایش اعداد اعشاری, باید از نقطه اعشار استفاده کنیم. مانند ۲۳۷۰۴۵
© اما نكته جللب آنست كه مىتوانيد از نماد علمى نيز براى نمليش اعداد اعشارى استفاده كنيد. براى اينكار كافى
است از حرف 6 برای نملیش قسمت توان استفاده نمایید و ممیز را بعد از اولین رقم معتادار قرار دهيد: بعتوان
مثال :
نماد علمی
23.47e5 59 -2.347 «۷ 106 < -2.34766-- ٩۱۰۰ ۲۳.۴۷-
4. 2389 <* 10 2<24.23896-2 -" ۰۹
نما
42.389e-3 <4
دقت کنید که قسمت توان. حتما یک عدد صحیح است. Legal // ۰ 3.14159
نت 314159E-5 // Legal
lcs i sles cliel clo lJ wen ۴ ناد 510E —_// Illegal: incomplete exponent.
۴ نمونه لیترال های اعشاری مجز د ید مجذ دد Megal: missing integer or fraction’? // 55
صفحه 32:
لیترال های بولی ((عهابا موامت)
* در زبان برنامه نویسی /6:+ دو نوع لیترال بولی وجود دارد که جزء کلمات کلیدی زبان
۴ 7116 نشان دهنده درست بودن
٩ 8156 نشان دهنده نادرست بودن
© در 2++ ارزش نادرستی معادل ثلبت 8156] بوده و به مقدار صفر تبدیل می شود. در حللی که ارزش درستی
معادل ثابت ۲7116 بوده و به مقدار یک تبدیل می شود.
از سوی دیگر هر مقدار غیر صفر معادل ثابت 7116 و مقدار صفر معادل ثابت ۵156 ۱
صفحه 33:
* _برای نشان دادن ثوابت کاراکتری آنها را در داخل " (علامت نقل قول تکی یا سینگل کوتیشن ) قرار
میدهيم. بعنوان مثال 7۵ یک ثابت کاراکتری است که در نوع داده 0۳ ذخیره می شود.
;'char ch ='A
نجا که کامپیوترها با سیستم باینری کار میکنند لذا در واقع کد اسکی کاراکتر در متغیر ذخیره میگردد.
بنابراین میتوان از آن کاراکتر بعنوان یک عدد صحیح نیز استفاده کرد و اعمال ریاضی بر روی آن انجام داد.
* نکته مهم دیگر آنست که به تفاوت عدد ۵ و کاراکتر "۵" دقت داشته باشید. در حقیقت "۵" برابر است با عدد
۳ که همان کد اسکی آن است.
صفحه 34:
ASCII (American Standard Code for Information .S كد
Interchange)
* کدهای اسکی برای نمایش متون در کامپیوترهاه وسایل ارتباطی و هر وسیله دیگری که با متن سروکار دارد.
استفاده میشوند.
* کد اسکی بر اساس الفبای انگلیسی است.
* تمام مجموعه کاراکترهای نسل جدید (مانند یونیکد و 1۳ ]) از اسکی نشات میگيرند.
* جدول کاملی از کدهای اسکی به همراه نماد کاراکتری آن ها را در دو اسلاید بعد مشاهده می کنید.
۶ ۳۲ کاراکتر اول جدول اسکی برای کاراکترهای کنترلی استفاده میشوند که غیر قابل چاپ میباشند. اين
کاراکترها عموما کاراکترهلیی هستند که روی ظاهر متون تاثیر دارند(برای مثال کاربر میتولند یک خط را نقطه
چین ... کند یا یک کاراکتر را حذف نماید ) یا برای ارسال یک دستور به دستگاههای دیگر نظیر پرینتر مورد
استفاده قرار میگیرند ( مثلا کاراکتری که در دستگاهی مثل «تله تایپ مدل ۳۳» زنگ را به صدا درمی آورد.)
34
۶ ۹۵ کارکتر اسکی قابل چاپ هستند که آنها را در اسلاید بعد میبینيد.
صفحه 35:
11
95
94
78
62
10
9
7
6
109
2
76
108
9
275
10
74
106
105
89
a
103
104
72
37
7
102
70
101
85
99
100
2
67
5
98
a
a2
96
97
65
ry
(space)
امعم
جدول اسکی برای کاراکترهای قابل جاب
asc Symbol ASCH symbol asc || Symbol
صفحه 36:
3
7
0
1
Ww
1
4
32
3
۳
sw
EB
own
sue
bse
ss
98
جدول اسکی برای کاراکترهای غیر قابل چاپ
علا كمه طبور
بیان لک ال
يليان رعق
ihe
خروع
جعت دقيل
جدانده رو
desig
جداكتدة واحد
باك كردن
®
3
"
ww
FF
cr
م
5
DLE
pe.
ber
ber
bor
Nak
قاصله عمودى
صفحه جدید
بازگشت محموله
برون ود
داخل كردق
خروج از دده ها
کنتل ۱ دستگاه
کترل ۷ دستگاه
کترل ۳ Sau
كتترل 6 دستكاه
تیید نشده
as
كراكتر
ار
30
sk
ene
cor
eva
8
0
ire شروع
شروع متن
بایان مت
يليان ارسال
اتاييد شد
صفحه 37:
7 للیترال های کاراکتری در 0++
بر خلاف برخی کاراکترها که قلبل چاپ هستند. بعضی کاراکترها مانند 61116۲ قلبل نمایش نبوده و برای آنها
شکل خاصی وجود ندارد. در چنین مواردی و برای نمایش لین قبیل OASIS زبان /6:+ از ترکیب علامت ۱ به
همراه یک کاراکتر دیگر. استفاده مینماید و نام کاراکتر کنتولی را بر آنها می گذارد. بعنوان مثال. کاراکتر 10۱"
نشان دهنده خط جدید یا همان 61:61 و ]۱ نشاندهنده فاصله از نوع 1:۵1 (۸کاراکتر) میباشد.
بنابراین یک لیترال کاراکتری می تولند یک کاراکتر ساده مانند ٩٩" یک کاراکتر کنترلی مانند "۱" یا یک کاراکتر
جهانی مانند " 1102:6200 باشد.
از
در جدول صفحه بعد برخی از کاراکترهای کنترلی در زبان ++/6 را مشاهده می کنید.
صفحه 38:
38
نام کاراکتر
صدای بوق کامپیوتر
حرکت به عقب backspace
form feed شروع صفحه
line feed سطر جدید
carriage return law slau! a, cus»
horizontal tab فاصله افقی
فاصله عمودی ۵0] vertical
علامت سوال
© نحوه تمايش در
a\
b\
A
n\
۳
t\
ل
a
1
1
۱
0
كد اسكى
12
10
13
11
63
39
34
92
صفحه 39:
ليترال هاى رشته اى (طاسهابا بسبع)
* ليترال هاى رشته اى دنبالهاى از كاراكترها هستند كه بين علامت نقل قول دوتايى (") يا دابل كوتيشن قرار مى كيرند.
© بغنوان مثال "2.5651 15 5قط]" يك wl and,
© دقت كنيد كه '3' يك كاراكتر استء اما "2" يك رشته است که فقط شامل يك كاراكتر مىباشد.
* يك رشته مانند ليترال هاى كاراكترىء مى تولند حاوى كاراكترهاى ساده sails 26 "۰ کاراکترهای کنترلی مانند " ۳۱
و یا کاراکترهای جهانی مانند " 1102620۱ " باشد.
صفحه 40:
(covert) يك ثابت is
۴ ثابتها مقادیر ثابتی هستند که مقدار آنها در حين اجراى برنامه تغيير نمییابد.
؟ ابتها میتوانند از هریک از انواع داده اصلی باشند.
* در زبان Cor دو روش برای اعلان ثوابت وجود دارد:
* استفاده از دستور پیش پردازنده 0606#
؟ استفاده ازدستور 6015
صفحه 41:
#06806 مقدار ثابت> <نام ثابت>>
#define M 100
#define PI 3.14
* معمولا برای تفکیک ثابت از متغیرهای برنامه. نام ثابت با حروف بزرگ نوشته می شود.
* در این دستور نوع ثابت مشخص نشده است. لذا مقداری که برای ثابت تعیین می شود نوع ثابت را مشخص می
© 061۳06 ی کدستور پیشپردازنده لستکه باعاهت#لغاز شده و به نیز ختمنمیشود. لنا قبلترجمه
نامه توسط کامپایان لینبرنامه به پیشپردازنده دادم میشود و پیشپردازنده تغیبرلتیدر برنامه لیجاد
میکند بسه لین 4 پیشپردازنده در کلب رنامه مقدار ثابتوا به جاینام ثابنتقرار لنا دستور
06 در نمارلجرا مجود ن خواهد دلشت
صفحه 42:
۰ 50007
بضورت زیر؛
60251 > <نوع ثابت <مقار ثاب> <ul,
a
const short int x=50; ge | — = 8
es byte \ es
const char y=‘a’;
const int n=100,int m=50;
؟ اگر بعد از اعلان ثولبت در ادامه برنامه سعی کنید مقدار آنها را عوض کنید کامپایلر به شما اعلان خطا خواهد کرد. لذا
دستورات زير در ادامه برنامه فوق با خطا مواجه خواهند شده
صفحه 43:
مزیت استفاده از ثابت در برنامه
* چنانچه بخواهید در هر بار اجرای برنامه مقدار ثابت را عوض کنید لازم نیست کلیه دستورات برنامه که با ثابت سرو
کار دارند را تغییر دهید .کافیست مقدار ثابت را در دستور اعلان ثابت تغییر دهید.
صفحه 44:
(Operctors) le عملگر
۴ عملگر(0[0612101). نمادی است که عملیات محاسباتی یا منطقی خاصی را بر روی یک یا چند عملوند. انجام
می دهد. سور
* عملوند ها (0۳612۳01)» متغیرها یا ثوابتی هستند که عملگرها بر روی انها عمل می کنند. 5 +۸۵ J
۴ هر ترکیب درستی از عملگرها و عملوندها(متغیرها و وابت) را یک عبارت(۳:۳016510۳) مینامیم.
* مثلا 4+۲/5 2+7 و 10+4:۲۶۶ همگی عبارات محاسباتی اند.
عملگر
صفحه 45:
less ||
(Operators)
يمسو
عملگرهای یکانی ۲ عملكرهاى دودويى
۱ Binary) ۱ Unary) |
١ (Operators ~__ (Operators
* به عملگرهاپی که فقط پک عملوند دارند. عملگر بکالی میگوپپم (مانند عدد -125),
* عملگرهایی که برروی دو عملوند اثر میکنند را عملگر دودیپی نامیده و عملگر را بين دو عملوند قرار میدهیم
(مانند 86+23).
صفحه 46:
دس ]| عملگرهای محاسباتی عملگرهای رابطه لی
Assignm)
ent
(Operator
Bitwise) Logical) Relational) Arithmetic)
(Operators (Operators (Operators (Operators
عملگرهای ترکیبی
صفحه 47:
(Assignment Operator)! عملكر
* عملگر انتساب. عملگر - است که در بسیاری از زبانها استفاده میشود. بعنوان مثال :
a=5;
b=c+2*d;
* این عملگر باعث میشود که عبارت سمت راست در عبارت سمت چپ قرار گیرد.
* توجه كنيد كه مقدار سمت جب بايد عبارتى باشد كه بتوان به آن یک مقدار را نسبت داد (مانند یک متفیر»,
بنابراین یک ابت نمیتواند در سمت جب قرار كيرد.
صفحه 48:
(Assignment Operator)! عملكر
* اولویت عملگر - از عملگرهای ریاضی کمتر است و درنتیجه ابتدا آن عملیات انجام شده و در پایان حاصل در عبارت
سمت چپ ریخته میشود.
* شرکت پذیری این عملگر از راست به چپ میباشد. بدین معنا که چنانچه چندین عملگر نسبت دهی داشته باشیم»
لين عملگرها از راست به چپ محاسبه میشوند. مثلا پس از اجرای دستور زیر مقدار هر ۳ متغفیر برابر ۱۰ خواهد
شد.
52
ام
Ul
5
i]
a
i]
۳
2
صفحه 49:
تبدیل نوع در احکام انتساب
در هنكام انتساب نوع عبارت سمت چپ و راست باید یکسان باشد.
*_زمانی که دو متغیر از انواع مختلف به یکدیگر نسبت داده شوند( مثلا متغیری از نوع 08 به متغیری از نوع 10
نسبت داده شود) در برخی زبانهابه صورت ضمنی نوع عبارت سمت راست به نوع عبارت سمت چپ تبدیل میشود
و در برخی زبانها بايد به صورت صريح این تبدیل نوع را انجام داد .
* _شکل کلی تبدیل نوع صریح به شکل زیر است :
(<type>) <expression>
که type نوع مورد نظر است که قصد تبدیل عبارت 626۳016551010 به آن نوع را داریم.
* در تبدیل نوع ممکن است بخشی از اطلاعات از بي
وه
برود.
صفحه 50:
تبدیل نوع در احکام انتساب
int a;
a=2.5*5.0; //implicit type casting
int x = 10;
float ym=3.14;
y= (float) x; //explicit type casting
x= (int) m; //explicit type casting
در دستور دوم عدد ۱۲ در 8 ذخیره خواهد. شد.(بخشی از اطلاعات از بين رفته است!)
در دستورپنجم .کلمه 710817 که قبل از 6 در داخل پرانتز قرار گرفته است.موجب می شود مقدار * از نوع تأط1 به نوع
08 تبدیل گردد.در دستور ششم کلمه 110 که قبل از 10 در داخل پرانتز قرار گرفته است موجب میشود که مقدار
0از نوع 108 به نوع صحیح تبدیل شود و حاصل آن در 6 قرار گیرد.
صفحه 51:
MSB LSB
در تبديل دو نوع با سايز برابر اطلاعات از بين نمی رود
nee اس[
Co)
a در تبدیل نوع بزرگتر به کوچکترممکن است بیت های بارزش تر از بین برود
صفحه 52:
: عملگرهای محاسباتی
اين Lr Shee همان اعمال متداول ریاضی هستند که در زبان 6++ مورد استفاده قرار میگیرند و اعمال محاسباتی را بر
روی عملوندها انجام می دهند. این اعمال عبارتند از :
عملكر
فوع
یکانی
دودویی
دودویی
دودویی
دودویی
دودویی
عمل
منفى كردن عملوند سمت راست(منهای یکانی)
جمع دو عملوند
تفریق دو عملوند
ضرب دو عملوند
تقسیم دو عملوند
محاسبه باقیمانده تقسیم دو عملوند
کاهش
افزایش
صفحه 53:
عملگرهای محاسباتی
Gla Slee cul © برروی همه انواع دادههای 62++ عمل میکنند. بچز عملگر ۸ که فقط برروی نوع دادههای صحیح
عمل:میکنن:
؟ نحوه کار عملگر تقسیم برروی نوع دادههای مختلف به صور
۴ درصورتیکه هردو عملوند صحیح باشند. تقسیم بصورت صحیح بر صحیح انجام خواهد شد.
* اگر یکی یا هر دو عملوند اعشاری باشند. تقسیم بصورت اعشاری انجام خواهد پذیرفت.
صفحه 54:
: عملگرهای محاسباتی
* فرض كنيد تعاریف زیر را داریم :
;int a,b
; float c,d
اکنون به نتایج عملیات زیر دقت کنید :
enya gla ele © كنيد متوجه مئشويد كد أزااتجاقد 8 يك Shee eee es
ثلبت صحیح در نظر گرفته شده. درنتیجه تقسیم بصورت صحیح بر صحیح انجام گرفته است. چنانچه بخواهیم
تقسیم بصورت اعشاری صورت پذیرد. به دو شکل میتوانیم عمل کنیم:
54
صفحه 55:
عملگرهای محاسباتی
اين عبارت را بصورت 4.0 / ۵ بنویسیم.
١
از
تبديل نوع صريح (025111267) ©1570 18011011) استفاده كنيم كه در اينصورت يك نوع به نوع
ديكرى تبديل مى شود.
* بعنوان مثال در مورد قبلى مىتوان به شكل زير عمل كرد :
(float) a/ 4
؟ در این حالت از کامپایلر خواسته ایم که ابتدا عدد 2 را به اعشاری تبدیل کند (البته بصورت موقت) و سپس آن را
بر ۴ تقسیم نماید. که مسلما حاصل اعشاری خواهد بود.
صفحه 56:
تبدیل انواع در عبارات محاسباتی(تبدیل نوع ضمنی)
* در )+ انواع مختلف داده ها می توانند به یکدیگر تبدیل شوند.
* در مورد تبديل انواع در عبارات محاسباتى اين قانون حاكم است كه انواع كوجكتر به انواع بزركتر تبديل مى شوند.
inti تیه سا 8
۳ بعنوان مثال
double d;
result=(ch/i) + ۴*۵۱ - (f+i)
b oo be
| ‘|
نك Be يلم
int double float,
نب
0 |
double
صفحه 57:
* عملگر کاهش (--) یک واحد از عملوندش کم می کند و نتيجه را در آن عملوند قرار می دهد.
عملگر های افز ایش (72) و کاهش(72*20»))
* عملگر افزايش (++) یک واحد به عملوندش اضافه می کند و نتیجه را در آن عملوند قرار می دهد.
* این دو عملگر می توانند سمت چپ و یا سمت راست عملوند خود قرار بگیرند.
m
48
x
0
int x=10,m=10;
xt++4+;
++m;
؟ همانطور که در دستور دوم و سوم مشاهده می کنید عملگر افزلیش و کاهش چه قبل عملوند باشند چه بعد از آن»
"عملکردشان یکسان است. اما عملکرد آنها در عبارات محاسباتی با هم متفاوت است.
صفحه 58:
(Decrewedt) pO 9 (creweut) 11551 ola Shes) 7
دستور 3 ++ )پس افزلیش( بدین معناست که ابتدا از مقدار فعلی 2 در عبارت موردنظر استفاده کن و سپس آن را
افزلیش بده.اما دستور ++ 12 (پیش افزلیش) بدین معناست که ابتدا 3 را افزلیش داده و از آن در عبارت
استفاده كن. لا x
int x,y; 0
11 0
;10=
x 12 =
۲ 7
e
G
صفحه 59:
۷ m
صفحه 60:
قطعه برنامه زیر را در نظر بگیرید.پس از اجرای دستورات . مقدار نهایی هریک از متفیرها چه خواهد شد؟
x y m
int xy,m; ۳
x=10; 10
OO
صفحه 61:
قطعه برنامه زیر را در نظر بگیربدپس از اجرای دستورات به صورت پشت سر هم . مقدار نهایی
هریک از متغیرها چه خواهد شد؟
int x,y,m;
x=10;
y=15;
M=x- +++y;
m=++x + ++y;
صفحه 62:
تقدم عملگر های محاسباتی
* تقدم عملكرها : به اين معنا كه در عبارتى كه شامل چندین عملگر است. ترتیب اجرای عملگرها چگونه خواهد بود.
* تقدم عملگرهای محاسباتی از بالا به پایین بشرح زیر !
* عملكرها با تقدم یکسان نسبت به هم تقدم مکانی دارند .این عملگرها از چپ به راست محاسبه خواهند شد.
* چنانچه بخواهیم یک عمل با تقدم پایین زودتر انجام شود. باید از پرانتز استفاده کنیم. بنابراین تقدم عملگر پرانتز
از همه موارد فوق بیشتراست. در مورد پرانتزهای متداخل. ابتدا پرانتز داخلی محاسبه میشود؛ اما در مورد
برانتزهاى هم سطح. ابتدا
62
انترسمث Jigen محاسيه م كردد:
صفحه 63:
تقدم عملگرهای محاسباتی
* چند متال در مورد اولویت عملگرها
ترتیب اجرای عملگرها عبارت زبان )+
ابتدا عمل * و سيس عمل + 0 + ظ
إبتدا عمل + و سيس عمل © * 0 + ط)
Jee al اسپس b+c/d*e + ee ale g @ Jae
al عبل ه سچن عمل و درآنتها عمل > b+c/(d*e)
صفحه 64:
2 اتقدم عملکرهای محاسباتی
* یک مثال کامل در مورد اولویت عملگرها
(fF و + b)/d)
we 3
صفحه 65:
* از ترکیب عملگر انتساب وعملگرهای محاسباتی ایجاد می شوند.
© باعث میشوند در بعضی موارد بتوانیم عبارات کوتاهتری را بنویسیم.
© تقدم این عملگرها پایین تر از سایر عملگرهاست.
: این عملگرها عبارتند از ©
عبارت انتساب معادل متال
a+=5; a=at+5;
a-= 8; a=a-8;
a*= 10; a=a* 10;
a/=2; a=a/2;
a %= 10; a=a%10;
صفحه 66:
عملگرهای رابطه ای
اد ۳
این عملگرها ارتباط بین عملوندها را مشخص می کنند.
false) be | true) cu,> باشد.
* اين عملكرها عبا
مفهوم عملكر
بزركتر (<)
کوچکتر (>)
بزرگتر یا مساوی (2)
کوچکتر یا ساوی (5)
مساوی (2)
نامساوی (2۶)
e
در واقع عملگرهای رابطه ای, دو عبارت رابا یکدیگر مقایسه کرده و نتیجه را باز میگردانند. نتیجه میتواند
صفحه 67:
عملگرهای رابطه ای
۴ یک اشتباه بسیار متداول برنامهنویسان 2)++ استفاده اشتباه از عملگر انتساب (-) بجای عملگر تساوی (--) است
که باعث ایجاد خطا در برنامه میشود.
؟ اولویت این عملگرها از بالا به پایین بشرح زیر !
* لازم بذکر است که در هنگام مساوی بودن اولویت چند عملگر, این عملگرها از چپ به راست محاسبه میگردند.
صفحه 68:
ریم
* عملگرهای منطقی بر روی عبارات منطقی عمل می کنند. عبارات منطقی دارای دو ارزش درستی و نادرستی
sl
* لین عملگرها به شما اجازه میدهند که شرطهای سادهای را که با استفاده از عملگرهای مقایسهای ایجاد شدهاند
با یکدیگر ترکیب نموده و شرطهای پیچیده تری را بسازید. این عملگرها عبارتند از :
مثال
a>0 && sw==
a<=100 || b!=0
@==1 || b<10)!
نحوه کار
اگر هر دو عملوند درست باشند, درست و در غير
اینصورت نادرست باز میگردان.
9 هر دو عملوند نادرست باشند, نادرست
اینصورت درست یاز میگرداند.
اگر عملوند درست باشد. نادرست و اگر نادرست باشد.
درست برمی گرداد.
مفهوم عملگر
(a. AND
G)
5 منطقی
را
منطقی
Gi)
عملگر
&&
صفحه 69:
7777
bd
false false | false} false
true | false
true false | true | false
false) (pre true false |false| true
true true true | True
صفحه 70:
تقدم عملگرهای رابطه ای منطقی از بالا به پایین بصورت مقابل است:
مثال:
x
N
3
;bool x=true,z=false,m
M=x||!x&&z
صفحه 71:
عملکرهای بینی
از عملکرهای بیتی برای دستکاری بیت ها استفاده می شود .
عملگرهای بیتی به عملگرهایی گفته میشود که عملی را روی یک یا چند عدد باینری در سطح بیت
هایشان انجام میدهند.
به این اعمال. عملیات بیتی (0067۵110 33117196 می گویند و از آنجایی که بسیار ساده هستند توسط
پردازنده به صورت مستقیم نیز پشتیبانی میشوند.
عملیات بیتی معمولا برای انجام اعمالی نظیر مقایسه. محاسبه و ۰.. مورد استفاده قرار میگیرد.
وجود عملگرهای بیتی باعث شد تا بسیاری از کارهای زبان اسمبلی در 62+ انجام شود. مثلا خواندن بایتهای
وضعیت دستگاههایی مثل چاپگر و مودم و تست وضعیت آنها از جمله موارد کاربرد عملگرهای بیتی است.
عملگرهای بیتی بر روی متفیرهای از نوع 0108۳ یا ت10 عمل می کنند و نمی توان آنها را با انواع دیگر به کار
صفحه 72:
عملکرهای بینی
* عملگرهای بیتی رایجی که در اغلب زبان های برنامه نویسی (و نه تمامی آنها) پشتیبانی میشود عبارتند از :
XOR
~ NOT
<< Right Shift
ع Left Shift
صفحه 73:
7 | عملگرهای بیتی
* عملگر 0 بیتی. یک عملگر یکلنی است که تمام بیتهای عملوند خود را تفییر میدهد. )
به یک و بیتهایی که یک هستند را به صفر تبدیل میکند).
* عملگرهای ۸۸ و 01 و ۵6013 عملگرهای باینری هستند. عملوندهایی که توسط این عملگرها بر روی آنها عملیات
بیتی انجام میشود میبایست دارای طول (تعداد بیت) یکسان باشند چرا که این اعمال روی بیتهای متناظر عملوندها
یی که صفر هستند را
انجام میشود.
* عملكر AND بيتى. عمل ۸/2 منطقی را روی هر جفت از بیتهای متناظر در عملوندهایش انجام میدهد.
* عملگر 01 بیتی عملگری است که عمل 018 منطقی را روی هر جفت از بیتهای متناظر در عملوندهایش انجام
میدهد.
* «عملگر 01بیتی نیز عمل یای مانعه الجمع (یای انحصاری) منطقی را روی هر جفت از بیتهای متناظر در
صفحه 74:
1
1
0
0
0
1
1
0
NOT 0110
توجه داشته باشید در فرم متدول نمایش باینری. سمت
OR 1 <
چپترین موقعیت بیتی رابا ارزش نرين (يا مهمترين) بيت Mey
cow 5 (MSB) &( Most significant bit) ,| ين
موقعیت بیتی را کم ارزش ترین (يا کم اهمیت ترین) بیت
((LSB L Least significant bit) مینامند. 210 001
AND 1001 XOR 1001
= 0001 =1100
صفحه 75:
روش از
نحوه تبدیل عدد دسیمال به باینری وق اوه 2 |18
wading واه 18
ie BLE
22 82"
رشع © © 9 69 6699 Daa dee
oe
© 0 © © 0 © © © -
182010
A = @@11 1100
B = 0000 1101
فرض کنید 60 < ۸ و 13 < ظ باشد. آنگاه فرمت باینری آن ها به صورت زیر خواهد بود: 525
0 ۵008 - ققم
1 6811 - ۸۱6
1 ۵611 - ۸۰8
A = 1100 ee11
صفحه 76:
عملگرهای شیفت بیتی
عملگرهای شیفت بیتی. بیت های عملوند خود را براساس نوع شیفت. به سمت چپ يا راست جابجا میکنند.
در عملگر > > (شیفتبه چپ بیتی) بیت های مقدار عملهند رابه تعداد تعیین شده به سمت چپ شیفت داده و
از سمت راست بهجاى مقدار هاى شیفت. داذه شنده بیلت۰ قواز مین دهد.
: تعداد شيفت >> >> متغير
در عملكر << (شيف ,به راست بيقى) بيت هاى مقدار عملوند رابه تعداد تعيين شده به سمت راست شيفت
داده واز سمت جب به جاى مقدار هاى شيفت داده شده بيت ٠ قرار مى دهد.
ز تعداد شیفت << متغیر
صفحه 77:
4
8 « | ه
وا هام
واه
5 3
60 9
re
هط
rN
RS
لت
ام
سا
1
2001 ۹0 و(
شيفت حساپی تک بیتی به سمت راست.
ملاحظه می کنید که هر شیفت به چپ معادل ضرب کردن عدد در ۲ است.
بعد از دستور 6<(6>>2: اطلاعات واقعی از بین می روند و در نتیجه
روند ضرب شدن در ۲ در اینجا صدق نمی کند.
همینطور هر
به راست معادل تقسیم عدد بر ۲ است . MEKSS1
X=XS52
ع
yy
صفحه 78:
نحوه تبدیل عدد باینری به دسیمال
مثال ۱: 0 © © 6 086
1821010
© 0 © © 0
OU+H"O+O*F+0*O+000=00
مثال ۲:
54=110110 وک یک بش یک ی
324164442 = 54
صفحه 79:
2
نمونه برنامه عملكر بيتى 00000)
مثال:
بعد از اجرای دستورات بالا توسط کامپایار زبان ++0 خروجی زير بدست خواهد آمد:
sincluae <ios
using namespace std;
و مم عر زوه -
0 - جر ۰ ركه د
(* فده فص - 32 «/
ده معا جو
int maint) ¢
unsigned int a
unsigned int b
int © = 0;
c= abby
cout << “Vetue
return زه
Value of ¢ is 12
صفحه 80:
9
ذمونه برنامه عملكر شيفت بيتى
مثال:
cout << “Value of cds: "(ce 44 endl و
بعد از اجراى دستورات بالا توسط كاميايلر زيان +64 خروجى زیر بدست خواهد آمد:
ude <iostreen
48
Using nanespace std;
making) 4 عمة
unsigned int a - 60; /* 69 - Ge1t 1100 */
unsigned Int p= 13; + وموم ع كر 1101 °/
ant ¢ = 8%
c= mik2; 7 240 - 1121 9000
return @5
Value of ¢ fs 240
صفحه 81:
علاوه بر عملگرهای اصلی زبان 62:+ .عملگرهای پر کاربرد دیگری نیز وجود دارند که در این بخش بررسی خواهیم کرد.
لا عملگر ]51260
* یک عملگر زمان ترجمه است که می تواند طول یک متغیر یا نوع داده را بر حسب بایت تعیین کند.
با این عملگر به راحتی به آن
* اگر با کامپیوتری کار می کنید و نمی دانید دیتاتایپ های آن چند بایتی است می توانب
پی ببرید.
:نام متغير sizeof
:(نوعدامه) 5912601
int x,y,m;
x=sizeof y;
m=sizeof (float);
صفحه 82:
عملگرهای متفر قه در زبان 40+
لا عملگرپرانتز ۵
* اين عملكر تقدم عملگرهای داخل خود را بالا می برد.
مقدار نهایی ۰13 7 خواهد بود.
y=4*2/(34+1)+(6 + (7-2))
صفحه 83:
هر متغیر علاوه بر نام و مقدار دارای ادرس نیز می باشد.
لا عملگر آدرس )&(
* اين عملكر. یک عملگر یکانی است.(بر خلاف عملگر 4 بیتی که باینری است.)
از این عملگر برای دسترسی به آدرس متفیر استفاده می شود.یعنی اين عملگر آدرس یک متفیر را برمی گرداند.
۴ 56 یعنی ادرس 6 که در مثال فوق ۱۵۰۰ است.
صفحه 84:
لا عملگر ستاره (*) ۴
۵
از اين عملگر برای دسترسی غیر مستقیم به حافظه استفاده می شود. we
۳ 5060 اشاره >
27# یعنی محتویات جایی که 0 به آن اشاره می کند. os
* به متغیری که ادرس متغیر دیگر را در خود نكه مى دارد اشاره كر يا 0201111617 مى كويند. در مثال زیا
اشاره گر است به متغیری که ادرس آن را در خود نگهداری می کند. یعنی 0 به 16 اشاره می کند.
دمر ادرس متغیر 6 را در متغیر 0 قرار بده.
Se 0<5 را در محتویات جایی که 0 به آن اشاره مى كند بريز.
02*0 . محتویاتجاییکه 0 به آاشاید میکند را در 10 بریز
صفحه 85:
لا عملكر علامت سوال يا question mark )@
* این عملگر یک عملگر شرطی ۳تایی (با ۳ عملوند) است.
* لین عملگر ابتدا یک شرط را بررسی می کند و سپس برمبنای نتيجه (درستی یا نادرستی آن) نتیجه عبارت
دیگر را در یک متغیر قرار می دهد .
* شکل کلی این عملگر بصورت زیر است:
pis b>; - #شرط> ۶ <عبارت۱> : <عبارت۲
b مقدار عبارت۱ و در غیراینصورت مقدار عبارت ۲ در متفیر قرار می گیرد.
درصورت درست بودن
صفحه 86:
مثال ۲ :
که این عبارت معادل دستور زیر است:
es
int xy;
x=5;
YHX>5 2 x2 :x*5;
a=(k<10) ?100 :50;
if (k<10)
a=100;
else
a=50;
صفحه 87:
عملگرهای متفرقه در زبان 40+
*؟ مثال ۳: اين دستور به شکلهای پیچیده نیز میتواند مورد استفاده قرار گیرد. مثلا:
c+=(a>0 && a<10) ? ++a : a/b;
: ؟ که معادل است با
c=c + ((a>0 && a<10) ? ++a : a/b);
: که معادل است با
if (a>0 && a<10)
c=c+(++ta);
else
c=c+a/b; 87
صفحه 88:
الاعملكر كاما
اين عملكر براى انجام جند عمل در يك دستور به كار مى رود و كاربرد آن بصورت زیر است:
تفتفیر <(عبارت > , عبارت ۲
عبارت۱ به نحوی با عبارت ۲ در ارتباط است .ابتدا عبارت۱ ارزیابی می شود و عبارت ۲ می تواند از نتیجه آن استفاده
کند. در نهایت حاصل عبارت۲ در متغیر قرار می گیرد.
int xy;
y=(x=2,x*4/2); 2 ۹
صفحه 89:
9
از چپ به راست
از چپ به راست
از چپ به راست
Sal Apel
آزراننت به چپ
۳
از چپ به راست
صفحه 90:
ورودی اطلاعات در ++O0
۴ برای دریافت اطلاعات ورودی از کاربر(خواندن اطلاعات از صفحه کلید) از شی ای بنام 0110 استفاده میشود که
در فايل .105176810 تعریف شده است.
؟ به این منظور باید از عملگر استخراج از جریان پا << بصورت زیر استفاده نماییم. بعنوان مثال:
زنام متغیر >> cin
* برای دریافت اطلاعات چند متغیر نیز از این ساختار استفاده خواهد شد:
بن << نام متغیر۱ >> نام متغیر۲ >> CIN
صفحه 91:
خروجی اطلاعات در ++
۴ برای چاپ اطلاعات در صفحه نمایش خروجی, از شی ای بنام ت00 استفاده میشود که در فایل .105768۳0
تعریف شده است.
* به این منظور باید از عملگر درج در جریان یا >> بصورت زير استفاده نماییم. بعنوان مثال:
زنام متغیر یا عبت> > ]00
برای چاپ چند متغیر یا عبارت نیز از این ساختار استفاده خواهد شد:
7 اع عبت < < عبط >> ]00۱
* براى جاب یک متن یا چاپ عین یک عبارت باید آن را داخل علامت " قرار داد. متن ها می توانند حاوی کاراکترهای
دو کنترلی باشند. این کاراکترها شکل خروجی اطلاعات را مشخص می کنند و با علامت ۱ شروع می شوند.
صفحه 92:
اکاراکترهای کنترلی
کاری که انجام می شود
بوق سیستم را به صدا در می آورد
کاراکتر قبل از خودش را حذف می کند
سطر جاری را رد می کند
برگشت به ابتدای سطر ۲61۲ 7۲296
کنترل خروجی را به ابتدای 8 محل بعدی می برد
کنترل خروجی را به ابتدای 8 سطر بعدی می برد
علامت ؟ را چاپ می کند
علامت " راچاپ می کند
علامت " را چاپ می کند
علامت ۱ را چاپ می کند
علامت : را چاپ می کند
کاراکتر کنترلی