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 é o cálculo aproximado de integrais duplas, \n", "exemplificar a definição de domínios não retangulares,\n", "tornar intuitivo o cálculo de integrais múltiplas. \n"; } define apeteco2() { local temporario=0; printf("%s","================================================= \n"); printf(" Aperte para continuar \n"); scanf("%c",temporario); } a = 4; informa(); define F(x,y) {return x*y*sin(2 - x - y);} define G(x,y) {return 1;} ## para calcular na ordem dx dy define g2(y) {return power(y,2)-5;} define g1(y) {return 15 - power(y,2);} ## calcula na ordem dx dy define integral_dxdy(iniY,fimY){ local soma = 0, deltax=0.005,deltay=0.005; local x, fimX; local y = iniY; while(y < fimY){ x = g2(y); fimX = g1(y); if (x > fimX) swap(x,fimX);## troca x, fimX while(x < fimX){ soma = soma + F(x, y); ##print '(',x,',',y,')';## imprime nós da malha x += deltax; } y += deltay; } return soma*deltax*deltay; } A = -5; B = 15; ## intervalo de variação em OX b1= 5; ## interseção das curva ## para calcular na ordem dy dx define h(x) {return ( x < b1 ) ? sqrt(x+5) : sqrt(15-x); } ## calcula na ordem dy dx define integral_dxdy(iniX,fimX){ local soma = 0, deltax=0.001,deltay=0.001; local x=iniX, iniY, fimY; local y; while(x < fimX){ y = -h(x); fimY = h(x); if (y > fimY) swap(y,fimY);## troca y, fimY while(y < fimY){ soma = soma + F(x, y); print '(',x,',',y,')';## imprime nós da malha y += deltax; } x += deltay; } return soma*deltax*deltay; } ##a= sqrt(10); ## print integral_dydx(-a,a); print integral_dxdy(A,B); quit