أهلا ومرحبا بكم مرة أخرى.
اردت ان اعطيك اخر التحدي ، مهمة أخرى.
من الواضح أن هذا الشخص ذاهب لتكون كل شيء عن المصفوفات.
أريدك أن تعرف كيف لاستخدام مصفوفة ، وكيفية الوصول إلى مصفوفة
وكيفية إنشاء مصفوفة.
لذلك يجب عليك كتابة برنامج c هذا سيجد جميع الأعداد الأولية
من 3 إلى 100.
وسنفعل بكفاءة عالية.
لذلك سنستخدم القليل خوارزمية تجعلك تستخدم
مصفوفة ، لكن برنامج بسيط للغاية.
سيتم عرضه فقط كمخرج ، كل الأعداد الأولية من 3 إلى 100.
والسبب في أنك لا تفعل 0 ل 3 لأنك ستعمل على ترميز هؤلاء ، الأمر
بسيط جدًا.
أول 2 عددين أوليين هما 1 و 2 غير 0.
لذلك لن يكون هناك أي مدخلات لهذا البرنامج ، فقط الإخراج.
والمخرجات ستكون كل عدد أولي مفصولة
بمسافة في سطر واحد.
إنها أساسية جدًا ، على طول الطريق حتى 100.
سوف تحتاج إلى إنشاء مصفوفة تخزن
كل رقم أولي عند تكوينه.
يمكنك ترميز الأول عددان أوليان ، وهما 2
و 3 في المصفوفة الأولية.
لذلك ما كنت أتخيله هنا هو ذلك ستنشئ مصفوفة ، تسميها
الأعداد الأولية وستفعل فقط الكود الثابت أول 2 هناك.
ومن المهم كتابة التعليمات البرمجية منهم أيضًا
لأن الخوارزمية التي سنستخدمها للعثور عليها الأعداد الأولية سيتم مقارنتها
بأي أعداد أولية أخرى ، و سأشرح ذلك في ثانية.
تريد الاستفادة من الحلقات لهذه المهمة للعثور فقط على الأعداد
الأولية حتى 100.
لذا مباشرة بعد الخفافيش ، يجب عليك تخيل حلقة على الأقل لعرض
الأعداد الأولية التي وجدتها.
لذلك من المحتمل أن تكون هذه هي النهاية loop
، الحلقة الموجودة في نهاية البرنامج والتي تمر للتو المصفوفة الأولية
ويعرض كل ما بداخله.
الآن إذا وجدت كل الأعداد الأولية الأرقام حتى 100 ، لن تحتاج إلى
عمل حجم المصفوفة ربما أكثر من 50 لأنني لا أعتقد أن هناك أكثر من
50 عددًا أوليًا أرقام ، حتى 100 ، لكنك لن تكون قادرًا على ضبطها
صحيح تمامًا لأنك لا تعرف عدد الأعداد الأولية
الموجودة.
لذلك أود أن أقول عند إنشاء ملف مجموعة الأعداد الأولية ، فقط اجعل حجمها 100.
لذلك أنت بالتأكيد بحاجة إلى حلقة لطباعتها في النهاية.
ستحتاج إلى حلقة أخرى لمحاولة إيجاد الأعداد الأولية.
ويمكنك إيجاد أي أعداد أولية الخوارزمية التي تريدها ، لكن ما سأستخدمه
هو أنني سأستخدم شيئًا كهذا لأن هناك سببًا إضافيًا لاستخدام مصفوفة إذا قمت بإجراء هذه
الخوارزمية.
لذا المعايير التي يمكن استخدامها
لتحديد عدد أولي هو أن الرقم يعتبر أوليًا إذا لم يكن قابلاً للقسمة بالتساوي على أي
أعداد أولية سابقة.
وهناك أيضًا المزيد لتلك الخوارزمية ، ولكن هذه
هي نقطة البداية.
أنت أيضا تريد أن تنظر فقط ما يصل إلى رقم معين.
لذلك يمكنك استخدام ما يلي كملف حالة x في الحلقة الداخلية.
لذا مرة أخرى ، ما سوف تحتاجه أن يكون لديك هنا ربما
ستحتاج إلى حلقتين.
لقد ذكرنا بالفعل الثالث حلقة في الجزء السفلي
لطباعة البيانات ، لكنك ستحتاج إلى ذلك لديك 2 حلقات لهذه المهمة.
والخوارزمية التي أناقشها هنا خوارزمية محسّنة أكثر.
لذلك هذا هو سبب رغبتك في القيام بذلك.
الآن إذا كنت تريد إيجاد الأعداد الأولية بطريقة مختلفة ، لا بأس
بذلك طالما أنك تستخدم مصفوفة لأن الغرض الكامل
من التخصيص ليس فهم الأعداد الأولية ، إنه لفهم كيفية استخدام المصفوفات.
من خلال النظر في السابق لتوليد الأعداد الأولية التي
تجبرك على استخدام مصفوفة وأنت تخزين أن كل رقم أولي يتم
إنشاؤه كما ذكرت.
والطريقة الأخرى التي يمكنك القيام بها الأمر الأكثر مثالية هو أنك لا تريد النظر إلى الأرقام
الزوجية.
لذلك إذا كنت تمر بكل منها رقم من 3 إلى 100 وأنت تتحقق مما إذا كان هذا
عددًا أوليًا ، يمكنك ذلك تجاهل الأعداد الزوجية لأن الأعداد الزوجية
لن تكون أبدًا أولية.
حتى في الحلقة الخارجية أو في الحلقة الداخلية ، يمكنك
التحقق مما إذا كان العدد الأولي يقبل القسمة على الأعداد الأولية الأخرى أو تأكد من عدم إمكانية التحقق من
ذلك وتخطيها.
ثم شرط المحور الآخر في الحلقة الداخلية هو التأكد من
أن قيمة p لا يتجاوز الجذر التربيعي للأعداد الأولية ، وهذا جزء آخر من الخوارزمية.
لذلك قد لا يكون هذا منطقيًا تمامًا ، لكن هذه هي في الأساس بعض المعايير التي
أريدك أن تتبعها.
تخطي أي شيكات للأرقام الزوجية ، ومن ثم فإن الخوارزمية هي البحث عن أي
أعداد أولية سابقة التي تم إنشاؤها وأيضًا للتحقق مما إذا كان
p لا يفعل ذلك أم لا يتجاوز الجذر التربيعي لعدد الأعداد الأولية لأن هذا
آخر طريقة للتحقق من وجود عدد أولي.
لذلك سوف تحتاج إلى أن يكون لديك حلقة for التي تنتقل بشكل
أساسي من 5 إلى 100 ثم يمكنك ذلك قم بزيادة ذلك بمقدار 2 بحيث تبحث فقط عن
الأعداد الفردية.
ثم في حلقة من أجل داخلي لك لديك بالداخل هناك ، سترغب
في الانتقال من 1 إلى هذا الآخر القيمة ص مقسومة على عدد أولي فرعي I أكبر من العدد الأولي الفرعي
I.
وربما تريد أيضًا أن تصنع تأكد من أن الرقم ليس أوليًا.
لذلك لا تريد أن تتجاوز تحقق معين ثم تريد أيضًا القفز من الحلقة الداخلية إذا
لقد وجدت بالفعل عددًا أوليًا.
وهكذا الطريقة التي يمكنك التحقق منها عدد أولي إذا كان رقمك الحالي قابلاً للقسمة على أي
عدد أولي سابق ، حتى تتمكن من إلقاء نظرة على مجموعة الأعداد الأولية.
وإذا كان المعامل لذلك يساوي 0 ، إذن ليس لديك
عدد أولي.
خلاف ذلك ، إذا كنت قد فعلت هذا تحقق بالكامل في هذه الحلقة
بأكملها وقد خرجت من هناك بالفعل تجاوز الجذر الفرعي الأول أكبر
من الجذر التربيعي الأولي المشكلة ولم تجد بالفعل عددًا أوليًا ، فهذا
يعني أنه يمكنك بعد ذلك إضافة هذا العدد الأولي إلى مصفوفة الأعداد الأولية الخاصة بك ثم فقط قم بطباعة
مجموعة الأعداد الأولية.
لذا فإن الخوارزمية الفعلية لا تفعل ذلك تبدو مربكة بقدر ما أفعلها.
مرة أخرى ، حاول أن تمنحك كـ العديد من تلميحات الشفرة الكاذبة هناك
قدر الإمكان مع الجزء الخارجي لـ حلقة في حلقة for الداخلية.
لكنك ستحتاج إلى الوصول المصفوفات
، ستقرأ المصفوفات ، ستنظر إليها مصفوفة لمعرفة القيم السابقة.
سوف تحصل عليك على دراية بالمصفوفات.
لذا حظًا سعيدًا ، وسأقدم لك الحل في المحاضرة التالية سيكون
منطقيًا أكثر ، لكن هذه هي المتطلبات وبعض الزيارات.
شكرًا لك.