مشاهدة النسخة كاملة : برنامج من برامج الاخ executioner
lasko
03-19-2008, 02:43 AM
السلام عليكم ورحمة الله وبركاته
طرح علينا الاخ exceutioner الله يجزيه الخير برنامج حلو كتير حبيت نزلو لانو حسيت في فائدة5smil
ومن شان ما يصير غش انا لهلأ ما حاولت فيه للبرنامج ويلي بيسبق بياكل فستق3smil
البرنامج كالتالي :يقوم المستخدم بادخال رقم فيعطيك البرنامج الارقام يلي اقل منه ويعطيك احتمالات توزيعون4smil4smil
يعني اذا دخل المستخدم 2:سوف يكون ناتج الخرج:
12 21
واذا المستخدم دخل 3:سوف يكون ناتج الخرج كالتالي:
123 132 213 231 321 312
lasko
03-22-2008, 09:15 AM
السلام عليكم ورحمة الله و بركاته
خير شباب ما لي شايف حلول او ردود 4smil4smil4smil البرنامج مو بهي الصعوبة
هاد الحل تبعي smil1
#include<iostream.h>
#include<windows.h>
#include<stdlib.h>
#include<time.h>
bool test(int [] , int , int );
void main()
{
int y[10],x,z[100]={0} ,temp[100]={0},n=1,copy[10],h;
do
{
cout<<"enter your number greater than zero\n";
cin>>x;
if(x==1)
{
cout<<x<<endl;
exit(0);
}
}while(x<0); // to compulsion the user to insert number bigger tha zero
//------------------------------------------------------------------
int s=GetTickCount(),S;
for(int i=1;i<=x;i++) // to know the numbers less than the entry
y[i-1]=i;
//------------------------------------------------------------------
for ( i=1; i<=x; i++) // to know the number of probability
n*=i;
//------------------------------------------------------------------
srand(time(0));
for( i=0 ; i<n ; i++)
{
point:
for (int k=0 ; k<x ; k++)
copy[k]=y[k];
for(int j=0 ; j<x ; j++)
{
h=rand()%x;
if(copy[h]!=0)
{
copy[h]=0;
z[i]+=y[h];
if( j!=(x-1))
z[i]*=10;
}
else
j--;
}
if(test(temp,z[i],n))
cout<<z[i]<<'\t';
else
{
z[i]=0;
goto point;
}
}
cout<<'\n';
S=GetTickCount();
cout<<"this program takes for compiling and linking just :"<<S-s<<" secondes\n";
}// end main function
//------------------------------------------------------------
bool test(int temp[] , int z , int n)
{
for (int i=0 ; i<n ; i++)
if(temp[i]==z)
return 0;
for ( i=0 ; i<n ; i++)
if(temp[i]==0)
{
temp[i]=z;
return 1;
}
return 0;
}
بدنا همة عالية شباب3smil5smil
Executioner
05-07-2008, 02:42 PM
السلام عليكم ورحمة الله وبركاته:
الله يعطيك العافية، امبين مو مخلي تعليمة بالـ ++C إلا واستخدمتها، طول بالك يا معلم أنا مو قصدي شي بس يعني شو دخل توابع الراندوم بالحل، وشو قصة goto معك هي بضوع الواحد، اخترلك شي وحدة تانية، صحيح أنو أنا كنت استخدمها بس مو نصيحة حالياً (مع إنك بهاد الكود كأنك معم تستخدمها).
ملاحظة: يا معلم إن تعليمة الـ cout بتجمع قيم الخرج بتجمع بتجمع، ما ابتطبع لحتى تنفجر أو تمرء تعليمة سطر جديد endl أو بتنفيذ تعليمة ال flush على الشكل التالي:
flush(cout);
cout.flush();
التمرين بظن صعب بدو تركيز، أنا ححط حلي، بس بتمنى ما تشوف الكود لحتى تحاول بالتمرين مرة تانية بأسلوب تاني، جرب برنامجي مشان تشوف الحلول يلي إن شاء الله صحيحة.
أنا أخد معي مشان العدد 12 حوالي 20 ثانية، بدون طباعة. وكان عدد الاحتمالات: 479001600، أكيد في خوارزميات أسرع.
#include<iostream.h>
#include<iomanip.h>
#include<windows.h>
#include<stdlib.h>
#include<time.h>
#include<conio.h>
#include<string.h>
void Swap(char &x, char &y)
{
char t= x;
x= y;
y= t;
}
int Help(char Num[], int Size)
{
int c1= 0, c2= 1;
int Counter=0;
char Num2[100];
for (int i=0; i<=Size; i++)
Num2[i]= Num[i];
cout << Num << endl;
Counter++;
Swap(Num2[c1],Num2[c2]);
while(strcmp(Num2,Num)!=0)
{
cout << Num2 << endl;
Counter++;
//getch();
c1++;
c2++;
if (c1==Size)
c1=0;
if (c2==Size)
c2=0;
Swap(Num2[c1],Num2[c2]);
}
Swap(Num2[c1],Num2[c2]);
return Counter;
}
void FinalPrint(char Num[], int Size, int num)
{
int MustCounter=1;
for (int i=1; i<=num; i++)
MustCounter*= i;
int Counter= Help(Num,Size);
while(MustCounter!=Counter)
{
Counter+= Help(Num,Size);
}
cout << "Count Of Solutions Is: " << Counter << endl;
}
void main()
{
int INum, Size=0;
do {
cout << "Enter the number beteen 1 and 61: " << endl;
cin >> INum;
} while(!(INum>=1 && INum<=61));
if (INum<2)
cout << INum << endl;
else
{
char CNum[100];
for (int i=1; i<=INum; i++)
if (i+48<=48+9)
CNum[i-1]= i+48;
else if (i+55<= 65+25)
CNum[i-1]= i+55;
else
CNum[i-1]= i+61;
CNum[i-1]= '\0';
Size= i-1;
FinalPrint(CNum, Size, INum);
}
getch();
}
في بعض المكتبات والتعليمات مالها طعمة....
والسلام عليكم.
lasko
05-09-2008, 03:45 PM
السلام عليكم ورحمة الله وبركاته
يا سيدي الله يعطيك الف عافية ويجزيك الخير .. بس حبيت قلك انو انا ما اعتمدت على خوارزمية معينة بالحل بالاصح خوارزمية حلي كانت انو تشكل اعداد عشوائية محصورة وتقوم باختبارها اذا كانت قد شٌكلت من قبل لما لاء اذا شكلت بترجع بتشكل غيرو واذا ما تكرر الرقم بتطبع الرقم ..وطبعا حلي اكتر حل بدائي 6smilيعني بصراحة ما في تشغيل مخ كتير .... ومتل ما قلت ابو شريك بدنا همة الشباب بحلولون المبدعة .........والسلام 5smil
vBulletin® v3.8.4, Copyright ©2000-2012, TranZ by Almuhajir