/* Retorna uma aproximação do valor da raiz quadrada de n. * A quantidade de iterações e a precisão dadas limitam o esforço gasto na * aproximação. */ float Newton_Raphson(float n, int iteracoes, float precisao) { float r = valor_inicial(n); for(; iteracoes > 0; --iteracoes) { r = aproxima(r, n); if(precisao >= erro(r, n)) break; } return r; }
/* ------------------------------------------------------------------------ */ void Esforco() /* ------------------------------------------------------------------------ */ { int i = 0, ultimo = 0, le = 0, j = 0, t = 0, prox = 0, k, var; CriaJanelaGrafica(ESFORCO,0,0,MAXX,MAXY,0,""); tempo = (struct time*) malloc(sizeof(struct time)); var = VEF1UN; AmbienteFluxVol (); FVposBD(); LimpaTela(); AmbienteEsforco(); outtextxy(310,2,"PROVA DE ESFORCO"); if (Paciente.Nome){ valor[0].nome=Paciente.Nome; valor[0].clock=0; for(k=0;k<6;k++) valor[0].pontos[k]=0; } do { if (kbhit()) le=getch(); /* le possivel saida ou help*/ if (le==ESC) return; if (le==20) novopaciente(); if (le=='?'){ chama_help("01"); return;} le=''; if (valor[i].clock==0){ valor_pac[i] = 1; AmbienteFluxVol (); valor[i].clock= (int) (atoi(tempo->ti_hour)*60+ atoi(tempo->ti_min)); valor[i].pontos[0] = VEF1UN; /* Atualiza paciente*/ /* pt[0]=valor[i].pontos[0]; pt[1]=valor[i].pontos[1]; pt[2]=valor[i].pontos[4]; pt[3]=valor[i].pontos[3]; pt[4]=valor[i].pontos[4]; pt[5]=valor[i].pontos[5]; */ plota(valor[i].pontos,var,escala); /* plota os pontos e dados do paciente*/ le=getch(); /* le possivel saida ou help */ if (le==ESC) return; if (le==20) novopaciente(); if (le=='?') chama_help("01"); le=''; } gettime(tempo); valor[i].clock += (int) atoi(tempo->ti_hour)*60+ atoi(tempo->ti_min); aproxima(valor[i].clock); switch (valor[i].clock){ case 5: case 10: case 15: case 30: case 63: AmbienteFluxVol (); FVposBD(); AmbienteEsforco(); outtextxy(310,2,"PROVA DE ESFORCO"); j++; valor[i].pontos[j] = VEF1UN; plota(valor[i].pontos,var,escala); break; } i=prox; /* if ( le == F1) chama_help(114);*/ if ( (valor[i].clock == 63) || (le==ESC) ) { /* guarda(&valor[i]); for(t=i;t<ultimo;t++){ valor[t].nome=valor[t+1].nome; valor[t].clock=valor[t+1].clock; for(k=0;k<6;k++) { valor[t].pontos[k]=valor[t+1].pontos[k]; valor_pac[i] = 0; } } valor[ultimo].nome =""; valor[ultimo].clock =0; for(k=0;k<6;k++) valor[ultimo].pontos[k]=0; /* atribuicao suspeita */ ultimo--; } }while (valor_pac[i] !='');