dois_pi = 8*atan(1); ## aproximadamente 2*pi define copyleft(){ local transfere = fopen("exer05_03_b.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 \"Objetivo: obter a imagem de uma região por coordenadas polares, presentemente\n"); fprintf(transfere,"print \"vai criar a imagem do retângulo [%f,%f]x[%f,%f] via coordenadas polares. \n",0,1,0,dois_pi); fprintf(transfere,"print \"Este programa foi gerado pela programa exer05_03b.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_03b.calc \"\n"); fprintf(transfere,"set pointsize 0.1 \n"); fprintf(transfere,"plot 0, \"exer05_03_b.dados\" with points\n"); fprintf(transfere,"pause -2 \"Aperte enter para continuar!\"\n"); fclose(transfere); } ## calcula a imagem do retângulo Q pelas coordenadas polares ## cria-arquivo "exer05_03_b.dados" define T(inicio_rho, fim_rho, inicio_theta, fim_theta, delta){ local dados = fopen("exer05_03_b.dados","w"); local rho=inicio_rho, theta, x,y; while(rho < fim_rho){ theta = inicio_theta; while(theta < fim_theta){ x = rho*cos(theta); y = rho*sin(theta); fprintf(dados, "%f %f \n",re(x),re(y)); theta +=delta; } rho +=delta; } fclose(dados); } define main(inicio_rho, fim_rho, inicio_theta, fim_theta, delta ){ copyleft(); T(inicio_rho, fim_rho, inicio_theta, fim_theta, delta); print "vou editar o arquivo de dados, apague a marca de precisão - til - colocada por calc"; print "é preciso retirar esta marca porque gnuplot se confunde com este sinal. "; system("joe exer05_03_b.dados"); system("gnuplot exer05_03_b.gnuplot "); } main(0,1, 0, dois_pi, 0.01);