3- سوالات تکمیلی IF
در این قسمت می توانید سوالات تکمیلی تکنیک شرط را به همراه جواب مشاهده فرمائید.
سوال 1- برنامه ای بنویسید که یک عدد را از ورودی بگیرد و زوج یا فرد بودن آن را اعلام کند:
main()
{
cout << "please enter a number" << endl;
int num;
cin >> num;
if(num % 2 == 0)
cout << "Even";
else
cout << "Odd";
getch();
}
سوال 2- برنامه ای بنویسید که یک عدد را از ورودی بگیرد و مثبت یا منفی بودن آن را اعلام کند:
main()
{
cout << "please enter a number" << endl;
int num;
cin >> num;
if(num > 0)
cout << "Positive";
else if( num == 0)
cout << "Zero";
else
cout << "Negative";
getch();
}
سوال 3- برنامه ای بنویسید که دو عدد را از کاربر بگیرد و عدد بزرگتر را اعلام کند:
main()
{
cout << "please enter two number" << endl;
int a, b;
cin >> a >> b;
if(a == b)
cout << "equals";
else if( a > b)
cout << "first number";
else
cout << "second number";
getch();
}
سوال 4- برنامه ای بنویسید که سه عدد را از کاربر بگیرد و عدد بزرگتر را اعلام کند:
main()
{
cout << "please enter three number" << endl;
int a, b, c;
cin >> a >> b >>c;
int max = a;
if(a == b && a == c)
cout << "equals";
else if( b > max)
max = b;
if(c > max)
max = c;
cout << max;
getch();
}
سوال 5- برنامه ای بنویسید که سه عدد را از کاربر بگیرد و بگوید که آیا این سه عدد می توانند طول اضلاع یک مثلث باشند یا خیر؟
main()
{
cout << "please enter three number" << endl;
int a, b, c;
cin >> a >> b >>c;
if(a + b > c && a + c > b && b + c > a)
cout << "Yes ";
else
cout << "NO";
getch();
}
سوال 6- برنامه ای بنویسید که مختصات دو نقطه از دو خط متمایز را بگیرد و وضعیت این دو خط نسبت به هم را اعلام کند:
main()
{
cout << "please enter coordinates of first line" << endl;
int x1, y1, x2, y2;
cin >> x1 >> y1 >> x2 >> y2;
cout << "please enter coordinates of second line" << endl;
int x3, y3, x4, y4;
cin >> x3 >> y3 >> x4 >> y4;
double a1 = (y4 - y3) / (x4 - x3);
double a2 = (y2 - y1) / (x2 - x1);
if(a1 == a2)
cout << "Movazi ";
else if(a1 * a2 == -1)
cout << "amood";
else
cout << "moteghate";
getch();
}
سوال 7- برنامه ای بنویسید که دو عدد و یک کاراکتر را از کاربر گرفته و اگر کاراکتر علامت + بود حاصلجمع دو عدد و اگر - بود تفریق دو عدد و اگر * بود حاصلضرب دو عدد و اگر / بود حاصل تقسیم غیر صفر دو عدد را اعلام کند:
main()
{
cout << "please enter one number, one character [+ - * /] and one another number\n";
double a, b;
char c;
cin >> a >> c >> b;
if(c == '+')
cout << a + b;
else if(c == '-')
cout << a - b;
else if(c == '*')
cout << a * b;
else if(c == '/' && b != 0)
cout << a / b;
else
cout << "Error";
getch();
}
سوال 8- فرض کنید فرودگاهی دارای سه باند Aو Bو C باشد. اگر نوع پرواز خارجی باشد از باند A و اگر داخلی باشد و سرعت کمتر از 200 کیلومتر داشته باشد از باند B و در غیر آن صورت از باند A استفاده می شود. باند C در مواردی که پرواز دارای عیب فنی می باشد استفاده می شود. برنامه ای بنویسید که با دریافت اطلاعات مورد نیاز، باند مناسب را به برج مراقبت اعلام کند.
main()
{
cout << "please enter S for safe and u for unsafe\n";
char c;
cin >> c;
if(c == 'u' || c == 'U')
cout << "Landing in C";
else if(c == 's' || c == 'S')
{
cout << "please enter N for national and I for international\n";
char r;
cin >> r;
if(r == 'I' || r == 'i')
cout << "Landing in A";
else if(r == 'N' || r == 'n')
{
cout << "please enter landing speed\n";
int v;
cin >> v;
if(v<200)
cout << "Landing in B";
else
cout << "Landing in A";
}
else
cout << "Error";
}
else
cout << "Error";
getch();
}
سوال 9- برنامه ای بنویسید که a و b را از کاربر بگیرد و مقدار C را محاسبه و در خروجی اعلام کند.
main()
{
cout << "please enter two numbers ... \n";
double a, b, c;
cin >> a >> b;
if(a > 0 && b >=0)
{
c = (a + sqrt(b)) / (a * b - 3);
cout << c;
}
else if(a < 0 && b < 0)
{
c = sqrt (a * b);
cout << c;
}
else if(a == 0 && b == 0)
{
c = 2;
cout << c;
}
else
cout << "Error";
getch();
}
سوال 10- برنامه ای بنویسید که نمرات یک دانش آموز سال اول دبیرستان را بگیرد و معدل آن را حساب کند و بگوید که آیا مشروط شده است یا خیر . برای نوشتن این برنامه باید توجه داشته باشید که برنامه نام درس را چاپ می کند تا دانش آموز نمره ی خود را وارد کرده و همچنین واحد درس مورد نظر را نیز وارد کند.
main()
{
cout << "lotfan nomre khod va vahede dars ra pas az har dars vared konid."<<endl;
float r, f, sh, zi, cmp, vr, vf, vsh, vzi, vcmp;
cout << "riazi? vahed? " << endl;
cin >> r >> vr;
cout << "fizik? vahed? " << endl;
cin >> f >> vf;
cout << "shimi? vahed? " << endl;
cin >> sh >> vsh;
cout << "zist? vahed? " << endl;
cin >> zi >> vzi;
cout << "computer? vahed? " << endl;
cin >> cmp >> vcmp;
float avr = (r * vr + f * vf + zi * vzi + sh * vsh + cmp * vcmp ) /
(vr + vf + vzi + vsh + vcmp);
cout << "\n\n\n" << "moadele shoma barabar ast ba: " << avr << endl;
if(avr < 12)
cout << "motaasefane shoma mashrut shodeid! :( " << endl;
getch();
}
سول 11- برنامه ای بنویسید که مراکز و شعاع های دو دایره را بگیرد و وضعیت این دو دایره را نسبت به هم بیان کند. سپس آنها را رسم نماید.
main()
{
cout << "please enter (x,y) and R of circle 1:" << endl;
int x1, y1, r1;
cin >> x1 >> y1 >> r1;
cout << "please enter (x,y) and R of circle 2:" << endl;
int x2, y2, r2;
cin >> x2 >> y2 >> r2;
float d = sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));
if(r1 +r2 <= d)
{
cout << " kharej az ham" << endl;
}
else if( r1 + r2 == d)
{
cout << "momas!" << endl;
}
else
cout << "motaghate" << endl;
//drawing circles ...
initwindow(800, 800);
setcolor(14);
circle(x1, y1, r1);
setcolor(3);
circle(x2, y2, r2);
getch();
}
سوال12- برنامه ای بنویسید که ابتدا موجودی یک حساب را بگیرد سپس مقدار درخواست شده برای برداشت از آن را نیز بگیرد و بیان کند که آیا این برداشت ممکن است یا نه و در صورت امکان برداشت، باقی موجودی حساب را نیز چاپ کند.
main()
{
cout << "mojudie hesabe shoma?" << endl;
float a;
cin >> a;
cout << "lotfan mablaghe darkhasti ra vared konid: " << endl;
float b;
cin >> b;
if( a-b >= 0)
{
cout << " shoma mitavanid az hesabe khod bardasht konid:" << endl;
cout << " baghi mandeye hesabe shoma: "<<a-b<<endl;
}
else
cout << "mablageh vared shoma dar hesabe shoma mojud nemibashad!";
getch();
}
سوال13- برنامه ای بنویسید که دو عدد را از ورودی بگیرد و بدون استفاده از % یا مد گرفتن بگوید که آیا دو عدد بر هم بخش پذیر هستند یا نه.
main()
{
cout << "2 adad vared konid: " << endl;
int num1, num2;
cin >> num1 >> num2;
int d, r;
d = num1 / num2;
r = num1 - num2 * d;
if(r == 0)
{
cout << "bakhshpazir" << endl;
}
else
cout << " bakhsh pazir nistand " << endl;
getch();
}
سوال 14- برنامه ای بنویسید که یک عدد با طول 5 رقم را از ورودی گرفته و مغلوب آن را چاپ کند و بررسی کند که آیا عدد آینه ای است یا نه.
مثلا عدد 12321 آینه ای است اما 12343 آینه ای نیست.
main()
{
cout << "Please enter a number in 5 digits: " << endl;
int num, num1;
cin >> num;
num1 = num;
int rev = 0;
rev = rev * 10 + (num % 10);
num = num / 10;
rev = rev * 10 + (num % 10);
num = num / 10;;
rev = rev * 10 + (num % 10);
num = num / 10;
rev = rev * 10 + (num % 10);
num = num / 10;
rev = rev * 10 + (num % 10);
num = num / 10;
cout << "your reversed number is: " << rev << endl;
if(num1 == rev)
cout << "your number is mirror number." << endl;
else
cout << "your number is NOT mirror number." << endl;
getch();
}
سوال 15- برنامه ای بنویسید که 5 عدد را از ورودی گرفته و در انتها بزرگترین عدد و همین طور کوچکترین عدد وارد شده را نمایش دهد.
main()
{
int min, max;
cout << "Please enter first number " << endl;
int a;
cin >> a;
min = a;
max = a;
cout << "Please enter second number " << endl;
cin >> a;
if(a > max)
max = a;
if(a < min)
min = a;
cout << "Please enter third number " << endl;
cin >> a;
if(a > max)
max = a;
if(a < min)
min = a;
cout << "Please enter fourth number " << endl;
cin >> a;
if(a > max)
max = a;
if(a < min)
min = a;
cout << "Please enter fifth number " << endl;
cin >> a;
if(a > max)
max = a;
if(a < min)
min = a;
cout << "the Maximun number is: " << max << endl;
cout << "the Minimum number is: " << min << endl;
getch();
}
سوال 16- برنامه ی روبه رو چه کاری انجام میدهد؟ خروجی نمونه برای آن بکشید
main()
{
cout << "please enter one number: " << endl;
int num;
cin >> num;
initwindow(800, 800);
if(num % 3 == 0)
{ setcolor(num % 15);
circle(200, 200, 150);
}
else
{
setcolor(num % 15);
rectangle(200, 200, 450, 450);
}
getch();
}
اگر عدد وارد شده به سه بخش پذیر باشد دایره می کشد و در غیر آن صورت مربع رسم می کند.
سوال 17- برنامه ای بنویسید که یک کاراکتر از ورودی دریافت کند و اگر حرف L وارد شده بود شکل سمت چپ و اگر حرف R وارد شده بود شکل سمت راست را رسم کند. و در غیر این صورت اعلام کند که حرف وارد شده نادرست است.
main()
{
cout << "please enter one letter ( L or R ) : " << endl;
char c;
cin >> c;
initwindow(800, 800);
if(c == 'L' || c == 'l')
{
setcolor(14);
rectangle(100, 100, 600, 500);
setcolor(4);
line(100, 100, 600, 500);
line(100, 500, 600, 100);
}
else if(c == 'R' || c == 'r')
{
setcolor(14);
rectangle(100, 100, 600, 600);
setcolor(12);
circle(350, 350, 250);
}
else
cout << "Please enter correct characer next time!" << endl;
getch();
}
سوال18- برنامه ای بنویسید که از کاربر سوال کند که دایره بکشد یا خط و در صورت انتخاب هر کدام از این دو شکل، اندازه ها و اعداد لازم را از کاربر پرسیده و در انتها شکل مورد نظر کاربر را رسم کند.
main()
{
cout << "please choose! B for bar and and E for ellipse" << endl;
char c;
cin >> c;
if(c == 'B' || c == 'b')
{
cout << "Please enter 4 numbers: " << endl;
int a, b, c, d;
cin >>a >>b >>c >> d;
initwindow(800, 800);
setfillstyle(8, 12);
bar(a, b, c, d);
}
else if(c == 'E' || c == 'e')
{
cout << "Please enter 4 numbers: " << endl;
int a, b, c, d;
cin >> a >> b >> c >> d;
initwindow(800, 800);
setfillstyle(8, 10);
fillellipse(a, b, c, d);
}
else
cout << "please enter correct character next time!" << endl;
getch();
}

من عمودمنصفو بلد نیستم=(