//usa MaxMin.class!!!!!!!!!

import java.applet.Applet;
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import java.text.*;
import java.awt.Font;

public class reometria extends Applet implements ActionListener, ItemListener
{
    Panel p1, p2, p3, p4;
    Label rotulo0, rotulo1, rotaux1, rotulo2, rotulo3, rotulo4, rotulo5, rotulo6, rotulo7, rotulo8, rotulo9, rotulo10;
    Label aux1, aux2, aux3, aux4, aux5, aux6, aux7, aux8, aux9, aux10, aux11, aux12, aux13, aux14, aux15, aux16, aux17, aux18, aux19, aux20, aux21, aux22, aux23;
    TextField caixa1, caixa2, caixa3, caixa4, caixa5, caixa6, caixa7, caixa8;
    Button aceptar, limpiar, graficar, modificar;
	CheckboxGroup modelo;
	Checkbox nb, ley, her, otro;
	String gamap= new String("Ý");
	String tau=new String("\u03C4");
	String dis=new String("\u2260");
	tela graf= new tela ();
	Color azul= new Color(120, 170, 210);
	Color verde=new Color(221, 245, 200);
	TextArea ta1= new TextArea(5, 25);
    TextArea ta2= new TextArea(5, 25);
	NumberFormat nf1 = NumberFormat.getNumberInstance();
	NumberFormat nf2 = NumberFormat.getNumberInstance();
	NumberFormat nf3 = NumberFormat.getNumberInstance();
	Choice ch;
	Font f1, f2, f3;

	int n, j;
    int i= 0;
    double somx, somy, xq, yq, xy, xp, yp, pp, r, r2, k, h, y, x1, y1, x11, y11, u ;
	double a, b, tau0, t0, a1, b1, m, o;

	double[] num1;
    double[] num2;

  public void init()
  {
	resize(828, 580);
	setLayout(new BorderLayout());

	nf2.setMaximumFractionDigits(3);
	nf3.setMaximumFractionDigits(2);

	f1= new Font("Arial", Font.BOLD, 12);
	f2= new Font("Arial", Font.ITALIC, 12);
	f3= new Font("Arial", Font.PLAIN, 12);

	p1= new Panel();
	p2= new Panel();
	p3= new Panel();
	p4= new Panel();

	Choice ch=new Choice();

	aceptar= new Button("Inserir");
	limpiar= new Button("Limpar");
	graficar= new Button("Graficar");
	modificar= new Button("Mudar valores");

	rotulo0= new Label("        Banco de dados");
	rotulo1= new Label("            Quantos pares de");
    rotaux1= new Label(" dados deseja inserir?");
    rotulo2= new Label("");
    rotulo3= new Label("               "+gamap+" (1/s)");
    rotulo4= new Label("               "+tau+" (Pa)");
    rotulo5= new Label("            Tabela de dados");
	rotulo6= new Label("      Escolha o modelo de fluxo:");
	rotulo7= new Label("               Indice");
	rotulo8= new Label("                   Resultados");
	rotulo9= new Label("  O valor de "+tau+"o fornecido não pode ser maior que ");
	rotulo10= new Label("o valor de "+tau+" inicial !");

	aux1= new Label("");		aux2= new Label("");		aux3= new Label("");
	aux4= new Label("");		aux5= new Label("");		aux6= new Label("");
	aux7= new Label("");		aux8= new Label("");		aux9= new Label("");
	aux10= new Label("");		aux11= new Label("");		aux12= new Label("");
	aux13= new Label("");		aux14= new Label("");		aux15= new Label("");
	aux16= new Label("");		aux17= new Label("");		aux18= new Label("");
	aux19= new Label("");		aux20= new Label("");		aux21= new Label("");
	aux22= new Label("");		aux23= new Label("");

	caixa1= new TextField("");	caixa2= new TextField("");
    caixa3= new TextField("");	caixa4= new TextField("");
    caixa5= new TextField("");	caixa6= new TextField("");
    caixa7= new TextField("");	caixa8= new TextField("");

    modelo= new CheckboxGroup();

    nb= new Checkbox("Newtoniano/Plástico de Bingham", false, modelo);
	ley= new Checkbox("Lei da Potencia", false, modelo);
	her= new Checkbox("Herschel-Bulkley ("+tau+"o estimado)", false, modelo);
	otro= new Checkbox("Herschel-Bulkley (uso de outro "+tau+"o)", false, modelo);

	add("North", p1);
	p1.setBackground(azul);
	p1.setLayout(new GridLayout(5,2));

	add("South", p2);
	p2.setBackground(azul);
	p2.setLayout(new GridLayout(5,1));

	add("West", p3);
	p3.setLayout(new BorderLayout());

	add("East", p4);
	p4.setLayout(new BorderLayout());

	ch.setFont(f2);
	ch.add("Suco de mamão");
	ch.add("Suco de laranja 1");//PERANP 62, 19.4° C
	ch.add("Suco de laranja 2");//PERANP 62, -5.5° C

	setFont(f1);
	p1.add(aux1);
	p1.add(aux2);
	p1.add(aux3);
	p1.add(aux4);
	p1.add(aux5);
	p1.add(aux6);
	p1.add(rotulo0);
	p1.add(ch); ch.addItemListener(this);

	p1.add(rotulo1);
    p1.add(rotaux1);
    p1.add(caixa1);caixa1.setFont(f3);
    p1.add(aux7);
    p1.add(rotulo2);
    p1.add(rotulo7);p1.add(rotulo3);p1.add(rotulo4);
    p1.add(aux8);
    p1.add(aux9);
    p1.add(aux10);

    p1.add(caixa4); caixa4.setText("0"); caixa4.setFont(f3);
    p1.add(caixa2); caixa2.setFont(f3);
    p1.add(caixa3); caixa3.setFont(f3);
    p1.add(aceptar);aceptar.addActionListener(this);aceptar.setFont(f3);
    p1.add(aux11);
	p1.add(aux12);
	p1.add(aux13);
	p1.add(aux14);
	p1.add(aux15);
	p1.add(aux16);
	p1.add(aux17);

	ta1.setBackground(Color.white); ta1.setFont(f3);
    p2.add(ta1);ta1.setEditable(false);
	p2.add(aux18);
	p2.add(aux19);
	p2.add(aux20);
	p2.add(aux21);
	p2.add(rotulo6);
	p2.add(aux22);
	p2.add(nb); nb.addItemListener(this);
	p2.add(her); ley.addItemListener(this);
	p2.add(graficar); graficar.addActionListener(this); graficar.setFont(f3);
	p2.add(ley); her.addItemListener(this);
	p2.add(otro); otro.addItemListener(this);
	p2.add(caixa8); caixa8.setFont(f3);
	p2.add(aux23);
	p2.add(rotulo9); rotulo9.setForeground(verde);
	p2.add(rotulo10); rotulo10.setForeground(verde);

	p3.add("North", rotulo5);
	p3.add("Center",ta1);ta1.setBackground(Color.white); ta1.setEditable(false);
	p3.add("South", modificar); modificar.addActionListener(this); modificar.setFont(f3);

	p4.add("North", rotulo8);
	p4.add("Center", ta2);ta2.setBackground(Color.white); ta2.setEditable(false); ta2.setFont(f3);
	p4.add("South", limpiar); limpiar.addActionListener(this); limpiar.setFont(f3);

	add("Center", graf);

  }//fim init

  public void itemStateChanged(ItemEvent e)
  {
  	if(e.getItem()=="Suco de mamão")
	{
  	  ta1.setText("");
  	  ta1.append("Suco de mamão");
  	  ta1.append("\n30° C, 40° Brix");
  	  ta1.append("\n\nIndice\t"+gamap+" (1/s)\t   "+tau+" (Pa)\n\n");

  	  double numaux1[]={0.7, 11.4, 21.3, 31.4, 41.2, 52.2, 62.2, 72.1, 83.0, 93.0, 102.8, 113.9, 123.7, 133.6, 144.6, 154.4, 164.4, 175.3, 185.2, 195.1, 200.0};
  	  double numaux2[]={69.65, 99.97, 107.70, 115.40, 122.80, 130.70, 137.80, 144.00, 150.50, 156.30, 161.30, 166.45, 170.95, 175.15, 179.40, 182.95, 186.65, 190.45, 193.35, 196.60, 197.95};
  	  num1= numaux1;
  	  num2= numaux2;
  	  n= num1.length;
  		for(int j=0; j<n; j++)
  		{
  			ta1.append(String.valueOf(j)+"\t"+num1[j]+"\t"+num2[j]+"\n");
  		}
	}//fim if mamão

   	if(e.getItem()=="Suco de laranja 1")
  	{
	  ta1.setText("");
	  ta1.append("Suco de laranja,\nvariedade Pêra.\n");
	  ta1.append("\n19.4° C, 61.6° Brix, 5.7% P");
	  ta1.append("\n\nIndice\t"+gamap+" (1/s)"+"\t   "+tau+" (Pa)\n\n");
	  double numaux1[]={6.75, 7.52, 9.52, 10.78, 13.47, 15.23, 19.04, 21.54, 24.89, 30.46, 38.08, 43.07, 53.78, 60.92, 76.15, 80.15, 107.57, 172.30, 216.89, 261.78, 304.62, 356.97, 430.75, 475.96, 609.23, 713.95, 761.34, 861.49, 1218.47, 1722.99};
	  double numaux2[]={3.65, 4.04, 4.75, 5.09, 5.92, 6.46, 7.68, 8.52, 9.93, 10.92, 12.83, 14.06, 16.63, 18.24, 21.53, 23.60, 27.90, 38.54, 43.96, 51.62, 61.38, 66.93, 81.12, 94.82, 107.95, 120.29, 125.84, 142.81, 185.46, 243.67};
	  num1= numaux1;
	  num2=numaux2;
	  n=num1.length;
  		for(int j=0; j<n; j++)
  		{
  			ta1.append(String.valueOf(j)+"\t"+num1[j]+"\t"+num2[j]+"\n");
  		}
	}//fim if peranps

   	if(e.getItem()=="Suco de laranja 2")
  	{
	  ta1.setText("");
	  ta1.append("Suco de laranja,\nvariedade Pêra.\n");
	  ta1.append("\n-5.5° C, 61.6° Brix, 5.7% P");
	  ta1.append("\n\nIndice\t"+gamap+" (1/s)"+"\t   "+tau+" (Pa)\n\n");
	  double numaux1[]={1.35, 1.90, 2.38, 2.69, 3.34, 3.81, 4.75, 5.38, 6.74, 7.42, 9.52, 10.75, 13.47, 15.24, 26.90, 30.47, 38.09, 43.09, 53.80, 60.95, 76.18, 86.18, 107.61, 121.89, 132.32, 172.36, 215.45, 304.73, 53.80, 60.96, 76.18, 86.28, 107.61, 132.92, 158.06, 172.39, 215.45, 304.73, 430.91, 609.66};
	  double numaux2[]={4.64, 5.95, 7.03, 7.72, 9.27, 10.04, 11.08, 12.95, 15.19, 16.98, 19.80, 21.53, 25.42, 27.90, 39.40, 42.56, 51.51, 57.06, 67.24, 74.03, 90.32, 98.70, 118.15, 131.09, 157.30, 223.65, 205.73, 268.34, 73.25, 78.43, 92.90, 103.38, 120.94, 123.59, 152.33, 172.43, 209.55, 275.41, 339.23, 434.01};
	  num1= numaux1;
	  num2=numaux2;
	  n=num1.length;
  		for(int j=0; j<n; j++)
  		{
  			ta1.append(String.valueOf(j)+"\t"+num1[j]+"\t"+num2[j]+"\n");
  		}
	}//fim if peranps

  	if(e.getItemSelectable()== nb)
  	{
  	  caixa8.setText("");
  	  ta2.setText("");
      ta2.append("\n	"+tau+" = "+tau+"o + µ.Ý\n");
      ta2.append("\n"+tau+"o = 0 -> Newtoniano");
      ta2.append("\n"+tau+"o "+dis+ " 0 -> Plástico de Bingham\n");

      somx=0;
	  xq=0;
	  somy=0;
	  yq=0;
	  xy=0;
	  xp=0;
	  yp=0;
	  pp=0;
	  a=0;
	  b=0;
	  r=0;
	  r2=0;
	  tau0=0;
	  a1=0;
      b1=0;

      	for(int j=0; j<n; j++)
		{
			  somx= somx+num1[j];
			  xq= xq+num1[j]*num1[j];
			  somy= somy+num2[j];
			  yq= yq+num2[j]*num2[j];
			  xy= xy+num1[j]*num2[j];
	  	}//fim for

	  xp= xq-((somx*somx)/n);
	  yp= yq-((somy*somy)/n);
	  pp= xy-((somx*somy)/n);
	  a= pp/xp;
	  b= (somy-a*somx)/n;
	  r= Math.sqrt(a*pp/yp);
	  r2= r*r;

	  ta2.append("\nµ = "+nf2.format(a)+"\n");
	  ta2.append(tau+"o = "+nf2.format(b)+"\n");
	  ta2.append("r = "+nf2.format(r)+"\n");
	  ta2.append("r2 = "+nf2.format(r2)+"\n\n");

	  	 if(Math.abs(b)<1) //Obs.: se considera que tau0=0 si -1<tau0 <1, debido a errores experimentales!
	  	 {
				ta2.append("Modelo adequado:\n      Material Newtoniano!\n\n");
	  	 }//fim if
	  ta2.append("Observação:\nse -1< "+tau+"o <1, "+tau+"o =0\ndebido aos erros experimentais\n");
  	}//fim if nb

  	if(e.getItemSelectable()== ley)
  	{
  	  caixa8.setText("");
  	  ta2.setText("");
  	  ta2.append("\n	"+tau+" = k. (g^n)\n");
  	  ta2.append("\nn<1 -> Pseudoplástico\n");
  	  ta2.append("n>1 -> Dilatante\n");

	  somx=0;
	  xq=0;
	  somy=0;
	  yq=0;
	  xy=0;
	  xp=0;
	  yp=0;
	  pp=0;
	  a=0;
	  b=0;
	  r=0;
	  r2=0;
	  tau0=0;
	  a1=0;
      b1=0;

		for(int j=0; j<n; j++)
		{
			  somx= somx+Math.log(num1[j]);
		  	  xq= xq+(Math.log(num1[j])*Math.log(num1[j]));
		      somy= somy+(Math.log(num2[j]));
		   	  yq= yq+Math.log(num2[j])*Math.log(num2[j]);
		   	  xy= xy+Math.log(num1[j])*Math.log(num2[j]);
		}//fim for

	  xp= xq-((somx*somx)/n);
	  yp= yq-((somy*somy)/n);
	  pp= xy-((somx*somy)/n);
	  a= pp/xp;
	  b= (somy-a*somx)/n;
	  r= Math.sqrt(a*pp/yp);
	  r2= r*r;
	  k= Math.exp(b);
	  h= a;

      ta2.append("\nn = "+nf2.format(a)+"\n");
      ta2.append("k = "+nf2.format(k)+"\n");
	  ta2.append("r = "+nf2.format(r)+"\n");
	  ta2.append("r2 = "+nf2.format(r2)+"\n");

	  	if(h<1)
	  	{
				ta2.append("\nn = "+nf2.format(h)+" <1 Pseudoplástico");
	  	}

	  	if(h>1)
	 	{
				ta2.append("\nn = "+nf2.format(h)+" >1 Dilatante");
	  	}
  	}//fim if ley

  	if(e.getItemSelectable()== her)
  	{
  	  caixa8.setText("");
  	  ta2.setText("");
  	  ta2.append("\n	"+tau+" = "+tau+"o + k. (g^n)        \n");

  	/*Estimación tau0
  	y=ax+tau0
  	Factor de corrección=0.93 */

  	   somx=0;
  	   xq=0;
  	   somy=0;
  	   yq=0;
  	   xy=0;
  	   xp=0;
  	   yp=0;
  	   pp=0;
  	   a=0;
  	   b=0;
  	   r=0;
  	   r2=0;
  	   m=0;
  	   o=0;
  	   a1=0;
  	   b1=0;
  	   tau0=0;

        	for(int j=0; j<2; j++)
		{
			  somx= somx+num1[j];
			  xq= xq+num1[j]*num1[j];
			  somy= somy+num2[j];
			  yq= yq+num2[j]*num2[j];
			  xy= xy+num1[j]*num2[j];
	  	}//fim for

	  xp= xq-((somx*somx)/2);
	  yp= yq-((somy*somy)/2);
	  pp= xy-((somx*somy)/2);
	  a= pp/xp;
	  b= (somy-a*somx)/2;
	  tau0=0.93*b;

  	   ta2.append("\n"+tau+"o estimado= "+nf3.format(tau0)+"\n");

	   somx=0;
	   xq=0;
	   somy=0;
	   yq=0;
	   xy=0;
	   xp=0;
	   yp=0;
	   pp=0;
	   a=0;
	   b=0;
	   r=0;
	   r2=0;
	   a1=0;
       b1=0;

		 for(int j=0; j<n; j++)
      	 {
		    	somx= somx+Math.log(num1[j]);
		    	xq= xq+(Math.log(num1[j])*Math.log(num1[j]));
		    	somy= somy+(Math.log(num2[j]-tau0));
		    	yq= yq+Math.log(num2[j]-tau0)*Math.log(num2[j]-tau0);
		    	xy= xy+Math.log(num1[j])*Math.log(num2[j]-tau0);
      		}//fim for

	   xp= xq-((somx*somx)/n);
	   yp= yq-((somy*somy)/n);
	   pp= xy-((somx*somy)/n);
	   a= pp/xp;
	   b=(somy-a*somx)/n;
	   r= Math.sqrt(a*pp/yp);
	   r2= r*r;
	   k= Math.exp(b);
	   h= a;

       ta2.append("\nn = "+nf2.format(a)+"\n");
       ta2.append("k = "+nf2.format(k)+"\n");
	   ta2.append("r = "+nf2.format(r)+"\n");
	   ta2.append("r2 = "+nf2.format(r2)+"\n\n\n");

	}//fim if her


  	 if(e.getItemSelectable()== otro)
  	 {
  	   ta2.setText("");
  	   ta2.append("\n	"+tau+" = "+tau+"o + k. (g^n)        \n");

  	   somx=0;
	   xq=0;
	   somy=0;
	   yq=0;
	   xy=0;
	   xp=0;
	   yp=0;
	   pp=0;
	   a=0;
	   b=0;
	   r=0;
	   r2=0;
	   a1=0;
       b1=0;
  	   tau0= Double.valueOf(caixa8.getText()).doubleValue();
  	   if(tau0>num2[0])
  	   {
		   ta2.append("\n ERRO:");
		   ta2.append("\n Ingresse outro valor de "+tau+"o.\n");
	   }//fim if

	  		for(int j=0; j<n; j++)
	        {
	  		    somx= somx+Math.log(num1[j]);
	  		    xq= xq+(Math.log(num1[j])*Math.log(num1[j]));
	  		    somy= somy+(Math.log(num2[j]-tau0));
	  		    yq= yq+Math.log(num2[j]-tau0)*Math.log(num2[j]-tau0);
	  		    xy= xy+Math.log(num1[j])*Math.log(num2[j]-tau0);
	        }//fim for

	  	xp= xq-((somx*somx)/n);
	  	yp= yq-((somy*somy)/n);
	  	pp= xy-((somx*somy)/n);
	  	a= pp/xp;
	  	b=(somy-a*somx)/n;
	  	r= Math.sqrt(a*pp/yp);
	  	r2= r*r;
	  	k= Math.exp(b);
	  	h= a;

	    ta2.append("\nn = "+nf2.format(a)+"\n");
	    ta2.append("k = "+nf2.format(k)+"\n");
	  	ta2.append("r = "+nf2.format(r)+"\n");
	  	ta2.append("r2 = "+nf2.format(r2)+"\n\n\n");
  	  }//fim otro

  }// fim itemStateChanged

  public void actionPerformed(ActionEvent e)
  {
    if(e.getSource()== aceptar)
  	{
  		if (num1== null) {ta1.append("Indice"+"\t  "+gamap+"\t   "+tau+"\n");}

  		if(num2== null)
  	    {
  		  n= Integer.valueOf(caixa1.getText()).intValue();
  		  num1= new double[n];
  		  num2= new double[n];
  		  i= 0;
  		}

  	    if (i<= n)
  	    {
  		  num1[i]= Double.valueOf(caixa2.getText()).doubleValue(); // entrada num1
  		  num2[i]= Double.valueOf(caixa3.getText()).doubleValue(); // entrada num2
  		  caixa2.setText("");
  		  caixa3.setText("");
  		  caixa4.setText(String.valueOf(i+1));
  		  ta1.append(String.valueOf(i)+"\t"+num1[i]+"\t"+num2[i]+"\n");
  	      i++;
  	    }

  		if(i== n)
  	    {
  		  ta1.append("\nTodos os dados já foram ingressados.\n\n");
  		  ta1.append("\nPara mudar os dados, coloque os novos valores\n");
  		  ta1.append("nas caixas correspondentes e aperte o botão\n");
  		  ta1.append("'mudar valores'");
  		  caixa4.setText("");
  		}
  	}// fim if aceptar

  	if (e.getSource()== limpiar)
  	{
  		caixa1.setText("");
  		caixa2.setText("");
  		caixa3.setText("");
  		ta1.setText("");
  		num1= null;
  		num2= null;
  		ta2.setText("");
        caixa4.setText("0");
        caixa8.setText("");
        somx=0;
		xq=0;
		somy=0;
		yq=0;
		xy=0;
		xp=0;
		yp=0;
		pp=0;
		a=0;
		b=0;
		r=0;
		r2=0;
		tau0=0;
		a1=0;
    	b1=0;
        graf.repaint();
    }// fim if limpiar

    if(e.getSource()== modificar)
    {
  		int indice= Integer.valueOf(caixa4.getText()).intValue();
  		num1[indice]= Double.valueOf(caixa2.getText()).doubleValue();
  		num2[indice]= Double.valueOf(caixa3.getText()).doubleValue();
  		ta1.setText("");
  		ta1.append(" Os novos valores são:\n\n");
  		ta1.append("    Indice"+"          "+gamap+"            "+tau+"\n");


  		for(int j=0; j<n; j++)
  		{
  			ta1.append(" Indice:"+String.valueOf(j)+"   "+num1[j]+"  "+" "+num2[j]+" \n");
  		}
  	}// fim if modificar

  	if(e.getSource()== graficar)
  	{
  		graf.c= a;
  		graf.d= b;
  		graf.p= k;
  		graf.q= h;
  		graf.t0= tau0;
  		graf.repaint();
  	}//fim if graficar

  }// fim actionPerformed

