الانتقال إلى المحتوى
View in the app

A better way to browse. Learn more.

مجموعة مستخدمي أوراكل العربية

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

طباعة ناتج جمع الأرقام الزوجية بين رقمين يدخلهما المستخدم

Featured Replies

بتاريخ:

 

السلام عليكم ..

عندي هالمسألة مو راضية تضبط معي فياليت تساعدوني ...

 

أكتب برنامج  يقوم بالآتي :

ايجاد و طباعة ناتج جمع الأرقام الزوجية بين رقمين يدخلهما المستخدم ، على أن لا يزيد عدد الأرقام الزوجية التي سيتم جمعها عن 5 أرقام .

ملاحظة الحل بطريقتين بحلقة التكرار المحدودة for  و المشروطة loop

 

 

..

 

محاولتي اليائسة



DECLARE

X NUMBER ;  Y NUMBER ;  Q number ; V number := 0;


   begin


X   :=  :VALUE_X  ;
Y   :=  :VALUE_Y  ;
Q= Y-X;


       for i in X..Y loop
       V := V+2;
       dbms_output.put_line (V);
  end loop;


  end;

 

بتاريخ:

السؤال يخص قسم  SQL/PLSQL  وليس قسم الجافا  !!!

عموماً هذه هي فكرة الحل 

declare
       n1 number(4);
       n2 number(4);
       sum number(4);
       i number(4);
begin
       n1:=&n1;
       n2:=&n2;
       sum:=0;
      for i in n1..n2 loop
       loop
             if mod(i,2)=0 then
              sum:=sum+i;
       end loop;
       dbms_output.put_line('Sum of even digit = ' || sum);
end;
/

بتاريخ:

 

السلام عليكم ورحمة الله وبركاته 

 

أكتب برنامج  يقوم بالآتي :

ايجاد و طباعة ناتج جمع الأرقام الزوجية بين رقمين يدخلهما المستخدم ، على أن لا يزيد عدد الأرقام الزوجية التي سيتم جمعها عن 5 أرقام .

مثال : اذا أدخل المستخدم 10  و  28   (يتم جمع بحد أقصى خمسة أرقام زوجية بينهما)  12+14+16+18+20    .

مثال آخر : اذا أدخل المستخدم 16   و  21   (يتم جمع بحد أقصى خمسة أرقام زوجية بينهما)   16+18+20   .

 

هذه محاولتي بالفور مااقدرت اجمع 5 اعداد وباقي لي باللووب وشكرا لك هذه محاولتي 


DECLARE
X NUMBER ;    y NUMBER ; 
  
       w   NUMBER := 1;
BEGIN
X   :=  :VALUE_X  ;
        y   :=  :VALUE_y  ;
FOR   T  IN  x..y  LOOP
IF   MOD(T,2) = 0 THEN
w:=w+T
END IF;
END LOOP;
DBMS_OUTPUT.PUT_Line('النتيجة = ' || w);
END;

 

بتاريخ:

 

حل متجرب يا عم الحج رغم انك مش ها تقابل مشاكل زي دي في الشغل كتير 



DECLARE
   V_count   NUMBER := 0;
   Num1      NUMBER;
   Num2      NUMBER;
   v_sum     NUMBER := 0;
BEGIN
   num1 := 1;
   num2 := 7;


   FOR i IN num1 .. num2
   LOOP
      IF MOD (i, 2) = 0
      THEN
         v_count := v_count + 1;
         v_sum := v_sum + i;


         EXIT WHEN v_count = 5;
      END IF;
   END LOOP;


   DBMS_OUTPUT.put_line (v_count);
   DBMS_OUTPUT.put_line (v_sum);
END;

 

بتاريخ:
  • كاتب الموضوع

 

حل متجرب يا عم الحج رغم انك مش ها تقابل مشاكل زي دي في الشغل كتير 

DECLARE
   V_count   NUMBER := 0;
   Num1      NUMBER;
   Num2      NUMBER;
   v_sum     NUMBER := 0;
BEGIN
   num1 := 1;
   num2 := 7;


   FOR i IN num1 .. num2
   LOOP
      IF MOD (i, 2) = 0
      THEN
         v_count := v_count + 1;
         v_sum := v_sum + i;


         EXIT WHEN v_count = 5;
      END IF;
   END LOOP;


   DBMS_OUTPUT.put_line (v_count);
   DBMS_OUTPUT.put_line (v_sum);
END;

 

يعطيك العافية عزيزي , لكن الارقام اريد المستخدم يدخلها ويطبع المجموع فقط .

بتاريخ:

السلام مشكور باقي طريقة  loop فقط لحاله بدون for ممكن 

بتاريخ:

 

حل متجرب يا عم الحج رغم انك مش ها تقابل مشاكل زي دي في الشغل كتير 

DECLARE
   V_count   NUMBER := 0;
   Num1      NUMBER;
   Num2      NUMBER;
   v_sum     NUMBER := 0;
BEGIN
   num1 := 1;
   num2 := 7;


   FOR i IN num1 .. num2
   LOOP
      IF MOD (i, 2) = 0
      THEN
         v_count := v_count + 1;
         v_sum := v_sum + i;


         EXIT WHEN v_count = 5;
      END IF;
   END LOOP;


   DBMS_OUTPUT.put_line (v_count);
   DBMS_OUTPUT.put_line (v_sum);
END;

 

اخي باقي حل ثاني  وهو loop فقط بدون for وشكرا لك 

تم تعديل بواسطة dhooom

  • بعد 2 شهور...
بتاريخ:

انا مستخدم for loop علشان انا عارف العدد الي ها اعمل Iterate عليه 

لكن loop لو عاوزه مرة واحدة و يطلع 

كل الطرق تؤدي إلي روما

دزاك الله خيراً

بتاريخ:

و بعدين عندك متغيرين بيجيبوا الناتج 

واحد للعدد v_count

و واحد لمجموعهم v_sum

جرب و راجع

بتاريخ:

 

 

حل متجرب يا عم الحج رغم انك مش ها تقابل مشاكل زي دي في الشغل كتير 

DECLARE
   V_count   NUMBER := 0;
   Num1      NUMBER;
   Num2      NUMBER;
   v_sum     NUMBER := 0;
BEGIN
   num1 := 1;
   num2 := 7;


   FOR i IN num1 .. num2
   LOOP
      IF MOD (i, 2) = 0
      THEN
         v_count := v_count + 1;
         v_sum := v_sum + i;


         EXIT WHEN v_count = 5;
      END IF;
   END LOOP;


   DBMS_OUTPUT.put_line (v_count);
   DBMS_OUTPUT.put_line (v_sum);
END;

 

يعطيك العافية عزيزي , لكن الارقام اريد المستخدم يدخلها ويطبع المجموع فقط .

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

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية

Account

Navigation

البحث

إعداد إشعارات المتصفح الفورية

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.