Goharshady

New Member
ارسال ها
2,239
لایک ها
166
امتیاز
0
#41
خیلی لطف کردید
ممنون
 

SABB

New Member
ارسال ها
704
لایک ها
25
امتیاز
0
#42
خواهش می کنم. قابلی نداشت.
[center:40c504b37d]




[/center:40c504b37d]
 

Goharshady

New Member
ارسال ها
2,239
لایک ها
166
امتیاز
0
#43

SABB

New Member
ارسال ها
704
لایک ها
25
امتیاز
0
#44
نمی دونم
ولی درمورد آرایه میشه اول یه متغیر ثابت (const) تعریف کرد و بعد طول آرایه رو اون گذاشت. در اینصورت ایراد نمی گیره.
مثلا:

کد
const int x=100;
int myarray[x];
البته در اینصورت اگه وسط برنامه مقدار x رو عوض بکنید Error می ده! (چه فایده ای داره؟؟
)
 

SABB

New Member
ارسال ها
704
لایک ها
25
امتیاز
0
#45
[center:86fedb8301]
2-b


به نظرم خیلی داریم از موضوع پرت میشیم

! نظر شما چیه؟؟
[/center:86fedb8301]
 

Goharshady

New Member
ارسال ها
2,239
لایک ها
166
امتیاز
0
#46
Order الگوریتمها را کم می کنه و سرعت برنامه زیاد می شه
 

Goharshady

New Member
ارسال ها
2,239
لایک ها
166
امتیاز
0
#47
SABB گفت
[center:9403ba967b]
2-b


به نظرم خیلی داریم از موضوع پرت میشیم

! نظر شما چیه؟؟
[/center:9403ba967b]
خیلی مهم نیست ، مهم اینه که برنامه نویسی ما قوی بشه
 

Goharshady

New Member
ارسال ها
2,239
لایک ها
166
امتیاز
0
#48
[center:77cc1af32e]2[/center:77cc1af32e]لطفا خودتون جوابشو بنویسید. چون من خیلی ++C بلد نیستم. به هرحال این کد منه که خیلی هم bug داره:
کد
#include <stdio.h>
#include <conio.h>
#include <math.h>						
void secondfunction(int first,int last);
int main()
{
printf("we are going to solve an equation like a_{1}x^{n}+a_{2}x^{n-1}+...+a_{n}=0\n I hope you know LaTex");
printf("\n Please enter n:");
int n;
scanf("%d",&n);
int first=0,last=0;
for(int i=1;i<=n;i++)
{
printf("Please enter a_{%d}",i);
if(n==1)
{
scanf("%d",&first);
last=first;
}
else if(i==1)
{
scanf("%d",&first);
}//end of if
else if (i==n)
{
scanf("%d",&last);
}//end of else if
else
{
int u =0;
scanf("%d",&u);
}//end of else
}//end of for
// up to here we have all the input we need , now we're going to process it
int dfirst[32767];
int dlast[32767];
int num =0,numfirst=-1,numlast=-1;
for(num=1;num<=(float)first/2;num++)
{
if(first%num==0)
{
numfirst++;
dfirst[numfirst]=num;
}//end of if
}//end of for
for(num=1;num<=(float)last/2;num++)
{
if(last%num==0)
{
numlast++;
dlast[numlast]=num;
}//end of if
}//end of for
for(int i1 =0;i1<numfirst+1;i1++)
{
for (int i2=0;i2<numlast+1;i2++)
{
float answer = (float)dlast[i2]/dfirst[i1];
printf("One answer is: %f",answer);
{
}//end of if
}//end of for
}//end of for

getch();
return 1389;
}//end of main
 

SABB

New Member
ارسال ها
704
لایک ها
25
امتیاز
0
#49
[center:b653d99c4b]2[/center:b653d99c4b]این هم کد من که البته اینم باگ داره! ولی فکر کنم بدونم باگش کجاست
مثلا وقتی من یه متغیر double تعریف می کنم و مقدارش می شه 3/2 بعد چاپش می کنم مینویسه 1 !! فکر کنم تو این برنامه هم همینجوریه.
کد
[I][B][B][I]#include<iostream.h>
#include<conio.h>
main()
{
   clrscr();
   int i,l,j,k,n,a[100],an,a0,b=0,c=0,b1[100],c1[100],r=0;
   double root,s;
   cout<<"enter n:";
   cin>>n;
   for(i=n;i>=0;i--)
   {
	 cout<<"enter a["<<i<<"]:";
	 cin>>a[i];
   }
   a0=abs(a[0]);
   an=abs(a[n]);
   for(i=1;i<=a0;i++)
	 if(a0%i==0)
	 {
	b1[b]=i;
	b1[b+1]=-i;
	b+=2;
	 }
   for(i=1;i<=an;i++)
	 if(an%i==0)
	 {
	c1[c]=i;
	c1[c+1]=-i;
	c+=2;
	 }
   for(i=0;i<b;i++)
	 for(j=0;j<c;j++)
	 {
	s=0;
	root=b1[i]/c1[j];
	for(k=0;k<=n;k++)
	{
	   for(l=0;l<k;l++)
		 s*=root;
	   s*=a[k];
	}
	if(s==0)
	{
	   cout<<root<<endl;
	   r++;
	}
	 }
   if(r==0)
	 cout<<"This polynomial has no rational root!";
   getch();
}
[/I][/B][/B][/I]

 

SABB

New Member
ارسال ها
704
لایک ها
25
امتیاز
0
#50
Goharshady گفت
SABB گفت
راهنمایی. اگه ریشه این چندجمله ای کسر ساده نشدنی b/c باشه اونوقت:
عکسش هم برقراره
ببخشید آقای گوهرشادی فکرکنم منظورتان را متوجه نشدم.
فکر کنم منظورتون این باشه: "اگر b|a0 و c|an اونوقت b/c ریشه گویایی از P(x) هست؟؟!
ولی فکر کنم عکسش درست نیست. (مثلا نمی توان گفت 1و1- ریشه های چندجمله x^2+1 هستند.)
بازهم ببخشید اگه جمله ی شما را درست درک نکردم.
 

SABB

New Member
ارسال ها
704
لایک ها
25
امتیاز
0
#51
[center:b3122a9f9f]
3
[/center:b3122a9f9f]این هم فعلا یه سوال آسون دیگه.
به عددی که برابر با مجموع مکعب ارقامش باشد آرمسترانگ می گوییم. مثلا 371 آرمسترانگ است.
برنامه ای بنویسید که n را از ورودی گرفته و نخستین n عدد آرمسترانگ را در خروجی چاپ کند.
 

Goharshady

New Member
ارسال ها
2,239
لایک ها
166
امتیاز
0
#52
SABB گفت
[center:5b8209862e]2[/center:5b8209862e]این هم کد من که البته اینم باگ داره! ولی فکر کنم بدونم باگش کجاست
مثلا وقتی من یه متغیر double تعریف می کنم و مقدارش می شه 3/2 بعد چاپش می کنم مینویسه 1 !! فکر کنم تو این برنامه هم همینجوریه.
کد
[I][B][B][I]#include<iostream.h>
#include<conio.h>
main()
{
   clrscr();
   int i,l,j,k,n,a[100],an,a0,b=0,c=0,b1[100],c1[100],r=0;
   double root,s;
   cout<<"enter n:";
   cin>>n;
   for(i=n;i>=0;i--)
   {
	 cout<<"enter a["<<i<<"]:";
	 cin>>a[I];
   }
   a0=abs(a[0]);
   an=abs(a[n]);
   for(i=1;i<=a0;i++)
	 if(a0%i==0)
	 {
	b1[B]=i;
	b1[b+1]=-i;
	b+=2;
	 }
   for(i=1;i<=an;i++)
	 if(an%i==0)
	 {
	c1[c]=i;
	c1[c+1]=-i;
	c+=2;
	 }
   for(i=0;i<b;i++)
	 for(j=0;j<c;j++)
	 {
	s=0;
	root=b1[I]/c1[j];
	for(k=0;k<=n;k++)
	{
	   for(l=0;l<k;l++)
		 s*=root;
	   s*=a[k];
	}
	if(s==0)
	{
	   cout<<root<<endl;
	   r++;
	}
	 }
   if(r==0)
	 cout<<"This polynomial has no rational root!";
   getch();
}
[/I][/B][/I][/I][/B]


