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

خوارزمية وحلها وبدي مساعدة منكم بالتأكيد

بدأه samarland في 14 سبتمبر 2009 · 2 رد · 918 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

ان البائعين يتقاضون عمولة معينة عن مبالغ مبيعاتهم وفق:

عن اول 5000 تكون 8%

وعن قاني 5000 تكون 10%

وما فوق ال 1000 تكون 12%

وعلمنا برغبة احد البائعين بمعرفة كم سيبيع ليحصل على عمولة محددة فطلب منا تحديد المبلغ الواحب الوصول

إليه في عمليات البيع كي يجقق عمولة معينة

مثال: لحساب عمولة على مبلغ المبيع قدره 13000 يكون كالتالي:

المطلوب:

.

الدخل: العمولة المطلوب تحقيقها

الخرج: المبلغ الواجب الوصول إليه في عمليات البيع

الخوارزمية:

. - قراءة العمولة المطلوب تحقيقها

- نعطي قيمة ابتدائية لمبلغ المبيعات =0

) - العمولة المحسوبة لمبلغ المبيعات السابق =0

طالما العمولة المحسوبة >العمولة المطلوبة كرر

نطبق زيادة على مبلغ المبيعات بمقدار 5

حساب العمولة لمبلغ المبيعات الجديد

- عرض مبلغ المبيعات

What is Commission Amount? 300

- The Sales Amount 3750 is needed to make a commission of 300.

انا طبعا ما بدي من حدا يحلها الي..

انا بدي بس اتأكد من الحل الي عندي وبعدها تعطوني رأيكم ..

تم تعديل هذه المشاركة بواسطة samarland في 14 سبتمبر 2009 في 04:14

#2

تحية طيبة :

انا في حلي للبرنامج افترضت بانو لو جمع 4000 مثلا (اي اقل من اول 5000) فإنه ياخذ عليها عمولة الثمانية بالمئة .. وبانه لو جمّع 6000 فإنه يأخذ لاول 5000 عمولة الثمانية بالمئة والالف الباقية يأخذ عليها عمولة العشرة بالمئة، وبانه لو جمّع مثلا 13000 فإنه يأخذ على اول خمسة الاف عمولة الثمانية بالمئة وعلى ثاني 5000 الاف يأخذ عمولة العشرة بالمئة وعلى الثلاثة الاف المتبقية عمولة الاثنى عشر بالمئة.

اتمنى انا يكون مفهومي للمطلوب من السؤال صحيحا .. وبناء على ما اسلفت سابقا فقد كتبت الكود التالي الذي يحاكيه :

using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication1
{
	class Program
	{
		static void Main(string[] args)
		{
			double العمولة = 0, مبلغ_المبيع = double.Parse(Console.ReadLine());
			bool sensor1 = false, sensor2 = false;

			if (مبلغ_المبيع >= 5000)
			{
				العمولة = 5000 * 0.08;

				مبلغ_المبيع -= 5000;
			}
			else
			{
				العمولة = مبلغ_المبيع * 0.08;
				sensor1 = true;
			}

			if (!sensor1)
			{

				if (مبلغ_المبيع >= 5000)
				{
					العمولة += 5000 * 0.10;

					مبلغ_المبيع -= 5000;
				}
				else
				{
					العمولة += مبلغ_المبيع * 0.10;
					sensor2 = true;
				}

				if (!sensor2)
				{
					if (مبلغ_المبيع > 0)
						العمولة += مبلغ_المبيع * 0.12;
				}
			}


			Console.WriteLine(العمولة.ToString());
		}
	}
}

سلاااام.

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

#3

ذكرت في حل الخوارزمية التالي:

طالما العمولة المحسوبة >العمولة المطلوبة كرر

نطبق زيادة على مبلغ المبيعات بمقدار 5

لماذا هذه الزيادة؟ هذه ستدخل البرنامج في حلقة لا نهائية، سيبدأ بخمسة، عشرة، خمسة عشر... ماذا لو كان الرقم المناسب هو 13؟

أظن أن هناك طريقة أصح للحل

بما انك لا تريد من أحد أن يحله فلا تقرأ التالي إلا بعد محاولتك للحل مرة أخرى :lol:

أ- بإمكانك حساب القيم الفعلية للنسب المؤية المحددة: لنسميها حدود الربح

1- عن أول 5000 يتقاضى 400 (8 بالمئة) (الحل: 5000 ضرب 8 تقسيم 100)

2- عن ثاني 5000 يتقاضى 1000 (10 بالمئة)

3- فوق 10000 يتقاضى مبلغ أعلى من 1000

الآن بمقارنة مباشرة (للعمولة المطلوبة) مع (حدود الربح) بإمكاننا معرفة النسبة اللازمة لاحتساب ربحه، وهي ببساطة مقارنة شرطية:

نبدأ المقارنة مع حد الربح الأصغر، أي 400

إذا كان حد الربح أكبر أو يساوي العمولة المطلوبة > نحسب كمية المبيعات على أساس النسبة الحالية

أو

نقارن بحد الربح التالي

بمثالك ذكرت أنه يريد عمولة بقيمة 300 وبالتالي هي قيمة أصغر أو تساوي الـ 400 أي يجب علينا معالمته على أساس نسبة الـ 8 بالمئة

الآن نحسب المبلغ اللازم تحقيقه:

300 ضرب 100 مقسمة على 8 يساوي 3750

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

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

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

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

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