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

برنامج إيجادجميع الصناديق السحرية 3×3 .

مغلق
بدأه فهدالشلوي في 8 ديسمبر 2007 · 4 رد · 1,453 مشاهدة · في قسم المواضيع الهامة في قسم السي /سي++
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

فكرت في عمل برنامج لايجاد جميع الصناديق السحرية من النوع 3×3

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

اعطاء افكار او خوارزميه افضل.

LEFT TO RIGHT

#include<iostream>

using namespace std;

int main()

{

/*عناصر الصندوق*/

int a[9]={1,2,3,4,5,6,7,8,9};

for(int i=0;i<9;i++) //1

for(int t=0;t<9;t++)//2

for(int j=0;j<9;j++)//3

for(int r=0;r<9;r++)//4

for(int n=0;n<9;n++)//5

for(int s=0;s<9;s++)//6

for(int v=0;v<9;v++)//7

for(int x=0;x<9;x++)//8

for(int y=0;y<9;y++)//9

{

if(

/*من هنا شرط تبديل العناصر من 1 الى 9*/

(a!=a[t]&&a!=a[j]&&a!=a[r]&&a!=a[n]&&a!=a&&a!=a[v]&&a!=a[x]&&a!=a[y]

&&a[t]!=a[j]&&a[t]!=a[r]&&a[t]!=a[n]&&a[t]!=a&&a[t]!=a[v]&&a[t]!=a[x]&&a[t]!=a[y]

&&a[j]!=a[r]&&a[j]!=a[n]&&a[j]!=a&&a[j]!=a[v]&&a[j]!=a[x]&&a[j]!=a[y]

&&a[r]!=a[n]&&a[r]!=a&&a[r]!=a[v]&&a[r]!=a[x]&&a[r]!=a[y]

&&a[n]!=a&&a[n]!=a[v]&&a[n]!=a[x]&&a[n]!=a[y]

&&a!=a[v]&&a!=a[x]&&a!=a[y]

&&a[v]!=a[x]&&a[v]!=a[y]

&&a[x]!=a[y])

/*من هنا الشرط المصفوفه او الصندوق السحري*/

&& (a[y]+a[x]+a[v]==15) && (a+a[n]+a[r]==15) && (a[j]+a[t]+a==15) && (a[y]+a+a[j]==15)

&&(a[x]+a[n]+a[t]==15) && (a[v]+a[r]+a==15))

{

cout<<'|'<<a[y]<<a[x]<<a[v]<<'|'<<endl;

cout<<'|'<<a<<a[n]<<a[r]<<'|'<<endl;

cout<<'|'<<a[j]<<a[t]<<a<<'|'<<endl;

cout<<endl<<endl;

}

}

return 0;

}

tvquran_6.gif

#2

هل من الممكن اعمل التبديلات بدون تسعه for ?

في شرط عدم تكرار العناصر معقد وطويل ايضا حاولت اقارن العناصر مرة وحده لكن ما نجحت معي فاخذتها عنصر عنصر.

tvquran_6.gif

#3

السلام عليكم ,,

محاولة طيبة أخي العزيز لكنها طويلة نوعاً ما :D , الحقيقة أعرف القليل عن الموضوع لأني كنت أحب حلها على الورق فقط, و الذي أعرفه أن ليس لها خوارزمية عامة للحل,

و لكن هناك طريقة سهلة لحلها إذا كان الطول و العرض ( المربعات ) عددين فرديين, أي 3*3 أو 5*5 ....

هذه مقال من codeproject عن الموضوع

المقال : Magic Square

أتمنى أن يفيد و المشروع المرافق للمقال في المرفقات rolleyes:: إن لم يكن لديك حساب في : codeproject

MagicSquare.zip

تحياتي ,,

تم تعديل هذه المشاركة بواسطة Khaled.Alshaya في 10 ديسمبر 2007 في 06:21

#4

شكر لك أخي خالد.

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

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

tvquran_6.gif

#5

بالمناسبة أنت أول عضو أراه في قسم السي++ منذ عرفت المنتدى , الكود Color Highlighted , B)

عملتها يدوي ؟ :hmm:

تحياتي لك أخي العزيز ,,

هذا الموضوع مغلق.

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