Você está aqui: Cards de Engenharia Civil - Estruturas de Aço e Madeira |
||
|
||
|
|
||
PHP ::: Dicas & Truques ::: Strings e Caracteres |
Como usar as funções strpos() e stripos() do PHP para obter uma matriz contendo todas as posições das ocorrências de uma substring dentro de uma stringQuantidade de visualizações: 3387 vezes |
Em algumas situações percebemos que uma substring aparece mais de uma vez em uma string e gostaríamos de obter mais informações sobre tais ocorrências. No trecho de código abaixo eu mostro como usar as funções strpos() e stripos() para obter uma matriz contendo todas as posições das ocorrências de uma substring dentro de uma string:
<?php
$frase = "PHP? Gosto muito de PHP e Java. Mas prefiro PHP e Delphi";
$palavra = "PHP";
// primeiro vamos verificar se a palavra está contida na frase
if(strpos($frase, $palavra) !== false){
// agora vamos obter as posições de todas as ocorrências
$posicoes = array();
$offset = 0;
$posicao = -1;
while($offset < strlen($frase)){
$posicao = strpos($frase, $palavra, $offset);
if($posicao !== false){
$posicoes[] = $posicao;
$offset = $posicao + strlen($palavra);
}
else{
$offset++;
}
}
// percorre a matriz de posições e informa o usuário
echo "A palavra foi encontrada nas posições: ";
for($i = 0; $i < count($posicoes); $i++){
echo $posicoes[$i] . ", ";
}
}
else{
echo "A palavra não está contida na string";
}
?>
Ao executarmos este código nós teremos o seguinte resultado: A palavra foi encontrada nas posições: 0, 20, 44, Note que a função strpos() diferencia maiúsculas de minúsculas. Se você quiser efetuar uma pesquisa de substrings desconsiderando maiúsculas e minúsculas, use a função stripos(). |
Java ::: Dicas & Truques ::: Matemática e Estatística |
Como calcular porcentagem em Java - Como efetuar cálculos de porcentagem em JavaQuantidade de visualizações: 55718 vezes |
|
Cálculos de porcentagens estão presentes em boa parte das aplicações que desenvolvemos. Porém, há momentos em que a mente trava e não conseguimos lembrar com clareza como estes cálculos são feitos, principalmente em Java. Esta anotação tem o objetivo de ser uma fonte de pesquisa para os momentos em que suas habilidades matemáticas insistirem em continuar ocultas. Ex: 1 - Suponhamos que um produto que custe R$ 178,00 sofra um acréscimo de 15%. Qual o valor final do produto? Veja o código em Java:
// Algoritmo que calcula porcentagem em Java
package estudos;
public class Estudos {
public static void main(String[] args) {
// variáveis usadas na resolução do problema
double valor, percentual, valor_final;
valor = 178.00; // valor original
percentual = 15.0 / 100.0; // 15%
valor_final = valor + (percentual * valor);
// mostra o resultado
System.out.println("O valor final do produto é: " + valor_final);
// O resultado será 204,70
}
}
Ex: 2 - Um produto, cujo valor original era de R$ 250,00, teve um desconto de 8%. Qual foi seu valor final? Veja o código em Java:
// Algoritmo que calcula porcentagem em Java
package estudos;
public class Estudos {
public static void main(String[] args) {
// variáveis usadas na resolução do problema
double valor, percentual, valor_final;
valor = 250.00; // valor original
percentual = 8.0 / 100.0; // 8%
valor_final = valor - (percentual * valor);
// mostra o resultado
System.out.println("O valor final do produto é: " + valor_final);
// O resultado será 230,00
}
}
Ex: 3 - Em um concurso de perguntas e respostas, um jovem acertou 72 das 90 perguntas apresentadas. Qual foi a porcentagem de acertos? E a porcentagem de erros? Veja o código em Java:
// Algoritmo que calcula porcentagem em Java
package estudos;
public class Estudos {
public static void main(String[] args) {
// variáveis usadas na resolução do problema
double perguntas, acertos;
perguntas = 90.0;
acertos = 72.0;
// mostra a porcentagem de acertos
System.out.print("Porcentagem de acertos: ");
System.out.println(((acertos / perguntas) * 100) + "%");
// mostra a porcentagem de erros
System.out.print("Porcentagem de erros: ");
System.out.println((((perguntas - acertos) / perguntas) * 100) + "%");
// Os resultados serão 80% e 20%
}
}
Ex: 4 - Um aparelho de CD foi adquirido por R$ 300,00 e revendido por R$ 340,00. Qual foi a porcentagem de lucro na transação? Veja o código em Java:
// Algoritmo que calcula porcentagem em Java
package estudos;
public class Estudos {
public static void main(String[] args) {
// variáveis usadas na resolução do problema
double valor_anterior, novo_valor, porcentagem_lucro;
valor_anterior = 300.0; // valor anterior
novo_valor = 340.0; // valor novo
// calcula a porcentagem de lucro
// efetua o cálculo
porcentagem_lucro = ((novo_valor * 100) / valor_anterior) - 100;
System.out.println("A porcentagem de lucro foi de: " +
porcentagem_lucro + "%");
// O resultado será 13,33
}
}
Ex: 5 - Uma loja repassa 5% do lucro a seus vendedores. Se um produto custa R$ 70,00, qual o valor em reais repassado a um determinado vendedor? Veja o código em Java:
// Algoritmo que calcula porcentagem em Java
package estudos;
public class Estudos {
public static void main(String[] args) {
// variáveis usadas na resolução do problema
double valor, percentual, comissao;
valor = 70.0; // valor do produto
percentual = 5.0 / 100.0; // 5%
// calcula a comissão
comissao = percentual * valor;
// mostra o resultado
System.out.println("O valor repassado ao vendedor é: " + comissao);
// O resultado será 3,5
}
}
|
PHP ::: Dicas & Truques ::: Strings e Caracteres |
Como converter uma string para letras maiúsculas em PHP usando as funções strtoupper() e mb_strtoupper()Quantidade de visualizações: 2 vezes |
As funções strtoupper() e mb_strtoupper() do PHP nos ajuda quando precisamos transformar uma string inteira para letras maiúsculas. Veja o seguinte exemplo:<?php // uma frase contendo letras minúsculas $frase = "PHP? Eu gosto de PHP"; echo "A frase é: " . $frase . "\n"; // agora vamos transformá-la em letras // maiúsculas $frase = strtoupper($frase); echo "A frase em letras maiúsculas é: " . $frase; ?> Ao executar este código PHP nós teremos o seguinte resultado: A frase é: PHP? Eu gosto de PHP A frase em letras maiúsculas é: PHP? EU GOSTO DE PHP A função mb_strtoupper(), por sua vez, é usada quando a palavra, frase ou texto contém acentuações. Nas versões mais recentes do PHP, a função strtoupper() sozinha não consegue converter caracteres minúsculas com acentos para caracteres maiúsculas acentuados. Por isso, a função mb_strtoupper() é usada. Veja: <?php // uma frase contendo letras minúsculas $frase = "Java? Não gosto muito de Java não"; echo "A frase é: " . $frase . "\n"; // agora vamos transformá-la em letras // maiúsculas $frase1 = strtoupper($frase); echo "Usando strtoupper(): " . $frase1; $frase2 = mb_strtoupper($frase, 'UTF-8'); echo "\nUsando mb_strtoupper(): " . $frase2; ?> Ao executar este código PHP nós teremos o seguinte resultado: A frase é: Java? Não gosto muito de Java não Usando strtoupper(): JAVA? NãO GOSTO MUITO DE JAVA NãO Usando mb_strtoupper(): JAVA? NÃO GOSTO MUITO DE JAVA NÃO Veja que usei o valor "UTF-8" como segundo argumento para a função mb_strtoupper(). Se necessário você pode fornecer o valor "ISO-8859-1" também. |
C# ::: Fundamentos da Linguagem ::: Estruturas de Controle |
C# para iniciantes - Como usar o laço for da linguagem C#Quantidade de visualizações: 12500 vezes |
|
O laço for em C# é usado quando queremos executar uma instrução ou um bloco de instruções um determinado número de vezes. Este laço é composto de três partes: Inicialização: Laços for são controlados por uma variável de controle. Nesta parte nós definimos o tipo de dados e o valor inicial desta variável. Esta parte do laço é executada somente na primeira iteração. Teste da condição de parada: Cada iteração do laço acontece mediante uma condição. Esta condição é avaliada e, caso o retorno seja satisfatório, a execução do laço continua. O resultado da avaliação desta parte do laço deve ser true ou false. Tenha em mente que, se a condição já for falsa na primeira iteração, o laço nunca será executado. Incremento ou decremento da variável de controle: Esta parte do laço é executada após cada iteração. É aqui que incrementamos ou decrementamos o valor da variável de controle. Esta parte é importante. Não manipular o valor da variável de controle pode resultar em laços infinitos. Veja um laço for no qual contamos de 0 a 10:
static void Main(string[] args){
for(int i = 0; i <= 10; i++){
Console.WriteLine("{0}", i);
}
Console.WriteLine("\n\nPressione uma tecla para sair...");
Console.ReadKey();
}
Veja agora um laço for que exibe os números pares de 0 a 10:
static void Main(string[] args){
for(int i = 0; i <= 10; i += 2){
Console.WriteLine("{0}", i);
}
Console.WriteLine("\n\nPressione uma tecla para sair...");
Console.ReadKey();
}
E finalmente, um laço for que conta de 10 até 0:
static void Main(string[] args){
for(int i = 10; i >= 0; i--){
Console.WriteLine("{0}", i);
}
Console.WriteLine("\n\nPressione uma tecla para sair...");
Console.ReadKey();
}
Com exceção da parte do teste de condição de parada, as demais partes de um laço for podem conter múltiplas instruções separadas por vírgulas. Veja:
static void Main(string[] args){
for(int i = 0, x = 3; i < 10; i++, x *= 4){
Console.WriteLine("{0}", i + x);
}
Console.WriteLine("\n\nPressione uma tecla para sair...");
Console.ReadKey();
}
|
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Estruturas de Dados - Listas Ligadas |
Exercícios Resolvidos de Java - Como remover no início de uma lista ligada em Java - Escreva um programa Java que cria uma lista dinamicamente encadeadaQuantidade de visualizações: 844 vezes |
|
Pergunta/Tarefa: Escreva um programa Java que cria uma lista dinamicamente encadeada (lista singularmente encadeada) e peça para o usuário inserir 5 elementos do tipo inteiro. Em seguida faça a remoção do nó no início da lista ligada e retorne o seu valor. Sua saída deve ser parecida com: Inserindo 5 valores na lista Informe o 1.o valor: 3 Informe o 2.o valor: 8 Informe o 3.o valor: 4 Informe o 4.o valor: 7 Informe o 5.o valor: 6 Valores na lista: 3 -> 8 -> 4 -> 7 -> 6 -> null Removendo no início da lista O nó removido foi: 3 Valores na lista novamente: 8 -> 4 -> 7 -> 6 -> null Na saída podemos ver que a lista contém os valores 3, 8, 4, 7 e 6. Depois que o nó no início é removido, os elementos da lista ficam 8, 4, 7 e 6. Veja a resolução comentada deste exercício usando Java:
package estudos;
import java.util.Scanner;
// classe interna usada para representar um
// nó na lista ligada
class No {
int valor; // valor do nó
No proximo; // aponta para o novo nó
// construtor cheio da classe No
public No(int valor, No proximo) {
this.valor = valor;
this.proximo = proximo;
}
// construtor vazio da classe No
public No() {
this.valor = 0;
this.proximo = null;
}
}
public class Estudos {
// vamos criar uma referência para o início da lista
static No inicio = null;
public static void main(String args[]){
// para ler a entrada do usuário
Scanner entrada = new Scanner(System.in);
// vamos inserir 5 valores inteiros na lista ligada
int valor;
System.out.println("Inserindo 5 valores na lista\n");
for (int i = 0; i < 5; i++) {
System.out.print("Informe o " + (i + 1) + ".o valor: ");
valor = Integer.parseInt(entrada.nextLine());
// vamos inserir este valor no final da lista
inserirFinal(valor);
}
// vamos exibir os valores na lista ligada
System.out.print("\nValores na lista: ");
exibirLista();
// vamos remover o nó no início da lista ligada
System.out.println("\nRemovendo no início da lista");
No removido = removerInicio();
System.out.println("O nó removido foi: " +
removido.valor);
// vamos exibir os valores na lista ligada
System.out.print("\nValores na lista novamente: ");
exibirLista();
}
// função que permite remover o nó no início de uma lista
// dinamicamente ligada em Java
public static No removerInicio() {
// primeiro apontamos para o início da lista
No no = inicio;
// a lista está vazia?
if (no != null) {
// o início da lista aponta para o seu próximo
inicio = inicio.proximo;
}
// retorna o nó removido ou null no caso da lista vazia
return no;
}
// função que permite adicionar um nó no final da
// lista ligada
public static void inserirFinal(int valor) {
// vamos apontar para o nó inicial
No atual = inicio;
// criamos um novo nó
No novo = criarNo(valor);
// a lista ligada ainda está vazia?
if (atual == null){
// inicio recebe o novo nó
inicio = novo;
}
else { // temos um ou mais nós na lista ligada
// vamos localizar o último nó
while (atual.proximo != null) {
atual = atual.proximo;
}
// encontramos o último nó. Agora vamos inserir
// o novo nó depois dele
atual.proximo = novo;
}
}
// função usada para construir e retornar um novo nó
public static No criarNo(int valor) {
// cria o novo nó
No no = new No(valor, null);
// retorna o nó criado
return no;
}
// função usada para percorrer a lista ligada e
// exibir os valores contidos em seus nós
public static void exibirLista() {
// vamos apontar para o início da lista
No temp = inicio;
// a lista está vazia?
if (temp == null) {
System.out.println("A lista está vazia.");
}
else {
// esse laço se repete enquanto tempo for
// diferente de null
while (temp != null) {
// vamos mostrar o valor desse nó
System.out.print(temp.valor + " -> ");
// avança para o próximo nó
temp = temp.proximo;
}
// mostra o final da lista
System.out.println("null");
}
}
}
|
Mais Desafios de Programação e Exercícios e Algoritmos Resolvidos de Java |
Veja mais Dicas e truques de Java |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |






