تحدى نفسك بهذه المصفوفة !
مرحبا ! :)
رغم بعدي التام عن تخصص الحاسب .. الا ان الدكتور يريد ان يشاهد الطلاب وهم يتساقطون امامه كأوراق الشجر في فصل الخريف .. وهو مستمتع بهذا المنظر الجميل - بالنسبة له - القبيح لنا ..
نحن لم ندرس سوا البسودو كوود .. ولم ندرس اي لغة اخرى ..
السؤال هو التالي ..
اكتب الخوارزميه التي تحل وتطبع المصفوفه التالية: من اليمين الى اليسار :
1 . . . .
1 1 . . .
1 2 1 . .
1 3 3 1 .
1 4 6 4 1
----------------------
هل من منقذ ؟
تحياتي ..
رد: تحدى نفسك بهذه المصفوفة !
لي عوده قريبا ان شاء الله...
رد: تحدى نفسك بهذه المصفوفة !
مافيه مدخلات ؟ ..
السؤال فهمته على انه برنامج يطبع الي انت كاتبه بس .. يعني المستخدم ما يدخل اي شي !!
احس سؤالك ناقص .. بس بحله على قدر المستطاع ان شاء الله
رد: تحدى نفسك بهذه المصفوفة !
هذا هو الكود .. بس مب صح 100% لأني ما كملته بس قربت من الحل ان شاء الله ... الباقي عليك
كود PHP:
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
/*
Output=====
1 . . . .
1 1 . . .
1 2 1 . .
1 3 3 1 .
1 4 6 4 1
===========
*/
int n =1;
for(int i = 1 ; i <= 5 ; i++)
{
cout<<n;
for(int k = 0; k < i/2; k++)
{
cout<<(i-1)+k;
}
for(int z = 1; z < i/2; z++)
{
cout<<i-1-z;
}
for(int j = i+1 ; j <= 5 ; j++)
{
cout<<".";
}
cout<<endl;
}
//End of the code =========
system("PAUSE");
return EXIT_SUCCESS;
}
رد: تحدى نفسك بهذه المصفوفة !
سـلام عليكم ..
إلى الأخ : AZPC
خلال بحثي عن حل واجب لـ خوارزمية ..
أطلعت على موضوع .. في هذا المنتدى
سبحان الله .. الواجب المطلوب علينا
هو نفسهـ الي طلبه كاتب الموضوع ..
وانت جاوبت عليه جواب جزئي ..
فـ لو سمحت وهذي خدمة أخوية ..
أنك تحل المسألة كاملة
الواجب ضروري نسلمه الساعه 3.30 عصرا
من يوم الثلاثاء 30/1/1430
رد: تحدى نفسك بهذه المصفوفة !
يا شباب كيف احل مشكلة ما اعرف سؤالها بالظبط ؟؟؟؟
اعطوني السؤال كامل وانا بحاول احله ان شاء الله ..
1 مرفق
رد: تحدى نفسك بهذه المصفوفة !
السلام عليكم
عرفت سر المصفوفه ~_^
وهذا البرنامج توي عملتلك أياه
حط طول المصفوفه الي تبيه ( يفضل أقل من الـ 10 ) , ولا تحطه أبدا فوق الـ 100×_× لأن طول الأريه 100
الكود
كود PHP:
#include<stdio.h>
void main(void)
{
int a[100][100],i,j,long1,q;
printf("Long Array (Give my number between 1-10) = ");
scanf("%d",&long1);
for(i=0;i<long1;i++)
{
for(j=0;j<=i;j++)
{
if (j==0) (a[i][j]=1);
else if (i==j) (a[i][j]=1);
else
{
a[i][j]=a[i-1][j]+a[i-1][j-1];
}
}
}
for(i=0;i<long1;i++)
{
for(j=0;j<=i;j++)
{
printf("%d ",a[i][j]);
}
printf("\n");
}
printf("\n\nBy AL_ADMIRAL ^_^ \n\n\n");scanf("%d",&q);
}
أذا تبي تشغل البرنامج <<< في المرفق ^_^
رد: تحدى نفسك بهذه المصفوفة !
النقاط مهمه ؟!
الي سويته فوق بدون نقاط
أذا تبي نقاط حط قبل آخر طباعه
كود PHP:
while(j<long1) {printf(". ");j++;}
ليصبح البرنامج هاكذا
كود PHP:
#include<stdio.h>
void main(void)
{
int a[100][100],i,j,long1,q;
printf("Long Array (Give my number between 1-10) = ");
scanf("%d",&long1);
for(i=0;i<long1;i++)
{
for(j=0;j<=i;j++)
{
if (j==0) (a[i][j]=1);
else if (i==j) (a[i][j]=1);
else
{
a[i][j]=a[i-1][j]+a[i-1][j-1];
}
}
}
for(i=0;i<long1;i++)
{
for(j=0;j<=i;j++)
{
printf("%d ",a[i][j]);
}
while(j<long1) {printf(". ");j++;}
printf("\n");
}
printf("\n\nBy AL_ADMIRAL ^_^ \n\n\n");scanf("%d",&q);
}
<<< البرنامج بالـغة C
رد: تحدى نفسك بهذه المصفوفة !
يعطيك العافيه Al Admiral .. ما عليك زود يالغالي
1 مرفق
رد: تحدى نفسك بهذه المصفوفة !
الله يعافيك عاشق الريم ^_^
طبعا زي منتو عارفين الدوس ماتظهر النتايج فيلو بشكل جميل (لأنو ياخذ سطر ثاني أذا كان طويل)
فعملت المخرجات أيضاًعلى ملف تكست ( شكل المصفوفه يطلع حلو ^_^ )
جرب حتى حجم 26 للمصفوفه , وشوف كيف :wink2:
لازم تفتح الضغط اول شي من الملف (الي بالمرفق)
وبعد ما تطلع النتايج في الدوس أضغط أي رقم وأنتر , وشوف ملف التكست ( out.txt ) ^_^
<<< عندي أختبار C يوم السبت وقاعد أتسلى :biggrin2:
رد: تحدى نفسك بهذه المصفوفة !
على ما يظهر هذه المصفوفة ماهي إلا مثلث باسكال .
فتحليل ثنائي الحد من الرتبة n هو
كود:
(x+y)^n=C(0,n)*x^n+C(1,n)*x^(n-1)*y+...+C(p,n)*x^(n-p)*y^p+...+C(n,n)*y^n
و لحساب المعامل
لأي حد يمكن أن نستعمل الخوارزمية التالية
كود:
If i=j or j=1 Then
a(i,j)=1
Else
a(i,j)=a(i-1,j)+a(i-1,j-1)
End If
رد: تحدى نفسك بهذه المصفوفة !
لمعلومات أعمق و أكثر راجع الـ Wikipédia
الصفحة الإنجليزية
الرابط : Pascal's triangle
الصفحة الفرنسية بالإضافة إلى شرح تجد هناك مصدر للخوارزمية بالـ C++ و آخر بالباسكال
الرابط : Triangle de Pascal
الصفحة العربية بها معلومات مختصرة جدا
الرابط : مثلث باسكال
http://en.wikipedia.org/wiki/File:Pa...eAnimated2.gif
رد: تحدى نفسك بهذه المصفوفة !
يعطيك العافية أبو هاجر على هالمعلومات ^_^
أنا تقريبا قعت 10 دقايق أتأمل في المصفوفه لمن عرفت هذا الشي
( أي حد داخل المثلث (داخل حدود 1 ) = الحد الذي فوقه + الحد اللذي بجوار اللذي فوقه من اليسار )
رد: تحدى نفسك بهذه المصفوفة !
اقتباس:
المشاركة الأصلية كتبت بواسطة AL ADMIRAL
يعطيك العافية أبو هاجر على هالمعلومات ^_^
الله يعافيك (-:
اقتباس:
المشاركة الأصلية كتبت بواسطة AL ADMIRAL
أنا تقريبا قعت 10 دقايق أتأمل في المصفوفه لمن عرفت هذا الشي
( أي حد داخل المثلث (داخل حدود 1 ) = الحد الذي فوقه + الحد اللذي بجوار اللذي فوقه من اليسار )
صحيح و هذا من محاسن مثل هذا النوع من المسائل الأكاديمية إن صح التعبير على عكس ما نصادفه في كثير من الكتب التي لا هم لها إلا شرح كيفية رص المكونات الرسومية في حين تهمل جانب الخوارزمات.....................................بارك الله فيك و في الإخوة على هذا الموضوع .
رد: تحدى نفسك بهذه المصفوفة !
السلاك عليكم
الكود كالتالي
program loops;
Var
major, minor, x : integer;
begin
major := 0;
minor := 4;
while major >= 5 do
write '1';
for x:= 1 to major -1 do
write major
end;
if major >= 1 then
write '1'
end;
while minor >= major Do
write '.';
minor := minor - 1;
end;
writeln;
major := major + 1;
minor := 4;
end
end.
المخرجات
1....
11...
121..
1331.
14441
الكود بالكومبايلر تيربو باسكال .. أو بورلند ديلفي بكلاهما يمشى الحال
وإذا تبي الكود بالكومبايلر بيرسونال كوبول انا حاضر