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();
}
زهره