![]() |
|
Código-Fonte Software de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimentoDiga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais |
|
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: 11166 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á. |
C ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Exercícios Resolvidos de C - Desafio do número ausente. Dado um vetor de números naturais 1..n, encontre o valor ausenteQuantidade de visualizações: 857 vezes |
|
Pergunta/Tarefa: Dado o vetor:
int valores[] = {1, 8, 7, 2, 6, 5, 3};
Encontre o elemento ausente na sequência de valores do vetor, sabendo que o primeiro valor é 1 e o último elemento é 8. Perceba que o vetor não precisa estar ordenado. Além disso, o entrevistador se certificará de que os valores serão sempre positivos e não haverá valores repetidos. Sua saída deverá ser parecida com: O número ausente é: 4 Dica: Use a fórmula n * (n + 1) / 2 para facilitar a resolução do exercício. Veja a resolução comentada deste exercício usando C:
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
// função principal do programa
int main(int argc, char *argv[]){
// vamos declarar um vetor de inteiros faltando
// um valor na sequência (não necessariamente ordenada)
// Note a ausência do número 4
int valores[] = {1, 8, 7, 2, 6, 5, 3};
int i, soma_n, ausente, soma_elementos;
int quant = 8; // tamanho do vetor + 1
setlocale(LC_ALL,""); // para acentos do português
// o primeiro passo é obter a soma de 1..n elementos
// natuais usando a fórmula n*(n+1)/2
soma_n = (quant * (quant + 1)) / 2;
// agora vamos somar os elementos do vetor
soma_elementos = 0;
for(i = 0; i < 7; i++){
soma_elementos = soma_elementos + valores[i];
}
// agora calculamos o valor ausente
ausente = soma_n - soma_elementos;
// vamos mostrar o resultado
printf("O número ausente é: %d", ausente);
printf("\n\n");
system("PAUSE");
return 0;
}
|
VB.NET ::: Dicas & Truques ::: Strings e Caracteres |
Como inverter o conteúdo de uma string em VB.NET usando os métodos ToCharArray() e Reverse()Quantidade de visualizações: 8109 vezes |
|
Nesta dica mostrarei como podemos tirar proveito do método ToCharArray() da classe String e do método Reverse() da classe Array do VB.NET para inverter a ordem dos caracteres de uma palavra, frase ou texto. Note que criamos uma função personalizada InverterString() que recebe uma string, a inverte e devolve uma nova string com a ordem dos caracteres invertida. Veja o código completo para o exemplo:
Imports System
Module Program
Sub Main(args As String())
' vamos declarar uma string
Dim frase As String = "Gosto de VB.NET"
' mostramos a frase original
Console.WriteLine("Frase original: " & frase)
' inverte o conteúdo da string
frase = InverterString(frase)
' mostramos a frase invertida
Console.WriteLine("A frase invertidade é: " & frase)
Console.WriteLine(vbCrLf & "Pressione qualquer tecla para sair...")
' pausa o programa
Console.ReadKey()
End Sub
' Função que recebe uma string e a devolve invertida
Function InverterString(ByVal str As String) As String
Dim invertida As String
Dim arrChar() As Char = str.ToCharArray()
Array.Reverse(arrChar)
invertida = arrChar
Return invertida
End Function
End Module
Ao executar este código VB.NET nós teremos o seguinte resultado: Frase original: Gosto de VB.NET A frase invertidade é: TEN.BV ed otsoG |
Python ::: Pandas Python Library (Biblioteca Python Pandas) ::: Input e Output (Entrada e Saída) |
Como usar o método read_csv() do Pandas da linguagem Python para carregar um dataset e retorná-lo como um DataFrameQuantidade de visualizações: 5531 vezes |
|
Quando estamos desenvolvendo soluções em Data Science ou Machine Learning, é comum precisarmos carregar dados contidos em arquivos .csv (nos quais os registros são separados por vírgulas ou ponto-e-vírgula). Para isso podemos usar o método read_csv() da biblioteca Pandas do Python. Veja um exemplo no qual usamos o método read_csv() para carregar um dataset e depois exibir o DataFrame resultante. Para isso usaremos uma amostra de dados de empréstimos aprovados ou recusados. O arquivo .csv pode ser baixado aqui. Eis o código:
# importamos a biblioteca Pandas
import pandas as pd
def main():
# vamos carregar os dados do arquivo .csv
dados = pd.read_csv("C:\\estudos_python\\emprestimos.csv",
delimiter=";")
# vamos mostrar o DataFrame resultante
print(dados)
if __name__== "__main__":
main()
Quando executarmos este código nós teremos um resultado parecido com:
id nome idade sexo renda valor parc pont ap
0 1 MIGUEL728 24 M 1800 12500 30 34 S
1 2 RAUL46 61 M 2300 10000 24 59 S
2 3 JONAS264 28 M 800 12500 36 59 N
3 4 LETICIA135 71 F 1800 10000 36 13 N
4 5 CARLOS931 60 F 4000 2000 6 10 N
.. ... ... ... ... ... ... ... ... ..
9 96 ANGELA391 91 F 4000 12500 12 33 N
96 97 PEDRO764 50 M 10200 2500 12 1 N
97 98 ADRIANA175 41 F 4000 2000 36 77 S
98 99 ROSA666 42 F 1800 20000 24 74 N
99 100 SARA653 36 F 970 11000 12 42 N
[100 rows x 9 columns]
Note que aqui nós temos uma amostra de 100 registros e cada registro possui 9 colunas. Se você quiser ver todos os 100 registros, troque a linha: print(dados) por print(dados.to_string()) Para finalizar, note que forneci ";" como delimitador para o método read_csv(). |
Você também poderá gostar das dicas e truques de programação abaixo |
|
JavaScript - Como resolver uma equação do segundo grau em JavaScript - Como calcular Bhaskara em JavaScript |
Nossas 20 dicas & truques de programação mais recentes |
Últimos Projetos e Códigos Fonte Liberados Para Apoiadores do Site |
|
Python - Como criar o jogo Pedra, Papel, Tesoura em Python - Jogo completo em Python com código comentado |
Últimos Exercícios Resolvidos |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |







