Goharshady

New Member
ارسال ها
2,239
لایک ها
166
امتیاز
0
Olympiad گفت
mohammad_72 گفت
تو کد اول وقتی اینو می‌نویسید :
t=1/((x*x)+x+3);
میاد می‌بینه x از نوعه int هست یعنی مخرج صحیحه
صورت هم که صحیحه ( 1 از نوع int محسوب میشه)
پس وقتی تقسیم می‌کنه جزء صحیحشو بهتون تحویل میده.
اگه اینجوری بنویسین درست می‌گیره :
t=1.0f/((x*x)+x+3);
یا اینجوری :
t=(float)1/((x*x)+x+3);
ممنون .... ولي اگه بخوام float، x باشه ؟؟؟؟؟؟؟؟؟؟بايد چيكار كنم؟!!؟!؟!؟
وقتي مي نويسم :
کد
float x,t;
دوباره چرت و پرت مي نوسه .... براي اين مورد چيكار كنم!؟

چرا double نمی نویسید؟ شاید overflow دارید.
 

Goharshady

New Member
ارسال ها
2,239
لایک ها
166
امتیاز
0
[center:38facb8bdb]6[/center:38facb8bdb]خواهش می کنم راه حل منو با دقت بخونید. ایده ی بازگشتی خیلی مهمی داره. برای توضیح بیشتر به طراحی الگوریتم با رویکردی خلاقانه مراجعه نمایید.
 

Olympiad

New Member
ارسال ها
1,268
لایک ها
134
امتیاز
0
Goharshady گفت
Olympiad گفت
mohammad_72 گفت
تو کد اول وقتی اینو می‌نویسید :
t=1/((x*x)+x+3);
میاد می‌بینه x از نوعه int هست یعنی مخرج صحیحه
صورت هم که صحیحه ( 1 از نوع int محسوب میشه)
پس وقتی تقسیم می‌کنه جزء صحیحشو بهتون تحویل میده.
اگه اینجوری بنویسین درست می‌گیره :
t=1.0f/((x*x)+x+3);
یا اینجوری :
t=(float)1/((x*x)+x+3);
ممنون .... ولي اگه بخوام float، x باشه ؟؟؟؟؟؟؟؟؟؟بايد چيكار كنم؟!!؟!؟!؟
وقتي مي نويسم :
کد
float x,t;
دوباره چرت و پرت مي نوسه .... براي اين مورد چيكار كنم!؟

چرا double نمی نویسید؟ شاید overflow دارید.
هيچ فرقي نكرد..............
 

erfankh

New Member
ارسال ها
202
لایک ها
89
امتیاز
0
7
کد
#include<iostream.h>
#include<conio.h>
int b[20][20],m,n;
void f(int i,int j)
{
	if(b[i-1][j]!=-1 && b[i][j]+1<b[i-1][j] && i-1>-1)
	{
				   b[i-1][j]=b[i][j]+1;
				   f(i-1,j);
	}
	if(b[i+1][j]!=-1 && b[i][j]+1<b[i+1][j] && i+1<=m)
	{
				   b[i+1][j]=b[i][j]+1;
				   f(i+1,j);
	}if(b[i][j+1]!=-1 && b[i][j]+1<b[i][j+1] && j+1<=n)
	{
				   b[i][j+1]=b[i][j]+1;
				   f(i,j+1);
	}if(b[i][j-1]!=-1 && b[i][j]+1<b[i][j-1] && j-1>-1)
	{
				   b[i][j-1]=b[i][j]+1;
				   f(i,j-1);
	}
}
int main()
{
    char a[20][20];
    int si,sj;
    cin>>m>>n;
    for(int i=0;i<m;i++)
		  cin>>a[i];
    for(int i=0;i<m;i++)
    {
		  for(int j=0;j<n;j++)
		  {
				if(a[i][j]=='S')
				{
					 si=i;
					 sj=j;
					 break;
				}
		  }
    }
    for(int i=0;i<m;i++)
    {
		  for(int j=0;j<n;j++)
		  {
				if(a[i][j]=='X')
							 b[i][j]=-1;
				if(a[i][j]=='0' || a[i][j]=='G')
							 b[i][j]=1000;
		  }
    }
    b[si][sj]=0;
    f(si,sj);
    for(int i=0;i<m;i++)
    {
		  for(int j=0;j<n;j++)
		  {
				if(a[i][j]=='G')
				{
							 cout<<b[i][j];
							 getch();
							 return 0;
				}
		  }
    }
}
 

Goharshady

New Member
ارسال ها
2,239
لایک ها
166
امتیاز
0
erfankh گفت
7
کد
#include<iostream.h>
#include<conio.h>
int b[20][20],m,n;
void f(int i,int j)
{
	if(b[i-1][j]!=-1 && b[I][j]+1<b[i-1][j] && i-1>-1)
	{
				   b[i-1][j]=b[I][j]+1;
				   f(i-1,j);
	}
	if(b[i+1][j]!=-1 && b[I][j]+1<b[i+1][j] && i+1<=m)
	{
				   b[i+1][j]=b[I][j]+1;
				   f(i+1,j);
	}if(b[I][j+1]!=-1 && b[I][j]+1<b[I][j+1] && j+1<=n)
	{
				   b[I][j+1]=b[I][j]+1;
				   f(i,j+1);
	}if(b[I][j-1]!=-1 && b[I][j]+1<b[I][j-1] && j-1>-1)
	{
				   b[I][j-1]=b[I][j]+1;
				   f(i,j-1);
	}
}
int main()
{
    char a[20][20];
    int si,sj;
    cin>>m>>n;
    for(int i=0;i<m;i++)
		  cin>>a[I];
    for(int i=0;i<m;i++)
    {
		  for(int j=0;j<n;j++)
		  {
				if(a[I][j]=='S')
				{
					 si=i;
					 sj=j;
					 break;
				}
		  }
    }
    for(int i=0;i<m;i++)
    {
		  for(int j=0;j<n;j++)
		  {
				if(a[I][j]=='X')
							 b[I][j]=-1;
				if(a[I][j]=='0' || a[I][j]=='G')
							 b[j]=1000;
		  }
    }
    b[si][sj]=0;
    f(si,sj);
    for(int i=0;i<m;i++)
    {
		  for(int j=0;j<n;j++)
		  {
				if(a[j]=='G')
				{
							 cout<<b[j];
							 getch();
							 return 0;
				}
		  }
    }
}
[/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I][/I]
تو صورت سوال گفته از فایل بخونیم. اگه می شه نسخه ی فایلی این برنامه رو بذارید که بتونم با automatic judge تستش کنم. متشکرم
 

Goharshady

New Member
ارسال ها
2,239
لایک ها
166
امتیاز
0
یه پیشنهاد: (بازهم رای گیری می کنیم)
از این به بعد الگوریتم برنامه هامون رو هم همینجا تو ماراتن برنامه نویسی بذاریم.
موافقان و مخالفان اعلام کنند.
ضمنا من هنوز رای نداده ام
 

Goharshady

New Member
ارسال ها
2,239
لایک ها
166
امتیاز
0
[center:e498bed60e]7[/center:e498bed60e]کامپایلر من اون قسمتی که نوشتی b[j]=1000 رو Error میده
incompatible type assignments
ISO C++ forbids comparison between pointer and integer
 

Goharshady

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

Goharshady

New Member
ارسال ها
2,239
لایک ها
166
امتیاز
0
[center:80675dbfaf]
[/center:80675dbfaf][center:80675dbfaf]این هم سوال هشتم:[/center:80675dbfaf][center:80675dbfaf]http://informatics.iranblog.com/?mode=DirectLink&id=714538[/center:80675dbfaf][center:80675dbfaf]لطفا ادامه ی مطلب را نخوانید!![/center:80675dbfaf][center:80675dbfaf]فکر کنم بهتر بود کلا وبلاگ آقای بیباک رو اینجا کپی می کردم
[/center:80675dbfaf]
 

erfankh

New Member
ارسال ها
202
لایک ها
89
امتیاز
0
کامپایلر من اون قسمتی که نوشتی b[j]=1000 رو Error میده
incompatible type assignments
ببخشید اون باید
کد
b[i][j]=1000
باشد
من موافقم
 

Goharshady

New Member
ارسال ها
2,239
لایک ها
166
امتیاز
0
Olympiad گفت
Goharshady گفت
[center:3696b4c532]7[/center:3696b4c532]
جواب من:
[center:3696b4c532]http://www.Goharshady.iranblog.com/?mode=ContinuedPost&id=721607[/center:3696b4c532][center:3696b4c532]http://snipt.net/Goharshady/maze
[/center:3696b4c532]
لطفا يه توضيح راجع به دستورها ي شامل fstream بديد!!!
fstream برای کار با فایل به کار می رود. برای نوشتن در فایل باید یک ofstream بسازید (مانند برنامه ی من) و برای خواندن از فایل باید یک ifstream بسازید. بعد می توانید از ofstream و ifstream خود مانند cout و cin استفاده کنید. هیچ نکته ی سختی هم ندارد. به همین سادگی
 

Goharshady

New Member
ارسال ها
2,239
لایک ها
166
امتیاز
0
erfankh گفت
کامپایلر من اون قسمتی که نوشتی b[j]=1000 رو Error میده
incompatible type assignments
ببخشید اون باید
کد
b[I][j]=1000
باشد
من موافقم
[/I]
حالا درست شد.
فقط لطفا با فایل تنظیمش کنید و کدتون رو تو snipt یا codeupload بذارین تا راحتتر دسترسی داشته باشیم.
 

SABB

New Member
ارسال ها
704
لایک ها
25
امتیاز
0
Goharshady گفت
یه پیشنهاد: (بازهم رای گیری می کنیم)
از این به بعد الگوریتم برنامه هامون رو هم همینجا تو ماراتن برنامه نویسی بذاریم.
موافقان و مخالفان اعلام کنند.
ضمنا من هنوز رای نداده ام
موافقم
 

Goharshady

New Member
ارسال ها
2,239
لایک ها
166
امتیاز
0
من هم همینجوری برای خنده اش مخالفم!
تصویب شد.
از این به بعد باید الگوریتم هم بنویسیم.
ماراتن محاسبات عددی را ببینید.
 

rezashiri

Well-Known Member
ارسال ها
1,458
لایک ها
325
امتیاز
83
[center:3beb7d454d]


الگوریتم و برنامه ای بنویسید که عددی را گرفته و کوچکترین رقم آن را معرفی کند.(ببخشید دیگه سوال آسون می ذارم؟!)​
[/center:3beb7d454d]
 

SABB

New Member
ارسال ها
704
لایک ها
25
امتیاز
0
[center:a0ef262b6c]

کد
#include<iostream.h>
#include<conio.h>
int main()
{
    int n,m,min=10;
    cout<<"Enter the number:";
    cin>>n;
    if(n==0)
	  min=0;
    while(n>0)
    {
		    m=n%10;
		    if(m<min)
			  min=m;
		    n/=10;
    }
    cout<<min;
    getch();
}
[/center:a0ef262b6c]​
 

rezashiri

Well-Known Member
ارسال ها
1,458
لایک ها
325
امتیاز
83
[center:8316ad76b5]
[/center:8316ad76b5]
تابعي بنويسيد كه يك رشته را به عنوان آرگومان ورودي گرفته و كلمات آنرا برعكس كند. رشتة ورودي شامل كلمات با معني يابدون معني انگليسي است كه با يك فاصله

خالي از هم تفكيك شده اند. به مثال زير دقت كنيد:

Sample Input : Bees and Birds Fly all Day

Sample Output: Day all Fly Birds and Bees

[center:8316ad76b5](سوال دانشگاه صنعتی همدان سال 87 ترم دوم)[/center:8316ad76b5]
 
بالا