Você está aqui: Cards de |
||
|
||
|
|
||
C# ::: Coleções (Collections) ::: List<T> |
Como remover um elemento em uma determinada posição de uma List<T> do C# usando a função RemoveAt()Quantidade de visualizações: 9941 vezes |
Em algumas situações gostaríamos de remover um elemento em uma determinada posição da List<T>. Para isso podemos usar o método RemoveAt(). Veja sua assinatura:public void RemoveAt( int index ) Note que só precisamos fornecer o índice do elemento a ser removido. Veja um exemplo:
static void Main(string[] args){
// vamos criar um objeto da classe List<T>
List<int> valores = new List<int>();
// vamos inserir quatro valores na lista
valores.Add(5);
valores.Add(2);
valores.Add(6);
valores.Add(9);
// vamos usar o laço foreach para percorrer os elementos na lista
Console.WriteLine("Elementos na lista:");
foreach(int v in valores){
Console.WriteLine(v);
}
// vamos remover o terceiro elemento (com índice 2)
valores.RemoveAt(2);
// vamos usar o laço foreach para percorrer os elementos na lista novamente
Console.WriteLine("Elementos na lista:");
foreach(int v in valores){
Console.WriteLine(v);
}
// vamos pausar a execução
Console.ReadKey();
}
Ao executarmos este código teremos o seguinte resultado: Elementos na lista: 5 2 6 9 Elementos na lista: 5 2 9 Este método pode lançar uma exceção do tipo ArgumentOutOfRangeException se o índice fornecido for menor que 0 ou igual ou superior à quantidade de itens na lista. |
TypeScript ::: Dicas & Truques ::: Geometria, Trigonometria e Figuras Geométricas |
Como calcular o coeficiente angular de uma reta em TypeScript dados dois pontos no plano cartesianoQuantidade de visualizações: 1661 vezes |
|
O Coeficiente Angular de uma reta é a variação, na vertical, ou seja, no eixo y, pela variação horizontal, no eixo x. Sim, isso mesmo. O coeficiente angular de uma reta tem tudo a ver com a derivada, que nada mais é que a taxa de variação de y em relação a x. Vamos começar analisando o seguinte gráfico, no qual temos dois pontos distintos no plano cartesiano: ![]() Veja que o segmento de reta AB passa pelos pontos A (x=3, y=6) e B (x=9, y=10). Dessa forma, a fórmula para obtenção do coeficiente angular m dessa reta é: \[\ \text{m} = \frac{y_2 - y_1}{x_2 - x_1} = \frac{\Delta y}{\Delta x} = tg \theta \] Note que __$\Delta y__$ e __$\Delta x__$ são as variações dos valores no eixo das abscissas e no eixo das ordenadas. No triângulo retângulo que desenhei acima, a variação __$\Delta y__$ se refere ao comprimento do cateto oposto e a variação __$\Delta y__$ se refere ao comprimento do cateto adjascente. Veja agora o trecho de código na linguagem TypeScript que solicita as coordenadas x e y dos dois pontos, efetua o cálculo e mostra o coeficiente angular m da reta que passa pelos dois pontos:
// x e y do primeiro ponto
var x1:number = 3;
var y1:number = 6;
// x e y do segundo ponto
var x2:number = 9;
var y2:number = 10;
var m:number = (y2 - y1) / (x2 - x1);
// mostramos o resultado
console.log("O coeficiente angular é: " + m);
Ao executar este código TypeScript nós teremos o seguinte resultado: O coeficiente angular é: 0.6666666666666666 Veja agora como podemos calcular o coeficiente angular da reta que passa pelos dois pontos usando o Teorema de Pitágoras. Note que agora nós estamos tirando proveito da tangente do ângulo Theta (__$\theta__$), também chamado de ângulo Alfa ou Alpha (__$\alpha__$):
// x e y do primeiro ponto
var x1:number = 3;
var y1:number = 6;
// x e y do segundo ponto
var x2:number = 9;
var y2:number = 10;
// vamos obter o comprimento do cateto oposto
var cateto_oposto:number = y2 - y1;
// e agora o cateto adjascente
var cateto_adjascente:number = x2 - x1;
// vamos obter o ângulo tetha, ou seja, a inclinação da hipotenusa
// (em radianos, não se esqueça)
var tetha:number = Math.atan2(cateto_oposto, cateto_adjascente);
// e finalmente usamos a tangente desse ângulo para calcular
// o coeficiente angular
var tangente:number = Math.tan(tetha);
// mostramos o resultado
console.log("O coeficiente angular é: " + tangente);
Ao executar este código você verá que o resultado é o mesmo. No entanto, fique atento às propriedades do coeficiente angular da reta: 1) O coeficiente angular é positivo quando a reta for crescente, ou seja, m > 0; 2) O coeficiente angular é negativo quando a reta for decrescente, ou seja, m < 0; 3) Se a reta estiver na horizontal, ou seja, paralela ao eixo x, seu coeficiente angular é zero (0). 4) Se a reta estiver na vertical, ou seja, paralela ao eixo y, o coeficiente angular não existe. |
Delphi ::: Dicas & Truques ::: Recursão (Recursividade) |
Como usar recursividade em Delphi - Como usar recursão ou funções recursivas em DelphiQuantidade de visualizações: 15806 vezes |
Recursão ou recursividade é a habilidade que uma procedure ou function (função) possui de chamar a si própria uma vez, várias, indefinidamente ou até que a solução do problema a ser resolvido seja encontrada. Assim, podemos definir uma função recursiva (aqui uma procedure recursiva) em Delphi da seguinte forma (atenção: não execute este código):// uma procedure recursiva procedure Recursiva; begin // chama a si própria Recursiva; end; // vamos chamar a procedure pela primeira vez // a partir do Click de um botão procedure TForm1.Button1Click(Sender: TObject); begin Recursiva; end; O fato de eu pedir para que você não execute o código é que, uma vez clicado o botão, a procedure Recursiva será chamada e continuará chamando a si mesma até que a pilha do sistema estoure, ou seja, como funções recursivas são implementadas usando a pilha do sistema operacional e não na área de memória destinada a cada aplicativo o resultado será um travamento do programa, e, caso não estejamos com sorte, um travamento do sistema operacional. Sabedor do risco, clique no botão para ver o resultado você mesmo. O que devemos saber a respeito das funções recursivas é que estas precisam saber o ponto de parada, de forma a evitar chamadas infinitas. Como exemplo, veja uma procedure recursiva que conta de 0 até 10. Note como cada chamada verifica se já é hora de interromper a cadeia:
// uma procedure recursiva que conta de 0 até 10
procedure Contar(valor: Integer);
begin
// vamos exibir o valor atual
ShowMessage(IntToStr(valor));
// é hora de parar?
if valor = 10 then
ShowMessage('Terminei')
else
begin
// chama a si própria (note que aumentamos o valor atual em 1)
Inc(valor);
Contar(valor);
end;
end;
// vamos chamar a procedure pela primeira vez
// a partir do Click de um botão
procedure TForm1.Button1Click(Sender: TObject);
begin
// chama a função recursiva fornecendo o valor inicial
Contar(0);
end;
Execute este código e veja o resultado. Observe que a cada chamada recursiva nós incrementamos a variável de controle. Ela é a responsável por evitar que chamadas infinitas sejam feitas. Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009. |
PHP ::: Dicas & Truques ::: Data e Hora |
Como gerar um calendário mensal completo para um determinado mês e ano usando PHPQuantidade de visualizações: 1 vezes |
|
Nesta dica eu mostro como podemos usar as principais funções de data e hora da linguagem PHP para montar um calendário PHP completo (com comentários e fácil de modificar). Basta passar um mês e ano e a função se encarrega do restante. Este código é muito útil em aplicações PHP para escolas, faculdades, sistemas financeiros, etc. Veja o resultado na imagem abaixo: ![]() E agora o código completo:
<html>
<head>
<title>Estudando PHP</title>
</head>
<body>
<?php
// função que permite montar o calendário
function montar_calendario($mes, $ano){
// um vetor para guardar os meses
$meses = array(1 => 'Janeiro', 2 => 'Fevereiro',
3 => 'Março', 4 => 'Abril', 5 => 'Maio',
6 => 'Junho', 7 => 'Julho', 8 => 'Agosto',
9 => 'Setembro', 10 => 'Outubro', 11 => 'Novembro',
12 => 'Dezembro');
// um vetor com os dias da semana
$dias_semana = array('Dom', 'Seg', 'Ter', 'Qua',
'Qui', 'Sex', 'Sáb');
// vamos obter o primeiro dia do calendário
$primeiro_dia = mktime(0, 0, 0, $mes, 1, $ano);
// obtém a quantidade de dias no mês
$dias_mes = date('t', $primeiro_dia);
// dia da semana que o calendário inicia (começa em 0)
$dia_inicio = date('w', $primeiro_dia);
// cria a tabela HTML para o calendário
echo '<table border="1" cellspacing="0" cellpadding="4">
<tr><th colspan="7">'. $meses[$mes] . ' - ' .
$ano . '</th>
</tr>
<tr><td align="center">';
echo implode('</td><td align="center">', $dias_semana);
echo '</td></tr>';
// precisamos de células vazias até encontrarmos
// o dia inicial da semana
if($dia_inicio > 0){
for($i = 0; $i < $dia_inicio; $i++){
echo '<td> </td>';
}
}
// agora já podemos começar a preencher o
// calendário
for($dia = 1; $dia <= $dias_mes; $dia++ ){
if($dia_inicio == 0){
// vamos colorir o domingo de vermelho
$estilo = ' style="color: red"';
}
else{
$estilo = '';
}
// vamos colocar a data de hoje sublinhada
if(($dia == date("j")) && ($mes == date("n")) &&
($ano == date("Y"))){
echo '<td ' . $estilo . ' align="center"><u>'
. $dia . '</u></td>';
}
else{
echo '<td ' . $estilo . ' align="center">' .
$dia . '</td>';
}
// vamos incrementar o dia de referência
$dia_inicio++;
// já precisamos adicionar uma nova linha na tabela?
if($dia_inicio == 7){
$dia_inicio = 0;
echo "</tr>";
if($dia < $dias_mes){
echo '<tr>';
}
}
} // fim do laço for
// agora preenchemos as células restantes
if($dia_inicio > 0){
for($i = $dia_inicio; $i < 7; $i++){
echo '<td> </td>';
}
echo '</tr>';
}
echo '</table>';
}
// vamos montar o mês de março de 2021
montar_calendario(3, 2021);
?>
</body>
</html>
|
C++ ::: Dicas & Truques ::: Strings e Caracteres |
Como remover parte de uma string em C++ usando a função erase()Quantidade de visualizações: 17589 vezes |
|
Em algumas situações nós precisamos remover parte de uma palavra, frase ou texto em C++. Para isso nós podemos usar a função erase(). Esta função é usada para remover parte de uma string, consequentemente diminuindo seu tamanho. Veja a sua assinatura: string& erase(size_t pos = 0, size_t n = npos); Veja o código C++ completo para o exemplo:
#include <string>
#include <iostream>
using namespace std;
int main(int argc, char *argv[]){
// vamos criar uma string
string frase("Gosto de MySQL");
// Antes da remoção
cout << "Antes da remocao: " << frase << endl;
// vamos remover "My"
string nova_frase = frase.erase(9, 2);
// e mostramos o resultado
cout << "Depois da remocao: " << nova_frase << endl;
system("PAUSE"); // pausa o programa
return EXIT_SUCCESS;
}
Ao executar este código C++ nós teremos o seguinte resultado: Antes da remoção: Gosto de MySQL Depois da remoção: Gosto de SQL |
Desafios, Exercícios e Algoritmos Resolvidos de C++ |
Veja mais Dicas e truques de C++ |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |







