Você está aqui: Cards de Engenharia Civil - Construção Civil |
||
|
||
|
|
||
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Java Básico |
Exercícios Resolvidos de Java - Um programa que lê três números e os classifica e exibe em ordem crescenteQuantidade de visualizações: 7267 vezes |
|
Pergunta/Tarefa: Escreva um programa Java que pede ao usuário três números inteiros. Em seguida, ordene os três valores em ordem crescente e os exiba. Sua saída deverá ser parecida com: Informe o primeiro valor: 7 Informe o segundo valor: 4 Informe o terceiro valor: 6 Os números ordenados em ordem crescente são: 4 6 7 Veja a resolução comentada deste exercício usando Java console:
package estudos;
import java.util.Scanner;
public class Estudos {
public static void main(String[] args) {
Scanner entrada = new Scanner(System.in);
// vamos pedir que o usuário informe três números inteiros
System.out.print("Informe o primeiro valor: ");
int num1 = Integer.parseInt(entrada.nextLine());
System.out.print("Informe o segundo valor: ");
int num2 = Integer.parseInt(entrada.nextLine());
System.out.print("Informe o terceiro valor: ");
int num3 = Integer.parseInt(entrada.nextLine());
// o primeiro número é maior que o segundo? vamos trocá-los
if(num1 > num2){
int temp = num1;
num1 = num2;
num2 = temp;
}
// o segundo número é maior que o terceiro? vamos trocá-los
if(num2 > num3){
int temp = num2;
num2 = num3;
num3 = temp;
}
// depois da segunda troca o número 1 é novamente maior que o número 2?
if(num1 > num2){
int temp = num1;
num1 = num2;
num2 = temp;
}
// mostra o resultado
System.out.println("Os números ordenados em ordem crescente são: ");
System.out.println(num1 + " " + num2 + " " + num3);
System.out.println("\n");
}
}
|
JavaScript ::: Dicas & Truques ::: Data e Hora |
Como construir uma determinada data e hora usando o construtor do objeto Date do JavaScriptQuantidade de visualizações: 7343 vezes |
Em algumas situações precisamos construir um objeto Date representando uma determinada data e hora. Para isso podemos usar o construtor deste objeto. Veja a sintáxe:new Date(year, month[, date[, h[, m[, s[, ms]]]]]); Veja que temos que fornecer os argumemtos na ordem ano, mês, dia, horas, minutos, segundos e milisegundos. Apenas os argumentos para os parâmetros ano e mês são obrigatórios. Veja, por exemplo, como podemos construir a data 01/08/2010:
<html>
<head>
<title>Estudos JavaScript</title>
</head>
<body>
<script type="text/javascript">
// vamos construir a data 01/08/2010
var data = new Date(2010, 7);
// vamos exibir o resultado
document.write("A data é: " + data);
</script>
</body>
</html>
Este trecho de código exibirá o seguinte resultado: A data é: Sun Aug 1 00:00:00 UTC-0300 2010. É importante ficar atento à faixa de valores permitida para cada um dos parâmetros: year - Exigido. Aqui devemos fornecer o ano completo, por exemplo, 1997 (e não 97). month - Exigido. Devemos fornecer o mês como um inteiro na faixa de 0 a 11 (janeiro é 0 enquanto dezembro é 11). date - Opcional. Aqui devemos fornecer o dia como um inteiro na faixa de 1 a 31. hours - Opcional. Devemos fornecer as horas como um inteiro na faixa de 0 a 23. minutes - Opcional. Devemos fornecer os minutos como um inteiro na faixa de 0 a 59. seconds - Opcional. Devemos fornecer os segundos como um inteiro na faixa de 0 a 59. ms - Opcional. Um inteiro na faixa de 0 a 999. Veja agora um trecho de código no qual construímos a data 14/05/2010 às 17:50:
<script type="text/javascript">
// vamos construir a data 14/05/2010 às 17:50
var data = new Date(2010, 4, 14, 17, 50);
// vamos exibir o resultado
document.write("A data é: " + data);
</script>
Este código exibirá o seguinte resultado: A data é: Fri May 14 17:50:00 UTC-0300 2010. Esta dica foi escrita e testada no Internet Explorer 8 e Firefox 3.6. |
Java ::: Dicas & Truques ::: Ordenação e Pesquisa (Busca) |
Como usar a pesquisa ou busca linear ou sequencial nos elementos de um vetor em JavaQuantidade de visualizações: 5076 vezes |
|
A busca linear ou sequencial, muitas vezes chamada de pesquisa linear ou sequencial, é geralmente implementada por meio de um algorítmo que varre os elementos de um coleção sequencial, começando do primeiro elemento e indo até o último. Esta busca não é tão usada quando a pesquisa binária ou hashing, por ser considerada muito lenta quando aplicado a um conjunto de dados muito grande. A busca linear ou sequencial em um vetor Java pode ser descrito pelos seguintes passos: 1) Efetua a varredura dos elementos do vetor. 2) Compara o valor do elemento atual do vetor com o valor sendo pesquisado. 3) Se o valor for encontrado, efetue o procedimento desejado com o elemento do vetor. 4) Se a varredura alcançar o último elemento do vetor e o valor pesquisado não for encontrado, exiba uma mensagem de erro ou algum outro procedimento para alertar o usuário do programa. Veja um exemplo no qual declaramos e preenchemos um vetor de int com 5 elementos e em seguida usamos um método pesquisaLinear para verificar se um determinado valor existe no vetor:
package arquivodecodigos;
public class Estudos{
public static void main(String a[]){
// vamos criar um vetor de 5 elementos int
int[] valores = {32, 7, 21, 4, 90};
// vamos pesquisar o valor 21
int valor = 21;
// vamos verifiar se o valor está no vetor
int indice = pesquisaLinear(valores, valor);
if(indice > -1){
System.out.println("O valor foi encontrado no índice: "
+ indice);
}
else{
System.out.println("O valor não foi encontrado.");
}
}
// método que permite efetuar a busca linear em um vetor
public static int pesquisaLinear(int[] vetor, int valor){
// percorre os elementos do vetor
for(int i = 0; i < vetor.length; i++){
// o valor foi encontrado?
if(vetor[i] == valor){
return i;
}
}
// não foi encontrado? vamos retornar -1
return -1;
}
}
Ao executarmos este código nós teremos o seguinte resultado: O valor foi encontrado no índice: 2 Veja o mesmo código sem usar um método adicional, ou seja, a busca linear é feito dentro do método main() da classe Java:
package arquivodecodigos;
public class Estudos{
public static void main(String a[]){
// vamos criar um vetor de 5 elementos int
int[] valores = {32, 7, 21, 4, 90};
// vamos pesquisar o valor 21
int valor = 21;
// vamos verifiar se o valor está no vetor
int indice = -1; // não foi encontrado
// percorre os elementos do vetor
for(int i = 0; i < valores.length; i++){
// o valor foi encontrado?
if(valores[i] == valor){
indice = i;
break;
}
}
if(indice > -1){
System.out.println("O valor foi encontrado no índice: "
+ indice);
}
else{
System.out.println("O valor não foi encontrado.");
}
}
}
|
Firebird ::: Dicas & Truques ::: Tipos de Dados |
Como usar os tipos CHAR e VARCHAR do FirebirdQuantidade de visualizações: 16467 vezes |
|
O Firebird fornece dois tipos de dados básicos para armazenar informação em texto ou caracteres: CHAR e VARCHAR (O tipo BLOB também permite armazenar caracteres por meio de seu sub-tipo text). CHAR e VARCHAR são tipos de dados que podem armazenar quaisquer informações do tipo texto. Números que não serão envolvidos em cálculos, tais como CEPs, números de ruas, etc, são geralmente armazenados em campos do tipo CHAR ou VARCHAR. O comprimento de um campo do tipo CHAR ou VARCHAR é informado entre parênteses, e pode ser um valor inteiro que vai de 1 até 32.767. Esta largura de caracteres é extremamente útil quando precisamos armazenar dados de tamanho fixo ou pré-definido, tais como códigos de CEPs para um determinado país. Comparado com a maioria dos outros bancos de dados, o Firebird armazena somente as informações significantes. Se um campo é definido como CHAR(100), mas contém apenas 10 caracteres, os bytes definidos adicionalmente não são usados. Isso acontece porque o Firebird armazena os tipos CHAR e VARCHAR de forma igual, e não preenche o espaço não usado com caracteres vazios. Tanto CHAR quanto VARCHAR são guardados na memória em sua forma declarada, mas, o registro é comprimido antes da armazenagem. Além disso, tenha em mente que os campos do tipo VARCHAR exigem mais espaço de armazenamento que os campos do tipo CHAR. Isso ocorre porque, ao armazenar um VARCHAR, o Firebird adiciona dois bytes que serão usados para guardar o real tamanho do campo (o tamanho declarado). Desta forma, um CHAR ocupará menos espaço de armazenamento. Contudo, quando fazemos um SELECT envolvendo campos do tipo VARCHAR, o Firebird removerá os dois bytes adicionados anteriomente e retornará o valor armazenado. Quando um SELECT é efetuado com campos do tipo CHAR, o Firebird retorna o valor e os espaços em branco. Em termos práticos podemos considerar esta regra: somente use CHAR se você for armazenar strings com poucos caracteres. A exceção a esta regra acontece quando estamos trabalhando com tabelas intermediárias exigidas para a exportação de dados para arquivos de tamanhos fixos. Neste caso os campos CHAR de tamanho fixo trarão uma enorme vantagem. Esta forma eficiente de armazenamento do Firebird pode trazer algumas confusão, principalmente quando estamos importando dados, uma vez que bases de dados Paradox e dBase guardam também os espaços em branco. Assim, depois de importar um arquivo dBase de 10Mb para o Firebird, o resultado será algo em torno de 3-6Mb, ainda que todos os dados tenham sido importados corretamente. Observe também que campos CHAR indexados não devem ter mais que 80 caracteres de comprimento (Firebird 2.5). Quando estamos criando campos do tipo CHAR, este tipo de dados pode ser definido como CHAR ou CHARACTER. Já o tipo VARCHAR pode ser definido como VARCHAR, CHARACTER VARYING ou CHAR VARYING. Veja um comando DDL CREATE TABLE usado para criar uma tabela do Firebird contendo campos do tipo CHAR e VARCHAR: CREATE TABLE PESSOAS( ID INTEGER NOT NULL, NOME VARCHAR(40) NOT NULL, SEXO CHAR(1) NOT NULL ); Aqui o campo ID é do tipo INTEGER, NOME é do tipo VARCHAR(40) e SEXO é do tipo CHAR(1). Veja agora um comando DML INSERT INTO que mostra como inserir um novo registro nesta tabela: INSERT INTO PESSOAS VALUES(12, 'OSMAR J. SILVA', 'M'); É importante notar que, se um campo for do tipo CHAR(1) e, na query INSERT ou UPDATE nós fornecermos dois ou mais caracteres, o Firebird se recusará a gravar ou atualizar o registro, exibindo a seguinte mensagem de erro: Arithmetic overflow or division by zero has occurred. arithmetic exception, numeric overflow, or string truncation. string right truncation. |
Java ::: Dicas & Truques ::: Strings e Caracteres |
Como testar a existência de um caractere em uma string e retornar sua posição em Java usando o método indexOf() da classe StringQuantidade de visualizações: 1 vezes |
|
Nesta dica eu mostro como podemos usar o método indexOf() da classe String para pesquisar um caractere em uma palavra, frase ou texto e retornar a sua posição, ou seja, o seu índice dentro da string. Se o caractere for encontrado, sua posição é retornada. Caso contrário o valor -1 é retornado. Veja o código completo para o exemplo:
package estudos;
public class Estudos{
public static void main(String[] args){
// vamos criar uma string
String frase = "Gosto de programar em Java";
// vamos testas se a string contém a letra "k"
int pos = frase.indexOf('k');
if(pos < 0){
System.out.println("A string não contém a letra k");
}
else{
System.out.println("A letra k foi encontrada na posicao: " + pos);
}
// fecha o programa
System.exit(0);
}
}
Ao executar este código Java nós teremos o seguinte resultado: A string não contém a letra k |
Desafios, Exercícios e Algoritmos Resolvidos de Java |
Veja mais Dicas e truques de Java |
Dicas e truques de outras linguagens |
|
Android Java - Como usar a classe Toast em suas aplicações Android JavaScript - Como acessar as mídias do usuário em JavaScript usando a função getUserMedia() da interface MediaDevices |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |





