quarta-feira, 28 de outubro de 2009

Diferenças no Pensamento entre Ricos, Classe Média e Pobres

Olá a todos!!

Comecei a ler esta semana o livro "Independência Financeira. O Guia do Pai Rico", e achei logo no início uma coisa muito interessante, a diferença no pensamento entre ricos e pobres, acho que vale a pena compartilhar aqui para refletirmos e começarmos a pensarmos como ricos, ou não.


P/CM – Diz: “Nunca vou ficar rico”.
R – Diz: “Sou um homem rico”. E mesmo se estiver quebrado, pois diz: ‘Há uma diferença entre ser pobre e estar quebrado. Estar quebrado é algo temporário; ser pobre é eterno”.
P/CM – Não ligo para dinheiro, ou O dinheiro não é importante. 


R – O dinheiro é poder.
P/CM – Trabalha por dinheiro.
R – O dinheiro trabalha para mim.

P/CM – Adquirem obrigações pensando que são ativos.
R – Adquirem ativos.

P/CM – Compram primeiro artigos de luxo (casas grandes, carros maiores, diamantes, peles, jóias ou barcos).
R – Compram os artigos de luxo por último.

P/CM – O amor ao dinheiro é a raiz de todo mal.
R – A falta de dinheiro é a raiz de todo mal.

P/CM – Não dá para comprar isso.
R – O que posso fazer para comprar isso?
R – Meu cérebro fica mais forte a cada dia porque eu o exercito. Quanto mais forte fica, mais dinheiro ganho.

P/CM – Tem o hábito de colocar o cérebro para dormir quando o assunto é dinheiro. Evita o assunto.
R – Tem o costume de exercitar seu cérebro quando o assunto é dinheiro.

P/CM – Que os ricos deviam pagar mais impostos para atender os menos afortunados.
R –Que os impostos punem os que produzem e recompensam os que não produzem.

P/CM – Estude arduamente, forme-se, para poder arrumar emprego numa boa empresa.
R – Estude arduamente, forme-se, para ficar rico, para entender como funciona o dinheiro e para aprender a faze-lo trabalhar para você, para ser independente financeiramente.

P/CM – Não sou rico porque tenho filhos.
R – Tenho que ser rico por causa de vocês, meus filhos.

P/CM – Proíbe que se fale de negócios durante as refeições.
R – Inventiva as conversas sobre dinheiro e negócios na hora do jantar.

P/CM – Em questões de dinheiro seja cuidadoso, não se arrisque.
R – Aprenda a administrar o risco. Conhecendo a operação, o risco diminui.

P/CM – Nossa casa é nosso maior investimento e nosso maior patrimônio.
R – Minha casa é uma dívida e se sua casa for seu maior investimento, você terá problemas.

P/CM – Paga suas contas no prazo, em primeiro lugar.
R - Paga suas contas no prazo, deixando para a última hora. Primeiro paga a si mesmo.

P/CM – Acredita que a empresa ou o governo deveria cuidar de você e de suas necessidades.
R – Acredita na auto-suficiência financeira, se manifestando contra a mentalidade ‘dos direitos’ e fala que isso cria pessoas fracas e financeiramente necessitadas.

P/CM – Luta para poupar uns poucos reais.
R – Cria investimentos.

P/CM – Ensina a escrever um currículo impressionante para encontrar um bom emprego.
R – Ensina a fazer sólidos planos financeiros e de negócios de modo que possa criar empregos.

segunda-feira, 26 de outubro de 2009

Juros Compostos no Lázarus

Olá pessoal!

Depois de algumas aula de matemática financeira, resolvi testar meus conhecimentos e fazer um programa pra cálculos de juros compostos. A idéia é que o usuário veja os campos com os dados necessários para o cálculo e deixe em branco aquele que ele deseja descobrir, por exemplo, pra calcular o montante, informa o capital inicial, taxa e tempo, clica em calcular, o programa verifica que foi deixado em branco o campo Montante e então calcula e exibe o resultado naquele campo.

Como tenho instalado no meu note Ubuntu 9.04 e Lázarus, resolvi fazer nele, já mostrei como instalar ele neste post.



