A Lógica de Programação - Aplicação de Algoritmos

No artigo anterior vimos o que é um algoritmo, sua definição e que ele tem sempre um começo, meio e fim. Neste artigo discutiremos um pouco sobre lógica de programação e formas de se representar um algoritmo.

Lógica de Programação
(Foto: Jack Moreh / StockVault)

Lógica é um conceito abstrato. É algo que não se aprende e nem se ensina, mas, se desenvolve. É a ciência que estuda as leis e critérios de validade que regem o pensamento e a demonstração (Manzano e Oliveira, 2005).

Para se criar bons algoritmos, é preciso ter uma boa lógica de programação. E desenvolvemos uma boa lógica de programação através da prática e através do raciocínio lógico, no qual podemos criar algoritmos com especificações claras de passos a serem seguidos para se resolver um problema. Pois, a lógica de programação é o uso correto das leis do pensamento para se desenvolver programas que solucionem problemas de maneira eficiente e eficaz. Você pode ler também sobre as leis do pensamento lendo o artigo Lógica Proposicional - Introdução.

O Raciocínio Lógico

Pessoas agem e pensam de formas diferentes, por isso também têm um raciocínio lógico diferente. Vejamos um exemplo:

João possui 10 bolinhas, todas visualmente iguais, porém, uma única bolinha pesa mais que as outras. João também possui uma balança e deseja saber qual é a mais pesada.

Utilizando o raciocínio lógico:
  • João poderia colocar uma bolinha em cada lado da balança até achar a mais pesada.
  • João poderia colocar duas bolinhas em cada lado da balança, pegar as que desceram um lado da balança e pesá-las novamente até achar a mais pesada.
  • João poderia colocar 5 bolinhas em cada lado, pegar o lado mais pesado e redistribuí-las na balança e eliminar o lado mais leve e fazer isso sucessivamente até achar a mais pesada.

Todas essas formas de resolver o problema são diferentes, talvez você leitor ainda imagine outra forma. Isso porque lógica é individual e cada um tem a sua maneira de pensar e resolver problemas, mas todos devem chegar ao mesmo resultado. O importante, é que o segredo de uma boa lógica está na compreensão adequada do problema a ser solucionado e independente das soluções serem diferentes, o que nos interessa é ambas convergirem para um bom resultado.

Um mesmo raciocínio pode ser expresso em qualquer um dos inúmeros idiomas existentes, mas, continuará representando o mesmo raciocínio, usando apenas outra convenção (Forbellone e Eberspächer, 2005). Da mesma forma uma lógica de programação pode ser representada em várias linguagens de programação diferentes, mas há detalhes computacionais de cada linguagem, que fogem um pouco do raciocínio original. Por isso utilizamos os algoritmos.

Representação de um Algoritmo

Podemos representar um algoritmo de maneira descritiva, como fizemos no artigo o que é um algoritmo, representar de maneira gráfica ou em pseudocódigo. Considere um algoritmo para receber três notas de um aluno e calcular e exibir a sua média.

Descritiva

  1. Receber as três notas
  2. Somar as três notas
  3. Dividir o resultado por três
  4. Apresentar a média

A maneira descritiva nos oferece a resolução de um problema na linguagem natural. A vantagem é que se utiliza a linguagem natural que todos nós já conhecemos. E a desvantagem é que a linguagem natural abre espaço para diferentes interpretações, sendo que não pode haver ambiguidade nas instruções que um computador deve executar.

Fluxograma

Fluxograma
Cálculo da média

Esse é um algoritmo em forma de fluxograma.

O significado de cada símbolo será explicado em um artigo a parte. Mas é importante saber que início e fim são símbolos terminais, o retângulo indica processamento, a figura em forma de lápis é um "escreva, imprima, exibe", ou seja, é uma saída e o símbolo em forma de teclado é entrada manual.

A vantagem do fluxograma, é que ele é visualmente mais limpo para entender o fluxo de informação. E a desvantagem é o tempo que se perde para elaborá-lo.

Diagrama de Chapin


Inicio
Leia n1, n2, n3
media = (n1 + n2 + n3)/3
Escreva media
Fim


É uma forma de se representar um algoritmo também. Mas possui suas limitações, como representar um algoritmo recursivo. Recursividade será um assunto abordado mais a frente em um artigo a parte.

Pseudocódigo

  1. Algoritmo "calculaMedia"
  2. var
  3.   n1, n2, n3, media: real
  4. Inicio
  5.   escreva("Informe a primeira nota: ")
  6.   leia(n1)
  7.   escreva("Informe a segunda nota: ")
  8.   leia(n2)
  9.   escreva("Informe a terceira nota: ")
  10.   leia(n3)
  11.   media = (n1 + n2 + n3)/3
  12.   escreva(media)
  13. Fimalgoritmo
O pseudocódigo é uma forma interessante de representarmos um algoritmo, porque se aproxima da linguagens de programação mas que não se prende a sintaxe delas.

Praticamente o nosso programa está recebendo valores numéricos do tipo real a partir do teclado, armazenando em variáveis, realizando um cálculo aritmético e armazenando o resultado em uma outra variável chamada media. Após isso, exibe o valor da variável media para o usuário. No próximo artigo, aprenderemos o que são variáveis e os tipos primitivos de dados que o computador trabalha.

O que você aprendeu

Neste artigo vimos como podemos aplicar um algoritmo para se resolver um problema através de diferentes representações. Especificamente vimos:
  • Raciocínio lógico.
  • Representação de um algoritmo.
  • Formas de se representar um algoritmo.


Referência Bibliográfica
MANZANO, J. A. N. G.; OLIVEIRA, J. F. Algoritmos: lógica para Desenvolvimento de Programação de Computadores. 17. ed. São Paulo: Érica, 2005. 219 p.

FORBELLONE, A. L. V.; EBERSPÄCHER, H. F. Lógica de programação: a construção de algoritmos e estrutura de dados. 3. ed. São Paulo: Prentice Hall, 2005. 208 p.


Para citar esse artigo:

Comentários