computer programming2 Lecture 4
computer programming2 Lecture 4
T. Arwa Al-mohimmah
اٌغالعً اٌشِض٠خ String -
• إْ اٌّىزجخ اٌم١بع١خ ٌٍغخ ٌٙ C++ب اٌمٛح ٌٍزؼبًِ ِغ أطٕبف اٌشِٛص ٚ ,اٌزٟ
رؼزجش ِف١ذح خذاً ٌٍزؼبًِ ِغ اٌغالعً اٌشِض٠خ ٚاألحشف ٚ ,اٌغٍغٍخ اٌشِض٠خ
ّ٠ىٓ رّثٍٙ١ب وّظفٛفخ ثغ١طخ ِٓ اٌؼٕبطش
• ٚػحٕب عبثمب ً و١ف١خ اٌزؼبًِ ِغ اٌذاٌخ )(ٚ cin.getع١زُ ا ْ٢رٛػ١حٙب ثشىً أوجش ِغ
رٛػ١ح ثؼغ اٌذٚاي األخش ٜاٌّغزخذِخ ٌٍزؼبًِ ِغ اٌغالعً
• وّب ػشفٕب أْ اعزخذاَ األِش >> cinفمؾ ػٕذ لشاءح اٌغٍغٍخ فئٔٗ ٠زٛلف ػٓ اٌمشاءح
ػٕذ إ٠دبد فشاؽ ٚ whitespaceاٌفشاغبد لذ رزؼّٓ اٌفشاؽ اٌّفشد )ٚ (Spaceاٌفشاؽ
اٌىج١ش )ٚ(tabاٌغطش اٌدذ٠ذ ((Newlines
• ٚاحذح ِٓ اٌطشق ٌحً ِشىٍخ ( ػذَ ؽجبػخ ِب ثؼذ اٌفشاغبد ) gets( ) .1
اٌز ٟرظٙش ػٕذِب ٠زُ اإلدخبي ثٛاعطخ األِش >> ٛ٘ cinثبعزخذاَ داٌخ )(gets
ٚاٌظ١غخ اٌؼبِخ ٌٙب وبٌزبٌ: ٟ
• ٔالحع ٕ٘ب أٔٗ ٌٓ ٠زُ لجٛي أوثش ِٓ 10حشٚف ف ٟاٌغٍغٍخ ٚرٌه ألٔٗ رُ رحذ٠ذ رٌه فٟ
اٌذاٌخ اٌّغزخذِخ
cin.get ( ) .3
• اٌذٚاي اٌغبثمخ رزٛلف ػٓ اٌمشاءح ػٕذِب ٠زُ اٌؼغؾ ػٍ Enter ٝأNewline ٞ
ٌىٓ ٌ ٛأسدٔب لشاءح عٍغٍخ ِىٔٛخ ِٓ ػذح أعطش فئٔٗ ّ٠ىٓ رٌه ثبعزخذاَ
)(cin.get
• ف٘ ٟزٖ اٌذاٌخ ٠زُ ادساج ِؼبًِ ثبٌث ٘ ,زا اٌّؼبًِ ٠حذد اٌشِض اٌز٠ ٞخجش اٌذاٌخ
ثئ٠مبف اٌمشاءح ,اٌمّ١خ االفزشاػ١خ ٘ ٟعطش خذ٠ذ أ)‘\n’( ٞ
• رم٘ َٛزٖ اٌذاٌخ ثدّغ اٌغالعً (سثؾ اٌغالعً ) أ ٞإٌحبق عٍغٍخ ثغٍغٍخ أخش.ٜ
• فّثالً ٌ ٛأٌحمٕب اٌغٍغٍخ scienceثبٌغٍغٍخ computerعزىٔ ْٛز١دخ اٌغٍغٍخ
computer scienceوّب ف ٟاٌّثبي اٌزبٌ: ٟ
strcmp( ) .4
• رمبسْ ٘زٖ اٌذاٌخ اٌغٍغٍخ األِ ٌٝٚغ اٌغٍغٍخ اٌثبٔ١خ ٚرشخغ 0إرا وبٔزب ِزطبثمزٓ١
ٚلّ١خ عبٌجخ إرا وبٔذ اٌغٍغٍخ األ ٌٝٚأطغش ِٓ اٌثبٔ١خ ٚلّ١خ ِٛخجخ إرا وبٔذ
اٌغٍغٍخ األ ٌٝٚأوجش ِٓ اٌغٍغٍخ اٌثبٔ١خ
• رمبسْ اٌذاٌخ ِمبسٔخ ثٕبئ١خ ٌألحشف ( binary
)comparison
• اٌّمبسٔخ حغبعخ ٌألحشف أ ٞأْ Aال ٠غبٞٚ
a
• اٌّثبي اٌّمبثً ٛ٠ػح ثشٔبِح ٠م َٛثبٌزحمك ِٓ
وٍّخ اٌّشٚس
strlwr ( ) .5
رؼًّ ػٍ ٝرح ً٠ٛعٍغٍخ اٌحشٚف اٌىج١شح •
إٌ ٝحشٚف طغ١شح
• رؼًّ ػٍ ٝرح ً٠ٛعٍغٍخ اٌحشٚف اٌظغ١شح إٌ ٝحشٚف وج١شح strupr ( ) .6
ِثبي :
• برَايج ٌقىو بطباعت انسهسهت
انًذخهت يٍ نىحت انًفاتٍح بشكم
عكسً
) (isalpha
رغزمجً ٘زٖ اٌذاٌخ ِزغ١ش ِٓ ٔٛع سِض (حشفٚ )ٟرفحض
إرا وبْ اٌشِض ِٓ حشٚف اٌٙدبء ٚرؼ١ذ اٌمّ١خ ( )0إرا ٌُ
٠ىٓ حشف ..
) (isdigit
ٚرغزخذَ ٌزح ً٠ٛاٌشِٛص اٌحشف١خ ثأحشف طغ١شح إٌ ٝسِٛص حشف١خ ِىزٛثخ ثأحشف وج١شح
) (tolower
ٚرغزخذَ ٌزح ً٠ٛاٌشِٛص اٌحشف١خ ثأحشف وج١شح إٌ ٝسِٛص حشف١خ ِىزٛثخ ثأحشف طغ١شح
ِثبي :
ٌىٓ ٔالحع أْ اٌذاٌخ رأخز (حشف ِفشد) وٛع١ؾ ٌٙب ػىظ اٌذاٌخ ) ( struprاٌز٠ ٟىْٛ •
اٌٛع١ؾ ػجبسح ػٓ عٍغٍخ ِٓ اٌحشٚف ٚ ,وزٌه األِش ثبٌٕغجخ ٌٍذاٌخ tolower
ف ٟاٌّثبي ٔالحع أْ ششؽ اٌزٛلف ػجبسح ػٓ ] str[iأ ٞأٔٗ ع١ظً ٠زىشس ِبداِذ لّ١خ •
اٌششؽ Trueإٌ ٝأْ رظجح ٚ Falseعزظً اٌمّ١خ طح١حخ ِبداِذ iفٙ١ب ػذد غ١ش اٌظفش
ٚ ,ثّب أْ رظً إٌٙٔ ٝب٠خ اٌغٍغٍخ أ \0 ٞفئْ اٌمّ١خ ٌٍششؽ عزى ْٛخبؽئخ ٚثبٌزبٌ ٟع١زٛلف
اٌجشٔبِح ػٓ اٌزٕف١ز ..
• ٌىٓ ال ّ٠ىٓ أْ رزُ ػٍّ١خ اإلعٕبد ف ٟأِ ٞىبْ آخش ثبٌجشٔبِح وبٌزبٌ: ٟ
• ػٕذ وزبثخ سلّ “colorf0" ٓ١فئْ األٚي ع١غ١ش ٌ ْٛإٌض ٚاٌثبٔ ٌْٛ ٟاٌخٍف١خ ..
انتُسٍق باستخذاو ((cout
• رحز cout ٞٛػٍ ٝاٌؼذ٠ذ ِٓ اٌخٛاص اٌخبطخ ثبٌزٕغ١ك ِٕٙٚب :
ٚ width -اٌز ٟرؼًّ ػٍ ٝإصاحخ ٌٍ ِٓ ٓ١ّ١خٙخ اٌ١غبس ثّمذاس ِؼٓ١
ٚ fill -اٌز ٟرم َٛثزؼجئخ اٌفشاغبد اٌز ٟرشوزٙب widthثشِض ِؼٓ١
ٚ precision -اٌز ٟرم َٛثزمش٠ت األسلبَ
إٌّبٚساد Manipulators -
• إٌّبٚساد ٘ ٟرؼٍّ١بد رٕغ١ك رُذسج ف ٟاٌذفك ِجبششح ,سإٔ٠ب ِٕٙب حز ٝا ْ٢إٌّبٚس
ٚendlاألِش ٕ٘ٚ endsبن ٔٛػ ِٓ ٓ١إٌّبٚساد :
ٛٔ .1ع ٠أخز ٚع١ؾ
ٛٔ .2ع ال ٠أخز ٚع١ؾ
ِثبي :
• ف ٟاٌّثبي األٚي ٠زُ ػجؾ ؽجبػخ
اٌشلُ ثؼذ ػشش ِغبفبد
• اٌّثبي اٌثبٔ٠ ٟزُ ف ٗ١ػجؾ ِمذاس
خبٔزٌٍ ٓ١ؼذد اٌّؼشٚع
• اٌّثبي اٌثبٌث ٛ٠ػح و١ف١خ ػجؾ األػالَ اٌّخزٍفخ ٕ٘ٚبن اٌؼذ٠ذ ِٓ اٌـ .. flags
اٌّثبي ٛ٠ػح اثِٕٕٙ ٓ١ب ..
• ( )ios::showpointرؼًّ ػٍ ٝإظٙبس اٌفبطٍخ اٌؼشش٠خ حزٚ ٝإْ وبْ اٌؼذد طح١ح
فئٔٙب رظٙش أطفبس ثؼذ اٌفبطٍخ ..اٌّثبي ٠ظٙش ثالثخ أطفبس ثٕبء ػٍٝ
) setprecision(3اٌغبثمخ ..
ر١ٌٛذ األسلبَ اٌؼشٛائ١خ Random Number Generation -
• اٌزبثغ ) ٟ٘ (randداٌخ رٕزّ ٟإٌ ٝاٌّىزجخ اٌّؼ١بس٠خ ٌٍغخ Cرؼًّ ػٍ ٝر١ٌٛذ
أػذاد طح١حخ ِٓ ( )0إٌ ٛ٘ٚ RAND_Max ٝػجبسح ػٓ ثبثذ ِؼشف فٟ
اٌٍّف اٌشأط stdlib
• ٠دت أْ رى ْٛلّ١خ ِ RAND_Maxغب٠ٚخ ٌٍمّ١خ 32767ػٍ ٝاأللً ٛ٘ٚ ,
اٌمّ١خ اٌّٛخجخ اٌؼظٌّ ٝزّث ً١لّ١خ طح١حخ ػٍ 16 ٝخبٔخ ثذ ..
• اٌّثبي اٌّمبثً ع١ؼًّ ػٍ ٝر١ٌٛذ ػذد ػشٛائٚ ٟحفظٗ
ف ٟاٌّزغ١ش ٚ iوّب روشٔب عبثمب ً ع١ى ْٛاٌشلُ ػشٛائ١ب ً أِٓ ٞ
0إٌ32767 ٝ
• ٌ ٛأسدٔب أْ رى ْٛاألسلبَ ِثالً سلُ ػشٛائ ٟث ٓ١اي ٚ 1اي 6وّب ف ٟحدش إٌشد فئٕٔب
عٕم َٛثبعزخذاَ اٌؼٍّ١خ ِ %غ اٌزبثغ ;)( randثبٌشىً اٌزبٌrand( ) % 6; ٟ
ِٓ أخً ر١ٌٛذ أػذاد طح١حخ ػّٓ اٌّدبي 0حز .. 5 ٝثُ ٔم َٛثئػبفخ 1إٌ ٝوً
ِّٕٙب ٌٍحظٛي ػٍٔ ٝزبئح ثٚ 1 ٓ١اي 6وّب ف ٟاٌّثبي اٌزبٌ: ٟ
• اٌّثبي اٌغبثك ٠زُ ف ٗ١ر١ٌٛذ ػششح أسلبَ ػشٛائ١خ ث ٓ١اٌـ ٚ 1اٌـ 6
• ٌٛ٠ذ اٌزبثغ randػٍّ١ب ً أػذاد شجٗ ػشٛائ١خ pseudo-random-numbers
ح١ث رجذ ٚعٍغٍخ األػذاد اٌٌّٛذح ثٛاعطخ االعزذػبءاد اٌّزىشسح ٌٍزبثغ randػٍٝ
أٔٙب ػشٛائ١خ ٚرؼ١ذ ٘زٖ اٌغٍغٍخ ٔفغٙب ف ٟوً ِشح ٠زُ فٙ١ب إػبدح رٕف١ز اٌجشٔبِح ( .لُ
ثزٕف١ز اٌجشٔبِح ِشح أخش ٜعزالحع أْ اٌمٔ ُ١فغٙب ف ٟوً ِشح )
• ٌىٓ ِٓ اٌّّىٓ أْ ٔطٍت ِٕٗ ر١ٌٛذ عٍغٍخ ِخزٍفخ ِٓ األػذاد اٌؼشٛائ١خ ف ٟوً ِشح
ٕٔفزٖ فٙ١ب ..رغّ ٝاٌؼٍّ١خ اٌغبثمخ ثبٌؼًّ اٌؼشٛائ٠ٚ randomizing ٟزُ رٌه
ثٛاعطخ اٌزبثغ ِٓ srandرٛاثغ اٌّىزجخ اٌّؼ١بس٠خ ٠ ..أخز اٌزبثغ srandلّ١خ طح١حخ
ِٓ إٌّؾ unsigned intوٛع١ؾ ( ..أ ٞأٔٗ ال ٠مجً إال ػذد طح١ح ِٛخت )
الحع أٔٗ ثبإلػبفخ إٌ ٝاٌّىزجبد األعبع١خ ٠دت رؼّ ٓ١اٌّىزجبد اٌز ٟعٛف ٔحزبخٙب •
ّ٠ىٓ أْ ٔدذ ّٔٛرج اٌزبثغ timeف ٟاٌٍّف اٌشأعٚ <time.h> ٟاٌزبثغ )( setwفٟ •
اٌٍّف اٌشأع<iomanip.h> ٟ
ٔالحع أْ ; x = 1 + rand()%6رؼط ٟأػذاد ث6 ٚ1 ٓ١ •
ٌىٓ ٌ ٛأسدٔب ٌٔٛذ أسلبَ ث ٓ١ػذدِ ٓ٠خزٍفٔ ٓ١غزخذَ اٌظ١غخ •
; n = a + rand()%bح١ث aرؼجشػٓ لّ١خ اإلصاحخ ( ٟ٘ٚرغب ٞٚأ٠ؼب ً أٚي لّ١خ
ِٛخٛدح فِ ٟدبي رحٛي اٌم ُ١اٌؼشٛائ١خ ) اٌٌّٛذح
• ( ٟ٘ b ٚػجبسح ػبًِ اٌزىج١ش scaling factorاٌز٠ ٞؼجش ػٓ ِدبي رحٛي اٌمٚ .. ُ١
٠ bزُ إ٠دبد٘ب ثبٌطش٠مخ اٌزبٌ١خ )ٚ b = ( b – a + 1رُ رٛػ١حٙب ف ٟاٌّثبي اٌزبٌ: ٟ
• رى ْٛل 1 ِٓ ّٗ١إٌٔ 12 ٝغزٕزح ِٓ اٌّثبي اٌغبثك أٔٗ ّ٠ىٓ إػطبء أ ٞلّ١خ
طح١حخ ٌٍم ُ١اٌثبثزخ اٌٛاسدح ػّٓ رؼش٠ف أّٔبؽ اٌزؼذاد ..
ِالحظبد :