
AdrianoSiqueira
Membro Pleno-
Posts
1.273 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Livros
Cursos
Análises
Fórum
Tudo que AdrianoSiqueira postou
-
Todos são ou já foram iniciantes alguma vez, afinal, temos que começar de algum lugar. Às vezes lendo um código para um determinado problema ajuda a aprender alguma técnica que pode ser útil mais para frente. Hoje pode ser apenas uma cola, mas amanhã pode se deparar com um problema, cuja a resposta de hoje ajuda na solução. Isso se a pessoa, copia e estuda, agora se copia, cola e só entrega, aí não tem jeito...
-
Usando loop e função, o resultado fica um tanto simples, como o @nickosoft disse, não tem como prever em qual jogada o resultado aparecerá. Uma possível abordagem poderia ser essa: #include <stdio.h> #include <stdlib.h> #include <time.h> int lancarDado(); int main() { int status = 0; // [ -1 ] Derrota | [ 0 ] Continuar | [ 1 ] Vitoria int jogada = 0; // Soma dos dados int ponto = 0; // Objetivo de vitoria (a partir da segunda jogada) srandom(time(NULL)); // Primeira rodada jogada = lancarDado() + lancarDado(); if (jogada == 7 || jogada == 11) { status = 1; } else if (jogada == 2 || jogada == 3 || jogada == 12) { status = -1; } else { status = 0; ponto = jogada; // Rodadas subsequentes while (status == 0) { jogada = lancarDado() + lancarDado(); if (jogada == ponto) { status = 1; } else if (jogada == 7) { status = -1; } } } if (status == -1) { printf(">> voce perdeu. \n"); } else { printf(">> voce venceu. \n"); } return EXIT_SUCCESS; } /** * Realiza a jogada de um dado. * * @return Um inteiro aleatorio entre 1 (inclusive) e 6 (inclusive). */ int lancarDado() { return (int) random() % 6 + 1; } Leia o código com calma, e atente-se principalmente ao loop dentro else.
-
Java Atividade Programação em Java
AdrianoSiqueira respondeu ao tópico de Hector Patrick em Java/Android SDK
Isso foi discutido aqui. -
Java Problemas ao utilizar o Sacnner
AdrianoSiqueira respondeu ao tópico de Verônica Xavier Gabardo em Java/Android SDK
Esse tópico está sendo discutido aqui. -
Java Calculadora geométrica em Java
AdrianoSiqueira respondeu ao tópico de Verônica Xavier Gabardo em Java/Android SDK
Alguns problemas no código: Você sabe que todos os triângulos possuem 3 lados, certo? Pois bem, a classe Triangulo deveria saber isso também, bem como a classe Retangulo. Essa informação não deveria ser recebida pelo construtor uma vez que está implícita na própria essência da forma geométrica. Salvo a classe Poligono, pois ela é genérica e não tem como adivinhar, então ela tem que receber essa informação de alguma forma, que no caso foi via construtor. O atributo area deveria estar na classe Poligono, pois todos os polígonos possuem essa característica. Os laços de repetição na classe Principal estavam com uma lógica estranha, então substituí por um simples do-while. package geometria; public abstract class Poligono { private int lados; private double area; public Poligono() { this(0); } public Poligono(int lados) { this.lados = lados; this.area = 0.0; } public int getLados() { return lados; } public void setLados(int lados) { this.lados = lados; } public double getArea() { return area; } public void setArea(double area) { this.area = area; } public abstract void relatorio(); public abstract void calcularArea(); } package geometria; public class Retangulo extends Poligono { private double largura; private double altura; public Retangulo() { this(0.0, 0.0); } public Retangulo(double largura, double altura) { super(4); this.largura = largura; this.altura = altura; } public double getLargura() { return largura; } public void setLargura(double largura) { this.largura = largura; } public double getAltura() { return altura; } public void setAltura(double altura) { this.altura = altura; } @Override public void relatorio() { System.out.println("Forma: retângulo \n" + "Quantidade de lados: " + super.getLados() + "\n" + "Largura: " + this.getLargura() + "\n" + " Altura: " + this.getAltura() + "\n" + " Area: " + super.getArea()); } @Override public void calcularArea() { super.setArea(largura * altura); } } package geometria; public class Triangulo extends Poligono { private double base; private double altura; public Triangulo() { this(0.0, 0.0); } public Triangulo(double base, double altura) { super(3); this.base = base; this.altura = altura; } public double getBase() { return base; } public void setBase(double base) { this.base = base; } public double getAltura() { return altura; } public void setAltura(double altura) { this.altura = altura; } @Override public void relatorio() { System.out.println("Forma: triângulo \n" + "Quantidade de lados " + super.getLados() + "\n" + " Base: " + this.getBase() + "\n" + "Altura: " + this.getAltura() + "\n" + " Area: " + super.getArea()); } @Override public void calcularArea() { super.setArea(base * altura / 2); } } package geometria; import java.util.Scanner; public class Principal { public static void main(String[] args) { Scanner teclado = new Scanner(System.in); int lados; do { System.out.print("Digite o número de lados do polígono ou zero para encerrar: "); lados = teclado.nextInt(); teclado.nextLine(); if (lados == 0) { System.out.println("Aplicação encerrada!"); } else if (lados == 3) { Triangulo t = new Triangulo(); System.out.print(" Digite a base: "); t.setBase(teclado.nextDouble()); System.out.print("Digite a altura: "); t.setAltura(teclado.nextDouble()); t.calcularArea(); t.relatorio(); } else if (lados == 4) { Retangulo r = new Retangulo(); System.out.print("Digite a largura: "); r.setLargura(teclado.nextDouble()); System.out.print(" Digite a altura: "); r.setAltura(teclado.nextDouble()); r.calcularArea(); r.relatorio(); } else { System.out.println("Quantidade de lados inválida!"); } } while (lados != 0); System.exit(0); } } -
Java Algoritmo de ordenação em JAVA
AdrianoSiqueira respondeu ao tópico de Izaac Baptista em Java/Android SDK
Eu cheguei nesse algoritmo: package aslib; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.util.regex.Pattern; public class ASLibTest { public static void main(String[] args) { File arquivoDesordenado = new File("arquivo.txt"); File arquivoOrdenado = new File("ordenado.txt"); int[] valores = lerDados(arquivoDesordenado); ordenar(valores); escreverDados(arquivoOrdenado, valores); } private static int[] lerDados(File arquivo) { Pattern pattern = Pattern.compile("\\d"); StringBuilder buffer = new StringBuilder(); String[] auxiliar; int[] resultado; try (BufferedReader reader = new BufferedReader(new FileReader(arquivo))) { String linha; /* * Lê os dados do arquivo adicionando apenas as linhas numéricas no * buffer (um número por linha). */ while ((linha = reader.readLine()) != null) { if (pattern.matcher(linha).matches()) { buffer.append(linha).append("\n"); } else { System.out.println("[ A ]: Ignorando linha corrompida: '" + linha + "'"); } } } catch (IOException e) { e.printStackTrace(); } /* * Passa os dados do buffer para um vetor auxiliar de strings, em * seguida passa para o vetor correto de int. */ auxiliar = buffer.toString().split("\n"); resultado = new int[auxiliar.length]; for (int i = 0; i < auxiliar.length; i++) { resultado[i] = Integer.parseInt(auxiliar[i]); } return resultado; } private static void escreverDados(File arquivo, int[] valores) { StringBuilder buffer = new StringBuilder(); for (int i : valores) { buffer.append(i).append("\n"); } try (BufferedWriter writer = new BufferedWriter(new FileWriter(arquivo))) { writer.write(buffer.toString()); } catch (IOException e) { e.printStackTrace(); } } private static void ordenar(int[] valores) { for (int i = 0; i < valores.length; i++) { for (int j = 0; j < valores.length - 1; j++) { if (valores[j] > valores[j + 1]) { int temp = valores[j]; valores[j] = valores[j + 1]; valores[j + 1] = temp; } } } } } Ficou um tanto longo, mas funciona. -
Java Código JAVA calcular formas geométricas
AdrianoSiqueira respondeu ao tópico de Ronald.oliveira2709 em Java/Android SDK
Métodos abstratos não podem ter corpo. -
C++ Escrever em Arquivo Binário <C++>
AdrianoSiqueira respondeu ao tópico de Helena Figma em C/C#/C++
@Helena Figma Tente isso: #include <iostream> using namespace std; FILE *abrir(const string &nome); void escrever(FILE *arquivo, const string &conteudo); int main() { FILE *arquivo = abrir(""); escrever(arquivo, "Ola mundo!"); return EXIT_SUCCESS; } FILE *abrir(const string &nome) { FILE *arquivo = fopen(nome.c_str(), "wb"); return arquivo; } void escrever(FILE *arquivo, const string &conteudo) { if (arquivo != nullptr) { fprintf(arquivo, "%s", conteudo.c_str()); } else { cerr << "[ E ]: O arquivo nao foi aberto. \n"; return; } } -
Java Aula 03 - Factory Method
AdrianoSiqueira respondeu ao tópico de isaias lucas azevedo em Java/Android SDK
Uma possível abordagem poderia ser assim: package factory; public class Carro { private String marca; private String modelo; public Carro() { } public Carro(String marca, String modelo) { this.marca = marca; this.modelo = modelo; } public String getMarca() { return marca; } public void setMarca(String marca) { this.marca = marca; } public String getModelo() { return modelo; } public void setModelo(String modelo) { this.modelo = modelo; } @Override public String toString() { return "Carro{" + "modelo='" + modelo + '\'' + ", marca='" + marca + '\'' + '}'; } } package factory; public interface IFabrica { Carro fabricar(); } package factory; public class FabricaFiat implements IFabrica { @Override public Carro fabricar() { return new Carro("Fiat", "Palio"); } } package factory; public class FabricaVW implements IFabrica { @Override public Carro fabricar() { return new Carro("VW", "Gol"); } } package factory; public class FactoryTest { public static void main(String[] args) { IFabrica fiat = new FabricaFiat(); IFabrica vw = new FabricaVW(); Carro c1 = fiat.fabricar(); Carro c2 = vw.fabricar(); System.out.println("c1 = " + c1); System.out.println("c2 = " + c2); } } -
Java Calcular notas de alunos com vetores
AdrianoSiqueira respondeu ao tópico de HenriqueXD em Java/Android SDK
Se você tem dois alunos, precisa de duas médias, uma para cada aluno. Deveria ser algo mais ou menos assim: import java.util.Arrays; public class Principal { private static class Aluno { public String nome; public float[] notas; public float media; public Aluno(String nome, float... notas){ this.nome = nome; this.notas = notas; calcularMedia(); } public void calcularMedia(){ for(float f : notas) { this.media += f; } this.media /= notas.length; } @Override public String toString() { return "Aluno{" + "nome=" + nome + ", notas=" + Arrays.toString(notas) + ", media=" + media + "}"; } } public static void main(String[] args) { Aluno[] alunos = new Aluno[2]; alunos[0] = new Aluno("João", 6, 7); alunos[1] = new Aluno("Maria", 10, 10); for(Aluno a : alunos) { System.out.println(a); } } } -
Java tratamento de erro com Try Catch em Java
AdrianoSiqueira respondeu ao tópico de Izaac Baptista em Java/Android SDK
Poderia testar se a primeira string é nula, porque caso for, o método equals irá lançar a exceção NullPointerException. -
Java Aula 02 - Prototype professor jadson
AdrianoSiqueira respondeu ao tópico de isaias lucas azevedo em Java/Android SDK
Acho que é algo mais ou menos assim: package floresta; public class Floresta { private Arvore[] arvores; private Folhagem[] folhagens; private Lago[] lagos; private Ponte[] pontes; public Floresta() { arvores = new Arvore[]{ new Arvore("Castanha", 3), new Arvore("Macieira", 2) }; folhagens = new Folhagem[]{ new Folhagem("Trepadeira", "Verde claro"), new Folhagem("Musgo", "Verde escuro") }; lagos = new Lago[]{ new Lago(2, 3, 1), new Lago(5, 2, 3) }; pontes = new Ponte[]{ new Ponte(2, 5), new Ponte(1, 10) }; } public static void main(String[] args) { Floresta floresta = new Floresta(); } } class Arvore { public String especie; public double altura; public Arvore() { } public Arvore(String especie, double altura) { this.especie = especie; this.altura = altura; } } class Folhagem { public String especie; public String cor; public Folhagem() { } public Folhagem(String especie, String cor) { this.especie = especie; this.cor = cor; } } class Lago { public double largura; public double comprimento; public double profundidade; public Lago() { } public Lago(double largura, double comprimento, double profundidade) { this.largura = largura; this.comprimento = comprimento; this.profundidade = profundidade; } } class Ponte { public double largura; public double comprimento; public Ponte() { } public Ponte(double largura, double comprimento) { this.largura = largura; this.comprimento = comprimento; } } Daí, falta implementar o método de clonagem. -
C Sugestões de melhorias para o programa
AdrianoSiqueira respondeu ao tópico de zZsmithZz em C/C#/C++
Poderia dividir o programa com funções e substituir a matriz por um vetor de nove posições, acho que ficaria mais fácil assim. -
Java Fazer um programa em java para calcular a função y = f(x) + g(x)...
AdrianoSiqueira respondeu ao tópico de math13 em Java/Android SDK
Eu cheguei nesse resultado: public class Calculo { public static void main(String[] args) { double x = 10; double h = h(x); double f = f(h); double g = g(x, f); double resultado = f + g; } private static double h(double x) { return (x * x) - 16; } private static double f(double h) { return (h >= 0) ? h : 1; } private static double g(double x, double f) { return (f == 0) ? (x * x) + 16 : 0; } } -
Pode usar um do-while também: #include <stdio.h> #include <stdlib.h> #include <ctype.h> int main(void) { char c = ' '; do { printf("voce aceita? [ S / N ]: "); scanf(" %c%*c", &c); c = toupper(c); } while(c != 'N' && c != 'S'); if (c == 'S') { printf("Aceito \n"); } else { printf("Recusado \n"); } return 0; }
-
Da para executar uma rom de celular no virtual box
AdrianoSiqueira respondeu ao tópico de kdmus123 em Smartphones, celulares, tablets e apps
Não daria, pois a ROM não iria funcionar em outro celular que não aquele para o qual foi desenvolvido. -
Da para executar uma rom de celular no virtual box
AdrianoSiqueira respondeu ao tópico de kdmus123 em Smartphones, celulares, tablets e apps
Conhece outra pessoa que tem o mesmo celular que o seu? Se sim, tente pedir emprestado. -
Java como faço essa programação
AdrianoSiqueira respondeu ao tópico de andreferreira481 em Java/Android SDK
Dê uma olhada aqui. -
Java Problema com elementos static apenas quando é private
AdrianoSiqueira respondeu ao tópico de AdrianoSiqueira em Java/Android SDK
Opa, beleza? Valeu pela resposta, mas eu já conheço o conceito de classes abstratas. O meu problema é com a referência de elementos não estáticos. Vou postar um código levemente diferente: package code; public abstract class Teste { public static final Teste IMPLEMENTACAO_1 = new Teste() { @Override public void executar() { teste1(); } }; public static final Teste IMPLEMENTACAO_2 = new Teste() { @Override public void executar() { teste2(); } }; public static final Teste IMPLEMENTACAO_3 = new Teste() { @Override public void executar() { // Non-static method 'teste3()' cannot be referenced from a static context teste3(); } }; public abstract void executar(); public void teste1() {} protected void teste2() {} private void teste3() {} } Na classe acima, a IMPLEMENTACAO_3 não irá compilar devido ao problema de referência estática. Porém todas as implementações possuem essencialmente o mesmo código, com a única diferença ficando por conta do modificador de acesso da função chamada. Nesse caso, apenas a função privada gera o erro de compilação. E eu queria saber por que. -
Java Problema com elementos static apenas quando é private
AdrianoSiqueira postou um tópico em Java/Android SDK
E aí pessoal, tudo bem? public abstract class Teste { public static final Teste IMPLEMENTACAO_1 = new Teste() { @Override public void funcao() { // Non-static method 'falarPrivado()' cannot be referenced from a static context falarPrivado(); } }; public static final Teste IMPLEMENTACAO_2 = new Teste() { @Override public void funcao() { falarPublico(); } }; public abstract void funcao(); private String falarPrivado() { return "Falando privado"; } public String falarPublico() { return "Falando publico"; } } A classe acima está acusando o famoso erro de compilação sobre "um elemento não estático não poder ser referenciado por um estático". Mas analisando as duas funções "falar", vemos que elas possuem exatamente o mesmo código, mudando apenas o modificador de acesso. A questão é que apenas a função privada lança o erro. Alguém poderia me explicar como o modificador de acesso influencia nisso? Tipo, por que só a função privada dá problema? No meu ponto de vista, ambas as funções deveriam lançar esse erro. Desde já agradeço. -
C Receber 3 números e imprimir em ordem crescente e decrescente.
AdrianoSiqueira respondeu ao tópico de _Pedro_1002_ em C/C#/C++
Eu usaria um vetor, depois ordenaria esse vetor e por último imprimiria: #include <stdio.h> #include <stdlib.h> void imprimirCrescente(int a, int b, int c); void imprimirDecrescente(int a, int b, int c); void ordenar(int* vetor, int tamanho); int main() { int a = 20; int b = 10; int c = 20; imprimirCrescente(a, b, c); imprimirDecrescente(a, b, c); return EXIT_SUCCESS; } void imprimirCrescente(int a, int b, int c){ int vetor[3] = {a, b, c}; ordenar(vetor, 3); printf(" Crescente: ["); for (int i = 0; i < 3; i++) { printf("%i", vetor[i]); if (i + 1 < 3) { printf(", "); } } printf("] \n"); } void imprimirDecrescente(int a, int b, int c){ int vetor[3] = {a, b, c}; ordenar(vetor, 3); printf("Decrescente: ["); for (int i = 2; i >= 0; i--) { printf("%i", vetor[i]); if (i > 0) { printf(", "); } } printf("] \n"); } void ordenar(int* vetor, int tamanho) { for (int i = 0; i < tamanho - 1; i++) { for (int j = i+1; j<tamanho;j++) { if (vetor[i] > vetor[j]){ int temp = vetor[i]; vetor[i] = vetor[j]; vetor[j] = temp; } } } } Uma solução feia, mas funcional. -
Eu não consigo abrir nada que seja da microsoft store ou disco local C
AdrianoSiqueira respondeu ao tópico de Ana Nunes B em Windows 10
Tente instalar um programa qualquer e veja se ele funcionar normalmente. Outra coisa, poderia tentar uma restauração do sistema para uma data anterior ao problema. -
Evitar que provedor de internet controle meu consumo
AdrianoSiqueira respondeu ao tópico de navegador2 em Redes e Internet
O ideal é ter provas... Quando ela estiver boa, faça um teste de velocidade. E quando você notar que está lenta, faça o teste de novo e compare os valores, se realmente houver discrepância, entre em contato com seu provedor e faça uma reclamação. Como seu provedor é da OI, provavelmente pode ser sobrecarga na rede. Esse problema acontece em que horário do dia? Essas empresas de telecomunicação não fazem os devidos investimentos em suas infraestruturas e quando muita gente usa ao mesmo tempo a rede arreia. Já cansei de ter esse tipo de problema com a Vivo, e só tive sossego quando mudei de provedor, contratei um que era especializado em internet, ou seja, somente internet, nada mais. Empresas desse tipo costumam prestar um serviço melhor, pois é a única "fonte de renda" dela, ao contrário da Oi, Claro, Vivo e etc, que se a internet estiver ruim, a empresa ganha dinheiro com telefone, celular, TV, etc... -
Colocar HD antigo em PC novo que já tem SSD
AdrianoSiqueira respondeu ao tópico de hardrage2 em HD, SSD e NAS
Aqui foi feito no Windows 7, mas o procedimento serve para todos. Youtube -
Colocar HD antigo em PC novo que já tem SSD
AdrianoSiqueira respondeu ao tópico de hardrage2 em HD, SSD e NAS
Não precisa de pendrive, é só abrir o gerenciador de discos do Windows e fazer por lá.
Sobre o Clube do Hardware
No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais
Direitos autorais
Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais