0:00:00.000,0:00:04.685 حتى الآن، كنا نكتب الأكواد البرمجية , حيث يكون هناك حالة أختبار . و اذا كانت نتيجة الاختبار : نعم 0:00:04.685,0:00:08.975 نقوم بطباعة صف من البيانات على الشاشة . لذلك , في هذا المقطع القصير , سوف نرى كيف 0:00:08.975,0:00:13.378 نقوم بحساب عدد الصفوف التي كانت فيها نتيجة الاختبار : نعم 0:00:13.378,0:00:17.620 و هذا قريب مما تريد ان يفعله الكمبيوتر حقيقةً . لذلك 0:00:17.620,0:00:21.965 لكي نفعل لذلك , علينا أن نضيف بعض الأكواد البرمجية إلى الأكواد التي كنا نكتبها من قبل 0:00:21.965,0:00:26.004 هذه الاكواد مشروحة هنا , و لكن أود الإشارة إلى أمثلة من هذه الأكواد الجديدة 0:00:26.004,0:00:30.401 هناك ثلاثة أشياء علينا إضافتها لنقوم بعملية العد . أولها أنني 0:00:30.401,0:00:34.593 سأقوم بتعريف متغير جديد , أسميه على سبيل المثال [br]:count 0:00:34.593,0:00:38.529 و بالطبع سوف أعطيه قيمة ابتدائية تساوي : صفر و هذ قبل ان تبدأ ال[br]loop 0:00:38.529,0:00:43.165 حسناً . العداد الآن مساوي للصفر . بعد ذلك و داخل اللفة (لوووب) و داخل جملة الشرط[br]if 0:00:43.165,0:00:48.158 في ذات المكان الذي كنت أضع فيه أمر طباعة الصف كما فعلنا ذلك مرات , سأقوم الآن بوضع 0:00:48.158,0:00:52.909 سطر آخر قد يبدو مضحكا هو [br]count=count+1 0:00:52.909,0:00:57.473 سوف أخبرك ما يمكن لهذا السطر فعله . فمهما كانت القيم المخزنة في المتغير[br]count 0:00:57.473,0:01:02.008 سيقوم هذا الأمر باضافة واحد الى هذه القيمة [br]بمعنى انه سينقله من ست إلى سبع أو من عشر إلى أحد عشر و هكذا 0:01:02.008,0:01:06.485 و لكن دعني اشرح لك كيف يعمل هذا الأمر[br]في الرياضيات , 0:01:06.485,0:01:10.963 هذا الأمر لا يعني شيئا على الاطلاق [br]فما معنى أن قيمة تساوي نفسها + واحد 0:01:10.963,0:01:15.951 لكن سبب أن هذا يعمل في الكمبيوتر ان وظيفة العلامة + هنا مختلفة 0:01:15.951,0:01:20.485 فالإشارة في الكود البرمجي أكثر بساطة مما هي عليه في الرياضيات 0:01:20.485,0:01:25.136 و الشيئ الذي يجب أن تفهمه جيداً , ان الإشارة تقوم بتقدير الطرف الأيمن [br]و من ثم 0:01:25.136,0:01:29.469 فبمجرد حساب هذه القيمة , فإنه يقوم بتخزين هذه القيمة 0:01:29.469,0:01:33.854 في المتغير الذي في الطرف الأيسر [br]لذلك , تخيل انه في أول مرة سيعمل هذا الأمر فإن 0:01:33.854,0:01:38.188 العداد سيكون مساوي للصفر حتى يصل إلى هذا السطر[br]و سيكون أول شيئ سيفعله هو تقدير 0:01:38.188,0:01:42.364 الطرف الأيمن . العداد يساوي صفر , صفر +1 تساوي 1 [br]لذلك فإن 0:01:42.364,0:01:46.541 الطرف الأيمن يساوي 1 . و بمجرد أن ينهي هذا[br]سيقوم بتخزين القيمة في العداد[br]count 0:01:46.541,0:01:50.874 لذا , فالعداد الآن يساوي واحد [br]انت الآن عرفت الوظيفة التي يفعلها هذا السطر 0:01:50.874,0:01:54.946 العداد كان مساوياً للصفر و أصبح الآن مساوياً واحد .بمعنى أنه زاد 0:01:54.946,0:01:59.098 عندما يرى هذا السطر مرة أخرى و اذا كانت جملة الشرط متحققة , فان القيمة التي 0:01:59.098,0:02:03.659 في الطرف الأيمن تحسب هكذا[br]العداد يساوي 1 و 1+1 يساوي 2 و بمجرد حساب القيمة 0:02:03.659,0:02:08.103 فإن تلك القيمة سيتم تخزينها في العداد[br]فالعداد الآن يساوي اثنان 0:02:08.103,0:02:12.957 في النهاية . لست مطالب بمعرفة كيف يتم هذا الأمر بالتفصيل 0:02:12.957,0:02:17.343 فقط تحتاج لتعرف أن الصيغة [br]x=x+1[br]تقوم بزيادة القيمة بمقدار 1 0:02:17.343,0:02:22.572 في كل مرة يتم تنفيذها . [br]حسناً , كنت قد قلت أن هناك ثلاثة أجزاء . علينا ان نجعل قيمة العداد صفراُ 0:02:22.572,0:02:27.784 ثم أن نضع داخل جملة الشرط هذا الأمر[br]count=count+1[br]و في النهاية 0:02:27.784,0:02:33.197 سنقوم بعرض نتجة العداد بعد كل شيئ [br]بعد نهاية الفور لوووب 0:02:33.197,0:02:39.475 بجميع حلقاتها . [br]دعنا نحاول تجربة ذلك الآن , فاذا قمنا بتشغيل هذا سوف نرى 0:02:39.475,0:02:44.200 الحلقة يتم تنفيذها و جملة الشرط كذلك ستقوم باختبار الاسماء اذا كانت تبدأ بحرف ال[br]A 0:02:44.200,0:02:48.984 سوف نرى هنا كل هذه الأسماء التي تبدأ بحرف A[br]و في النهاية , فإن هناك سطر يقول ان العداد يساوي 258 0:02:48.984,0:02:54.128 يظهر من ذلك ان العد في ال[br]for loop[br]بدأ من الصفر 0:02:54.128,0:02:58.733 و في كل الحلقات كانت الجملة الشرطية[br]if[br]متحققة 258 مرة 0:02:58.733,0:03:03.633 من أصل 2000 مرة . و لذلك فإننا حصلنا في النهاية على[br]count : 258 0:03:03.633,0:03:08.167 و قمنا بعرضها بسبب هذا السطر . و بذلك فإن السطر الذي بعد الحلقة[br]for [br]قد قام بوظيفته , و كل عمليات 0:03:08.167,0:03:12.811 الطباعة (العرض) قد تمت [br]حسناً , تعالوا نقوم بهذه التجربة سوياً . فمن الأشياء السهلة 0:03:12.811,0:03:17.289 التي يمكن عملها . مثلاً : ماذا لو قمنا بإزالة هذا السطر الذي بداخل الحلقة[br]for 0:03:17.289,0:03:21.822 هنا مازلنا ندور داخل الحلقة و مازلنا نتحقق من الجملة الشرطية . و لكن هنا 0:03:21.822,0:03:25.969 الشيئ الوحيد الذي يظهر داخل الجملة الشرطية هو[br]count=count+1 0:03:25.969,0:03:30.616 و الذي يقوم بزيادة العداد بمقدار 1 . هنا لو قمت بتنفيذ هذا البرنامج[br]فقط سوف احصل على 0:03:30.616,0:03:35.795 سطر واحد كناتج لهذه العملية [br]سأقوم بالتنفيذ الآن و سيقول لي مممممممم 258 . و هذه هي البداية 0:03:35.795,0:03:39.712 هذه بداية لتقريب ما يمكن ان يفعله الكمبيوتر 0:03:39.712,0:03:43.883 فالكمبيوتر يعمل مع كم هائل من البيانات و يقوم بنوع من الغربلة من خلالها ، و من ثم إعطاء 0:03:43.883,0:03:47.901 الإجابة النهائية [br]حسناً , هيا نجرب نوع اخر من المشكلات 0:03:47.901,0:03:52.022 و كالمعتاد , سيكون لدينا حلول مختلفة[br]حسناً , كم عدد الاسماء التى تبدأ بحرف ال[br]X 0:03:52.022,0:03:56.193 و بعدها قارن هذا الرقم بعدد الأسماء التي تبدأ بحرف [br]Y[br]اذا اردت ان احسب عدد الاسماء التي تبدأ 0:03:56.193,0:03:59.754 بحرف ال [br]X[br]فقط تغيير صغير . كما تعلم العداد [br]count=count+1 0:03:59.754,0:04:03.620 سوف أقول الآن : كم عدد الأسماء التي تبدأ بحرف[br]X 0:04:03.620,0:04:07.412 سأقوم بتنفيذ البرنامج [br]البرنامج يقول :6 .حسناً ماذا لو أردت 0:04:07.412,0:04:11.537 ان اعرف عدد الأسماء التي تبدأ بحرف ال [br]Y[br]و هنا سوف نرى اننا سنترك البرنامج كما هو و لكن 0:04:11.537,0:04:16.151 فقط سنقوم بتغيير شيئ واحد .. سأغير هذا إلى [br]Y عديدة[br]و النتيجة هي : 17 .. و أتوقع ان هناك اسماء أكثر 0:04:16.151,0:04:21.278 تبدأ بحرف ال [br]Y[br]الاسماء التي تبدأ بحرف الواي اكثر من التي تبدأ بحرف الواي .. لذا فهو يقول 0:04:21.278,0:04:26.093 كم عدد البنات التي تبدأ اسمائهن بحرف ال[br]A[br]و كم عدد الأولاد الذين تبدأ اسمائهم 0:04:26.093,0:04:30.970 بحرف ال [br]A [br]حسناً , سوف اقوم باستخدام نفس المواد التي استخدمناها في المرة السابقة 0:04:30.970,0:04:39.306 و اخرى لم اكن استخدمها من قبل مثل [br]startsWith("A"). and ("&&") [br]row.getField("gender")=="girl" 0:04:39.306,0:04:47.144 كانت هذه هي المهمة , و في داخل الجملة الشرطية سأقول فقط 0:04:47.144,0:04:55.498 count=count+1.[br]حسناً , 169 .. لذلك فان السؤال القادم هو 0:04:55.807,0:05:04.150 كم عدد اسماء الاولاد[br]لذلك سأغير هذا الأمر للاولاد .. مع الوضع في الاعتبار 0:05:04.150,0:05:10.199 ان هذه العملية مشابهة تماماً لسابقتها في الحسابات[br]فقط و كما فعلنا من قبل 0:05:10.199,0:05:16.021 print(row) [br]و عندي الان [br]count=count+1 0:05:16.021,0:05:21.163 حتى يمكنني اجراء الحسابات [br]حسنا , كانت هذه نظرتنا الاولى 0:05:21.163,0:05:25.020 على عمليات الحساب الاساسية [br]فهيا نقوم باجراء بعض التمارين