باگش موقع تقسیم است
به جای
[/B][/I]
کد
x/y
باید بنویسید
کد
(double)x/y
 

Olympiad

New Member
ارسال ها
1,268
لایک ها
134
امتیاز
0
#53
ببخشيد منظورتون از باگ اينه كه مثلا وقتي ران ميكني برنامه رو و ورودي رو ميدي در بعضي شرايط خروجي رو اشتباه ميده ؟؟؟
 

Goharshady

New Member
ارسال ها
2,239
لایک ها
166
امتیاز
0
#54
یه جورایی
باگ به فارسی کژکاری ترجمه شده است!!!
یعنی یه جایی از برنامه ایراد داره که گاهی اوقات Error میده یا خروجی اشتباه می ده
 

iiiiiiiiii

New Member
ارسال ها
1
لایک ها
0
امتیاز
0
#55
چرا کداتونو تو dev c++ نمینویسید؟!اونجا فضاش بهتره!
 

Goharshady

New Member
ارسال ها
2,239
لایک ها
166
امتیاز
0
#56
iiiiiiiiii گفت
چرا کداتونو تو dev c++ نمینویسید؟!اونجا فضاش بهتره!
چون مرحله ی سوم بر اساس ++ Borland turbo C است.
 

SABB

New Member
ارسال ها
704
لایک ها
25
امتیاز
0
#57
SABB گفت
Goharshady گفت
SABB گفت
راهنمایی. اگه ریشه این چندجمله ای کسر ساده نشدنی b/c باشه اونوقت:
عکسش هم برقراره
ببخشید آقای گوهرشادی فکرکنم منظورتان را متوجه نشدم.
فکر کنم منظورتون این باشه: "اگر b|a0 و c|an اونوقت b/c ریشه گویایی از P(x) هست؟؟!
ولی فکر کنم عکسش درست نیست. (مثلا نمی توان گفت 1و1- ریشه های چندجمله x^2+1 هستند.)
بازهم ببخشید اگه جمله ی شما را درست درک نکردم.
ببخشید آقای گوهرشادی، بالاخره عکسش درسته یا نه؟؟ من نتونستم ثابت کنم عکسش درسته.
 

Goharshady

New Member
ارسال ها
2,239
لایک ها
166
امتیاز
0
#58
عکسش هم درسته.
 

SABB

New Member
ارسال ها
704
لایک ها
25
امتیاز
0
#59
میشه توضیح بدید؟؟ من که هنوز هم نفهمیدم!
منظور شما اینه:
"
اگر b|a0 و c|an اونوقت b/c ریشه گویایی از (P(x است. "
یا نه؟؟
 

Goharshady

New Member
ارسال ها
2,239
لایک ها
166
امتیاز
0
#60
SABB گفت
[center:c23083525c]
3[/center:c23083525c]این هم فعلا یه سوال آسون دیگه.
به عددی که برابر با مجموع مکعب ارقامش باشد آرمسترانگ می گوییم. مثلا 371 آرمسترانگ است.
برنامه ای بنویسید که n را از ورودی گرفته و نخستین n عدد آرمسترانگ را در خروجی چاپ کند.
این هم برنامه ی من ، البته بهتره بهش بیشتر از 6 ندهید چون خیلی طول می کشه و آخرش هم Error می ده! (طبیعیه چون unsigned long int هم نمی تونه خیلی بزرگ بشه)
کد
 #include <stdio.h>
#include <conio.h>
#include <iostream.h>
int armstrong(long unsigned int number)//checks if a number is armstrong
{
const int digit = 10;
register long unsigned  int sum=0;
register long unsigned int copy = number;
while(copy!=0)
{
sum += (copy%digit)*(copy%digit)*(copy%digit);
copy = copy/10;
}
if(sum==number)
{
return 1;
}
else
{
return 0;
}
}//end of armstrong
int main()//main function
{
clrscr(); // clears the screen
printf("I'm going to find first n Armstrong numbers. Please enter n:");
register int n;
scanf("%d",&n);
int i =0;
register long unsigned int j=-1;  // i is number of printed armstrong numbers,j is number to be checked
while(i<n)
{
j++;
if(armstrong(j))
{
i++;
cout<<j<<" is Armstrong"<<endl;
}
}
getch();
return 1389;
}//end of main
 
بالا