Você está na página 1de 5

Algoritmos com Qualidade

1)

2)

Algoritmos devem ser feitos para serem lidos por seres humanos. Tenha em mente que
seus algoritmos devero ser lidos e entendidos por outras pessoas (e por voc mesmo), de tal
forma que possam ser corrigidos (receberem manuteno e serem modificados).
Escreva os comentrios no momento em que estiver escrevendo o algoritmo.

3)

Os comentrios devero acrescentar alguma coisa, no apenas para frasear os comandos.


O conjunto de comandos nos diz o que est sendo feito, os comentrios devero nos dizer por
qu.

4)

Use comentrios no prlogo. Todo algoritmo ou procedimento dever ter comentrios no


seu prlogo para explicar o que ele faz e fornecer instrues para seu uso. Alguns desses
comentrios seriam:
Uma descrio do que faz o algoritmo.
Como utiliz-lo.
Explicao do significado das variveis mais importantes.
Estrutura de dados utilizada.
Os nomes de quaisquer mtodos especiais utilizados.
Autor
Data

a)
b)
c)
d)
e)
f)
g)
5)

Utilize espaos em branco para melhorar a legibilidade.

6)

Escolha nomes representativos para suas variveis. Uma seleo adequada de nomes de
variveis o princpio mais importante da legibilidade de algoritmos.

7)

Um comando por linha suficiente. Quando se utilizam vrios comandos por linha, o
algoritmo fica mais ilegvel e mais difcil de ser depurado.

8)

Utilize parnteses para aumentar a legibilidade e prevenir-se contra erros.


Exemplo:
Com poucos parnteses
com parnteses extras
A*B*C/(D*E*F)
(A*B*C) / (D*E*F)
A*B/C*D/E*F
(((A*B) / (C) *D) / E) *F
X > Y ou Q < W
(X > Y) ou (Q < W)
A+B<C
(A + B) < C

9)
10)

Utilize indentao para mostrar a estrutura lgica do algoritmo.


Lembre-se: toda vez que for feita uma modificao no algoritmo, os comentrios associados
dever ser alterados, e no apenas os comandos. Antes no comentar do que deixar um
comentrio errado.
Exemplos de trechos de algoritmos mal escritos.
Exemplo 1:
inicio
SOMA = 0;
I = 1;
enquanto I < 18 faa
valor

{ atribui o valor 0 varivel SOMA }


{ atribui o valor 1 varivel I }
{ enquanto I no ultrapassar o valor 18, ser atribudo o
15

SOMA = SOMA + I;
I = I + 1;
fim enquanto;
imprime (SOMA);
fim.

da expresso SOMA + I varivel SOMA e o valor de I


ser incrementado em 1 }
{ imprime o valor de SOMA }

O trecho acima fere principalmente a regra nmero 3. Ele deveria ser escrito, para ser
considerado de qualidade, da seguinte maneira:
Inicio
SOMA = 0;
I = 1;
enquanto I < 18 faa
SOMA = SOMA + I;
I = I + 1;
fim enquanto;
imprime (SOMA);
fim.

{ algoritmo para fazer a soma dos nmeros inteiros de 1 a 18


Autor: Fulano de Tal - data: / / }
{ varivel que ir acumular os valores para o somatrio}
{ ser utilizada como um contador de nmero inteiros }
{ lao utilizado para gerar os nmeros inteiros e calcular o
somatrio }

Exemplo 2:
inicio
inteiro: XPT, I, II, III, IIII;
leia(XPT, IIII)
I = 1;
enquanto I < XPT faa
se I < IIII ento se IIII = 20 ento II = XPT + 2;
seno III = IIII ** XPT; seno III = XPT;
IIII = III + I; fim se; fim se;
I = I + 1;
fim enquanto; imprima (I, II, IIII, III, XPT); fim.
O trecho acima fere todas as regras, sendo que as mais graves so: a falta de
indentao, nomes no significativos e ausncia de comentrios.
6 - TCNICAS ATUAIS DE PROGRAMAO

Programao Estruturada
Programao Orientada a Eventos e Objetos
Programao Orientada a Objetos

6.1 - Programao Estruturada


a)
b)
c)

Programao Estruturada consiste numa metodologia de projeto de programa visando:


facilitar a escrita dos programas
facilitar a leitura (o entendimento) dos programas
permitir a verificao a priori dos programas
facilitar a manuteno e modificao dos programas
A idia bsica simplificar a escrita utilizando conceitos de:
refinamentos sucessivos
decomposio do programa em mdulos funcionais
utilizao de um nmero limitado de estruturas de controle.
16

As tcnicas estruturadas so geralmente aplicveis em todas as linguagens. A maioria,


porm, no foram projetadas para mtodos estruturados, deixando algo a desejar sob este
ponto de vista.
A Programao Estruturada baseia-se no fato de que todo algoritmo pode ser alaborado
com o uso de trs estruturas fundamentais:
Seqencial
Deciso (Condicional)
Repetio ou Iterao
6.1.2 - Estrutura Seqencial
a estrutura onde as instrues so executadas uma aps a outra.
Algoritmo
Fluxograma

Comando 1
Comando 2
Comando 3
.
.
.
.
.
.
Comando n

C1
C2
Cn

6.1.3 - Estrutura de Deciso


Na maioria das vezes necessitamos tomar decises no andamento do algoritmo. Essas
decises interferem diretamente no andamento do programa.
Comandos de Deciso
Os comandos de deciso ou desvio fazem parte das tcnicas de programao que
conduzem a estruturas de programas que no so totalmente seqenciais. Com as instrues
de SALTO ou DESVIO pode-se fazer com que o programa proceda de uma ou outra maneira,
de acordo com as decises lgicas tomadas em funo dos dados ou resultados anteriores. As
principais estruturas de deciso so: Se Ento, Se ento Seno e Caso Selecione
A estrutura de deciso permite a execuo de dois procedimentos distintos, dependendo
de uma certa condio.
Algoritmo:

Condio

se condio
ento comandos
seno comandos
fim se

Fluxograma:

Estrutura de Deciso Simples (SE ... ENTO)


A estrutura de deciso SE normalmente vem acompanhada de um comando, ou seja,
se determinada condio for satisfeita pelo comando SE ento execute determinado comando.
17

Imagine um algoritmo que determinado aluno somente estar aprovado se sua mdia for maior
ou igual a 5.0, veja no exemplo de algoritmo como ficaria.
SE MEDIA >= 5.0
ENTO EXIBA (ALUNO APROVADO);
Em Fluxograma ficaria assim:

Estrutura de Deciso Composta (SE ... ENTO ... SENO)


A estrutura de deciso SE/ENTO/SENO funciona exatamente como a estrutura
SE, com apenas uma diferena, em SE somente podemos executar comandos caso a
condio seja verdadeira, diferente de SE/ENTO/SENO pois sempre um comando ser
executado independente da condio, ou seja, caso a condio seja verdadeira o comando da
condio ser executado, caso contrrio o comando da condio falsa ser executado
Em algoritmo ficaria assim:
SE MDIA >= 5.0
ENTO EXIBA (ALUNO APROVADO)
SENO EXIBA (ALUNO REPROVADO)
FIMSE
Em Fluxograma:

18

No exemplo acima est sendo executada uma condio que, se for verdadeira, executa o comando
APROVADO, caso contrrio executa o segundo comando REPROVADO. Podemos tambm dentro de
uma mesma condio testar outras condies. Como no exemplo abaixo:

19