  class tela extends java.awt.Canvas
  {
	double c, d, p, q, t0, x0, y0, l, xmax, ymax, cxmax,  cymax, dx1, dy1, cdx1, cdy1, dx2, dy2, cdx2, cdy2, dx3, dy3, cdx3, cdy3;
	int e, f;

    public void paint(Graphics g)
    {
         g.setColor(verde);
         g.fillRect(50, 60, 330, 240);
         g.setColor(Color.black);		g.drawString(tau+" (Pa)", 40, 55);
         g.setColor(Color.black);		g.drawString(gamap+" (1/s)", 388, 297);
         g.setColor(Color.black);		g.drawLine(55, 60, 55, 300);
                              	        g.drawLine(50, 295, 380, 295);

		 g.drawString("Curva de ajuste para dados reométricos", 100, 30);

		 nf1.setMaximumFractionDigits(1);

		 x1=MaxMin.returnMax(num1);
		 y1=MaxMin.returnMax(num2);

		 x11= 1.1*x1;
		 y11= 1.1*y1;

		 x0= 325/x11;
		 y0= 235/y11;

		 dx1=x11/10;
		 cdx1=Math.ceil(dx1);
		 xmax=cdx1*10;

		 dx2=xmax/100;
		 cdx2=Math.ceil(dx2);
		 dx3=cdx2*10;

		 cxmax=Math.ceil(xmax);
		 cdx3=Math.ceil(dx3);

		 e=(int)(cxmax)/(int)(cdx3);

		 dy1=y11/10;
		 cdy1=Math.ceil(dy1);
		 ymax=cdy1*10;

		 dy2=ymax/100;
		 cdy2=Math.ceil(dy2);
		 dy3=cdy2*10;

		 cymax=Math.ceil(ymax);
		 cdy3=Math.ceil(dy3);

		 f=(int)(cymax)/(int)(cdy3);

		 g.setColor(Color.black);
		 g.drawString("0", 35, 315);

		 for(int j=1; j<e; j++)
		 {
			g.setColor(Color.lightGray);
			g.drawLine((int)(55+cdx3*j*x0), 60, (int)(55+cdx3*j*x0), 295);
			g.setColor(Color.black);
			g.drawString(String.valueOf(nf1.format(cdx3*j)), (int)(47+cdx3*j*x0), 315);
		 }//fim for

		 for(int j=1; j<f; j++)
		 {
			g.setColor(Color.lightGray);
			g.drawLine(55, (int)(295-cdy3*j*y0), 380, (int)(295-cdy3*j*y0));
			g.setColor(Color.black);
			g.drawString(String.valueOf(nf1.format(cdy3*j)), 30, (int)(298-cdy3*j*y0));

		 }//fim for

		 for(int j=0; j<n; j++)
		 {
		 	g.setColor(Color.blue);
		 	g.drawOval((int)(num1[j]*x0+54.5), (int)(294.5-num2[j]*y0), 1,1);
		 }//fim for

		 if(modelo.getSelectedCheckbox()== nb)
		 {
		 	g.setColor(Color.orange);
		 	for(l=0; l<=x11; l=l+0.01)
		 	{
				y=c*l+d;
				g.drawOval((int)(l*x0+54.5), (int)(294.5-y*y0), 1,1);
			}//fim for

					 for(int j=0; j<n; j++)
					 {
					 	g.setColor(Color.blue);
					 	g.drawOval((int)(num1[j]*x0+54.5), (int)(294.5-num2[j]*y0), 1,1);
		 			 }//fim for
		  }//fim if nb

		 else if(modelo.getSelectedCheckbox()== ley)
		 {
			g.setColor(Color.orange);
			for(l=0; l<=x11; l=l+0.01)
			{
				y=p*Math.pow(l,q);
				g.drawOval((int)(l*x0+54.5), (int)(294.5-y*y0), 1,1);
			}//fim for
					 for(int j=0; j<n; j++)
					 {
					 	g.setColor(Color.blue);
					 	g.drawOval((int)(num1[j]*x0+54.5), (int)(294.5-num2[j]*y0), 1,1);
		 			 }//fim for
		}//fim if ley

		 else if(modelo.getSelectedCheckbox()== her)
		 {
			double l= 0;
			g.setColor(Color.orange);
			for(l=0; l<=x11; l=l+0.01)
			{
				y= t0+p*Math.pow(l,q);
				g.drawOval((int)(l*x0+54.5), (int)(294.5-y*y0), 1,1);
			}//fim for
					 for(int j=0; j<n; j++)
					 {
					 	g.setColor(Color.blue);
					 	g.drawOval((int)(num1[j]*x0+54.5), (int)(294.5-num2[j]*y0), 1,1);
				     }//fim for
		 }//fim if her

		 else if(modelo.getSelectedCheckbox()== otro)
		 {
			double l= 0;
			g.setColor(Color.orange);
			for(l=0; l<=x11; l=l+0.01)
			{
				y= t0+p*Math.pow(l,q);
				g.drawOval((int)(l*x0+54.5), (int)(294.5-y*y0), 1,1);
			}//fim for
					 for(int j=0; j<n; j++)
					 {
					 	g.setColor(Color.blue);
					 	g.drawOval((int)(num1[j]*x0+54.5), (int)(294.5-num2[j]*y0), 1,1);
				     }//fim for
		 }//fim if otro
	 }//fim paint
  }//fim classe tela
}//fim classe principal