Primeiramente, abra o Lázarus e crie um novo projeto (Aplication) e adicione 5 Labels, 5 Edits e 1 Button de forma que fique parecido com a imagem abaixo.





Altere a propriedade name dos Edits para EdtCapital, EdtTaxa, EdtTempo, EdtMontante e EdtJuros. O Button para btnCalcular e as labels tanto faz se renomear ou não.

Feito isso, de um duplo clique no botão BtnCalcular e adicione o seguinte código para fazer os cálculos de juros compostos, eles estão comentados e são auto explicativos.



procedure TfrmJurosComposto.CalcularClick(Sender: TObject);
var
// Declara variaveis
Taxa,Tempo,Capital,Montante:Double;
begin
// Inicia variaveis com valor 0
Taxa:=0;
Tempo:=0;
Capital:=0;
Montante:=0;
try
// Variaveis armazenam valores informados se foi informado algum valor
if (EdtTaxa.Text <> '') then
Taxa := StrToFloat(EdtTaxa.Text);
if (EdtTempo.Text <> '') then
Tempo := StrToFloat(EdtTempo.Text);
if (EdtCapital.Text <> '') then
Capital := StrToFloat(EdtCapital.Text);
if (EdtMontante.Text <> '') then
Montante := StrToFloat(EdtMontante.Text);
// Verifica se eh calculo do montante
if EdtMontante.Text = '' then
begin
// Calcula Montante
//---> exp(ln(x)*y) ==> x elevado a y
Montante:=Capital*(exp(ln((1+(Taxa/100)))*Tempo));
// Exibe Resultado
EdtMontante.Text := FloatToStr(Montante);
end;
// Verifica se eh calculo do capital
if EdtCapital.Text = '' then
begin
// Calcula Capital Inicial
Capital := Montante / (exp(ln((1+(Taxa/100)))*Tempo));
// Exibe Resultado
EdtCapital.Text := FloatToStr(Capital);
end;
// Verifica se eh calculo de tempo
if EdtTempo.Text = '' then
begin
// Calcula Tempo
Tempo := ((ln(Capital/Montante))/(ln((1+(Taxa/100)))))*-1;
// Exibe Resultado
EdtTempo.Text := FloatToStr(Tempo);
end;
// Verifica se eh calculo de taxa
if EdtTaxa.Text = '' then
begin
// Calcula Taxa
Taxa := 100*((exp(ln(Montante / Capital)*(1/Tempo)))-1);
// Exibe Resultado
EdtTaxa.Text := FloatToStr(Taxa);
end;
// Calcula Juros e Exibe na tela
EdtJuros.Text := FloatToStr(Montante-Capital);
// Se der algum erro exibe um alerta com a mensagem
except on e:exception do
ShowMessage(E.Message);
end;
end;


Salve o projeto e pressione F9 para compilar e executar.

De teste, segui os mesmos passos no Delphi e funcionou também, adicionei os campos com os mesmos nomes, CTRL+C CTRL+V no código, compilei e funcionou, então se você quiser fazer no Delphi sinta-se a vontade, a linguagem é a mesma e o Lázarus é muito semelhante ao Delphi 7, eu testei no 2007 que já muda um pouco a posição dos componentes.

Até.

sábado, 24 de outubro de 2009

Criação de um Sistema para Controle de Viagens no Delphi com Firebird

Olá pessoal, este é um resumo/tutorial da criação de um sistema para controle de Viagens feito durante as aulas de Programação Comercial do prof. Fauzi Shubeita, durante o desenvolvimento serão usados as ferramentas Case Studio 2.25, IB Expert, Delphi 2007 e o Banco de Dados Firebird 1.5, ele está dividido em duas partes, nesta primeira vamos modelar e criar o banco de dados, na segunda parte será o desenvolvimento no Delphi, talvez não tudo, mas o principal.

Sobre as ferramentas utilizadas:

Case Studio: utilizado principalmente para modelagem de banco de dados, permite a criação de Diagramas de Fluxo de Dados e Diagramas de Entidades e Relacionamentos, tem suporte aos principais banco de dados relacionais. Mais Informações.

IB Expert: segundo Wikipedia, "O IB Expert é um poderoso gerenciador de banco de dados que permite realizar todas as tarefas necessárias para o suporte e manutenção do banco tanto local como remotamente. Com ele é possível administrar o banco criando tabelas, modificando campos, índices, executando scripts SQL e outras funções. O IB Expert realiza a geração do modelo de entidade relacionamento para bancos de dados Interbase e Firebird.". Mais informações e link para download da versão Costumer.

Delphi: segundo próprio site do desenvolvedor, Embarcadero: "Delphi é um dos mais respeitados e amplamente utilizado ambiente Rapid Application Development (RAD). Mais de 1,7 milhões de desenvolvedores em todo o mundo escolheram o Delphi sobre outras ferramentas porque Delphi muda radicalmente as velocidades de trabalho em desktop, workstation, touch, kiosk, e desenvolvimento de aplicações Web sem sacrificar muito tempo de programação ou controle. Os aplicativos criados com o Delphi são rápidos, compacto, fornecem interfaces (UIs) ricas e podem conectar-se a praticamente qualquer fonte de dados ou dados "out-of-the-box". Atualmente já temos a versão 2010, mas neste tutorial estaremos utilizando a 2007.

Firebird: é um banco de dados relacional muito utilizado por ser leve, rápido e de fácil utilização, também roda no Linux, Windows e plataformas Unix. Mais Informações, download Baixaki.

Obs.: Neste resumo não mostrarei passos de como instalar os softwares, apenas utilizar.


REQUISITOS FUNCIONAIS

1- Cadastro de Passageiros
2- Cadastro de Cidades
3- Cadastro de Locais Turísticos por Cidade
4- Cadastro de Veículos (onibus,van...)
5- Cadastro de Guias
6- Cadastro Viagem - data saída, chegada, dias.
7- Cadastro de Pasageiros por viagem.

REQUISITOS NÃO FUNCIONAIS

1- Cálculo de totais pagos por passageiro por viagem
2- Cálculo de tempo em dias
3- Pesquisar por nome de passageiro


Primeiramente faremos a modelagem do banco no Case Studio, ao abrir, selecione Banco Firebird, seguindo os requisitos chegamos ao seguinte diagrama ER no Case Studio. Clique nas imagens para visualizar melhor, se precisar.



Com o DER pronto, vamos gerar o Script SQL, para isso, pressione a tecla F9 para abrir uma janela pedindo onde você quer salvar o arquivo e o que pretende gerar, o ideal é que você crie um diretório com o nome "viagem", por exemplo, e coloque ali tudo que for referente a este sistema, começando com este diagrama, veja imagem abaixo.



Ele deve ter gerado algo parecido com isso.
/*
Created 6/10/2009
Modified 24/10/2009
Project
Model
Company
Author
Version
Database Firebird
*/


Create Table "PASSAGEIROS" (
"IDENTIDADE" Char(10) NOT NULL,
"NOME" Varchar(100),
"DTANASC" Date,
Primary Key ("IDENTIDADE")
);

Create Table "CIDADES" (
"CIDADE" Integer NOT NULL,
"CEP" Char(8) NOT NULL,
"NOME" Varchar(50),
"UF" Char(2),
Primary Key ("CIDADE")
);

Create Table "PONTOSTURISTICOS" (
"PONTO" Integer NOT NULL,
"CIDADE" Integer NOT NULL,
"DESCRICAO" Varchar(300),
"VALOR" Decimal(5,2),
Primary Key ("PONTO")
);

Create Table "VEICULOS" (
"PLACA" Char(7) NOT NULL,
"DESCRICAO" Varchar(50),
"NLUGARES" Integer,
"ESTRELAS" Integer,
Primary Key ("PLACA")
);

Create Table "GUIAS" (
"GUIA" Integer NOT NULL,
"NOME" Varchar(50),
Primary Key ("GUIA")
);

Create Table "VIAGENS" (
"VIAGEM" Integer NOT NULL,
"DTASAIDA" Date,
"DTACHEGADA" Date,
"NDIAS" Integer,
"VALOR" Decimal(5,2),
Primary Key ("VIAGEM")
);

Create Table "PASSAGEIROSVIAGEM" (
"IDENTIDADE" Char(10) NOT NULL,
"VIAGEM" Integer NOT NULL,
"STATUSPAGTO" Char(3),
Primary Key ("IDENTIDADE","VIAGEM")
);

Create Table "LOCAISVIAGEM" (
"VIAGEM" Integer NOT NULL,
"PONTO" Integer NOT NULL,
"DTAVISITA" Date,
Primary Key ("VIAGEM","PONTO")
);

Create Table "GUIASVIAGEM" (
"GUIA" Integer NOT NULL,
"VIAGEM" Integer NOT NULL,
Primary Key ("GUIA","VIAGEM")
);

Create Table "VIAGEMVEICULOS" (
"VIAGEM" Integer NOT NULL,
"PLACA" Char(7) NOT NULL,
Primary Key ("VIAGEM","PLACA")
);


Alter Table "PASSAGEIROSVIAGEM" add Foreign Key ("IDENTIDADE") references "PASSAGEIROS" ("IDENTIDADE") on update no action on delete no action ;
Alter Table "PONTOSTURISTICOS" add Foreign Key ("CIDADE") references "CIDADES" ("CIDADE") on update no action on delete no action ;
Alter Table "LOCAISVIAGEM" add Foreign Key ("PONTO") references "PONTOSTURISTICOS" ("PONTO") on update no action on delete no action ;
Alter Table "VIAGEMVEICULOS" add Foreign Key ("PLACA") references "VEICULOS" ("PLACA") on update no action on delete no action ;
Alter Table "GUIASVIAGEM" add Foreign Key ("GUIA") references "GUIAS" ("GUIA") on update no action on delete no action ;
Alter Table "PASSAGEIROSVIAGEM" add Foreign Key ("VIAGEM") references "VIAGENS" ("VIAGEM") on update no action on delete no action ;
Alter Table "LOCAISVIAGEM" add Foreign Key ("VIAGEM") references "VIAGENS" ("VIAGEM") on update no action on delete no action ;
Alter Table "GUIASVIAGEM" add Foreign Key ("VIAGEM") references "VIAGENS" ("VIAGEM") on update no action on delete no action ;
Alter Table "VIAGEMVEICULOS" add Foreign Key ("VIAGEM") references "VIAGENS" ("VIAGEM") on update no action on delete no action ;

Bom, agora vamos verificar se o Firebird está instalado e rodando, para isso vá até o Painel de Controle e procure por "Firebird 1.5 Server Manager", de um duplo clique sobre e verifique, conforme imagem abaixo, se não estiver instalado já sabe -> instale ele.



Com o script SQL pronto e o Firebird rodando, vamos efetivamente criar o banco de dados, abra o IB Expert e no menu "DataBase", clique em "Create DataBase" para criarmos e registramos nosso banco neste excelente gerenciador :D.

Na janela que abriu, selecione que o servidor é local, na parte de DataBase selecione o diretório em que deseja criar o banco de dados, pode ser o mesmo que está o DER, de um nome para o banco, pode ser "bdViagem" e selecione o tipo .gdb, veja imagem abaixo.



Nesta mesma janela configuramos o Username é SYSDBA e senha é masterkey, selecione dialeto 3 no SQL Dialect. O Page size é o tamanho máximo que cada tabela poderá suportar, segundo professor Fauzi 4096 fica em torno de 1 GB, no Charset selecione WIN1252 para ter suporte a acentuação, mais imagens para ilustrar e ninguém se perder.



Clique em OK, ele abrirá uma nova janela onde selecionaremos a versão do Servidor, nosso caso Firebird 1.5, e preencheremos o Alias como "VIAGEM".



Clique em Register para registrar e pronto, se clicar duas vezes sobre o banco que apareceu na aba databases no lado esquerdo, ele vai conectar ao BD. Agora temos que executar o Script que geramos antes, para isso abra o SQL Editor no menu Tools e cole parte por parte do Script SQL gerado no Case Studio ou então use o Script Executive (CTRL+F12) para executar tudo de uma vez, é preciso marcar a opção Use current connect, depois F9 para executar.



Pronto, temos nossa base de dados Firebird rodando, para testar pode inserir alguns registros nela através do IB Expert, abra alguma tabela e procure por uma aba chamada Data (Dados) e cadastre.

Agradeço ao Gustavo Klaus que me encaminhou os requisitos, valeu!

Link para segunda parte, tela de manutenção no Delphi.

Até!!