define copyleft(){ local transfere = fopen("exer05_00.gnuplot","w"); fprintf(transfere,"print \" \" \n"); fprintf(transfere,"print \" \" \n"); fprintf(transfere,"print \"============================================================\"\n"); fprintf(transfere,"print \" Os direitos do autor e a GPL \"\n"); fprintf(transfere,"print \"============================================================\"\n"); fprintf(transfere,"print \" \"\n"); fprintf(transfere,"print \"Este programa é distribuido sob GPL. \"\n"); fprintf(transfere,"print \"Se você não souber o que é a GPL, envie um e-mail ao autor \"\n"); fprintf(transfere,"print \" tarcisio@member.ams.org \"\n"); fprintf(transfere,"print \"mas em suma quer dizer que você pode usar livremente o sistema\"\n"); fprintf(transfere,"print \"de programas aqui mencionados, desde que esta informação seja mantida\"\n"); fprintf(transfere,"print \"em todas as alterações que você fizer dos programas e das cópias que \"\n"); fprintf(transfere,"print \"você deles fizer - é a proteção do direito autoral que não lhe impede\"\n"); fprintf(transfere,"print \"de usar livremente o conhecimento mas que mantém na memória quem \"\n"); fprintf(transfere,"print \"participou de sua produção.\"\n"); fprintf(transfere,"print \"Este programa foi escrito por Tarcisio Praciano-Pereira \"\n"); fprintf(transfere,"print \"professor da Universidade Estadual Vale do Acaraú - UeVA \"\n"); fprintf(transfere,"print \"Laboratório de Matemática Computacional \"\n"); fprintf(transfere,"print \"Sobral - Ceará - Brasil \" \n"); fprintf(transfere,"print \"Aperte enter para continuar!\"\n"); fprintf(transfere,"pause -2 \n"); fprintf(transfere,"system \"clear\" \n"); fprintf(transfere,"print \"Este programa foi gerado pela programa exer05_00.calc e pode voltar a ser\"\n"); fprintf(transfere,"print \"gerado pelo programa com dados diferentes para obter o gráfico de uma\"\n"); fprintf(transfere,"print \"função viasualizando a sua integral calculada aproximadamente por somas\"\n"); fprintf(transfere,"print \"de Riemann.\"\n"); fprintf(transfere,"print \"Basta que você troque aqui a equação da função nos locais \"\n"); fprintf(transfere,"print \"adequados e volte a rodar exer05_00.calc \"\n"); fclose(transfere); } r = 4 define F(x,y) {return sqrt(r**2 - x**2 - y**2);} define riemann(inicioX, fimX, inicioY, fimY, delta){ local transfere = fopen("exer05_001.gnuplot","w"); local soma = 0, x,y,M; fprintf(transfere, "F(x,y) = sqrt(%f - x**2 - y**2); \n",re(r**2)); fprintf(transfere, "set xrange [-5:5] \n"); fprintf(transfere, "set yrange [-5:5] \n"); fprintf(transfere, "set pointsize 0.1 \n"); x = inicioX; while(x < fimX){ M = sqrt(r**2 - x**2); ## borda inferior y = -M; ## troca de sinal - borda superior while(y < M){ soma = soma + F(x,y); fprintf(transfere, "set arrow from %f,%f,%f to %f,%f,%f nohead \n",\ re(x),re(y), re(0), re(x),re(y), re(F(x,y))); y +=delta; ## y = y + delta } x +=delta; ## x = x + delta } fprintf(transfere, "print \"o valor da integral aproxim. é %f \" \n", re(soma*delta*delta)); fprintf(transfere, "print \"O volume aproximado da esfera de raio %f é %f \" \n", re(r), 2*re(soma*delta*delta)); fprintf(transfere, "print \"Aperte enter para ver o gráfico\" \n"); fprintf(transfere, "pause -2 \"\n"); fprintf(transfere, "splot F(x,y),0 \n"); fprintf(transfere, "print \"Aperte enter para terminar \" \n"); fprintf(transfere, "pause -2 \n"); fprintf(transfere, "system \"clear\" \n"); fclose(transfere); } copyleft(); riemann(-r,r,-r,r,0.05); ##system("joe exer05_001.gnuplot") system("gnuplot exer05_001.gnuplot ");