Jump to content
СофтФорум - всё о компьютерах и не только

Андрій Бігуняк

Newbies
  • Posts

    1
  • Joined

  • Last visited

About Андрій Бігуняк

Андрій Бігуняк's Achievements

0

Reputation

  1. плиз, доделайте программу. У меня есть меню и мне надо вставить туда программу в пункт «Нарисовать астроиду", и в пункт "Справка" написать текст Код меню: PascalВыделить uses GraphABC; const x0 = 150; y0 = 200; w = 100; step = 120; n = 3; kv1=0; kv2=1; kv3=2; var f:integer; Q: array[1..3] of string= ('Нарисовать астроиду','Справка','Выход'); procedure menu(f: integer); var i:integer; begin for i:=1 to 3 do begin setfontsize(10); if f=i then setfontcolor(clred) else setfontcolor(clgreen); textout(200,100+i*30,Q[i]); end; end; Procedure choose; begin case f of 1: begin; textout (1,1,'да');end; 3: halt; end; end; procedure up; begin if f=1 then f:=3 else f:=f-1; clearwindow; menu(f); end; procedure down ; begin if f=3 then f:=1 else f:=f+1; clearwindow; menu(f); end; procedure KeyDown(Key: integer); begin case Key of VK_Up: up; VK_Down: down; VK_Enter: begin; choose;end; end; end; begin f:=1; menu(f); OnKeyDown := KeyDown; end. Код программы: uses graphabc; var r, xc, yc, x1, y1: integer; x, y, t: real; s: string; begin repeat write('Vvedite radius [50..200] r='); readln(r); until r in [50..200]; SetWindowSize(400, 400); xc := WindowWidth div 2; yc := WindowHeight div 2; line(0, yc, 2 * xc, yc); line(xc, 0, xc, 2 * yc); t := 0; while t <= 2 * pi do begin x := r * (sqr(cos(t)) * cos(t)); y := r * (sqr(sin(t)) * sin(t)); x1 := xc + round(x); y1 := yc - round(y); putpixel(x1, y1, clGreen); t := t + 0.001; end; SetBrushColor(clGreen); //setfillstyle(6, 12); //floodfill(xc, yc, clGreen); textout(50, 40, 'Astroida'); textout(50, 60, 'x=r*cos^3(t) y=r*sin^3(t)'); str(r, s); textout(50, 80, 'pri R=' + s); end. Текст у меню "Справка": Астроида это кривая, которую описывает фиксированная точка круга, с середины касаясь неподвижного круга раза большего радиуса, и катится по нему без скольжения
×
×
  • Create New...