define copyleft() { print "Este programa é distribuido sob GPL. \n", "Se você não souber o que é a GPL, envie um e-mail ao autor \n", "tarcisio@member.ams.org \n", "mas em suma isto quer dizer que você pode usar livremente o sistema\n", "de programas aqui mencionados, desde que esta copyleft seja mantida\n", "em todas as alterações que você fizer do programa e das cópias que \n", "você dele fizer - é a proteção do direito autoral que não lhe impede\n", "de usar livremente o conhecimento mas que mantém a memória de quem \n", "participou de sua produção.\n"; } define informa() { copyleft(); print "O objetivo é obter o gráfico da imagem de curvas no domínio de F \n", "na superfície - variedade de dimensão dois - graf(F),\n", "em que z = F(x,y) é uma função bivariada. \n", "Obter a projeção de uma curva que esteja no Dom(F) em graf(F)" ; } define apeteco2() { local temporario; printf("================================================= \n"); printf(" Aperte para continuar \n"); scanf("%c",temporario); } informa(); define F(x,y) {return power(x,2) - 3*x*y + power(y,2) + 10;} define G(x,y) {return 1;} define cria_transfere(a,b){ local transfere = fopen("transfere","w"); fprintf(transfere, "power(x,n)=x**n \n"); fprintf(transfere, "F(x,y)=power(x,2) - 3*x*y + power(y,2) + 10;\n"); fprintf(transfere, "set xrange [%f:%f] \n",a,b); fprintf(transfere, "set pointsize 0.1 \n"); fprintf(transfere, "splot F(x,y), \"dados\" with points;\n"); fprintf(transfere, "print \"Aperte enter para terminar\" \n"); fprintf(transfere, "pause -2 \n"); fclose(transfere); } ## definindo fronteiras define g2(x) {return sqrt(x + 4);} define g1(x) {return -sqrt(x + 4);} define cria_dados(iniX, fimX, r){ local dados = fopen("dados","w"); local x=iniX,deltax=0.01,y1,y2; while(x < fimX){ y1 = g1(x);y2 =g2(x); ## teste é um ou fprintf(dados, "%f %f %f \n %f %f %f \n", re(x),re(y1),re(F(x,y1)), re(x),re(y2),re(F(x,y2))); print '(',x,',',y1,')'; x += deltax; } fclose(dados); return 0; } ## roda apenas o que main() estiver chamando define main() { informa(); cria_transfere(-4,4); cria_dados(-4,4,4); ##system("joe transfere"); print "Vou abrir o arquivo \"dados\" para que você apague\n", "o sinal de aproximação \"~\" que gnuplot não entende"; apeteco2(); system("joe dados"); system("gnuplot transfere"); } main();