Lógica e algoritmos!
Bom dia, boa tarde, boa noite!
Recentemente escrevi esse texto que irá ler, mas focado pra minha empresa/equipe. Mas, decidi re-adaptar pra cá, deixando público =D
A ideia foi trazer conceitos sobre lógica e algoritmos, pra quem não necessariamente seja DEV (tentei), trazendo um resumo de vários outros textos/artigos e também no fim indico alguns links se quiserem ler mais sobre.
Espero que tirem bom proveito!
Lógica: definições e conceitos:
Nós definimos como lógica de programação a técnica de encadear pensamentos para atingir determinado objetivo. Lógica de programação é a maneira como organizamos nossos pensamentos para conseguirmos executar determinada tarefa, resolver algum problema, etc.
O que é um algoritmo?
É a especificação de uma sequência ordenada de instruções, finitas e não-ambíguas, que deve ser seguida para a solução de um determinado problema, garantindo a sua repetibilidade.
Um algoritmo não se limita a códigos ou relacionados à tecnologia, temos algoritmos no dia a dia, em receitas culinárias, manuais de instrução, roteiros pra realização de tarefas, etc.
Um algoritmo deve ser:
Completo: todas as ações precisam ser descritas e devem ser únicas
Sem redundância: um conjunto de instruções só pode ter uma única forma de ser interpretada.
Determinístico: se as instruções forem executadas, o resultado esperado será sempre atingido;
Finito: as instruções precisam terminar após um número limitado de passos.
Exemplo de um algoritmo:
Formas de representação dos algoritmos:
- Descrição narrativa:
- Pegar o pacote de bolacha;
- Abrir a embalagem;
- Comer as bolachas;
- Jogar a embalagem na lixeira; - Fluxograma:
É uma representação gráfica em que formas geométricas diferentes implicam em ações (instruções, comandos) distintos.
O fluxograma utiliza símbolos específicos para a representação gráfica dos algoritmos. Os símbolos podem sofrer algumas variações de acordo com o autor ou ferramenta em uso. - Pseudocódigo:
Dou esse mesmo exemplo em outro momento do texto:
idade = 19;
Se idade ≥ 18
Fale “Eba, você pode tirar a carteira!”
senão
Fale “Deu ruim, não vai rolar!”
Constantes e variáveis
O que é uma constante?
Uma constante armazena um valor fixo que NÃO mudará com o tempo de execução do programa. Um exemplo de constante, seria o número de PI 3,1415926, esse número é imutável.
O que é uma variável?
É uma entidade destinada a guardar uma informação (é o que já conhecemos), não é um valor fixo e pode ser alterado a qualquer momento, dependendo do escopo. Ao alterar o conteúdo de uma variável, a informação anterior é perdida. Ou seja, a variável armazena sempre a última informação recebida.
Operadores lógicos
Negação: quando incluímos o “diferente de”
Ex: O DDD do telefone do cliente é diferente de 41?
dddCliente != 41
ou
!isSummer
// essa segunda opção seria como “é diferente de verão?” ou “essa afirmação é diferente de true?”, nas linguagens de programação é possível fazer esse tipo de validação quando é true ou false, sem comparar diretamente igual o primeiro algoritmo mostrado
Conjunção (&&): quando incluímos o “e”
Ambas as afirmativas precisam ser verdadeiras
dddCliente == 41 && diaHoje == 01
Se um for falso, a afirmação toda será falsa.
Se os dois forem verdades, a afirmação será verdadeira
Disjunção ( || ): quando incluímos o “OU”
diaHoje == 01 || diaHoje == 15
Se um for verdade e o outro falso, a afirmação será verdadeira
Se os dois forem falsos, a afirmação será falsa.
Operadores relacionais
São utilizados para comparar valores entre variáveis e expressões, o retorno dessa comparação é sempre um valor do tipo booleano (verdadeiro/falso);
Esses operadores são os que já conhecemos:
Igual ==
Maior >
Maior ou igual >=
Diferente !=
Menor <
Menor ou igual <=
Por exemplo, vamos construir um algoritmo pra descobrir se o usuário pode tirar carteira de motorista:
Idade = 19;
Se idade >= 18
Fale “Eba, você pode tirar carteira!”
senão
Fale “Deu ruim, não vai rolar!”
Considerações Finais
É super importante o estudo de algoritmos e lógica mesmo que você não seja desenvolvedor, não por regra, mas pelo simples fato que vai abrir sua mente pra trabalhar no dia a dia, na relação com o projeto que está tocando. Começaremos a pensar em possibilidades diferentes, se as situações B que podem ser afetadas se as situações A forem mexidas, e conhecer além do escopo que está mexendo e aprender um contexto maior. Isso vai ajudar a longo prazo.