Você está aqui: Cards de Engenharia Civil - Construção Civil |
||
|
||
|
|
||
C ::: Dicas & Truques ::: Data e Hora |
Como usar o tipo time_t do header <time.h> da linguagem CQuantidade de visualizações: 5413 vezes |
O tipo time_t, presente no header <time.h> é usado quando precisamos representar datas e horas e, quando necessário, efetuar operações aritméticas envolvendo as mesmas. Este tipo é obtido por meio de uma chamada à função time(). Veja:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(int argc, char *argv[]){
// declara uma variável do tipo time_t e atribui a ela
// o resultado de uma chamada à função time()
time_t hora_atual = time(NULL);
printf("Segundos desde 01/01/1970: %d\n\n", hora_atual);
system("PAUSE");
return 0;
}
Ao executar este trecho de código teremos algo parecido com: Segundos desde 01/01/1970: 1334017044 Como podemos ver, o tipo time_t é apenas um apelido para um long, como declarado no header time.h: typedef long time_t; Desta forma, time_t guarda a quantidade de segundos decorridos desde a meia-noite do dia 01/01/1970 UTC. |
Java ::: Dicas & Truques ::: Matemática e Estatística |
Como calcular porcentagem em Java - Como efetuar cálculos de porcentagem em JavaQuantidade de visualizações: 55727 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 ::: Programação Orientada a Objetos |
Programação Orientada a Objetos em PHP - Aprenda a criar e usar métodos e classes abstratas em PHPQuantidade de visualizações: 11102 vezes |
|
À medida que começamos a usar programação orientada a objetos em PHP algumas situações interessantes podem surgir, tais como o uso de métodos e classes abstratas. As classes e métodos abstratos podem ser usados por uma série de razões. Eis as que considero mais importantes: a) - Um classe abstrata não permite que criemos novas instâncias da mesma. Veja:
<?
// Uma classe Boleto abstrata
abstract class Boleto{
}
// vamos criar um novo objeto desta classe
$b = new Boleto();
?>
Ao executarmos este código teremos a seguinte mensagem de erro: Fatal error: Cannot instantiate abstract class Boleto in ... A vantagem de termos uma classe que não pode ser instanciada é que podemos usá-la como classe base em um código envolvendo poliformismo (no momento que escrevo este artigo não vejo como implementar polimorfismo em PHP. Me pergunto se isso é possível em linguagens de tipos dinâmicos). b) - Qualquer classe que contenha um ou mais métodos abstratos também precisa se declarar abstrata. Como um método abstrato não pode conter implementação, ao forçar a classe a ser abstrata também, as classes derivadas terão a obrigação de implementar tal método. Veja um trecho de código no qual criamos uma classe normal contendo um método abstrato:
<?
// Uma classe Boleto não-abstrata
class Boleto{
// um método abstrato
public abstract function imprimir($dados);
}
?>
Ao executarmos este código teremos a seguinte mensagem de erro: Fatal error: Class Boleto contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (Boleto::imprimir) in ... Ao marcarmos a classe como abstract esta mensagem de erro desaparecerá. c) - Uma classe que herda de uma classe derivada deve, obrigatoriamente, fornecer implementação para todos os métodos abstratos herdados. Veja o trecho de código no qual temos uma classe Boleto e uma classe BoletoBradesco:
<?
// Uma classe Boleto abstrata
abstract class Boleto{
// um método abstrato
public abstract function imprimir($dados);
}
// vamos herdar da classe Boleto
class BoletoBradesco extends Boleto{
}
?>
A mensagem de erro aqui é a mesma quando temos métodos abstratos em uma classe mas não a declaramos como abstrata. Basta fornecer a implementação para o método imprimir e a mensagem de erro desaparece:
<?
// Uma classe Boleto abstrata
abstract class Boleto{
// um método abstrato
public abstract function imprimir($dados);
}
// vamos herdar da classe Boleto
class BoletoBradesco extends Boleto{
public function imprimir($dados){
echo "Imprimindo o boleto: " . $dados;
}
}
// vamos criar um objeto da classe BoletoBradesco
$b = new BoletoBradesco();
// vamos imprimir o boleto
$b->imprimir("Dados do boleto");
?>
d) - Um método marcado como abstract não pode conter implementação, ou seja, a implementação será feita pelas classes derivadas. Veja:
<?
// Uma classe Boleto abstrata
abstract class Boleto{
// um método abstrato que não deveria conter implementação
public abstract function imprimir($dados){
echo "Isso vai dar um erro daqueles!";
}
}
?>
Ao tentarmos executar este trecho de código teremos a seguinte mensagem de erro: Fatal error: Abstract function Boleto::imprimir() cannot contain body in ... Bastará remover a implementação do método que a mensagem de erro desaparecerá. |
Python ::: cmath Python Module (Módulo Python cmath para números complexos) ::: Números Complexos (Complex Numbers) |
Como converter um número complexo na forma retangular para a forma polar usando PythonQuantidade de visualizações: 2648 vezes |
|
Quando estamos efetuando cálculos envolvendo números complexos, é comum precisarmos converter da forma retangular para a forma polar, e vice-versa. Um número complexo na forma retangular apresenta o seguinte formato: 7 + j5 onde 7 é a parte real e 5 é a parte imaginária. Note que usei a notação "j" em vez de "i" para a parte imaginária, uma vez que a notação "j" é a mais comum na engenharia. O número complexo na forma polar, por sua vez, é composto pelo raio e pela fase (phase), que é o ângulo theta (ângulo da inclinação da hipotenusa em relação ao cateto adjascente). O raio, representado por r, é o módulo do vetor cujas coordenadas são formadas pela parte real e a parte imaginária do número complexo. A parte real se encontra no eixo das abcissas (x) e a parte imaginária fica no eixo das ordenadas (y). Veja agora o código Python completo que lê a parte real e a parte imaginária de um número complexo e o exibe na forma polar:
# vamos importar o módulo de matemática de números complexos
import cmath
# método principal
def main():
# vamos ler a parte real e a parte imaginária do
# número complexo
real = float(input("Parte real do número complexo: "))
imaginaria = float(input("Parte imaginária do número complexo: "))
# constrói o número complexo
z = complex(real, imaginaria)
# mostra o valor absoluto na forma polar
print ("Valor absoluto (raio ou módulo): ", abs(z))
# mostra a fase do número complexto na forma polar
print("Fase em radianos: ", cmath.phase(z))
print("Fase em graus: ", cmath.phase(z) * (180 / cmath.pi))
if __name__== "__main__":
main()
Ao executar este código Python nós teremos o seguinte resultado: Parte real do número complexo: 3 Parte imaginária do número complexo: -4 Valor absoluto (raio ou módulo): 5.0 Fase em radianos: -0.9272952180016122 Fase em graus: -53.13010235415598 |
C ::: Dicas & Truques ::: Strings e Caracteres |
Como criar sua própria função substring() para obter uma substring a partir de uma string em CQuantidade de visualizações: 17316 vezes |
Em algumas situações precisamos obter uma substring a partir de uma string. A linguagem C já fornece algumas funções que tornam isso possível. No entanto, nenhuma destas funções permite especificar o índice inicial da substring. Sendo assim, o trecho de código abaixo mostra como escrever uma função substring() que permite informar a string de origem, o índice inicial e a quantidade de caracteres que serão obtidos. O retorno da função será um ponteiro para a substring obtida:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char *substring(char *origem, int inicio, int quant){
char *res = origem;
int i = 0;
// posição inicial menor que 0 ou
// posição inicial muito exagerada?
if((inicio < 0) || (inicio > strlen(origem)))
inicio = 0;
// quantidade de caracteres muito exagerada?
if(quant > inicio + strlen(origem))
quant = strlen(origem) - inicio;
// obtem os caracteres desejados
for(i = 0; i <= quant - 1; i++){
res[i] = origem[inicio + i];
}
// marca o fim da string
res[i] = '\0';
return res;
}
int main(int argc, char *argv[])
{
char texto[] = "Gosto muito de C e C++";
// não podemos bagunçar a string original
char sub_temp[128];
strcpy(sub_temp, texto);
// 10 caracteres começando
// no índice 6
char *res = substring(sub_temp, 6, 10);
// exibe o resultado
puts(res);
// exibe a string original
puts(texto);
system("pause");
return 0;
}
Ao executar este código nós teremos o seguinte resultado: muito de C Gosto muito de C e C++ |
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 |






