Mensagens Recentes

Páginas: « 1 2 3 4 5 6 7 8 9 10 »
51
Programação 1 / Re:Aula 3
« Última Mensagem: por Jefferson Online Março 06, 2019, 07:15:01 am »
Exercício 6

Citar
Altere a classe Pessoa para que o objeto possua um Carro. Faça com que a pessoa consiga ligar, desligar, acelerar ou frear o próprio carro.
Atenção: Lembre-se de manter as regras de encapsulamento

Neste exercício eu uni o resultado dos exercícios 4 e 5, removi o que não era essencial na classe pessoa para melhorar a clareza e acrescentei o que foi pedido.



Código: Java
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
import java.util.Scanner;public class Exercício6 {        public static class Carro {                 private static final byte MAX_ACEL = 100;                private short velocidade;                private short RPM;                private short tempMotor;                private short tempInterna;                private short combustivelRestante;                private short posicaoChave;                private boolean statusAlternador;                private boolean statusLubrificante;                private boolean statusFreioMao;                private boolean statusFreio;                private boolean statusMotor; //false=desligado                private int aceleracao; //Poderia ser byte mas o compilador exige que seja int por causa das operações de soma                            Carro(                    ){                        velocidade=0;                        RPM=0;                        tempMotor=0;                        tempInterna=0;                        combustivelRestante=0;                        posicaoChave=0;                        statusAlternador=false;                        statusLubrificante=false;                        statusFreioMao=false;                        statusFreio=false;            }                            boolean getStatusMotor () {                        return statusMotor;                };                                 boolean ligarMotor (boolean x) {                        //Na maioria dos casos vai requerer mais código para efetivamente ligar/desligar o motor                        //E a tentativa de ligar pode falhar, o que irá mudar o valor de x                          statusMotor=x;                        return x;                }                /*"Relativa" porque no argumento eu só passo o valor que deve ser somado/subtraído                  * da aceleração corrente                */                void aceleracaoRelativa (int x) { //valores negativos implicam frenagem                        if (statusMotor==false) return;                         if ((aceleracao+x)>MAX_ACEL) {                                aceleracao=MAX_ACEL;                        }                        else {                                if (aceleracao+x<0) {                                        aceleracao=0;                                }                                 else                                aceleracao=aceleracao+x;                        }                };                 void frear () { //imediatamente                        //requer mais código para efetivamente parar o veículo                        aceleracao=0;                };                                    short getVelocidade () {return velocidade;};                short getRPM () {return RPM;};                short getTempMotor () {return tempMotor;};                short getTempInterna () {return tempInterna;};                short getCombustivelRestante () {return combustivelRestante;};                  boolean getStatusAlternador () {return statusAlternador;};                boolean getStatusLubrificante () {return statusLubrificante;};                boolean getStatusFreioMaio () {return statusFreioMao;};                boolean getStatusFreio () {return statusFreio;};                short getPosicaoChave() {return posicaoChave;}; //0=desligado, 1=ligado, 2=partida                                 void abrirPorta (byte numPorta) {};                void acionarTravas (boolean locked) {}; //estou supondo que todas as travas sejam automaticamente ativadas ou desativadas ao memso tempo                        void engrenarMarcha (byte numMarcha) {};                                void ligarLimpador (byte numLimpador, byte velLimpador) {};//velLimpador=0 desliga o limpador                void ligarFarois (byte numFarol, byte intensidade) {};//0=desligado                void ligarLuzAlta (boolean x) {};                       void ligarLanterna (byte numLanterna) {};                       void ligarDesembacador (byte numDesembacador) {};                               void ligarArCondicionado (byte intensidade) {}; //0=desligado                void ligarAlerta (boolean x){};                void acionarBuzina (boolean x){};                void LigarAlarme (boolean x){};                void AcionarVidroElet (byte numVidro, boolean subir){}; //subir=false desce             }        public static class Pessoa {                    private Carro car;        private String nome;                public Pessoa() {                nome="";                 car=new Carro();        };           } public static void main(String args[]) { Pessoa person = new Pessoa();           int opcao;        Scanner op = new Scanner(System.in);        System.out.println("Digite a opcao desejada: ");        System.out.println("1 para ligar o motor");        System.out.println("2 para desligar o motor");        System.out.println("3 para acelerar");        System.out.println("4 para desacelerar");               System.out.println("0 para abortar...");        do{         opcao = op.nextInt();        switch(opcao){        case 0:                                 System.out.println("Abortado pelo usuário.");                break;        case 1:                person.car.ligarMotor(true);                System.out.println("Motor ligado");                break;        case 2:                person.car.ligarMotor(false);                System.out.println("Motor desligado");                          break;        case 3:                if (person.car.getStatusMotor()==true) {        person.car.aceleracaoRelativa(10);                System.out.println(person.car.aceleracao);                }else System.out.println("Não pode mudar aceleração com motor desligado.");                break;        case 4:                if (person.car.getStatusMotor()==true) {                person.car.aceleracaoRelativa(-10);                        System.out.println(person.car.aceleracao);                        }else System.out.println("Não pode mudar aceleração com motor desligado.");                break;                  default:                System.out.println("Opcao invalida !!!");        }        }while(opcao != 0);        System.out.println("Programa encerrado.");        op.close();}} 

Este foi o único exercício realmente complicado para mim. Eu tive dois problemas mas somente o segundo me deixou perdido olhando para o código sem saber o que fazer.

1o Problema:

Ao tentar criar uma instância do objeto carro

Citar
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
   No enclosing instance of type Exercício6 is accessible. Must qualify the allocation with an enclosing instance of type Exercício6

(e.g. x.new A() where x is an instance of Exercício6).

   at Exercício6$Pessoa.<init>(Exercício6.java:20)
   at Exercício6.main(Exercício6.java:27)

O problema desapareceu ao declarar aa classes carro e pessoa como static

2o Problema:

Uma java.lang.NullPointerException sempre que eu tentava usar o objeto carro como propriedade do objeto pessoa.

O código a seguir mostra o problema:

Código: Java
1234567891011121314151617181920212223242526
public class Exercício6 {        public static class Carro {                public String nome;            Carro(){                nome="";            }        }        public static class Pessoa {        public Carro car;         public Pessoa() {                Carro car=new Carro();         };  } public static void main(String args[]) { Pessoa person = new Pessoa();   person.car.nome="teste";  System.out.println(person.car.nome); } }  

A causa está na linha
Carro car=new Carro();
e foi resolvido ao mudar para:
car=new Carro();
52
Programação 1 / Re:Aula 3
« Última Mensagem: por Jefferson Online Março 05, 2019, 08:31:37 pm »
Exercício 5
Citar
Crie a classe Carro e adicione a estes os seus principais atributos e métodos.
Lembre-se de adicionar métodos para ligar, desligar, acelerar e frear.
Atenção: Este objeto deve ter métodos para mostrar quando o mesmo está ligado ou desligado, isto também pode ser feito na própria ação de ligar e desligar.
Código: Java
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
 /* Eu usei o exercício 1 como modelo, retirando o que não tinha a ver com automação *  para melhorar a clareza   Ter em mente que aceleração e velocidade são propriedades distintas na vida real   Você pode estar imprimindo máxima aceleração ao veículo e a velocidade ser zero    ou estar tentando desacelerar e ainda assim a velocidade estar subindo*/ public class Carro {         public static final byte MAX_ACEL = 100;        private short velocidade;        private short RPM;        private short tempMotor;        private short tempInterna;        private short combustivelRestante;        private short posicaoChave;        private boolean statusAlternador;        private boolean statusLubrificante;        private boolean statusFreioMao;        private boolean statusFreio;        private boolean statusMotor; //false=desligado        private int aceleracao; //Poderia ser byte mas o compilador exige que seja int por causa das operações de soma            Carro(            ){                velocidade=0;                RPM=0;                tempMotor=0;                tempInterna=0;                combustivelRestante=0;                posicaoChave=0;                statusAlternador=false;                statusLubrificante=false;                statusFreioMao=false;                statusFreio=false;    }            boolean getStatusMotor () {                return statusMotor;        };                 boolean ligarMotor (boolean x) {                //Na maioria dos casos vai requerer mais código para efetivamente ligar/desligar o motor                //E a tentativa de ligar pode falhar, o que irá mudar o valor de x                  statusMotor=x;                return x;        }        /*"Relativa" porque no argumento eu só passo o valor que deve ser somado/subtraído          * da aceleração corrente        */        void aceleracaoRelativa (byte x) { //valores negativos implicam frenagem                if (statusMotor=false) return;                 if ((aceleracao+x)>MAX_ACEL) {                        aceleracao=MAX_ACEL;                }                else {                        if (aceleracao+x<0) {                                aceleracao=0;                        }                         else                        aceleracao=aceleracao+x;                }        };         void frear () { //imediatamente                //requer mais código para efetivamente parar o veículo                aceleracao=0;        };                    short getVelocidade () {return velocidade;};        short getRPM () {return RPM;};        short getTempMotor () {return tempMotor;};        short getTempInterna () {return tempInterna;};        short getCombustivelRestante () {return combustivelRestante;};          boolean getStatusAlternador () {return statusAlternador;};        boolean getStatusLubrificante () {return statusLubrificante;};        boolean getStatusFreioMaio () {return statusFreioMao;};        boolean getStatusFreio () {return statusFreio;};        short getPosicaoChave() {return posicaoChave;}; //0=desligado, 1=ligado, 2=partida                 void abrirPorta (byte numPorta) {};        void acionarTravas (boolean locked) {}; //estou supondo que todas as travas sejam automaticamente ativadas ou desativadas ao memso tempo                void engrenarMarcha (byte numMarcha) {};                        void ligarLimpador (byte numLimpador, byte velLimpador) {};//velLimpador=0 desliga o limpador        void ligarFarois (byte numFarol, byte intensidade) {};//0=desligado        void ligarLuzAlta (boolean x) {};               void ligarLanterna (byte numLanterna) {};               void ligarDesembacador (byte numDesembacador) {};                       void ligarArCondicionado (byte intensidade) {}; //0=desligado        void ligarAlerta (boolean x){};        void acionarBuzina (boolean x){};        void LigarAlarme (boolean x){};        void AcionarVidroElet (byte numVidro, boolean subir){}; //subir=false desce     } 
53
Programação 1 / Re:Aula 3
« Última Mensagem: por Jefferson Online Março 05, 2019, 02:50:10 am »
Exercício 4

Citar
Implemente uma classe Pessoa que possua como atributos nome, idade, peso (em quilogramas) e altura (em metros). Faça com que os dados sejam inicializados através do construtor da classe. Adicione métodos para ler e alterar cada um dos atributos em separado, mantendo o encapsulamento.
Atenção: Validar os dados (idade, peso e altura positivos, etc).

Não consegui pensar em nenhuma validação além da sugerida no enunciado. Qual seriam o peso, altura e idade mínimos? Estamos falando de  adultos ou recém-nascidos? Na maioria dos lugares onde peso e altura são relevantes em um cadastro não faz sentido impor restrições extras sem conhecer mais requisitos impostos aos cadastrados. Devido a possibilidade de recém nascidos eu escolhi um tipo de dados suficiente para definir a idade em meses (short) porque byte só acomodaria 127 meses ou pouco mais de dez anos.

E quanto ao nome? Como eu valido? O enunciado não menciona "nome completo" ou "nome e sobrenome", mas mesmo que mencionasse poderia ser mais útil colocar o sobrenome em uma propriedade diferente. 

Na falta de um objetivo claro eu limitei as regras de validação ao mínimo.

Código: Java
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
 public class Pessoa {                private String nome;        private short idade;        private float peso;        private float altura;         public Pessoa(                        String nome,                        short idade,                        float peso,                        float altura                        ) {                this.nome=nome;                if (peso>0) this.peso=peso; else this.peso=0;                if (altura>0) this.altura=altura; else this.altura=0;                if (idade>0) this.idade=idade; else this.idade=0;        };                public float getIdade(){                return idade;        };                public void setIdade(short x){                if (x>0) idade=x;        };                      public float getAltura(){                return altura;        };                public void setAltura(float x){                if (x>0) altura=x;        };                public float getPeso(){                return peso;        };                public void setPeso(float x){                if (x>0) peso=x;        };                      public String getNome(){                return nome;        };                public void setNome(String x){                nome=x;        };       } 
54
Programação 1 / Re:Aula 3
« Última Mensagem: por Jefferson Online Março 05, 2019, 02:34:49 am »
Exercício 3

Citar
Crie uma classe Ponto, com a capacidade de armazenar a localização de ponto no plano cartesiano, de modo que ela possua três construtores:
  • Sem parâmetros, que cria um ponto nas coordenadas (0,0)
  • Dois parâmetros de coordenadas X e Y
  • Inicializa o ponto através das coordenadas de um outro ponto recebido como parâmetro.

Código: Java
123456789101112131415161718192021
         public class Ponto {                public short x;                public short y;                                Ponto(){                        x=0;                        y=0;                                    }                                Ponto(short x, short y){                        this.x=x;                        this.y=y;                                       }                Ponto(Ponto a){                        x=a.x;                        y=a.y;                                  }                       }  
55
Programação 1 / Re:Aula 3
« Última Mensagem: por Jefferson Online Março 05, 2019, 01:34:33 am »
Exercício 2

Citar
Crie construtores personalizados para as classes Pessoa e Carro que você criou anteriormente.

Eu faltei dois dias e não sei se o professor apresentou a keyword this, mas eu usei assim mesmo porque não queria criar nomes diferentes para os argumentos.

Código: Java
123456789101112131415161718192021222324252627282930313233343536373839404142
    Pessoa(                String nome,                String sexo,                 String identidadeSexual,                 String prefSexual,                 short idade,                String tipoSanguineo,                short temperatura,                short pressao,                boolean cadeirante,                String corOlhos,                String corPele,                String corCabelos,                float peso,                float altura,                String estadoCivil,                String profissao,                String escolaridade,                String religiao,                String tatuagens                ){            this.nome=nome;            this.sexo=sexo;             this.identidadeSexual=identidadeSexual;            this.prefSexual=prefSexual;             this.tipoSanguineo=tipoSanguineo;            this.idade=idade;            this.temperatura=temperatura;            this.pressao=pressao;            this.corOlhos=corOlhos;            this.corPele=corPele;            this.corCabelos=corCabelos;            this.peso=peso;            this.altura=altura;            this.estadoCivil=estadoCivil;            this.profissao=profissao;            this.escolaridade=escolaridade;            this.religiao=religiao;            this.tatuagens=tatuagens;                } 

Código: Java
1234567891011121314151617181920212223242526272829303132333435363738
     Carro(            String fabricante,            String modelo,            String placa,            String codRenavam,            String cor,            String tipoCombustivel, //alcool, gasolina, eletrico, hibrido...            short ano,            byte numPortas,            boolean arCond,            boolean travasElet,            boolean vidrosElet,            boolean transmissao            ){            this.modelo=modelo;            this.placa=placa;            this.codRenavam=codRenavam;            this.ano=ano;            this.cor=cor;            this.numPortas=numPortas;            this.arCond=arCond;            this.travasElet=travasElet;            this.vidrosElet=vidrosElet;            this.transmissao=transmissao;            this.tipoCombustivel=tipoCombustivel;                             velocidade=0;                RPM=0;                tempMotor=0;                tempInterna=0;                combustivelRestante=0;                posicaoChave=0;                statusAlternador=false;                statusLubrificante=false;                statusFreioMao=false;                statusFreio=false;    } 
56
Programação 1 / Aula 3
« Última Mensagem: por Jefferson Online Março 04, 2019, 05:37:50 pm »
Exercício 1
Citar
Construa duas classes: Pessoa e Carro.
Coloque todos os atributos e métodos que você vislumbrar nestas classes.

Neste exercício ainda não fomos apresentados ao conceito de encapsulamento então eu não usei nenhum modificador de acesso.

Código: Java
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
public class Exercicio1 { /* O enunciado é vago e acaba dando mais trabalho que algo específico * O que colocar aqui? Propriedades físicas apenas? atributos como religião, profissão, etc? * ou propriedades provocadas por doenças crônicas como cardíaco, asmático, epilético, hipertenso e diabético? * Cadeirante? requer correção visual?* E os medos? claustrofóbico, agorafóbico, acrofóbico, etc?* Eu vou colocar apenas algumas como exercício, porque quanto mais eu penso mais propriedades possíveis aparecem        * * Além disso, eu não consigo imaginar um "método" para "pessoa". Talvez se fosse "androide"...*/public class Pessoa {                String nome;        String sexo; //biologicamente só existem dois, mas usar "true" e "false" aqui gera um polêmica desnecessária        String identidadeSexual; //Melhor criar outras propriedades do que bagunçar sexo        String prefSexual; //O Tinder tem algo assim mas chama de "interesse em"        short idade;        String TipoSanguineo;        //temperatura e pressão são itens tão facilmente mensuráveis que realmente podem constar em alguns cadastros médicos (urgência em hospitais);        short temperatura;        short pressao;        boolean cadeirante;        String corOlhos;        String corPele;        String corCabelos;        float peso;        float altura;        String estadoCivil;        String profissao;        String escolaridade;        String religiao; //relevante em um cadastro militar (como será enterrado?)        String tatuagens; //relevante em um cadstro policial} //Algumas propriedades de um carro só são importantes do ponto de vista comercial/legal. //Outras só são importantes do ponto de vista da automação//Não consigo pensar em nenhum método que não seja de automação public class Carro {                String fabricante;        String modelo;        String placa;        String codRenavam;        short ano;        String cor;        byte numPortas;        boolean arCond;        boolean travasElet;        boolean vidrosElet;        boolean transmissao;        String tipoCombustivel; //alcool, gasolina, eletrico, hibrido...                //estes atributos precisam ser definidos como private        //mas não chegamos a essa parte da aula ainda        short velocidade;        short RPM;        short tempMotor;        short tempInterna;        short combustivelRestante;        short posicaoChave;        boolean statusAlternador;        boolean statusLubrificante;        boolean statusFreioMao;        boolean statusFreio;                short getVelocidade () {return velocidade;};        short getRPM () {return RPM;};        short getTempMotor () {return tempMotor;};        short getTempInterna () {return tempInterna;};        short getCombustivelRestante () {return combustivelRestante;};          boolean getStatusAlternador () {return statusAlternador;};        boolean getStatusLubrificante () {return statusLubrificante;};        boolean getStatusFreioMaio () {return statusFreioMao;};        boolean getStatusFreio () {return statusFreio;};        short getPosicaoChave() {return posicaoChave;}; //0=desligado, 1=ligado, 2=partida                void acelerar (int valor) {}; //valores negativos implicam frenagem        void frear () {}; //imediatamente        void abrirPorta (byte numPorta) {};        void acionarTravas (boolean locked) {}; //estou supondo que todas as travas sejam automaticamente ativadas ou desativadas ao memso tempo                void engrenarMarcha (byte numMarcha) {};                        void ligarLimpador (byte numLimpador, byte velLimpador) {};//velLimpador=0 desliga o limpador        void ligarFarois (byte numFarol, byte intensidade) {};//0=desligado        void ligarLuzAlta (boolean x) {};               void ligarLanterna (byte numLanterna) {};               void ligarDesembacador (byte numDesembacador) {};                       void ligarArCondicionado (byte intensidade) {}; //0=desligado        void ligarAlerta (boolean x){};        void acionarBuzina (boolean x){};        void LigarAlarme (boolean x){};        void AcionarVidroElet (byte numVidro, boolean subir){}; //subir=false desce     }} 

Versão menos elaborada:

Código: Java
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
public class Exercicio1 { //O que colocar aqui? Propriedades físicas apenas? //Ou atributos como religião, profissão, etc //Eu não consigo imaginar um "método" para "pessoa". Ficaria mais simples se fosse "androide". public class Pessoa {                String nome;        boolean sexo; //biologicamente só existem dois        String identidadeSexual; //Melhor criar outras propriedades do que bagunçar sexo        String prefSexual; //Melhor criar outras propriedades do que bagunçar sexo        short idade;        String corOlhos;        String corPele;        String corCabelos;        float peso;        float altura;        String estadoCivil;        String profissao;        String escolaridade;        String religiao;} //Algumas propriedades de um carro só são importantes do ponto de vista comercial/legal. //Outras só são importantes do ponto de vista da automação//Não consigo pensar em nenhum método que não seja de automação public class Carro {                String modelo;        String placa;        String codRenavam;        short ano;        String cor;        byte numPortas;        boolean arCond;        boolean travasElet;        boolean vidrosElet;        boolean transmissao;        String combustivel; //alcool, gasolina, eletrico, hibrido...                void acelerar (int valor) {}; //valores negativos implicam frenagem        void frear () {}; //imediatamente        void abrirPorta (byte numPorta) {};        void acionarTravas (boolean locked) {}; //estou supondo que todas as travas sejam automaticamente ativadas ou desativadas ao memso tempo                void engrenarMarcha (byte numMarcha) {};                int getVelocidade () {};        int getRPM () {};        int getTempMotor () {};        int getTempInterna () {};        int getCombustivelRestante () {};               boolean getStatusAlternador () {};        boolean getStatusLubrificante () {};        boolean getStatusFreioMaio () {};        boolean getStatusFreio () {};         int getPosicaoChave() {}; //0=desligado, 1=ligado, 2=partida        void ligarLimpador (byte numLimpador, byte velLimpador) {};//velLimpador=0 desliga o limpador        void ligarFarois (byte numFarol, byte intensidade) {};//0=desligado        void ligarLuzAlta (boolean x) {};               void ligarLanterna (byte numLanterna) {};               void ligarDesembacador (byte numDesembacador) {};                       void ligarArCondicionado (byte intensidade) {}; //0=desligado        void ligarAlerta (boolean x){};        void acionarBuzina (boolean x){};        void LigarAlarme (boolean x){};        void AcionarVidroElet (byte numVidro, boolean subir){}; //subir=false desce     }} 
57
Programação 1 / Re:Aula 2
« Última Mensagem: por Jefferson Online Março 04, 2019, 05:31:08 am »
Exercício 2

Código fornecido pelo colega Leandro

Arquivo 1

Código: Java
123456789101112131415161718192021222324252627
 public class Principal {         public static void main(String[] args) {                Carro uno=new Carro();                uno.cor="Vermelha";                uno.potencia=1.0f;                uno.transmission=false;                                System.out.println("A cor do Carro Uno é: " + uno.cor);                System.out.println("A potência do Carro Uno é: " + uno.potencia);                System.out.print("A transmissão do Carro Uno é: ");                     if (uno.transmission) {                        System.out.println("Automática\n\n");                } else {                        System.out.println("Manual\n\n");                               }                System.out.println("A velocidade do Carro Uno é: " + uno.velocidade);                uno.acelerar(10);                System.out.println("A velocidade do Carro Uno após acelerar é: " + uno.velocidade);                uno.acelerar(15);                System.out.println("A velocidade do Carro Uno após acelerar mais uma vez é: " + uno.velocidade);                uno.frear(10);                System.out.println("A velocidade do Carro Uno após frear é: " + uno.velocidade);                        }} 

Arquivo 2

Código: Java
12345678910111213141516
public class Carro {                String cor;        float potencia;        boolean transmission;        int velocidade;                void acelerar (int valor) {                     velocidade+=valor;        }                void frear (int valor) {                        velocidade-=valor;        }} 
58
Programação 1 / Aula 2
« Última Mensagem: por Jefferson Online Março 04, 2019, 03:37:23 am »
Exercício 1

Faça um programa que leia 4 números do usuário e os imprima em ordem crescente. Utilize qualquer método de escrita e leitura que desejar.

Solução usando uma função própria de Insertion Sort:
Baseada em exemplo dado aqui.

Código: Java
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
import java.util.Scanner;public class principal {         public static void main(String[] args) {                     Scanner s=new Scanner(System.in);                 System.out.println("Número de elementos a ordenar?");                 int n=s.nextInt();                 int matriz[]=new int[n];                 System.out.println("Entre os elementos com [ENTER] após cada um: ");                 for(int i=0;i<n;i++){                    matriz[i]=s.nextInt();                 }                s.close(); //não preciso mais do scanner;                insertionSort(matriz);                System.out.print("Matriz ordenada: ");                imprimirMatriz(matriz);        }         private static void imprimirMatriz(int[] n) {             for (int i = 0; i < n.length; i++) {               System.out.print(n[i]);               if (i < n.length-1) System.out.print(", "); //imprimo exceto após o último valor            }            System.out.println("\n");        }         public static void insertionSort(int m[]) {            for (int j = 1; j < m.length; j++) {                int key = m[j];                int i = j-1;                while ( (i > -1) && ( m [i] > key ) ) {                    m [i+1] = m [i];                    i--;                }                m[i+1] = key;                //printNumbers(array); //imprime enquanto está ordenando            }        }}  

Exemplo de execução do programa:


Número de elementos a ordenar?
4
Entre os elementos com [ENTER] após cada um:
45
34
67
89
Matriz ordenada: 34, 45, 67, 89


Mas isso pode ser simplificado ainda mais com o uso das funções já existentes na classe Array:

Código: Java
12345678910111213141516171819202122232425262728
import java.util.Scanner;import java.util.Arrays; public class SortA {         public static void main(String[] args) {                     Scanner s=new Scanner(System.in);                                System.out.println("Número de elementos a ordenar?");                 int n=s.nextInt();                 int matriz[]=new int[n];                 System.out.println("Entre os elementos com [ENTER] após cada um: ");                 for(int i=0;i<n;i++){                    matriz[i]=s.nextInt();                }                                s.close(); //não preciso mais do scanner;                Arrays.sort(matriz);                System.out.print("Matriz ordenada: ");                System.out.println(Arrays.toString(matriz));        }} 

Exemplo de execução do programa:


Número de elementos a ordenar?
4
Entre os elementos com [ENTER] após cada um:
34
56
75
12
Matriz ordenada: [12, 34, 56, 75]
59
Status do fórum / Re:Modificações no fórum
« Última Mensagem: por Jefferson Online Março 03, 2019, 03:12:08 am »
Modifiquei o nível de cache do fórum do ´nível 2 para o nível 1 pelo menos enquanto eu estou fazendo modificações.
60
Estrutura de Dados / Problemas com formatação de código no fórum
« Última Mensagem: por Jefferson Online Março 03, 2019, 02:40:32 am »
Por que quando você copia código de outro lugar e cola no fórum, a indentação fica bagunçada?

Quando você formata, por exemplo, no Dev-C++, pode inadvertidamente usar uma combinação de TAB e ESPAÇO para indentar o código. Você ajusta essa combinação para a indentação ficar correta no editor, mas ao colar o código aqui o seu código vai parecer bagunçado.

Isso se deve ao fato de que o fórum  considera que cada caractere TAB é equivalente a oito caracteres ESPAÇO, quando o DevC++, por exemplo, usa o espaçamento de quatro.

Mesmo ignorando a bagunça, oito espaços para cada TAB gera uma indentação que considero excessiva. Eu ainda não sei como corrigir isso aqui no fórum, mas para prevenir que ocorra deixei desligada no Dev-C++  a opção Tools -> Editor Options -> "Use tab character". Isso supostamente converte cada TAB para um número fixo de espaços, o que vai fazer o código ficar igualmente indentado aqui e em qualquer outro lugar.

Notar que isso só afeta os TABs inseridos após essa configuração. Os caracteres já existentes no arquivo continuam.

Para trocar os TABs já existentes por espaços automaticamente usando o Dev-C++, use Search -> Replace, em Text to find tecle TAB e em Replace with tecle quatro espaços.

Para checar onde existem TABs no código, habilite Tools -> Editor Options -> Show hidden line characters
Páginas: « 1 2 3 4 5 6 7 8 9 10 »