Ir para conteúdo
Fórum Script Brasil

Joelson Silva

Membros
  • Total de itens

    16
  • Registro em

  • Última visita

Posts postados por Joelson Silva

  1. pessoal estou precisando de um help dos senhores,

    1 - como  faço para chamar o metodo dentro do metodo principal o main,

         exibir suas informações, só estou conseguindo exibir dentro do proprio método.

    2 - passar o resultado do metodo "contImparesPares()" para "proximoMetodo()" para ser usado.

         eu pergunto se é preciso retorna o resultado do metodo "contImparesPares()", para metodo principal para ser usado          no "proximoMetodo()" ou posso fazer direto do metodo para metodo.

    aguardo pela ajuda.

     

    package br.Exercicio;

    public class MetodoImparPar {

        public static void main(String[] args) {

            int tam = 6;
            int[] vetA = {13, 10, 17, 14, 25, 26};

            contImparesPares(vetA, tam);

        }

        public static void contImparesPares(int[] vetA, int tam) {

            int[] impar = new int[6];
            int[] par = new int[6];

            int contImpar = 0, contPar = 0;
            for (int i = 0; i < tam; i++) {
                if (vetA[i] % 2 == 1) {
                    impar[i] = impar[i] + vetA[i];
                    contImpar++;
                } else {
                    par[i] = par[i] + vetA[i];
                    contPar++;
                }
            }
            for (int i = 0; i < tam; i++) {
                System.out.print(impar[i] + " ");
            }
            System.out.println();

            for (int i = 0; i < tam; i++) {
                System.out.print(par[i] + " ");
            }
            System.out.println();

            System.out.print(" qtde impares: " + contImpar);
            System.out.print(" qtde impares: " + contPar);

        }

        public static void proximoMetodo(int[] impar, int[] par, int contImpar, int contPar) {

        }

    }

  2. pessoal tenho uma duvida de como fazer para controlar o ciclo do "for", desde já agradeço.

    passo 1: o primeiro procedimento1 vai até chegar na sequencia 1 2 4 e exibe, chamar o segundo procedimento2.

    passo2: o segundo procedimento2, vai até chegar na sequencia 1 4 e exibe,

    passo3: chamar o primeiro  procedimento1, que parou na sequencia 1 2 4, gerar a sequencia 1 2 5, 1 3 4 exibe, chamar o passo 2 

    passo2: chamar o segundo  procedimento2, que parou na sequencia 1 4, gerar a sequencia 1 5, 2 3, 2  4 exibe ate teminar as sequencias. 

    algoritmo "semnome"
    // Função :
    // Autor :
    // Data : 15/11/2022
    // Seção de Declarações 
    var
    vetA: vetor[1..3]de inteiro
    vetB: vetor[1..2]de inteiro

    procedimento procediment1
    var
    i,j,x,p1,p2,p3:inteiro
    inicio
    // Seção de Comandos

    para i de 1 ate 5 faca
     vetA[1]:= i
    para j de i+1 ate 5 faca
     vetA[2]:= j
    para x de j+1 ate 5 faca
     vetA[3]:= x
      escreval(vetA[1],vetA[2],vetA[3])
      
    fimpara
    fimpara
    fimpara
    fimprocedimento

    procedimento procediment2
    var
    i,j:inteiro
    inicio
    // Seção de Comandos 
    para i de 1 ate 5 faca
      vetB[1]:= i
    para j de i+1 ate 5 faca
      vetB[2]:= j
      escreval(vetB[1],vetB[2])
      combinar1
    fimpara
    fimpara
    fimprocedimento


    inicio
    combinar1
    combinar

    fimalgoritmo

     

  3. Estou tentando inverte a posição sem repetir posição, para qualquer tamanho.

    exemplo:

    1 2 3

    2 1 3

    3 1 2

    algoritmo "exericio"
    // Função :
    // Autor :
    // Data : 25/10/2022
    // Seção de Declarações
    var

    num,valor,cont,i,ultvalor:inteiro

    inicio
    // Seção de Comandos

    escreva("Digite numero:")
    leia(num)

    cont:=1
    enquanto cont <> num faca

         para i de cont ate 3 faca
           ultvalor:=cont
           se(i = 1)então
              escreva(i)
           fimse
           se(i <> ultvalor)então
              escreva(i)
           senao
             ultvalor:=ultvalor+1
           fimse
         fimpara
         escreval
         cont:=cont+1
         valor:=ultvalor
    fimenquanto

    fimalgoritmo

  4. Preencha um vetor de numeros inteiros para 10 posições, contar a qtde numeros em sequencia.

    sendo que os numeros em sequencias não se repetem, tipo: 11, 222,11.

    exenplo sequencias a encontrar:

      vetor        1, 3 4, 6 7 8 9, 2, 10. 

    contagem  1,    2,       4,   1,   1,  = minha sequencia seria: 12411

    outra

      vetor        1, 3, 5 ,7 , 9. 

    contagem  1, 1, 1, 1, 1 = minha sequencia seria: 11111

    package teste;

    public class ContSeq2 {

      public static void main(String[] args) {
            int[] vetor = {1,3,4,6,7,8,9,2,10}; //12411
            //int[] vetor = {1,3,5,7,9}; //11111

            int cont = 0;
            StringBuilder str = new StringBuilder();

            String c = String.valueOf(vetor[0]);

            for (int i = 0; i < vetor.length; i++) {
                if (i < vetor.length - 1) {
                    if (vetor[i] + 1 == vetor[i + 1]) {
                        cont++;
                        continue;
                    }
                }
                if(cont == 1) {
            str.append(c).append(",").append(vetor[i]);
            cont=0;        
                }else if (cont > 1) {
                    str.append(c).append(" a ").append(vetor[i]);
                    cont = 0;
                } else {
                    str.append(vetor[i]);
                }

                if (i < vetor.length - 1) {
                    str.append(",");
                    c = String.valueOf(vetor[i + 1]);
                }
            }

            System.out.println(str);
        }
    }

     

     

     

  5. Onde estou errando na verificação da matriz.

    Procurar na linha da matriz, números iguais em suas respectivas posições e remover da matriz   

     

    algoritmo "matriz"
    // Função :
    // Autor : joelson
    // Data : 22/02/2021
    // Seção de Declarações
    var
    vetA: vetor[1..3]de inteiro
    vetBimpar: vetor[1..3]de inteiro
    j,i,x,k,linha,coluna,repetido,contImpar,cont,total:inteiro
    matriz: vetor[1..10,1..3]de inteiro

    inicio
    // Seção de Comandos

    total:=0

    enquanto total < 10 faca
       total:=total+1

       escreval("Digite o Vetor de um total de 10:,[",total,"]")
       para j de 1 ate 3 faca
         escreva("Vetor:[",j,"]")
         leia(vetA[j])
       fimpara
       escreval()

    //achar numeros impares
      para i de 1 ate 3 faca
        se(vetA[i] mod 2 = 1)então
          vetBimpar[i]:= vetA[i]
        fimse
      fimpara

     
      PARA k DE 1 ATE CONT FACA
       repetido:=0
        PARA linha DE 1 ATE 3 FACA
          PARA coluna DE 1 ATE 3 FACA
            SE(vetBimpar[linha] = matriz[K,coluna])então
               repetido:=repetido+1
            fimse
          FIMPARA
        FIMPARA

     fimenquanto

       //escrever a matriz depois dos cinco valores digitados
       escrevaL(" exibir Matriz")
       escrevaL("__________________")
       
       PARA linha DE 1 ATE 3 FACA
          PARA coluna DE 1 ATE 3 FACA
          escreva(matriz[linha,coluna])
       FIMPARA
          escreval()
       FIMPARA

      contImpar:=0
      vetBimpar[1]:=0
      vetBimpar[2]:=0
      vetBimpar[3]:=0

    escreval("Total digitados: ", total)
    fimalgoritmo

  6. Bom dia

    Fechamento para acerto de terno na quina.

    o objetivo e acertar a logica do fechamento.

    Combinando 8 dezenas de grupos de 5 é igual 56 volantes, dentro desses 56 volantes a vários ternos repetidos, gostaria de remover esses ternos repetidos.

    detalhe não se preocupem com gerador ou quantidade para combinar.

    minha duvida:

    no código abaixo ele me apresenta a seguinte matriz.
    onde está o meu erro de logica, pois tem conjunto de três iguais
    que não encontro no fechamento na matriz abaixo.

    está na matriz abaixo, tem:
    123, 124, 125,134,135,145,234,234,345,
    126,127,128,267,267,278,345,346,347,356,357,367.

    não está na matriz abaixo, não tem:
    1 3 6; 1 3 7; 1 3 8; 1 4 6; 1 4 7; 1 4 8; 1 5 6; 1 5 7; 1 5 8;
    2 3 6; 2 3 7; 2 3 8; 2 4 5; 2 4 6; 2 4 7; 2 4 8; 2 5 6; 2 5 7;
    2 5 8; 2 6 7; 2 6 8; 2 7 8; 3 4 8; 3 5 6; 3 5 7; 3 5 8; 3 6 7;
    3 6 8; 3 7 8; 4 5 8; 4 6 7; 4 6 8; 4 7 8; 5 6 8; 5 7 8; 6 7 8;

    matriz do código:
    1 2 3 4 5
    1 2 6 7 8
    3 4 5 6 7

    como a matriz deve ficar:
    1 2 3 4 6;
    1 2 3 5 8;
    1 2 4 7 8;
    1 3 6 7 8;
    1 4 5 6 7;
    2 3 4 5 7;
    2 5 6 7 8;
    3 4 5 6 8;

    package br.Exercicio;

    import java.util.Scanner;

    public class CombinaReduzido {

        public static void main(String[] args) {
            Scanner scan = new Scanner(System.in);
            int[] vetA = new int[5];
            int[][] array = new int[99999][5];       
            
            int num = 0, iguais = 0,cont = 0, total = 0;

            System.out.println("Digite numero Comb:");
            num = scan.nextInt();

            for (int n1 = 1; n1 <= num; n1++) {
                vetA[0] = n1;
                for (int n2 =n1 + 1;n2 <= num; n2++) {
                    vetA[1] = n2;
                    for (int n3 =n2 + 1;n3 <= num; n3++) {
                        vetA[2] = n3;
                        for (int n4 =n3 + 1;n4 <= num; n4++) {
                            vetA[3] = n4;
                            for (int n5 =n4 + 1;n5 <= num; n5++) {
                                vetA[4] = n5;

                                total++;                           
                               
                                
                                 for (int t = 0; t <= cont; t++) {                                
                                     iguais = 0;                                 
                                    for (int i = 0; i < 5; i++) {
                                        for (int j = 0; j < 5; j++) {                                        
                                            if (vetA == array[t][j]) {
                                                iguais = iguais + 1;
                                            }
                                                
                                            
                                        }
                                    }
                                    if (iguais > 3) {
                                        break;
                                    }
                                }
                                if (iguais < 3) {
                                    cont = cont + 1;
                                    for (int x = 0; x < 5; x++) {
                                        array[cont][x] = vetA[x];
                                    }
                                    System.out.println(" "+vetA[0]+" "+vetA[1]+" "+ vetA[2]+" "+ vetA[3]+" "+vetA[4]);
                                }

                            }                        
                        }
                    }
                }
            }
            System.out.println("reduzidos:"+ cont);
        System.out.println("total gerados:"+ total);
        }
    }
     

  7. Leonardo 

    http://loteriaeconomica.blogspot.com/2011/07/minimos-matematicos.html

    eu coloquei endereço acima, para você entender melhor,  o padrão abaixo de como aplicar, ou seja o código ele atinge condição é não a garantia. 

    V = Total de dezenas da matriz
    K = Tamanho dos blocos (qtd de dezenas do bilhete)
    T = Garantia
    M = Condição

    V=:8

    K=:5

    T:=3

    M:=3

     

    aqui tá todas as sequencias de três : 123, 124, 125, 126, 127, 128, 134, 135, 136, 137, 138, 145, 146, 147, 148, 156, 157, 158, 167, 168, 178, 234, 235, 236, 237, 238, 245, 246, 247, 248,  256, 257, 258, 267, 268, 278, 345, 346, 347, 348, 356, 357, 358, 367, 368, 378, 456, 457, 458, 467, 468, 478, 567, 568, 578, 678. 

    A matriz abaixo, possui pelo menos 01 volante com a garantia de 3 acertos iguais, ou seja se você procurar qualquer conjunto da sequencia acima você acha na matriz abaixo, foi o que eu não conseguir atingir.

    12346

    12358

    12478

    13678

    14567

    23457

    25678

    34568

    duvidas é só chamar, aguardo sua resposta.

    abraço.

  8. Leonardo meu querido a sequencia ainda esta furada, mais a matriz abaixo ela

    atinge o objetivo, tem todas as sequencias de 3.

    1 2 3 4 6
    1 2 3 5 8
    1 2 4 7 8
    1 3 6 7 8
    1 4 5 6 7
    2 3 4 5 7
    2 5 6 7 8
    3 4 5 6 8

    Talvez para se atinge a matriz acima seja o esquema abaixo, como ela foi feita deslocando as combinações, assim cada dezena tem as mesma quantidade a 1 repete 5 vezes e assim por diante, de mais essa analisada me diga qual o melhor caminho.

     obrigado.

    um abraço.

     

  9. Muito obrigado Leonardo foi de grande ajuda. mais a sequencia está furada, veja que se eu escolher 8 números para formar conjuntos 5 em 5, o total da 56 volantes, aplicando a redução para se ter 3 acerto, o código apresentar o seguinte resultado:

    1 2 3 4 5
    1 2 3 6 7
    1 2 4 6 8
    1 2 5 7 8
    1 3 4 7 8
    1 3 5 6 8
    1 4 5 6 7

    as seguintes sequencias no reduzido só tem 2 acerto:> 2 3 8; 247;256;346;357;367;378;458;678

    Bem a sua logica não esta errada, porque você está olhando para o sorteio que são 5 dezenas, conferindo com as 5, assim vai esta contigo o conjunto de 3, mais como o objetivo e ter apenas os 3 o algoritmo precisa de uma modificação.

  10. Olá pessoal 

    Estou precisando de uma ajuda no código abaixo, estou fazendo exercício sobre a loteria, o que é para fazer,

    Dentro de um universo de numero no nosso caso eu escolhi 8 dezenas combinadas de 5 em 5, eu tenho que encontrar todas as sequencias de 3 ou seja 3 acerto iguais.

    exemplo, 123,124,125,126,127 até ultima 678.

    mais tem algum erro no código porque tem volantes se repetindo números a mais, veja no volantes 1 e volantes 3, ele repete 4 números iguais, o mesmo acontece para outro caso volantes 2=: 1 2 3 6 7 e volantes 5=: 1 2 5 6 7.

    segue o código abaixo para uma correção.

    Agradeço quem pode dar uma luz.

    obrigado.

    volantes 1=: 1 2 3 4 5
    volantes 2=: 1 2 3 6 7
    volantes 3=: 1 2 4 5 6
    volantes 4=: 1 2 4 7 8
    volantes 5=: 1 2 5 6 7
    volantes 6=: 1 3 4 5 6
    volantes 7=: 1 3 4 7 8
    volantes 8=: 1 3 5 6 7
    volantes 9=: 1 4 5 6 8
    volantes 10=: 2 3 4 5 6
    volantes 11=: 2 3 4 7 8
    volantes 12=: 2 3 5 6 7
    volantes 13=: 2 4 5 6 8
    volantes 14=: 3 4 5 6 7
    reduzidos: 14
    total gerados: 56
     

    algoritmo "loteria"

    var
    vetA: vetor[1..5]de inteiro
    vetB: vetor[1..5]de inteiro


    num,i,j,iguais,d,x,a,cont,total:inteiro
    n1,n2,n3,n4,n5:inteiro
    inicio
    // Seção de Comandos

    escreva("informe numero:")
    leia(num)

    para n1 de 1 ate num faca
    vetA[1]:= n1
    para n2 de n1+1 ate num faca
    vetA[2]:= n2
    para n3 de n2+1 ate num faca
    vetA[3]:= n3
    para n4 de n3+1 ate num faca
    vetA[4]:= n4
    para n5 de n4+1 ate num faca
    vetA[5]:= n5

    total:= total + 1


     para i de 1 ate 5 faca
      para j de 1 ate 5 faca
       se(vetA = vetB[j])então
          iguais:=iguais + 1
       fimse
      fimpara
      fimpara

       se(iguais = 3)ou(iguais = 0)então
         para x de 1 ate 5 faca
          vetB[x]:= vetA[x]
         fimpara
         a:=a + 1
         escrevaL("volantes",a,"=:",vetA[1],vetA[2],vetA[3],vetA[4],vetA[5])
         cont:=cont + 1
       fimse


     //************************************
     x:=0
     iguais:=0

    fimpara
    fimpara
    fimpara
    fimpara
    fimpara
    escreval("reduzidos:", cont)
    escreval("total gerados:", total)
    fimalgoritmo

×
×
  • Criar Novo...