الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

جمع متسلسلة كسور ذات اشارات تذبذبية:

بدأه Am00raa في 13 يناير 2009 · 6 رد · 1,698 مشاهدة · في الرياضيات والخوارزميات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

اخواني انا مدرسة حاسب الى و عندي مسالة يجب ان اشرح حلها لطالباتي و لكن ,,

المسالة لها اجابة معقدة لا اعرف سواها

و المطلوب مني حلها بطريقة بسيطة ,,

لأنهم مبتدئين في البرمجة و لم يتعلمو سوى قواعد بسيطة ..

المسألة ببساطة ..

مجموعة من الكسور أولهاموجب و الثاني سالب و هكذا ...

و المطلوب ايجاد المجموع ..

انا لا اعلم كيف يمكنني التحكم ببساطة في الإشارات موجب ثم سالب ثم موجب و هكذا ..

و المطلوب البساطة ثم البساطة في الحل و هذا اصعب شيئ

اذا احد ممكن يساعدني

و بسرعة ارجوكم لأنو امتحانهم قرب

تم تعديل هذه المشاركة بواسطة عماد حمدي احمد في 14 يناير 2009 في 01:20

#2

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

الاخت الفاضلة

ضعى الحل المعقد , وان شاء الله نبسطه جدا لك.

بالله التوفيق ,,,

أشهد أن لا إله إلا الله وأشهد أن محمدا رسول الله

bnr025.gif

مـــوقـــعـــى

#3

1) ننشئ متغير اسمه sum وقيمته الابتدائية تساوى 0 ، (هذا المتغير هو الذى سيحتوى على ناتج المجموع)

2) ننشئ متغير اسمه sign وقيمته الابتدائية تساوى -1

3) البرنامج يقوم بقراءة الكسر فى متغير اسمه var

3) البرنامج يقوم بتحديد اشارة الكسر فى متغير اسمه newvar بضرب var X sign

5) عملية اضافة الكسر الى المجموع تتم على 3 مراحل

أ) تحديد الاشارة ، وذلك بالعمليه sign = sign * (-1) for example

ب) حساب قيمة الكسر بالاشارة الجديدة newvar = var * sign for example

ج) الجمع بالمعادلة sum = sum + newvar for example

   double sign = -1;
   double sum = 0;
   double var;
   double newvar;

   do
   {
	  printf("Enter fraction: ");
	  var = getnumber();

	  sign = sign * (-1);
	  newvar = var * sign;
	  sum = sum + newvar;
   }
   while(var);

   printf("Sum: %d", sum);

الشرح ............

سنعرف متغير اسمه sign يحتوى على القيمة (-1) وفى كل مره ندخل رقم سوف نضرب هذا المتغير فى (-1)

فعند ادخال الرقم الاول سوف تكون sign قيمته sign * -1 = 1 موجب

وعند ادخال الرقم الثانى سوف تكون sign قيمته sign * -1 = -1 سالب

وعند ادخال الرقم الثالث سوف تكون sign قيمته sign * -1 = 1 موجب

وعند ادخال الرقم الرابع سوف تكون sign قيمته sign * -1 = -1 سالب

وهكذا نلاحظ ان قيمة sign تكون (1) مرة وتكون (-1) فى المره التالية ... بالتناوب

وبالتالى عند ادخال متغير وضربه فى sign سيكون مره موجب وفى المره التى تليها سالب وهكذا وتخزن قيميته فى newvar

يتم عمل جمع تراكمى لnewvar فى sum وفى النهايه sum يحتوى الناتج

تم تعديل هذه المشاركة بواسطة a3ghadeer في 13 يناير 2009 في 13:57

#4

الأستاذ الفاضل a3ghadeer

والله انت مبدع ,,

انا ما اعرف كيف غاب هذا الحل البسيط جدا جدا عن فكري :blink: ..

يمكن لأني لست في مثل ابداعك ..

مشكور اخي و الف شكر و جزاك الله كل خير و جعله في ميزان حسناتك..

اما بالنسبة للحل الغير بسيط فكان امامي خيارين..

اولا المصفوفات .. و هي ليست في منهجهم ولا يعرفون معناها,,

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

و الرقم الزوجي نقوم بضربه في -1

و ايضا طالباتي لا يعلمن شيئا عن الدوال ,,

:blush: ارايت كم هي حلول مثيرة للشفقة ..

حتى جميع قواعد الloops

ليست في المنهج..

:S :wacko:

مشكور اخي a3ghadeer

و اخي عماد حمدي احمد

على مساعدتي ,,

جزاكم الله خير

:D

#5

شكرا للاخت Am00raa

يوجد هل اخر سهل ايضاً وهو

   double sum = 0;
   double var;

   do
   {
	  printf("Enter (+) fraction: ");
	  var = getnumber();
	  sum = sum + var;

	  printf("Enter (-) fraction: ");
	  var = getnumber();
	  sum = sum - var;
   }
   while(var);

   printf("Sum: %d", sum);

وهو ادخال متغيره مره وجمعه ومره اخرى وطرحه

#6

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

الاخت الفاضلة Am00raa

شكرا لك واتمنى تكونى فعلا وجدتى ضالتك , وخدى بالك ان جميع الحلول السابقة بها do loob , وانت قلت انهم لم يدرسوا الـ loobs.

الاخ الفاضل a3ghadeer

a3ghadeer كتب:
يوجد هل اخر سهل ايضاً وهو

وهو ادخال متغيره مره وجمعه ومره اخرى وطرحه

كده لازم يكون عدد الكسور زوجى :) , فما العمل لو كان عدد الكسور فردى؟ للاسف افسدت اجادتك فى الحل الاول :). كان الاجدى لو الامر هكذا ان تتعامل معها كجمع متسلسله عادية , والمستخدم يدخل الكسر باشارته. وكلها حلول خالية من اى ابداع طبعا فيما عدا حلك الاول.

بالله التوفيق ,,,

أشهد أن لا إله إلا الله وأشهد أن محمدا رسول الله

bnr025.gif

مـــوقـــعـــى

#7
عماد حمدي احمد كتب:
كده لازم يكون عدد الكسور زوجى :) , فما العمل لو كان عدد الكسور فردى؟ للاسف افسدت اجادتك فى الحل الاول :). كان الاجدى لو الامر هكذا ان تتعامل معها كجمع متسلسله عادية , والمستخدم يدخل الكسر باشارته. وكلها حلول خالية من اى ابداع طبعا فيما عدا حلك الاول.

اخ a3ghadeer اسمح لى بالرد

الحل جدا بسيييييييييييييط

اذا كان عدد الكسور فردى يدخل صفر وهذا طبيعى للخروج من اللوب ههههههههههههههههههه

فالصفر لن يؤثر فى الجمع والطرح

الحقيقه ارى ان الحل الاول والثانى يتميز كل منهم بإبداع البساطه فى توصيل الفكره

والاخت السائله مدرسه ... يعنى هى تريد جوهر الفكره ويمكنها استبدال loop بالشرط if .. goto او ما يناسب دراسة الطلاب لانها هى اعلم بما درسوا

معذرة اخى عماد ... ارى فى ردك تثبيط لمجهود الاعضاء

قبل حتى ان تدلوا بدلوك

تم تعديل هذه المشاركة بواسطة ASPHP في 14 يناير 2009 في 09:55

راقب أفكارك ... لأنها تصبح كلمات

راقب كلماتك ... لأنها تصبح أفعالاً

راقب أفعالك ... لأنها تصبح عادات

راقب عاداتك ... لأنها تصبح شخصيتك

راقب شخصيتك ... لأنها تصبح مصيرك

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…