1. Lógica de Programação
Lógica:
A palavra lógica vem do grego Logos e significa razão, pensamento. O pai da lógica é o filósofo
Aristóteles, ele chamou sua lógica de “silogismo”, que significa ligação. Ele deu esse nome porque
a lógica trata da ligação formal dos juízos feito pelo pensamento. Seus textos sobre lógica foram
escritos em sua obra “Primeiros Analíticos”. O silogismo é uma forma de análise que procura
decompor em partes os argumentos e as proposições de um argumento e seus termos. Mais tarde
o conjunto de seus escritos silogísticos foi chamado de Organon, palavra grega que significa
“instrumento”. A lógica, portanto, é um instrumento para se pensar corretamente.
“Ciência que estuda as formas do pensamento,
Correção do pensamento ou correção do raciocínio,
Arte do bem pensar,
Ordem no pensamento.”
Sempre que pensamos a lógica nos acompanha.
Um bebê sabe que precisa chorar para receber atenção.
Um casal com 3 filhos notou que um vaso estava quebrado, enquanto 2 das crianças estavam na
escola.
Quem é o culpado?
A gaveta está fechada. A caneta está dentro da gaveta.
Precisamos primeiro abrir a gaveta para depois pegar a caneta.
O pensamento (e a lógica) pode ser expresso através da palavra falada ou da palavra escrita.
Um mesmo pensamento pode ser expresso em inúmeros idiomas, tanto oralmente quanto por
escrito.
Vamos estudar uma forma única de representação.
____________________________________________________________________________
Exercício
Em um torneio de atletismo, Barnabé, Gumercindo e Teodoro participaram das provas de 100
metros rasos, salto em distância e arremesso de dardo. Cada um deles conseguiu um primeiro
lugar, um segundo lugar e um terceiro.
Descubra o que cada um conquistou, sabendo que:
Gumercindo venceu Barnabé no salto em distância;
Teodoro chegou atrás de Gumercindo no arremesso de dardo;
Barnabé não chegou em primeiro nos 100 metros rasos.
2. O que é Algoritmo?
É o conjunto de regras necessárias para resolução de um problema ou cálculo; processo
computacional bem definido, baseado num conjunto de regras, finito, que executa uma determinada
tarefa.
É o pensamento descrito como uma sequência de passos que visam atingir um objetivo.
Algoritmos no dia-a-dia: Receita de bolo, orientação para se chegar em algum endereço.
3. Pseudo Linguagem
Consiste em representar textualmente os passos envolvidos na resolução do problema.
Para evitar ambiguidade, utiliza-se de um conjunto de regras que visam restringir e estruturar o uso
do português na representação dos algoritmos. Aproxima-se muito do código fonte de linguagens
de programação reais.
Classificação por implementação (ato ou efeito de implementar. É sinônimo
de efetivação, execução e realização.)
Pode-se classificar algoritmos pela maneira pelo qual foram implementados.
Recursivo ou iterativo - um algoritmo recursivo possui a característica de invocar a si mesmo repetidamente
até que certa condição seja satisfeita e ele é terminado, que é um método comum em programação funcional.
Algoritmos iterativo usam estruturas de repetição tais como laços, ou ainda estruturas de dados adicionais
tais como pilhas, para resolver problemas. Cada algoritmo recursivo possui um algoritmo iterativo equivalente
e vice versa, mas que pode ter mais ou menos complexidade em sua construção.
Lógico - um algoritmo pode ser visto como uma dedução lógica controlada. O componente lógico expressa
os axiomas usados na computação e o componente de controle determina a maneira como a dedução é
aplicada aos axiomas. Tal conceito é base para a programação lógica.
Serial ou paralelo - algoritmos são geralmente assumidos por serem executados instrução à instrução
individualmente, existem algoritmos executados paralelamente, que levam em conta arquiteturas de
computadores com mais de um processador para executar mais de uma instrução ao mesmo tempo.
Determinístico ou não-determinístico - algoritmos determinísticos resolvem o problema com uma decisão
exata a cada passo enquanto algoritmos não-determinísticos resolvem o problema ao deduzir os melhores
passos através de estimativas sob forma de heurísticas.
Exato ou aproximado - enquanto alguns algoritmos encontram uma resposta exata, algoritmos de
aproximação procuram uma resposta próxima a verdadeira solução, seja através de estratégia determinística
ou aleatória. Possuem aplicações práticas sobretudo para problemas muito complexos, do qual uma resposta
correta é inviável devido à sua complexidade computacional.