Você está aqui: Cards de Engenharia Civil - Construção Civil |
||
|
||
|
|
||
C++ ::: STL (Standard Template Library) ::: Vector C++ |
Como excluir todos os elementos de um vector C++ usando a função clear()Quantidade de visualizações: 18052 vezes |
|
Em algumas situações precisamos remover todos os elementos de um vector. Para isso podemos usar a função clear(). Esta função não requer nenhum argumento e possui retorno void. À medida que os elementos vão sendo removidos, seus destrutores são chamados (no caso de os elementos no vector serem referências e não tipos primitivos). Veja o código C++ completo para o exemplo:
#include <iostream>
#include <vector>
using namespace std;
int main(int argc, char *argv[]){
// um vector vazio que conterá inteiros
vector<int> valores;
// vamos inserir três elementos
valores.push_back(54);
valores.push_back(13);
valores.push_back(87);
// vamos obter a quantidade de elementos no vector
cout << "Quantidade de elementos: " << valores.size() << endl;
// vamos remover todos os elementos, ou seja, limpar o vector
valores.clear();
// vamos obter a quantidade de elementos no vector novamente
cout << "Quantidade de elementos: " << valores.size() << endl;
system("PAUSE"); // pausa o programa
return EXIT_SUCCESS;
}
Ao executar este código C++ nós teremos o seguinte resultado: Quantidade de elementos: 3 Quantidade de elementos: 0 |
Java ::: Tratamento de Erros ::: Erros de Tempo de Execução |
Tratamento de erros em Java - Como tratar o erro NoClassDefFoundError em seus programas JavaQuantidade de visualizações: 12711 vezes |
|
A exceção (erro) NoClassDefFoundError acontece quando a Java Virtual Machine (JVM) ou uma instância de ClassLoader tenta carregar a definição de uma classe (como parte de uma chamada de método normal ou como parte da criação de uma nova instância usando a expressão new) e nenhuma definição de tal classe puder ser encontrada. Antes de vermos uns exemplos, veja a posição da classe pública NoClassDefFoundError na hierarquia de classes da plataforma Java:
java.lang.Object
java.lang.Throwable
java.lang.Error
java.lang.LinkageError
java.lang.NoClassDefFoundError
Veja que NoClassDefFoundError herda de Error e portanto, é uma das exceções lançadas como parte do funcionamento da JVM. Isso quer dizer que não podemos usar blocos try...catch para evitá-lo. A exceção é quando estamos tentando carregar uma instância de classe usando o ClassLoader. Para provocar o erro NoClassDefFoundError só precisamos efetuar algumas das ações abaixo: 1) Fornecer um nome de classe que não existe (ou com diferenças entre minúsculas e maiúsculas do nome pretendido). Assim: java MinhaClasse Se a classe não existir no diretório atual ou em um arquivo jar, a mensagem de erro abaixo será exibido: C:\java>java MinhaClasse Exception in thread "main" java.lang.NoClassDefFoundError: MinhaClasse 2) Fornecer um nome de classe seguida por .class: java MinhaClasse.class |
Java ::: Coleções (Collections) ::: ArrayList |
Como remover um elemento de uma determinada posição do ArrayList do Java usando o método remove()Quantidade de visualizações: 17496 vezes |
Nesta dica mostrarei como é possível remover elementos em uma determinada posição de um objeto ArrayList usando o seu método remove(). Esta função possui duas assinaturas, uma que recebe uma referência ao elemento a ser excluído e outra que recebe o índice do elemento que queremos excluir. No exemplo a seguir abordarei a segunda assinatura:Object remove(int index) throws IndexOutOfBoundsException Note que só precisamos fornecer o índice do elemento a ser excluído. O retorno será um objeto Object contendo a referência ao elemento que acabamos de excluir. Se o elemento não for encontrado, um erro IndexOutOfBoundsException será exibido e, a menos que seja tratado, a aplicação Java será fechada. Veja o código completo a seguir:
import java.util.ArrayList;
public class Estudos{
public static void main(String[] args){
// cria uma ArrayList que conterá strings
ArrayList<String> nomes = new ArrayList<String>();
// adiciona itens na lista
nomes.add("Carlos");
nomes.add("Maria");
nomes.add("Fernanda");
nomes.add("Osmar");
nomes.add("Maria");
// Vamos remover o segundo elemento
String elem = nomes.remove(1);
System.out.println("O elemento removido foi: "
+ elem);
System.exit(0);
}
}
Ao executarmos este código Java nós teremos o seguinte resultado: O elemento removido foi: Maria |
Java ::: Java para Engenharia ::: Geometria Analítica e Álgebra Linear |
Como calcular a norma ou módulo de vetores nos espaços R2 e R3 usando Java - Geometria Analítica e Álgebra Linear usando JavaQuantidade de visualizações: 2791 vezes |
|
Em Geometria Analítica e Álgebra Linear, a magnitude, norma, comprimento, tamanho ou módulo (também chamado de intensidade na Física) de um vetor é o seu comprimento, que pode ser calculado por meio da distância de seu ponto final a partir da origem, no nosso caso (0,0). Considere o seguinte vetor no plano, ou seja, no espaço bidimensional, ou R2: \[\vec{v} = \left(7, 6\right)\] Aqui este vetor se inicia na origem (0, 0) e vai até as coordenadas (x = 7) e (y = 6). Veja sua plotagem no plano 2D: ![]() Note que na imagem já temos todas as informações que precisamos, ou seja, o tamanho desse vetor é 9 (arredondado) e ele faz um ângulo de 41º (graus) com o eixo x positivo. Em linguagem mais adequada da trigonometria, podemos dizer que a medida do cateto oposto é 6, a medida do cateto adjacente é 7 e a medida da hipotenusa (que já calculei para você) é 9. Note que já mostrei também o ângulo theta (__$\theta__$) entre a hipotenusa e o cateto adjacente, o que nos dá a inclinação da reta representada pelos pontos (0, 0) e (7, 6). Relembrando nossas aulas de trigonometria nos tempos do colegial, temos que o quadrado da hipotenusa é a soma dos quadrados dos catetos, ou seja, o Teorema de Pitágoras: \[a^2 = b^2 + c^2\] Como sabemos que a potenciação é o inverso da radiciação, podemos escrever essa fórmula da seguinte maneira: \[a = \sqrt{b^2 + c^2}\] Passando para os valores x e y que já temos: \[a = \sqrt{7^2 + 6^2}\] Podemos comprovar que o resultado é 9,21 (que arredondei para 9). Não se esqueça da notação de módulo ao apresentar o resultado final: \[\left|\vec{v}\right| = \sqrt{7^2 + 6^2}\] E aqui está o código Java que nos permite informar os valores x e y do vetor e obter o seu comprimento, tamanho ou módulo:
package arquivodecodigos;
import java.util.Scanner;
public class Estudos{
public static void main(String args[]){
Scanner entrada = new Scanner(System.in);
// vamos ler os valores x e y
System.out.print("Informe o valor de x: ");
double x = Double.parseDouble(entrada.nextLine());
System.out.print("Informe o valor de y: ");
double y = Double.parseDouble(entrada.nextLine());
// vamos calcular a norma do vetor
double norma = Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2));
// mostra o resultado
System.out.println("A norma do vetor é: " + norma);
}
}
Ao executar este código nós teremos o seguinte resultado: Informe o valor de x: 7 Informe o valor de y: 6 A norma do vetor é: 9.219544457292887 Novamente note que arredondei o comprimento do vetor para melhor visualização no gráfico. Para calcular a norma de um vetor no espaço, ou seja, no R3, basta acrescentar o componente z no cálculo. |
C ::: C para Engenharia ::: Geometria Analítica e Álgebra Linear |
Como calcular a transposta de uma matriz em C - Curso de C para Geometria Analítica e Álgebra LinearQuantidade de visualizações: 1306 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 C, 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 C que declara uma matriz 2x3 e gera a matriz transposta 3x2:
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
int main(int argc, char *argv[]){
setlocale(LC_ALL,""); // para acentos do português
// vamos declarar e construir uma matrix
// 2x3 (duas linhas e três colunas
int matriz[2][3] = {{3, 5, 7}, {1, 2, 9}};
int i, j;
// vamos exibir os valores da matriz
printf("Elementos da matriz:\n");
for(i = 0; i < 2; i++){
for(j = 0; j < 3; j++){
printf("%5d ", matriz[i][j]);
}
printf("\n");
}
// como temos uma matriz 2x3, a transposta deverá ser
// 3x2, ou seja, três linhas e duas colunas
int linhas = 3; // linhas da matriz original
int colunas = 2; // colunas da matriz original
int transposta[linhas][colunas];
// e agora vamos preencher a matriz transposta
for(i = 0; i < 2; i++){
for(j = 0; j < 3; j++){
transposta[j][i] = matriz[i][j];
}
}
// vamos exibir os valores da matriz transposta
printf("Elementos da matriz transposta:\n");
for(i = 0; i < 3; i++){
for(j = 0; j < 2; j++){
printf("%5d ", transposta[i][j]);
}
printf("\n");
}
printf("\n\n");
system("PAUSE");
return 0;
}
Ao executar este código C 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
|
Desafios, Exercícios e Algoritmos Resolvidos de C |
Veja mais Dicas e truques de C |
Dicas e truques de outras linguagens |
|
Delphi - Como calcular o cateto oposto dadas as medidas da hipotenusa e do cateto adjascente em Delphi |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |






