quarta-feira, 2 de novembro de 2016

Primos e não primos em janela gráfica

Neste código apresento um bom exemplo de como encontrar
números primos e não primos através de um contador entre um e cem.
O vetor vet [ ]; foi usado para receber os cem elementos inteiros
copiados do contador.
Temos outros três vetores que foram utilizados para cópias,
e o motivo de está usando a biblioteca javafx, é só de criar as margens
e os efeitos nas fontes da janela.

Veja abaixo uma imagem do programa em execução:



Veja abaixo o código do programa:

import javafx.application.Application;
import javafx.collections.ObservableList;
import javafx.scene.Group;
import javafx.scene.Node;
import javafx.scene.Scene;
import javafx.scene.effect.*;
import javafx.scene.paint.Color;
import javafx.scene.shape.Rectangle;
import javafx.scene.text.Font;
import javafx.scene.text.FontWeight;
import javafx.scene.text.Text;
import javafx.stage.Stage;
public class PROJETO extends Application {
     Stage stage;
     Scene scene;
     @Override
     public void start ( Stage stage ) {
          stage.show ( );
          scene = new Scene ( new Group ( ), 760, 650, Color.BLACK );
          ObservableList < Node > content = ( ( Group ) scene.getRoot ( ) )
                     .getChildren ( );
          stage.setScene ( scene );
          stage.setTitle ( "PRIMOS E NÃO PRIMOS" );
          content.add ( Vetor ( ) );
          content.add ( Vetor_1 ( ) );
          content.add ( Vetor_2 ( ) );
     }
     static Node Vetor ( ) {
          String pl = "";
          String pl_1 = "";
          String pl_2 = "";
          String pl_3 = "";
          String pl_4 = "";
          String pl_5 = "";
          String pl_6 = "";
          String pl_7 = "";
          String tudo = "";
          int b = 0, e = 0, f = 0;
          int i, j, maior = 0, menor = 0;
          boolean xx = true;
          int n = 100, a = 0, c = 0, q = 0, s = 0;
          int reais [ ] = new int [ n ];
          int Vet [ ] = new int [ n ];
          int Vet_1[] = new int [ n ];
          int Vet_2[] = new int [ n ];
          for ( i = 1; i <= n; i++ ) {
                reais [ a ] = i;
                a++;
          }
          for ( i = 0; i < n; i++ ) {
                tudo = tudo + reais [ i ];
                if ( i == 19 ) {
                     tudo += ( "\n" );
                }
                if ( i == 39 )
                     tudo += ( "\n" );
                if ( i == 59 )
                     tudo += ( "\n" );
                if ( i == 79 )
                     tudo += ( "\n" );
                tudo += ( "  " );
          }
          //////////////////////////////////////////////////////////////////////
          Group g = new Group ( );
          Rectangle r = new Rectangle ( );
          r.setX ( -20 );// lado esquerdo
          r.setY ( 25 );// cima
          r.setWidth ( 700 );// lado direito
          r.setHeight ( 600 );// baixo
          r.setFill ( Color.WHITE );
          Text t = new Text ( );
          t.setText ( tudo );//Imprime o vetor
          t.setFill ( Color.BLACK );
          t.setFont ( Font.font ( null, FontWeight.BOLD, 16 ) );
          t.setX ( 25 );
          t.setY ( 100 );
          g.setCache ( true );
          g.getChildren ( ).add ( r );
          g.getChildren ( ).add ( t );
          g.setTranslateX ( 50 );
          //////////////////////////////////////////////////////////////////////
          Text tt = new Text ( );
          tt.setFill ( Color.BLACK );
          tt.setFont ( Font.font ( null, FontWeight.BOLD, 16 ) );
          tt.setX ( 25 );
          tt.setY ( 340 );
          g.getChildren ( ).add ( tt );
          Text t_t = new Text ( );
          t_t.setFill ( Color.RED );
          t_t.setFont ( Font.font ( null, FontWeight.BOLD, 16 ) );
          t_t.setX ( 210 );
          t_t.setY ( 340 );
          g.getChildren ( ).add ( t_t );
          //////////////////////////////////////////////////////////////////////
          Text tt_1 = new Text ( );
          tt_1.setFill ( Color.BLACK );
          tt_1.setFont ( Font.font ( null, FontWeight.BOLD, 16 ) );
          tt_1.setX ( 25 );
          tt_1.setY ( 320 );
          g.getChildren ( ).add ( tt_1 );
          Text tt_2 = new Text ( );
          tt_2.setFill ( Color.RED );
          tt_2.setFont ( Font.font ( null, FontWeight.BOLD, 16 ) );
          tt_2.setX ( 210 );
          tt_2.setY ( 320 );
          g.getChildren ( ).add ( tt_2 );
          if ( xx ) {
                Text tt_3 = new Text ( );
                Text tt_4 = new Text ( );
                Text tt_5 = new Text ( );
                Text tt_6 = new Text ( );
                Text tt_7 = new Text ( );
                Text tt_8 = new Text ( );
                Text tt_9 = new Text ( );
                Text tt_10 = new Text ( );
                Text tt_11 = new Text ( );
                Text tt_12 = new Text ( );
                Text tt_13 = new Text ( );
                Text tt_14 = new Text ( );
                Text tt_15 = new Text ( );
                Text tt_16 = new Text ( );
                Text tt_17 = new Text ( );
                Text tt_18 = new Text ( );
                ////////////////////////////////////////////////////////////////
                tt_3.setText ( "Abaixo os 25 números primos entre 1 e 100" );
                tt_3.setFill ( Color.GREEN );
                tt_3.setFont ( Font.font ( null, FontWeight.BOLD, 16 ) );
                tt_3.setX ( 170 );
                tt_3.setY ( 230 );
                for ( i = 2; i <= n; i++ ) {
                     int ePrimo = 1;
                     for ( j = 2; j <= i / 2; j++ ) {
                          if ( i % j == 0 ) {
                               ePrimo = 0;
                               break;
                          }
                     }
                     if ( ePrimo == 1 ) {
                          b++;
                          Vet [ b ] = i;
                          Vet_1 [ c ] = Vet [ b ];
                          c++;
                          q += ePrimo;
                          if ( i == 43 ) {
                               pl += ( "\n" );
                          }
                          pl += ( " " );
                          pl += i;
                     }
                }
                ////////////////////////////////////////////////////////////////
                menor = Vet_1 [ 0 ];
                for ( i = 0; i < q; i++ ) {
                     if ( Vet_1 [ i ] < menor )
                          menor = Vet_1 [ i ];
                     if ( Vet_1 [ i ] > maior )
                          maior = Vet_1 [ i ];
                }
                pl_4 += menor;
                pl_5 += maior;
                ////////////////////////////////////////////////////////////////
                tt_4.setText ( pl );//Imprime os números primos
                tt_4.setFill ( Color.RED );
                tt_4.setFont ( Font.font ( null, FontWeight.BOLD, 16 ) );
                tt_4.setX ( 25 );//coordenadas dos valores primos
                tt_4.setY ( 270 );//coordenadas dos valores primos
                tt_5.setText ( "Quantidade de números primos é " );
                tt_5.setFill ( Color.GREEN );
                tt_5.setFont ( Font.font ( null, FontWeight.BOLD, 16 ) );
                tt_5.setX ( 25 );
                tt_5.setY ( 470 );
                pl_2 += q;
                tt_6.setText ( pl_2 );
                //Imprime o valor da quantidade de primos
                tt_6.setFill ( Color.RED );
                tt_6.setFont ( Font.font ( null, FontWeight.BOLD, 16 ) );
                tt_6.setX ( 350 );
                tt_6.setY ( 470 );
                ////////////////////////////////////////////////////////////////
                for ( i = 2; i <= n; i++ ) {
                     int ePrimo = 1;
                     for ( j = 2; j <= i / 2; j++ ) {
                          if ( i % j == 0 ) {
                               ePrimo = 0;
                               break;
                          }
                     }
                     if ( ePrimo == 0 ) {
                          ePrimo = 1;
                          e++;
                          Vet [ e ] = i;
                          Vet_2 [ f ] = Vet [ e ];
                          f++;
                          s += ePrimo;
                          if ( i == 33 ) {
                               pl_1 += ( "\n" );
                          }
                          if ( i == 56 ) {
                               pl_1 += ( "\n" );
                          }
                          if ( i == 80 ) {
                               pl_1 += ( "\n" );
                          }
                    pl_1 += ( " " );
                          pl_1 = pl_1 + i;
                     }
                }
                ////////////////////////////////////////////////////////////////
                menor = Vet_2 [ 0 ];
                for ( i = 0; i < s; i++ ) {
                     if ( Vet_2 [ i ] < menor )
                          menor = Vet_2 [ i ];
                     if ( Vet_2 [ i ] > maior )
                          maior = Vet_2 [ i ];
                }
                pl_6 += menor;
                pl_7 += maior;
                pl_3 += s;
                ////////////////////////////////////////////////////////////////
                tt_7.setText ( "Abaixo os 74 números não primos entre 1 e 100" );
                tt_7.setFill ( Color.GREEN );
                tt_7.setFont ( Font.font ( null, FontWeight.BOLD, 16 ) );
                tt_7.setX ( 170 );
                tt_7.setY ( 330 );
                tt_8.setText ( pl_1 );//Imprime os valores não primos
                tt_8.setFill ( Color.BLUE );
                tt_8.setFont ( Font.font ( null, FontWeight.BOLD, 16 ) );
                tt_8.setX ( 25 );//coordenadas dos valores não primos
                tt_8.setY ( 370 );//coordenadas dos valores não primos
                ////////////////////////////////////////////////////////////////
                tt_9.setText ( "Quantidade de números não primos é ");
                //Imprime os valores não primos
                tt_9.setFill ( Color.GREEN );
                tt_9.setFont ( Font.font ( null, FontWeight.BOLD, 16 ) );
                tt_9.setX ( 25 );
                tt_9.setY ( 490 );
                tt_10.setText ( pl_3 );
                //Imprime a quantidade de não primos
                tt_10.setFill ( Color.RED );
                tt_10.setFont ( Font.font ( null, FontWeight.BOLD, 16 ) );
                tt_10.setX ( 350 );
                tt_10.setY ( 490 );
               /////////////////////////////////////////////////////////////////
                tt_11.setText ( "O menor número primo é " );
                tt_11.setFill ( Color.GREEN );
                tt_11.setFont ( Font.font ( null, FontWeight.BOLD, 16 ) );
                tt_11.setX ( 25 );
                tt_11.setY ( 510 );
                tt_12.setText ( pl_4 );//Imprime o menor número primo
                tt_12.setFill ( Color.RED );
                tt_12.setFont ( Font.font ( null, FontWeight.BOLD, 16 ) );
                tt_12.setX ( 360 );
                tt_12.setY ( 510 );
                tt_13.setText ( "O maor número primo é " );
                tt_13.setFill ( Color.GREEN );
                tt_13.setFont ( Font.font ( null, FontWeight.BOLD, 16 ) );
                tt_13.setX ( 25 );
                tt_13.setY ( 530 );
                tt_14.setText ( pl_5 );//Imprime o maior número primo
                tt_14.setFill ( Color.RED );
                tt_14.setFont ( Font.font ( null, FontWeight.BOLD, 16 ) );
                tt_14.setX ( 350 );
                tt_14.setY ( 530 );
               /////////////////////////////////////////////////////////////////
                tt_15.setText ( "O menor número não primo é " );
                tt_15.setFill ( Color.GREEN );
                tt_15.setFont ( Font.font ( null, FontWeight.BOLD, 16 ) );
                tt_15.setX ( 25 );
                tt_15.setY ( 550 );
                tt_16.setText ( pl_6 );//Imprime o menor número não primo
                tt_16.setFill ( Color.RED );
                tt_16.setFont ( Font.font ( null, FontWeight.BOLD, 16 ) );
                tt_16.setX ( 360 );
                tt_16.setY ( 550 );
                tt_17.setText ( "O maor número não primo é " );
                tt_17.setFill ( Color.GREEN );
                tt_17.setFont ( Font.font ( null, FontWeight.BOLD, 16 ) );
                tt_17.setX ( 25 );
                tt_17.setY ( 570 );
                tt_18.setText ( pl_7 );//Imprime o maior número não primo
                tt_18.setFill ( Color.RED );
                tt_18.setFont ( Font.font ( null, FontWeight.BOLD, 16 ) );
                tt_18.setX ( 350 );
                tt_18.setY ( 570 );
               /////////////////////////////////////////////////////////////////
                g.getChildren ( ).add ( tt_3 );
                g.getChildren ( ).add ( tt_4 );
                g.getChildren ( ).add ( tt_5 );
                g.getChildren ( ).add ( tt_6 );
                g.getChildren ( ).add ( tt_7 );
                g.getChildren ( ).add ( tt_8 );
                g.getChildren ( ).add ( tt_9 );
                g.getChildren ( ).add ( tt_10 );
                g.getChildren ( ).add ( tt_11 );
                g.getChildren ( ).add ( tt_12 );
                g.getChildren ( ).add ( tt_13 );
                g.getChildren ( ).add ( tt_14 );
                g.getChildren ( ).add ( tt_15 );
                g.getChildren ( ).add ( tt_16 );
                g.getChildren ( ).add ( tt_17 );
                g.getChildren ( ).add ( tt_18 );
          }
          return g;
     }
    ////////////////////////////////////////////////////////////////////////////
     static Node Vetor_1 ( ) {
          Group g = new Group ( );
          String Msg = "MUITO OBRIGADO";
          DropShadow ds = new DropShadow ( );
          ds.setOffsetY ( 3.0f );
          ds.setColor ( Color.color ( 0.4f, 0.4f, 0.4f ) );
          Text t = new Text ( );
          t.setEffect ( ds );
          t.setCache ( true );
          t.setX ( -60.0f );
          t.setY ( 610.0f );
          t.setFill ( Color.RED );
          t.setText ( Msg );
          t.setFont ( Font.font ( null, FontWeight.BOLD, 26 ) );
          g.setCache ( true );
          g.setEffect ( new Bloom ( ) );
          g.getChildren ( ).add ( t );
          g.setTranslateX ( 350 );
          return g;
     }
     ///////////////////////////////////////////////////////////////////////////
     static Node Vetor_2 ( ) {
          Group g = new Group ( );
          String Msg = "PRIMOS E NÃO PRIMOS";
          Rectangle r = new Rectangle ( );
          DropShadow ds = new DropShadow ( );
          ds.setOffsetY ( 3.0f );
          ds.setColor ( Color.color ( 0.4f, 0.4f, 0.4f ) );
          Text t = new Text ( );
          t.setEffect ( ds );
          t.setCache ( true );
          t.setX ( 230.0f );
          t.setY ( 60.0f );
          t.setFill ( Color.RED );
          t.setText ( Msg );
          t.setFont ( Font.font ( null, FontWeight.BOLD, 22 ) );
          g.setCache ( true );
          g.setEffect ( new Bloom ( ) );
          g.getChildren ( ).add ( r );
          g.getChildren ( ).add ( t );
          g.setTranslateX ( 50 );
          return g;
     }
    ////////////////////////////////////////////////////////////////////////////
    public static void main ( String [ ] args ) {
          Application.launch ( args );
     }

}

Nenhum comentário:

Postar um comentário

Observação: somente um membro deste blog pode postar um comentário.