2- سوالات تکمیلی گرافیک
در این بخش ادامه ی سوالهای ورودی و خروجی که همراه با گرافیک هستند را حل خواهیم کرد
سوال 1-
برنامه ای بنویسید که شکل دایره های آرم المپیک را با 5 رنگ متفاوت بکشد
#include <conio.h> #include <iostream> #include <graphics.h> using namespace std; main() { initwindow(700, 700); setlinestyle(1, 1, 8); //ba in dastur zekhamate khat ra be 8 taghir midahim setcolor(1); circle(200, 200, 75); setcolor(7); circle(374, 200, 75); setcolor(4); circle(548, 200, 75); setcolor(6); circle(287, 275, 75); setcolor(2); circle(460, 275, 75); getch(); }
سوال2 -
برنامه ای بنویسید که یک خانه بکشد
main() { initwindow(800, 800); setfillstyle(1, 14); bar(200, 200, 600, 600); setlinestyle(1, 1, 6); setcolor(14); line(200, 200, 400, 50); line(400, 50, 600, 200); setfillstyle(7, 5); bar(210, 210, 310, 310); bar(590, 210, 490, 310); setfillstyle(1, 5); bar(320, 360, 480, 600); setcolor(14); setlinestyle(1, 1, 6); line(400, 360, 400, 595); getch(); }
سوال 3- برنامه ای بنویسید که شکل زیر را رسم کند:
main() { int x1, x2, y1, y2; cout << "enter first coordination "; cin >> x1 >> y1; cout << "enter second coordination "; cin >> x2 >> y2; initwindow(800, 800); rectangle(x1, y1, x2, y2); line(x1, y1, x2, y2); line(x1, y2, x2, y1); getch(); }
سوال 4- برنامه ای بنویسید که شکل زیر را رسم کند:
main() { int x, y, r; cout << "enter coordination "; cin >> x >> y; cout << "enter radius "; cin >> r; initwindow(800, 800); setcolor(13); circle(x, y, r); rectangle(x-r, y-r, x+r, y+r); getch(); }
سوال 5- برنامه ای بنویسید که شکل زیر را رسم کند:
main() { int x, y, r1, r2; cout << "enter coordination "; cin >> x >> y; cout << "enter radiuses "; cin >> r1 >> r2; initwindow(800, 800); setfillstyle(10,13); bar(x-r1, y-r2, x+r1, y+r2); setfillstyle(10,14); fillellipse(x, y, r1, r2); getch(); }
سوال 6- برنامه ای بنویسید که شکل زیر را رسم کند:
main() { int x1, y1, x2, y2; cout << "enter first coordination "; cin >> x1 >> y1; cout << "enter second coordination "; cin >> x2 >> y2; int a = (x1 + x2)/2; initwindow(800, 800); setfillstyle(1,14); bar(x1, y1, x2, y2); setcolor(13); line(x1, y1, a, y2); line(a, y2, x2, y1); line(x1, y2, a, y1); line(a, y1, x2, y2); getch(); }
سوال 7- برنامه ای بنویسید که شکل زیر را رسم کند:
main() { int x, y; cin >> x >> y; initwindow(800, 800); setfillstyle(1,12); fillellipse(x, y, 300, 200); setfillstyle(1,13); fillellipse(x, y, 100, 200); setfillstyle(1,14); fillellipse(x, y, 100, 100); getch(); }
سوال 8-
برنامه ای بنویسید که مختصات سه راس یک مثلث را بگیرد و خود مثلث و میانه های آن را رسم کند
جواب سوال 8:
main() { cout << "Please enter 6 numbers: " << endl; int x1, x2, x3, y1, y2, y3; cin >> x1 >> y1 >> x2 >> y2 >> x3 >> y3; initwindow(800, 800); setlinestyle(1, 1, 2); setcolor(14); line(x1, y1, x2, y2); line(x2, y2, x3, y3); line(x3, y3, x1, y1); setlinestyle(1, 1, 1); setcolor(4); line(x1, y1, (x2 + x3)/2, (y2 + y3)/2); line(x2, y2, (x1 + x3)/2, (y1 + y3)/2); line(x3, y3, (x1 + x2)/2, (y1 + y2)/2); getch(); }
سوال 9
برنامه ای بنویسید که مختصات مرکز یک دایره را بگیرد و 5 دایره ی تودرتو بکشد و شعاع اولی 10 باشد و شعاع دایره های بعدی هرکدام 50 واحد از قبلی بزرگتر باشد
main() { cout << "Please enter x and y of the first circle: " << endl; int x, y; cin >> x >> y; initwindow(800, 800); setlinestyle(1, 1, 5); setcolor(1); circle(x, y, 10); setcolor(2); circle(x, y, 10+50); setcolor(3); circle(x, y, 110); setcolor(4); circle(x, y, 160); setcolor(5); circle(x, y, 210); getch(); }
سوال 10-
برنامه ای بنویسید که شکل پرچم ایران را بکشد
main() { initwindow(800, 800); setfillstyle(1, GREEN);//sabz bar(10, 10, 410, 110); setfillstyle(1, WHITE);//sefid bar(10, 110, 410, 210); setfillstyle(1, RED);//ghermez bar(10, 210, 410, 310); getch(); }
سوال 11- برنامه ای بنویسید که شکل زیر را رسم کند:
main() { int x1, y1, x2, y2, x3, y3; cout<<" Please enter triangle coordinates ... "; cin >> x1 >> y1 >> x2 >> y2 >> x3 >> y3; initwindow(600,600); setcolor(14); line(x1, y1, x2, y2); line(x2, y2, x3, y3); line(x3, y3, x1, y1); getch(); }
سوال 12- برنامه ای بنویسید که شکل زیر را رسم کند:
main()
{
initwindow(600,600);
setcolor(14);
line(100, 100, 300, 300);
line(100, 100, 100, 300);
line(100, 300, 300, 300);
getch();
}
سوال 13- برنامه ای بنویسید که شکل زیر را رسم کند:
main() { initwindow(600,600); setcolor(14); line(100, 100, 100, 500); line(100, 500, 500, 500); line(100, 100, 200, 500); line(100, 200, 300, 500); line(100, 300, 400, 500); line(100, 400, 500, 500); getch(); }
سوال 14- برنامه ای بنویسید که سه نمره را از کاربر بگیرد و نمودار آنها را رسم کند: ( شکل زیر برای سه نمره ی 20 و 3 و 14 رسم شده است)
main() { int a, b, c; cin >> a >> b >> c; initwindow(600,600); setcolor(8); line(100, 100, 100, 500); line(100, 500, 500, 500); setfillstyle(8,14); bar(150, 500, 200, 500-a*10); bar(250, 500, 300, 500-b*10); bar(350, 500, 400, 500-c*10); getch(); }
سوال 15- برنامه ای بنویسید که مختصات دو نقطه ی ابتدایی و انتهایی یک پاره خط را بگیرد و علاوه بر رسم خود خط، عمود منصف آن را نیز رسم کند.
نمونه خروجی:
main() { int x1, y1, x2, y2; cin >> x1 >> y1 >> x2 >> y2; int xm = (x1 + x2) / 2; int ym = (y1 + y2) / 2; double a1 = (y2 - y1) / (x2 - x1); double a2 = -1 / a1; int xn = 50, yn; yn = a2 * (xn - xm) + ym; initwindow(600,600); setcolor(14); line(x1, y1, x2, y2); line(xn, yn, xm, ym); getch(); }