Помощь - Поиск - Пользователи - Календарь
Полная версия: Построение с помощью циркуля и линейки
Форум «Всё о Паскале» > 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®;
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. Думаю, что нужно делать меню. Сценарии задач отслеживать по пунктам меню. Продумай интерфейс как следует.

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