Dúvidas, comentários e doaçoes: +55 62 9 8513 2505

Planilha de Dimensionamento de Tubulações Hidráulicas Água Fria e Água Quente Completa
Nossa planilha automática de dimensionamento de tubulações de água fria e quente é uma ferramenta desenvolvida para auxiliar engenheiros e projetistas no cálculo rápido e preciso das redes hidráulicas de edificaçoes. Por meio da inserçao de dados como vazao, diâmetro da tubulaçao, comprimento da rede, material do tubo e coeficientes hidráulicos, a planilha realiza automaticamente os cálculos necessários para verificar velocidade da água, perda de carga e dimensionamento adequado das tubulaçoes.

Python ::: Desafios e Lista de Exercícios Resolvidos ::: Strings e Caracteres

Exercício Resolvido de Python - Como testar se duas palavras são anagramas uma da outra - Solução usando dicionário/hash table

Quantidade de visualizações: 2908 vezes
Exercícios Resolvidos de Python - Como testar se duas palavras são anagramas uma da outra - Solução usando dicionário/hash table

Pergunta/Tarefa:

Dadas duas palavras p1 e p2, escreva um código Python que informa se uma palavra é anagrama da outra. Um anagrama é uma espécie de jogo de palavras criado com a reorganização das letras de uma palavra ou expressão para produzir outras palavras ou expressões, utilizando todas as letras originais exatamente uma vez.

Para esta solução você deverá, obrigatoriamente, usar um dicionário Python, ou seja, um objeto dict. O objetivo é construir duas tabelas de frequências dos caracteres de cada palavra. Dicionários em Python são similares às tabelas hash (hash tables) em outras linguagens de programação.

Seu programa deverá exibir a seguinte saída:



Resposta/Solução:

Veja a resolução com código comentado em Python:

# método que recebe duas palavras e retorna
# verdadeiro se uma palavra for anagrama da
# outra
def anagramas(palavra1, palavra2):
  # o primeiro passo é verificar se os comprimentos das duas
  # palavras são iguais
  if(len(palavra1) != len(palavra2)):
    return False 

  # agora criamos dois dictionaries para as frequencias de
  # cada uma das palavras
  freq_p1 = {}
  freq_p2 = {}

  # agora registramos as frequências de letras na primeira
  # palavra
  for letra in palavra1:
    # a letra já está no dicionário?
    if letra in freq_p1:
      freq_p1[letra] += 1 # aumenta a frequêcia desta letra
    else:
      freq_p1[letra] = 1 # ainda não estava no dicionário

  # agora registramos as frequências de letras na segunda
  # palavra
  for letra in palavra2:
    # a letra já está no dicionário?
    if letra in freq_p2:
      freq_p2[letra] += 1 # aumenta a frequêcia desta letra
    else:
      freq_p2[letra] = 1 # ainda não estava no dicionário 

  # registradas as frequências de letras das duas palavras,
  # chegou a hora de compararmos os dois dicionários
  for chave in freq_p1:
    # esta chave não está no segundo dicionário ou
    # possui valores diferentes?
    if chave not in freq_p2  or freq_p1[chave] != freq_p2[chave]:
      return False 
  
  # se chegou até aqui então uma palavra é anagrama da outra
  return True 

def main():
  # vamos ler duas palavras e verificar se uma é anagrama da outra
  palavra1 = input("Informe a primeira palavra: ")
  palavra2 = input("Informe a segunda palavra: ")

  # vamos chamar o método que faz a verificação
  if(anagramas(palavra1, palavra2)):
    print("As duas palavras são anagramas")
  else:
    print("As duas palavras não são anagramas")

if __name__== "__main__":
  main()



PHP ::: Dicas & Truques ::: Upload de Arquivos

Como fazer upload de arquivos em PHP - Escreva do zero seu código de upload de arquivos e imagens em PHP

Quantidade de visualizações: 11039 vezes
Nesta dica mostrarei como escrever seu primeiro código para upload de arquivos em PHP. Trata-se de um código realmente básico e, depois de aprendê-lo, recomendo que leia as demais dicas desta seção e implemente outras funcionalidades, tais como restringir os tipos e tamanhos dos arquivos a serem enviados ao servidor.

O primeiro passo é definir em qual diretório de sua hospedagem os arquivos enviados serão salvos. Feito isso, verifique se você possui permissão de escrita neste diretório. Se estiver usando Linux, um CHMOD 666 ou 777 deve resolver.

Vamos começar então. Crie uma página contendo o seguinte formulário:

<html>
<head>
<title>Upload de arquivos usando PHP</title>
</head>
<body>

<form action="testes.php" method="post" 
  enctype="multipart/form-data">
Arquivo: <input type="file" name="arquivo"><br>
<input type="submit" name="submit" value="Enviar">
</form>

</body>
</html>

Veja que este formulário aponta para um arquivo testes.php e contém um campo <input type="file"> chamado "arquivo". Tenha este nome em mente para o perfeito entendimento do código. Veja agora o conteúdo do arquivo testes.php:

<?php
  // diretório no qual o arquivo será gravado. este diretório
  // deverá ter permissão de escrita
  $diretorio = "/home/xxx/xxx/xxx/imagens/";
  
  // vamos verificar o código do erro
  if($_FILES['arquivo']['error'] == UPLOAD_ERR_OK){
    // o arquivo foi transferido com sucesso. vamos usar a
    // função move_uploaded_file() para copiá-lo para 
    // seu local definitivo
    move_uploaded_file($_FILES["arquivo"]["tmp_name"], 
      $diretorio . $_FILES["arquivo"]["name"]);
    echo "Upload feito com sucesso";
  }
  else
    echo "Ocorreu um erro no upload";
?>

Salve os dois arquivos na sua área de hospedagem, acesse a primeira página e envie um arquivo. Se você seguiu as instruções corretamente, o upload será feito com sucesso.

A parte mais importante deste código é o uso da função move_uploaded_file(). Esta função recebe o o local e nome temporário do arquivo e o diretório e nome para o qual o arquivo será enviado em definitivo. Note que usamos o nome original do arquivo na máquina do usuário para salvá-lo com o mesmo nome. É neste procedimento que aproveitamos para remover espaços e caracteres especiais do nome do arquivo. Se você faz parte do mundo Linux entenderá perfeitamente o que estou dizendo.


CSS ::: Dicas & Truques ::: Barras de Navegação, Menus e Dropdowns

Como criar uma barra de navegação horizontal com menu dropdown em HTML e CSS - Menu suspenso usando CSS

Quantidade de visualizações: 1199 vezes
Nesta dica mostrarei como podemos usar uma combinação de várias propriedades CSS para criar um menu suspenso, ou seja, uma barra de navegação contendo links normais e também links que, ao passar o mouse, exibe uma lista de sub-menus.

O código apresentado neste exemplo é muito útil para estudantes de HTML e CSS, pois apresenta várias propriedades interessantes para melhorar o visual e a usabilidade de suas páginas web.

Entre as propriedades CSS usadas na criação deste menu suspenso nós podemos citar overflow, margin, padding, list-style-type, background-color, display, float, text-align, text-decoration, position, min-width e z-index. Note que coloquei o mínimo de código para fazer a barra de menus funcional. Fique à vontade para acrescentar as formatações que você achar interessante.

Veja a página HTML e CSS para o exemplo:

<!doctype html>
<html>
<head>
  <title>Estudos CSS</title>
  
<style>
  /* estiliza o elemento <ul> */
  ul{
    background-color: #e0e0e0;
    margin: 0;
    padding: 0;
    overflow: hidden;
    list-style-type: none;
  }

  /* aplica estilo aos elementos <li> */
  li{
    float: left;
  }
  
  /* aplica estilo aos links e <li> do sub-menu */
  li a, .dropdown_linguagens{
    display: inline-block;
    text-align: center;
    padding: 10px 15px;
    text-decoration: none;
  }
  
  /* define o display do <li> de linguagens */
  li.linguagens{
    display: inline-block;
  }
  
  /* aplica estilo ao menu de linguagens */
  .menus_linguagens{
    display: none;
    position: absolute;
    background-color: #eceff1;
    min-width: 160px;
    z-index: 1;
  }

  /* aplica estilo aos links do sub-menu */
 .menus_linguagens a {
   padding: 10px 15px;
   text-decoration: none;
   display: block;
   text-align: left;
 }

 /* exibe o sub-menu ao passar o mouse */ 
 .linguagens:hover .menus_linguagens{
   display: block;
 }
 
 /* aplica uma cor diferente aos menus ao
    passar o mouse */
 .menus_linguagens a:hover{
   background-color: #cfd8dc;
 }
</style>

</head>
  
<body>

<h1>Exemplo de Barra de Navegação com
  Menu Dropdown</h1>

<ul>
  <li><a href="index.php">Inicial</a></li>
  <li class="linguagens">
    <a href="javascript:void(0)" class="dropdown_linguagens">
      Linguagens</a>
    <div class="menus_linguagens">
      <a href="java.php">Java</a>
      <a href="python.php">Python</a>
      <a href="ruby.php">Ruby</a>
      <a href="delphi.php">Delphi</a>
    </div>
  </li>
</ul>
  
</body>
</html>



C++ ::: C++ para Engenharia ::: Geometria Analítica e Álgebra Linear

Como somar os elementos da diagonal principal de uma matriz em C++

Quantidade de visualizações: 1913 vezes
A Matriz quadrada é um tipo especial de matriz que possui o mesmo número de linhas e o mesmo número de colunas, ou seja, dada uma matriz Anxm, ela será uma matriz quadrada se, e somente se, n = m, onde n é o número de linhas e m é o número de colunas.

Em geral as matrizes quadradas são chamadas de Matrizes de Ordem n, onde n é o número de linhas e colunas. Dessa forma, uma matriz de ordem 4 é uma matriz que possui 4 linhas e quatro colunas.

Toda matriz quadrada possui duas diagonais, e elas são muito exploradas tanto na matemática quanto na construção de algorítmos. Essas duas diagonais são chamadas de Diagonal Principal e Diagonal Secundária.

A diagonal principal de uma matriz quadrada une o seu canto superior esquerdo ao canto inferior direito. Veja:



Nesta dica veremos como calcular a soma dos valores dos elementos da diagonal principal de uma matriz usando C++. Para isso, só precisamos manter em mente que a diagonal principal de uma matriz A é a coleção das entradas Aij em que i é igual a j. Assim, tudo que temos a fazer é converter essa regra para código C++.

Veja um trecho de código C++ completo no qual pedimos para o usuário informar os elementos da matriz e em seguida mostramos a soma dos elementos da diagonal superior:

#include <iostream>
#include <cstdlib>
   
using namespace std;
   
int main(int argc, char *argv[]){
  // vamos declarar e construir uma matriz de três linhas
  // e três colunas
  int linhas = 3, colunas = 3;
  int matriz[linhas][colunas];
  // guarda a soma dos elementos na diagonal principal
  int soma_diagonal = 0;
    
  // vamos ler os valores para os elementos da matriz
  for(int i = 0; i < linhas; i++){ // linhas
    for(int j = 0; j < colunas; j++){ // colunas
      cout << "Informe o valor para a linha " << i <<
	" e coluna " << j << ": "; 
      cin >> matriz[i][j];       
    }       
  }
     
  // vamos mostrar a matriz da forma que ela
  // foi informada
  cout << "\n";
  // percorre as linhas
  for(int i = 0; i < linhas; i++){ 
    // percorre as colunas
    for(int j = 0; j < colunas; j++){ 
      cout << matriz[i][j] << "   ";
    }
    // passa para a próxima linha da matriz
    cout << "\n";
  }
     
  // vamos calcular a soma dos elementos da diagonal   
  // principal
  for(int i = 0; i < linhas; i++){
    for(int j = 0; j < colunas; j++){
      if(i == j){
        soma_diagonal = soma_diagonal + matriz[i][j];
      }
    }
  }
     
  // finalmente mostramos a soma da diagonal principal
  cout << "\nA soma dos elementos da diagonal principal é: " 
    << soma_diagonal << "\n\n";
       
  system("PAUSE"); // pausa o programa
  return EXIT_SUCCESS;
}

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

Informe o valor para a linha 0 e coluna 0: 3
Informe o valor para a linha 0 e coluna 1: 7
Informe o valor para a linha 0 e coluna 2: 9
Informe o valor para a linha 1 e coluna 0: 2
Informe o valor para a linha 1 e coluna 1: 4
Informe o valor para a linha 1 e coluna 2: 1
Informe o valor para a linha 2 e coluna 0: 5
Informe o valor para a linha 2 e coluna 1: 6
Informe o valor para a linha 2 e coluna 2: 8

3    7    9
2    4    1
5    6    8

A soma dos elementos da diagonal principal é: 15



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 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
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

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


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 Apenas R$ 19,90


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