Unconfigured Ad Widget

تقليص

إعـــــــلان

تقليص

رثاء

‏خالص العزاء والمواساه في وفاة العضو القدير الأخ ياسر ياسين رحمه الله

https://www.maxforums.net/node/3676654
شاهد أكثر
شاهد أقل

فريق المنابر للبرمجة ::::مشروع الالة الحاسبة::::

تقليص
X
 
  • تصفية - فلترة
  • الوقت
  • عرض
إلغاء تحديد الكل
مشاركات جديدة

  • #76
    انا غيرتها فعلا تمام بس منصف مش بيدخل عايزين نعمل حذف المسافات حد يساعدنى هو مش بيخش من 3 ايام
    غياب غير محدد بسبب الدراسة واعمال سرية انتظروا المفاجأة قريبا ان شاء الله
    You must not feel tired ! , You must not feel desperate .
    You must feel hopeful .
    You must feel ALLAH with U !
    GO GO You Can DO IT , Believe that You Can Do it ! , IF ALLAH With U , NOTHING will Dare to stop U Along your Dream Road !
    So , GO and does not return here even you reach to UR Dream and Believe you will have many problems , mistakes and difficulties and you will cross it to UR Dream

    تعليق


    • #77
      فعلا منصف لم يدخل منذ مدة بومين غرييبة ...

      حاول تعملها لوحدك ولو وقف قدامك اي شيء أنا جاهز بس في الأول جرب تعملها لوحدك

      هل يعمل الكود بعد ما غيرتها ؟

      تعليق


      • #78
        أين باقي الأعضاء...
        المجموعة الثالثة ما هي التطورات؟

        آخر ما توصلنا له المجموعة الثانية:
        كود:
        def calc(nums, ops):
            while(ops != []):
                opn = -1
                n = 0
                while (n < len(ops)):
                    if (opn == -1):
                            opn = n
                    else:
                        if (ops[opn] == '+' or ops[opn] == '-'):
                            if (ops[n] == '*' or ops[n] == '/'):
                                opn = n
                        if (ops[opn] == '*' or ops[opn] == '/' or ops[opn] == '+' or ops[opn] == '-'):
                            if (ops[n] == '^'):
                                opn = n
                    n+=1
                if (ops[opn] == '+'):
                    nums.insert(opn, nums.pop(opn) + nums.pop(opn))
                elif (ops[opn] == '-'):
                    nums.insert(opn, nums.pop(opn) - nums.pop(opn))
                elif (ops[opn] == '*'):
                    nums.insert(opn, nums.pop(opn) * nums.pop(opn))
                elif (ops[opn] == '/'):
                    nums.insert(opn, nums.pop(opn) / nums.pop(opn))
                elif (ops[opn] == '^'):
                    nums.insert(opn, nums.pop(opn) ** nums.pop(opn))
                ops.pop(opn)
            return nums[0]

        تعليق


        • #79
          للحابب يفهم الكود السابق هذا هو الشرح

          الكود:
          كود:
          def calc(nums, ops):    while(ops != []):
                  opn = -1
                  n = 0
                  while (n < len(ops)):
                      if (opn == -1):
                              opn = n
                      else:
                          if (ops[opn] == '+' or ops[opn] == '-'):
                              if (ops[n] == '*' or ops[n] == '/'):
                                  opn = n
                          if (ops[opn] == '*' or ops[opn] == '/' or ops[opn] == '+' or ops[opn] == '-'):
                              if (ops[n] == '^'):
                                  opn = n
                      n+=1
                  if (ops[opn] == '+'):
                      nums.insert(opn, nums.pop(opn) + nums.pop(opn))
                  elif (ops[opn] == '-'):
                      nums.insert(opn, nums.pop(opn) - nums.pop(opn))
                  elif (ops[opn] == '*'):
                      nums.insert(opn, nums.pop(opn) * nums.pop(opn))
                  elif (ops[opn] == '/'):
                      nums.insert(opn, nums.pop(opn) / nums.pop(opn))
                  elif (ops[opn] == '^'):
                      nums.insert(opn, nums.pop(opn) ** nums.pop(opn))
                  ops.pop(opn)
              return nums[0]
          
          
          
          
          print(calc([1, 2, 3, 4], ['+', '^', '+']))
          الشرح:
          السطر الأول:
          عبارة عن استدعاء عادي لدالة تستقبل متغيرين هما مصفوفة الأعداد nums ومصفوفة العمليات operators

          مقدمة:
          قبل الدخول في شرح جسم الدالة أريد توضيح كيف سنربط بين الأعداد والمصفوفات ولشرح ذلك سأستخدم المثال التالي:
          افرض ان المستخدم أدخل العملية التالية:
          كود:
          10 + 2 * 3
          سيتم تكوين مصفوفتين الاولى مصفوفة الأعداد كالتالي:
          كود:
          nums = [10, 2, 3]
          ومصفوفة العمليات كالتالي:
          كود:
          operators = ['+', '*']
          عملية الربط بين العملية والعددين الخاضعين لهذه العملية تتم كالتالي:
          لو أردنا مثلا العملية الأولى وهي الجمع ويمكن الدخول اليها كالآتي:
          كود:
          operators[0]
          ولنقوم بايجاد الرقمين اللذان تتم عليهما هذه العملية وهما 10 و 2 نكتب الآتي:
          كود:
          nums[0] + nums[1]
          لاحظ العلاقة بين عنوان الرقمين وعنوان العملية نجد ان العملية ن تتم على العددين ن و ن+1 اي:
          كود:
          operators[n]
          nums[n]
          nums[n+1]
          فيمكننا التحقق من نوع العملية ثم اجراءها على العددين اللذان يمكن ايجادهما بالعلاقة السابقة وهذه هي الطريقة المتبعة في الكود

          السطر الثاني:
          وهو عبارة عن حلقة تكرارية تتأكد من أن مصفوفة العمليات ليست فارغة لان كل عملية موجودة في مصفوفة العمليات نقوم باتمامها وحسابها نحذفها من المصفوفة ونقوم بتكرار تنفيذ العمليات وحذفها حتى تفرغ المصفوفة

          السطر الثالث:
          تعريف متغير يحمل قيمة عنوان العملية ذات الأولوية من مصفوفة العمليات وأقوم باسناده الى الرقم -1 باعتباره لا يحمل عنوان اي عملية.
          بمعنى آخر هذا المتغير سيحمل لاحقا القيمة 1 لو كانت المصفوفة هي مصفوفة العمليات من المثال السابق

          السطر الرابع:
          تعريف متغير يستخدم في الحلقة في السطر الخامس ويخزن الرقم 0 وسيضاف اليه 1 مع كل دورة في الحلقة.
          استخدام هذا المتغير هو لايجاد عنوان العملية ذات الأولوية من مصفوفة العمليات ويقوم هذا المتغير بالمرور على كل عنوان عنصر من عناصر المصفوفة ليرى اذا كان ذا أولوية أكبر من العنصر المخزن في المتغير opn المعرف في السطر الثالث فاذا كان ذا اولوية أكبر يقوم بجعل المتغير opn يحمل قيمته لانه يشير الى العملية ذات الأولوية الأكبر.

          السطر الخامس:
          حلقة شرطها ان تكون n اصغر من طول مصفوفة العمليات لان العنصر الأخير في المصفوفة هو طولها -1
          فاذا ساوى المتغير طول السلسة تتوقف الحلقة لاننا لا نريد ان نحاول الدخول الى عنصر غير موجود في المصفوفة

          السطر السادس:
          اذا كان opn يحمل القيمة -1 وكما شرحت سابقا هذا يعني انه لا يشير الى عنوان في المصفوفة نقوم بتنفيذ السطر السابع.

          السطر السابع:
          نقوم باسناد المتغير n الى المتغير opn وذلك لأن المتغير الأخير لا يحمل عنوان أي عملية فالعملية ذات الأولوية هي بالطبع العملية ذات العنوان n

          السطر الثامن:
          اذا لم يتحقق الشرط في السطر الخامس وهو ان كان المتغير opn لا يشير الى أي عنوان عنصر في مصفوفة العمليات سيتحقق هذا الشرط
          أي اذا كان المتغير opn يشير الى عنوان عنصر في مصفوفة العمليات
          السطور من السطر التاسع الى السطر الرابع عشر كلها تتبع لهذا الشرط
          في هذه السطور سنتحقق من اذا كانت العملية ذات العنوان n ذات أولوية أكبر من العملية ذات العنوان opn فاذا تحقق هذا الشرط وهي السطرين الثاني عشر والرابع عشر نجعل opn تساوي n

          من الآن سأرمز للعملية ذات العنوان n بالعملية المختبرة والى العملية ذات العنوان opn بالعملية المخزنة

          السطر التاسع:
          اذا كانت العملية المخزنة تساوي "+" أو "-" قم بتنفيذ السطر التالي

          السطر العاشر:
          اذا كانت العملية المختبرة تساوي "*" أو "/" قم بتنفيذ السطر الحادي عشر المشروح سابقاً لأن العملية المختبرة لها أولوية على العملية المخزنة

          السطر الثاني عشر:
          اذا كانت العملية المخزنة تساوي "+" أو "-" أو "*" أو "/" قم بتنفيذ السطر التالي

          السطر الثالث عشر:
          اذا كانت العملية المختبرة تساوي "^" (الأس) قم بتنفيذ السطر الرابع عشر المشروح سابقاً لأن العملية المختبرة لها أولوية على العملية المخزنة

          السطر الخامس عشر:
          أضف الى المتغير المخزن لعنوان العملية المختبرة (n) واحد (هذا السطر آخر سطر تابع للحلقة)

          يتم تكرار هذه الحلقة على جميع العناصر في مصفوفة العمليات لاختيار العنصر ذا الأولوية الأكبر

          السطور الأخيرة في الدالة:
          السطور جميعها متشابهة لذلك سأشرح عملية الجمع ويمكن تطبيق نفس الشي في باقي العمليات

          السطر 16 و 18 و 20 و 22 و 24:
          نتحقق ما اذا كانت العملية عملية (جمع) فاذا تحقق الشرط نفذ السطر التالي

          السطر 17 و 19 و 21 و 23 و 25:
          سنقوم باستبدال الكود في هذا السطر لتسهيل شرحه ب:
          كود:
          f = nums.pop(opn)s = nums.pop(opn)
          nums.insert(opn, f + s)
          السطر الأول في هذا الكود يخرج من مصفوفة الأعداد العنصر الذي عنوانه opn ويعطي قيمته للمتغير تذكر اننا قلنا ان العملية ن تتم على العددين ن و ن+1

          السطر الثاني يقوم بنفس العملية في السطر الأول وقد تستغرب لماذا لم أكتب opn + 1 والسبب هو ان الدالة pop في السطر الأول حذفت عنصر من المصفوفة مما أدى لأن تنقص جميع عناوين العناصر التي هي ذات عنوان أكبر من عنوان العنصر المحذوف 1 حتى تملأ الفجوة التي أحدثها حذف العنصر الذي هو أدنى منها فمثلا العنصر لو حذفنا العنصر ذا العنوان 4 يصبح العنصر ذا العنوان 5 قبل الحذف عنوانه 4 بعد الحذف والعنصر ذا العنوان 6 قبل الحذف عنوانه 5 وهكذا
          الآن لو أردنا تطبيق القاعدة السابقة فان عنواني العددين اللذين ستتم عليهما العملية التي عنوانها ن هما ن و بما اننا نحذف العنصر ن عند ايجاده فان عنوان الرقم الثاني سيكون (ن+1) - 1 أو ن

          السطر الثالث بعد حذف الرقمين المراد اجراء عملية (الجمع) عليهما نقوم بتخزين الناتج في مصفوفة الأعداد ويكون مكان التخزين هو العنوان opn اي في نفس مكان الرقم الأول لان الناتج ستتم عليه عمليات أخرى

          لاحظ اننا حذفنا عنصرين من مصفوفة الأعداد وأضفنا عنصرا واحدا مما يعني أننا نحذف عنصر في كل دورة (وفي السطر 28 نحذف العنصر الذي تم اجراء عمليته من مصفوفة العمليات) وفي النهاية سيبقى رقم واحد في مصفوفة الأعداد هو الناتج النهائي
          وسبب ذلك هو ان مصفوفة الأرقام دائما أكبر من مصفوفة العمليات بعنصر واحد وان تذكر اننا قد انشأنا حلقة تكرار في السطر الثاني شرطها ان لا تكون العناصر في مصفوفة العمليات فارغة ومعنى ان تكون فارغة هو انه تم حذف جميع عناصرها
          وان رمزنا لعدد عناصرها بالرمز ن فانه تم حذف ن عنصر من مصفوفة العمليات وبما انه يتم حذف عنصر من مصفوفة الأعداد أيضا فهي أيضا يتم حذف ن عنصر منها
          وبما ان عدد عناصر مصفوفة الأعداد ن+1 فان حذف ن عنصر منها يبقي عنصرا واحدا فيها وهو الناتج

          السطر 29:
          يتم ارجاع الناتج النهائي

          السطر 31:
          هو عبارة عن المثال التالي:
          كود:
          1 + 2 ^ 3 + 4
          لاحظ أن مصفوفة الأعداد أكبر من مصفوفة العمليات بعنصر واحد

          أرجو انه الشرح واضح وشكرا

          تعليق


          • #80
            يالروعتك يا بلاك
            غياب غير محدد بسبب الدراسة واعمال سرية انتظروا المفاجأة قريبا ان شاء الله
            You must not feel tired ! , You must not feel desperate .
            You must feel hopeful .
            You must feel ALLAH with U !
            GO GO You Can DO IT , Believe that You Can Do it ! , IF ALLAH With U , NOTHING will Dare to stop U Along your Dream Road !
            So , GO and does not return here even you reach to UR Dream and Believe you will have many problems , mistakes and difficulties and you will cross it to UR Dream

            تعليق


            • #81
              السلام عليكم و رحمة الله وبركاته
              أعتذر منكم كثييييييييييييييييييييرا يا اخوتي و الله
              و خصوصا للأخ أنس و الكل
              بصراحة كنت مريضا و لم أستطع أن أتواصل معكم
              لكن مع غيابي الاخوة لم يقصرو فبارك الله فيكم
              و أعتذر مرة ثانية
              Facebook--------------------Youtube Channel

              تعليق


              • #82
                ههههه عادى يا منصف انا بعتلك رسائل على الفيس كتير

                على فكرة باقى لنا نحذف المسافات بس

                افتح فيس بوك الان
                غياب غير محدد بسبب الدراسة واعمال سرية انتظروا المفاجأة قريبا ان شاء الله
                You must not feel tired ! , You must not feel desperate .
                You must feel hopeful .
                You must feel ALLAH with U !
                GO GO You Can DO IT , Believe that You Can Do it ! , IF ALLAH With U , NOTHING will Dare to stop U Along your Dream Road !
                So , GO and does not return here even you reach to UR Dream and Believe you will have many problems , mistakes and difficulties and you will cross it to UR Dream

                تعليق


                • #83
                  المشاركة الأصلية بواسطة انس علاء مشاهدة المشاركة
                  ههههه عادى يا منصف انا بعتلك رسائل على الفيس كتير

                  على فكرة باقى لنا نحذف المسافات بس

                  افتح فيس بوك الان
                  هههههه أنا سوف أفتح الااااااااااااااان
                  Facebook--------------------Youtube Channel

                  تعليق


                  • #84
                    ما المشكلة في الكودين التاليين :
                    كود PHP:
                    string raw_input()
                    string string.strip(' \t\n\r')
                    if 
                    string == " " :
                        
                    del " "
                    ""
                    ""
                    nums = []
                    operators = []
                    for 
                    c in string:
                        if (
                    >= '0' and <= '9'):
                            
                    += c
                        
                    else: nums.append(int(n))
                        
                    nums.append(int(n))
                        for 
                    b in string :
                             if (
                    == "+" or == "*" or =="/" or == "-" or == "=" ) :
                                 
                    operators.append(d)
                                 if 
                    "=" in operators:
                                    print 
                    "start here equals "
                                 
                    else :
                                    print 
                    string
                                    calc
                    (numsoperators
                    -----------------------------------------------------------------------------------------------------------
                    كود PHP:
                    string raw_input()
                    string string.strip(' \t\n\r')
                    ""
                    ""
                    nums = []
                    operators = []
                    for 
                    c in string:
                        if (
                    >= '0' and <= '9'):
                            
                    += c
                        
                    else: nums.append(int(n))
                        
                    nums.append(int(n))
                        for 
                    b in string :
                             if (
                    == "+" or == "*" or =="/" or == "-" or == "=" ) :
                                 
                    operators.append(d)
                                 if 
                    "=" in operators:
                                    print 
                    "start here equals "
                                 
                    else :
                                    print 
                    string
                                    calc
                    (numsoperators
                    Facebook--------------------Youtube Channel

                    تعليق


                    • #85
                      كود PHP:
                      string raw_input()
                      string.replace(" ","")
                      ""
                      ""
                      nums = []
                      operators = []
                      for 
                      c in string:
                           if (
                      >= '0' and <= '9'):
                               
                      += c
                           
                      else:
                                   
                      nums.append((n))
                                   
                      =""
                      nums.append((n))
                      print 
                      nums
                      for b in string :
                           if (
                      == "+" or == "*" or =="/" or == "-" or == "=" ) :
                               
                      operators.append(d)

                      if 
                      "=" in operators:
                               print 
                      "start here equals "

                      else :
                              print 
                      string 

                      او ده بردوا ولا واحد شغال اما مش بيحذف المسافة

                      او مش بيشتغل خالص

                      او بيبوظ مصفوفة الارقام

                      سؤال اخر هل عادى انه يكون علامة يساوى فى مصفوفة العمليات ؟


                      شكرا
                      غياب غير محدد بسبب الدراسة واعمال سرية انتظروا المفاجأة قريبا ان شاء الله
                      You must not feel tired ! , You must not feel desperate .
                      You must feel hopeful .
                      You must feel ALLAH with U !
                      GO GO You Can DO IT , Believe that You Can Do it ! , IF ALLAH With U , NOTHING will Dare to stop U Along your Dream Road !
                      So , GO and does not return here even you reach to UR Dream and Believe you will have many problems , mistakes and difficulties and you will cross it to UR Dream

                      تعليق


                      • #86
                        هناك عدة أخطاء في الكود فقمت بالتعديل على الكود الأول والآن يعمل. الكود:
                        كود:
                        s = input() 
                        string = ""
                        
                        for c in s:
                            if (c != ' ' and c != '\n' and c != '\t' and c != '\r'):
                               string += c
                        
                        n = ""
                        nums = [] 
                        operators = []
                        
                        for c in string: 
                            if (c >= '0' and c <= '9'): 
                                n += c
                            else:
                                nums.append(float(n))
                                n = ""
                            
                        nums.append(float(n))
                            
                        for b in string : 
                            if (b == "+" or b == "*" or b =="/" or b == "-" or b == "=" ) : 
                                     operators.append(b)
                        
                        if "=" in operators:
                            print (" ")
                        else : 
                            print (string, '=', calc(nums, operators))
                        لا أستطيع حاليا شرح الأخطاء لكن باختصار المسافات في الكود فيها خطأ يعني في سطور كانت تتبع لحلقلة بينما المفروض انها لا تتبع اضافة الى عدم تفريغ المتغير ن (راجع الشرح) واستخدام الدالة strip لم يعمل عندي لذلك غيرته

                        تعليق


                        • #87
                          المشاركة الأصلية بواسطة انس علاء مشاهدة المشاركة
                          كود PHP:
                          string raw_input()
                          string.replace(" ","")
                          ""
                          ""
                          nums = []
                          operators = []
                          for 
                          c in string:
                               if (
                          >= '0' and <= '9'):
                                   
                          += c
                               
                          else:
                                       
                          nums.append((n))
                                       
                          =""
                          nums.append((n))
                          print 
                          nums
                          for b in string :
                               if (
                          == "+" or == "*" or =="/" or == "-" or == "=" ) :
                                   
                          operators.append(d)

                          if 
                          "=" in operators:
                                   print 
                          "start here equals "

                          else :
                                  print 
                          string 

                          او ده بردوا ولا واحد شغال اما مش بيحذف المسافة

                          او مش بيشتغل خالص

                          او بيبوظ مصفوفة الارقام

                          سؤال اخر هل عادى انه يكون علامة يساوى فى مصفوفة العمليات ؟


                          شكرا
                          راجع الرد السابق لي وبالنسبة لعلامة اليساوي نعم في المعادلة ولا في الحساب

                          تعليق


                          • #88
                            جربت الكود بتاعك يا بلاك بيقولى

                            UnicodeEncodeError: 'ascii' codec can't encode character u'\u0633' in position 12: ordinal not in range(128)
                            غياب غير محدد بسبب الدراسة واعمال سرية انتظروا المفاجأة قريبا ان شاء الله
                            You must not feel tired ! , You must not feel desperate .
                            You must feel hopeful .
                            You must feel ALLAH with U !
                            GO GO You Can DO IT , Believe that You Can Do it ! , IF ALLAH With U , NOTHING will Dare to stop U Along your Dream Road !
                            So , GO and does not return here even you reach to UR Dream and Believe you will have many problems , mistakes and difficulties and you will cross it to UR Dream

                            تعليق


                            • #89
                              غريبة! ممكن صورة للكود والخطأ

                              تعليق


                              • #90



                                كود ابن ...... ناس طيبين
                                غياب غير محدد بسبب الدراسة واعمال سرية انتظروا المفاجأة قريبا ان شاء الله
                                You must not feel tired ! , You must not feel desperate .
                                You must feel hopeful .
                                You must feel ALLAH with U !
                                GO GO You Can DO IT , Believe that You Can Do it ! , IF ALLAH With U , NOTHING will Dare to stop U Along your Dream Road !
                                So , GO and does not return here even you reach to UR Dream and Believe you will have many problems , mistakes and difficulties and you will cross it to UR Dream

                                تعليق

                                يعمل...
                                X