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

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

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

Автор: leone.incognito 11.09.2007 18:48

Народ помогите!
A*A+B*B=C*C
B*B=C*C-A*A
B=?????? (если корню из C*C-A*A то как его найти в Паскале?) lol.gif Я серьёзно! Вот код:

A*A:=r*r-C*C (так"A*A:="нельзя)
A:=((r*r)-(C*C))mod A; (и так нельзя)

Как бы это смешно не было но я запутался rolleyes.gif wacko.gif

Автор: xds 11.09.2007 19:22

Ты имел в виду просто нахождение квадратного корня (b := Sqrt(c * c - a * a)) или что-то другое? (смущает mod)

Автор: leone.incognito 11.09.2007 23:00

Да(Первое).Xds скажи пожалуйста с каким типом переменных его можно узнать(квадратный корень)?А то он мне что-то пишет "Type mismatch" хотя они все Integer.

Автор: мисс_граффити 11.09.2007 23:06

возвращаемый результат - не целое число.
либо округляй, либо пользуйся типом real (или double...)

Автор: leone.incognito 11.09.2007 23:57

Спасибо.А как округлять,Мисс? wub.gif

Автор: klem4 12.09.2007 0:46

см. Хелп: Round, Trunc

Автор: leone.incognito 12.09.2007 1:02

Короче вот прога:

Код
program v0_001;
uses crt, graph;
var
centerX, centerY, radius, corner, AandB, A, B, AOC, BAO, x, OAC, OC, AO, Ax, Ay, OACplusBAO, grdr, grmd:integer;
begin
grdr:=detect;
write('center:');write('x=');read (centerX);write('y=');readln (centerY);
writeln('radius=');readln (radius);
writeln('corner=');readln (corner);
InitGraph(grdr,grmd,'C:\Pascalbji');
if corner > 90 then halt
else
AandB:=180-corner;
A:=AandB mod 2;{узнаём угол А}
B:=AandB mod 2;{узнаём угол В}
OAC:=90-corner;{узнаём угол АОС}
BAO:=A-OAC;{узнаём угол ВОА}
x:=radius mod A; {x*OAC+x*BAO=radius;}
OC:=x*OAC;{узнаём ОС}
AO:=((radius*radius)-(OC*OC))mod AO;{a=(cc-bb)mod a}
Ax:=centerX-OC;Ay:=centerY+AO;{}
Line(Ax,Ay,centerX,centerY); {линия(x1;y1;x2;y2);}
Delay(1000);{задержка}
halt
end.

Исправте пожалуйста

Автор: Айра 12.09.2007 3:32

Если я правильно поняла, то вместо

AO:=((radius*radius)-(OC*OC))mod AO;
можно написать:
AO:=sqrt(((radius*radius)-(OC*OC)))
, а чтоб программка не ругалась делаем AO: real, это если не кругляя.. или же
AO:=trunc(sqrt(((radius*radius)-(OC*OC)))) 
если округлять..

p.s. а темка-то скорее в задачи идет, чем в математику))

Автор: leone.incognito 12.09.2007 18:08

Спасибо тебе,Айра!