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