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.

VisuAlg ::: Dicas & Truques ::: Matemática e Estatística

Como resolver uma equação do segundo grau em VisuAlg - Como calcular Bhaskara em VisuAlg

Quantidade de visualizações: 2616 vezes
Como resolver uma equação do 2º grau usando VisuAlg

Nesta dica mostrarei como encontrar as raízes de uma equação quadrática, ou seja, uma equação do 2º usando um algoritmo escrito na ferramenta VisuAlg, uma das preferidas para o aprendizado de algoritmos e lógica de programação.

Definimos como equação do 2º grau ou equações quadráticas qualquer equação do tipo ax² + bx + c = 0 em que a, b e c são números reais e a ≠ 0. Ela recebe esse nome porque, no primeiro membro da igualdade, há um polinômio de grau dois com uma única incógnita.

Note que, dos coeficientes a, b e c, somente o a é diferente de zero, pois, caso ele fosse igual a zero, o termo ax² seria igual a zero, logo a equação se tornaria uma equação do primeiro grau: bx + c = 0.

Independentemente da ordem da equação, o coeficiente a sempre acompanha o termo x², o coeficiente b sempre acompanha o termo x, e o coeficiente c é sempre o termo independente.

Como resolver uma equação do 2º grau

Conhecemos como soluções ou raízes da equação ax² + bx + c = 0 os valores de x que fazem com que essa equação seja verdadeira. Uma equação do 2º grau pode ter no máximo dois números reais que sejam raízes dela. Para resolver equações do 2º grau completas, existem dois métodos mais comuns:

a) Fórmula de Bhaskara;
b) Soma e produto.

O primeiro método é bastante mecânico, o que faz com que muitos o prefiram. Já para utilizar o segundo, é necessário o conhecimento de múltiplos e divisores. Além disso, quando as soluções da equação são números quebrados, soma e produto não é uma alternativa boa.

Como resolver uma equação do 2º grau usando Bhaskara

Como nosso algoritmo VisuAlg vai resolver a equação quadrática usando a Fórmula de Bhaskara, o primeiro passo é encontrar o determinante. Veja:

\[\Delta =b^2-4ac\]

Nem sempre a equação possui solução real. O valor do determinante é que nos indica isso, existindo três possibilidades:

a) Se determinante > 0, então a equação possui duas soluções reais.
b) Se determinante = 0, então a equação possui uma única solução real.
c) Se determinante < 0, então a equação não possui solução real.

Encontrado o determinante, só precisamos substituir os valores, incluindo o determinante, na Fórmula de Bhaskara:

\[x = \dfrac{- b\pm\sqrt{b^2- 4ac}}{2a}\]

Vamos agora ao código VisuAlg. Nossa aplicação vai pedir para o usuário informar os valores dos três coeficientes a, b e c e, em seguida, vai apresentar as raizes da equação:

Algoritmo "Como resolver uma equação do 2º grau usando VisuAlg"

Var
  // variáveis usadas na resolução do problema
  // os coeficientes
  a, b, c: real
  // as duas raizes, a imaginaria e o discriminante
  raiz1, raiz2, imaginaria, discriminante: real

Inicio
  // vamos pedir para o usuário informar os valores dos coeficientes
  escreva("Valor do coeficiente a: ")
  leia(a)
  escreva("Valor do coeficiente b: ")
  leia(b)
  escreva("Valor do coeficiente c: ")
  leia(c)

  // vamos calcular o discriminante
  discriminante <- (b * b) - (4 * a * c)

  // a equação possui duas soluções reais?
  se discriminante > 0 então
    raiz1 <- (-b + raizq(discriminante)) / (2 * a)
    raiz2 <- (-b - raizq(discriminante)) / (2 * a)
    escreva("Duas raizes: x1 = ", raiz1, " e x2 = ", raiz2)
  senão
    // a equação possui uma única solução real?
    se discriminante = 0 então
      raiz1 <- -b / (2 * a)
      raiz2 <- -b / (2 * a)
      escreva("Duas raizes iguais: x1 = ", raiz1, " e x2 = ", raiz2)
    // a equação não possui solução real?
    senão
      raiz1 <- -b / (2 * a)
      raiz2 <- -b / (2 * a)
      imaginaria <- raizq(-discriminante) / (2 * a)
      escreva("Existem duas raízes complexas: ")
      escreva("x1 = ", raiz1, " + " ,imaginaria, " e x2 = ", raiz2, " - ", imaginaria)
    fimse
  fimse

Fimalgoritmo

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

Valor do coeficiente a: 1
Valor do coeficiente b: 2
Valor do coeficiente c: -3
Existem duas raizes: x1 = 1.0 e x2 = -3.0


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: 5099 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 <stdio.h>
#include <stdlib.h>
 
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;
  int i, j;
	   
  // vamos ler os valores para os elementos da matriz
  for(i = 0; i < linhas; i++){ // linhas
    for(j = 0; j < colunas; j++){ // colunas
      printf("Informe o valor para a linha %d e coluna %d: " 
        , i, j);
      scanf("%d", &matriz[i][j]);       
    }       
  }
     
  // vamos mostrar a matriz da forma que ela
  // foi informada
  printf("\n");
  // percorre as linhas
  for(i = 0; i < linhas; i++){ 
    // percorre as colunas
    for(j = 0; j < colunas; j++){ 
      printf("%d    ", matriz[i][j]);
    }
    // passa para a próxima linha da matriz
    printf("\n");
  }
     
  // vamos calcular a soma dos elementos da diagonal   
  // principal
  for(i = 0; i < linhas; i++){
    for(j = 0; j < colunas; j++){
      if(i == j){
        soma_diagonal = soma_diagonal + matriz[i][j];
      }
    }
  }
     
  // finalmente mostramos a soma da diagonal principal
  printf("\nA soma dos elementos da diagonal principal é: %d" 
   , soma_diagonal);
  
  printf("\n\n");
  system("PAUSE");
  return 0;
}

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



Android Java ::: android.widget ::: Button

Como detectar um clique em um botão do Android usando o evento onClick no XML de layout

Quantidade de visualizações: 2780 vezes
Nesta dica mostrarei como podemos detectar um clique em um botão usando o evento onClick diretamente no arquivo XML de layout. No entanto, para usar este artifício, algumas regras devem ser seguidas:

a) O método chamado pelo clique do botão deverá ser public e retornar void;
b) O único parâmetro do método deverá conter apenas um objeto da classe View, representando a view na qual o evento onclick ocorreu.

Veja um exemplo completo no qual detectamos o clique no botão e exibimos uma mensagem AlertDialog contendo apenas um botão OK. Comece analisando o XML de layout (o nome do botão foi definido no arquivo strings.xml):

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="
  http://schemas.android.com/apk/res/android"
  android:orientation="vertical"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent">
  tools:context=".MainActivity">

  <Button xmlns:android="
    http://schemas.android.com/apk/res/android"
    android:id="@+id/button_send"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/btn_enviar"
    android:onClick="enviarMensagem"
    />

</LinearLayout>

Veja agora o código Java no MainActivity.java:

package com.example.estudosandroid;

import androidx.appcompat.app.AppCompatActivity;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.app.AlertDialog;

public class MainActivity extends AppCompatActivity {
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
  }

  // método público que será chamado ao clicarmos no botão
  public void enviarMensagem(View view) {
    AlertDialog dialogo = new 
      AlertDialog.Builder(MainActivity.this).create();
    dialogo.setTitle("Aviso");
    dialogo.setMessage("Esta é uma mensagem de aviso");
    dialogo.setButton(AlertDialog.BUTTON_NEUTRAL, "OK",
      new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, 
          int which){
          dialog.dismiss(); // fecha o AlertDialog
        }
      }
    );

    dialogo.show();
  }
}



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: 3089 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()



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

Planilha Web - Planilhas e Calculadoras online para estudantes e profissionais de Engenharia Civil, Engenharia Elétrica e Engenharia Mecânica.


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