Você está na página 1de 9

Lógica de Programação

Edward Boszczowski1, Jorge Augusto F. de Souza1


1Centro de Ciências Tecnológicas – Universidade do Estado de Santa Catarina (UDESC)
Caixa Postal 15.064 – 91.501-970 – Joinville – SC – Brasil
devardeb@gmail.com, jorge_f_souza@ibest.com.br

Resumo. Este artigo tem o objetivo de apresentar o conceito e representação da lógica de


programação, focado para o desenvolvimento de aplicações computacionais.

1. Introdução

Para que uma pessoa possa trabalhar com sistemas e programas, ela precisa utilizar-se de
lógica de programação. Segundo Moraes (2000), lógica de programação consiste na técnica
de encadear pensamentos para atingir determinado objetivo. Esse artigo visa demonstrar a
utilização da lógica de programação na resolução de problemas, com uma apresentação das
formas utilizadas para representá-la no capítulo seguinte.

2. Desenvolvendo a Lógica de Programação

A lógica de programação tem como função a resolução de problemas, então uma boa forma
de praticar é utilizá-la na resolução de problemas do cotidiano. Um exemplo seria retirar
um objeto de uma caixa fechada e depois fechá-la, os passos seriam abrir a caixa; retirar o
objeto de dentro da caixa; fechar a caixa. Observa-se que existe uma ordem para resolver
determinado problema: eu não poderia retirar o objeto da caixa antes de abri-la.
Vale ressaltar a importância de passar a lógica no papel para o desenvolvimento da mesma.
Como exemplo será utilizado um programa que se aprende a fazer na escola, conhecido
como Máximo Divisor Comum ou MDC:

MDC de a e b
1 se b = 0, então o MDC de a e b é a
2 caso contrário, o MDC de a e b é igual o MDC de b e o resto da divisão
de a por b

É possível não compreender a lógica acima, no entanto na escola se aprende a fazer essa
conta no caderno que não é nada mais que lógica de programação no papel. Com a prática
consegue-se fazer a conta de cabeça, ou seja, dominou a lógica daquele programa.
No último exemplo pode-se notar a utilização da instrução “se” e caso contrário (“senão”)
além da “é igual” . Essas instruções são uma das formas mais comuns de representar a
lógica de programação, que será visto logo a seguir.

3. Representando a Lógica

Com o intuito de facilitar a abstração, foram criadas estruturas para representar o


pensamento lógico tanto graficamente, como os diagramas de blocos, como na forma de
linguagem hipotética. Essas estruturas serão apresentadas nesse capítulo.
3.1 Estrutura de Decisão

A estrutura de decisão é composto por instruções que fazem com que o programa proceda
de uma ou outra maneira, de acordo com decisões baseadas em função dos dados ou
resultados anteriores. As estruturas de decisão mais utilizadas são “Se Então”, “Se Então
Senão” e “Caso Selecione”.
A estrutura “Se Então” é sucedida por um comando, se a condição é satisfeita então o
comando será executado. Como exemplo, um dado algoritmo é utilizado para determinar se
um número é par em linguagem hipotética.

SE NÚMERO/2 = RESTO 0 ENTÃO O NÚMERO É PAR


A linguagem busca aproximar a representação da lógica de programação com a linguagem
humana, facilitando a compreensão dos passos lógicos.
Agora o mesmo exemplo em diagramas de blocos:

Diagramas de blocos é uma forma eficaz de representar os passos lógicos, permitindo uma
fácil visualização do fluxo de um algoritmo. Um diagrama é composto por uma seqüência
de símbolos padronizados e bem definidos. No exemplo acima é possível observar três
deles.
Outros símbolos serão apresentados nesse artigo de acordo com o momento que eles
aparecerem.
A próxima estrutura de decisão a ser apresentada é a “Se Então Senão”. A diferença dessa
estrutura com a anterior é que um comando também é executado quando a condição não for
cumprida. Utilizando o exemplo anterior, agora caso a divisão por dois não tiver resto zero
o número em questão será ímpar.

SE NÚMERO/2 = RESTO 0 ENTÃO O NÚMERO É PAR


SENÃO O NÚMERO É ÍMPAR

Em diagrama:

A estrutura de decisão “Caso Selecione” é utilizada para comparar um resultado de uma


expressão com vários casos distintos.
O exemplo de Moraes(2000) demonstra bem essa estrutura. O algoritmo testa vários casos
da seleção de uma opção feita pelo o usuário, cada caso fará com que o algoritmo imprima
um determinado texto ou se nenhum caso for atendido o algoritmo irá imprimir outro.

CASO SELECIONE A OPÇÃO…


…COMO 1 IMPRIMIR “TÍTULO 1”
…COMO 2 IMPRIMIR “TÍTULO 2”
…COMO 3 IMPRIMIR “TÍTULO 3”
SENÃO IMPRIMIR “OPÇÃO ERRADA”

Agora em diagrama:

Nesse exemplo de diagrama, novos símbolos são utilizados.

3.2 Estrutura de Repetição


A estrutura de repetição é utilizada para que um conjunto de passos seja executado várias
vezes sendo que a quantidade pode ser definida ou indefinida ou se uma determinada
condição for alcançada. Esse item irá apresentar as estruturas de repetição “Enquanto X,
Processar”, “Até que X, Processar”, “Processar, Enquanto X” e “Processar, Até que X”.
No “Enquanto X, Processar” o processo somente ocorre enquanto a condição for
verdadeira. Já o “Até que X, Processar” é o contrário, ou seja, o processo ocorre enquanto a
condição for falsa.
A diferença das estruturas “Processar, Enquanto X” e “Processar, Até que X” é que o
processo é feito antes da condição, então mesmo que a condição não seja cumprida o
processo ocorrerá ao menos uma vez. Abaixo está o diagrama de blocos representando cada
estrutura.

4. UML

A UML é uma linguagem para a modelagem de sistemas sejam eles de baixo, médio ou de
alta complexidade. Sua estrutura é formada em grande parte de elementos da programação
orientada a objetos como classes, pacotes, herança, entre outros. Apesar disso a UML não é
restrita ao território das linguagens orientadas a objeto, podendo ser utilizado para os mais
diversos projetos, como os de programação paralela e modelando também sistemas
transacionais.
4.1 Histórico da UML

Até algum tempo atrás o que dominava as linguagens era o paradigma estruturado, o qual
basicamente é composto de três estruturas: seqüência, repetição e seleção. No meio da
década de 80 a situação começa a se inverter, com o mecado começando a adotar o
paradigma orientado a objetos, o qual é consolidado na década de 90.
Para se projetar sistemas baseados em tal paradigma, surgem diversas metodologias. Uma
delas foi criada por James Rumbaught que se destacava na anáise orientada a objeto. Outra
surgiu devido a Grady Booch, que era melhor para o projeto orientado a objetos. Após o
lançamento destas duas metodologias, os autores tentarem se unir para fazer uma
metodologia unificada. Para auxiliar esta tarefa Ivar Jacobson, criador da engenharia de
software orientada a objetos se juntou a eles.
Em 1997 os três completaram um esboço (draft) da UML 1.0 e mandaram para a OMG,
organização que lida com a definição de metodologias orientadas a objeto. Neste mesmo a
especificação foi adotada e aos poucos ela se consolidou como a metodologia dominante
para a maior parte dos projetos de software existentes.

4.2 Os diagramas da UML

Para que um sistema de software seja corretamente escrito a UML emprega diversos tipos
de diagramas, cada um com um propósito específico. Estes diversos tipos de diagramas
totalizam 13 e são divididos em três categorias: Estrutura, Comportamento e Interação.
Diagramas de estrutura: diagrama de classe, diagrama de objeto, diagrama de componente,
diagrama de estrutura composta, diagrama de pacote e diagrama de distribuição.
Diagramas de comportamento: diagrama de caso de uso, diagrama de atividade e diagrama
de máquina de estado.
Diagramas de interação: diagrama de seqüência, diagrama de comunicação, diagrama de
temporização e diagrama de panorama de interação.
Cada um destes diagramas desempenha e um papel e para demonstrar um pouco da
importância deles, alguns exemplos serão vistos em seguida.

4.2.1 Diagramas de casos de uso

Este diagarama faz parte dos diagramas de comportamento, os quais têm sua
importância por mostrar o comportamento de um dado objeto, processo de negócio.
Segundo Miller (2003), diagramas de casos de uso descrevem o que um sistema faz do
ponto de vista de um observador externo ao em vez de como faz. Esta característica torna-
se de suma importância, pois permite a qualquer pessoa que olhar o diagrama percebe como
ele se comporta e quais são suas principais atividades.
Um exemplo de caso de uso é o da figura abaixo que ilustra um paciente marcando uma
consulta num sonsutório médico.
Figura 1. Caso de uso para um sistema de clínica de saúde (Miller, 2003)
Apenas observando-se o diagrama pode-se observar que o cliente deve marcar ou cancelar
uma consulta com a pessoa que organiza os horários de consulta (scheduler), tem que
requisitar medicação com um médico e ainda pagar a conta com o gerente. Neste caso de
uso observa-se quais atores interagem com o sistema, dando uma visão geral do próprio
sistema.

4.2.2 Diagramas de classe

Os diagramas de classe são diagramas estruturais, o que significa que seu propósito
é demonstrar a estrutura de algum componente ou característica do sistema, neste classo as
classes. Isto evidencia a importância desse diagrama, pois classes são muito importante e
um observador externo ao em vez de como faz. Esta característica torna-se de suma
importância, pois permite a qualquer pessoa que olhar o diagrama percebe como ele se
comporta e quais são suas principais atividades.
Um exemplo de caso de uso é o da figura abaixo que ilustra um paciente marcando uma
consulta num sonsutório médico.em projetos orientados a objetos, uma vez que elas é que
dão o esqueleto de um objeto, a qual se bem projetada favorece o reuso e a flexibilidade no
projeto de software
Figura 2. Diagrama de classe de um catálogo de revenda (Miller, 2003)
A figura 2 mostra um diagrama de classe de um catálogo de revenda. Tal diagrama mostra a
estrutura das classes e o relacionamento entre elas, evidenciando assim a interligação que
existe no sistema e como ele está organizado.

4.2.3 Diagramas de seqüência

O diagramas de seqüência pertence à classe dos diagramas de interação. Um


diagrama de interação mostra como os objetos interagem entre si trocando mensagens num
sistema. A organização de um diagrama de seqüência é em relação ao tempo, mostrando
como com o passar do tempo as interações ocorrem entre objetos, visualizando quais
mensagens são trocadas e o tempo que demora esta interação.

Figura 3. Diagrama de seqüência para um sistema de reserva de hotel (Miller, 2003)


Pode-se ter uma idéia do funcionamento dos diagramas de seqüência olhando oara a figura
3. Ela mostra que a interação começa da esquerda para a direita, com o objeto window que
manda a mensagem para aChain que a encaminha imediatamente em aHotel, aonde é
verificado por meio de uma iteração se hã algum quarto disponvel. Se houver o diagrama
prossegue at a confirmação da reserva.
5. Conclusão

Aqueles que querem desenvolver aplicações computacionais em qualquer área precisam


desenvolver o pensamento lógico através da prática. Nas várias formas que ela é
representada, a lógica de programação é o elemento chave na superação de obstáculos.

Você também pode gostar