Java ::: Desafios e Lista de Exercícios Resolvidos ::: Laços de Repetição |
Exercícios Resolvidos de Java - Usando um laço for para solicitar ao usuário que informe 10 valores inteiros e mostrar quantos valores negativos foram informadosQuantidade de visualizações: 10156 vezes |
Pergunta/Tarefa: Escreva um programa Java console que usa o laço for para solicitar que o usuário digite 10 valores inteiros. Em seguida seu programa deverá contar quantos valores negativos foram informados. Dica: Use um objeto da classe Scanner para obter a entrada do usuário. Resposta/Solução: A resolução deste exercício envolve a criação de uma variável auxiliar para contar a quantidade de valores negativos lidos, do tipo int, e que deverá ser inicializada com o valor 0. Veja: int negativos = 0; // guardará a quantidade de valores negativos public static void main(String[] args){ // para este exercício você deverá importar a classe // Scanner. Ela está no pacote java.util.*; // vamos construir um objeto da classe Scanner para ler a // entrada do usuário Scanner entrada = new Scanner(System.in); int valor; // guarda o valor lido int negativos = 0; // guardará a quantidade de valores negativos // vamos pedir ao usuário que informe 10 valores inteiros for(int i = 0; i < 10; i++){ System.out.print("Informe o " + (i + 1) + "º valor: "); valor = Integer.parseInt(entrada.nextLine()); // vamos verificar se o valor informado é negativo if(valor < 0){ negativos++; } } // vamos exibir a quantidade de números negativos lidos System.out.println("\nVocê informou " + negativos + " valores negativos.\n"); } |
Java ::: Pacote java.lang ::: String |
Apostila de Java Básico - Como usar o método replace() da classe String para efetuar a substituição de substrings em uma stringQuantidade de visualizações: 7986 vezes |
A substituição de substrings, ou seja, pedaços de texto, é uma das tarefas mais comuns em programação. Em Java isso pode ser feito por meio do método replace() da classe String. Veja sua assinatura:public String replace(CharSequence target, CharSequence replacement) Veja um trecho de código no qual usamos o método replace() para substituir todas as ocorrências de "C++" por "Java": public class Estudos { public static void main(String[] args) { String frase = "Programar em C++ é muito bom! Gosto muito de C++"; System.out.println("Frase original: " + frase); // vamos substituir todas as ocorrências de "C++" por "Java" frase = frase.replace("C++", "Java"); System.out.println("Depois da substituição: " + frase); } } Ao executarmos este código teremos o seguinte resultado: Frase original: Programar em C++ é muito bom! Gosto muito de C++ Depois da substituição: Programar em Java é muito bom! Gosto muito de Java Note que o método replace() pode atirar uma exceção do tipo NullPointerException se o parâmetro target ou replacement for null. |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Exercícios Resolvidos de Java - Criando dois vetores de inteiros de forma que a soma dos elementos individuais de cada vetor seja igual a 30Quantidade de visualizações: 11653 vezes |
Pergunta/Tarefa: Considere os seguintes vetores: // dois vetores de 5 inteiros cada int a[] = {50, -2, 9, 5, 17}; int b[] = new int[5]; Sua saída deverá ser parecida com: Valores no vetor a: 50 -2 9 5 17 Valores no vetor b: -20 32 21 25 13 Veja a resolução comentada deste exercício usando Java: package estudos; public class Estudos { public static void main(String[] args) { // dois vetores de 5 inteiros cada int a[] = {50, -2, 9, 5, 17}; int b[] = new int[5]; // vamos preencher o segundo vetor de forma que a soma dos // valores de seus elementos seja 30 for(int i = 0; i < b.length; i++){ b[i] = 30 - a[i]; } // vamos mostrar o resultado System.out.print("Valores no vetor a: "); for(int i = 0; i < a.length; i++){ System.out.print(a[i] + " "); } System.out.print("\nValores no vetor b: "); for(int i = 0; i < b.length; i++){ System.out.print(b[i] + " "); } System.out.println(); } } |
GNU Octave ::: Dicas & Truques ::: Trigonometria - Funções Trigonométricas |
Como converter graus em radianos usando a função deg2rad() do GNU Octave - GNU Octave para Geometria Analítica e Álgebra LinearQuantidade de visualizações: 1859 vezes |
Quer aprender como calcular radianos ou como converter graus em radianos? Veja a fórmula nessa dica. Quando estamos trabalhando com trigonometria no software GNU Octave, é importante ficarmos atentos ao fato de que todos os métodos e funções trigonométricas nessa linguagem recebem seus argumentos em radianos, em vez de graus. Nesta dica veremos como converter graus em radianos (sem a chatice de ficar relembrando regra de três). Veja a fórmula abaixo: \[Radianos = Graus \times \frac{\pi}{180}\] Agora veja como esta fórmula pode ser escrita no GNU Octave. Primeiro vamos usar a fórmula dada e depois veremos a função deg2rad(). Assim, digite a expressão a seguir na janela de comandos do GNU Octave: >> 30 * (pi / 180) [Enter] ans = 0.5236 >> Agora veja como podemos obter o mesmo resultado usando a função deg2rad(): >> deg2rad(30) [Enter] ans = 0.5236 >> Finalmente, veja como usar esta função em um script do GNU Octave: graus = input("Informe o ângulo em graus: "); radianos = deg2rad(graus); fprintf("O ângulo em radianos é %f\n", radianos); Execute este script e teremos o seguinte resultado na janela de comandos: Informe o ângulo em graus: 30 [Enter] O ângulo em radianos é 0.523599 >> |
Java ::: Fundamentos da Linguagem ::: Modificadores |
Como usar o modificador synchronized da linguagem JavaQuantidade de visualizações: 24043 vezes |
O modificador synchronized tem seu uso e importância destacados quando várias threads (fluxos de execução) estão sendo executadas em um programa. Tais threads podem tentar acessar métodos de uma ou mais classes ao mesmo tempo. No entanto, pode ser necessário planejarmos o sistema de forma que determinados métodos possam ser acessados por somente uma thread de cada vez, talvez para garantir a integridade de valores das diversas variáveis envolvidas no processo. É aqui que o modificador synchronized é usado. Ao marcarmos um método como synchronized, o sistema de execução Java garantirá que apenas uma thread de cada vez acesse tal método. Se outras threads tentarem fazer o mesmo, elas serão colocadas em espera até que a thread atual finalize seu trabalho e libere o método. Um exemplo de aplicação do modificador synchronized pode ser visto em uma classe Pilha. Como sabemos, esta estrutura de dados possui métodos para inserir um novo item no topo da pilha e para removê-lo do topo (lembra? LIFO: Last In First Out). Ora, para evitar que uma thread remova o elemento do topo ao mesmo tempo em que outra está tentando inserir, tais métodos devem ser marcados como synchronized. Isso evitará que os dados sejam corrompidos. |
Python ::: Dicas & Truques ::: Tupla (Tuple) |
Python para iniciantes - Como usar o tipo de dados tuple da linguagem PythonQuantidade de visualizações: 9255 vezes |
Uma tupla (tuple) é similar a uma lista (list), com a exceção de que uma tupla não pode ser modificada, ou seja, é imutável. Veja como criar uma tupla contendo cinco elementos: # Cria uma tupla valores = 4, 76, 2, 98, 4 # Exibe o valor do segundo elemento print valores[1] # Exibe todos os elementos for valor in valores: print valor, Veja agora o que acontece quando tentamos alterar o valor de um dos elementos da tupla: valores[4] = 50 Traceback (most recent call last): File "tuplas.py", line 19, in <module> valores[4] = 50 TypeError: 'tuple' object does not support item assignment Contudo, a variável do tipo tupla pode ser alterada para apontar para uma tupla diferente. Veja: # Cria duas tuplas valores = 4, 76, 2, 98, 4 letras = 'A', 'B', 'C' # Atribue os elementos de letras a valores valores = letras # Exibe o resultado print valores É comum colocar os elementos de uma tupla entre parênteses. Assim, a tupla abaixo é perfeitamente legal: valores = (4, 76, 2, 98, 4) Embora não muito provável, se precisarmos criar uma tupla de apenas um elemento, devemos inserir uma vírgula após ele. Veja: valores = (4,) Tuplas podem conter elementos de diferentes tipos de dados. Veja: # Cria uma tupla contendo tipos diferentes # de dados cliente = (3, "Osmar J. Silva", "Goiânia", "GO", 35) # Exibe o valor do 4º elemento estado = cliente[3] print estado |
C++ ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Como somar os elementos de um vetor de inteiros em C++Quantidade de visualizações: 17122 vezes |
Esta dica mostra a você como usar um laço for do C++ para somar todos os valores dos elementos de um vetor de inteiros. Observe que aqui nós declaramos e inicializamos o vetor (array) em apenas uma instrução:#include <iostream> using namespace std; int main(int argc, char *argv[]) { // declara e inicializa um array de // 5 inteiros int valores[] = {2, 7, 1, 5, 6}; int soma = 0; // soma os valores dos elementos for(int i = 0; i < 5; i++){ soma += valores[i]; // o mesmo que // soma = soma + valores[i]; } // exibe o resultado cout << "Soma: " << soma << endl; system("PAUSE"); // pausa o programa return EXIT_SUCCESS; } Ao executar este código C++ nós teremos o seguinte resultado: Soma: 21 |
Java ::: Classes e Componentes ::: JTable |
Java Swing - Como excluir linhas de uma JTable em tempo de execução usando o método removeRow() da classe DefaultTableModelQuantidade de visualizações: 15984 vezes |
Nesta dica mostrarei como é possível excluir uma determinada linha de uma JTable usando o método removeRow() da classe DefaultTableModel. Veja que mostro também como inserir novas linhas na JTable usando o método insertRow(). Veja o resultado obtido na imagem abaixo: ![]() E agora o código Java Swing completo: package arquivodecodigos; import javax.swing.*; import java.awt.*; import java.awt.event.*; import javax.swing.table.*; public class Estudos extends JFrame{ public Estudos(){ super("Exemplo de uma tabela simples"); final DefaultTableModel modelo = new DefaultTableModel(); // constrói a tabela JTable tabela = new JTable(modelo); // Cria duas colunas modelo.addColumn("Nome"); modelo.addColumn("Idade"); JButton btn = new JButton("Inserir Linhas"); btn.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){ String nome = JOptionPane.showInputDialog(null, "Informe o nome:"); String idade = JOptionPane.showInputDialog(null, "Informe a idade:"); int pos = Integer.parseInt(JOptionPane.showInputDialog(null, "Informe a posição da nova linha:")); // testa se a posição é válida if(pos > (modelo.getRowCount() - 1)) pos = 0; // Insere uma linha na posição especificada modelo.insertRow(pos, new Object[]{nome, idade}); } } ); JButton btn2 = new JButton("Excluir Linhas"); btn2.addActionListener( new ActionListener(){ @Override public void actionPerformed(ActionEvent e){ int pos = Integer.parseInt(JOptionPane.showInputDialog(null, "Informe a posição da linha a ser excluída:")); // testa se a posição é válida if(pos < modelo.getRowCount()) // Exclui a linha na posição especificada modelo.removeRow(pos); } } ); tabela.setPreferredScrollableViewportSize(new Dimension(350, 50)); Container c = getContentPane(); c.setLayout(new FlowLayout()); JScrollPane scrollPane = new JScrollPane(tabela); c.add(scrollPane); c.add(btn); c.add(btn2); setSize(400, 300); setVisible(true); } public static void main(String args[]){ Estudos app = new Estudos(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } |
C ::: Dicas & Truques ::: Strings e Caracteres |
Como verificar a existência de uma substring em uma string usando a função strstr() da linguagem CQuantidade de visualizações: 10176 vezes |
Nesta dica mostro como pesquisar uma substring dentro de uma string. Para isso usaremos a função strstr() do header string.h. Esta função aceita a string e a substring que queremos pesquisar e retorna NULL se a substring não for encontrada. Caso esta esteja contida na string, um ponteiro para o caractere inicial de sua ocorrência é retornado. Veja o código:#include <stdio.h> #include <stdlib.h> #include <string.h> int main(int argc, char *argv[]){ char frase[] = "Gosto muito de Java e Python"; // vamos pesquisar a substring "Java" na string char *res = strstr(frase, "Java"); // se for NULL a substring não foi encontrada if(res == NULL) printf("A substring nao foi encontrada"); else printf("A substring foi encontrada: %s", res); puts("\n\n"); system("PAUSE"); return 0; } Note que neste exemplo, a substring é localizada e o conteúdo de res é o restante da string a partir do primeiro caractere da substring pesquisada. |
Java ::: Topografia e Geoprocessamento ::: Passos Iniciais |
Como converter graus, minutos e segundos para graus decimais em JavaQuantidade de visualizações: 518 vezes |
Em algumas situações, principalmente em cálculos da Engenharia Civil e Topografia, nós precisamos converter graus, minutos e segundos para graus decimais. É comum chamarmos graus, minutos e segundos de DMS ou GMS, enquanto os graus decimais são chamados de UTM. Nesta dica veremos como converter 85º 42' 13.75'' para graus decimais. A fórmula que usaremos é a seguinte: \[\text{Graus decimais} = \text{Graus} + \frac{\text{Minutos}}{60} + \frac{\text{Segundos}}{3600} \] Veja agora o código Java completo que pede para o usuário informar os graus, os minutos e os segundos e mostra os graus decimais: package estudos; import java.util.Scanner; public class Estudos { public static void main(String[] args) { // para ler a entrada do usuário Scanner entrada = new Scanner(System.in); // vamos pedir para o usuário informar os graus, minutos // e segundos System.out.print("Informe os graus: "); double graus = Double.parseDouble(entrada.nextLine()); System.out.print("Informe os minutos: "); double minutos = Double.parseDouble(entrada.nextLine()); System.out.print("Informe os segundos: "); double segundos = Double.parseDouble(entrada.nextLine()); // agora vamos calcular os graus decimais double grausDecimais = graus + (minutos / 60.0) + (segundos / 3600.0); // e agora mostramos o resultado System.out.println("Os graus decimais são: " + grausDecimais); } } Ao executar este código Java nós teremos o seguinte resultado: Informe os graus: 85 Informe os minutos: 42 Informe os segundos: 13.75 Os graus decimais são: 85.70381944444445 Fique atento ao sinal. Se o valor em graus, minutos e segundos possuir os caracteres "W" ou "S", então o valor em graus decimais deverá levar o sinal de negativo. |
Nossas 20 dicas & truques de programação mais populares |
C++ - C++ Windows API GUI - Como criar sua primeira aplicação de interface gráfica usando C++ e WinAPI |
Você também poderá gostar das dicas e truques de programação abaixo |
Nossas 20 dicas & truques de programação mais recentes |
Últimos Projetos e Códigos Fonte Liberados Para Apoiadores do Site |
Python - Como criar o jogo Pedra, Papel, Tesoura em Python - Jogo completo em Python com código comentado |
Últimos Exercícios Resolvidos |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |