Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Прямоугольник

Автор: Client 23.12.2007 1:45

Задача: Дан прямоугольник со сторонами A и B, где а b натуральные числа.Начать отсекать от него квадраты.Сколько таких квадратов можно отсечь, если каждый раз отсекается самый большой квадрат?
(Рисунок сам нарисовал, чуть не точный)
Прогу то я сделал, чтоб она выводила ответ. Я хочу теперь это все нарисовать(чтоб с графикой хоть познакомиться), но есть глюки.
Пожауйста, подскажите где исправить, а то уже идеи кончились wacko.gif
Вот что получилось

uses
crt,graph;
var
a,b:word;
x,y,x1,y1:integer;

procedure poisk (var x,y:word);
var
c:word;
begin
if x<y then begin
c:=x;
x:=y;
y:=c
end
end;

function kol(a,b:word):word;
var
s,k:word;
l:word;
a1,b1:word;
begin
k:=0;
s:=1;
l:=0;
a1:=a;
b1:=b;
while a<>b do begin
while a>b do begin
k:=k+b;
a:=abs(a-b);
line(50+k,100+b1,50+k,100+b1-b)
end;
while b>a do begin
l:=a*s;
line(50+k,100+l,50+k+a,100+l); //<---Ошибка здесь
b:=abs(b-a);
inc(s)
end;
end;
end;

begin
initgraph(x1,y1,'');
clrscr;
outtextxy(10,10,' Vvedite: ');
readln(a,b);
a:=a*10;
b:=b*10;

line(50,100,50+a,100);
line(50,100,50,100+b);
line(50,100+b,50+a,100+b);
line(50+a,100,50+a,100+b);
kol(a,b);
readkey;
closegraph
end.


Добавлено через 15 мин.
Если ввести 5 и 17 то получается что-то страшное blink.gif

Добавлено через 9 мин.
а если 17 и 5 то норм mega_chok.gif


Эскизы прикрепленных изображений
Прикрепленное изображение

Автор: Client 23.12.2007 15:50

Все, решил smile.gif
Тема закрыта