Neo traderBot

Neo traderBot

Você sabia?

A NeoTraderBot é a primeira comunidade aberta no Brasil com foco em compartilhar informações sobre automatização de estratégias

Curso Básico – Lógica de Programação

Aula 01 – Conceitos básicos

Leitura estimada: 7 minutos 898 views

Nesta aula abordaremos as definições básicas de programação.

Se cheguei até aqui foi porque me apoiei no ombro dos gigantes.

Isaac Newton
Reproduzir vídeo

1. Introdução

Programação está se tornando (se já não for) um pré-requisito para qualquer pessoa do século 21. Cada dia que passa mais e mais de nossas atividades cotidianas e trabalhos são facilitados com a ajuda de softwares ou até inteiramente automatizadas por eles.

Ao contrário do que muita gente pensa, programação não é um bicho de sete cabeças! Se fosse fazer uma comparação, diria que é como aprender um idioma diferente, mas talvez seja até mais simples. Para os computadores não existe subjetividade…ou é ou não é… ou é zero ou é um!

Como tudo na vida (e Newton já sabia disso…), o conhecimento precisa ser construído de forma incremental para que com o tempo possamos compreender assuntos mais complexos. Assim, pretendo apresentar a você os conceitos básicos de programação sem os formalismos do meio acadêmico. Isto é um ponto de partida e o objetivo é que você entenda as ideias! Falarei sobre todos os conceitos básicos? Não, pois tem muito conceito! Contudo, falarei sobre o que você precisa saber neste momento para iniciar sua jornada de aprendizado. Conte comigo e com a comunidade para tirar suas dúvidas por meio do nosso fórum ou dos demais canais.

Então comecemos pelo começo, é claro! E ele inicia com o conceito de ALGORITMO 

2. O que são Algoritmos?

A noção de algoritmo foi identificada formalmente pela primeira vez na tradução de trabalhos de um matemático persa do século XII. Fique tranquilo porque não vamos aprofundar na história do desenvolvimento humano! Queria apenas ressaltar que o conceito de algoritmo surgiu quando não existia sequer a ideia de computadores e, no entanto, é amplamente empregado na área de computação.

Para ser objetivo, um ALGORITMO é uma sequência finita de ações que visam resolver um problema. Esta sequência de ações deve ser PRECISA (dizer exatamente o que precisa ser feito), não pode ser ambígua (não pode haver dúvidas sobre o que cada ação significa), CORRETA (deve resolver o problema) e, de preferência, EFICIENTE (quanto menos ações ou recursos forem exigidos para resolver o problema, melhor!).

Vamos a um exemplo clássico para você não esquecer: uma receita de bolo é um algoritmo! Veja bem…a receita começa dizendo o que você precisa (quais recursos são necessários) e, em seguida, te orienta passo a passo o que fazer com cada ingrediente para ao final obter um bolo.

Outro exemplo seria se alguem te parasse no meio da rua e te perguntasse onde fica determinada loja, você certamente responderia com um algoritmo: siga esta rua, vire à direita no 3º quarteirão, pega a esquerda na próxima rotatória, a loja está no lado direito da rua.

Acho que você já entendeu o que é um algoritmo e naturalmente está pensando que existem algoritmos simples, como os exemplos que dei, mas também existem algoritmos complexos, quando os problemas a serem resolvidos são mais dasafiadores. É verdade, mas a forma como são escritos os algoritmos é sempre a mesma.

Não existe um padrão único de como escrever um algoritmo e cada livro adota um padrão mais conveniente. No entanto, todos os padrões atendem a definição que vimos. Vamos ver um exemplo de algoritmo? Veja abaixo:

				
					Algoritmo calibrarPneusDoCarro:
para i := 1 até 4 passo 1:
início:
   enquanto Pneu_i.obterPressao() <= 30:
   inicio:
      Pneu_i.adicionarPressao(1 psi);
   fim;
fim;

				
			

O algoritmo calibrarPneusDoCarro é um exemplo muito simples. Ele começa pelo primeiro pneu do carro (linha 2, i =1) e enquanto a pressão do pneu for menor que 30 psi, é adicionado 1 psi ao pneu (linha 6) até que o presente pneu tenha pressão igual a 30 psi. Daí, o algoritmo passa para o próximo pneu e repete o processo até que os 4 pneus estejam com pressão igual a 30.

3. Estruturas de Dados

No Globo Repórter de hoje...

 

Se tem algo que não podemos deixar de falar quando falamos sobre algoritmos são as ESTRUTURA DE DADOS. As estruturas de dados são mecanismos para armazenar etapas e resultados intermediários ao longo da execução do algoritmo, ou até mesmo a solução final do problema.

Vamos deixar isso mais claro…Se eu te pedisse para me dizer o resultado da soma dos números de 1 a 10 e você não lembrasse da fórmula de somatório de PA (Progressão aritmética), você iria possivelmente começar somando 1 com 2 e memorizando o número 3. Em seguida, somaria 3 com 3, e memorizaria o número 6, seguiria esse processo iterativamente até o número 10 e chegaria ao resultado da soma que é 55.

Perceba neste exemplo que você precisou manter sempre em sua memória uma soma intermediária até chegar à última operação. Este resultado intermediário é uma estrutura de dados muito simples, é apenas um número inteiro. Mas as estruturas de dados podem ser tão complexas quanto sejam necessárias para resolver um problema. Em cursos de computação, todos os alunos aprendem estruturas de dados como vetores, matrizes, listas, filas, pilhas, árvores, grafos… Mas para começar a automatizar estratégias de negociação você não precisará saber sobre tudo isso. Com o tempo e necessidade, você irá acabar estudando mais a fundo as estruturas de dados. Por enquanto, vamos manter simples e complicar à medida que for preciso.

4. Linguagem de Programação

Como vimos até agora, os algoritmos e estrutura de dados existem independentemente da linguagem de programação e este é o conceito que abordaremos agora. O que é linguagem de programação? Senta que lá vem um pouco de história…mas espero que seja interessante para você!

Linguagem de programação é a forma pela qual você se comunicará com o seu computador. O computador é extremamente veloz, consegue guardar muita informação…mas tem um problema…ele só faz o que você ordena ele fazer!

No início da computação, as linguagens eram muito rudimentares, ou em termos mais técnicos, de baixo nível. Isso significa que o programador precisava transcrever seus algoritmos em uma sequência de 0 e 1, no que denominamos código de máquina. Tipo isso:

				
					0000101110101110111000011101100001101110101000110101101101101001010 
1011010101.....e por aí vaí milhares de zeros e uns.
				
			

Eram tempos difíceis para a comunicação homem-máquina…ainda bem que a tecnologia permitiu o incremento do poder de processamento dos computadores e a sua capacidade de memória. Com o tempo vieram os cartões perfurados, depois começaram a surgir linguagens que permitiam comandos em palavras de 3 letras, tipo: ADD (soma), MOV (move um número de uma posição de memória para outra), STO (grava isso na memória), etc. E de forma gradativa, a computação foi evoluindo para chegar nas linguagens de alto nível, que são as linguagens que temos contato hoje!

Intitulamos as linguagens de alto nível aquelas linguagens que nos permitem abstrair do que realmente acontece dentro do computador…ou seja não utilizamos comandos muito primitivos, como aqueles zeros e uns ou comandos com três letras…Em analogia, é como pedir para você escrever o seu nome numa folha…eu não precisaria te dizer letra a letra e como fazer cada letra para escrevê-lo. Eu simplesmente peço, escreva seu nome e você o fará de uma forma que eu não preciso saber como.

Tem muitas linguagens diferentes, elas podem ter propósito geral, tais como Pascal, Java, C, C++, Pyhton etc, com as quais você pode fazer qualquer tipo de programa, ou pode ser desenvolvida para um fim específico, por exemplo, renderizar as páginas que você acessa na internet (HTML).

5. Código fonte, Síntaxe e Compilador

O que os algoritmos têm a ver com as linguagens de programação? Ora, a gente como programador precisa transcrever os passos do algoritmo para uma linguagem que o seu computador entenda. E cada linguagem tem uma sintaxe (forma como escrevemos) bastante rígida! Não podemos escrever diferente da sintaxe esperada porque o computador não vai entender!

Assim, o texto transcrito a partir do nosso algoritmo para uma linguagem de programação é o que chamamos de CÓDIGO FONTE. Espero que esteja entendendo até aqui….já estamos finalizando os conceitos básicos que precisa saber sobre programação.

Depois que transcrevemos o nosso algoritmo de acordo com a sintaxe da linguagem de programação, geralmente existe um programa chamado COMPILADOR que irá traduzir os seus comandos de alto nível para uma sequencia de zeros e uns (código de máquina) para ser executado pelo computador!

Pense no compilador como um professor(a) que irá corrigir sua redação (seu código-fonte), mas muito rigoroso(a) ! Ele(a) só irá transformar seu código fonte em código de máquina se não houver nenhum erro de sintaxe!

Enfim, sua tarefa de programador termina quando tiver um código executável que resolva o problema que desejava. Ou não…talvez isso seja só o começo como programador!

6. Recapitulando...

Começamos com os conceitos de algoritmos e estrutura de dados. Em seguida, apresentamos o que são as linguagens de programação e como elas se relacionam com os algoritmos. Entendemos que o código fonte nada mais é do que seu algoritmo transcrito e precisa ter a sintaxe exigida pela linguagem de programação utilizada. Por fim, explicamos que o seu código fonte precisa ser compilado para um código de máquina que poderá ser executado pelo computador.

CONTENTS