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(); }
من عمودمنصفو بلد نیستم=(