Java ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes)

Exercícios Resolvidos de Java - Como usar o laço for para percorrer os elementos de um array e exibí-los na ordem original e invertidos

Quantidade de visualizações: 14995 vezes
Pergunta/Tarefa:

Considere o seguinte array de inteiros:

// um array de inteiros contendo sete elementos
int valores[] = {6, 9, 12, 34, 83, 20, 17};
Escreva um programa Java console que usa um laço for para percorrer todos os elementos deste vetor duas vezes e exibí-los na ordem original e invertidos (somente na exibição, ou seja, não é necessário alterar a ordem dos elementos no array).

Seu programa deverá exibir a seguinte saída:

Ordem original:
6  9  12  34  83  20  17  

Ordem inversa:
17  20  83  34  12  9  6 
Resposta/Solução:

public static void main(String[] args){
  // um vetor de inteiros contendo sete elementos
  int valores[] = {6, 9, 12, 34, 83, 20, 17};
    
  // primeiro vamos exibir os valores do vetor na ordem original
  System.out.println("Ordem original:\n");

  for(int i = 0; i < valores.length; i++){
    System.out.print(valores[i] + "  ");
  }

  // agora vamos exibir na ordem inversa
  System.out.println("\n\nOrdem inversa:\n");

  for(int i = valores.length - 1; i >= 0; i--){
    System.out.print(valores[i] + "  ");
  }
}



Java ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes)

Como classificar um array em ordem crescente usando o método sort() da classe Arrays do Java

Quantidade de visualizações: 26832 vezes
Nesta dica mostrarei como podemos usar o método sort() da classe Arrays da linguagens Java para ordenar um vetor de inteiros em ordem crescente. A assinatura do método sort() que usaremos é aquela que recebe apenas um argumento, ou seja, o array a ser ordenado.

Note que a implementação de ordenação usada pelo método sort() é a ordenação quicksort, considerada uma das mais rápidas nos dias atuais.

Veja o código completo para o exemplo:

package estudos;

import java.util.*;

public class Estudos{
  public static void main(String[] args){
    // vamos declarar e construir um vetor de 5 inteiros
    int[] valores = new int[5];
 
    // inicializa os elementos do array
    valores[0] = 23;
    valores[1] = 65;
    valores[2] = 2;
    valores[3] = 87;
    valores[4] = 34;

    // exibe os valores dos elementos do array
    // usando o laço for melhorado
    System.out.println("Elementos na ordem original:");
    for(int valor : valores){
      System.out.print(valor + " ");  
    }
    
    // ordena os valores em ordem crescente
    Arrays.sort(valores);

    // exibe os valores dos elementos do array
    // usando o laço for melhorado
    System.out.println("\n\nElementos classificados em ordem crescente:");
    for(int valor : valores){
      System.out.print(valor + " ");  
    }
  
    System.out.println("\n\n");
    System.exit(0);
  }
}

Ao executarmos este código Java nós teremos o seguinte resultado:

Elementos na ordem original:
23 65 2 87 34

Elementos classificados em ordem crescente:
2 23 34 65 87


PHP ::: Dicas & Truques ::: Data e Hora

Como retornar o dia da semana em PHP na forma abreviada e em português usando a função gmstrftime() e o sinalizador "%a"

Quantidade de visualizações: 181 vezes
Como retornar o dia da semana em PHP na forma abreviada e em português usando a função gmstrftime() e o sinalizador "%a"

Nesta dica mostrarei um código que retorna o nome do dia da semana de forma abreviada e em português usando a função gmstrftime() combinada com o sinalizador "%a". O resultado será agora como "seg", "ter", "qua", etc.

Veja o código PHP completo para o exemplo:

<?php
  // obtemos o locale padrão
  $locale_anterior = setlocale(LC_ALL, NULL); 
  // ajustamos o locale para português brasileiro
  setlocale(LC_ALL, "pt_BR");
  // obtemos o dia da semana   
  $dia_semana = gmstrftime("%a", time());
  // voltamos o locale anterior
  setlocale(LC_ALL, $locale_anterior);
  // e mostramos o resultado
  echo "O dia da semana é: " . $dia_semana;
?>

Ao executar este código PHP nós teremos o seguinte resultado:

O dia da semana é: dom


PHP ::: Sistemas Completos com Código Fonte ::: Projetos PHP com Código Fonte - Códigos Fonte PHP

Calendário de Eventos em PHP e MySQL - Código fonte completo com opções de cadastrar, listar, excluir, editar e listar eventos

Quantidade de visualizações: 9672 vezes
Aprenda como criar um Calendário de Eventos completo em PHP e MySQL. Código-fonte completo e comentado para programadores de nível iniciante e médio.

Sobre este projeto PHP e MySQL

Que tal aprender ou aprimorar as suas técnicas de programação em PHP e MySQL desenvolvendo um Calendário de Eventos completo, com as opções de cadastrar, listar, excluir, alterar e listar os eventos.

Veja na imagem abaixo a tela inicial do sistema:



O que vou aprender neste código fonte?

Além de aprender como gravar dados em uma tabela MySQL usando PHP, você verá, de forma prática e sem enrolação, como ler os dados de volta, editar, listar e pesquisar. Porém, o mais importante é que você aprenderá a construir um calendário usando PHP. Essa é uma técnica que você poderá levar para várias outras linguagens.

Uma característica interessante deste código é o uso de uma janela modal feita usando apenas HTML e CSS. Essa janela é exibida por cima do calendário ao clicarmos em um determinado evento. Veja:



O código jQuery para exibir a janela é bem simples e poderá ser usado para várias outras aplicações. Além disso, o código para a requisição Ajax abrirá um mundo de possibilidades.

Veja agora a tela para a criação de novos eventos:



Para a construção desta tela de cadastro você aprenderá a usar os controles date e time do HTML5 para deixar seus códigos ainda mais robustos. Nesta tela você aprenderá também a validar os campos e exibir mensagens alertando ao usuário a necessidade do preenchimento correto.

Para finalizar, veja a tela que lista todos os eventos cadastrados:



Nesta tela de listagem você aprenderá a colocar as opções para a visualização individual de cada evento assim como as opções de editar ou excluir os eventos.

Como posso obter este código fonte?

Para adquirir este código fonte, me chama no WhatsApp ou no e-mail indicados na lateral do site. Se necessário podemos combinar e faço a instalação na sua máquina ou no seu domínio. Podemos também combinar as alterações ou a adição de novas funcionalidades.


Delphi ::: VCL - Visual Component Library ::: TListBox

Como usar a propriedade Items da classe TListBox do Delphi

Quantidade de visualizações: 11415 vezes
A propriedade Items da classe TListBox representa um objeto da classe TStrings, a classe base para objetos que representam uma lista de strings. Isso quer dizer que podemos acessar a propriedade Items e usar todos os métodos e propriedades da classe TStrings, tais como Add(), Clear(), Delete(), Exchange(), etc.

Veja, por exemplo, como usar o método Add() para adicionar um novo item na ListBox:

procedure TForm1.Button1Click(Sender: TObject);
begin
  // vamos adicionar um novo item na ListBox
  listBox1.Items.Add('Arquivo de Códigos');
end;

É possível obter um referência à propriedade Items para manipular os itens da ListBox indiretamente. Veja:

procedure TForm1.Button1Click(Sender: TObject);
var
  lista: TStrings;
begin
  // vamos obter a lista de itens da ListBox
  lista := listBox1.Items;

  // vamos adicionar um novo item à lista
  lista.Add('Arquivo de Códigos');
end;

Esta técnica é útil quando queremos inserir itens em uma TListBox a partir de uma função ou procedure. Veja:

// procedure personalizada para inserir itens em uma TListBox
procedure inserirItensListBox(lista: TStrings);
begin
  lista.Add('Arquivo de Códigos');
  lista.Add('Osmar J. Silva');
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  // vamos chamar a procedure que adiciona os itens na ListBox
  inserirItensListBox(listBox1.Items);
end;

Para finalizar, veja como escrever uma função personalizada que constrói e retorna uma lista de strings. Note como usamos o objeto TStrings retornado para preencher a ListBox:

// função personalizada que constrói e retorna uma lista
// de strings
function obterLista: TStrings;
var
  lista: TStringList;
begin
  lista := TStringList.Create;
  lista.Add('Arquivo de Códigos');
  lista.Add('Osmar J. Silva');

  Result := lista;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  // vamos obter a lista de strings
  ListBox1.Items := obterLista;
end;

Observe que, embora o retorno seja TStrings, no corpo da função nós construímos um objeto da classe TStringList. Isso acontece porque TStrings é uma classe abstrata e, portanto, não podemos chamar seu construtor. Como TStringList herda de TStrings e é uma classe concreta, esta é a escolha mais óbvia.

Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009.


PHP ::: Fundamentos da Linguagem ::: Tipos de Dados

Como usar o tipo de dados array (vetor ou matriz) do PHP

Quantidade de visualizações: 10702 vezes
Um array (vetor ou matriz) contém um grupo de variáveis relacionadas, que podem ser identificadas por sua posição no array (um número inteiro, começando em zero) ou um nome (uma string). Este último tipo é conhecido como array associativo. Veja alguns exemplos de arrays:

<?
  $empresas[0] = "Sun";
  $empresas[1] = "Adobe";
  $empresas[2] = "Microsoft";

  $criadores['Java'] = "Sun";
  $criadores['ActionScript'] = "Adobe";
  $criadores['C#'] = "Microsoft";
?>

Arrays também podem ser criados usando o construtor array():

<?
  $empresas = array('Sun', 'Adobe', 'Microsoft');
  
  $criadores = array('Java' => 'Sun',
    'ActionScript' => 'Adobe', 'C#' => 'Microsoft');
?>

Há várias maneiras de percorrer os elementos de um array. Mas, a mais comum é o uso de um laço foreach:

<?
  $empresas = array('Sun', 'Adobe', 'Microsoft');
  
  $criadores = array('Java' => 'Sun',
    'ActionScript' => 'Adobe', 'C#' => 'Microsoft');

  foreach($empresas as $nome){
    echo $nome . "<br>";
  }

  echo "<br>"; 

  foreach($criadores as $linguagem => $criador){
    echo "$criador criou o $linguagem<br>";
  }
?>

Se quisermos saber se uma variável ou constante é do tipo array, podemos usar a função is_array(). Veja:

<?
  $empresas = array('Sun', 'Adobe', 'Microsoft');
  
  if(is_array($empresas)){
    echo 'A variável $empresas é do tipo array.';
  }
?>



Java ::: Desafios e Lista de Exercícios Resolvidos ::: Java Básico

Exercícios Resolvidos de Java - Um programa que lê um salário e concede um aumento de 20% para os salários inferiores a R$ 800,00

Quantidade de visualizações: 4809 vezes
Exercícios Resolvidos de Java - Um programa que lê um salário e concede um aumento de 20% para os salários inferiores a R$ 800,00

Pergunta/Tarefa:

A empresa XYZ decidiu conceder um aumento de 20% aos funcionários com salários inferiores a R$ 800,00. Faça um programa Java que solicita o salário do funcionário e mostre o valor do salário reajustado ou uma mensagem, caso o funcionário não tenha direito ao aumento.

Sua saída deverá ser parecida com:

Informe o salário: 520
O salário informado foi: 520.0
O salário reajustado é: 530.4 
Resposta/Solução:

Veja a resolução comentada deste exercício usando Java:

package estudos;

import java.util.Scanner;

public class Estudos {
  public static void main(String[] args) {
    Scanner entrada = new Scanner(System.in);  
    
    // vamos solicitar o salário do funcionário
    System.out.print("Informe o salário: ");
    double salario = Double.parseDouble(entrada.nextLine());
    System.out.println("O salário informado foi: " + salario);
    
    // vamos conceder o aumento ao salário inferior a 800,00
    if(salario < 800.00){
      double novoSalario = salario + (salario * (2.0 / 100.00));
      System.out.println("O salário reajustado é: " + novoSalario);
    }
    else{
      System.out.println("Não tem direito ao reajuste.");
    }
    
    System.out.println("\n");
  }
}



HTML5 ::: HTML5 + JavaScript ::: Canvas

Como carregar uma imagem (ou foto) no objeto Canvas do HTML5

Quantidade de visualizações: 2431 vezes
O objeto Canvas do HTML5 nos permite carregar uma imagem ou foto em tempo de execução e desenhá-la em sua superfície. Para isso, comece criando um objeto Image para guardar a imagem temporariamente na memória:

var imagem = new Image();
// vamos carregar a logo do nosso site
imagem.src = "https://www.arquivodecodigos.com.br/logo.jpg";

O passo seguinte é adicionar um "ouvidor" de evento neste objeto Image para que ele nos avise quando a imagem estiver 100% carregada. Veja:

// vamos adicionar um "ouvidor" de evento no objeto Image
imagem.addEventListener('load', desenharImagem);

Pronto! Veja que agora, quando o evento load do objeto Image disparar, a função desenharImagem será chamada e a imagem será então desenhada no Canvas. Veja:

function desenharImagem(){
  // obtemos uma referência ao elemento Canvas  
  var canvas = document.getElementById("canvas1");
  // obtemos o contexto de desenho
  var contexto = canvas.getContext("2d");
  // e finalmente desenhamos a imagem
  contexto.drawImage(imagem, 0, 0);
}

E aqui está o código completo para o exemplo:

<html>
<head>
  <title>O objeto Canvas do HTML5</title>
</head>

<body>

<Canvas id="canvas1" width="500" height="350"></Canvas>

<script type="text/javascript">
  var imagem = new Image();
  // vamos carregar a logo do nosso site
  imagem.src = "https://www.arquivodecodigos.com.br/logo.jpg";

  // vamos adicionar um "ouvidor" de evento no objeto Image
  imagem.addEventListener('load', desenharImagem);

  function desenharImagem(){
    // obtemos uma referência ao elemento Canvas  
    var canvas = document.getElementById("canvas1");
    // obtemos o contexto de desenho
    var contexto = canvas.getContext("2d");
    // e finalmente desenhamos a imagem
    contexto.drawImage(imagem, 0, 0);
  }
</script>

</body>
</html>

Ao executar a página nós teremos o seguinte resultado:




Python ::: Dicas & Truques ::: Strings e Caracteres

Como concatenar strings em Python usando o operador de adição

Quantidade de visualizações: 13306 vezes
A concatenação de textos, frases ou palavras pode ser feita em Python usando-se o operador de soma (ou adição). Veja um exemplo de como isso pode ser feito:

# método principal  
def main():
  frase1 = "Gosto de "
  frase2 = "Python"
  frase3 = frase1 + frase2
  # mostra o resultado
  print(frase3)

if __name__== "__main__":
  main()

Ao executar este código Python nós teremos o seguinte resultado:

c:\estudos_python>python estudos.py
Gosto de Python


Java ::: Estruturas de Dados ::: Árvore Binária e Árvore Binária de Busca

Como percorrer uma árvore binária em Java usando o algorítmo depth-first search (DFS) recursivo

Quantidade de visualizações: 901 vezes
Nesta dica mostrarei como podemos implementar o algorítmo da Busca em Profundidade (DFS, do inglês depth-first search) em Java de forma recursiva. Em outra dica desta seção que mostrei como fazer a mesma travessia de forma iterativa e usando uma pilha para backtracking (retrocesso).

Antes de iniciarmos, veja a árvore binária que vamos usar no exemplo:



Note que esta árvore possui seis nós. O nó 5 é o nó raiz, e possui como filhos os nós 4 e 9. O nó 4, por sua vez, possui apenas um filho, o nó 2, ou seja, o filho da esquerda. O nó 9 possui dois filhos: o nó 3 é o filho da esquerda e o nó 12 é o filho da direita. Os filhos da árvore binária que não possuem outros filhos são chamados de folhas.

Com a abordagem da busca em profundidade, começamos com o nó raiz e viajamos para baixo em uma única ramificação. Se o nó desejado for encontrado naquela ramificação, ótimo. Do contrário, continuamos subindo e pesquisando por nós não visitados. Esse tipo de busca também tem uma notação big O de O(n).

Vamos à implementação? Veja o código para a classe No, que representa um nó na árvore binária:

// implementação da classe No
class No{
  public int valor; // o valor do nó
  public No esquerdo; // o filho da esquerda
  public No direito; // o filho da direita
  
  public No(int valor){
    this.valor = valor;
    this.esquerdo = null;
    this.direito = null;
  }
}

Veja agora o código completo para o exemplo. Note que estamos usando recursividade nesta dica. Observe também o uso de uma ArrayList para guardar os valores da árvore binária na ordem depth-first.

Eis o código:

package estudos;

import java.util.ArrayList;

// implementação da classe No
class No{
  public int valor; // o valor do nó
  public No esquerdo; // o filho da esquerda
  public No direito; // o filho da direita
  
  public No(int valor){
    this.valor = valor;
    this.esquerdo = null;
    this.direito = null;
  }
}

public class Estudos{
  public static void main(String[] args){
    // vamos criar os nós da árvore
    No cinco = new No(5); // será a raiz da árvore
    No quatro = new No(4);
    No nove = new No(9);
    No dois = new No(2);
    No tres = new No(3);
    No doze = new No(12);
    
    // vamos fazer a ligação entre os nós
    cinco.esquerdo = quatro;
    cinco.direito = nove;
    quatro.esquerdo = dois;
    nove.esquerdo = tres;
    nove.direito = doze;
    
    // agora já podemos efetuar o percurso depth-first
    ArrayList<Integer> valores = new ArrayList<>();
    percursoDepthFirst(valores, cinco);
    System.out.println("Os valores na ordem Depth-First são: " + valores);
  }
  
  public static void percursoDepthFirst(ArrayList<Integer> valores, No no){
    if(no != null){
      // vamos adicionar o valor deste nó no ArrayList
      valores.add(no.valor);
   
      // passamos para o filho esquerdo
      percursoDepthFirst(valores, no.esquerdo);
      // passamos para o filho direito
      percursoDepthFirst(valores, no.direito);
    }
  }
}

Ao executarmos este código Java nós teremos o seguinte resultado:

Os valores na ordem Depth-First são: [5, 4, 2, 9, 3, 12]

Compare estes valores com a imagem vista anteriormente para entender ainda melhor o percurso ou busca Depth-First.

Carregar Publicações Anteriores


Nossas 20 dicas & truques de programação mais populares

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

Últimos Exercícios Resolvidos

E-Books em PDF

E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser.

Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book
E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser.

Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: C
6º lugar: Delphi
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2025 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 51 usuários muito felizes estudando em nosso site.