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

Como somar os elementos da diagonal principal de uma matriz em Python

Quantidade de visualizações: 3699 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 Python. 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 Python.

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

def main():
  # vamos declarar e construir uma matriz de três linhas
  # e três colunas
  linhas, colunas = (3, 3)
  matriz = [[0 for x in range(linhas)] for y in range(colunas)]
  soma_diagonal = 0 # guarda a soma dos elementos na diagonal
  # principal

  # vamos ler os elementos da matriz
  for i in range(len(matriz)):
    for j in range(len(matriz[i])):
      matriz[i][j] = int(input("Informe o valor para a linha " + str(i) 
        + " e coluna " + str(j) + ": "))

  print()
  for i in range(len(matriz)):
    for j in range(len(matriz[i])):
      print(matriz[i][j], end='  ')
    print()

  # vamos calcular a soma dos elementos da diagonal   
  # principal
  for i in range(len(matriz)):
    for j in range(len(matriz[i])):
      if i == j:
        soma_diagonal = soma_diagonal + matriz[i][j]

  # finalmente mostramos a soma da diagonal principal
  print("\nA soma dos elementos da diagonal principal é: %d" %
    soma_diagonal)  

if __name__== "__main__":
  main()

Ao executar este código Python 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



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

Como excluir todos os itens de uma ListBox do Delphi - Como remover todos os itens da ListBox usando a função Clear

Quantidade de visualizações: 14692 vezes
Em algumas situações nós precisamos excluir todos os itens de uma ListBox. Para tais situações podemos usar o método Clear da classe ListBox. Veja:

procedure TForm1.Button2Click(Sender: TObject);
begin
  // vamos excluir todos os itens da ListBox
  ListBox1.Clear;
  

  // poderíamos também usar
  // ListBox1.Items.Clear;
end;

Note que podemos também chamar o método Clear diretamente no objeto Items da ListBox, embora a chamada na ao método Clear da lista seja mais comum.

É possível também excluir os itens de uma ListBox individualmente chamando a função Delete() no objeto Items. Neste caso nós usamos um laço e percorremos todos os elementos da lista e os excluímos um a um. É importante, para estes casos, lembrarmos de percorrer os itens do último para o primeiro. Caso esta regra não seja obedecida, poderá haver erros de acesso durante a exclusão. Veja o código:

procedure TForm1.Button2Click(Sender: TObject);
var
  i: Integer;
begin
  // vamos percorrer todos os itens da ListBox do último
  // para o primeiro
  for i := ListBox1.Items.Count - 1 downto 0 do
    begin
      // vamos excluir o item no índice correspondente
      ListBox1.Items.Delete(i);
    end;
end;

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


Delphi ::: Dicas & Truques ::: Bilbiotecas Estáticas (obj) e Dinâmicas (DLLs)

Como criar DLLs usando Delphi? É possível criar DLLs para o Windows usando Delphi?

Quantidade de visualizações: 13064 vezes
As DLLs (Dynamic Link Libraries - Bibliotecas de Vínculo Dinâmico) são arquivos compilados bem similares aos arquivos .exe que estamos acostumados a criar em Delphi. Uma DLL contém rotinas, recursos ou ambos. Mas, não pode ser executada por si só, ou seja, se dermos duplo-clique em uma DLL nada acontecerá.

Isso acontece porque uma DLL é desenvolvida para ser usada juntamente como outros aplicativos e/ou outras DLLs. No ambiente Windows encontramos muitas DLLs. Na verdade, o Windows e sua Win32 API é uma coleção de DLLs. Se olharmos nos diretórios System ou System32 encontraremos várias delas, incluindo kernel32.dll, gdi32.dll, user32.dll, shell32.dll, comctl32.dll, entre outras.

Mas, para que servem as DLLs? É possível desenvolver aplicações Windows sem usá-las? Vamos às respostas.

As DLLs existem com o propósito de compartilhar código entre aplicações. Isso quer dizer que uma mesma DLL pode estar sendo usada por vários programas ao mesmo tempo. E isso é verdade no ambiente Windows. Todos os programas de interface gráfica escritos em Delphi, C, C++, etc e que usam os componentes gráficos do Windows estão de alguma forma fazendo uso de códigos disponíveis em DLLs do sistema. Sem o aproveitamente de tais códigos os executáveis ficariam enormes, visto que cada um teria que implementar as rotinas de desenho e diretivas de criação de janelas. Ao aproveitar as funcionalidades disponíveis nas DLLs do sistema esta tarefa se torna muito mais fácil.

Mas, além de usar DLLs de terceiros com códigos já prontos e devidamente testados, você também pode criar suas próprias DLLs. O motivo disso é que você pode querer compartilhar algumas de suas rotinas entre os vários aplicativos que você desenvolve. A maior vantagem disso é que, ao atualizar ou corrigir o código em uma DLL você estará certo de que todas as aplicações que fazem uso desta DLL automaticamente perceberão e tirarão proveito da atualização.

Entre as vantagens do uso de DLLs podemos citar:

a) Podemos compartilhar rotinas e códigos entre várias aplicativos;

b) Ao mantermos boa parte de nossos códigos em DLLs nós conseguimos economizar memória e espaço em disco;

c) Outros desenvolvedores poderão usar nossas rotinas e lógica mesmo sem ter acesso aos nossos códigos-fontes;

d) Podemos usar códigos escritos em outras linguagens em nossos programas Delphi. Isso quer dizer que uma DLL escrita em C/C++ poderá ser usada em um programa Delphi sem qualquer problema. A prova disso é que as DLLs do Windows são escritas em C/C++.

Hora de criar sua primeira DLL em Delphi. Consulte outras dicas nesta seção para aprender a fazê-lo.

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


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

Exercícios Resolvidos de VisuAlg - Escreva um programa VisuAlg que pergunte a velocidade de um carro. Caso ultrapasse 80km/h, exiba uma mensagem dizendo que

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

Escreva um programa VisuAlg que pergunte a velocidade de um carro. Caso ultrapasse 80km/h, exiba uma mensagem dizendo que o usuário foi multado. Nesse caso, exiba o valor da multa, cobrando R$ 5,00 por cada quilômetro acima da velocidade permitida.

Sua saída deve ser parecida com:

Velocidade do carro: 85
Você foi multado.
A multa a ser paga é: 25.0

Velocidade do carro: 75
Você não foi multado

Velocidade do carro: 110
Você foi multado.
A multa a ser paga é: 150.0
Resposta/Solução:

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

algoritmo "Calcular a velocidade de um carro em VisuAlg"

var
  // variáveis usadas na resolução do problema
  velocidade, multa: real

// função principal do programa
inicio
  // vamos pedir para o usuário informar a velocidade
  // do carro
  escreva("Informe a velocidade do carro: ")
  leia(velocidade)

  // vamos verificar se o usuário foi multado
  se (velocidade > 80) entao
    escreval("Você foi multado.")
    // vamos calcular a multa
    multa <- (velocidade - 80) * 5.0
    escreval("A multa a ser paga é: ", multa)
  senao
    escreval("Você não foi multado")
  fimse

  escreval()

fimalgoritmo



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

Exercícios Resolvidos de Lisp - Como converter quilômetros em metros, centímetros e milímetros usando Lisp

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

Escreva um programa em Common Lisp para converter quilômetros em metros, centímetros e milímetros. Seu programa deverá pedir para o usuário informar a quantidade de quilômetros e exibir as conversões solicitadas.

Como sabemos, um Quilômetro = 1000 Metros, 100.000 Centímetros ou 1.000.000 Milímetros.

Seu programa deverá exibir uma saída parecida com:

Informe a distância em quilômetros: 2.5
Distância em Quilômetros: 2.5
Distância em Metros: 2500.0
Distância em Centímetros: 250000.0
Distância em Milímetros: 2500000.0
Resposta/Solução:

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

; Variáveis usadas na resolução do problema
(let ((quilometros)(metros)(centimetros)(milimetros))
  ; vamos ler a quantidade de quilômetros
  (princ "Informe a distância em quilômetros: ")
  ; talvez o seu compilador não precise disso
  (force-output)
  ; atribui o valor lido à variável quilometros
  (setq quilometros (read))
  
  ; vamos calcular a distância em metros
  (setq metros (* quilometros 1000.0))
  ; vamos calcular a distância em centímetros
  (setq centimetros (* quilometros 100000.0))
  ; e agora a distância em milímetros
  (setq milimetros (* quilometros 1000000.0))
  
  ; E mostramos o resultado
  (format t "Distância em Quilômetros: ~F" quilometros)
  (format t "~%Distância em Metros: ~F" metros)
  (format t "~%Distância em Centímetros: ~F" centimetros)
  (format t "~%Distância em Milímetros: ~F" milimetros)
)



C# ::: Windows Forms ::: Formulários e Janelas

Como maximizar um formulário Windows Forms ao clicar em um botão usando a linguagem C#

Quantidade de visualizações: 13428 vezes
Em algumas situações gostaríamos de maximizar um formulário Windows Forms baseado em alguma ação do usuário. Isso pode ser feito definindo-se a constante FormWindowState.Maximized para a propriedade WindowState da classe Form.

O trecho de código abaixo mostra como maximizar o formulário ao clicarmos em um botão:

private void button1_Click(object sender, EventArgs e){
  // vamos maximizar o formulário
  this.WindowState = FormWindowState.Maximized;
}



Java ::: Dicas & Truques ::: Formulários e Janelas

Java Swing para iniciantes - Como criar seu primeiro aplicativo de interface gráfica em Java Swing

Quantidade de visualizações: 80423 vezes
Um aplicativo de interface gráfica em Java é criado usando-se a classe JFrame, do Java Swing. Objetos desta classe servem como containeres para outros componentes e são as janelas principais dos aplicativos, com título e botões para redimensionar, minimizar, maximizar e fechar.

Veja um exemplo de um simples aplicativo de interface gráfica em Java Swing:

package arquivodecodigos;

import javax.swing.*;
 
public class Estudos extends JFrame{
  public Estudos() {
    super("Minha primeira aplicação GUI");
    setSize(350, 250);
    setVisible(true);
  }
   
  public static void main(String args[]){
    Estudos app = new Estudos();
    app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }
}

Este código gera uma janela principal de um aplicativo com 350 pixels de largura e 250 pixels de altura. O título da janela é: "Minha primeira aplicação GUI".

Veja o resultado na figura abaixo:




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

Exercícios Resolvidos de C - Como retornar o primeiro elemento de um vetor em C

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

Dado o vetor:

[9, 5, 3, 2, 4, 8]

Escreva um programa C que mostra como acessar e retornar o primeiro elemento de um vetor (array) em C.

Sua saída deverá ser parecida com:

O primeiro elemento do array é: 9 
Resposta/Solução:

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

#include <stdio.h>
#include <stdlib.h>

// função principal do programa
int main(int argc, char *argv[]){
  // vamos criar um array de inteiros
  int valores[] = {9, 5, 3, 2, 4, 8};
    
  // agora vamos retornar o primeiro elemento do vetor
  int primeiro = valores[0];
    
  // e mostramos o resultado
  printf("O primeiro elemento do array é: %d", primeiro);
  
  printf("\n\n");
  system("PAUSE");
  return 0;
}



Java ::: Desafios e Lista de Exercícios Resolvidos ::: Recursão (Recursividade)

Exercícios Resolvidos de Java - Como calcular a potência de um número usando recursividade em Java - Funções recursivas em Java

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

A potenciação ou exponenciação é a operação de elevar um número ou expressão a uma dada potência. Escreva um método Java recursivo que recebe uma base e um expoente e eleva a base ao expoente.

Seu método deverá possuir a seguinte assinatura:

public static int potencia(int base, int expoente){
  // sua implementação aqui
}
Como melhoria na resolução, você pode tratar o caso no qual o expoente é igual a 0 (na resolução abaixo deixei esta possibilidade em aberto).

Sua saída deverá ser parecida com:

Informe a base: 5
Informe o expoente: 3
A base 5 elevada ao exponente 3 é 125
Resposta/Solução:

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

package estudos;

import java.util.Scanner;

public class Estudos {
  public static void main(String[] args) {
    // cria um novo objeto da classe Scanner
    Scanner entrada = new Scanner(System.in);
    
    // solicita a base
    System.out.print("Informe a base: ");
    // lê a base
    int base = Integer.parseInt(entrada.nextLine());
    // solicita o expoente
    System.out.print("Informe o expoente: ");
    // lê o expoente
    int expoente = Integer.parseInt(entrada.nextLine());
    
    // mostra o resultado
    System.out.print("A base " + base + " elevada ao exponente " +
      expoente + " é " + potencia(base, expoente));
    System.out.println("\n");
  }
  
  // método recursivo que eleva uma base a um determinado expoente
  public static int potencia(int base, int expoente){
    // a recursivida deve parar quando o expoente for igual a 1
    if(expoente == 1){
      return base;
    }
    else{
      // efetua uma nova chamada recursiva fornecendo o expoente - 1
      return base * potencia(base, expoente - 1);
    }
  }
}



C ::: Fundamentos da Linguagem ::: Estruturas de Controle

C para iniciantes - Como usar a instrução switch em C

Quantidade de visualizações: 44859 vezes
A instrução switch é usada quando queremos testar várias possibilidades de fluxo de código mas não queremos usar vários if...else...if. Desta forma, cada possibilidade é testada em um bloco case. Veja um exemplo:

 
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
  int valor = 4;

  switch(valor){
    case 0:
      printf("Valor e igual a 0");
      break;
    case 1:
      printf("Valor e igual a 1");
      break;
    case 2:
      printf("Valor é igual a 2");
      break;
    default:
      printf("Nenhuma das anteriores");
  }

  printf("\n\n");
  system("PAUSE");
  return 0;
}

Veja que, se nenhuma das condições testadas em um bloco case for satisfatória, a parte default da instrução switch será executada.

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á 34 usuários muito felizes estudando em nosso site.