sexta-feira, 16 de agosto de 2013

Lógica de Programação

Introdução

Bem, este é meu primeiro post, e acredito que diante da proposta de apresentar um conteúdo todo voltado à programação de sistemas (algoritmos, metodologias de desenvolvimento, tecnologias e linguagens de programação), penso que deveria começar falando do mais trivial em se tratando do assunto: Lógica de Programação.

Desenvolvimento

A lógica faz parte do cotidiano do homem em quase todas as tarefas que desempenhamos comumente. Em casa, no trabalho, na escola, ao preparar o almoço, ao escovar os dentes e tudo o mais. Também é uma das características mais importantes da espécie humana o que evidentemente nos distingui de todo os outros animais da natureza, essa capacidade lúcida de atribuir significado ao mundo e a partir daí, extrair e construir deduções lógicas.

A lógica de programação é uma parte importantíssima no processo de construção de qualquer software, diz respeito à elaboração - de forma conceitual - da melhor maneira para se atingir determinado resultado, entenda-se por “melhor maneira”, o conjunto de passos coerentes e em ordem planejada para se resolver um problema proposto, a esta definição atribuímos também o nome de algoritmo.

Um algoritmo nada mais é do que esta “receita de bolo” que todo programador precisa desenvolver antes mesmo de qualquer linha de código. Uma definição muito conhecida para algoritmo seria: “Uma seqüência não ambígua de instruções que é executada até que determinada condição se verifique”. No sentido da definição, uma instrução “não ambígua” se refere a uma instrução que não permite uma segunda interpretação, ou seja, excluso de um segundo sentido, significado. A forma mais conhecida para se representar um algoritmo é o fluxograma.

Um Fluxograma é a representação visual de toda a seqüência de passos que devem ser realizados para desenvolver determinada tarefa. Para se trabalhar com fluxogramas é necessário o conhecimento do que chamamos de “Desvio condicional” e “Laço de repetição”.

O Desvio condicional é o trecho do algoritmo que faz um teste durante a execução do programa, e com base no resultado desse teste é realizado um desvio no fluxo,daí o nome de “desvio condicional”. Para construção de um desvio condicional é utilizada a estrutura:

SE <teste da condição> ENTAO
    <código a ser executado caso condição seja verdadeira>
SENAO
    <código a ser executado caso condição seja falsa>
FIM

Para os laços de repetição existem três tipos básicos de implementação, são eles: Laço com teste antes da execução, Laço com teste depois da execução e Laço com uma quantidade determinada de repetições. Os laços com teste antes da execução possuem a seguinte estrutura:

ENQUANTO <teste da condição> FAÇA
    <código a ser executado>
FIM ENQUANTO

Os laços com teste depois da execução possuem a seguinte estrutura:

FAÇA
    <código a ser executado>
ENQUANTO <teste da condição>

O laço de repetição mais adequado para implementação vai depender da necessidade do algoritmo, para determinados algoritmos é necessário realizar um teste antes de se executar qualquer tarefa, nesse caso seria o laço com teste antes da execução, da mesma forma algumas vezes necessitamos que o código seja executado pelo menos uma vez antes de realizarmos o teste, neste caso o laço mais indicado seria o laço com teste após a execução, assim executa-se o código e se a condição for verdadeira torna a executar o código até que a condição retorne falsa e o programa retorne para o fluxo normal de execução.

Por fim, temos o laço com uma quantidade definida de repetições. Esse tipo de laço esta sempre acompanhado de uma variável chamada de “contador”. O contador é quem controla o numero de repetições que o laço irá executar. Sua estrutura é apresentada a seguir:

PARA CONTADOR = 1 ATÉ CONTADOR <= 10 FAÇA
    <código a ser executado>
PROXIMO CONTADOR

No exemplo acima, para cada execução do código o contador é acrescido de +1 e será executado pelo menos 10 vezes, pois quando o contador chegar a 10 irá executar mais uma única vez e então passará ater um valor 11, retornando assim falso no teste de CONTADOR <=10.

Abaixo apresento um exemplo de fluxograma estruturado para representar um laço de repetição no qual imprimimos a palavra “teste” até que um contador seja menor que ou igual a 10. Segue:



Perceba que esta é a representação visual na forma de algoritmo do modelo de repetição ou laço onde utilizamos um contador para controlar o numero de iterações, no caso acima a variável CONT. O processo CONT ++ significa exatamente o processo de incremento e equivale a CONT = CONT + 1, afim de que o contador possa crescer e se aproximar do valor máximo que no caso é 10.

Finalizando

Neste post vimos, ainda que superficialmente mas direto ao ponto, conceitos bem fundamentais de lógica de programação, algo realmente para iniciantes. Espero que este texto possa ajudar e servir como ponto de partida para um aprofundamento maior no tema. No meu próximo post irei conversar um pouco sobre Lógica Orientada a Objetos, vantagens da metodologia, o que mudou com a relação à lógica tradicional e quais linguagens dentre as mais conhecidas a implementam. Gostaria de deixar aqui minha indicação para um ótimo curso de Lógica de Programação que é disponibilizado gratuitamente pela empresa Softblue de treinamentos online, lá você poderá encontrar um vasto conteúdo relacionado ao tema. Muito bom e eu recomendo. Abraço e fiquem com Deus.

Nenhum comentário:

Postar um comentário