PDA

View Full Version : سوال: سوالی درمورد کاملتر کردن یک برنامه



sina74
یک شنبه 08 دی 1392, 18:08 عصر
سلام
من یه برنامه ساده نوشتم از این قرار که با استفاده از رابطه فیثاغورس بنا به درخواست کاربر یکی از ضلع ها a یا b یا c را بدست میاره.در ضمن ضلع a وتر گرفته شده یعنی :
a^2=b^2+c^2
این کد برناممه :

#include <iostream>
#include <conio.h>
#include <math.h>
using namespace std;

int main()
{
int a,b,c,v;
char x;
cout<<"You want a or b or c ? (a is vatar) \n";
cin>>x;
switch(x)
{
case 'a' :
cout<<"please enter b : \n";
cin>>b;
cout<<"please enter c : \n";
cin>>c;
cout<<"a = "<<sqrt(pow(b,2)+pow(c,2));
break;
case 'b' :
cout<<"please enter a : \n";
cin>>a;
cout<<"please enter c : \n";
cin>>c;
cout<<"b = "<<sqrt(pow(a,2)-pow(c,2));
break;
case 'c' :
cout<<"please enter a : \n";
cin>>a;
cout<<"please enter b : \n";
cin>>b;
cout<<"c = "<<sqrt(pow(a,2)-pow(b,2));
break;
default:
cout<<"You can just enter one of this character : a or b or c";
break;
}
getch();
return 0;
}

من می خوام کاری کنم که وقتی پیغام You can just enter one of this character : a or b or c که تو بخش دیفالت به خروجی برده میشه ، پس از خوندن اون توسط کاربر ، دوباره برنامه برگرده به قسمتی که این دستور به خروجی برده میشه :
You want a or b or c ? a is vatar
وبعدش دوباره مراحل بعدی رو طی کنه.
چطوری میتونم این کارو انجام بدم ؟؟ با چه دستوری ؟!!

Azar.099
یک شنبه 08 دی 1392, 18:44 عصر
#include <iostream>
#include <math.h>
using namespace std;

int main()
{
int a,b,c,v;
char x;
while(1)
{
cout<<"You want a or b or c ? (a is vatar) \n";
cin>>x;
if(x =='a')
{
cout<<"please enter b : \n";
cin>>b;
cout<<"please enter c : \n";
cin>>c;
cout<<"a = "<<sqrt(pow(b,2)+pow(c,2));
break;
}
if(x=='b')
{
cout<<"please enter a : \n";
cin>>a;
cout<<"please enter c : \n";
cin>>c;
cout<<"b = "<<sqrt(pow(a,2)-pow(c,2));
break;
}
if(x=='c')
{
cout<<"please enter a : \n";
cin>>a;
cout<<"please enter b : \n";
cin>>b;
cout<<"c = "<<sqrt(pow(a,2)-pow(b,2));
break;
}
else
{
cout<<"You can just enter one of this character : a or b or c";
continue;
}

}
return 0;
}

sina74
یک شنبه 08 دی 1392, 21:59 عصر
مرسی اقای Azar کدتون درست کار کرد و همون چیزی بود که می خواستم.
میشه یه کمی در مورد ساختار سورستون توضیح بدین ؟ مثلا اون عدد 1 که جلوی while گذاشتین چه معنایی میده ؟ به فارسی یعنی چی ؟ و اینکه اون عبارت continue رو باید دقیقا کجا بکار برد و جه جاهایی میشه ازش استفاده کرد ؟
پیشاپیش ممنون

Azar.099
یک شنبه 08 دی 1392, 22:10 عصر
سلام
اول اینکه دوست عزیز من اقا نیستم خانومم :)
خواهش میکنم
اون یکی که جلوی while نوشتم باعث میشه حلقه (بی نهایت) همیشه درست باشه ...
یعنی هیچ شرطی نداره تا اینکه توی خودش یک جایی تموم بشه
ببینین همونجوری که از break استفاده میکنیم که از توی یک حلقه خارج بشیم از continue استفاده میکنیم تا دوباره از همونجا حلقه متوفق بشه و به اول حلقه برمیگردیم
موفق باشید

sina74
یک شنبه 08 دی 1392, 22:38 عصر
اخ شرمنده.عجب اشتباهی کردم.:لبخندساده:
ببخشید آذر خانم ، واسه استفاده از دستور continue حتما باید ساختار برنامه از حالت سوییچ خارج می‌شد ؟ نمیشه این ساختارو حفظ کرد ؟
بعدش سوال دومم اینه که اگه بخوام مثلا بعد از اتمام کار برنامه ، برنامه بسته نشه و دوباره برگرده به حالت اولیه یعنی از اول شروع به کار کنه باید چیکار کنم ؟ بازم از همین ساختار while - continue استفاده کنم ؟ یا دستورات ساده تر و کاربردی تری هست واسه انجام اینکار ؟