المحاضرة الثانية

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 5

‫راح ندرس الٌوم شكل البرنامج الرئٌسً وبعض المصطلحات الهامة‪ ..

‬وننتقل بعد ذلك فً المحاضرة الثالثة إن‬


‫شاء هللا إلى التطبٌق فً اللؽة بشكل مباشر ( فً الكومباٌلر)‬
‫‪---‬‬
‫المحاضرة الثانٌة ‪:‬‬

‫البرامج التً نكتبها بشكل كامل تكون عبارة عن أفكار خوارزمٌة‪..‬‬

‫س ‪ :‬ما هً الخوارزمٌة أو الخوارزمٌات ؟‬


‫ج ‪ :‬نستمع كثٌرا عن الخوارزمٌات وتعنً باختصار الطرٌقة‪..‬‬
‫ال(خوارزمٌة) الالزمة لعمل فنجان من الشاي ؟‬
‫أي مثال ما هً ـ‬
‫الجواب ‪ :‬نحتاج فً البداٌة إلى كؤس فارغ ‪ ،‬ماء ‪ ،‬ظرؾ شاي ‪ ،‬وسكر إن أردنا‪..‬‬
‫بالبداٌة نضع الماء على النار حتى ٌؽلً ثم نضعها فً الكؤس ونضع الظرؾ والسكر‪..‬‬
‫مالحظة‪ :‬فً هذا المثال ال ٌضر إن وضعنا السكر قبل الظرؾ أم الظرؾ قبل السكر‪ ،‬لكن فً أمثلة أخرى‬
‫ي‬
‫الترتٌب ٌكون مهم جدا‪ ..‬فمثال لكتابة ملؾ وورد على الكمبٌوتر ٌجب أن تقوم بتنصٌب الوورد على جهازك ؾ‬
‫البداٌة ثم تكتب النص المطلوب ‪ ،‬أي أنه ال ٌمكنك أن تقوم بكتابة ملؾ الوورد ثم تقوم بتنصٌب الوورد على‬
‫جهازك !! (الترتٌب مهم(‬

‫والخوارزمٌة فً البرمجة هً تماما كخوارزمٌة كتابة ملؾ وورد أو خوارزمٌة عمل شاي ‪ ...‬إلخ‪..‬‬

‫ٌجب أن تفكر وتكتب خوارزمٌة أي برنامج ترٌد عمله‪ ..‬تتخٌل شكله‪ ،‬ماذا سٌحتاج وماذا ستقوم بإدخال له ؟ ‪،‬‬
‫ماذا سوؾ ٌعطٌك فً النهاٌة (الهدؾ من البرنامج)‬
‫مالحظة ‪ٌ :‬مكن أن تقوم بكتابة أي برنامج بآالؾ الطرق ‪ ،‬فلٌس هناك طرٌقة محددة ٌجب أن تمشً بها ‪ ..‬قم‬
‫باإلستٌعاب وإنطلق بتفكٌرك فً البرمجة مباشرة ‪..‬‬

‫إذن على سبٌل المثال نفذ التمرٌن التالً‪:‬‬


‫أكتب خوارزمٌة نقوم بها بإٌجاد معدل طالب جامعً له ‪ 5‬مواد فً سنته‪..‬‬

‫فكر معً ٌا ؼالً‬

‫فكر‬

‫ال ‪ 5‬مواد اللً عند الشخص ‪ٌ ..‬عنً أكٌد إحنا ما رح نحسب المعدل الخاص بهذا الطالب‬
‫بالبداٌة نحتاج طبعا ـ‬
‫بدون ما تكون عندنا المواد الخاصة به !! ‪ٌ ،‬عنً الترتٌب هنا مهم‪..‬‬

‫نحتاج بالبداٌة (المعطٌات) المواد الخاصة بهذا الطالب‪..‬‬


‫العملٌة‪ :‬نقوم بإدخال المواد إلى الكمبٌوتر (نحن اللً ندخل المواد ولٌس تكون فً البرنامج تلقائٌا) بمعنى أننا‬
‫سوؾ ندخل من لوحة المفاتٌح المادة رقم واحد ثم رقم ‪ 2‬و‪ ...‬إلى رقم ‪.5‬‬

‫ٌقوم الكمبٌوتر بجمع العالمات كلها‪..‬‬


‫ال‪ ، 5‬أو كان مدخل مثال)‬
‫ٌقوم الكمبٌوتر بقسمة الناتج على عدد المواد (فً حال كان عدد المواد ؼٌر ـ‬
‫ٌقوم الكمبٌوتر بطباعة الناتج‪..‬‬

‫هذه هً خوارزمٌة الحل‪..‬‬

‫هذه البٌانات ال تشوفونها سخٌفة إخوانً ‪ ..‬هذه هً أهم النقاط وأهم شً بالبرمجة كلها (التفكٌر الخوارزمً)‪..‬‬

‫طٌب فً حال كان عدد المواد مجهول‪ ،‬كٌؾ رح تكون الخوارزمٌة ؟‬

‫ٌعنً إحنا رح نسوي برنامج بٌستخدمه أكثر من شخص ‪ ،‬شخص عنده ‪ 5‬مواد وشخص عنده ‪ .. 10‬الخ‬

‫الخوارزمٌة هً على النحو اآلنً‬

‫نقوم بإدخال إلى البرنامج عدد المواد فً البداٌة‪..‬‬

‫ٌقوم الكمبٌوتر بحجز أماكن لهذه المواد‪..‬‬

‫نقوم بإدخال المواد إلى الكمبٌوتر (نحن اللً بندخل)‬

‫ٌقوم الكمبٌوتر بجمع هذه المواد‪..‬‬

‫ٌقوم الكمبٌوتر بقسمه الناتج على عدد المواد المدخل فً البداٌة‪..‬‬


‫ٌطبع الكمبٌوتر الناتج‪..‬‬

‫‪------------------‬‬

‫عشان تعرفوا كٌؾ تفكروا بالخوارزمٌات ‪ ..‬رح أعطٌكم كل األدوات الممكن إستخدامها‪..‬‬

‫‪ - 1‬المتحوالت‪:‬‬

‫ٌمكن بؤن نستخدم المتحوالت التالٌة‪:‬‬

‫‪ -1‬المتحول الصحٌح (ٌقبل األعداد الصحٌحة مثل ‪ 1‬و ‪ 2‬و ‪ 12135‬إلخ ‪ ) ..‬لكنه ال ٌقبل ‪ 1.5‬مثال ‪ ..‬أي أنه‬
‫ٌقبل األعداد الصحٌحة فقط‪.‬‬

‫ٌسمى المتحول الصحٌح ـب‪ integer‬وٌرمز له ـب‪int‬‬

‫‪ -2‬المتحول الكسري ‪ :‬هو متحول ٌقبل األعداد (‪ 1.5‬و جذر(‪ )3‬و أي عدد به فواصل(‬
‫مالحظة ‪ :‬طبعا بما أن المتحول ٌقبل األعداد الكسرٌة فهو بالتؤكٌد ٌقبل األعداد الصحٌحة (مجموعة األعداد‬
‫الحقٌقٌة تقبل أي عدد صحٌح( ‪..‬‬

‫ٌعنً لو أنت أدخلت للمتحول كسري رقم ‪ 1‬مثال فهو ٌخزنه على أنه ‪1.0‬‬

‫ٌسمى المتحول الكسري ‪ : float‬وٌرمز له ـب‪ float‬أٌضا‪..‬‬

‫‪ - 3‬المتحول الحرفً‪ :‬هو متحول ٌقبل حرؾ واحد فقط‪ ..‬أي مثال حرؾ ‪ a‬أو ‪ A‬أو ‪ +‬أو ‪ /‬أو أي رمز على‬
‫الكٌبورد ‪ ( ..‬حرؾ واحد فقط ) ‪ ،‬وتستطٌع وضع أرقام به لكنه ٌعتبرها حروؾ مثل "‪"1‬‬

‫ٌرمز له ـب‪char‬‬

‫‪4-‬المتحول السلسلً ‪ :‬هو عبارة عن سلسلة من المتحول) ‪ٌ char‬عنً كلمة أو جملة) وتستطٌع أن تضع به أي‬
‫عبارة مثل "‪ "hi‬أو "‪ "i'm Mr.Radwan‬أو أٌة كلمات ترٌدها‪..‬‬

‫ٌرمز له ـب‪string‬‬

‫‪ - 5‬المتحول المنطقً ‪ :‬وهو متحول ٌقبل فقط حالتٌن ‪ :‬إما ‪ true‬أو‪false ..‬‬
‫أو بعبارة أخرى ‪ :‬إما ‪ 0‬أو ‪( .. 1‬الصفر للفولز ‪ ،‬وال‪ 1‬للترو (‬
‫نستخدمه فً المقارنات وفً تجربة الصٌػ ( كله بٌوضح بعدٌن(‬
‫ٌسمى ـب‪ boolean‬وفً اللؽة ٌسمى ‪bool‬‬

‫‪-------------‬‬
‫هناك متحوالت أخرى ( مإشرات ) لن نتطرق لها ‪ ..‬وهناك متحوالت أخرى (مصفوفات ) سنتطرق لها فً‬
‫الوقت المناسب لها‪..‬‬

‫كٌفٌة التعرٌؾ عن المتحوالت‪..‬‬

‫ال ‪C++‬‬
‫س ‪ :‬كٌؾ نعرؾ عن متحول ما فً ـ‬

‫ج ‪ :‬نستطٌع التعرٌؾ عن المتحول بالشكل التالً‪:‬‬

‫نوع المتحول إسم المتحول‬

‫نستطٌع تسمٌة المتحوالت بؤي إسم نشاء ‪ ..‬ابتداء من حرؾ واحد إلى أي عدد نرٌده ‪ ..‬لكننا ال نستطٌع أن‬
‫نسمً المتحول بإسم ٌبدأ برقم أو إشارة‪- ..‬‬

‫مثال‪:‬‬

‫; ‪int x‬‬

‫; ‪float num‬‬

‫; ‪char soso‬‬

‫; ‪string myname_inADSLGATE‬‬

‫; ‪bool test‬‬

‫وهكذا‪..‬‬

‫نرٌد أن نضع قٌمة لكل م تحول عرفناه ماذا نفعل ؟‬


‫ج ‪ :‬بكل بساطة نكتب إسم المتحول ‪ ،‬ثم إشارة ٌساوي ‪ ،‬ثم القٌمة المطلوبة‪..‬‬

‫مالحظة ‪ :‬فً حال كان المتحول من نوع ‪ char‬أو ‪ٌ string‬جب وضع الحروؾ بٌن عالمات تنصٌص" "‬

‫ال ‪ٌ C++‬جب أن تنتهً بفاصلة منقوطة (مكان حرؾ الكاؾ) ; ( )‬


‫مالحظة ‪ : 2‬كل تعلٌمة من تعلٌمات ـ‬

‫مثال تكملة لما سبق‪:‬‬

‫; ‪x = 55‬‬

‫; ‪num = 2.54‬‬
‫; "‪soso ="a‬‬

‫;"‪myname_inADSLGATE = "alsafa7soso‬‬

‫; ‪test = false‬‬

‫وهكذا تكون عملٌة اإلسناد‪..‬‬

‫نستطٌع اإلسناد مرة أخرى إلى أي متحول ‪ ،‬وٌؤخذ هذا المتحول القٌمة الجدٌدة وٌنسى القٌمة القدٌمة‪..‬‬

‫ال ‪ C++‬لدي حلقات تكرارٌة عدٌدة سوؾ ندرسها فً المستقبل كل فً وقته‪..‬‬


‫أٌضا أعزائً فً ـ‬

‫دمتم فً رعاٌة هللا والسالم علٌكم ورحمة هللا وبركاته‪...‬‬

You might also like