نمونه سوال 1
نمونه سوال از مبحث شرط و گرافیک می باشد.
سوال 1- برنامه ای بنویسید که نمرات یک دانش آموز سال اول دبیرستان را بگیرد و معدل آن را حساب کند و بگوید که آیا مشروط شده است یا خیر . برای نوشتن این برنامه باید توجه داشته باشید که برنامه نام درس را چاپ می کند تا دانش آموز نمره ی خود را وارد کرده و همچنین واحد درس مورد نظر را نیز وارد کند.
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();
}
سول 2- برنامه ای بنویسید که مراکز و شعاع های دو دایره را بگیرد و وضعیت این دو دایره را نسبت به هم بیان کند. سپس آنها را رسم نماید.
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();
}
سوال 3- برنامه ای بنویسید که ابتدا موجودی یک حساب را بگیرد سپس مقدار درخواست شده برای برداشت از آن را نیز بگیرد و بیان کند که آیا این برداشت ممکن است یا نه و در صورت امکان برداشت، باقی موجودی حساب را نیز چاپ کند.
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();
}
سوال 4- برنامه ای بنویسید که دو عدد را از ورودی بگیرد و بدون استفاده از % یا مد گرفتن بگوید که آیا دو عدد بر هم بخش پذیر هستند یا نه.
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();
}
سوال 5- برنامه ای بنویسید که یک عدد با طول 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();
}
سوال 6- برنامه ای بنویسید که 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();
}
سوال 7- برنامه ی روبه رو چه کاری انجام میدهد؟ خروجی نمونه برای آن بکشید
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();
}
اگر عدد وارد شده به سه بخش پذیر باشد دایره می کشد و در غیر آن صورت مربع رسم می کند.
سوال 8- برنامه ای بنویسید که یک کاراکتر از ورودی دریافت کند و اگر حرف 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();
}
سوال 9- برنامه ای بنویسید که از کاربر سوال کند که دایره بکشد یا مستطیل و در صورت انتخاب هر کدام از این دو شکل، اندازه ها و اعداد لازم را از کاربر پرسیده و در انتها شکل مورد نظر کاربر را رسم کند.
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();
}
سوال 10 - فرض کنید در شهر تهران کرایه ی تاکسی به صورت زیر محاسبه می شود:
حال برنامه ای بنویسید که کیلومتر طی شده توسط تاکسی را از ورودی گرفته و مبلغ کرایه را با استفاده از جدول بالا محاسبه و اعلام کند.
برای مثال اگر کیلومتر گرفته شده از ورودی 12 کیلومتر باشد مبلغ کرایه به صورت زیر محاسبه میشود:
300کرایه تا پنج کیلومتر + 5*50 کرایه ی از 5 تا 10 کیلومتر + 2*35 کرایه از 10 تا 12 کیلومتر = مبلغ کرایه
main()
{
float k, c;
cout << "Kilometers? ... " << endl;
cin >> k;
if(k <= 5)
c = 300;
else if(k > 5 && k <= 10)
c = 300 + (k - 5) * 50;
else if(k > 10 && k <= 20)
c = 300 + 5 * 50 + (k - 10) * 35;
else if(k > 20 && k <= 30)
c = 300 + 5 * 50 + 10 * 35 + (k - 20) * 25;
else
c = 300 + 5 * 50 + 10 * 35 + 10 * 25 + (k - 30) * 15;
cout << "It costs " << c << " Rials \n";
getch();
}
سهراب نیا