![]() |
|
||||
|
|||||
C ::: C para Engenharia ::: Geometria Analítica e Álgebra Linear |
Como somar os elementos da diagonal principal de uma matriz em CQuantidade de visualizações: 4884 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 |
C# ::: Dicas & Truques ::: Tipos de Dados |
Curso de C# - Como usar os tipos de dados short e ushort da linguagem C#Quantidade de visualizações: 9572 vezes |
|
O tipo de dados short é um tipo primitivo integral com sinal (signed) que pode armazenar valores inteiros na faixa de -32.768 até 32.767. Este tipo ocupa 16 bits (2 bytes) de memória e é um apelido para o tipo System.Int16 da plataforma .NET. Podemos obter os valores mínimo e máximo que podem ser armazenados em um short por meio de suas propriedades MinValue e MaxValue. Veja:
static void Main(string[] args){
// vamos obter o valor mínimo de um short
short minimo = short.MinValue;
// vamos obter o valor máximo de um short
short maximo = short.MaxValue;
// vamos mostrar o resultado
Console.WriteLine("A faixa de valores de um short é: " + minimo +
" até " + maximo);
// vamos pausar a execução
Console.ReadKey();
}
Ao executarmos este código teremos o seguinte resultado: A faixa de valores de um short é: -32768 até 32767. Ao atribuir valores para um short em tempo de design, ou seja, como um literal, devemos ter o cuidado de não atribuir valores que estejam fora da faixa permitida. Veja:
static void Main(string[] args){
// a linha abaixo não vai compilar
short valor = 35767;
// vamos pausar a execução
Console.ReadKey();
}
Este código não compila. A mensagem de erro: Constant value '35767' cannot be converted to a 'short' nos informa que o valor 35767 (que está acima da faixa permitida) não pode ser convertido para um short. Assim, se você desejar mesmo efetuar tal procedimento, uma conversão forçada (cast) deve ser feita:
static void Main(string[] args){
int valor = 35767;
// vamos forçar a conversão para short
short valor2 = (short)valor;
// vamos mostrar o resultado
Console.WriteLine("Valor após o cast: " + valor2);
// vamos pausar a execução
Console.ReadKey();
}
Aqui nós "esprememos" o valor 35767 para um short e o resultado, -29769, definitivamente não é o que estávamos esperando. O tipo ushort é um tipo primitivo integral sem sinal (unsigned) que pode armazenar valores inteiros na faixa de 0 até 65.535. Este tipo ocupa 16 bits (2 bytes) de memória e é um apelido para o tipo System.UInt16 da plataforma .NET. Podemos obter os valores mínimo e máximo que podem ser armazenados em um ushort por meio de suas propriedades MinValue e MaxValue. Veja:
static void Main(string[] args){
// vamos obter o valor mínimo de um ushort
ushort minimo = ushort.MinValue;
// vamos obter o valor máximo de um ushort
ushort maximo = ushort.MaxValue;
// vamos mostrar o resultado
Console.WriteLine("A faixa de valores de um ushort é: " + minimo +
" até " + maximo);
// vamos pausar a execução
Console.ReadKey();
}
Ao executarmos este código teremos o seguinte resultado: A faixa de valores de um ushort é: 0 até 65535. |
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 queQuantidade de visualizações: 583 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 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
|
Java ::: Classes e Componentes ::: JTable |
Java Swing - Como colorir o fundo das células de uma JTable baseado em seus valoresQuantidade de visualizações: 1 vezes |
Nesta dica veremos como é possível criar uma classe personalizada que extende a classe JLabel e implementa a interface TableCellRenderer e usá-la como renderizador das células de uma JTable. Dessa forma conseguiremos aplicar uma cor diferente a cada célula dependendo do seu valor. Veja o resultado na figura abaixo:![]() Veja agora o código Java Swing completo para o exemplo:
package arquivodecodigos;
import javax.swing.*;
import java.awt.*;
import javax.swing.table.*;
public class Estudos extends JFrame{
public Estudos(){
super("Exemplo de uma tabela simples");
// colunas da tabela
String[] colunas = {"Nome", "Idade", "Sexo"};
// conteúdo da tabela
Object[][] conteudo = {
{"Osmar J. Silva", "32", "Masculino"},
{"Maria Clara Gomes", "19", "Feminino"},
{"Fernando Gomes", "15", "Masculino"},
{"Carlos Vieira", "40", "Masculino"}
};
// constrói a tabela
JTable tabela = new JTable(conteudo, colunas);
// quero colorir o fundo das células da segunda coluna
// se o valor encontrado for menor que 20
TableCellRenderer tcr = new Colorir();
TableColumn column =
tabela.getColumnModel().getColumn(1);
column.setCellRenderer(tcr);
tabela.setPreferredScrollableViewportSize(new
Dimension(350, 50));
Container c = getContentPane();
c.setLayout(new FlowLayout());
JScrollPane scrollPane = new JScrollPane(tabela);
c.add(scrollPane);
setSize(400, 300);
setVisible(true);
}
public static void main(String args[]){
Estudos app = new Estudos();
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
class Colorir extends JLabel implements TableCellRenderer{
public Colorir(){
setOpaque(true);
}
@Override
public Component getTableCellRendererComponent(
JTable table,
Object value, boolean isSelected, boolean hasFocus,
int row, int column){
if(Integer.parseInt(value.toString()) < 20){
setBackground(Color.YELLOW);
}
else{
setBackground(table.getBackground());
}
setText(value.toString());
return this;
}
@Override
public void validate() {}
@Override
public void revalidate() {}
@Override
protected void firePropertyChange(String propertyName,
Object oldValue, Object newValue) {}
@Override
public void firePropertyChange(String propertyName,
boolean oldValue, boolean newValue) {}
}
|
Nossas 20 dicas & truques de programação mais populares |
|
Java - Java Swing Avançado - Como exibir imagens nas células de uma JTable em suas aplicações Java Swing JavaScript - JavaScript para iniciantes - Como usar o método escape() para codificar uma frase em JavaScript |
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 |
|
Python - Como criar o jogo Pedra, Papel, Tesoura em Python - Jogo completo em Python com código comentado |
Últimos Exercícios Resolvidos |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |







