C# ::: Coleções (Collections) ::: List<T> |
Como usar a classe genérica List<T> do C# em suas aplicaçõesQuantidade de visualizações: 15905 vezes |
A classe genérica List<T> da linguagem C# representa uma lista fortemente tipada de objetos que podem ser acessados por índices. Esta classe fornece métodos para pesquisar, ordenar e manipular seus elementos. Veja sua posição na hierarquia de classes da plataforma .NET:
System.Object
System.Collections.Generic.List<T>
System.ServiceModel.Install.Configuration.
ServiceModelConfigurationSectionCollection
System.ServiceModel.Install.Configuration.
ServiceModelConfigurationSectionGroupCollection
System.Workflow.ComponentModel.ActivityCollection
System.Workflow.Activities.WorkflowRoleCollection
System.Workflow.Activities.OperationParameterInfoCollection
System.Workflow.ComponentModel.Design.
ActivityDesignerGlyphCollection
System.Workflow.Runtime.Tracking.ExtractCollection
System.Workflow.Runtime.Tracking.TrackingAnnotationCollection
System.Workflow.Runtime.Tracking.TrackingConditionCollection
System.Workflow.Runtime.Tracking.ActivityTrackingLocationCollection
System.Workflow.Runtime.Tracking.UserTrackingLocationCollection
System.Workflow.Runtime.Tracking.ActivityTrackPointCollection
System.Workflow.Runtime.Tracking.UserTrackPointCollection
System.Workflow.Runtime.Tracking.WorkflowTrackPointCollection
Esta classe implementa também as interfaces IList<T>, ICollection<T>, IEnumerable<T>, IList, ICollection e IEnumerable. A classe List<T> é a equivalente genérica da classe ArrayList. Ela implementa a interface genérica IList<T> usando um array (matriz) cujo tamanho é dinamicamente aumentado de acordo com a necessidade. Esta classe usa tanto um comparador de igualdade quanto um de ordenação. Os métodos tais como Contains(), IndexOf(), LastIndexOf() e Remove() usam um comparador de igualdade para os elementos da lista. O comparador de igualdade padrão para o tipo T é definido segundo as seguintes regras: Se o tipo T implementar a interface genérica IEquatable<T>, então o comparador de igualdade é o método Equals(T) dessa interface. Caso contrário, o comparador de igualdade padrão é Object.Equals(Object). Os métodos tais como BinarySearch() e Sort() usam um comparador de ordenação para os elementos da lista. O comparador padrão para o tipo T é definido da seguinte forma: Se o tipo T implementar a interface genérica IComparable<T>, então o comparador padrão é o método CompareTo(T) dessa interface. Caso contrário, se o tipo T implementar a interface não-genérica IComparable, então o comparador padrão é o método CompareTo(Object) dessa interface. Se o tipo T não implementar nenhuma destas duas interfaces, então não haverá comparador padrão, e um comparador ou delegate de comparação deve ser fornecido explicitamente. Uma lista List<T> não fornece garantias quanto à sua ordenação. Devemos ordená-la por conta própria antes de efetuar algumas operações (tais como BinarySearch) que exigem que a List<T> esteja ordenada. Os elementos em uma coleção do tipo List<T> podem ser acessados usando índices (que começam a partir de 0). Uma List<T> aceita o valor null como valor válido para tipos referência e aceita elementos duplicados. Em relação à performance, a documentação do .NET afirma que, embora List<T> e ArrayList possuam funcionalidade semelhante, a classe List<T> possui uma performance melhor na maioria dos casos, além de ser type safe (oferece segurança de tipos). Veja um trecho de código no qual criamos uma List<T> de inteiros, inserimos alguns valores e usamos o laço foreach para percorrer a lista e exibir os valores dos elementos:
static void Main(string[] args){
// vamos criar um objeto da classe List<T>
List<int> valores = new List<int>();
// vamos inserir três valores na lista
valores.Add(5);
valores.Add(2);
valores.Add(9);
// vamos usar o laço foreach para percorrer os elementos
// na lista
foreach(int v in valores){
Console.WriteLine(v);
}
// vamos pausar a execução
Console.ReadKey();
}
|
Python ::: Python para Engenharia ::: Geometria Analítica e Álgebra Linear |
Como calcular a distância entre dois pontos no plano em Python - Python para Geometria Analítica e Álgebra LinearQuantidade de visualizações: 10947 vezes |
|
Como calcular a Distância Euclidiana entre dois pontos usando Python. Em várias aplicações envolvendo geometria, principalmente no desenvolvimento de jogos em Python, é comum nos depararmos com a necessidade de calcular a distância entre dois pontos A e B. Nessa dica mostrarei como efetuar esse cálculo no R2, ou seja, no plano. Em outra dica eu abordo o cálculo no R3 (espaço). Comece analisando a imagem abaixo: ![]() Veja que temos um ponto A (x = 3; y = 6) e um ponto B (x = 9; y = 4). Para determinarmos a distância entre esses dois pontos no plano cartesiano, temos que realizar a análise tanto no sentido do eixo das abscissas (x) quanto no do eixo das ordenadas (y). Veja a fórmula: \[d_{AB} = \sqrt{\left(x_b - x_a\right)^2 + \left(y_b - y_a\right)^2}\] Agora, jogando os valores dos dois pontos da fórmula nós teremos: \[d_{AB} = \sqrt{\left(9 - 3\right)^2 + \left(6 - 4\right)^2}\] Que resulta em 6,32 (aproximadamente). E agora veja o código Python completo que lê as coordenadas dos dois pontos e mostra a distância entre eles:
import math
# função que permite calcular a distância
# entre dois pontos no plano (R2)
def distancia2d(x1, y1, x2, y2):
a = x2 - x1
b = y2 - y1
c = math.sqrt(math.pow(a, 2) + math.pow(b, 2))
return c
# função principal do programa
def main():
# vamos ler os dados do primeiro ponto
x1 = float(input("Informe o x do primeiro ponto: "))
y1 = float(input("Informe o y do primeiro ponto: "))
# vamos ler os dados do segundo ponto
x2 = float(input("Informe o x do segundo ponto: "))
y2 = float(input("Informe o y do segundo ponto: "))
# vamos obter a distância entre eles
distancia = distancia2d(x1, y1, x2, y2)
print("Distância entre os dois pontos: %0.2f" % distancia);
if __name__== "__main__":
main()
Ao executarmos este código Python nós teremos o seguinte resultado: Informe o x do primeiro ponto: 3 Informe o y do primeiro ponto: 6 Informe o x do segundo ponto: 9 Informe o y do segundo ponto: 4 Distância entre os dois pontos: 6.32 |
C++ ::: Dicas & Truques ::: Arquivos e Diretórios |
Como renomear um diretório em C++ usando a função rename()Quantidade de visualizações: 8622 vezes |
Em algumas situações nossos códigos C++ precisam renomear diretórios. Isso pode ser feito com o auxílio da função rename() ou _rename(), disponível no header io.h or stdio.h (trazido da linguagem C). Veja a assinatura desta função:int rename(const char *oldname, const char *newname); Se o diretório for renomeado com sucesso a função retornará o valor 0. O retorno será -1 se um erro ocorrer. Neste caso a variável global errno será definido como um dos seguintes valores: a) EINVAL - Invalid argument - Os nomes dos diretórios contém caracteres inválidos; b) ENOENT - No such file or directory - O caminho do diretório é inválido; c) EACCESS - Acesso negado - Algum outro programa está usando este diretório e mantém controle sobre o mesmo. Veja um trecho de código no qual renomeamos um diretório:
#include <iostream>
using namespace std;
int main(int argc, char *argv[]){
// vamos renomear este diretório
char dir_antigo[] = "C:\\Dev-Cpp\\estudos";
char dir_novo[] = "C:\\Dev-Cpp\\estudos2";
// vamos testar se o diretório for renomeado com sucesso
if(rename(dir_antigo, dir_novo) != 0){
cout << "Erro: " << strerror(errno) << endl;
}
else{
cout << "Diretório renomeado com sucesso" << endl;
}
system("PAUSE"); // pausa o programa
return EXIT_SUCCESS;
}
É possível usar a versão Unicode de rename() ou _rename(). O método _wrename, também presente em io.h or stdio.h é útil quando precisamos internacionalizar nossas aplicações. Veja o exemplo:
#include <iostream>
using namespace std;
int main(int argc, char *argv[]){
// vamos renomear este diretório
wchar_t dir_antigo[] = L"C:\\Dev-Cpp\\estudos";
wchar_t dir_novo[] = L"C:\\Dev-Cpp\\estudos2";
// vamos testar se o diretório for renomeado com sucesso
if(_wrename(dir_antigo, dir_novo) != 0){
cout << "Erro: " << strerror(errno) << endl;
}
else{
cout << "Diretório renomeado com sucesso" << endl;
}
system("PAUSE"); // pausa o programa
return EXIT_SUCCESS;
}
Ao executar este código C++ nós teremos o seguinte resultado: Diretório renomeado com sucesso |
Python ::: Dicas & Truques ::: Trigonometria - Funções Trigonométricas |
Como calcular o comprimento da hipotenusa em Python dadas as medidas do cateto oposto e do cateto adjascenteQuantidade de visualizações: 1766 vezes |
Nesta dica mostrarei como é possível usar a linguagem Python para retornar o comprimento da hipotenusa dadas as medidas do cateto oposto e do cateto adjascente. Vamos começar analisando a imagem a seguir:![]() Veja que, nessa imagem, eu já coloquei os comprimentos da hipotenusa, do cateto oposto e do cateto adjascente. Para facilitar a conferência dos cálculos, eu coloquei também os ângulos theta (que alguns livros chamam de alfa) e beta já devidamente calculados. Então, sabendo que o quadrado da hipotenusa é igual à soma dos quadrados dos catetos (Teorema de Pitógoras): \[c^2 = a^2 + b^2\] Tudo que temos a fazer a converter esta fórmula para código Python. Veja:
# vamos importar o módulo Math
import math as math
def main():
a = 20 # medida do cateto oposto
b = 30 # medida do cateto adjascente
# agora vamos calcular o comprimento da hipotenusa
c = math.sqrt(math.pow(a, 2) + math.pow(b, 2))
# e mostramos o resultado
print("O comprimento da hipotenusa é: %f" % c)
if __name__== "__main__":
main()
Ao executar este código Python nós teremos o seguinte resultado: O comprimento da hipotenusa é: 36.055513 Como podemos ver, o resultado retornado com o código Python confere com os valores da imagem apresentada. |
Nossas 20 dicas & truques de programação mais populares |
|
Java - Estruturas de dados em Java - Como obter a quantidade de nós em uma árvore binária usando Java AutoCAD Civil 3D .NET C# - Como pedir para o usuário selecionar um alinhamento no Civil 3D usando a função GetEntity() do AutoCAD Civil 3D .NET C# API Python - Como usar a função type() da linguagem Python para descobrir o tipo de dados de uma variável |
Você também poderá gostar das dicas e truques de programação abaixo |
|
C++ Builder - Como obter a quantidade de caracteres em um TEdit usando a função GetTextLen() do C++ Builder JavaScript - Como remover os espaços no final de uma string em JavaScript usando uma função trim_final() personalizada |
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 |







