في البرمجة ، غالبا ما تكون هناك حاجة للعثور على جميع فهارس العناصر في مصفوفة تساوي قيمة معينة من س. يمكن حل هذه المشكلة باستخدام خوارزميات وهياكل بيانات مختلفة.
واحدة من أبسط الطرق وأكثرها فعالية لحل هذه المشكلة هي التكرار من خلال جميع عناصر المصفوفة ومقارنة كل عنصر بقيمة معينة من س. إذا كان العنصر يساوي س ، يتم تخزين فهرسه في مصفوفة أو قائمة منفصلة. والنتيجة هي قائمة من الفهارس المقابلة لعناصر تساوي س. يتيح لك هذا الأسلوب العثور على جميع الفهارس في الوقت الخطي س(ن) ، أين ن هو عدد العناصر في المصفوفة.
قد تكون هناك طريقة أخرى لحل هذه المشكلة وهي استخدام بحث باستخدام مكرر أو وظيفة البحث المضمنة في لغة البرمجة. هذا يسمح لك للعثور على القيمة الأولى من س في مجموعة والعودة فهرسها. إذا كنت بحاجة إلى العثور على جميع تكرارات العنصر العاشر ، فيمكنك تكرار البحث بدءا من موضع الفهرس التالي الذي تم العثور عليه حتى يتم العثور على جميع التكرارات. يتطلب هذا النهج أيضا وقتا خطيا للتنفيذ.
بغض النظر عن طريقة الحل المختارة ، يجب ألا يغيب عن البال أن المشكلة تحدد فقط العثور على مؤشرات العناصر التي تساوي س. إذا كنت بحاجة إلى العثور على التكرار الأول أو الأخير ، وكذلك الحصول على عدد التكرارات ، فيجب عليك استخدام الفهارس المناسبة من القائمة الناتجة.
- برنامج للبحث عن أعداد العناصر في المصفوفة
- الوصف
- وظيفة البحث
- خوارزمية العملية
- مثال الاستخدام
- ميزات التنفيذ
- سؤال وجواب
- كيف أكتب برنامجا للبحث عن أرقام العناصر في صفيف?
- كيف يمكنني العثور على عدد من العناصر في صفيف يساوي قيمة معينة?
- هل من الممكن كتابة برنامج للبحث عن أعداد العناصر في مصفوفة بلغة برمجة أخرى?
- كيف يمكنني البحث عن أرقام العناصر في صفيف يساوي قيمة معينة باستخدام حلقة?
- هل من الممكن البحث عن أرقام العناصر في صفيف يساوي قيمة معينة دون استخدام حلقة?
برنامج للبحث عن أعداد العناصر في المصفوفة
تم تصميم هذا البرنامج للبحث عن عدد العناصر في مصفوفة تساوي قيمة معينة من س. يسمح لك بتحديد المواضع التي توجد فيها العناصر ذات القيمة المحددة في المصفوفة بسرعة.
لكي يعمل البرنامج ، يجب عليك تقديم المعلومات التالية:
- مجموعة من البيانات. يجب تهيئة المصفوفة مسبقا وتعبئتها بالبيانات.
- قيمة س ، والتي يجب العثور عليها في المصفوفة.
سيقوم البرنامج بالتحقق بالتتابع من كل عنصر من عناصر المصفوفة من أجل المساواة مع القيمة المحددة لـ س. إذا كان العنصر يساوي س ، يتذكر البرنامج رقمه في المصفوفة. بعد التحقق من جميع العناصر ، يعرض البرنامج قائمة بأرقام العناصر المقابلة للقيمة المحددة. إذا لم تكن هناك عناصر تساوي س في المصفوفة ، يعرض البرنامج رسالة تفيد بعدم وجود تطابقات.
يمكن استخدام البرنامج في مهام مختلفة ، بما في ذلك فرز البيانات وتحليلها وفرز المصفوفات وغير ذلك الكثير.
| إدخال البيانات | النتيجة المتوقعة |
|---|---|
| صفيف: [1, 2, 3, 4, 5], قيمة س: 3 | أرقام العناصر تساوي س: 3 |
| صفيف: [1, 2, 3, 4, 5], قيمة س: 6 | عدم وجود عناصر تساوي س |
يتم تقديم إخراج البرنامج كقائمة من أرقام العناصر تساوي س. إذا كانت القائمة فارغة ، يتم عرض رسالة تشير إلى أنه لا توجد عناصر تساوي س. يمكن تكوين تنسيق الإخراج المحدد وفقا للمتطلبات المحددة للمهمة.
الوصف
برنامج للبحث عن عدد من العناصر في صفيف يساوي قيمة معينة من س يسمح لك للعثور على مواقف جميع العناصر في مجموعة التي تساوي قيمة معينة من س.
خوارزمية البرنامج هي كما يلي:
- إنشاء صفيف مع القيم.
- إدخال قيمة س التي يمكن العثور عليها في مجموعة.
- تمريرة من خلال جميع عناصر المصفوفة.
- إذا كان العنصر يساوي قيمة س ، حفظ موقفها.
- إخراج المواقف التي تم العثور عليها من العناصر.
برنامج يسمح لك لاستخدام صفائف من حجم التعسفي والبحث عن أي قيمة معينة من س.
هنا مثال على كيفية عمل البرنامج:
| صفيف | القيمة المطلوبة | الوظائف التي تم العثور عليها |
|---|---|---|
| [1, 2, 3, 4, 5] | 3 | 2 |
| [1, 2, 3, 4, 5] | 6 | |
| [7, 7, 7, 7, 7] | 7 | 1, 2, 3, 4, 5 |
وبالتالي ، يتيح لك البرنامج العثور على جميع مواضع العناصر في المصفوفة مساوية للقيمة المحددة لـ س.
وظيفة البحث
تم تصميم وظيفة البحث للعثور على عدد العناصر في صفيف يساوي قيمة معينة من س.
مثال على استخدام الوظيفة:
أرقام = [1, 2, 3, 4, 5, 6, 7]
س = 3
النتيجة = بحث (أرقام ، س)
طباعة (نتيجة) # [2]
في هذا المثال ، ستبحث وظيفة البحث عن أرقام العناصر في مصفوفة الأرقام التي تساوي قيمة س (في هذه الحالة 3) وإرجاع قائمة بالأرقام التي تم العثور عليها.
يمكن تنفيذ وظيفة البحث على النحو التالي:
ديف البحث (أرقام ، س):
النتيجة = []
لأني ، الأسطوانات في تعداد (أرقام):
إذا الأسطوانات = = س:
النتيجة.إلحاق (ط)
نتيجة الإرجاع
في هذا التنفيذ للوظيفة ، يتم تكرار جميع عناصر مصفوفة الأرقام من خلال استخدام الحلقة باستخدام وظيفة التعداد ، والتي ترجع زوجا من القيم: فهرس العنصر والعنصر نفسه. إذا كان العنصر الحالي يساوي القيمة المحددة س ، فسيتم إضافة رقمه إلى قائمة النتائج. في النهاية ، تقوم الدالة بإرجاع الأرقام التي تم العثور عليها.
يمكن عرض النتيجة على الشاشة أو استخدامها لمزيد من معالجة البيانات.
خوارزمية العملية
للعثور على عدد العناصر في صفيف يساوي قيمة معينة من س ، يمكنك استخدام الخوارزمية التالية:
قم بإنشاء متغير لتخزين قائمة بأرقام عناصر المصفوفة التي تم العثور عليها.
انتقل من خلال كل عنصر من عناصر المصفوفة.
إذا كان العنصر الحالي يساوي القيمة المحددة س ، أضف رقمه إلى قائمة أرقام العناصر التي تم العثور عليها.
كرر الخطوات من 2 إلى 3 لجميع عناصر المصفوفة.
إرجاع قائمة بأرقام عناصر المصفوفة التي تم العثور عليها.
مثال على تنفيذ هذه الخوارزمية في بايثون:
ديف فيند-إندكسس (صفيف ، س):
الفهارس = []
لأني في النطاق (لين (صفيف)):
إذا صفيف [أنا] = = س:
الفهارس.إلحاق (ط)
عودة الفهارس
في هذا المثال ، تأخذ وظيفة فهارس البحث وسيطتين: صفيف-صفيف تحتاج فيه إلى العثور على أعداد العناصر المساوية للقيمة المحددة س ، و س — القيمة المحددة. تمر الوظيفة عبر كل عنصر من عناصر المصفوفة وتضيف أعداد العناصر التي تساوي س إلى القائمة. تقوم الدالة بعد ذلك بإرجاع قائمة بأرقام عناصر المصفوفة التي تم العثور عليها.
مثال على استخدام الوظيفة:
صفيف = [1, 2, 3, 4, 3, 2, 1]
س = 2
الفهارس = العثور على الفهارس (صفيف ، س)
طباعة (فهارس) # الإخراج: [1 ، 5]
في هذا المثال ، تتكون المصفوفة من عناصر [1, 2, 3, 4, 3, 2, 1], وتحتاج إلى إيجاد أرقام العناصر التي تساوي القيمة 2. ستكون نتيجة الوظيفة قائمة [1 ، 5] ، لأن العناصر المرقمة 1 و 5 هي 2.
مثال الاستخدام
لنفترض أن لدينا مجموعة من الأرقام:
أرقام فار= [10, 5, 7, 12, 7, 9, 5, 7];
ونريد أن نجد جميع فهارس عناصر المصفوفة التي تساوي الرقم 7.
يمكن كتابة البرنامج على النحو التالي:
وظيفة فيندندكسس (آر ، س) {
فهارس فار = [];
ل (فار أنا = 0; أنا < آر.الطول ؛ أنا {) {
إذا (آر [أنا] = = = س) {
الفهارس.دفع (أنا);
}
}
عودة الفهارس;
}
أرقام فار= [10, 5, 7, 12, 7, 9, 5, 7];
فهارس فار = فيندندكسس (أرقام ، 7);
وحدة التحكم.سجل (فهارس);
نتيجة لتنفيذ البرنامج ، سيتم إخراج مصفوفة تحتوي على جميع فهارس العناصر المساوية للرقم 7 إلى وحدة التحكم:
[2, 4, 7]وهكذا ، في هذا المثال ، يتم الحصول على فهارس عناصر المصفوفة ، والتي تساوي الرقم 7 — 2 و 4 و 7.
ميزات التنفيذ
عند تنفيذ برنامج للبحث عن أرقام العناصر في صفيف يساوي قيمة معينة من س ، يجب أن تؤخذ الميزات التالية في الاعتبار:
- من الضروري إنشاء متغيرات لتخزين المصفوفة الأصلية وقيمة س وعدد العناصر التي تفي بالشرط.
- يمكن إدخال مصفوفة المصدر من لوحة المفاتيح أو تعيينها مسبقا في رمز البرنامج.
- يمكن أيضا تعيين قيمة س من لوحة المفاتيح أو في رمز البرنامج.
- عند البحث عن أرقام عناصر مساوية لقيمة معينة من س ، استخدم حلقة تمر عبر جميع عناصر المصفوفة.
- داخل الحلقة ، تحتاج إلى مقارنة العنصر الحالي من مجموعة مع القيمة المحددة من س ، وإذا كانت متساوية ، إضافة رقم العنصر إلى قائمة تلك التي تم العثور عليها.
- يمكنك استخدام مصفوفة أو قائمة منفصلة لتخزين أرقام العناصر التي تم العثور عليها.
مثال على تنفيذ برنامج بايثون:
# إدخال صفيف من لوحة المفاتيح
أر = قائمة (خريطة (إنت ، المدخلات ("أدخل عناصر صفيف مفصولة مسافة:").انقسام ()))
# إدخال القيمة س
س = كثافة العمليات (الإدخال ("أدخل القيمة س:"))
# البحث عن أرقام عنصر يساوي س
المؤشرات = []
لأني في النطاق (لين (آر)):
إذا أر [أنا] = = س:
المؤشرات.إلحاق (ط)
# إخراج أرقام العناصر التي تم العثور عليها
طباعة ("أرقام العناصر التي تم العثور عليها تساوي س:")
للمؤشر في المؤشرات:
طباعة (فهرس)
في هذا المثال ، يطلب البرنامج أولا من المستخدم إدخال عناصر المصفوفة مفصولة بمسافة. ثم يطلب قيمة س. بعد ذلك ، فإنه يمر عبر جميع عناصر المصفوفة ، ويقارنها مع س ويضيف أعداد العناصر المتساوية إلى قائمة الفهارس. أخيرا ، يعرض البرنامج أرقام العناصر التي تم العثور عليها على الشاشة.
سؤال وجواب
كيف أكتب برنامجا للبحث عن أرقام العناصر في صفيف?
هنا مثال على برنامج بيثون للبحث عن أرقام العناصر في صفيف:
كيف يمكنني العثور على عدد من العناصر في صفيف يساوي قيمة معينة?
يمكنك استخدام برنامج بايثون التالي:
هل من الممكن كتابة برنامج للبحث عن أعداد العناصر في مصفوفة بلغة برمجة أخرى?
نعم ، بالطبع! مثال على التعليمات البرمجية المكتوبة في ج might قد تبدو هذه:
كيف يمكنني البحث عن أرقام العناصر في صفيف يساوي قيمة معينة باستخدام حلقة?
هنا هو رمز بايثون المقترح باستخدام حلقة:
هل من الممكن البحث عن أرقام العناصر في صفيف يساوي قيمة معينة دون استخدام حلقة?
نعم ، يمكنك استخدام أساليب بايثون الجاهزة، على سبيل المثال ، وظيفة تعداد: