thoga31 Posted April 30, 2012 at 09:47 PM Report Share #452362 Posted April 30, 2012 at 09:47 PM Ando agora a estudar a unit Graph do Free Pascal, e deixo-vos a minha primeira experiência, bem sucedida. (não está comentado nem muito "arranjadinho", é só mesmo uma experiência) Ora digam lá se o Pascal é ou não fraquinho? 😛 Eu demoraria muito mais a obter o mesmo resultado em VB.NET, a outra LP do meu conhecimento... Venham daí as vossas opiniões sobre esta maravilha! I just love it, man! 😁 Na Wiki program Trigonometria; uses graph, sysutils, windows; var Driver, Modus : smallint; Angle : integer; function Real2String(const value : real) : string; begin Str(value, Real2String); end; function Int2String(const value : integer) : string; begin Str(value, Int2String); end; begin try repeat write('Angulo (inteiro) (-360..360)? '); readln(Angle); until (Angle in [-360..360]); DetectGraph(Driver, Modus); InitGraph(Driver, Modus, ''); Circle(200, 200, 100); Line(200, 50, 200, 350); Line(50, 200, 350, 200); SetLineStyle(SolidLn,0,ThickWidth); SetColor(red); Line(200, 200, round(100*cos((angle*pi)/180)+200), round(-100*sin((angle*pi)/180)+200)); SetColor(white); OutTextXY(300, 300, 'sin(' + Int2String(angle) + ') = ' + Real2String(sin((angle*pi)/180))); OutTextXY(300, 310, 'cos(' + Int2String(angle) + ') = ' + Real2String(cos((angle*pi)/180))); readln; // pausa CloseGraph; except ON e:exception do begin MessageBox (0, @(e.message)[1] , 'ERRO!', 0 + MB_ICONHAND); end; end; writeln; write('end'); readln; // pausa end. Knowledge is free! Link to comment Share on other sites More sharing options...
nunopicado Posted April 30, 2012 at 10:49 PM Report Share #452395 Posted April 30, 2012 at 10:49 PM Muito bem... Cheguei a fazer uma agenda em modo gráfico em Turbo Pascal (6 ou 7, não me lembro, possivelmente até no 5.5), em que a base onde apareciam escritas as informações das pessoas era uma folha de papel pautado, com os buracos para encapar e tudo, e com uma fonte tipo Script para parecer que tinha sido escrito à mão. 😄 "A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!" > Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum. Link to comment Share on other sites More sharing options...
nunopicado Posted April 30, 2012 at 11:02 PM Report Share #452399 Posted April 30, 2012 at 11:02 PM ok, ok, talvez o que eu me lembrava do programa fosse um pouco acima do que realmente é... 😄 Mas lá encontrei o DateBook v3.0 "A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!" > Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum. Link to comment Share on other sites More sharing options...
pokker Posted May 1, 2012 at 02:49 PM Report Share #452467 Posted May 1, 2012 at 02:49 PM Tá fixe!! Eu vi algures na net também em modo gráfico, o gráfico da função seno, um gráfico sinusoidal Link to comment Share on other sites More sharing options...
thoga31 Posted May 1, 2012 at 04:59 PM Author Report Share #452490 Posted May 1, 2012 at 04:59 PM Tá fixe!! Eu vi algures na net também em modo gráfico, o gráfico da função seno, um gráfico sinusoidal Ok, é o meu próximo desafio, eheh! Já tenho a ideia perfeita para o fazer. Knowledge is free! Link to comment Share on other sites More sharing options...
thoga31 Posted May 2, 2012 at 05:56 PM Author Report Share #452772 Posted May 2, 2012 at 05:56 PM O que é prometido é devido! 🙂 P.S. (edit): detectei que a imagem está mal. Já corriji o código, mas não tirei um novo print screen, esta imagem ilustra bem o que faz o programa. http://dl.dropbox.com/u/30172141/P@P/trigonometria_pascal_2.png program Trigonometria; uses graph, sysutils, windows; type TPixel = record X, Y : integer; end; var Driver, Modus : smallint; Angle : integer; i : integer; const CircleCenter : TPixel = (X:200; Y:200); function Real2String(const value : real) : string; begin Str(value, Real2String); end; function Int2String(const value : integer) : string; begin Str(value, Int2String); end; begin try repeat write('Angulo (inteiro) (-360..360)? '); readln(Angle); until (Angle in [-360..360]); DetectGraph(Driver, Modus); InitGraph(Driver, Modus, ''); Circle(CircleCenter.X, CircleCenter.Y, 100); Line(CircleCenter.X, 50, CircleCenter.X, 350); Line(50, CircleCenter.Y, 350, CircleCenter.Y); SetLineStyle(SolidLn,0,ThickWidth); SetColor(red); Line(CircleCenter.X, CircleCenter.Y, round(100*cos((angle*pi)/180)+CircleCenter.X), round(CircleCenter.Y-100*sin((angle*pi)/180))); SetColor(white); OutTextXY(220, 330, 'sin(' + Int2String(angle) + ') = ' + Real2String(sin((angle*pi)/180))); OutTextXY(220, 340, 'cos(' + Int2String(angle) + ') = ' + Real2String(cos((angle*pi)/180))); SetLineStyle(SolidLn,0,NormWidth); Line(400, 200, 800, 200); // Horizontal Line(600, 50, 600, 350); // Vertical OutTextXY(610, 50, 'sin(x)'); for i:=30*round(-2*pi) to 30*round(2*pi) do begin PutPixel(600+i, round(200-100*sin((i*pi)/180)), red); end; SetLineStyle(DashedLn,0,NormWidth); SetColor(green); Line(CircleCenter.X, round(CircleCenter.Y-100*sin((angle*pi)/180)), CircleCenter.X+400, round(CircleCenter.Y-100*sin((angle*pi)/180))); readln; // pausa CloseGraph; except ON e:exception do begin MessageBox (0, @(e.message)[1] , 'ERRO!', 0 + MB_ICONHAND); end; end; writeln; write('end'); readln; // pausa end. Knowledge is free! Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now