Você está aqui: Cards de Engenharia Civil - Fundações |
||
|
||
|
|
||
Java ::: Dicas & Truques ::: Strings e Caracteres |
Como contar as ocorrências de uma substring em uma string do Java usando o método substring() e um laço forQuantidade de visualizações: 2 vezes |
|
Nesta dica mostrarei como podemos usar o método substring() da classe String, combinado com o laço for, para contar as ocorrências de uma substring em uma string da linguagem Java. Note que usamos também os métodos length() e equals() para completar a tarefa. Veja o código Java completo para o exemplo:
package estudos;
public class Estudos{
public static void main(String[] args){
// vamos criar uma string representando uma frase
String frase = "Programar em Java só é melhor que programar em Java";
// a substring que vamos pesquisar
String sub = "Java"; // ocorrências de "Java"
// quantidade de ocorrências
int cont = 0;
// um laço for que vai de 0 até o tamanho da primeira string menos
// o tamanho da segunda string - 1
for(int i = 0; i < (frase.length() - sub.length() + 1); i++){
String res = frase.substring(i, (i + sub.length()));
// encontramos a substring mais uma vez?
if(res.equals(sub)){
cont++;
}
}
System.out.println("A frase contém " + cont + " ocorrências de " + sub);
// fecha o programa
System.exit(0);
}
}
Ao executar este código Java nós teremos o seguinte resultado: A frase contém 2 ocorrências de Java |
Java ::: Classes e Componentes ::: JTable |
Java Swing - Como alterar a cor de fundo dos títulos de uma JTable usando o método setBackground() da classe JTableHeaderQuantidade de visualizações: 1 vezes |
|
Nesta dica mostrarei como podemos chamar o método getTableHeader() da classe JTable para obter um objeto JTableHeader e usar seu método setBackground() para definir a cor de fundo dos títulos da tabela JTable. Veja o trecho de código a seguir: JTableHeader titulos = tabela.getTableHeader(); titulos.setBackground(Color.ORANGE); Note que "tabela" é uma referência a um objeto da classe JTable. |
C ::: C para Engenharia ::: Física - Mecânica |
Como calcular o tempo de queda livre de um corpo dada a altura da queda e a aceleração da gravidade usando a linguagem CQuantidade de visualizações: 3228 vezes |
|
Galileu Galilei fez experimentos para comprovar que o tempo de queda dos objetos não depende de sua massa. Esse importante estudioso abandonava objetos de massas diferentes do alto da torre de Pisa e verificava que o tempo para atingirem o solo sempre era o mesmo para todos os casos. No Movimento Uniformemente Variado (MUV), o tempo de queda livre de um corpo, quando temos a altura na qual o objeto é abandonado, pode ser calculado por meio da fórmula: \[ \text{t} = \sqrt{\frac{\text{2} \cdot \text{H}}{\text{g}}} \] Onde: t ? tempo da queda (em segundos). H ? altura em metros na qual o corpo é abandonado. g ? aceleração da gravidade (m/s2). Vamos ver um exemplo? Veja o seguinte enunciado: 1) Um tijolo é largado de uma construção há 10 metros de altura. Calcule o tempo de sua queda, ou seja, o tempo imediatamente antes de o corpo (o tijolo) tocar o chão. Veja que temos a altura de 10 metros e já sabemos que a aceleração da gravidade terrestre é 9.80665. Assim, tudo que temos que fazer é jogar esses valores na fórmula. Veja o código C completo para este cálculo:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(int argc, char *argv[]){
// gravidade terrestre em m/s2
float gravidade = 9.80665;
// altura da queda
float altura = 10; // em metros
// vamos calcular o tempo da queda (em segundos)
float tempo_queda = sqrt((2 * altura) / gravidade);
// mostramos o resultado
printf("O tempo da queda livre é: %f segundos",
tempo_queda);
printf("\n\n");
system("PAUSE");
return 0;
}
Ao executar este código C nós teremos o seguinte resultado: O tempo da queda livre é: 1.428087 segundos. |
JavaScript ::: Dicas & Truques ::: Recursão (Recursividade) |
JavaScript Avançado - Como remover todas as ocorrências de uma substring em uma string usando uma função recursivaQuantidade de visualizações: 3 vezes |
|
Esta dica contém um ótimo exercício de recursão. Trata-se de uma função JavaScript recursiva para remover todas as ocorrências de uma substring em uma string. Analise o código cuidadosamente e você conseguirá desenvolver várias funções de recursividade a partir dele. Veja o código JavaScript completo:
<html>
<head>
<title>Estudando JavaScript</title>
</head>
<body>
<script type="text/javascript">
// função recursiva que remove todas as ocorrências
// de uma substring em uma string
function remover(string, substring){
// primeiro obtemos o índice da substring
// dentro da string
var indice = string.indexOf(substring);
var resultado = "";
// interromper a recursividade?
if(indice == -1){
return string;
}
else{
resultado += string.substring(0, indice) +
remover(string.substring(indice + substring.length),
substring);
}
return resultado;
}
// hora de testar a função recursiva
var frase = "Ontem comprei duas camisas e uma calça";
document.writeln("Original: " + frase);
frase = remover(frase, "duas");
document.writeln("<br>Nova frase: " + frase);
</script>
</body>
</html>
Ao executar este código nós teremos o seguinte resultado: Original: Ontem comprei duas camisas e uma calça Nova frase: Ontem comprei camisas e uma calça |
Delphi ::: Dicas & Truques ::: Rotinas de Conversão |
Como converter strings em valores TDateTime usando as funções StrToDate() e StrToDateDef() do DelphiQuantidade de visualizações: 18820 vezes |
A função StrToDate() da unit SysUtils é usada quando queremos converter strings em valores TDateTime. No Delphi 2009 esta função possui duas assinaturas:function StrToDate(const S: string): TDateTime; overload; function StrToDate(const S: string; const FormatSettings: TFormatSettings): TDateTime; overload; A primeira versão de StrToDate() recebe uma string contendo uma data e retorna um objeto TDateTime. Veja o seguinte trecho de código:
procedure TForm1.Button1Click(Sender: TObject);
var
data: string;
data2: TDateTime;
begin
// vamos converter a data 22/02/2005
data := '22/02/2005';
// a conversão acontece aqui. Note que, caso a conversão
// não seja possível, uma exceção do tipo EConvertError será
// disparada (lançada)
try
data2 := StrToDate(data);
ShowMessage(DateTimeToStr(data2));
except
on e: EConvertError do
ShowMessage('Não foi possível efetuar a conversão: ' +
e.Message);
end;
end;
Note que a função StrToDate() lançará uma exceção do tipo EConvertError se a string não possuir uma data válida. Os valores de strings representando datas válidas incluem mês/dia/ano, dia/mês/ano e ano/mês/dia. A ordem de dia, mês e ano é determinada pela variáve global ShortDateFormat. Se fornecermos valores apenas para o dia e o mês a função incluirá o ano atual. Não podemos esquecer a barra de separação de datas. Se seu aplicativo foi desenvolvido para rodar em outras localidades, obtenha o separador de datas por meio da variável global DateSeparator. A primeira versão da função StrToDate() não é segura em relação a threads (thread-safe) devido ao uso de informações de localização contidas em variáveis globais, ou seja, se uma thread modificar os valores de tais variáveis, código sendo executado em outras threads sofrerão as consequencias. Para evitar isso podemos usar a segunda versão de StrToDate(), que usa um objeto FormatSettings para guardar as informações de localização. Veja um exemplo:
procedure TForm1.Button1Click(Sender: TObject);
var
data: string;
data2: TDateTime;
formato: TFormatSettings;
begin
// vamos converter a data 22/02/2005
data := '22/02/2005';
// a conversão acontece aqui. Note que, caso a conversão
// não seja possível, uma exceção do tipo EConvertError será
// disparada (lançada)
try
GetLocaleFormatSettings(LOCALE_SYSTEM_DEFAULT, formato);
data2 := StrToDate(data, formato);
ShowMessage(DateTimeToStr(data2));
except
on e: EConvertError do
ShowMessage('Não foi possível efetuar a conversão: ' +
e.Message);
end;
end;
A função StrToDateDef() é similar à função StrToDate(). A diferença é que, se a string possuir uma data inválida, a função StrToDateDef() retorna uma data padrão, ou seja, não haverá nenhuma exceção atirada. Veja: procedure TForm1.Button1Click(Sender: TObject); var data: string; data2: TDateTime; begin // vamos converter a data 2s2/02/2005 (inválida) data := '2s2/02/2005'; // a conversão acontece aqui. Note que, caso a conversão // não seja possível, a data atual será retornada data2 := StrToDateDef(data, Now); ShowMessage(DateTimeToStr(data2)); end; Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009. |
Desafios, Exercícios e Algoritmos Resolvidos de Delphi |
Veja mais Dicas e truques de Delphi |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |





