Você está aqui: Java ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes)

Como rotacionar os elementos de um vetor de inteiros n vezes para a direita - Solução usando inversão do array - Desafio de Programação Resolvido em Java

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

Dado o vetor:

// vamos criar um vetor de inteiros
int valores[] = {1, 6, 9, 3, 7, 8, 5, 2};
Escreva um método Java que rotaciona este vetor para a direita um determinado número de casas. A função deverá receber o array e um inteiro indicando o número de rotações, ou seja, o número de vezes que os elementos do vetor serão movimentados para a direita.

Importante: a solução que apresentamos nesta dica usa uma técnica que consiste em inverter o array 3 vezes. Na primeira vez todo o vetor é invertido. Na segunda vez apenas os n elementos são invertidos. Finalmente, o restante dos elementos quant - n são invertidos. Aqui n representa a quantidade de rotações que serão feitas e quant é a quantidade de elementos no array. Na pesquisa que fizemos, essa é forma mais eficiente de resolver este desafio.

Sua saída deverá ser parecida com:

Array na ordem original:
1 6 9 3 7 8 5 2 

Primeira inversão do array
2 5 8 7 3 9 6 1 

Segunda inversão do array
8 5 2 7 3 9 6 1 

Terceira inversão do array
8 5 2 1 6 9 3 7 

Array depois de rotacionar 3 vezes:
8 5 2 1 6 9 3 7
Resposta/Solução:

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

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

package estudos;

public class Estudos {
  public static void main(String[] args) {
    // vamos criar um vetor de inteiros
    int valores[] = {1, 6, 9, 3, 7, 8, 5, 2};
    
    // mostramos o array na ordem original
    System.out.println("Array na ordem original:");
    exibirVetor(valores);
    
    // vamos rotacionar o array 3 casas para a direita
    valores = rotacionarArray(valores, 3);
    
    // e mostramos o resultado
    System.out.println("Array depois de rotacionar 3 vezes:");
    exibirVetor(valores);
  }
  
  // método usado para exibir o array
  public static void exibirVetor(int []vetor){
    // percorremos cada elemento do vetor
    for (int i = 0; i < vetor.length; i++) {
      System.out.print(vetor[i] + " ");
    }
    System.out.println("\n");
  }
  
  // método que recebe um vetor de inteiros e o rotaciona um
  // determinado número de vezes
  public static int[] rotacionarArray(int[] vetor, int n) {
    // vamos obter o tamanho do array
    int quant = vetor.length;
    
    // se a quantidae de rotações for maior que o número
    // de elementos no vetor, usamos o operador de módulo
    // para ajustar
    if(n > quant){
      n = n % quant;
    }
    
    // primeira inversão do vetor    
    vetor = inverterArray(vetor, 0, quant - 1);
    System.out.println("Primeira inversão do array");
    exibirVetor(vetor);
    
    // segunda inversão do array
    vetor = inverterArray(vetor, 0, n - 1);
    System.out.println("Segunda inversão do array");
    exibirVetor(vetor);
    
    // terceira inversão do array
    vetor = inverterArray(vetor, n, quant - 1);
    System.out.println("Terceira inversão do array");
    exibirVetor(vetor);
    
    // retorna o vetor rotacionado
    return vetor;
  }
  
  // método que recebe um vetor e o devolve invertido
  public static int[] inverterArray(int[] vetor,int inicio,int fim){
    // enquanto início for menor ou igual a fim
    while(inicio <= fim){
      int temp = vetor[inicio];
      vetor[inicio] = vetor[fim];
      vetor[fim] = temp;
      inicio++;
      fim--;
    }
  
    // retorna o vetor invertido 
    return vetor;
  }
}

A solução que apresentamos aqui usa a inversão de array, o que torna essa abordagem uma das mais eficientes. Em outras dicas do site nós apresentamos uma solução para este desafio usando força-bruta. A força-bruta não é a melhor abordagem, mas pode ser mais fácil de ser entendida por iniciantes em programação.

Link para compartilhar na Internet ou com seus amigos:

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

Como obter a quantidade de elementos em um vetor (array ou matriz de uma dimensão) em PHP

Quantidade de visualizações: 7769 vezes
Em várias situações de programação em PHP nós precisamos contar, ou seja, obter a quantidade de elementos em um vetor, também chamado de array ou matriz unidimensional (de uma dimensão). Para isso nós podemos usar as funções count() ou sizeof().

Veja um exemplo completo de seu uso:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

<html>
<head>
  <title>Estudos PHP</title>
</head>
 
<body>

<?php  
  $pessoas[0] = "Osmar J. Silva";
  $pessoas[1] = "Salvador M. Andrade";
  $pessoas[2] = "Dyego Fernandes de Sousa";
 
  echo "O vetor possui " . sizeof($pessoas) . " elementos.";
?>  

</body>
</html>


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

O vetor possui 3 elementos.


GNU Octave ::: Dicas & Truques ::: Trigonometria - Funções Trigonométricas

Como calcular o comprimento da hipotenusa em GNU Octave dadas as medidas do cateto oposto e do cateto adjascente

Quantidade de visualizações: 848 vezes
Nesta dica mostrarei como é possível usar a linguagem GNU Octave para retornar o comprimento da hipotenusa dadas as medidas do cateto oposto e do cateto adjascente. Vamos começar analisando a imagem a seguir:



Veja que, nessa imagem, eu já coloquei os comprimentos da hipotenusa, do cateto oposto e do cateto adjascente. Para facilitar a conferência dos cálculos, eu coloquei também os ângulos theta (que alguns livros chamam de alfa) e beta já devidamente calculados.

Então, sabendo que o quadrado da hipotenusa é igual à soma dos quadrados dos catetos (Teorema de Pitógoras):

\[c^2 = a^2 + b^2\]

Tudo que temos a fazer a converter esta fórmula para código GNU Octave (um script do GNU Octave). Veja:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

a <- 20 # medida do cateto oposto
b <- 30 # medida do cateto adjascente
  
# agora vamos calcular o comprimento da hipotenusa
c <- sqrt(power(a, 2) + power(b, 2))
 
# e mostramos o resultado
fprintf("O comprimento da hipotenusa é: %f\n\n", c)

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

O comprimento da hipotenusa é: 36.056000

Como podemos ver, o resultado retornado com o código GNU Octave confere com os valores da imagem apresentada.


Python ::: Desafios e Lista de Exercícios Resolvidos ::: NumPy Python Library

Exercício Resolvido de Python NumPy - Como somar duas matrizes usando a biblioteca NumPy do Python

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

Escreva um programa Python que usa a biblioteca NumPy para efetuar a soma de duas matrizes de mesma ordem, ou seja, mesmo número de linhas e colunas. Seu código deverá somar o primeiro elemento da matriz A com o primeiro elemento da matriz B, e assim por diante.

Sua saída deverá ser parecida com:

A primeira matriz é:
[[4 1 3]
 [9 2 5]]
A segunda matriz é:
[[ 3 10  2]
 [ 1 13  4]]
A matriz soma é:
[[ 7 11  5]
 [10 15  9]]
Resposta/Solução:

Veja a resolução comentada deste exercício em Python:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

# vamos importar a biblioteca NumPy
import numpy as np

# função principal do programa
def main():
  # vamos criar a primeira matriz
  a = np.array([[4, 1, 3],
                [9, 2, 5]])

  # vamos criar a segunda matriz
  b = np.array([[3, 10, 2],
                [1, 13, 4]])

  # vamos somar as duas matrizes
  c = a + b
  
  # e agora mostramos o resultado
  print("A primeira matriz é:\n{0}".format(a))
  print("A segunda matriz é:\n{0}".format(b))
  print("A matriz soma é:\n{0}".format(c))

if __name__== "__main__":
  main()



jQuery ::: Dicas & Truques ::: Manipulação e Conteúdo Dinâmico

Como adicionar conteúdo ao início de um elemento HTML usando a função prepend() do jQuery

Quantidade de visualizações: 256 vezes
O método prepend() permite adicionar conteúdo ao início de um elemento HTML. Este conteúdo pode ser um seletor, um elemento HTML, uma string HTML ou um objeto jQuery.

Veja um trecho de código no qual adicionamos uma linha de texto no início de um parágrafo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

<script type="text/javascript">
<!--
  function adicionarConteudo(){
    var texto = "Mais uma linha.<br>";
    $("#parag").prepend(texto);
  }
//-->
</script>

O método prepend() opera em todos os elementos HTML retornados sob uma determinação condição. O retorno do método é um objeto jQuery que pode ser usado para fins de encadeamento de chamadas de métodos.


Python ::: Python para Engenharia ::: Geometria Analítica e Álgebra Linear

Como calcular a transposta de uma matriz em Python - Python para Geometria Analítica e Álgebra Linear

Quantidade de visualizações: 5665 vezes
A matriz transposta de uma matriz A é a matriz AT. Tal matriz é obtida quando copiamos os elementos da matriz A para uma outra matriz (ou para ela mesma) e trocamos de posição as linhas e colunas. Dessa forma, a primeira linha da matriz A se transforma na primeira coluna da matriz transposta, a segunda linha da matriz A se transforma na segunda coluna da matriz transposta e assim por diante.

Em termos de notação, podemos dizer, de forma algébrica, que:

ATji = Aij

Onde i representa as linhas e j representa as colunas, tanto na matriz original quanto na matriz transposta.

É importante estar atento à quantidade de linhas e colunas na matriz original e na matriz transposta equivalente. Assim, se a matriz original for 3x2, a matriz transposta será 2x3.

Antes de vermos o código Python, dê uma olhada na seguinte matriz de duas linhas e três colunas:

\[A = \left[\begin{matrix} 3 & 5 & 7 \\ 1 & 2 & 9 \end{matrix}\right] \]

Sua matriz transposta correspondente é:

\[A^T = \left[\begin{matrix} 3 & 1 \\ 5 & 2 \\ 7 & 9 \end{matrix}\right] \]

E agora veja o código Python que declara uma matriz 2x3 e gera a matriz transposta 3x2:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

# importamos a bibliteca NumPy
import numpy as np
   
def main():
  # vamos declarar e construir uma matrix
  # 2x3 (duas linhas e três colunas
  matriz = np.array([(3, 5, 7), (1, 2, 9)])
    
  # vamos exibir os valores da matriz
  print("Elementos da matriz:")
  for i in range(np.shape(matriz)[0]):
    for j in range(np.shape(matriz)[1]):
      print("%7.2f" % matriz[i][j], end="")
    
    print()

  # como temos uma matriz 2x3, a transposta deverá ser
  # 3x2, ou seja, três linhas e duas colunas
  linhas = np.shape(matriz)[0] # linhas da matriz original
  colunas = np.shape(matriz)[1] # colunas da matriz original
  transposta = np.empty((colunas, linhas)) 
    
  # e agora vamos preencher a matriz transposta
  for i in range(np.shape(matriz)[0]):
    for j in range(np.shape(matriz)[1]):
      transposta[j][i] = matriz[i][j]
    
  # vamos exibir os valores da matriz transposta
  print("\nElementos da matriz transposta:")
  for i in range(np.shape(transposta)[0]):
    for j in range(np.shape(transposta)[1]):
      print("%7.2f" % transposta[i][j], end="")
    
    print()  

if __name__== "__main__":
  main()

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

Elementos da matriz:
    3      5      7  
    1      2      9  
Elementos da matriz transposta:
    3      1  
    5      2  
    7      9  


É possível também obter a matriz transposta de um outra matriz usando o método transpose() da biblioteca NumPy da linguagem Python. Veja:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

# importamos a bibliteca NumPy
import numpy as np
   
def main():
  # vamos declarar e construir uma matrix
  # 2x3 (duas linhas e três colunas
  matriz = np.array([(3, 5, 7), (1, 2, 9)])
    
  # vamos exibir os valores da matriz
  print("Elementos da matriz:")
  for i in range(np.shape(matriz)[0]):
    for j in range(np.shape(matriz)[1]):
      print("%7.2f" % matriz[i][j], end="")
    
    print()

  # vamos transpor a matriz usando o método transpose()
  transposta = matriz.transpose() 
    
  # vamos exibir os valores da matriz transposta
  print("\nElementos da matriz transposta:")
  for i in range(np.shape(transposta)[0]):
    for j in range(np.shape(transposta)[1]):
      print("%7.2f" % transposta[i][j], end="")
    
    print()  

if __name__== "__main__":
  main()

Ao executar este novo código Python veremos que o resultado é o mesmo.


Desafios, Exercícios e Algoritmos Resolvidos de Python

Veja mais Dicas e truques de Python

Dicas e truques de outras linguagens

Códigos Fonte

Programa de Gestão Financeira Controle de Contas a Pagar e a Receber com Cadastro de Clientes e FornecedoresSoftware de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento
Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidadesControle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades
Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais

Linguagens Mais Populares

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



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