Помощь - Поиск - Пользователи - Календарь
Полная версия: Построение с помощью циркуля и линейки
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
adr02
Помогите люди добрые! короче надо составить программу автоматизирующюю процесс построения фигур на плоскости с помощью циркуля и линейки. программа должна уметь выполнить следующие команды:
- отметить произвольную точку и обозначить её
- построить прямую, проходящую через две точки
- построить произвольную прямую
- построить окружность с заданным центром заданного радиуса
- построить и обозначить точку пересечения двух линий.
Программа должна содерать 2-3 стандартных задачи по построению школьного курса геометрии, предлагать их для решения и контролировать процесс построения и полученное решение.
Lapp
Нехилое такое заданьице.. Надеюсь, не к завтрому нужно? smile.gif

Сам уже хоть что-то сделал? Начал? Если да - покажи, если нет - начинай..
Гость
делать начал. тока не смог ниче придумать кроме как построить.

program r;
uses graph;
var driver, mode:integer;
k,x,y,x1,y1:integer;
procedure first ;
begin
  writeln ('влберите фигуру для построения');
  writeln ('1:произвольная точка');
  writeln ('2:произвольная прямая чз две точки');
  writeln ('3:произвольная точка');
  writeln ('4:построить окружность');
  writeln ('5:точка пересечения двух линий');
  write ('ваш выбор: ');
end;
procedure second;
var xc,yc,r:integer;
begin
writeln ('введите центр окружности');
readln(xc,yc);
writeln ('введите радиус окружности');
readln(r);
circle(xc,yc,r);
end;
procedure third;
var xl1,xl2,yl1,yl2:integer;
begin
 writeln('введите координатл первой точки');
 readln(xl1,yl1);
 writeln('введите координатл второй точки');
 readln(xl2,yl2);
 circle (xl1,yl1,5);
 circle (xl2,yl2,5);
l ine (xl1-30,yl1-30,xl2+30,yl2+30);
end;
procedure fourth;
var xl,yl:integer;
begin
 writeln('введите координатл точки');
 readln(xl,yl);
 circle (xl,yl,5); 
 line (xl,yl,x1+50,y1+50);
 line (xl-50,yl,x1,y1);
end;
begin
  driver:=detect;
  initgraph (driver,mode,'d:\tp7\bgi');
  first;
  readln(k);
  randomize;
  x:=random(610)+30;
  y:=random(350)+30;
  x1:=random(610)+30;
  y1:=random(350)+30;
  case k of
   1: begin circle (x,y,5);OutTextXY(x+5,y+5,'A');end;
   2: third;
   3: line (x,y,x1,y1);
   4: second;
   5: fourth;
  end;
  readln
  end.


а как задачу приделать не представляю.

М
Юзай теги CODE, плз

Lapp
1. Переходи полностью в графику. Вместо WriteLn используй OutTextXY. Для ввода используй ReadKey. Процедура для ввода с строки с ReadKey есть в FAQ, переделай ее под графику.

2. Думаю, что нужно делать меню. Сценарии задач отслеживать по пунктам меню. Продумай интерфейс как следует.

Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.