a= 100
Kvadrat yuqori qirrasi koordinatalarini kiriting: x= 100 y= 80
|
173*. Radiusi R ga teng aylana va unga tashqi chizilgan kvadrat chizish dasturi tuzilsin. R ning qiymati muloqot usulida kiritilsin.
Yechim:
Avvalgi masaladagi chizmaga asosan a=2∙R. Aylana markazi koordinatasi (x, y) bo‘lsa, u holda kvadratning chap yuqori qirrasi koordinatasi (x–R, y–R) bo‘lsa, u holda quyi o‘ng qirrasi (x+R, y+R) bo‘ladi. Dasturda R o‘zgaruvchini
|
qiymatini klaviaturadan kiritish uchun Readln(R) operatori yoziladi. Shakllar chizish protseduralari piksellarning butun qiymatlarida ishlagani uchun a o‘rniga trunc(a) va R o‘rniga trunc(R) qaraladi.
|
Dasturi:
Uses Graph;
Var x, y, gd, gm: Integer; a, R: real;
Begin gd:=0; InitGraph(gd, gm, ‘‘); Write(‘R= ‘); ReadLn(R); a:=2*R;
WriteLn(‘Aylana markazi koordina-
tasini kiriting:‘);
Write(‘x= ‘); ReadLn(x);
Write(‘y= ‘); ReadLn(y);
Setbkcolor(2); Setcolor(14); Rectangle(x–trunc(R), y–trunc(R), x+trunc(R), y+trunc(R));
Setcolor(4); Circle(x, y, trunc(R)); ReadLn; CloseGraph; End.
|
Natijaning ekrandagi ko‘rinishi:
|
174*. Tomonlarining uzunligi a va b bo‘lgan to‘g‘ri to‘rtburchak va unga ichki chizilgan ellips chizish dasturi tuzilsin. a va b ning qiymati muloqot usulida kiritilsin.
Yechim:
Ma’lumki, FillEllipse(X,Y,XR,YR) protsedurasi markazi (X,Y) koordinatali nuqtada, X va Y o‘qlari bo‘yicha radiuslari (eni va bo‘yi) mos ravishda XR va YR ga teng, joriy rang va usulda bo‘yalgan ellips chizadi. Chizmaga asosan b
a b a=2∙XR, b=2∙YR yoki XR= , YR= . Kvadratning
2 2 a
chap yuqori qirrasi koordinatasi (x, y) bo‘lsa, u holda quyi o‘ng qirrasi (x+a, y+b) bo‘ladi. Demak, ellips markazi koordinatalari kesmani teng ikkiga bo‘lish qoidasiga asosan quyidagicha bo‘ladi:
x x a , y y b 2x a , 2 y b x a , y b.
2 2 2 2 2 2
Dasturda a o‘zgaruvchini qiymatini klaviaturadan kiritish uchun Readln(a) operatori yoziladi. Shakllar chizish protseduralari piksellarning butun qiymatlarida ishlagani uchun a o‘rniga trunc(a), b o‘rniga trunc(b), XR o‘rniga trunc(XR) va YR o‘rniga trunc(YR) qaraladi.
|
Dasturi:
Uses Graph;
Var x, y, gd, gm: Integer; a,b, XR, YR: real;
Begin gd:=0; InitGraph(gd, gm, '');
Write('a= '); ReadLn(a); XR:=a/2; Write('b= '); ReadLn(b); YR:=b/2;
|
WriteLn('To`trburchakni chap yuqori qirrasi koordinatalarini kiriting:');
Write('x= '); ReadLn(x); Write('y= '); ReadLn(y);
Setbkcolor(2); Setcolor(14); Rectangle(x, y, x+trunc(a), y+trunc(b));
Setcolor(4); Fillellipse(x+trunc(a/2), y+trunc(b/2), trunc(XR), trunc(YR)); ReadLn; CloseGraph; End.
|
Natijaning ekrandagi ko‘rinishi:
|
|
|
Do'stlaringiz bilan baham: |