Exemplo n.º 1
0
/* 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;
}
Exemplo n.º 2
0
/* ------------------------------------------------------------------------ */
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] !='');