![]() |
|
||||
|
|||||
Você está aqui: Cards de Engenharia Civil - Construção Civil |
||
|
||
|
|
||
C ::: Dicas & Truques ::: Strings e Caracteres |
Como contar as ocorrências de uma substring em uma string em C usando uma função substring_count() personalizadaQuantidade de visualizações: 10599 vezes |
Em algumas situações precisamos obter a quantidade de vezes que uma substring ocorre dentro de uma string. Para isso podemos usar a função personalizada substring_count(). Esta função recebe a string e a substring que desejamos pesquisar e retorna um inteiro contendo a quantidade de vezes que a substring foi encontrada. Veja o código:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// função personalizada que permite contar as
// ocorrências de uma substring em uma string
int substring_count(const char *str, const char *substring){
int i, j, k, quant = 0;
// vamos percorrer todos os caracteres da string
for(i = 0; str[i]; i++){
for(j = i, k = 0; str[j] == substring[k]; j++, k++){
if(substring[k + 1] == 0) // fim da comparação
quant++;
}
}
return quant;
}
int main(int argc, char *argv[]){
char frase[] = "Gosto muito de Java, JavaScript e Python";
printf("Ocorrencias encontradas: %d",
substring_count(frase, "Java"));
puts("\n\n");
system("PAUSE");
return 0;
}
|
Java ::: Dicas & Truques ::: Programação Orientada a Objetos |
Programação Orientada a Objetos em Java - Java OOP - Como chamar o construtor de uma superclasse a partir da classe derivadaQuantidade de visualizações: 19605 vezes |
|
Em algumas situações, é necessário efetuar uma chamada ao construtor de uma superclasse a partir da sub-classe, ou classe derivada. Principalmente quando temos que inicializar dados privados pertencentes à superclasse. Imaginemos o seguinte cenário: uma classe Pessoa cujo construtor recebe o nome e idade da pessoa. Temos então uma classe Aluno que herda de pessoa e cujo construtor recebe nome, idade e matrícula. Desta forma, temos aqui uma boa oportunidade para efetuarmos uma chamada ao construtor da superclasse a partir da classe derivada. Comece criando a classe Pessoa (Pessoa.java):
public class Pessoa{
public String nome;
public int idade;
// construtor da classe
public Pessoa(String nome, int idade){
this.nome = nome;
this.idade = idade;
}
}
Compile Pessoa.java. Agora vamos criar um classe Aluno (Aluno.java) que herda da classe Pessoa:
public class Aluno extends Pessoa{
public String matricula;
// construtor
public Aluno(String nome, int idade,
String matricula){
// chama o construtor da superclasse
super(nome, idade);
this.matricula = matricula;
}
}
Compile Aluno.java e escreva o programa abaixo, que demonstra como a chamada ao construtor da superclasse é feita a partir da subclasse, ou classe derivada:
public class Estudos{
public static void main(String args[]){
// cria um objeto da classe Aluno
Aluno aluno = new Aluno("Osmar J. Silva",
36, "AC434-23");
// Exibe o resultado
System.out.println("Nome: " + aluno.nome + "\n" +
"Idade: " + aluno.idade + "\n" +
"Matrícula: " + aluno.matricula);
}
}
Execute este código e observe alguns detalhes interessantes. O mais importante é a forma de chamar o construtor da superclasse: // chama o construtor da superclasse super(nome, idade); Veja como recebemos três variáveis no construtor da classe Aluno e passamos duas delas para o construtor da superclasse. |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Java Básico |
Exercício Resolvido de Java - Como calcular o Índice de Massa Corporal em Java - Como calcular IMC em JavaQuantidade de visualizações: 13429 vezes |
|
Pergunta/Tarefa: O índice de massa corporal (IMC) é uma medida internacional usada para calcular se uma pessoa está no peso ideal. Ele foi desenvolvido pelo polímata Lambert Quételet no fim do século XIX. Trata-se de um método fácil e rápido para a avaliação do nível de gordura de cada pessoa, ou seja, é um preditor internacional de obesidade adotado pela Organização Mundial da Saúde (OMS). O IMC é determinado pela divisão da massa do indivíduo pelo quadrado de sua altura, em que a massa está em quilogramas e a altura em metros. A fórmula é a seguinte: ![]() A classificação é feita de acordo com as seguintes regras: a) < 16 - Magreza grave b) 16 a < 17 - Magreza moderada c) 17 a < 18,5 - Magreza leve d) 18,5 a < 25 - Saudável e) 25 a < 30 - Sobrepeso f) 30 a < 35 - Obesidade Grau I g) 35 a < 40 - Obesidade Grau II (severa) h) >= 40 - Obesidade Grau III (mórbida) Escreva um programa Java que leia o peso e a altura de uma pessoa e retorna seu IMC classificado de acordo com a tabela acima. Sua saída deverá ser parecida com: Informe seu peso: 82 Informe sua altura: 1.85 Seu IMC é: 23.959094229364496 Sua classificação é Saudável Veja a resolução comentada deste exercício usando Java:
package estudos;
import java.util.Scanner;
public class Estudos {
public static void main(String[] args) {
Scanner entrada = new Scanner(System.in);
// vamos solicitar o peso e a altura da pessoa
System.out.print("Informe seu peso: ");
double peso = Double.parseDouble(entrada.nextLine());
System.out.print("Informe sua altura: ");
double altura = Double.parseDouble(entrada.nextLine());
// vamos calcular o IMC
double imc = peso / (altura * altura);
System.out.println("Seu IMC é: " + imc);
// vamos mostrar a classificação
if(imc < 16){
System.out.println("Sua classificação é Magreza grave");
}
else if((imc >= 16) && (imc < 17)){
System.out.println("Sua classificação é Magreza moderada");
}
else if((imc >= 17) && (imc < 18.5)){
System.out.println("Sua classificação é Magreza leve");
}
else if((imc >= 18.5) && (imc < 25)){
System.out.println("Sua classificação é Saudável");
}
else if((imc >= 25) && (imc < 30)){
System.out.println("Sua classificação é Sobrepeso");
}
else if((imc >= 30) && (imc < 35)){
System.out.println("Sua classificação é Obesidade Grau I");
}
else if((imc >= 35) && (imc < 40)){
System.out.println("Sua classificação é Obesidade Grau II");
}
else{
System.out.println("Sua classificação é Obesidade Grau III (mórbida)");
}
System.out.println("\n");
}
}
|
Java ::: Dicas & Truques ::: Matemática e Estatística |
Como converter de octal para decimal usando o método parseInt() da classe Integer da linguagem JavaQuantidade de visualizações: 10487 vezes |
|
Nesta dica eu mostrarei como podemos tirar proveito do método parseInt() da classe Integer do Java para converter um valor octal para decimal. Para isso nós só precisamos fornecer o valor 8 como segundo argumento para esta função. Veja o código completo:
package arquivodecodigos;
public class Estudos{
public static void main(String args[]){
String octal = "10";
// efetua a conversão de octal para
// decimal
int decimal = Integer.parseInt(octal, 8);
// exibe o resultado
System.out.println("O octal " + octal + " em decimal é " +
decimal);
System.exit(0);
}
}
Ao executarmos este código nós teremos o seguinte resultado: O octal 10 em decimal é 8 |
C++ ::: Win32 API (Windows API) ::: Edit Control |
Como definir a cor de fundo para um Edit Control em tempo de execução usando C++ e a API do WindowsQuantidade de visualizações: 10491 vezes |
|
O processo de definir a cor de fundo para um Edit Control em tempo de execução usando apenas C++ e a API do Windows é um pouco complicado. A técnica apresentada aqui pode não ser a mais eficiente, mas funciona mesmo (testado como VC++ 2005 e Windows XP). Note que estarei usando as funções CreateSolidBrush(), GetDlgCtrlID(), SetBkMode() e SetBkColor() da WinAPI. 1 - Comece adicionando as linhas na parte de variáveis globais de sua aplicação: HBRUSH hbrushEditBox = CreateSolidBrush(RGB(255, 255, 255)); HDC hdcEdit; int id_edit_control; HWND edit_window; 2 - Modifique ou adicione um case para a mensagem WM_CTLCOLOREDIT da seguinte forma:
case WM_CTLCOLOREDIT:
hdcEdit = (HDC)wParam;
edit_window = HWND(lParam);
id_edit_control = GetDlgCtrlID(edit_window);
if(id_edit_control == IDC_EDIT1){
SetBkMode(hdcEdit, TRANSPARENT);
SetBkColor(hdcEdit,(LONG)hbrushEditBox);
return (LONG)hbrushEditBox;
}
return (LRESULT)CreateSolidBrush(RGB(255, 255, 255));
3 - A cor de fundo do Edit Control com ID IDC_EDIT1 será modificada para vermelho quando clicarmos no botão com o ID IDC_BUTTON1. Veja o case para este botão (dentro do case WM_COMMAND): case IDC_BUTTON1: // ID do botão // Define uma nova cor de fundo para o Edit Control // com o ID IDC_EDIT1 // Vermelho como cor de fundo hbrushEditBox = CreateSolidBrush(RGB(255, 0, 0)); // Atualiza o Edit Control InvalidateRect(GetDlgItem(hwnd, IDC_EDIT1), 0, TRUE); break; |
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 |





